Semaphore V4 & RLN V3 Benchmarks

The purpose of this document is to compare the performance of Semaphore V4 and the new RLN version (RLN V3) in order to help decide which protocol to use in a specific context.

Protocols

RLN

RLN (Rate-Limiting Nullifier) is a zk-protocol that enables spam prevention mechanism for anonymous environments.

Docs: https://rate-limiting-nullifier.github.io/rln-docs/rln.html

GitHub organization: https://github.com/Rate-Limiting-Nullifier

Semaphore

Using zero knowledge, users can prove their group membership and send signals such as votes or endorsements without revealing their original identity.

Website: https://semaphore.pse.dev/

Docs: https://docs.semaphore.pse.dev/

GitHub organization: https://github.com/semaphore-protocol

RLN V3

RLN V1 and V2 use Semaphore V3. The RLN protocol can be seen as an extension of the Semaphore protocol.

RLN V3 is a new version of the RLN protocol using the new features of Semaphore V4:

More info about the new features of Semaphore V4 can be found in the v4.0.0 release.