La privacy con gli zk-SNARK in Ethereum
La privacy con gli zk-SNARK in Ethereum
Ethereum

La privacy con gli zk-SNARK in Ethereum

By Aneta Karbowiak - 17 Lug 2018

Chevron down
Ascolta qui
download

Read this article in the English version here.

La privacy della blockchain non è una caratteristica tassativa, ma diventa sempre più importante. La blockchain è trasparente e pubblica per sua natura e un indirizzo non è linkato all’identità reale.

Ciononostante è facile risalire a chi effettua una transazione se si analizzano nel tempo e i diversi indirizzi.

Spesso possono sorgere dei pattern specifici perché gli indirizzi forniscono sempre più informazioni e si ottiene un cosiddetto processo di “deanonimizzazione”, soprattutto se viene fatta da una persona quando la transazione che ha seguito il KYC e AML.

Per perdere la privacy basta anche che una transazione venga fatta da un utente il cui indirizzo è conosciuto.

È evidente che chi analizza la blockchain, riesce a individuare sia i fondi sia l’utente abbastanza in fretta. Ma tanti sostenitori della privacy ritengono che occorra impedirlo rafforzando le misure di sicurezza.

Troppa trasparenza

Le transazioni sulla blockchain di Bitcoin o di Ethereum rivelano il mittente, il destinatario e anche l’importo. Alcuni pensano che questa trasparenza della blockchain non sia sempre necessaria e in certi casi possa anche risultare dannosa.

Questo perché dall’analisi della storia delle transazioni si può arrivare anche alla localizzazione dell’individuo.

Basta vedere la posizione del commerciante che accetta i pagamenti. I malintenzionati potrebbero sfruttare questa informazione per derubare l’utente o per seguirlo.

Dallo storico delle operazioni BTC o ETH di un azienda, i competitor potrebbero ottenere delle informazioni riguardo ai fornitori, al fatturato, alle spese ecc…

Il pagamento di un particolare servizio medico potrebbe essere sfruttato dalle compagnie di assicurazione per aumentare la rata o perfino per rifiutare la copertura sanitaria.

Di scenari ce ne sono tanti e sono altrettanti rischi correlati per la privacy.

La privacy di una blockchain si può migliorare

Esistono dei metodi per rafforzare la privacy attraverso l’utilizzo dei nuovi indirizzi o lo scambio dei fondi con altri utenti con lo scopo di mescolare le transazioni, ma queste pratiche lasciano sempre una traccia mentre i metodi di analisi migliorano.

Esistono criptovalute come Monero, Zcash, Dash che implementano le tecnologie specifiche per garantire l’anonimato ed Ethereum utilizza zero knowledge proof o zk-SNARK che significa che nulla viene rivelato tranne la “verità dell’affermazione”.

zk-SNARK è la tecnologia base di Zcash e implica che tra due parti di una transazione, ciascuna è in grado di provare all’altra che ha un insieme specifico di informazioni, senza però rivelare quali siano tali informazioni.

Questo sistema è diverso da altri sistemi in cui almeno una parte ha bisogno di conoscere tutte le informazioni.

Con zk-SNARK è possibile provare tramite una prova matematica il possesso di una password senza mai doverla rivelare.

Vitalik Buterin entusiasta di zk-SNARK in Ethereum

Ma mentre Zcash utilizza zk-SNARK come una caratteristica fissa, Ethereum ha incluso questa tecnologia nella blockchain soltanto a gennaio e non la usa per tutte le transazioni.

Vitalik Buterin parlando ultimamente al TC Sessions a Zugo si è mostrato entusiasta verso questo tipo di protezione di privacy, ammettendo anche che partecipa e supporta le tecnologie zero knowledge “includendo il tutoring sugli SNARKs e STARKs”.

Personalmente ho scritto alcuni tutorial su STARK e sto pensando di fare molto di più su STARK in futuro. Sto cercando di vedere cosa servirebbe per rendere la blockchain di Ethereum amichevole con gli STARKs, così che includa per esempio il supporto delle operazioni “final field” e altre cose coinvolte nella verifica STARK”, ha detto Buterin.

