/ninja-survey-backend

A privacy gadget for creating anonymous proof of membership on Ethereum.

Primary LanguageSolidityMIT LicenseMIT

Semaphore

A privacy gadget for creating anonymous proof of membership on Ethereum.

Github license GitHub Workflow docs GitHub Workflow test Coveralls Linter eslint Code style prettier

Semaphore is a zero-knowledge gadget which allows Ethereum users to prove their membership of a set without revealing their original identity. At the same time, it allows users to signal their endorsement of an arbitrary string. It is designed to be a simple and generic privacy layer for Ethereum DApps. Use cases include private voting, whistleblowing, mixers, and anonymous authentication.

The core of the Semaphore protocol is in the circuit logic. However Semaphore also provides Solidity contracts and JavaScript libraries (i.e. @zk-kit/identity and @zk-kit/protocols) to make the steps for offchain proof creation and onchain verification easier. To learn more about Semaphore visit https://semaphore.appliedzkp.org.

⚠️ Semaphore V2 has not yet been audited. Please do not use it in production. You can find Semaphore V1 on version/1.0.0.

Deployed verifiers

The following is a list of our deployed onchain verifiers. Each Verifier.sol contract can be used with a binary tree of a certain depth. If depth = 20 the tree can have maximum 2^20 leaves (a group of 1048576 members).

Depth Kovan Arbitrum One
20 0xed75...0E18