You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
4.0 KiB

2 years ago
  1. # Awesome Circom
  2. > A curated list of repos related to [Circom](https://github.com/iden3/circom).
  3. ## Contents
  4. - [Cryptographic primitives](#cryptographic-primitives)
  5. - [In Circom](#cryptographic-primitives-in-circom)
  6. - [In other languages](#cryptographic-primitives-in-other-languages)
  7. - [Provers](#provers)
  8. - [Code editors](#code-editors)
  9. - [Tutorials & docs](#tutorials--docs)
  10. - [Projects using Circom](#projects-using-circom)
  11. ## Cryptographic primitives
  12. ### Cryptographic primitives in Circom
  13. - [circomlib](https://github.com/iden3/circomlib) - main 'standard lib' in Circom
  14. - [circom-ecdsa](https://github.com/0xPARC/circom-ecdsa) - secp256k1 ECDSA operations
  15. - [circom-pairing](https://github.com/yi-sun/circom-pairing) - BLS12-381 curve
  16. - [zk-attestor](https://github.com/yi-sun/zk-attestor) - Scalable on-chain trustless attestations to data from any past Ethereum block or state (ethereum storage proofs)
  17. - [keccak256-circom](https://github.com/vocdoni/keccak256-circom) - keccak256 implementation
  18. ### Cryptographic primitives in other languages
  19. > Cryptographic primitives implemented in other languages which are compatible with Circom implementations
  20. - Javascript
  21. - [circomlibjs](https://github.com/iden3/circomlibjs) - Javascript library to work with circomlib circuits
  22. - Go
  23. - [go-iden3-crypto](https://github.com/iden3/go-iden3-crypto) - Poseidon & mimc hash, babyjubjub elliptic curve
  24. - [arbo](https://github.com/vocdoni/arbo) - Efficient MerkleTree compatible with circomlib, which parallelizes computation by CPUs
  25. - [go-merkletree](https://github.com/iden3/go-merkletree) - MerkleTree compatible with circomlib
  26. - Rust
  27. - [poseidon-rs](https://github.com/arnaucube/poseidon-rs) - Poseidon hash function compatible with circomlib
  28. - [babyjubjub-rs](https://github.com/arnaucube/babyjubjub-rs) - BabyJubJub elliptic curve compatible with circomlib
  29. ## Provers
  30. - [snarkjs](https://github.com/iden3/snarkjs) - zkSNARK implementation in JavaScript & WASM
  31. - [rapidsnark](https://github.com/iden3/rapidsnark) - zkSNARK proof generation written in C++ and intel assembly
  32. - [ark-circom](https://github.com/gakonst/ark-circom) - Arkworks bindings to Circom's R1CS, for Groth16 Proof and Witness generation in Rust
  33. - [go-circom-prover-verifier](https://github.com/iden3/go-circom-prover-verifier/) - Go implementation of the Groth16 zkSNARK Prover and Verifier compatible with Circom
  34. - [go-circom-witnesscalc](https://github.com/iden3/go-circom-witnesscalc) - Witness Calculator in go, calling WASM
  35. ## Code editors
  36. - [zkrepl](https://github.com/0xPARC/zkrepl) - Online playground for Circom circuits
  37. - [vscode plugin](https://github.com/iden3/circom-highlighting-vscode) - VSCode syntax highlighting plugin
  38. - [vim plugin](https://github.com/iden3/vim-circom-syntax) - Vim syntax highlighting plugin
  39. ## Tutorials & docs
  40. - [docs.circom.io](https://docs.circom.io/) - official Circom docs
  41. - [Circom & Snarkjs talk](https://www.youtube.com/watch?v=-9TJa1hVsKA) - Jordi Baylina's talk at zkSummit 2019
  42. - [Electron Labs - Intro to Circom](https://docs.electronlabs.org/intro-to-circom) - Usage of language syntax and programming practices
  43. ## Projects using Circom
  44. - [hermeznetwork/circuits](https://github.com/hermeznetwork/circuits) - Hermez network circuits
  45. - [iden3/circuits](https://github.com/iden3/circuits/) - Circom circuits used by the iden3 core protocol
  46. - [appliedzkp/maci](https://github.com/appliedzkp/maci) - Minimal anti collusion infrastructure
  47. - [appliedzkp/semaphore](https://github.com/appliedzkp/semaphore) - A privacy gadget for creating anonymous proof of membership on Ethereum
  48. - [tornadocash/tornado-core](https://github.com/tornadocash/tornado-core) - Non-custodial private transactions on Ethereum
  49. - [worldcoin/semaphore-rs](https://github.com/worldcoin/semaphore-rs) - Rust support library for using semaphore
  50. - [0xPARC/zk-group-sigs](https://github.com/0xPARC/zk-group-sigs) - Group signatures implemented with zkSNARKs
  51. - [vocdoni/zk-franchise-proof-circuit](https://github.com/vocdoni/zk-franchise-proof-circuit) - Census proof anonymous voting circuit