The chart above shows the transaction types and version where each point represents an average of a 1000 blocks. The miner transactions (Type 0) are not represented.
This work is divided into four categories explained below in order to prove the non-occurrence of inflation. Let's see what are them and what we need to do:
- Check the ring signatures
- Check the amounts
- Check the uniqueness of key images
- Check the emission
The goal is to validate the transactions by checking its signature. We will need to understand the ring signature scheme in the Pre-RingCT Era, the adoption of the generalization of ring signatures MLSAG (Multilayered Linkable Spontaneous Anonymous Group) and a more concise ring signature scheme CLSAG (Concise Linkable Spontaneous Anonymous Group). Verifying that the ring signature scheme is correct is necessary to guarantee that an user spent funds from an existing transaction in the ledger and is not creating inputs out of thin air. Monero hides the sender by picking other transactions in the chain as decoys and it is important to prove that one and only one real previous transaction is being spent and no inflation is generated.
The goal is to confirm that the amount of XMR in the inputs are equal to the amount of xmr in the outputs. We will understand rangeproofs and how the amounts are hidden.
The goal is to scan the blockchain and confirm that every key_image is unique in the key_images set to prevent a double-spending transaction.
The goal here is to scan the blockchain and confirm that the miners generated up to the maximum XMR values allowed according to the pre-stablished emission curve. We also want to verify that the collected fees match the equation fees = inputs - outputs.