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
params
file 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
Download the 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
Download the params
file and clone the sapling-mpc code repository.
Place the phase1radix2m13
, phase1radix2m17
and 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
In the sapling-mpc
directory, now run cargo run --release --bin split_params
to split the params
file up into sapling-output.params
, sapling-spend.params
and 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.