MoneroSwapper MoneroSwapper
Educazione

Key Image in Monero: il meccanismo che previene la doppia spesa

MoneroSwapper Team · · · 9 min read · 61 views

Il problema della doppia spesa nelle privacy coin

Ogni criptovaluta deve risolvere il problema della doppia spesa: garantire che la stessa moneta non possa essere spesa due volte. Nelle blockchain trasparenti come Bitcoin, questo è semplice. Ogni input di transazione fa riferimento a uno specifico output di transazione non speso e l'intera rete può verificare che questo output non sia stato consumato prima. Il registro è un libro aperto. Chiunque può tracciare la catena di proprietà da una transazione a quella successiva e confermare che i saldi sono legittimi.

Monero affronta una versione fondamentalmente più difficile di questo problema. Poiché Monero nasconde il mittente, il destinatario e l’importo di ogni transazione, la rete non può semplicemente verificare se un particolare output è stato speso. Le firme ad anello oscurano quale output viene effettivamente consumato mescolandolo con esche, e gli indirizzi invisibili assicurano che gli output non possano essere collegati ai loro destinatari. Se la blockchain non è in grado di identificare quale output specifico viene speso, come può impedire a qualcuno di spendere lo stesso output due volte?

La risposta sta in uno dei meccanismi crittografici più eleganti di Monero: le immagini chiave. Le immagini chiave forniscono una garanzia matematica che ogni output può essere speso solo una volta, senza rivelare quale output viene speso. Sono il ponte tra la privacy assoluta di Monero e l'integrità richiesta per un sistema monetario funzionante.

Cos'è un'immagine chiave?

Un'immagine chiave è un indicatore crittografico univoco che viene generato e pubblicato ogni volta che un output Monero viene speso in una transazione. Tecnicamente, un'immagine chiave è un punto su una curva ellittica derivata in modo deterministico dalla chiave privata una tantum associata a un output specifico. Le proprietà critiche di un'immagine chiave sono le seguenti:

  • Unicità- Ogni output produce esattamente un'immagine chiave. Due output diversi produrranno sempre immagini chiave diverse e lo stesso output produrrà sempre la stessa immagine chiave indipendentemente da quando o quante volte viene eseguito il calcolo.
  • Derivazione unidirezionale- L'immagine della chiave viene calcolata dalla chiave privata, ma la chiave privata non può essere recuperata dall'immagine della chiave. Questo è simile a come funziona una funzione hash: facile da calcolare in una direzione, computazionalmente impossibile invertire.
  • Non collegabilità- L'immagine della chiave non rivela a quale uscita nella firma dell'anello corrisponde. Un osservatore che vede un’immagine chiave pubblicata sulla blockchain non può determinare quale dei membri dell’anello sia il vero output speso.

Come vengono generate le immagini chiave

Per comprendere la generazione delle immagini chiave, è utile rivedere brevemente come funzionano gli output di Monero. Quando qualcuno ti invia Monero, la transazione crea un indirizzo invisibile una tantum specifico per quel pagamento. Questo indirizzo nascosto deriva dalle tue chiavi pubbliche e da un valore casuale scelto dal mittente. Solo tu, come destinatario, puoi calcolare la chiave privata monouso corrispondente per questo indirizzo nascosto utilizzando la tua chiave di spesa privata. ring signatures

Quando in seguito decidi di spendere questo output, il tuo portafoglio calcola l'immagine chiave utilizzando la formula:KI = x * Hp(P), dove x è la chiave privata unica per l'output, Hp è una funzione hash-punto che mappa la chiave pubblica P su un punto sulla curva ellittica e P è la chiave pubblica unica dell'output. Il risultato è un punto curva univoco per questo specifico output e per questa specifica chiave privata.

Questo calcolo è deterministico. Non importa quante volte calcoli l'immagine chiave per un dato output, otterrai sempre lo stesso risultato. E nessun altro output esistente produrrà la stessa immagine chiave, perché ogni output ha una coppia di chiavi univoca e monouso. Questo determinismo è ciò che rende possibile il rilevamento della doppia spesa.

