Zerocash, la nuova moneta totalmente anonima

Tempo di lettura:4 minuti

Traduzione della presentazione del progetto Zerocash.

Zerocash è un nuovo protocollo che fornisce una versione anonima di Bitcoin (o di una valuta simile).

Zerocash risolve una inerente debolezza di Bitcoin: la storia delle transazioni di ciascun utente del network è registrata pubblicamente nella blockchain ed è pertanto visibile da parte di chiunque. Sebbene esistano tecniche per offuscare questa informazione, esse sono problematiche ed inefficaci. Al contrario, con Zerocash, gli utenti possono pagare altri utenti direttamente per mezzo di transazioni che non rivelano né l’origine, né la destinazione e nemmeno l’importo del pagamento. Questo è un rilevante sviluppo rispetto a Bitcoin (e altre simili valute crittografiche decentralizzate), in cui ogni informazione di pagamento è resa pubblica a chiunque.

Zerocash migliora un protocollo precedente, Zerocoin, sviluppato da alcuni degli stessi autori, sia rispetto alla funzionalità (Zerocoin si limita a nascondere l’origine del pagamento, ma non anche la destinazione e l’importo del pagamento) sia rispetto all’efficienza (le transazioni Zerocash pesano meno di 1KB e impiegano meno di 6 minuti per la validazione).

Come funziona Zerocash

Zerocash è un protocollo che fornisce una criptovaluta decentralizzata in cui, come in Bitcoin, gli utenti collaborano nel mantenere la valuta trasmettendo e verificando le transazioni di pagamento.

Zerocash, in ogni caso, differisce da Bitcoin per il fatto che queste transazioni di pagamento sono prima assemblate e poi verificate.

Concretamente, in Bitcoin, una transazione di pagamento consiste in un indirizzo di partenza, un indirizzo di destinazione ed il valore del pagamento. Queste transazioni sono raggruppate in blocchi e custodite su un libro mastro chiamato blockchain. Dal momento che la blockchain è pubblica, la storia di tutte le transazioni può essere consultata da chiunque, per mezzo del software Bitcoin o utilizzando un servizio di monitoraggio della blockchain. Sebbene gli indirizzi non siano esplicitamente associati alla reale identità di un utente, numerosi studi recenti hanno dimostrato che la blockchain può essere esplorata per ottenere informazioni circa le abitudini di spesa di un utente.

Zerocash estende il protocollo Bitcoin aggiungendo nuovi tipi di transazioni che forniscono una separata valuta totalmente anonima, le cui transazioni non rivelano né l’origine del pagamento, né la destinazione del pagamento e neppure l’importo del pagamento. Zerocash crea una separata valuta anonima, che esiste a fianco di una (non-anonima) valuta di base, cui ci riferiamo con il nome di basecoin. Qualsiasi utente può convertire (non-anonima) valuta Basecoin in (anonima) moneta Zerocash, che noi chiamiamo zerocoin. Gli utenti possono quindi inviare zerocoin ad altri utenti, dividere o fondere zerocoin in loro possesso in una modo che ne preserva il valore complessivo. Gli utenti possono inoltre convertire nuovamente gli zerocoin  in loro possesso in basecoin, sebbene in principio questo passaggio non sia affatto necessario: tutti i pagamenti possono essere fatti direttamente in valuta zerocoin.

Le transazioni Zerocash

La funzionalità di Zerocash è realizzata usando due nuovi tipi di transazione: le transazioni di conio e le transazioni di versamento. Come per le transazioni Bitcoin, le transazioni Zerocash sono trasmesse e registrate in un libro mastro decentralizzato.

Le transazioni di conio. Una transazione di conio consente all’utente di convertire uno specifico numero di non-anonimi bitcoin (da un indirizzo Bitcoin) nello stesso numero di zerocoin appartenenti ad uno specifico indirizzo Zerocash. La transazione di conio consiste in un vincolo crittografico ad una nuova moneta, che specifica il valore della moneta, l’indirizzo del possessore ed un numero di serie univoco. Il vincolo crittografico è basato sulla funzione di hash SHA-256, e nasconde sia il valore della moneta che l’indirizzo proprietario.

construction-summary

I nodi individuali Zerocash mantengono un albero di Merkle rispetto a tutti i vincoli crittografici sulle monete riscontrati sino a quel momento. Ogni utente può quindi dimostrare la proprietà di un determinato vincolo crittografico per mezzo dei valori risultanti dal vincolo così come per mezzo di una prova breve di appartenenza all’albero. Sfortunatamente, la semplice pubblicazione di questi dai quali “prova di proprietà” non garantisce l’anonimato. Per contro, per ottenere la piena riservatezza, noi facciamo affidamento su di un secondo tipo di transazione che consente all’utente di provare, in regime di conoscenza zero, che egli in effetti conosce quelle informazioni.

Le transazioni di versamento. Una transazione di versamento consente ad un utente di fare un pagamento anonimo per mezzo della distruzione di un determinato numero di monete (possedute da questo utente) al fine di produrre delle nuove monete. Approssimativamente, una transazione di versamento per (sino a) due monete di input e (sino a due) monete di output implica la prova, in regime di conoscenza zero, di quanto segue:

  • L’utente possiede le due monete di input;
  • Ciascuna delle monete di input appare in una precedente transazione di conio o quale output di una precedente transazione di versamento; e
  • Il valore totale delle monete di input è uguale al valore totale delle monete di output.

La transazione di versamento consuma le monete di input rivelando i loro numeri seriali, ma non rivela alcuna altra informazione rispetto al valore delle monete di input o delle monete di output o rispetto agli indirizzi dei loro proprietari. In via facoltativa, la transazione di versamento può anche restituire alcuni (non-anonimi) bitcoin. Questa opzione può essere utilizzata per ritrasformare zerocoin in (non-anonimi) bitcoin o per pagare i costi di transazione.

Validare le transazioni Zerocash

Per una transazione di conio, il vincolo crittografico in essa contenuto è costruito in modo che ciascuno possa verificare che la moneta sottoposta al vincolo abbia effettivamente il valore dichiarato.

Per una transazione di versamento, ciascuno può verificare che la prova a conoscenza zero ivi contenuta sia valida. Per ragioni di efficienza però, Zerocash non usa alcuna prova in regime di conoscenza zero ma piuttosto sfrutta i cosiddetti sistemi di Argomenti Brevi di Conoscenza non-Interattivi a conoscenza zero (zk-SNARK), i quali sono prove in regime di conoscenza zero particolarmente brevi e facili da verificare. Nello specifico, Zerocash usa gli zk-SNARK costruiti da SCIPR Lab, che sono descritti nel Report 2013/879 dell’archivio di crittografia digitale.

Queste prove sono lunghe meno di 300 bytes e possono essere verificate in pochi millisecondi.

N.D.T. il network dovrebbe partire tra qualche mese. Per un più attivo coinvolgimento è possibile visitare il forum dedicato.

retro

palatine

bitcoiner scrittore cypherpunk; runna http://www.palatineking.com

0 pensieri riguardo “Zerocash, la nuova moneta totalmente anonima


Accedi per lasciare un commento

Non perdere i nuovi articoli e le opportunità sulle criptovalute. Iscriviti alla newsletter!
Iscrizione