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

Aztec Protocol #6

Open
1 of 4 tasks
decanus opened this issue Dec 28, 2019 · 2 comments
Open
1 of 4 tasks

Aztec Protocol #6

decanus opened this issue Dec 28, 2019 · 2 comments
Labels

Comments

@decanus
Copy link
Owner

decanus commented Dec 28, 2019

The main goal of this thread is to research Aztec and create a general understanding which should later be summarized in a research post.

Questions

  • How exactly does the cryptography used by AZTEC work?

Literature

  • Confidential transactions have arrived, a dive into the AZTEC Protocol - post
  • AZTEC under the hood: range proofs - post
  • How To Keep A Secret: Confidential Transaction With AZTEC Protocol - video
  • The AZTEC Protocol - paper
@decanus
Copy link
Owner Author

decanus commented Dec 30, 2019

Confidential transactions have arrived, a dive into the AZTEC Protocol

AZTEC hides both your balance and how many of a specific token you have sent to a recipient. It does this in a smart contract on-top of ethereum and does not require any changes to the existing protocol.

it’s not a ZK-SNARK, it’s an algebraic zero-knowledge proof that utilizes Boneh-Boyen signatures to create a commitment scheme with a highly efficient range proof embedded into each commitment.

Balances in AZTEC are represented through notes. These notes contain an AZTEC commitment (an encrypted representation of how much ‘value’ the note holds) and the address of a notes owner. It then also contains private information, what the note's value is and the viewing key, allowing the decryption of the note (but not the spending). Owners can have multiple notes.

Notes are spent by destroying old notes and creating new notes whose value must be equal to the sum of the value of the old notes. The AZTEC smart contract validates that the balancing relationship holds through a zero knowledge proof provided by the sender. Once done, the input notes are destroyed and then the output notes are created.

Tokens are added and removed from AZTEC using the commitment, if a transaction is issued with a negative value, then tokens are transferred from the user to the contract. If the value is positive, then tokens are removed from AZTEC and transferred to the user.

@decanus
Copy link
Owner Author

decanus commented Dec 30, 2019

AZTEC under the hood: range proofs

Notes - Used to represent balances. An owner can have one or multiple notes, they can be merged or split.

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

No branches or pull requests

1 participant