Il developer si vuole concentrare sulla creazione di un ecosistema degli smart contract che proteggano la privacy e sia facile da usare.

Buterin crede che la privacy sia necessaria e utile in tanti casi.

Secondo lui questi smart contract “personalmente possono essere utilizzati da vari tipi di applicazioni e costruzioni sulla blockchain per cercare di minimizzare l’accesso alla manipolazione del mercato. Possono essere usati per migliorare vari tipi di meccanismi come le aste”.

L’utilizzo legittimo di privacy coin è quindi possibile e desiderabile, ma Vitalik dice che “l’entusiasmo per questa tecnologia non è solo per la privacy ma anche per la scalabilità. Più della metà dell’eccitazione attorno agli zk-SNARK e agli zk-STARK non è per la loro privacy, ma perché consente di dimostrare calcoli arbitrariamente complessi e una sola prova che possono essere molto compatti e verificabili in pochi millisecondi.

Decentralized Ethereum Mixer con gli zk-SNARK

L’applicazione che implementa gli zk-SNARK su Ethereum è Miximus. La dapp è attualmente sul testnet ed è ancora nella fase di sviluppo, ma il suo funzionamento è semplice.

Deve nascondere il mittente, il destinatario e l’importo della transazione. BarryWhiteHat, developer che ha sviluppato Miximus, lavora su questa tecnologia che potrebbe essere implementata nelle votazioni, nella governance o in un social network anonimo.

Questo può essere possibile perché anche l’identità in Miximus è anonima. Un utente può provare di far parte di un gruppo rimanendo anonimo. Per questa specifica caratteristicha si ipotizza l’utilizzo del login con GitHub che trasferirebbe la reputazione, ma non l’identità.

È stato anche proposto l’utilizzo dei dati biometrici anche se questo approccio potrebbe essere più rischioso in quanto l’identità sarebbe pubblicamente rivelata a ognuno che entrerebbe in possesso di questi dati.

Miximus impedisce anche che ci possa essere la possibilità di linkare multiple identità.

Le sfide da superare

Le prospettive sembrano interessanti, ma esistono anche le sfide che riguardano la reputazione, ma anche il tempo di prova e il prezzo del gas.

Il sistema supporta soltanto la reputazione binaria, ma questa potrebbe essere hackerata se si aggiungesse più volte un dato utente al Merkle tree. “Quindi l’utente 1 avrebbe la reputazione 1 e l’utente 2 che ha due voci nell’albero di merkle ha la reputazione 2” scrive BarryWhiteHack sulla repo di GitHub.

Il limite in questo social network anonimo proposto dal developer sarebbe che non c’è la possibilità di bruciare e di rischiare la reputazione.

I developer di altre blockchain soprattutto hanno criticato zk-SNARK per i tempi di prova che sono abbastanza lunghi.

Nel Zcash esso ammonta a un minuto e in Miximus a 7 minuti e non è possibile sul cellulare, ma il prossimo aggiornamento a Zcash dovrebbe ridurlo drasticamente. Aggiuntivamente se i tempi di verifica richiedono soltanto millisecondi, come confermato da Buterin, potrebbe avere senso passare così tanto tempo a provare qualcosa.

Fare una singola transazione Miximus è abbastanza costoso perché il prezzo del gas su Ethereum è alto e la transazione richiede circa 1 milione di gas, ma questo problema è probabile che sarà risolto quando i costi del gas verranno ripresi.

Vedi Ethereum / EIP n. 1187 e EIP n. 1108.

Aneta Karbowiak
Aneta Karbowiak

Laureata in Biologia all'Università degli Studi di Genova, si è presto interessata allo sviluppo delle applicazioni mobili e dei chat bot. È entrata nel mondo dell'editoria come manager di un sito di sport inglese dove ha gestito un team di dieci persone. Appassionata della tecnologia blockchain e delle criptovalute, ha cominciato a scrivere per Qubithacker.

Utilizziamo i cookie per essere sicuri che tu possa avere la migliore esperienza sul nostro sito. Se continui ad utilizzare questo sito noi assumiamo che tu ne sia felice.