MoneroSwapper MoneroSwapper

Stealth Address di Monero: come funzionano

MoneroSwapper · · · 12 min read · 9 views

Stealth address di Monero spiegati

Apri un qualsiasi block explorer di Monero e prova a cercare l'indirizzo a cui hai appena inviato un pagamento. Non lo troverai. Puoi scorrere migliaia di transazioni senza vedere mai, nemmeno una volta, l'indirizzo pubblico di un destinatario scritto sulla catena. È proprio questo dettaglio a separare Monero da Bitcoin, dove ogni pagamento è un collegamento permanente e ricercabile tra chi invia e chi riceve. Il meccanismo dietro questa sparizione è lo stealth address, e lavora in silenzio su ogni singola transazione, comprese quelle che passano da MoneroSwapper quando converti un'altra moneta in XMR.

Uno stealth address non è quella lunga stringa che inizia con "4" che copi e incolli per ricevere fondi. Quella stringa pubblica si condivide liberamente: puoi pubblicarla su un sito, stamparla su un biglietto da visita o consegnarla a mille clienti diversi. Ciò che finisce sulla blockchain è qualcosa di completamente diverso: una chiave di destinazione nuova e usa-e-getta, generata da chi paga, legata matematicamente a te ma illeggibile per chiunque altro. Questo articolo spiega esattamente come funziona, perché è la pietra angolare del modello di privacy di Monero e come si combina con gli altri due pilastri — le ring signature e RingCT — per garantire una vera fungibilità.

Perché la privacy del destinatario è il problema difficile

La maggior parte delle persone è convinta che l'aspetto preoccupante di una blockchain trasparente sia l'importo. Non è così. La fuga di informazioni più grave è il grafo degli indirizzi: la rete di chi-ha-pagato-chi che le società di chain analysis ricostruiscono per deanonimizzare gli utenti, raggruppare i wallet e marchiare le monete come "contaminate". Su Bitcoin, riutilizzare un solo indirizzo trasforma tutta la tua storia finanziaria in un foglio di calcolo pubblico.