Come le immagini chiave impediscono la doppia spesa

Ogni transazione Monero che spende un output deve includere l'immagine chiave corrispondente. Quando i minatori ricevono una nuova transazione, confrontano l'immagine della chiave con un database di tutte le immagini della chiave apparse nelle transazioni precedenti. Se l'immagine della chiave non è mai stata vista prima, la transazione è potenzialmente valida e può essere inclusa in un blocco. Se l'immagine della chiave esiste già nel database, la transazione sta tentando di spendere un output che è già stato consumato e viene rifiutata come tentativo di doppia spesa.

Questo meccanismo è meravigliosamente semplice nella sua logica. La rete non ha bisogno di sapere quale output è stato speso. Non è necessario tracciare la catena di proprietà. Non è necessario decrittografare alcun importo o identificare alcun partecipante. Tutto quello che deve fare è mantenere una serie di immagini chiave osservate e rifiutare qualsiasi transazione che tenti di aggiungere un duplicato. Il database delle immagini chiave cresce in modo monotono man mano che la blockchain si estende e ogni spesa valida aggiunge esattamente una nuova voce.

Perché le immagini chiave non compromettono la privacy

Una preoccupazione naturale è se la pubblicazione di immagini chiave crei una perdita di privacy. Se ciascun output speso avesse un’immagine chiave univoca, un utente malintenzionato potrebbe utilizzare le immagini chiave per collegare gli output ai relativi proprietari o tracciare modelli di spesa? La risposta è no, a causa delle proprietà matematiche della costruzione dell'immagine chiave.

L'immagine della chiave deriva dalla chiave privata monouso, a sua volta derivata da una combinazione del valore casuale del mittente e delle chiavi private del destinatario. Senza conoscere la chiave di spesa privata del destinatario, è computazionalmente impossibile determinare a quale output corrisponde una determinata immagine chiave. La firma dell'anello dimostra che chi spende conosce la chiave privata di uno dei membri dell'anello, e l'immagine della chiave dimostra che questo particolare output non è stato speso prima, ma nessuna delle due informazioni rivela quale membro dell'anello è quello reale.

Inoltre, le immagini chiave di transazioni diverse non possono essere correlate per determinare se appartengono allo stesso portafoglio. Ogni output ha una coppia di chiavi unica e una tantum, quindi le immagini chiave prodotte dai vari output di un singolo portafoglio appaiono completamente indipendenti tra loro.

Il database delle immagini chiave

I miner Monero e i full node mantengono un database completo di ogni immagine chiave che sia mai apparsa in una transazione valida sulla blockchain. Questo database è una componente fondamentale del consenso. Quando convalidano un nuovo blocco, i nodi controllano le immagini chiave di ogni transazione rispetto a questo database per garantire che non esistano duplicati.

Il database delle immagini chiave cresce con ogni transazione e non si riduce mai. A differenza del set UTXO di Bitcoin, che può sia crescere che ridursi man mano che gli output vengono creati e consumati, il set di immagini chiave di Monero è di sola aggiunta. Questo è un compromesso necessario per la privacy: poiché gli output spesi non possono essere identificati pubblicamente e rimossi dall’insieme dei potenziali membri dell’anello, il database delle immagini chiave deve persistere indefinitamente per prevenire tentativi storici di doppia spesa.

A partire dal 2026, il database delle immagini chiave contiene milioni di voci, ma ciascuna voce misura solo 32 byte, rendendo gestibile il requisito di archiviazione totale anche su hardware modesto. Le ricerche vengono eseguite utilizzando strutture di dati efficienti che consentono il rilevamento dei duplicati in un tempo quasi costante.

Confronto con il modello UTXO di Bitcoin

Bitcoin utilizza un approccio fondamentalmente diverso per prevenire la doppia spesa. In Bitcoin, ogni input di transazione deve fare riferimento a uno specifico output di transazione non speso tramite l'hash della transazione e l'indice di output. Il set UTXO è l'elenco completo di tutti gli output che sono stati creati ma non ancora spesi. Quando una transazione spende un UTXO, quella voce viene rimossa dal set e vengono aggiunti i nuovi output creati dalla transazione.

