Open connorbode opened 2 years ago
I'm capable (with help) if needed, and would like to participate.
I will participate as well.
Count me in :)
Sounds exciting. Keen to help.
I can do it!
Happy to help as well.
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:
I have started a contribution. Will send a PR soon.
Thanks @avaxmoon, have merged your PR. Ready for the next contribution.
I'm starting my contribution.
Thanks @Hemlock-cw, have merged your PR. Ready for the next contribution.
I'm starting my contribution.
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
andmyname.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 ofMyName.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:
<prev_contribution>.ptau
from the git reponpm install snarkjs
<next_contribution>.ptau
as follows:<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.