Monero risolve tre problemi di visibilità distinti con tre strumenti distinti, e vale la pena tenerli separati nella testa:

  • Nascondere il destinatario: lo stealth address fa sì che due pagamenti diretti a te non condividano mai una destinazione on-chain, così nessun osservatore può collegarli tra loro.
  • Nascondere il mittente: le ring signature (e dal 2020 l'algoritmo CLSAG) mescolano il tuo input reale con dei "decoy", esche che rendono impossibile capire quale moneta sia stata effettivamente spesa.
  • Nascondere l'importo: RingCT, protetto dalle range proof, cifra i valori delle transazioni pur permettendo alla rete di verificare che nulla sia stato creato dal nulla.

Gli stealth address affrontano il primo problema, e lo fanno gratis dal lato di chi riceve: non devi generare manualmente un nuovo indirizzo per ogni pagamento, come invece viene raccomandato agli utenti Bitcoin più attenti alla privacy. Il protocollo lo fa in automatico, miliardi di volte, senza alcun coordinamento tra mittente e destinatario oltre all'unico indirizzo pubblico che hai già condiviso.

Come funziona davvero uno stealth address

Il trucco si basa sullo scambio di chiavi Diffie-Hellman su curva ellittica, applicato alla curva ed25519, la stessa famiglia di curve usata per le firme digitali moderne. Lo schema di Monero viene a volte chiamato Dual-Key Stealth Address Protocol, perché il tuo indirizzo pubblico codifica due chiavi, non una.

Le tue due coppie di chiavi

Quando crei un wallet Monero a partire dal seed mnemonico, il wallet ricava due coppie di chiavi:

  • Chiavi di spesa (b, B): la chiave privata di spesa b autorizza i pagamenti in uscita; la sua controparte pubblica B è metà del tuo indirizzo.
  • Chiavi di visualizzazione (a, A): la chiave privata di view a ti permette di rilevare i fondi in entrata; la sua controparte pubblica A è l'altra metà del tuo indirizzo.

Il tuo indirizzo pubblico, quella stringa di 95 caratteri, è in sostanza B e A impacchettate insieme a un byte di rete e a un checksum. Aspetto cruciale: la chiave di view può essere condivisa con un revisore o un commercialista, che potrà così vedere i tuoi pagamenti in entrata senza poter spendere nemmeno un piconero. La chiave di spesa, invece, è quella che custodisci a costo della vita.

Cosa calcola chi invia

Quando qualcuno ti paga, il suo wallet compie i seguenti passaggi, in automatico e in una frazione di secondo:

  1. Genera uno scalare segreto casuale r, valido solo per questa transazione.
  2. Pubblica la corrispondente chiave pubblica della transazione R = r·G all'interno della transazione stessa (G è il punto base della curva).
  3. Calcola un segreto condiviso usando la tua chiave pubblica di view: H(r·A), dove H è una funzione di hash basata su Keccak.
  4. Ricava la chiave di destinazione usa-e-getta P = H(r·A)·G + B e scrive P come indirizzo dell'output sulla catena.

Quella chiave P è lo stealth address. È unica per questa transazione. Paga due volte la stessa persona e otterrai due output che sembrano del tutto scollegati, perché r è diverso ogni volta. Nessun osservatore esterno può ricondurre P al tuo indirizzo pubblicato, perché farlo richiederebbe o la tua chiave privata di view o la capacità di risolvere il problema del logaritmo discreto.

Chi invia scrive sulla blockchain un indirizzo completamente nuovo per ogni singolo pagamento, e chi riceve non ha mai dovuto chiederlo. È questo il genio silenzioso dello stealth address.

Come ritrovi i tuoi soldi

Ecco la parte che sorprende i neofiti: visto che il tuo vero indirizzo non compare mai on-chain, come fa il tuo wallet a sapere che è arrivato un pagamento? Esegue una scansione. Il wallet prende la R pubblicata in ogni transazione e calcola H(a·R)·G + B usando la tua chiave privata di view a. Per la matematica di Diffie-Hellman vale a·R = a·r·G = r·a·G = r·A, quindi questo riproduce esattamente la stessa P creata da chi ha inviato. Se il risultato coincide con un output presente nella transazione, quell'output è tuo.

È per questo che un wallet Monero sincronizzato deve controllare ogni transazione della catena: non può chiedere a un server "qual è il mio saldo?" senza rivelare quali output gli interessano. Il costo di questa scansione è il prezzo della privacy del destinatario, ed è il motivo per cui i wallet di sola visualizzazione e strumenti come l'ufficiale monero-wallet-cli passano del tempo a "fare refresh".

Per spendere davvero un output ricevuto, il tuo wallet calcola la chiave privata usa-e-getta x = H(a·R) + b, che richiede la chiave privata di spesa b. Questa chiave usa-e-getta produce anche una key image univoca: un valore che permette alla rete di rilevare i double-spend senza rivelare quale output viene speso.

Stealth address contro altri approcci alla privacy

Vale la pena vedere dove si colloca l'approccio di Monero — automatico e a livello di protocollo — rispetto alle alternative a cui si ricorre sulle catene trasparenti.

ApproccioPrivacy del destinatarioSvantaggio
Riuso dell'indirizzo BitcoinNessuna — totalmente pubblica e collegabileIntera storia esposta
Bitcoin con indirizzo nuovo per pagamentoParziale; salta in fase di consolidamentoManuale, soggetto a errori, si rivela alla spesa
CoinJoin / mixerProbabilistica, opzionaleEuristiche + analisi temporale, spesso custodial
Stealth address di MoneroObbligatoria, per transazione, automaticaIl wallet deve scansionare la catena

La differenza chiave è che la privacy di Monero non è una funzione opzionale a cui aderisci: è l'impostazione predefinita per il 100% delle transazioni sulla rete. Questa universalità è ciò che produce la fungibilità: poiché nessuna moneta può essere distinta da un'altra o ricondotta a una fonte "sporca", ogni XMR è interscambiabile con qualsiasi altro XMR. Un mixer nasconde solo chi lo usa; una privacy predefinita nasconde tutti, ed è questo che rende significativo l'insieme di anonimato (l'anonymity set).

