Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Circom Circuit to encrypt the address in the UniRep user data correct #4

Open
AnthonyMadia opened this issue Jan 21, 2023 · 0 comments

Comments

@AnthonyMadia
Copy link
Owner

Every address that registers will, by default, be visible. This can be solved by symmetrically encrypting the address in the user data. A zk proof for this would:

  • Calculate ethereum address from private key (500k constraints)
  • Encrypt the address using chacha (use semaphore private key as password) (~15k constraints)
  • Output the encrypted address

This proof would be given to the attester, and the attester would give the encrypted address to the user as user data (after verifying the proof).

Then, when a user wants to join an application they can prove they control an address in zk by:

  • Prove they have the encrypted address as user data
  • Decrypt the address (~15k constraints)
  • Prove the address exists in a tree with root R

This scheme would be fully private, but would require the user to make a single large proof. Once the user has the user data all future proofs of address control would be small (< 30k constraints).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants
@AnthonyMadia and others