MimbleWimble il protocollo su cui si basano le criptovalute Beam e Grin.
06/03/2019
MimbleWimble
il recente protocollo che nel mondo delle crypto sta riscuotendo sempre più successo
Tutto ha inizio nell’agosto 2016 quando è stato proposto alla comunità del Bitcoin un nuovo progetto che ambiva a garantire l’anonimato quasi assoluto per chi effettua operazioni in criptovalute.
Mimblewimble prende il suo nome da un sortilegio che forma dei nodi alla lingua dell’avversario in Harry Potter di fatto impedendo al nemico il semplice parlare.
MimbleWimble: i punti a favore e i punti deboli
Confidenzialità e scalabilità proprio per queste sue duplici funzionalità hanno fin da subito attirato l’interesse del popolo del Bitcoin. In cambio però, sopprimendo gli script delle operazioni, MimbleWimble rinuncia ad altre funzioni come ad esempio la possibilità di eseguire pagamenti offline e di programmare le operazioni.
La Blockchain quindi non permette la programmazione di smart contract perché non prevede degli “script”.
Come funziona in concreto MimbleWimble
Il bitcoin contiene script integrati nei punti di ingresso (input) e uscita (output) analizzati quando la transazione viene confermata. È imperativo che gli script vengano esaminati e verificati.
Insomma, se il Bitcoin offre tanti vantaggi, per come è strutturato non può garantire l’anonimato. Anche se è impossibile risalire al proprietario di un indirizzo Bitcoin, chiunque può accedere al flusso delle transazioni riguardanti qualunque indirizzo.
Non è così per MimbleWimble. Andrew Poelstra uno dei suoi ideatori, sostiene che per ovviare al difetto sia possibile far ricorso a un sistema di “scriptless scripts”. In pratica, gli script vengono effettuati direttamente dagli utenti coinvolti nella transazione, anziché dalle macchine dei nodi del network.
Il sistema funziona con degli “pseudonimi”.
Nelle operazioni in bitcoin, i vecchi output confermano i nuovi. Gli output hanno script con chiave pubblica (“PubKey”) indipendenti l’una dall’altra. Nelle operazioni su MimbleWimble, invece, gli output hanno soltanto chiavi pubbliche EC e sono privi di script. La differenza tra le chiavi dei nuovi output e le vecchie è firmata da tutti i partecipanti. Gli output (“transaction kernels”) sono l’unico elemento che necessita di essere conservato nella blockchain.
Nel white paper di MimbleWimble scritto da Tom Elvis Jedusor – anch’esso un nome attinto dall’universo di Harry Potter – vengono introdotti i concetti di CoinJoin e Transazioni Confidenziali, che mirano a ovviare al problema dell’anonimato del Bitcoin.
La tecnica CoinJoin e le transazioni confidenziali
Alla pari del Bitcoin, il protocollo si basa sul concetto di “uscita transazionale”. Ma nel caso di MimbleWimble ogni uscita corrisponde di fatto anche a un’entrata. Il sistema aggiunge un cosiddetto “fattore di cecità” crittografico ai valori di ingresso e uscita delle transazioni. Questo consente di “oscurare” l’indirizzo di destinazione di un’operazione e anche l’ammontare scambiato.
La tecnica CoinJoin, proposta da Gregory Maxwell, permette di “mescolare” tutte le operazioni avvenute sulla blockchain, integrando più transazioni in una sola. Un blocco della catena contiene una grande transazione unica. La dimensione elevata rende più difficile per una persona esterna sapere qual è stata l’uscita corrispondente a una determinata entrata e viceversa.
Gli input e gli output del mittente e del destinatario vengono offuscati. Quando le operazioni di MimbleWimble vengono combinate, un blocco consiste di un elenco di input, un elenco di output e una firma datata. Questo garantisce ai blocchi una certa leggerezza, in quanto non c’è bisogno di salvare altri dati ridondanti. Solo input e output contanto.
Le differenze con la blockchain del Bitcoin
Sottraendo gli input totali dagli output totali, assicurando che il risultato dia zero, una blockchain basata su questo sistema viene considerata valida. Nel caso del Bitcoin la blockchain viene validata in un modo diverso e più complesso: tutta la blockchain deve essere scaricata e va analizzata la storia di una transazione.
Al contrario dei protocolli su cui gira il Bitcoin, qui pur trattandosi della stessa blockchaingrazie a un metodo di crittografia omomorfica la somma, l’acquirente e il venditore non vengono rivelati perché non ci sono indirizzi a cui risalire nel sistema. La segretezza è in definitiva la parola d’ordine.
Il concetto di transazioni confidenziali, ideato dall’ex programmatore di Bitcoin Adam Back, consente a chi invia l’informazione di codificare l’ammontare di bitcoin che vogliono mandare usando i “fattori di cecità” sopra citati. Si tratta di un valore random, utilizzato per codificare la somma di bitcoin scambiati in una transazione. Ma che non ha un impatto sul’input e l’output dell’operazione.
Così come la maledizione della lingua di Piombo impedisce all’avversario di parlare e quindi di pronunciare incantesimi, allo stesso modo “MimbleWimble vieta alla catena dei blocchi di comunicare le informazioni personali dei suoi utenti”, spiega nel white paper Tom Elvis Jedusor, che è il vero nome di Voldemort, il nemico giurato di Harry.
I progetti di implementazione Grin e Beam
A rimanere segreta è anche l’identità del suo creatore, che è sparito senza lasciare traccia. Ma il protocollo ha intrigato immediatamente molti dei programmatori della sfera Bitcoin, tra cui il matematico Poelstra. Il quale ha pubblicato una versione più dettagliata del libro bianco il 6 ottobre del 2016 dopo aver fatto una famosa presentazione all’Università di Stanford sulle qualità di MimbleWimble.
Due settimane dopo, il 20 ottobre poco prima della mezzanotte, uno sconosciuto che si faceva chiamare Ignotus Peverell ha annunciato la nascita di un progetto open-source di implementazione di MimbleWimble: Grin.
Anche in questo caso i riferimenti a Harry Potter sono chiari. Ignotus Peverell è il nome del creatore del mantello invisibile e Grin prende il nome da un mago nero molto potente, Gellert Grindelwald.
Grazie alla collaborazione di diversi developer, che hanno preferito restare anonimi, Grin ha visto la luce il 15 gennaio di quest’anno. Si tratta di un’implementazione leggera nel senso che offre il minimo di funzioni indispensabili.
Rispetto a Monero e Zcash il progetto è relativamente scalabile. Ma rispetto a Beam, un’idea ancora più recente di Grin (metà 2018), non dispone di alcune funzioni interessanti, come ad esempio i blocchi temporali o i portafogli verificabili.
Tuttavia la principale differenza tra i due progetti riguarda la filosofia e non le funzioni pratiche. Non essendo di proprietà di nessuno, Grin ha una marcata componente cyberpunk, mentre Beam, la cui blockchain è stata lanciata il 3 gennaio 2019, ha un chiaro scopo di lucro.
Il progetto è stato sviluppato open-source e tale è rimasto per diversi anni. I suoi programmatori sono sempre rimasti anonimi. Beam, invece, ha una base commerciale, si fa promozione e la squadra che ci lavora si è subito identificata. Un’altra differenza importante è che il primo ha una politica monetaria inflativa, mentre il secondo deflativa.