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.

Step 2: Run the Contributor with your keys

  1. Get the contribute binary (advanced users):

    • Option 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) and run:
      1. cargo build --release --bin contribute to compiling the contribute binary for release.
      2. move to ./target/release/contribute to execute the built contribute binary.
    • Option 2: Use Precompiled Binary (regular users):
      1. Download the contribute binary corresponding to your OS here.
      2. Make contribute_<your-operating-system> an executable file and run it. In case you don’t know how to do this yet, you can find instructions here: Linux, MacOS, Windows, or in our troubleshooting below.
  2. Contribute:

    1. Execute 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://nimiq-setup-phase1.azurefd.net'
      
    2. Enter the passphrase you created previously and an additional form of entropy.

    3. 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.