Contenuto

  • introduzione

  • Cosa sono le transazioni riservate?

  • Una panoramica della crittografia coinvolta

  • Di cosa sono capaci le transazioni riservate?

  • Conclusione


introduzione

È spesso considerato fondamentale per il funzionamento di una blockchain che il sistema sia trasparente. Ciò significa che ogni nodo della rete deve essere in grado di memorizzarne una copia e verificare che nessuna regola sia stata violata. Per molti registri distribuiti, chiunque può caricare un block explorer online che consentirà loro di effettuare ricerche tra blocchi, transazioni e indirizzi.

Dal punto di vista della privacy, questa non è una situazione ideale. In un sistema come Bitcoin, qualsiasi transazione può essere collegata a quella che la precede. Le monete non sono tecnicamente fungibili, il che significa che possono essere legate a transazioni specifiche. Nessuno può impedirti di inviare bitcoin, ma la tua transazione potrebbe essere rifiutata se le monete coinvolte sono passate precedentemente attraverso un "indirizzo nella lista nera".

Nello scenario peggiore, la mancanza di fungibilità potrebbe avere un impatto profondo sulle fondamenta stesse del sistema. Le monete “pulite” potrebbero sviluppare un premio rispetto al loro valore, mentre quelle vecchie, a causa della loro storia, diventerebbero meno preziose.

In Bitcoin, la privacy è spesso sopravvalutata. È possibile tracciare non solo le monete, ma anche gli utenti. Questi godono di una "pseudonimia" (al posto dei nomi sono visibili gli indirizzi pubblici), che non è priva di difetti. Sofisticate tecniche di analisi possono, con un livello crescente di precisione, aggregare indirizzi nel tentativo di deanonimizzare le entità della rete.

Una delle proposte di aggiornamento per rendere le transazioni veramente private è Transazioni riservate.


Cosa sono le transazioni riservate?

Le transazioni riservate (CT) sono state affrontate per la prima volta nel 2013 da Adam Back, CEO di Blockstream; e più tardi Gregory Maxwell, sviluppatore di Bitcoin, avrebbe ampliato la sua analisi. Maxwell metterebbe in evidenza i problemi menzionati nella sezione precedente (vale a dire fungibilità e debole "pseudonimia") e proporre una soluzione. Gli importi inviati potrebbero essere protetti dal resto della rete, in modo che solo le parti coinvolte nella transazione possano conoscere tali dati.

In circostanze normali (con transazioni visibili pubblicamente), è facile per un nodo verificare che l'importo ricevuto non superi l'importo inviato. Se Alice vuole inviare a Bob 0,3 BTC, prenderà un output non speso (diciamo 1 BTC) e lo dividerà in due parti: 0,3 che invierà a Bob e 0,69 che invierà a se stessa (la differenza Cosa manca corrisponde alla detrazione della commissione mineraria).

Per gli altri nodi questa è semplice algebra: 1 è maggiore di 0,3 + 0,69, le firme sono tutte corrette e gli input di Alice non sono stati ancora spesi altrove, quindi la transazione deve essere valida. Quando le quantità vengono offuscate, però, le cose non sono più così banali. Come si può valutare se una quantità sconosciuta è uguale o superiore alla somma di altre due quantità sconosciute?


Una panoramica della crittografia coinvolta

Per nascondere i dati è necessaria la crittografia. I metodi tradizionali sono però paragonabili alla conservazione dei documenti in una cassaforte: una volta chiusi al suo interno, sono inutilizzabili finché la cassaforte non viene rimossa. Ciò di cui abbiamo bisogno affinché le transazioni riservate funzionino è una cassaforte digitale che non riveli il suo contenuto, ma le cui proprietà possano essere verificate da un esterno.

La risposta a questa domanda si trova nella crittografia omomorfica, in particolare, in uno schema chiamato "impegno Pedersen". Questo tipo di crittografia consente a un estraneo di eseguire operazioni su dati crittografati (che non possono vedere) per una serie di scopi.

Un hash ordinario può essere utilizzato per confermare i dati che desideri rivelare in seguito. Immagina di voler indire un concorso sui social network, in cui chiunque indovini il tuo exchange preferito vincerà un premio di 0,01 BTC. I partecipanti potrebbero essere scettici sul fatto che tu possa vedere le risposte dopo la conclusione del concorso e che tu possa scegliere uno scambio che non è stato menzionato.