Dove si collocano i subaddress

Nel 2018 Monero ha aggiunto la funzione Subaddress sopra l'infrastruttura degli stealth address. Un subaddress ti permette di generare un numero praticamente illimitato di indirizzi di ricezione (uno per cliente, per fattura, per caso d'uso) che confluiscono tutti in un unico wallet, senza la fuga di privacy dei vecchi approcci basati sui "payment ID". Ogni subaddress si risolve comunque in output usa-e-getta non collegabili tra loro on-chain: i subaddress sono una comodità organizzativa per te, costruita sopra la crittografia che nasconde le cose a tutti gli altri.

Come gli stealth address si inseriscono nel quadro più ampio di Monero

Gli stealth address sono una gamba di uno sgabello a tre gambe. Togline una e la privacy crolla. Se nascondi il destinatario ma riveli il mittente, gli analisti percorrono il grafo all'indietro. Se nascondi entrambe le parti ma riveli gli importi, i valori più particolari diventano impronte digitali. È questa difesa in profondità che spiega perché Monero sia rimasta in piedi mentre i servizi di mixing autonomi venivano ripetutamente chiusi o compromessi nel corso del 2024 e del 2025.

E la tecnologia non è ferma. Il lungo lavoro sull'aggiornamento CLSAG ha sostituito le vecchie ring signature MLSAG per ridurre la dimensione delle transazioni e i tempi di verifica, mentre Bulletproofs prima e Bulletproofs+ poi hanno tagliato la dimensione delle range proof che proteggono gli importi. Guardando avanti, il progetto Full-Chain Membership Proofs (FCMP++) punta a sostituire del tutto le ring signature con un insieme di prove esteso all'intera catena, portando l'anonymity set del mittente da 16 decoy a, di fatto, ogni output mai creato. In parallelo, gli schemi di indirizzamento di nuova generazione Seraphis e Jamtis sono pensati per modernizzare il funzionamento delle chiavi di stealth e di view, con livelli di view-key più flessibili e prestazioni di scansione del wallet migliori.

Nessuno di questi punti della roadmap elimina gli stealth address: li raffinano e li estendono, partendo dalla stessa idea di fondo. Il principio fissato già nel whitepaper di CryptoNote del 2014 — che la destinazione di un pagamento debba essere una chiave usa-e-getta riconoscibile solo da chi riceve — resta il fondamento di tutto.

Un esempio pratico: ricevere uno swap

Immagina di convertire un po' di Litecoin in Monero tramite MoneroSwapper e di incollare il tuo normale indirizzo XMR nell'ordine. Ecco cosa succede dietro le quinte:

  1. Condividi il tuo indirizzo pubblico: una sola stringa, riutilizzabile in tutta sicurezza tutte le volte che vuoi.
  2. Il wallet che invia genera un nuovo r casuale, calcola la tua chiave di output usa-e-getta P e trasmette la transazione alla mempool.
  3. La transazione viene confermata con P registrata on-chain. Per chiunque osservi, è un output anonimo tra tanti, senza alcun legame con te.
  4. Il tuo wallet, scansionando i nuovi blocchi, ricalcola P con la tua chiave privata di view, riconosce l'output e accredita il saldo.

In nessun momento il tuo vero indirizzo ha toccato la blockchain. Se la settimana dopo ricevi un secondo swap sullo stesso indirizzo, i due output non condividono alcun collegamento visibile. È questa la realtà quotidiana di chi usa Monero: la privacy è invisibile, automatica e non richiede nulla da te, se non custodire al sicuro la tua frase seed.

Nota su fisco e normativa in Italia

