How to CONTRIBUTE in the Nimiq Zero-Knowledge Proof Ceremony

Welcome back!

This documentation explains the procedure to contribute with the keys generated in the first step, which is the second part of Phase 1 to participate in the ZKP Ceremony.

  1. Get the contribute binary and start the contribution client:

    a. For Advanced Users:

    1. Compile the contribute binary following the same steps from 1.1. to 1.3. of the previous tutorial (if you are building from source, make sure to use the latest version of the code).
    2. Start the contribution client by executing the binary with your keys stored in the nimiq.keys file, ensuring that the nimiq.keys file is the repository’s main directory (snark-setup-operator).
    3. Run cargo run --release --bin contribute -- --coordinator-url "https://zkp-ceremony.nimiq.com/".

    b. For Regular Users:

    1. Download the precompiled contribute binary corresponding to your OS here. Note that this will use the precompiled binary Nimiq provides.
    2. Make contribute_<your-operating-system> an executable file. If you’re unsure how to do this, you can find instructions for Linux, MacOS, Windows, or in our troubleshooting below.
    3. Start the contribution client by executing the binary with your keys stored in the nimiq.keys file, ensuring that the nimiq.keys file is in the same directory as the contribute binary: ./contribute_<your-operating-system> --coordinator-url "https://zkp-ceremony.nimiq.com/".
  2. Running the contribution client:

    • The terminal will request you for input at this point:
    1. Enter your passphrase you created previously and an additional form of entropy.
    2. Wait until you see the progress bar on “0/128 chunks”; please leave your machine running once this starts. Note that this will be highly CPU-intensive.

  1. Publish your Attestation:

    Once the software terminates running, you have successfully finished contributing to Phase 1 of the setup! Please publish your nimiq.attestation file on GitHub by creating a new issue! If you use precompiled binaries, be sure to mention you’ve verified the binary hashes posted on the release page match the downloaded files.


  1. Destroy your Keys:

    This setup does not only produce the necessary keys but also generates “toxic waste”, which could tamper with the ceremony. Please securely destroy your keys once you finish contributing to prevent any potential tampering.



Troubleshooting: Binary Execution Permissions

If you find any issues with the contribute binary execution on Linux or macOS, follow these troubleshooting steps:

For Linux and macOS:

  1. Open the Terminal and move to the directory containing the binary.

  2. Run the following command to grant execute permissions:

    chmod +x contribute_<your-operating-system>
    

Additional step for macOS:

  • For macOS users, after granting execute permissions, option right-click on the executable, and if prompted, agree to run the executable.