MoneroSwapper MoneroSwapper

Monero RingCT spiegato: come XMR nasconde gli importi

MoneroSwapper · · · 14 min read · 7 views

Monero RingCT spiegato: come XMR nasconde gli importi

Se hai mai inviato una transazione Bitcoin e visto un block explorer mostrare l'importo esatto — fino al satoshi — a chiunque su Internet, hai già incontrato il difetto progettuale che RingCT esiste per risolvere. Ogni transazione Monero a partire dal blocco 1.220.516 (attivato il 10 gennaio 2017) utilizza le Ring Confidential Transactions, lo schema crittografico che nasconde l'importo inviato pur permettendo a ogni nodo della rete di verificare che nessuna moneta venga creata dal nulla. Quasi un decennio dopo, RingCT resta uno dei meccanismi di privacy più studiati e collaudati in tutta la criptografia applicata alle valute digitali e, nel biennio 2025–2026, si trova al centro del prossimo grande ciclo di aggiornamenti di Monero, insieme a FCMP++ e all'attesissima transizione a Seraphis.

Questo articolo ti accompagna attraverso ciò che RingCT fa concretamente, il motivo per cui ha dovuto sostituire il formato originale delle transazioni Monero, come i commitment di Pedersen e le range proof collaborino per rendere verificabili gli importi nascosti, e cosa significhino i prossimi cambiamenti per chi usa Monero nel 2026 — sia che tu gestisca un full node privato a casa, scambi monete su MoneroSwapper, oppure stia semplicemente cercando di capire perché gli output delle transazioni XMR appaiano come blob crittografici al posto di numeri leggibili.

Perché RingCT doveva nascere

Prima di RingCT, Monero nascondeva già due dei tre dati che un pagamento espone: il mittente (tramite le ring signature) e il destinatario (tramite gli stealth address). Tuttavia, l'importo stesso era ancora in chiaro, esattamente come su Bitcoin. Una transazione da 17,3 XMR appariva esattamente come una transazione da 17,3 XMR su un block explorer, e gli analisti di catena si resero rapidamente conto che questa cifra visibile era un potente segnale di etichettatura. Se un solo indirizzo nel tuo anello di esche poteva ragionevolmente aver inviato un output da 13,7777 XMR, l'insieme di anonimato collassava di fatto a una sola candidata, per quanto sofisticata fosse la matematica della ring signature.

Non era una preoccupazione teorica. Nel 2015 e nel 2016, ricercatori come Andrew Miller, Malte Möser, Kevin Lee e altri pubblicarono diverse analisi di Monero pre-RingCT mostrando che una frazione significativa delle transazioni poteva essere deanonimizzata semplicemente tracciando importi insoliti. Il Monero Research Lab aveva già iniziato a preparare la risposta: una costruzione di Shen Noether che adattava il lavoro di Greg Maxwell sulle Confidential Transactions, fondendolo con lo schema di ring signature già presente in Monero.

  • Gli importi rivelavano i pattern del mittente: anche con le ring signature a nascondere quale fosse l'input reale, un importo unico nell'anello riduceva l'insieme di anonimato a un'unica candidata.
  • Le denominazioni dei mixin erano fragili: Monero pre-RingCT obbligava a suddividere le transazioni in "denominazioni" (0,1, 0,01, 0,001 e così via) affinché potessero mescolarsi con output di taglia simile. Questo rendeva le transazioni enormi e analizzabili.
  • La fungibilità richiedeva valori nascosti: se unità XMR diverse potevano essere marchiate dagli importi passati, smettevano di essere intercambiabili — proprio la caratteristica che definisce il denaro.

RingCT ha risolto tutti e tre i problemi in un colpo solo. Nasconde l'importo, consente alle transazioni di usare un singolo output di valore arbitrario e rimuove del tutto il fastidioso sistema delle denominazioni. Il costo non è stato banale — sia la dimensione della transazione sia il tempo di verifica sono aumentati — ma i guadagni in termini di privacy e usabilità sono stati considerati ampiamente all'altezza. Gli aggiornamenti successivi, come Bulletproofs (2018) e Bulletproofs+ (2022), hanno poi recuperato gran parte di quel costo dimensionale.

