Come funziona Monero?
Il quadro generale: un registro pubblico in cui non si può leggere nulla, eppure si può verificare tutto
Monero è denaro elettronico, come Bitcoin: un registro condiviso (la blockchain) tenuto da migliaia di computer, senza nessuna banca in mezzo. La differenza è che il registro di Monero non mostra chi ha inviato, chi ha ricevuto né quanto. Eppure ogni partecipante può verificare che nessuno abbia creato denaro dal nulla o speso due volte la stessa moneta.
Il problema: una blockchain è un portafoglio di vetro
La blockchain di Bitcoin è una tabella pubblica. Chiunque può aprire un block explorer e vedere che 0,3 BTC sono passati dall'indirizzo bc1q…a7 all'indirizzo bc1q…f2. Non ci sono nomi, ma una volta che un indirizzo viene collegato a una persona (un pagamento a un exchange, un trasferimento a un amico, un indirizzo per donazioni pubblicato online), tutta la sua storia diventa visibile: quanto possiede, chi paga, chi la paga.
Monero fa in modo che nessuna di queste tre informazioni si possa leggere dal registro. Per ognuna usa una tecnica diversa.
1. Chi l'ha ricevuto? Indirizzi monouso
Hai un indirizzo pubblico (una lunga stringa che inizia con 4). Ma non compare mai sulla blockchain. Il mittente prende il tuo indirizzo, ci mescola un numero casuale e calcola un indirizzo monouso nuovo di zecca. Il denaro va lì.
Un osservatore esterno vede milioni di indirizzi monouso e non può capire quali appartengano alla stessa persona. Il tuo wallet, usando la sua chiave di visualizzazione (view key) segreta, esamina ogni nuova transazione e riconosce le "proprie".
Immagina una cassetta postale a cui spunta una nuova fessura, con un nuovo numero, per ogni lettera. Solo tu sai che tutte quelle fessure finiscono nella tua cassetta.
2. Quanto? Importi nascosti
Al posto dell'importo, la blockchain memorizza un commitment, un numero che "chiude a chiave" l'importo al suo interno. Dal commitment non si può ricavare l'importo, ma i commitment hanno una proprietà magica: si possono sommare. La rete somma i commitment degli input e degli output e verifica che il bilancio torni, senza conoscere nessuno degli importi.
Resta una scappatoia: e se qualcuno scrivesse un importo negativo? Anche "−100 + 101 = 1" è in equilibrio, e il denaro spunta dal nulla. Per questo ogni output porta con sé una range proof (Bulletproofs+): una breve prova che il numero nascosto non è negativo e non è enorme.
3. Chi l'ha inviato? I ring (e presto l'intera blockchain)
Quando spendi una moneta, devi dimostrare che è tua. In Bitcoin questo avviene con una firma che punta dritto all'output speso. Oggi Monero usa una ring signature (firma ad anello): prendi il tuo output più 15 output casuali di altre persone dalla blockchain (le esche, o decoy) e firmi in modo da convincere il verificatore che "ha firmato il proprietario di uno di questi 16", senza rivelare quale.
Come si evita allora che la stessa moneta venga spesa due volte? Ogni output, quando viene speso, lascia un'"impronta" unica: una key image. La rete memorizza tutte le key image e rifiuta una transazione la cui key image è già stata vista. Dalla key image non si capisce quale dei 16 output sia stato speso, ma non lo si può spendere una seconda volta.
Un ring di 16 è un compromesso: un ring più grande significa più privacy ma transazioni più pesanti e lente. Questo compromesso ha dei punti deboli noti. Per questo Monero si sta preparando a passare a FCMP++: invece di 16 candidati, l'input reale potrebbe essere qualsiasi output dell'intera blockchain, oltre cento milioni di possibilità.
Tutto insieme: RingCT
La combinazione "ring signature + importi nascosti + indirizzi monouso" si chiama RingCT (Ring Confidential Transactions). È obbligatoria per ogni transazione Monero dal 2017. In Monero la privacy non è un'opzione che puoi dimenticare di attivare: tutte le transazioni si somigliano, quindi la tua si nasconde nella folla di tutte le altre.
Per il resto è come Bitcoin
Sotto lo strato di privacy, Monero è una criptovaluta come le altre:
- Blockchain: una catena di blocchi, con un nuovo blocco circa ogni 2 minuti.
- Mining: Proof-of-Work con RandomX, progettato per adattarsi alle normali CPU.
- Emissione: l'emissione principale è terminata nel 2022; ora ogni blocco porta 0,6 XMR per sempre (tail emission).
- Nodi: chiunque può avviare
monerode verificare personalmente ogni regola.
Da leggere dopo
- Perché la privacy?: sulla fungibilità del denaro.
- RingCT e FCMP++ in parole semplici: se sei venuto qui per questo.
- La curva Ed25519: l'inizio della sezione tecnica.