Aztec
Aztec uses a zero-knowledge proof system for confidential transactions, including minting and burning operations:
Minting:
- Uses a MINT proof to create new AZTEC notes 1 12
- The mint proof allows increasing the supply of AZTEC notes by a trusted party 14
- Minting is controlled by the note registry and requires satisfying a balancing relationship 13
Burning:
- Uses a BURN proof to destroy AZTEC notes 1 12
- The burn proof allows decreasing the supply of AZTEC notes by a trusted party 14
- Burning is also controlled by the note registry and requires satisfying a balancing relationship 13
Transfers:
- Uses JOIN-SPLIT proofs to transfer value between AZTEC notes 1
- Transfers move AZTEC notes between accounts while preserving privacy 13
Minting in Aztec
According to the Aztec Protocol technical specification, Aztec allows the creation of new confidential notes through a MINT proof:
- Define a minting policy:
- Controlled by a trusted party (e.g., a stablecoin issuer)
- Specifies conditions for creating new notes
- Generate a MINT proof:
- Proves the minting policy is satisfied
- Specifies the value and recipient of new notes
- Submit the proof to the Aztec Cryptography Engine (ACE):
function mint(
bytes calldata _proofData,
address _proofSender
) external returns (bytes memory);
- ACE validates the proof and creates new notes:
- Increases the total supply of AZTEC notes
- Adds new notes to the Note Registry