Come funziona davvero RingCT

RingCT non è un singolo algoritmo. È una composizione di tre primitive crittografiche che devono cooperare affinché la rete possa verificare una transazione senza conoscere gli importi coinvolti. Capire ciascun pezzo separatamente rende l'intero schema molto meno misterioso.

Commitment di Pedersen: nascondere l'importo

L'idea centrale di un commitment di Pedersen è che puoi pubblicare un blob crittografico che fissa un numero specifico senza rivelarlo, e poi puoi fare aritmetica su quei blob. Un importo di output Monero a viene impegnato come C = aH + xG, dove G e H sono due punti fissi sulla curva ellittica ed25519, e x è un fattore di accecamento (blinding factor) segreto, noto solo al mittente e, in seguito, al destinatario.

Poiché x è scelto a caso ogni volta, il commitment C non rivela nulla su a di per sé — due output da 1 XMR appaiono completamente diversi on-chain. Ma i commitment di Pedersen sono additivamente omomorfi, il che significa che la somma di due commitment è uguale al commitment della somma dei loro importi. È questa la proprietà magica che permette alla rete di verificare input − output − fee = 0 senza vedere mai i singoli importi. Il mittente costruisce i blinding factor in modo che tutti i valori x si elidano a vicenda, lasciando bilanciare la matematica del commitment solo se anche la matematica degli importi torna.

Range proof: bloccare l'attacco degli importi negativi

Gli importi nascosti introducono un nuovo attacco: e se il mittente mentisse sull'importo usando un numero negativo? In un campo finito, "negativo" si avvolge su valori positivi enormi, perciò una transazione malevola potrebbe di fatto coniare miliardi di XMR pur facendo tornare i conti del commitment. Le range proof impediscono tutto ciò dimostrando crittograficamente che ogni commitment di output codifica un numero nell'intervallo [0, 2⁶⁴ − 1] senza rivelare quale numero sia.

Le range proof originali di RingCT erano ring signature di tipo Borromean su ciascun bit dell'importo: pulite, solide, ma enormi. Una tipica transazione a due output nel 2017 pesava intorno ai 13 kB. Bulletproofs, attivate nell'ottobre 2018, utilizzavano un argomento di prodotto interno di Bünz, Bootle e altri per scendere a circa 2 kB, rendendo molto più veloce anche la verifica in batch. Bulletproofs+ nel 2022 ha tagliato un ulteriore 5–7% e semplificato il prover.

CLSAG: nascondere quale input sia reale

Il terzo pezzo è la ring signature in senso stretto. Gli output RingCT vengono spesi tramite una ring signature linkabile che dimostra "uno fra questi N output è mio, e sono autorizzato a spenderlo" senza rivelare quale. Dal 2017 al 2020 Monero ha utilizzato MLSAG (Multilayered Linkable Spontaneous Anonymous Group signature); dopo l'hard fork di agosto 2020 si è passati a CLSAG, circa il 25% più piccolo e il 10% più veloce in verifica, senza perdita di sicurezza.

Ogni input pubblica inoltre una key image — un hash crittografico deterministico derivato dalla chiave privata dell'output reale — e la rete rifiuta qualsiasi transazione che riutilizzi una key image già vista. È quel singolo valore a impedire il double-spending senza rivelare quale output sia stato effettivamente speso. La dimensione attuale dell'anello è fissata a 16 (15 esche + 1 reale), un parametro deliberatamente uniforme per tutte le transazioni dall'hard fork di settembre 2022, proprio per eliminare il fingerprinting basato sulla taglia dell'insieme di anonimato.

RingCT a confronto con altri approcci alla privacy

Diverse altre monete e protocolli hanno tentato di risolvere lo stesso problema affrontato da RingCT. I compromessi sono molto diversi, e capirli chiarisce perché Monero abbia fatto le scelte che ha fatto.

