Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sismo-core/hydra-s1-zkps
Hydra-S1 ZK Proving scheme circuits, used for ZK Attesters in Sismo
https://github.com/sismo-core/hydra-s1-zkps
circom snarkjs zk zk-snarks zkp
Last synced: about 14 hours ago
JSON representation
Hydra-S1 ZK Proving scheme circuits, used for ZK Attesters in Sismo
- Host: GitHub
- URL: https://github.com/sismo-core/hydra-s1-zkps
- Owner: sismo-core
- License: mit
- Created: 2022-06-15T15:04:24.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-03-13T12:11:04.000Z (almost 2 years ago)
- Last Synced: 2025-01-14T15:12:17.400Z (8 days ago)
- Topics: circom, snarkjs, zk, zk-snarks, zkp
- Language: TypeScript
- Homepage: https://hydra-s1.docs.sismo.io
- Size: 51.8 MB
- Stars: 238
- Watchers: 7
- Forks: 16
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Hydra-S1 is a Zero-Knowledge Proving Scheme used by [Hydra S1 attesters](https://github.com/sismo-core/sismo-protocol/tree/main/contracts/attesters/hydra-s1) of the Sismo Protocol.
Hydra-S1 generates ZK Proofs from a Merkle tree storing groups of accounts with values (e.g group of ENS DAO voters where the account value is the number of votes).
Hydra-S1 enables users to prove from these groups:
- Ownerships: They own two accounts, a source account, and a destination account. (via Hydra Delegate Proof of Ownership)
- Account inclusion: Their source account is part of a group (e.g group ENS DAO voters)
- Account value: Their source account holds a specific value (e.g number of votes in the group of ENS DAO voters)
- Nullifier Generation: They computed a nullifier from an externalNullifier. The nullifier is deterministically generated from their source account and the externalNullifier. It can be stored by proof verifiers to only accept one ZK Proof per account per externalNullifier.
Please make sure to read our documentation:
- [Hydra-S1 general documentation](https://hydra-s1.docs.sismo.io)
- [Registry Tree](https://registry-tree.docs.sismo.io) The custom Merkle tree which stores the groups of accounts.
- [Hydra Proof of Ownership](https://hydra.docs.sismo.io) via the [Commitment Mapper](https://commitment-mapper.docs.sismo.io)## Circuits and Package
Hydra-S1 Proving Scheme was developed using [circom](https://github.com/iden3/circom) and [snarkjs](https://github.com/iden3/snarkjs). This repo contains the circuits.
It outputs an off-chain prover and verifiers (both on-chain and off-chain).
These implementations of prover and verifiers are in the [@sismo-core/hydra-s1](./package) npm package.
```sh
$ yarn add @sismo-core/hydra-s1
```## Installation
- Install [Circom2](https://docs.circom.io/getting-started/installation/) (rust version)
- Build```sh
$ yarn build
```## Test
```sh
$ yarn test
$ test:circuits
$ test:verifier-js
$ test:verifier-contract
$ test:prover-js
```## License
Distributed under the MIT License.
## Contribute
Please, feel free to open issues, pull requests, or simply provide feedback!
## Contact
Prefer [Discord](https://discord.gg/sismo) or [Twitter](https://twitter.com/sismo_eth)