ChainSafe / ChainSafe/ProtoBanshee
[Start here] Note to Banshee newcomers 👋
- Dominant language
- Rust
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Thank you for your interest in the BanhseeZK project! This note will provide you with everything you need to get started with contributing.
## Primary stack
- Language: `Rust` https://www.rust-lang.org/learn/get-started
- Prove system: `Halo2` [`privacy-scaling-explorations/halo2`](https://github.com/privacy-scaling-explorations/halo2) (EF's fork w/ KZG instead of IPA)
- Base gate library (Halo2 framework) [`axiom-crypto/halo2-lib`](https://github.com/axiom-crypto/halo2-lib)
- Eth consensus library [`ralexstokes/ethereum-consensus`](https://github.com/ralexstokes/ethereum-consensus)
## [Specification](https://hackmd.io/@timofey/rJgTrf9B3)
## Learning resources
### About this project
- Sygma X kick-off presentation [https://www.notion.so/chainsafe/Sygma-X-kick-off-presentation](https://www.notion.so/chainsafe/Sygma-X-kick-off-presentation-fb27de8242b7416d9e986b8a1db6b4a5)
- BansheeZK architecture overview https://drive.google.com/file/d/1e0E-x1-7nEQBp4gCossoSKN6EOoUWFT_
### Ethereum consensus
- Intro to Beacon Chain https://ethos.dev/beacon-chain
- Annotated consensus spec https://eth2book.info/capella/annotated-spec
### Circuit development
- Introductory workshop on Halo2 development https://youtu.be/60lkR8DZKUA
- Mindset for PLONK-based circuit development https://youtu.be/wSfkpJDq8AI
- Circuits development using `halo2-lib` https://docs.axiom.xyz/zero-knowledge-proofs/getting-started-with-halo2
- Halo2 cheatsheet https://hackmd.io/@axiom/HyoXzD7Zh
- Example circuits https://github.com/icemelon/halo2-examples
- "Vanilla" Halo2 API documentation https://zcash.github.io/halo2
- Bugs in ZK circuits https://github.com/0xPARC/zk-bug-tracker
- On PLONK proof generation https://scroll.io/blog/proofGeneration
### References projects
- https://github.com/scroll-tech/zkevm-circuits
- https://github.com/axiom-crypto/axiom-eth
## Good first issues
- #64
- #2
## Friendly advice
- Annotate columns using `meta.annotate_lookup_any_column` and `region.name_column`, this will greatly help you during debugging.
- Use [`MockProver::assert_satisfied()`](https://github.com/privacy-scaling-explorations/halo2/blob/main/halo2_proofs/src/dev.rs#L1440) to print table cells around failed constraints.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.