At Aleo, we believe that open-source, decentralized, and community-operated applications are the future. But without privacy, these applications cannot overcome the challenges that face the web of today. Using zero-knowledge cryptography, Aleo brings not only privacy but scalability to the next-generation web through what we call zkCloud.
As we approach the launch of our network in the coming months, we're excited to announce an opportunity for our community members to contribute to Aleo through our setup ceremony. The setup ceremony creates the parameters for the zkSNARKs used in Aleo and ensures that our system remains fully secure, decentralized, and permissionless.
To achieve this, Aleo relies on a specific class of zero-knowledge proofs called zkSNARKs. zkSNARKs have the advantage of being relatively performant, but using them requires a set of parameters generated in advance. For security reasons, no single party can know entirely the process by which these parameters were created.
To achieve this, we invite the community to help us generate these parameters by participating in our Aleo Setup Ceremony. This ceremony will use a cryptographic technique called multiparty computation (MPC). This process is open to all and ensures that anyone can use Aleo without relying on a trusted third party.
Our setup ceremony is based on the time-tested MMORPG MPC scheme. Many other networks such as Zcash and Celo have used it to generate parameters for their systems. One nice property of MMORPG is that it takes one honest contribution for the setup to be secure. So each honest participant can know that they alone were enough to guarantee the success of the network; by extension, more participants mean it is exceedingly unlikely that security was compromised. For more technical details about setup ceremonies, how they work, and why they are important, check out this post.
The MMORPG MPC ceremony consists of multiple contribution "rounds." Contributors use their compute resources to add their unique randomness to the process. Verifiers ensure that the contributions are well-formed. Finally, a coordinator (run by Aleo) manages and queues the contributors/verifiers for each round, and aggregates the contribution at the end of the round. Our code for the setup is entirely open-source, and has been audited by Least Authority.
In Aleo, multiple zkSNARKs are used to ensure privacy at every level of the system. Generating these parameters requires not only one setup ceremony but three separate ones:
- The Universal Setup generates the initial parameters for Marlin, a universal proof system. Aleo uses Marlin for the Predicate proofs (which hide inputs to a program). We also use it in our consensus algorithm, Proof-of-Succinct-Work. Because it must handle arbitrary programs, the Universal Setup will take about 36 hours to complete.
- The Outer Setup secures the outer SNARK, which protects information about the nature of the program being computed. This ceremony must be completed using a desktop computer from the command line and will take a few hours to complete.
- The Inner Setup generates parameters that secure the Inner SNARK, which protects information about the parties to a given transaction. Contributing to the Inner Setup is easiest since it requires no technical knowledge and no special hardware besides a commodity desktop/laptop computer, a web browser, and half an hour to complete.
While we want everyone to have the opportunity to contribute, the Universal and Outer Setups require more powerful hardware and knowledge of running software from the command line. So we recommend that only participants with powerful, modern desktops & comfort with running software from the command line contribute to these setups.
After you have contributed to the setup ceremony, don't stop there! Learn more about the use cases that Aleo enables, or head over and check out our Leo developer playground and see what you can build today!
Head over to our Aleo Setup page to contribute now.