Nyms uses the Spartan NIZK proving system to make persistent name proofs.
The R1CS circuit defining the proof can be found here.
Users using the noun nyms frontend make 2 ECDSA signatures with their Eth key when they associate a name with a piece of content (i.e. a post or comment):
- a signature of the nym being used
- a signature of the content being posted
The former shows that the Eth key holder signing still has the ability to use the specified nym. The latter shows that the nym holder specified attests to the piece of content to be shared.
These two pieces of information are used as private inputs in the zero-knowledge proof computed on the user's device and are not shared with our webserver or anywhere else.
The entire Noun Nyms 'content graph' is independently verifiable. This means that comment tree parent relationships and nym attestations can be independently observed and there's no way for the Personae team's servers to be serving faulty data.
The Personae team maintains the frontend at nouns.nymz.xyz and also serves a public API for retrieving data that other frontends can consume. Documentation for this API can be found here
We're working on documentation on how you might verify the content graph programmatically yourself- if you have any questions about this, come ask us in the support discord!
Name | Description |
---|---|
circuits/ | spartan circuit definitions |
nymjs/ | frontend lib for creating and using nyms |
frontend/ | noun nyms webapp |
merkle_tree/ | merkle tree indexing service |
db/ | postgres db schema |
test_data/ | test data population for development builds |
If you're interested in contributing, see our contribution guidelines!