Monero RingCT: le transazioni riservate spiegate
Monero RingCT: le transazioni riservate spiegate
Apri un qualsiasi block explorer di Bitcoin e puoi leggere l'importo esatto di ogni transazione mai effettuata, fino al singolo satoshi. Digita un indirizzo e ne osservi il saldo, risali a dove sono arrivate le monete e segui dove sono finite. Quella trasparenza è una scelta progettuale, ma è anche il motivo per cui uno stipendio, una donazione o un singolo deposito fatto con leggerezza possono de-anonimizzare un intero portafoglio. Monero adotta la posizione opposta: sulla sua catena è l'importo stesso a restare nascosto. La tecnologia che lo rende possibile si chiama RingCT, abbreviazione di Ring Confidential Transactions.
RingCT è il motivo per cui una transazione Monero compare sul registro pubblico come un impegno crittografico invece che come un numero leggibile. È entrata in funzione nel gennaio 2017 ed è diventata obbligatoria per tutte le transazioni entro la fine dello stesso anno. Ogni XMR che invii da un wallet — o che ottieni tramite un servizio senza registrazione come MoneroSwapper — è protetto da questo meccanismo. In questo articolo vediamo cosa fa RingCT, la matematica che permette alla rete di verificare una transazione senza vederne gli importi, come si è evoluta attraverso Bulletproofs e Bulletproofs+, e dove sta andando con FCMP++.
Perché nascondere l'importo è così importante
La privacy su una blockchain non è una singola funzione: sono tre problemi che vanno risolti tutti insieme. Se ne lasci scoperto anche uno solo, gli altri due trapelano attraverso quello. Monero li affronta tutti e tre, e di uno in particolare — il terzo — si occupa RingCT.
- Chi ha inviato: se ne occupano le ring signatures, che firmano una transazione a nome di un gruppo di possibili mittenti, così che un osservatore non possa stabilire quale input sia quello reale.
- Chi ha ricevuto: se ne occupa la tecnologia degli stealth address, che genera un indirizzo unico e monouso per ogni pagamento, in modo che i fondi non finiscano mai su un indirizzo pubblico riutilizzabile.
- Quanto è stato inviato: se ne occupa RingCT, che cifra l'importo in un impegno di Pedersen lasciando comunque a ogni nodo la possibilità di confermare che i conti tornano.
Prima che esistesse RingCT, Monero nascondeva mittente e destinatario ma lasciava gli importi in chiaro. Per ottenere un minimo di riservatezza sui valori, il protocollo costringeva le transazioni a usare tagli fissi — pensa a 0,01, 0,1, 1, 10 — un po' come quando paghi qualcosa contando le monete esatte. Questo lasciava trapelare una quantità sorprendente di informazioni. L'insieme dei "decoy" plausibili per un output da 7,3 XMR era molto più piccolo di quello per un output nascosto, perché i decoy dovevano corrispondere allo stesso taglio. Inoltre, importi visibili permettevano agli analisti di collegare transazioni inseguendo valori identici lungo la catena.
Gli importi riservati chiudono questa falla. Una volta cifrato il valore, ogni output appare strutturalmente identico a tutti gli altri: è il fondamento della fungibilità, ovvero la proprietà per cui un'unità di XMR è intercambiabile con qualsiasi altra, senza una cronologia "contaminata" che un commerciante o un exchange possano rifiutare. È un aspetto che conta sempre di più. Dopo che Binance ha rimosso XMR dai propri mercati all'inizio del 2024 e diversi exchange europei hanno seguito a ruota — anche sulla spinta del quadro normativo MiCA — l'argomento a favore di una moneta le cui singole unità non possono essere filtrate o messe in lista nera si è solo rafforzato.
Cos'è davvero RingCT e come funziona
La parte "CT" di RingCT — Confidential Transactions — è quella che nasconde gli importi, e poggia su un elemento crittografico chiamato impegno di Pedersen. La parte "Ring" lega questo occultamento degli importi allo schema di ring signature già presente in Monero, in modo che resti anonimo anche il mittente. Conviene affrontare le due idee separatamente.
Impegni di Pedersen: cifrare un numero su cui puoi ancora fare i conti
Un impegno (commitment) è un modo per "bloccare" un valore così da non poterlo cambiare in seguito, senza però rivelarlo. Un impegno di Pedersen a un importo ha la forma C = xG + aH, dove a è l'importo reale, x è un segreto casuale chiamato fattore di offuscamento (blinding factor) e G e H sono due punti fissi su una curva ellittica. È il fattore di offuscamento a rendere opaco l'impegno: senza di esso, due output dello stesso valore producono impegni dall'aspetto completamente diverso, quindi è impossibile capire che sono uguali.
La proprietà magica è che questi impegni sono additivi, cioè omomorfi. Somma gli impegni di tutti gli input di una transazione, somma gli impegni di tutti gli output più la commissione e, se gli importi reali sono in pareggio, le due somme risultano impegni allo stesso totale. Il mittente sceglie i fattori di offuscamento in modo che input meno output diano un impegno a zero. Ogni nodo della rete può verificare quell'equazione — confermando che non sono state create né distrutte monete — senza mai conoscere un solo importo della transazione.
L'intero trucco di RingCT è che la rete riesce a dimostrare che i conti tornano fino al satoshi, pur essendo matematicamente incapace di leggere una singola voce.
Range proof: impedire a qualcuno di creare monete dal nulla
Il pareggio omomorfo ha una scappatoia pericolosa. Poiché gli importi sono nascosti, un mittente malevolo potrebbe provare a impegnarsi a un importo negativo che, grazie all'aritmetica modulare, "andrebbe a capo" trasformandosi in un enorme numero positivo e gli permetterebbe di tirare fuori XMR dal nulla. Per impedirlo, ogni output riservato viaggia con una range proof: una garanzia crittografica che l'importo impegnato si trova all'interno di un intervallo valido — tra zero e 2⁶⁴ — senza rivelare in quale punto dell'intervallo cada.
Le range proof sono il punto in cui si è concentrata gran parte della dimensione e del costo di RingCT, ed è anche dove sono arrivati i miglioramenti più rilevanti. L'implementazione originale del 2017 usava le ring signature di Borromean, corrette ma ingombranti: una tipica transazione a due output portava con sé circa 13 KB di dati di range proof, rendendo le transazioni Monero pesanti e le commissioni relativamente alte. Sostituire quel meccanismo è stato il filo conduttore dell'ottimizzazione del protocollo da allora in poi.
L'evoluzione di RingCT: Bulletproofs, Bulletproofs+ e CLSAG
RingCT non è qualcosa di immutabile: è stato re-ingegnerizzato più volte attraverso gli hard fork di Monero, che avvengono all'incirca due volte l'anno, diventando ogni volta più piccolo e più veloce pur mantenendo le stesse garanzie di privacy. Gli aggiornamenti principali:
| Aggiornamento | Attivazione | Cosa è cambiato |
|---|---|---|
| RingCT (Borromean) | Gen 2017, obbligatorio da set 2017 | Introduce gli importi nascosti tramite impegni di Pedersen e range proof di Borromean. |
| Bulletproofs | Ott 2018 | Sostituisce le proof di Borromean; riduce la range proof di una tx a 2 output da ~13 KB a ~2,5 KB, comprimendo la dimensione totale ~80% e le commissioni oltre il ~95%. |
| CLSAG | Ott 2020 | Sostituisce le ring signature MLSAG; firme ~25% più piccole e verifica nettamente più rapida. |
| Bulletproofs+ | Ago 2022 | Affina Bulletproofs per un'ulteriore riduzione di dimensione e una verifica più veloce; lo stesso fork porta la ring size a 16 e introduce le view tag. |
Bulletproofs, distribuito con l'hard fork dell'ottobre 2018, è stato il punto di svolta. Passando a una range proof di dimensione logaritmica, i dati allegati a ogni transazione sono crollati e le commissioni mediane sono scese da qualche dollaro a frazioni di centesimo. È la singola modifica più responsabile del fatto che oggi usare Monero costi pochissimo. Bulletproofs+, nell'agosto 2022, ha spremuto un altro margine e ha accelerato la verifica — un dettaglio che conta, perché ogni nodo deve controllare ogni proof.
Il lato delle ring signature si è evoluto in parallelo. CLSAG (Concise Linkable Spontaneous Anonymous Group signatures) ha sostituito la più vecchia costruzione MLSAG nell'ottobre 2020, rendendo la componente che nasconde il mittente circa un quarto più piccola e più rapida da verificare. Lo stesso fork dell'agosto 2022 che ha portato Bulletproofs+ ha anche alzato la ring size obbligatoria da 11 a 16 — il che significa che ogni output speso è ora nascosto tra 15 decoy invece di 10 — e ha introdotto le view tag, una piccola ottimizzazione che permette ai wallet di saltare gran parte del lavoro quando scansionano la catena alla ricerca di fondi in arrivo.
Come si costruisce una transazione RingCT, passo dopo passo
Aiuta vedere come si assemblano i vari pezzi quando il tuo wallet invia XMR. Niente di tutto questo richiede un'azione da parte tua — il wallet lo fa in un paio di secondi — ma capire la sequenza demistifica ciò che finisce davvero sulla catena.
- Seleziona l'input reale e i decoy. Il wallet sceglie l'output che stai effettivamente spendendo e preleva dalla catena altri 15 output reali da usare come decoy, formando un ring di 16 fonti plausibili.
- Genera una key image. Dall'output reale viene derivata una key image univoca. È ciò che permette alla rete di individuare una doppia spesa, eppure non può essere ricondotta a quale membro del ring provenga.
- Crea gli output stealth. Per ogni destinatario il wallet calcola un indirizzo stealth monouso, così che il pagamento non possa essere collegato all'indirizzo pubblico di chi riceve.
- Impegna gli importi. Ogni importo di output viene avvolto in un impegno di Pedersen con un fattore di offuscamento casuale, e i fattori di offuscamento vengono bilanciati così che input meno output meno commissione si impegnino a zero.
- Allega le range proof. Per ogni output viene generata una range proof Bulletproofs+, che dimostra che l'importo nascosto è non negativo e nell'intervallo valido.
- Firma con CLSAG e diffondi. La ring signature CLSAG autorizza la spesa a nome dell'intero ring, e la transazione viene propagata — attraverso Dandelion++, per offuscare l'IP di origine prima che raggiunga la mempool pubblica.
Il risultato che atterra sulla blockchain non contiene un mittente leggibile, né un destinatario leggibile, né un importo leggibile — solo impegni, proof e un ring di possibilità — eppure è pienamente verificabile da ogni nodo.
Cosa significano in pratica le transazioni riservate per te
Il vantaggio concreto di RingCT è la fungibilità e la resistenza alla sorveglianza, e si manifesta in situazioni reali. Pensa a un freelance pagato in cripto. Su una catena trasparente ogni cliente può vedere il saldo completo del wallet e tutti gli altri pagamenti mai ricevuti; basta un singolo indirizzo "doxxato" per esporre l'intero quadro. Su Monero il pagamento in arrivo è un output stealth con un importo nascosto: il cliente non apprende nulla oltre alla transazione che ha inviato lui stesso.
Cambia anche il modo in cui la "chain analysis" lavora contro di te. Le aziende che vendono analisi forense delle blockchain hanno costruito il proprio business raggruppando indirizzi e seguendo gli importi. RingCT rimuove del tutto il segnale dell'importo, le ring signature intorbidano la fonte e gli stealth address spezzano il legame con la destinazione. Non c'è un saldo da consultare né una scia di denaro pulita da seguire: è esattamente per questo che il tracciamento delle privacy coin resta un problema irrisolto e non una funzionalità da vendere come prodotto.
Ed è anche il motivo per cui conta come acquisti. Se compri XMR su una piattaforma fortemente sorvegliata che lega la tua identità a un output specifico on-chain, hai creato un punto di partenza noto anche se la catena in sé è privata. Usare un servizio di scambio come MoneroSwapper, che non gestisce account né richiede documenti d'identità, mantiene pulito quel primo passaggio, così la riservatezza che RingCT offre on-chain non viene vanificata da una traccia cartacea off-chain. Nulla di tutto questo è una consulenza fiscale — in Italia l'Agenzia delle Entrate tratta comunque le cessioni di cripto-attività come fatti potenzialmente imponibili, con un'imposta del 26% sulle plusvalenze, a prescindere da quanto sia privata la catena — ma significa che la rete stessa non sta trasmettendo le tue finanze a chiunque abbia in mano un block explorer.
Dove va RingCT da qui in poi: FCMP++
L'occultamento degli importi di RingCT è solidissimo, ma l'anonimato del mittente ha un tetto teorico: un ring di 16 significa che la spesa reale è una tra 16 candidate, e l'analisi statistica può di tanto in tanto erodere quelle probabilità. La risposta di Monero, in sviluppo attivo durante il 2025 e il 2026, è FCMP++ — le full-chain membership proofs. Invece di nascondere una spesa tra 15 decoy, FCMP++ la nasconderebbe tra ogni output idoneo mai esistito sulla catena, ampliando l'anonymity set da 16 a decine di milioni.
Fondamentale: FCMP++ sostituisce la componente delle ring signature, non quella delle transazioni riservate. Gli impegni di Pedersen e le range proof Bulletproofs+ che nascondono gli importi restano al loro posto; ciò che cambia è il modo in cui viene dimostrata l'appartenenza all'insieme degli output spendibili. Più avanti, il protocollo di transazione Seraphis e lo schema di indirizzamento Jamtis sono pensati per costruire su queste fondamenta. La lezione per gli utenti è semplice: la privacy degli importi tramite RingCT è una parte di Monero ormai consolidata e matura, e il protocollo continua a rafforzare ciò che le sta attorno.
Domande frequenti
Cosa nasconde davvero RingCT?
RingCT nasconde l'importo di una transazione Monero. Cifra ogni valore in un impegno di Pedersen, così che la cifra non venga mai scritta in chiaro sulla blockchain, lasciando comunque a ogni nodo la possibilità di verificare che gli input siano uguali agli output più la commissione. Mittente e destinatario sono nascosti da meccanismi distinti — ring signature e stealth address — con cui RingCT lavora fianco a fianco.
Se gli importi sono nascosti, come fa la rete a bloccare le monete false?
Con due salvaguardie. La proprietà omomorfa degli impegni di Pedersen permette ai nodi di confermare che input e output nascosti si bilanciano a zero, così nessun valore viene creato o distrutto. E una range proof allegata a ogni output garantisce che l'importo impegnato sia non negativo e dentro un intervallo valido, bloccando il trucco dell'overflow che gli importi negativi nascosti permetterebbero altrimenti.
Che differenza c'è tra RingCT e le ring signature?
Risolvono problemi diversi e vengono spesso confuse perché i nomi si somigliano. Le ring signature nascondono chi ha inviato una transazione, firmando a nome di un gruppo di possibili mittenti. RingCT nasconde quanto è stato inviato usando impegni riservati. RingCT integra le due cose, così che entrambe le protezioni si applichino alla stessa transazione.
Bulletproofs ha sostituito RingCT?
No. Bulletproofs e Bulletproofs+ sono aggiornamenti interni a RingCT — nello specifico alla componente delle range proof. Hanno sostituito le più vecchie e ingombranti range proof di Borromean, tagliando la dimensione delle transazioni di circa l'80% e le commissioni di ben oltre il 90%, ma l'impianto complessivo di RingCT e i suoi importi nascosti sono rimasti invariati.
RingCT verrà rimosso quando arriverà FCMP++?
No. FCMP++ è destinato a sostituire le ring signature di Monero con le full-chain membership proofs, ampliando drasticamente l'anonymity set del mittente. Il meccanismo degli importi riservati — impegni di Pedersen e range proof Bulletproofs+ — dovrebbe restare. In altre parole, FCMP++ rafforza la privacy del mittente senza disfare la privacy degli importi che RingCT garantisce.
Conclusione
RingCT è il silenzioso cavallo da lavoro della privacy di Monero: trasforma ogni importo sulla catena in un impegno che la rete può verificare ma nessuno può leggere, e lo fa mentre le range proof mantengono onesta l'offerta di moneta. Unito alle ring signature che nascondono il mittente e agli stealth address che nascondono il destinatario, è il motivo per cui un output Monero appare identico a ogni altro e non può essere filtrato, messo in lista nera o tracciato in base al valore. Attraverso Bulletproofs, Bulletproofs+ e CLSAG è diventato solo più economico e veloce, e con FCMP++ all'orizzonte la privacy che lo circonda continua ad approfondirsi. Se vuoi monete che portino questa protezione fin dal momento in cui le ottieni, puoi comprare Monero in modo anonimo tramite MoneroSwapper e lasciare che sia RingCT a fare il resto nell'istante stesso in cui transazioni.
🌍 Leggi in