mirror of
https://github.com/tlsnotary/label_decoding.git
synced 2026-01-10 04:27:56 -05:00
b9561ee927cfff85eadb499078932026c7654f4e
This repo generates a circom circuit which is used to decode output labels from GC. Install snarkjs https://github.com/iden3/snarkjs Download powers of tau^14 https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_14.ptau Run: python3 script.py 15 # 10 is how much plaintext (in Field elements of ~32 bytes) we want # to decode inside the snark. (For tau^14 max is 21) # if you need more than 21, you'll need to download another ptau file from # https://github.com/iden3/snarkjs#7-prepare-phase-2 circom circuit.circom --r1cs --wasm snarkjs groth16 setup circuit.r1cs powersOfTau28_hez_final_14.ptau circuit_0000.zkey # snarkjs groth16 setup circuit.r1cs pot14_bls12_final.ptau circuit_0000.zkey snarkjs zkey contribute circuit_0000.zkey circuit_final.zkey -v -e="Notary's entropy" snarkjs zkey export verificationkey circuit_final.zkey verification_key.json snarkjs groth16 fullprove input.json circuit_js/circuit.wasm circuit_final.zkey proof.json public.json snarkjs groth16 verify verification_key.json public.json proof.json We can generate circuit.wasm and circuit.r1cs deterministically with circom 2.0.5+ circom circuit.circom --r1cs --wasm and then ship .wasm on the User side and .r1cs on the Notary side write a onetimesetup.js script and call it with node
Description
Languages
Circom
85.1%
Rust
14.5%
JavaScript
0.4%