Questo modello è trasparente ed efficiente. I nodi possono verificare rapidamente che un UTXO referenziato esista e non sia stato speso. Tuttavia, non fornisce privacy. Chiunque esamini la blockchain può vedere esattamente quali output vengono consumati, tracciare il flusso di fondi da un indirizzo a un altro e costruire un grafico completo delle transazioni dell’intera rete.

L'approccio all'immagine chiave di Monero raggiunge la stessa garanzia anti-doppia spesa senza questa trasparenza. Invece di puntare a uno specifico UTXO, una transazione Monero crea un anello di output plausibili e dimostra che chi spende ne possiede uno. L'immagine chiave funge da indicatore unico di spesa che sarebbe implicito nella rimozione dell'UTXO di Bitcoin ma deve essere esplicito nel design di tutela della privacy di Monero.

Compromessi tra i due approcci

  • Magazzinaggio- Il set UTXO di Bitcoin può ridursi man mano che gli output vengono spesi. Il database delle immagini chiave di Monero non fa che crescere. Tuttavia, la dimensione per voce delle immagini chiave è ridotta, il che mitiga questo problema.
  • Velocità di verifica- Le ricerche Bitcoin UTXO sono leggermente più veloci perché il set è più piccolo e le voci vengono rimosse nel tempo. I controlli delle immagini chiave di Monero rimangono efficienti ma operano su un set di dati in continua crescita.
  • Privacy- L'approccio di Monero fornisce una privacy di gran lunga superiore al costo di spazio di archiviazione aggiuntivo e sovraccarico computazionale.
  • Verificabilità- Il set UTXO trasparente di Bitcoin consente a chiunque di verificare la fornitura totale. Monero si affida a prove crittografiche aggiuntive (impegni Pedersen e prove di range) per garantire l'integrità dell'offerta senza rivelare importi individuali.

Immagini chiave nel contesto delle firme degli anelli

Le immagini chiave funzionano di concerto con le firme degli anelli per creare la privacy del mittente di Monero. Una firma ad anello dimostra che il firmatario possiede la chiave privata di una delle numerose chiavi pubbliche di un set, senza rivelare quale. L'immagine chiave è allegata a questa firma ad anello e collegata all'effettivo output speso attraverso la costruzione crittografica.

La firma ad anello garantisce che gli osservatori non possano determinare quale output viene speso. L'immagine chiave garantisce che ogni output possa essere speso solo una volta. Insieme, forniscono una soluzione completa: privacy per il mittente e integrità per la rete. Senza immagini chiave, le sole firme ad anello consentirebbero una doppia spesa illimitata poiché nessuno potrebbe dire quali output siano già stati consumati.

Sviluppi futuri: FCMP++ e oltre

La comunità Monero sta sviluppando attivamente le prove di adesione alla catena completa (FCMP++), che espanderanno notevolmente il set di anonimato dall'attuale anello di 16 membri all'intero set di output sulla blockchain. Con FCMP++, le immagini chiave continueranno a svolgere il loro ruolo fondamentale come indicatori di prevenzione della doppia spesa, ma le garanzie sulla privacy che forniscono saranno ancora più forti poiché non ci sarà un piccolo gruppo di candidati da analizzare.

Le immagini chiave rappresentano una delle innovazioni più importanti di Monero: una prova che qualcosa è successo (un output è stato speso) senza rivelare cosa è successo nello specifico (quale output era). Questa capacità apparentemente paradossale è ciò che consente a Monero di funzionare sia come sistema monetario privato che affidabile. Per coloro che desiderano effettuare transazioni private con Monero,MoneroSwapperoffre scambi no-KYC che completano la privacy on-chain che le immagini chiave contribuiscono a garantire.

Condividi questo articolo

Articoli correlati

Pronto per lo Scambio?

Scambio anonimo di Monero

Nessun KYC • Nessuna registrazione • Scambi istantanei

Scambia ora