Note
Last updated
Last updated
A note represents some value of a particular asset attached to an owner's address (related to a shielded account) who has the authority to spend it. A user can zero or more notes in their shielded account. The asset balance of a shielded account is simply the sum of the values of all notes of that asset.
In our protocol, a Note is a tuple of multiple items:
assetId
: Identifier for the asset (ETH, WBTC, MATIC, etc.) this note represents the value of.
value
: Value or amount the note represents.
leafIndex
: The leaf index of the commitment merkle tree where this note will be inserted.
blinding
: A random blinding factor.
rootAddress
: The root address of a user having the authority to spend it.
revoker
: The chosen revoker's public key point.
All the notes to ever exist have their commitments stored in a data structure called . This is essential for bookkeeping as will be clear in the next sections.
The so-called commitment
of a note is defined Poseidon hash of:
owner = H(rootAddress, revoker.x, revoker.y, blinding)
where owner
is the generated using the blinding
of the note: