The note specifies an available user's assets. It indicates that an asset is held by the owner of the spending key which was used to derive the private address.
A private address is a value strictly associated with the user account. It consists of:
- a random value called a diversifier and
- a diversified public key derived from the diversifier using the spending key.
The note is created by the asset sender. A note and its hash are placed in transaction.
A note is a tuple where
- (10 bytes) is a diversifier (a random value generated by a note owner)
- (32 bytes) is diversified public key (a value derived from the and spending key )
- (8 bytes) is a note balance (an asset amount transferred by this note)
- (10 bytes) is a salt. Since the transaction contains note hashes we must use a random salt to hide notes with the same owners and balances.
Due to the private nature of transactions, all notes are encrypted. They can be decrypted by a sender or receiver (note owner) only.
The sender decrypts notes to obtain the outcome transaction history. The note receiver (owner) can decrypt it with the spending key which was used to generate a private address specified in the note.
There is an additional state for the note. When a user creates a transaction one or more zero output notes may be created. They will be ignored during transaction parsing. In such a note all fields are zero.