Depositing, transferring, and withdrawing

This section is a non-technical breakdown of how the depositing, transferring and withdrawing functionalities work within Shielded Pools. For a technical description of this process, go to Spending in the technical Multi-Asset Shielded Poolsdocumentation.
The core functionality of the MASP is to allow users to safely deposit assets and transfer them to others within the system. Additionally, it lets users prove their balance in a private setup or withdraw their assets to a publicly owned wallet.
The MASP assigns every UTXO an exact “owner” or recipient, the only person able to spend it. This is achieved by including a public (spending) key in generating the UTXO commitment, for which only the recipient knows the corresponding private (spending) key.
However, rather than using a single fully public spending key for each recipient, known to the whole world, a new spending keypair is derived. This pair is guaranteed to be unique for each UTXO and strengthens the system’s privacy while offering greater flexibility to disclosure schemes.