La privacy a livello di protocollo non significa che le tue plusvalenze siano esenti da tasse. In Italia, per l'Agenzia delle Entrate le cripto-attività rientrano tra i redditi diversi e le plusvalenze vanno indicate nel quadro RW e nel quadro RT della dichiarazione dei redditi. Lo stealth address protegge la riservatezza on-chain dei tuoi movimenti, ma resta tua responsabilità tenere una contabilità ordinata di acquisti, swap e vendite. La CONSOB, dal canto suo, vigila sui prodotti e i servizi finanziari offerti al pubblico, mentre il quadro europeo MiCA armonizza progressivamente le regole per i prestatori di servizi sulle cripto-attività. In breve: usa la privacy come tutela legittima della tua sfera personale, non come scusa per non dichiarare ciò che la legge richiede.

Domande frequenti

Il mio indirizzo Monero è la stessa cosa di uno stealth address?

No. L'indirizzo che copi e condividi (la stringa di 95 caratteri che inizia con "4") è il tuo indirizzo pubblico. Lo stealth address è la chiave usa-e-getta che chi paga ricava da quello e scrive sulla blockchain. Il tuo indirizzo pubblico, di per sé, non compare mai on-chain: lo fanno solo gli output usa-e-getta non collegabili tra loro.

Posso riutilizzare in sicurezza il mio indirizzo Monero?

Sì. A differenza di Bitcoin, riutilizzare il tuo indirizzo Monero non rivela nulla, perché ogni pagamento in entrata atterra su uno stealth address distinto, che gli osservatori non possono collegare né al tuo indirizzo pubblicato né agli altri pagamenti. Molti utenti preferiscono comunque i subaddress per organizzare i fondi in entrata, ma è una comodità, non un requisito di privacy.

Se gli indirizzi sono nascosti, come fa il mio wallet a vedere i fondi in entrata?

Il tuo wallet usa la chiave privata di view per scansionare ogni transazione e verificare se ciascun output era destinato a te. È per questo che i wallet devono "sincronizzarsi" o "fare refresh": non esiste un server in grado di dirti il saldo senza che tu riveli quali output ti interessano. La chiave di view ti permette di rilevare i fondi; la chiave di spesa, separata, è necessaria per muoverli davvero.

Condividere la mia chiave di view permette a qualcuno di rubarmi le monete?

No. La chiave privata di view concede solo la capacità di vedere le transazioni in entrata, utile per un revisore, un commercialista o per la dichiarazione fiscale. Spendere richiede la chiave privata di spesa, che chi possiede la chiave di view non ha. Tieni segreta l'intera frase seed mnemonica, perché può rigenerare entrambe le chiavi.

FCMP++ o Seraphis elimineranno gli stealth address?

No. Questi aggiornamenti riguardano rispettivamente la privacy del mittente e i sistemi di prova, e il livello di indirizzamento. Il concetto centrale di chiavi di destinazione usa-e-getta e non collegabili rimane. Seraphis e Jamtis mirano a raffinare le chiavi di view e le prestazioni di scansione, non a esporre gli indirizzi dei destinatari.

Conclusione

Gli stealth address sono il motivo per cui un indirizzo Monero può essere allo stesso tempo pubblico e privato: trasmetti una sola stringa al mondo intero, eppure ogni pagamento diretto a quella stringa diventa sulla catena un output isolato e irriconoscibile. Combinati con le ring signature che nascondono il mittente e con RingCT che nasconde l'importo, danno a Monero un modello di privacy che è obbligatorio, automatico e applicato in modo uniforme a ogni transazione: le condizioni che rendono possibile una vera fungibilità.

Se vuoi quella protezione fin dal momento in cui le monete arrivano, acquisire XMR tramite uno swap senza log e senza account conta quanto la crittografia stessa. Puoi comprare Monero in modo anonimo oppure convertire un saldo esistente tramite MoneroSwapper, e l'infrastruttura degli stealth address farà silenziosamente il resto, generando una destinazione usa-e-getta che nessun block explorer, exchange o analista potrà mai ricondurre a te.

Condividi questo articolo

Articoli correlati

Scambio anonimo di Monero

Nessun KYC • Nessuna registrazione • Scambi istantanei

Scambia ora