This task consists of expanding the current documentation to give a technical overview to Tornado’s zkSNARK proving scripts (known as circuits), which are written in iden3’s circom language. Providing an educational resource towards the core architecture of the protocol.
Tornado’s circuits can be categorised into two separate components; one for inserting deposits and withdrawals to each equivalent Merkle tree in batches at specific depths, the latter to issue anonymity mining rewards for commitments pushed to the withdrawal tree. Each has a github repository and the circom files are located in the
While the previous iteration of the protocol’s circuits (v1) has minimal documentation available, it could complement the applicant’s understanding of the current implementation - you can find the repository here.
Tornado’s documentation is hosted using Gitbook, applicants must add a new section for circuits to the documentation through forking the repository here and use a pull-request to submit their work. There should be thorough explanations for:
- The higher level concepts
- Parameters, input signals and output signals
- Circuit flow and constraints
- Installation and testing
80 TORN will be allocated to the best submission of this task.