Quello che potresti fare è fornire ai tuoi follower un hash: una stringa di numeri e caratteri apparentemente casuali che si associano a una voce specifica. Passi il tuo scambio attraverso una funzione per ottenere un determinato risultato. Illustreremo con l'algoritmo SHA256:


f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191


Guardando questo, non hai idea di quale sia stato l'input. Non è nemmeno possibile invertire la funzione per ottenerlo. Tuttavia, se sai che la voce era "Binance", puoi facilmente verificare che il tuo hash corrisponda a quello sopra menzionato. In questo modo, i tuoi follower sono sicuri che non cambierai la tua risposta alla fine del concorso, poiché ciò produrrebbe un risultato completamente diverso.

Tuttavia, realisticamente, questo non è molto sicuro. Sebbene i tuoi follower non possano decodificare l'algoritmo, possono creare un elenco di potenziali operazioni, sottoponendole a hashing ciascuna finché non ottengono una corrispondenza. Possiamo ridurre la probabilità che ciò accada aggiungendo alcuni dati casuali chiamati fattori di accecamento ai dati che sottoporremo ad hashing.

Se inseriamo "Binance è il mio exchange preferito, lo amo più di ogni altro exchange 2#43Wr", diventa molto più difficile per un avversario indovinarlo (e per 0,01 BTC, è certamente improbabile che qualcuno ci provi).

Un impegno Pedersen ci consente di aggiungere i contributi dietro gli impegni. Come illustra Maxwell:


C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)

Dove BF è il fattore di accecamento e D sono i dati.


Ci sono ancora alcuni passaggi da qui che coinvolgono la crittografia della curva ellittica e il test della portata, ma l'idea di base è che un utente abbia un forte impegno nei confronti del proprio indirizzo. Quando si inviano fondi vengono creati due impegni aggiuntivi (uno per il cambio indirizzo da restituire all'utente e uno per l'indirizzo di destinazione).

Nessuno sa quanto viene inviato, ma può verificare che gli impegni di scambio e di destinazione (il lato sinistro dell'equazione di Maxwell) si sommano all'indirizzo di origine (il lato destro dell'equazione). Se questo viene valutato correttamente, la transazione dell'utente è valida, poiché è possibile dimostrare che gli input sono uguali agli output.


Di cosa sono capaci le transazioni riservate?

Se le transazioni riservate fossero implementate in Bitcoin, godremmo di un sistema molto più privato. Sia gli input che gli output sarebbero mascherati dalla rete più ampia e le voci nel registro sarebbero offuscate, ma i nodi sarebbero comunque in grado di verificarne l’autenticità. Con questo massiccio aumento della privacy, i bitcoin possono diventare effettivamente fungibili, poiché l’analisi on-chain non rivela più la storia di una determinata unità.

Per quanto riguarda l'integrazione delle transazioni riservate nel protocollo, al momento non sembra probabile. Con questa funzionalità aggiuntiva, le transazioni sono molto più grandi di quelle standard: dato lo spazio limitato dei blocchi, ciò non farebbe altro che aumentare la domanda. Richiederebbe inoltre che la maggioranza dei partecipanti accetti di modificare il codice, un compito che tradizionalmente si è rivelato difficile.


Insomma

Le transazioni riservate hanno visto alcune iterazioni in altre criptovalute e nelle sidechain Bitcoin. Ad esempio, Monero li utilizza in combinazione con costrutti chiamati firme ad anello per ottenere anonimato e fungibilità. La sidechain liquida li implementa per una maggiore privacy e MimbleWimble li estende agli stessi endpoint.

Per i vantaggi che apportano, le transazioni riservate comportano il compromesso di un’impronta più ampia. Le criptovalute spesso hanno difficoltà con la scalabilità e le prestazioni a livello di base, e le dimensioni delle transazioni più grandi non sono attraenti per tutti. Detto questo, i difensori della privacy ritengono che sia essenziale nascondere gli importi delle transazioni e che i partecipanti consentano effettivamente alla criptovaluta di fungere da denaro fungibile.