Monero RingCT Cheatsheet
Here I am with the third issue of this Monero-related cheatsheets series. Just a quick recap of previous episodes:
- Monero Addresses Cheatsheet where we have seen everything is needed to forge one-time Stealth Addresses to decouple on-chain payee address from the one advertised to receive the payment
- Ring Signatures Cheatsheet explaining signing ways Monero has used/is using to mix payer UTXOs (i.e. payer’s on-chain identity) with decoys into anonymity-sets
Now we put together what we have previously learnt to obtain the typical Monero transaction at the time of writing (Q2-2021), i.e. RingCT Type 5 (the CLSAG-based one). Doing so, the third ingredient of confidentiality is employed as well: Pedersen Commitments are used, together with other stuff, to hide exchanged Moneroj amounts.
That’s why this cheatsheet features a conceptual diagram of transactions structure, but also:
- a basic introduction to Pedersen Commitments and their main properties
- a recap of CLSAG flavour and its second layer signature in RingCT explicitly presented -that’s an original way as far as I know- as a proof of equivalence between committed values of actual input UTXO and of a “Pseudo Output Commitment”
- an examination of “who can check what” about Moneroj amounts secret flow between payer and payee through network nodes enforcing consensus
What the cheatsheet instead lacks is a satisfying Bulletproof treatment: given the complexity of underlying Zero Knowledge Proofs, in this context only the solved problem is cited, i.e. the risk of currency inflation -Moneroj creation from scratch- due to cyclic groups “overflow” for multipliers ≥ group order (I guess seeing it as an “overflow” is not so common, but imho it’s a more gentle introduction than speaking about negative amounts, even if they are just two ways to see the same problem).
In credits section you can find, apart from various documental sources, some tools I have found valuable to dig deep in these topics.
As previous ones, this cheatsheet has been proposed for Library section of Monero official site (via Pull Request #1655), and it’s pending review and -hopefully- approval.
July 2nd, 2021 EDIT
- Featured image added, trying to mimic transaction elements and flow in a cartoon-like way
- PR approved, merged and published: check it out on Resources/Library section of getmonero.org