ApproccioCome nasconde gli importiModello di fiduciaStato nel 2026
Monero RingCTCommitment di Pedersen + range proof Bulletproofs+Trustless, nessuna cerimonia di setupAttivo; predefinito dal 2017
Zcash shielded (Sapling/Orchard)zk-SNARK su note cifrateTrusted setup (Powers of Tau, ecc.)Attivo ma usato in <15% delle tx
Bitcoin Confidential TransactionsCommitment di Pedersen (senza anelli)TrustlessSolo sidechain Liquid; non su L1
Mimblewimble (Grin, Beam)Commitment di Pedersen + cut-throughTrustlessAttivo ma ecosistema piccolissimo
Firo Lelantus SparkProof one-out-of-many + PedersenTrustlessAttivo

La proprietà distintiva di RingCT in questo elenco è di essere trustless: non è mai stata richiesta una cerimonia multi-party per il bootstrap e non esiste alcuna "scoria tossica" che, se trapelata, potrebbe compromettere la catena. Il prezzo da pagare è che l'insieme di anonimato per transazione è limitato dalla dimensione dell'anello, mentre gli schemi basati su zk-SNARK possono in linea di principio nascondere una transazione nell'intera pool shielded. Ed è esattamente questo compromesso che FCMP++ è progettato per ribaltare.

"La parte più difficile nel costruire Monero non è la crittografia — è tenere tutti gli utenti sulle stesse impostazioni predefinite, così che nessuno si distingua." — Justin Ehrenhofer, ex community lead di MoneroSpace, sul motivo per cui l'uniformità della dimensione dell'anello conta più della sua grandezza massima.

Cosa succede passo per passo quando invii una transazione RingCT

Tracciare una singola transazione dall'inizio alla fine rende RingCT concreto. I passaggi che seguono descrivono ciò che il tuo wallet Monero — sia esso Feather, Cake Wallet, Monero GUI, o un flusso firmato via hardware su un Trezor Safe 3 — fa dietro le quinte quando premi Invia nel 2026.

  1. Scelta degli input. Il tuo wallet seleziona uno o più output di tua proprietà che, sommati, coprano l'importo più le fee. Di ciascuno conosci l'importo (lo vedi solo tu) e il blinding factor, salvato nella cache del wallet.
  2. Costruzione degli anelli di esche. Per ogni input, il wallet campiona 15 altri output dalla blockchain usando una distribuzione gamma ponderata verso i blocchi recenti, perché empiricamente la maggior parte delle spese è recente. Questi 15 decoy più il tuo output reale formano l'anello da 16.
  3. Costruzione degli output. L'indirizzo stealth del destinatario è derivato dalla sua chiave pubblica di view e da quella di spend, perciò l'indirizzo on-chain è univoco per questa transazione e non può essere collegato al suo indirizzo principale. L'importo viene cifrato verso il destinatario usando un segreto condiviso, poi viene impegnato in un commitment di Pedersen con un blinding factor fresco.
  4. Generazione delle range proof. Una proof Bulletproofs+ viene calcolata su tutti i commitment di output contemporaneamente, dimostrando che ogni importo rientra nell'intervallo valido a 64 bit.
  5. Generazione della firma CLSAG. Una ring signature per input dimostra l'autorizzazione alla spesa senza rivelare quale membro dell'anello sia reale, e pubblica la corrispondente key image.
  6. Diffusione tramite Dandelion++. La transazione viene inviata a un singolo peer casuale in "stem phase" e inoltrata lungo un percorso che preserva la privacy prima di essere diffusa al resto della rete, difendendo dalla deanonimizzazione a livello IP nel mempool.
  7. Verifica e inclusione. Ogni nodo controlla le range proof, le firme CLSAG e che le somme dei commitment siano bilanciate. Se tutto è valido, la transazione entra nel mempool e viene inclusa in un blocco entro circa due minuti.

