I ricercatori del MIT hanno sviluppato una nuova criptovaluta sicura che riduce fino al 99% la necessità degli utenti di dati per accedere alla rete e verificare le transazioni, rispetto alle popolari criptovalute di oggi, il che potrebbe significare una rete più scalabile. Credito:Christine Daniloff
I ricercatori del MIT hanno sviluppato una nuova criptovaluta che riduce drasticamente i dati necessari agli utenti per accedere alla rete e verificare le transazioni, fino al 99% rispetto alle popolari criptovalute odierne. Ciò significa una rete molto più scalabile.
Criptovalute, come il popolare Bitcoin, sono reti costruite sulla blockchain, un registro finanziario formattato in una sequenza di singoli blocchi, ciascuno contenente i dati della transazione. Queste reti sono decentralizzate, il che significa che non ci sono banche o organizzazioni per gestire fondi e saldi, così gli utenti uniscono le forze per archiviare e verificare le transazioni.
Ma il decentramento porta a un problema di scalabilità. Per entrare in una criptovaluta, i nuovi utenti devono scaricare e archiviare tutti i dati delle transazioni da centinaia di migliaia di singoli blocchi. Devono anche memorizzare questi dati per utilizzare il servizio e aiutare a verificare le transazioni. Questo rende il processo lento o computazionalmente poco pratico per alcuni.
In un documento presentato il mese prossimo al Network and Distributed System Security Symposium, i ricercatori del MIT introducono Vault, una criptovaluta che consente agli utenti di accedere alla rete scaricando solo una frazione dei dati totali della transazione. Incorpora anche tecniche che eliminano gli account vuoti che occupano spazio, e consente le verifiche utilizzando solo i dati delle transazioni più recenti che sono divisi e condivisi attraverso la rete, riducendo al minimo i requisiti di archiviazione ed elaborazione dei dati di un singolo utente.
Negli esperimenti, Vault ha ridotto la larghezza di banda per l'adesione alla sua rete del 99% rispetto a Bitcoin e del 90% rispetto a Ethereum, che è considerata una delle criptovalute più efficienti di oggi. È importante sottolineare che Vault garantisce comunque che tutti i nodi convalidino tutte le transazioni, fornendo una stretta sicurezza pari alle sue controparti esistenti.
"Attualmente ci sono molte criptovalute, ma stanno incontrando colli di bottiglia relativi all'adesione al sistema come nuovo utente e allo storage. L'obiettivo generale qui è consentire alle criptovalute di scalare bene per un numero sempre maggiore di utenti, " dice il co-autore Derek Leung, uno studente laureato nel Laboratorio di Informatica e Intelligenza Artificiale (CSAIL).
Insieme a Leung sul documento ci sono i ricercatori CSAIL Yossi Gilad e Nickolai Zeldovich, che è anche professore nel Dipartimento di Ingegneria Elettrica e Informatica (EECS); e il recente alunno Adam Suhl '18.
Volteggiando sui blocchi
Ogni blocco in una rete di criptovaluta contiene un timestamp, la sua posizione nella blockchain, e stringa a lunghezza fissa di numeri e lettere, chiamato "hash, " questa è fondamentalmente l'identificazione del blocco. Ogni nuovo blocco contiene l'hash del blocco precedente nella blockchain. I blocchi in Vault contengono anche fino a 10, 000 transazioni, o 10 megabyte di dati, che devono essere tutte verificate dagli utenti. La struttura della blockchain e, in particolare, la catena di hash, assicura che un avversario non possa hackerare i blocchi senza essere scoperto.
Nuovi utenti si uniscono alle reti di criptovaluta, o "stivaletto, " scaricando tutti i dati delle transazioni passate per assicurarti che siano sicuri e aggiornati. Per unirti a Bitcoin l'anno scorso, ad esempio, un utente scaricherà 500, 000 blocchi per un totale di circa 150 gigabyte. Gli utenti devono anche archiviare tutti i saldi dei conti per aiutare a verificare i nuovi utenti e garantire che gli utenti dispongano di fondi sufficienti per completare le transazioni. I requisiti di archiviazione stanno diventando sostanziali, poiché Bitcoin si espande oltre 22 milioni di account.
I ricercatori hanno costruito il loro sistema su una nuova rete di criptovalute chiamata Algorand, inventata da Silvio Micali, il Ford Professor of Engineering al MIT:è sicuro, decentralizzato, e più scalabile rispetto ad altre criptovalute.
Con le criptovalute tradizionali, gli utenti competono per risolvere equazioni che convalidano i blocchi, con il primo a risolvere le equazioni ricevendo fondi. Man mano che la rete cresce, questo rallenta i tempi di elaborazione delle transazioni. Algorand utilizza un concetto di "prova di gioco" per verificare in modo più efficiente i blocchi e consentire ai nuovi utenti di partecipare. Per ogni blocco, viene selezionato un "comitato" di verifica rappresentativo. Gli utenti con più soldi, o quote, nella rete hanno maggiori probabilità di essere selezionati. Per entrare in rete, gli utenti verificano ogni certificato, non tutte le transazioni.
Ma ogni blocco contiene alcune informazioni chiave per convalidare il certificato immediatamente prima di esso, il che significa che i nuovi utenti devono iniziare con il primo blocco della catena, insieme al suo certificato, e convalidare in sequenza ciascuno in ordine, che può richiedere molto tempo. Per accelerare le cose, i ricercatori forniscono a ogni nuovo certificato informazioni di verifica sulla base di un blocco di poche centinaia o 1, 000 blocchi dietro di esso, chiamato "breadcrumb". Quando un nuovo utente si unisce, abbinano il breadcrumb di un primo blocco a un breadcrumb 1, 000 blocchi più avanti. Quel breadcrumb può essere abbinato a un altro breadcrumb 1, 000 blocchi più avanti, e così via.
"Il titolo della carta è un gioco di parole, " Dice Leung. "Un caveau è un posto dove puoi depositare denaro, ma la blockchain ti consente anche di "scavalcare" i blocchi quando ti unisci a una rete. Quando sto facendo il bootstrap, Ho solo bisogno di un blocco nel passato per verificare un blocco in futuro. Posso saltare tutti i blocchi in mezzo, che ci fa risparmiare molta larghezza di banda."
Dividi e scarta
Per ridurre i requisiti di archiviazione dei dati, i ricercatori hanno progettato Vault con un nuovo schema di "sharding". La tecnica divide i dati delle transazioni in porzioni più piccole, o frammenti, che condivide attraverso la rete, quindi i singoli utenti devono elaborare solo piccole quantità di dati per verificare le transazioni.
Per implementare la condivisione in modo sicuro, Vault utilizza una struttura di dati ben nota chiamata albero Merkle binario. Negli alberi binari, un singolo nodo superiore si dirama in due nodi "figli", e quei due nodi si rompono ciascuno in due nodi figli, e così via.
Negli alberi di Merkle, il nodo superiore contiene un singolo hash, chiamato hash radice. Ma l'albero è costruito dal basso, su. L'albero combina ogni coppia di hash figli lungo la parte inferiore per formare il loro hash genitore. Ripete quel processo su per l'albero, assegnando un nodo genitore da ogni coppia di nodi figli, fino a quando non combina tutto nell'hash radice. Nelle criptovalute, il nodo superiore contiene un hash di un singolo blocco. Ciascun nodo inferiore contiene un hash che indica le informazioni sul saldo di un conto coinvolto in una transazione nel blocco. L'hash di bilanciamento e l'hash di blocco sono legati insieme.
Per verificare una transazione, la rete combina i due nodi figli per ottenere l'hash del nodo padre. Ripete quel processo risalendo l'albero. Se l'hash finale combinato corrisponde all'hash radice del blocco, la transazione può essere verificata. Ma con le criptovalute tradizionali, gli utenti devono memorizzare l'intera struttura ad albero.
Con Volta, i ricercatori dividono l'albero Merkle in frammenti separati assegnati a gruppi separati di utenti. Ogni account utente memorizza solo i saldi degli account nel frammento assegnato, così come gli hash della radice. Il trucco sta nel fare in modo che tutti gli utenti memorizzino un livello di nodi che attraversa l'intero albero Merkle. Quando un utente deve verificare una transazione dall'esterno del proprio shard, tracciano un percorso verso quel livello comune. Da quello strato comune, possono determinare il saldo del conto al di fuori del loro frammento, e continuare la convalida normalmente.
"Ogni frammento della rete è responsabile dell'archiviazione di una fetta più piccola di una struttura di big data, ma questa piccola fetta consente agli utenti di verificare le transazioni da tutte le altre parti della rete, "dice Leung.
Questa storia è stata ripubblicata per gentile concessione di MIT News (web.mit.edu/newsoffice/), un popolare sito che copre notizie sulla ricerca del MIT, innovazione e didattica.