Monero RingCT Cheatsheet

Andrea Barontini
2 min readJun 12, 2021

--

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.

Cheatsheet’s Github repository: https://github.com/baro77/RctCS

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

--

--

Andrea Barontini

IT and networking professional, crypto & blockchain enthusiastic, science and tech hungry guy. https://www.byBaro.it