In preparation for Namada’s mainnet in early 2023, the Anoma Foundation coordinated a public Multi-Party Computation (MPC) ceremony to generate the public parameters for the Multi-Asset Shielded Pool (MASP) circuit – a crucial component for Namada’s shielded transfers and unified shielded set.
We’re thrilled to announce that the Namada Trusted Setup Ceremony was completed at 9am UTC on the 21st of December 2022, with no less than 2,510 contributions to the ceremony. The final parameters have been published in this repository and will be included in the upcoming Namada protocol releases and will be used in the mainnet circuits.
Namada Trusted Setup Recap
Namada’s MASP requires the combination of two sets of parameters: phase I parameters from Zcash’s Powers of Tau ceremony; and phase II, which corresponds to the parameters generated in the recent Namada trusted setup. The former concluded in early 2018, whereas the latter was completed recently on the 21st of December 2022.
- For more context, see Announcing the Namada Trusted Setup
Before the start of the Namada trusted setup, community members could show their interest by subscribing to a dedicated mailing list (we received an overwhelming total of 30,671 signups!). The ceremony was broken down into cohorts of 24 hours, with Cohort #1 starting on the 19th of November and ending with Cohort #32 on the 21st of December.
In order to contribute, individuals needed a ceremony token, a unique token to successfully connect with the ceremony coordinator in order to submit a contribution. Participants received a ceremony token via the public mailing list or by completing a quest on writing and sharing about Namada, writing about open-source privacy-preserving tech or the work from individuals or groups that contributed in increasing awareness and importance of privacy-preserving technologies. Some highlights include Signal, artist Ai Wei Wei, artist Heather Dewey Hagborg, anime Serial Experiments Lain, the Manga Guide to Cryptography, TV series Black Mirror, activist Max Schrems, privacy-preserving CovidWatch, and researcher and artist Caroline Sinders.
To compute the parameters, every participant had to run the computation locally with this CLI tool or their own client implementation. As soon as their turn in the queue arrived, a participant had a maximum of 20 minutes to complete and submit the contribution back to the coordinator.
Finally, participants were encouraged to submit an attestation: a publicly verifiable record (e.g. link to a website) about their contribution setup and/or unique randomness sources. Remarkable sources of randomness ranged from more to less appetising delicacies, environmental noise recording by Palo Verde Generation Station or Oregonian nature combined with winter rain sounds, spotty friends or little half-human and half-ET’s frenetic typing.
During the ceremony, all contributions were added to the dashboard, including the hash, signature, and response files, which you can verify by following these steps in “Verify a contribution”. The ceremony dashboard will be kept on the website for future reference, so anyone can download and verify the intermediate parameters.
Just like in Zcash’s Powers of Tau and Sapling MPC ceremonies, there was a final computation using a random beacon. The random beacon used was a combination of 3 block hashes, announced on the 21st of December 2022 (and on this Reddit post) before the respective blocks were finalised:
The hashes were:
- Bitcoin height 768360:
- Ethereum height 16233100:
- Zcash height 1920750 :
For combining, SHA256 was applied to the 3 block hashes and then 2^42 hashes of the result as a delay function:
You can run the verify-beacon program on the intermediate hashes file to check that the intermediate hashes are all correct.
To verify that the final parameters include the computation with the randomness beacon by running the following command using masp-mpc (which can take a while to run):
The command takes the file
contribution_0.verified (final parameters from the ceremony after the last contribution in Cohort #32) and the final hash
8ecb1e82f5e01c8c0353e35bf0a782f21528f14154faa57436a89f02dd260224 from the randomness beacon as a seed. The resulting parameters should match the final parameters that will be included in Namada's genesis. Meanwhile, you can find the final parameters as a release in this repository:
The final parameters will be included in an upcoming protocol version so they can already be tested in the next upgrades of the Namada public testnet. Contributions to the Namada trusted setup may be rewarded as a public good and all keys from the contributors have been collected. More specifics will be shared as mainnet gets closer, in the meantime make sure to keep the seed phrase you generated safe!