How do I verify the Sapling MPC?
What you'll need
- Install the Rust compiler. A version from a year ago will work but the recent one is fine too.
- Download the transcript from the Powers of Tau MPC. (See the links here.)
- Download the
paramsfile from the Sapling MPC.
- Check out the attestations for the Powers of Tau MPC. (Similar can be found for the Sapling MPC but participants chose various ways to distribute their attestations, they have not been coalesced into a single repository.)
Step 1: Verify Powers of Tau
transcript file and clone the powersoftau code repository. Place the
transcript file in that directory and run the following command:
cargo run --release --bin verify --features u128-support
This will verify the
transcript file and write various parameter files to disk. This utility will also print out various hashes, which are commitments to the responses that each participant provided. These should match up with the attestations.
Step 2: Verify Sapling MPC
params file and clone the sapling-mpc code repository.
phase1radix2m21 files that were output during step 1 into the
sapling-mpc directory. Place the
params file in the
sapling-mpc directory also.
Now run the following command:
cargo run --release --bin verify
This will verify the parameters here, and output some hashes like before. These should correspond with the hashes on the wiki page, and those should correspond to what the participants obtained when they participated, just as in the Powers of Tau ceremony.
Step 3: Output the final parameters
sapling-mpc directory, now run
cargo run --release --bin split_params to split the
params file up into
sprout-groth16.params files that should correspond to the files we distribute to users.
Step 4: Verify the implementation and cryptography
All of what you've done so far is run pre-made tools that we've distributed. You'll need to review these tools yourself, as well as the social processes and the underlying cryptography. Or, you'll need to find others who have and rely on their judgment.