Verify ZKP in Solana programs
See slides here.
This repo contains the following sources:
./circom-circuits - ZKP circuits implemented with circom
./solana-verifier - Solana program to verify circom proofs
That also includes forked dependencies:
./ffjavascript - fork of ffjavascript; contains fixes for ./snarkjs
./getrandom - fork of getrandom; contains fixes for arkworks-rs, which is being used in ./solana-verifier
./snarkjs - fork of snarkjs; contains a Solana verifier template
As of now, the project doesn't compile. The breaking issue is with making contributions in snarkjs for bls12-381. To reproduce, run cd circom-circuits && ./scripts/all.bash
Error:
[ERROR] snarkJS: Error: Curve not supported: 4002409555221667610661788685990436838824310417315709160196267947217350388461752218928110433526561144555515641069568
- Implemented verifier program and corresponding template for snakrjs.
- Fixed some issues in the
snarkjstoolchain
- Implement the rest of the verifier program using
arkwork-rsstack - Finish the verifier template for
snarkjsand update the CLI scripts, etc.