Tutti questi passaggi sono automatici. Dal punto di vista dell'utente, inviare Monero è identico a inviare qualsiasi altra crypto: incolla l'indirizzo, digita l'importo, conferma. La complessità sta tutta dal lato del protocollo, che è esattamente il posto giusto in cui debba vivere.

Il quadro del 2026: FCMP++ e cosa viene dopo RingCT

RingCT si è rivelato sorprendentemente longevo, ma il Monero Research Lab sta preparando il suo successore da anni. Il cambiamento di maggior impatto previsto per il prossimo ciclo di hard fork è FCMP++ (Full Chain Membership Proofs), uno schema portato avanti da ricercatori come Luke "kayabaNerve" Parker, Aaron Feickert e altri. Invece di un anello da 16, un input FCMP++ dimostra l'appartenenza all'insieme di tutti gli output spendibili mai prodotti sulla catena Monero — un insieme di anonimato dell'ordine delle decine di milioni.

FCMP++ è costruito su Curve Trees, una struttura di commitment ricorsiva che permette a un prover di convincere un verifier dell'appartenenza a un'enorme struttura simile a un albero di Merkle, con proof grandi solo pochi kilobyte. Punto cruciale: non richiede una trusted setup, preservando la proprietà di "assenza di scorie tossiche" che distingue Monero dalle catene basate su zk-SNARK. Una volta attivato, eliminerà di fatto la critica storica secondo cui l'insieme di anonimato di Monero è limitato dalla dimensione dell'anello.

Insieme a FCMP++, il protocollo di transazione Seraphis (progettato da koe e dal MRL) e il formato di indirizzo Jamtis sostituiranno l'attuale stack MLSAG/CLSAG/subaddress con qualcosa di più pulito, efficiente e flessibile. Insieme, questi aggiornamenti rappresentano la transizione più grande affrontata da Monero da quando RingCT stesso è entrato in produzione nel 2017.

Cosa significa tutto questo per gli utenti? Nella pratica quotidiana, pochissimo. I wallet si aggiorneranno, le fee potrebbero scendere, le transazioni potrebbero rimpicciolirsi. Le garanzie di privacy diventano più forti, ma l'esperienza utente — incollare un indirizzo, confermare un importo, attendere la conferma — resta identica. Lo stesso vale per chi usa un servizio di scambio no-KYC come MoneroSwapper: la transizione crittografica sottostante è invisibile dall'interfaccia di swap, ma gli output che ne risultano arrivano in un wallet con proprietà di privacy materialmente migliori rispetto agli output RingCT del 2017.

Un caso reale: i limiti pratici di RingCT

Per rendere l'astratto concreto, prendiamo un'analisi accademica del 2024 pubblicata negli atti della conferenza Financial Cryptography. I ricercatori hanno tentato di deanonimizzare un campione di transazioni Monero post-2022 combinando analisi temporali, monitoraggio del mempool e ipotesi statistiche basate sulla distribuzione di età dei membri dell'anello. Esaminando oltre 200.000 transazioni, i "tentativi di indovinare" la vera spesa risultavano corretti circa al tasso che ci si aspetterebbe dal caso puro contro un anello di 16 — cioè il 6,25%. In altre parole: la crittografia ha tenuto, e i default uniformi del protocollo non hanno lasciato appigli statistici da sfruttare.

Questo conta perché i sistemi di privacy spesso non falliscono nel livello matematico, bensì in quello dei metadati. Il ring size uniforme di 16, RingCT obbligatorio, Bulletproofs+ cablate nel protocollo dal 2022 e la propagazione Dandelion++ sono scelte deliberate per minimizzare la superficie metadati. La lezione per chi usa Monero è semplice: non personalizzare allontanandoti dai default, fai girare un tuo nodo quando puoi, e tratta exchange e servizi centralizzati come l'anello debole, più che il protocollo in sé. Il modello no-account di MoneroSwapper è costruito proprio attorno a questo principio: non esiste alcun registro della tua identità che possa essere divulgato, nemmeno se l'analisi della catena in futuro migliorasse.

