Note Discovery
Note discovery refers to the process of a user identifying and decrypting the encrypted notes that belong to them.
Existing solutions
Brute force / trial-decrypt
In some existing protocols, the user downloads all possible notes and tries to decrypt each one. If the decryption succeeds, the user knows they own that note. However, this approach becomes exponentially more expensive as the network grows and more notes are created. It also introduces a third-party server to gather and trial-decrypt notes, which is an additional point of failure. Note that this note discovery technique is not currently implemented for Aztec.
Off-chain communication
Another proposed solution is having the sender give the note content to the recipient via some off-chain communication. While it solves the brute force issue, it introduces reliance on side channels which we don't want in a self-sufficient network. This option incurs lower transaction costs because fewer logs needs to be posted on-chain. Aztec apps will be able to choose this method if they wish.
Aztec's solution: Note tagging
Aztec introduces an approach that allows users to identify which notes are relevant to them by having the sender tag the log in which the note is created. This is known as note tagging. The tag is generated in such a way that only the sender and recipient can identify it.