zklings

zklings

Onboarding zk-stuff with small exercises

Created on 4th November 2024

zklings

zklings

Onboarding zk-stuff with small exercises

The problem zklings solves

Developers who are new to zero-knowledge proof can learn from small exercises to get more familiar in concepts e.g. modular arithmetic and group theory and circuit implementation. All they need to do is having Rust and snarkjs installed, clone the repository and they are good to go.

Challenges we ran into

Exercises design

  • In general, We learned more on theory in order to design a good exercises
  • Debugging protocols is challenging; it’s essential to print intermediate variables and use assertions to ensure the protocol behaves as expected.
  • Learned different hash fields that we can use in plonky3 and make our own proof, created an example using mersenne31 hash field, along with keccak256. (Reference)

Prove generation/verification process in exercise

  • Code patterns on checking circuit-related exercise, the pattern is actually able to adjust parameters e.g. power of tau in order to serve exercises that requires larger ceremony. Also good as base for exercise that use different implementation. (Reference)
  • Learned on adjusting parameters used for proving circuit for right context. Current exercise circuits are more of smaller ones so using less power e.g. 9 to 10 which is good enough, this also benefits on feedback loop of exercise since proving process will be much faster. (currently it takes est. 10s compared to documentation which takes est. 40s.).
  • The implementation in repository is lagged from forked repository and some functionality are not working e.g. watching files. We tried to update codebase on that part to catch up main repository and researched more on improving it.

Technologies used

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion

Builders also viewed

See more projects on Devfolio