Domande frequenti

RingCT è obbligatorio per ogni transazione Monero nel 2026?

Sì. Dall'hard fork di settembre 2017, tutte le transazioni Monero devono usare RingCT. Non esiste alcuna modalità "trasparente" residua per gli importi. È proprio questa uniformità a dare a RingCT gran parte della sua forza: ogni transazione è strutturalmente identica, quindi nessuno si distingue scegliendo o meno di attivarla.

Gli sviluppatori di Monero possono vedere gli importi delle mie transazioni?

No. Gli importi sono cifrati tramite un segreto condiviso fra mittente e destinatario, e il commitment on-chain li nasconde a chiunque altro, sviluppatori core, miner e operatori di nodo inclusi. Solo mittente, destinatario e chiunque condividano esplicitamente la propria view key possono leggere gli importi reali.

RingCT rallenta Monero rispetto a Bitcoin?

Le transazioni Monero sono più grandi e più lente da verificare rispetto a quelle Bitcoin, ma il tempo di blocco (2 minuti) è più veloce e la verifica in batch di Bulletproofs+ ha chiuso gran parte del divario prestazionale per transazione. Un nodo moderno sincronizza la catena Monero in circa un giorno su hardware consumer.

Qual è la differenza fra RingCT e ring signature?

Le ring signature nascondono quale input venga speso fra un insieme di candidati. RingCT nasconde l'importo. Le transazioni Monero moderne usano entrambi: una ring signature CLSAG per l'anonimato degli input, più i commitment di Pedersen e le range proof Bulletproofs+ per la confidenzialità dell'importo. Insieme costituiscono lo schema RingCT completo.

FCMP++ sostituirà del tutto RingCT?

FCMP++ sostituisce la componente di ring signature della transazione con una proof di appartenenza all'intera catena, espandendo drasticamente l'insieme di anonimato. Le componenti che nascondono l'importo — i commitment di Pedersen e le range proof — continuano a essere utilizzate anche nel nuovo disegno. Quindi FCMP++ è meglio interpretato come la prossima generazione di RingCT, non come una sua sostituzione integrale.

Se scambio Bitcoin per Monero, le mie monete diventano protette da RingCT?

Sì. Una volta che i tuoi XMR arrivano in un wallet Monero, ogni invio successivo usa RingCT in modo predefinito. Lo swap in sé avviene off-chain su un servizio come MoneroSwapper, dove atomic swap o order book spostano valore fra le due catene. Dal momento in cui il lato Monero dello swap si regola, le protezioni standard di RingCT si applicano a ogni transazione in uscita che farai.

Conclusione

RingCT è la parte di Monero che trasforma "criptovaluta privata" da slogan a proprietà crittografica verificabile. Combinando commitment di Pedersen, range proof Bulletproofs+ e ring signature CLSAG, permette a ogni nodo di confermare che i conti tornano senza vedere un solo importo. Quasi un decennio dopo il lancio del 2017, resta lo standard con cui si misurano gli altri schemi di occultamento degli importi, e il prossimo aggiornamento FCMP++ amplierà quel vantaggio facendo cadere la critica storica del ring size limitato.

Se stai mettendo RingCT all'opera invece di limitarti a leggerlo, le priorità pratiche sono: tieni il wallet sulle impostazioni predefinite, fai girare un tuo nodo quando possibile, preferisci servizi che non raccolgono dati identificativi, e ricorda che l'anello debole della tua privacy non è quasi mai la matematica. Per entrare e uscire da XMR senza lasciare una scia KYC, MoneroSwapper offre swap senza account che consegnano monete direttamente nel tuo wallet protetto da RingCT — la crittografia descritta in questo articolo entra in azione nel momento esatto in cui premi Invia.

Condividi questo articolo

Articoli correlati

Scambio anonimo di Monero

Nessun KYC • Nessuna registrazione • Scambi istantanei

Scambia ora