Introduction
Plumo Ceremony had 8 rounds in total. Stored files for the ceremony (available here) follow the patternround.chunk_id.contribution_number.verifier_id
. For example file 1.0.14.0xe9053647d4bba6c53a88d1d012e0cf1af86c049f
refers to round 1, chunk ID 0, contribution number 14, verifier ID 0xe9053647d4bba6c53a88d1d012e0cf1af86c049f
.
You can find references to round 9 in the stored chunks, but round 9 was never officially finalized. Please disregard files related to round 9.
Preparation
What you will need:Ceremony Files
All Ceremony files are available here. In order to verify a given round, you will need the following:- File related to the highest
contribution_number
forchunk_id
0
for the previous round. - Files related to the highest
contribution_number
for eachchunk_id
from0
to127
, for the round you want to verify.
- 7.0.10.0x097a648556127e742f8c3bbab155ee368f00ca14
- 8.0.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296
- 8.1.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1
- 8.2.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed
- 8.3.18.0x7f2137fcc9c08381eff306f6f8138139ad961334
- 8.4.18.0xdcc3013396a6fc966b911cdcce4984728f71444e
- 8.5.18.0xf686ca82313c54d36cfa6e88ca86764154e3a097
- 8.6.18.0x7f2137fcc9c08381eff306f6f8138139ad961334
- 8.7.18.0x7f2137fcc9c08381eff306f6f8138139ad961334
- 8.8.18.0x3721615b340294677d0dad4a5454c1785d78b14e
- 8.9.18.0x7f2137fcc9c08381eff306f6f8138139ad961334
- 8.10.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296
- 8.11.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296
- 8.12.18.0x097a648556127e742f8c3bbab155ee368f00ca14
- 8.13.18.0x3721615b340294677d0dad4a5454c1785d78b14e
- 8.14.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be
- 8.15.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be
- 8.16.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc
- 8.17.18.0x8a2ffeeb7ab7241c305a39b75231902adff38d0a
- 8.18.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc
- 8.19.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed
- 8.20.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296
- 8.21.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be
- 8.22.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed
- 8.23.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296
- 8.24.18.0x9fb9983a2cce67496663ad8f6c947c0b164c7bab
- 8.25.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed
- 8.26.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed
- 8.27.18.0x6862299fa35dde3a9cf7ec1263edc51cb2fc566a
- 8.28.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1
- 8.29.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc
- 8.30.18.0x8a2ffeeb7ab7241c305a39b75231902adff38d0a
- 8.31.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1
- 8.32.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be
- 8.33.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be
- 8.34.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1
- 8.35.18.0xf686ca82313c54d36cfa6e88ca86764154e3a097
- 8.36.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc
- 8.37.18.0x097a648556127e742f8c3bbab155ee368f00ca14
- 8.38.18.0x9fb9983a2cce67496663ad8f6c947c0b164c7bab
- 8.39.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc
- 8.40.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc
- 8.41.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc
- 8.42.18.0x8a2ffeeb7ab7241c305a39b75231902adff38d0a
- 8.43.18.0x2095c929ec2a37cf57c997331da6cd60b047258a
- 8.44.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296
- 8.45.18.0x7f2137fcc9c08381eff306f6f8138139ad961334
- 8.46.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed
- 8.47.18.0xdcc3013396a6fc966b911cdcce4984728f71444e
- 8.48.18.0xdcc3013396a6fc966b911cdcce4984728f71444e
- 8.49.18.0xdcc3013396a6fc966b911cdcce4984728f71444e
- 8.50.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed
- 8.51.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296
- 8.52.18.0x6862299fa35dde3a9cf7ec1263edc51cb2fc566a
- 8.53.18.0x8a2ffeeb7ab7241c305a39b75231902adff38d0a
- 8.54.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1
- 8.55.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be
- 8.56.18.0x9fb9983a2cce67496663ad8f6c947c0b164c7bab
- 8.57.18.0x7f2137fcc9c08381eff306f6f8138139ad961334
- 8.58.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc
- 8.59.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1
- 8.60.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296
- 8.61.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc
- 8.62.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be
- 8.63.18.0x3721615b340294677d0dad4a5454c1785d78b14e
- 8.64.18.0x3721615b340294677d0dad4a5454c1785d78b14e
- 8.65.18.0x9fb9983a2cce67496663ad8f6c947c0b164c7bab
- 8.66.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc
- 8.67.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296
- 8.68.18.0x6862299fa35dde3a9cf7ec1263edc51cb2fc566a
- 8.69.18.0x2095c929ec2a37cf57c997331da6cd60b047258a
- 8.70.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed
- 8.71.18.0xf686ca82313c54d36cfa6e88ca86764154e3a097
- 8.72.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be
- 8.73.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed
- 8.74.18.0x5f748472f15a02231c869c567d28e3130ed1b46c
- 8.75.18.0x3721615b340294677d0dad4a5454c1785d78b14e
- 8.76.18.0x7f2137fcc9c08381eff306f6f8138139ad961334
- 8.77.18.0x2095c929ec2a37cf57c997331da6cd60b047258a
- 8.78.18.0xf686ca82313c54d36cfa6e88ca86764154e3a097
- 8.79.18.0x3721615b340294677d0dad4a5454c1785d78b14e
- 8.80.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1
- 8.81.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed
- 8.82.18.0xdcc3013396a6fc966b911cdcce4984728f71444e
- 8.83.18.0x7f2137fcc9c08381eff306f6f8138139ad961334
- 8.84.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1
- 8.85.18.0xdcc3013396a6fc966b911cdcce4984728f71444e
- 8.86.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1
- 8.87.18.0xdcc3013396a6fc966b911cdcce4984728f71444e
- 8.88.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be
- 8.89.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be
- 8.90.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed
- 8.91.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1
- 8.92.18.0xdcc3013396a6fc966b911cdcce4984728f71444e
- 8.93.18.0x2095c929ec2a37cf57c997331da6cd60b047258a
- 8.94.18.0xf686ca82313c54d36cfa6e88ca86764154e3a097
- 8.95.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc
- 8.96.18.0xf686ca82313c54d36cfa6e88ca86764154e3a097
- 8.97.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc
- 8.98.18.0x5f748472f15a02231c869c567d28e3130ed1b46c
- 8.99.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be
- 8.100.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc
- 8.101.18.0x7188c2cf6ec09a45fe60a79f3c9b98a6924107be
- 8.102.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed
- 8.103.18.0xf686ca82313c54d36cfa6e88ca86764154e3a097
- 8.104.18.0x5f748472f15a02231c869c567d28e3130ed1b46c
- 8.105.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc
- 8.106.18.0x5f748472f15a02231c869c567d28e3130ed1b46c
- 8.107.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1
- 8.108.18.0x6862299fa35dde3a9cf7ec1263edc51cb2fc566a
- 8.109.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed
- 8.110.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296
- 8.111.18.0x621f62e35ae4cf7c3d672e16227d65263c0796a1
- 8.112.18.0x2095c929ec2a37cf57c997331da6cd60b047258a
- 8.113.18.0x6862299fa35dde3a9cf7ec1263edc51cb2fc566a
- 8.114.18.0x877d43c37a1484c76c92fbfa59a9ffc296b021ed
- 8.115.18.0x8a2ffeeb7ab7241c305a39b75231902adff38d0a
- 8.116.18.0x097a648556127e742f8c3bbab155ee368f00ca14
- 8.117.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296
- 8.118.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc
- 8.119.18.0x2095c929ec2a37cf57c997331da6cd60b047258a
- 8.120.18.0xdcc3013396a6fc966b911cdcce4984728f71444e
- 8.121.18.0x3721615b340294677d0dad4a5454c1785d78b14e
- 8.122.18.0x9fb9983a2cce67496663ad8f6c947c0b164c7bab
- 8.123.18.0x3721615b340294677d0dad4a5454c1785d78b14e
- 8.124.18.0x097a648556127e742f8c3bbab155ee368f00ca14
- 8.125.18.0x21c9bdf38a32bbe3d4cbfb81c82b26ae82246296
- 8.126.18.0xe0e346a8a4f46bfd8c91a5c7ab7b44b71dd8d1dc
- 8.127.18.0x5f748472f15a02231c869c567d28e3130ed1b46c
Go verification script
The Go verification script has some hardcoded numbers and paths:- The script expects the files above to exist in a directory
./rounds/
where themain.go
file exists. This is defined at line 285 asconst roundsRootDir = "./rounds/"
. - The script defines the round number being verified at lines 142 and 196. For example for round 8:
- Line 142:
if err := currChunk.read(8, 0); err != nil {
(8 refers to round number 8). - Line 196:
if err := nextChunk.read(8, i); err != nil {
(8 refers to round number 8).
- Line 142:
- Finally, the script also defines the previous round number at line 146. For example, if you are verifying round 8, the previous round is 7 so:
- Line 146:
if err := prevChunkPrevRound.read(7, 0); err != nil {
(7 refers to the previous round).
- Line 146:
Executing the Verification Script
Once you have all the necessary files in the correct directory, and the script tailored to the round you want to verify, you can run the script as:./<OUTPUT_FILE_NAME>.srs
) will be a KZG (Kate–Zaverucha–Goldberg) SRS (Structured Reference String) file for the given round. This SRS is “universal”: you can use it in any proving system that requires a KZG commitment setup (Groth16, PLONK, Marlin, etc.), provided it uses the same curve (BW6-761).