avvydomains / powers-of-tau

Powers of Tau Ceremony
2 stars 2 forks source link

Powers of Tau Ceremony - Signup #1

Open connorbode opened 2 years ago

connorbode commented 2 years ago

Hi everyone,

Avvy Domains allows users to keep domain names semi-private by publishing a hash of the name to the chain. Not knowing the domain name makes it difficult for a smart contract to apply logic that is conditional on the name.

As a simple example, since we do not know the sequence of letters which make up the name, we cannot differentiate between upper- and lower-case letters. Allowing both would cause conflicts, where MyName.avax and myname.avax are not treated as the same name (which opens up a number of attacks on the system).

Zero-knowledge proofs allow us to make assertions on the names being registered without knowing them. Continuing our example, the registrant of myname.avax can generate a proof that all of the letters in the name are lower-case, without revealing the name itself. The smart contract which provides the registration functionality can verify the proof and permit the registration. The registrant of MyName.avax would not be able to generate such a proof.

To be capable of generating these proofs, we need to run a powers of tau ceremony. The outputs of the ceremony secure the system. If all of the members of the ceremony collude (or if a single person runs the ceremony), then fake proofs can be generated. Thus, we need sufficiently diverse participants to guarantee there was no collusion.

We will not be developing a web UI. Instead, we will ask technical members of the community to help by adding to the ceremony.

The process is as follows:

  1. Download <prev_contribution>.ptau from the git repo
  2. Install snarkjs with npm install snarkjs
  3. Generate <next_contribution>.ptau as follows:
snarkjs powersoftau contribute <prev_contribution>.ptau <next_contribution>.ptau --name="your name" -v -e="random text"
  1. Publish <next_contribution.ptau> to the git repo.

If you are capable of performing the process (with help if necessary) and would like to participate, please comment below.

Hemlock-cw commented 2 years ago

I'm capable (with help) if needed, and would like to participate.

0xaccuracy commented 2 years ago

I will participate as well.

mayanksatnalika commented 2 years ago

Count me in :)

glais commented 2 years ago

Sounds exciting. Keen to help.

johnsaigle commented 2 years ago

I can do it!

0xduality commented 2 years ago

Happy to help as well.

connorbode commented 2 years ago

Hey @mayanksatnalika @glais @avaxmoon @0xaccuracy @Hemlock-cw - thanks for offering to help here everyone.

There's a new hidden channel in the Discord, #powers-of-tau - we can discuss what's necessary there (& if you need help let's discuss there). I've given roles on Discord to a few of you, but if you need a role just ping me on Discord and I'll add it.

Instructions for adding a contribution have been added to the README. Thanks @johnsaigle for the first contribution & for adding some instructions to the README.

I have written custom code in https://github.com/avvydomains/powers-of-tau/blob/master/cli.js to make the process easier. If you aren't able to assess what the code does on your own, I am happy to walk you through it line-by-line on a video call, just let me know. In general, running arbitrary code from the internet is not a good idea (especially if your private keys aren't stored on a device like a ledger).

Because we're doing this on a pull-request basis, we can only have one person do their contribution at a time, and then I need to merge the PR.

When you start your contribution please:

  1. Check here to see if anyone else is currently making a contribution - if they are, wait until I comment to say we are ready for the next contribution.
  2. Add a comment here that you are starting your contribution.
0xduality commented 2 years ago

I have started a contribution. Will send a PR soon.

connorbode commented 2 years ago

Thanks @avaxmoon, have merged your PR. Ready for the next contribution.

Hemlock-cw commented 2 years ago

I'm starting my contribution.

connorbode commented 2 years ago

Thanks @Hemlock-cw, have merged your PR. Ready for the next contribution.

benface commented 2 years ago

I'm starting my contribution.