Algorand: a Blockchain technology for business applications without compromise

Algorand, riconosciuta come la tecnologia più interessante e promettente per la Blockchain, è una giovane azienda nata da una brillante idea: nell’estate del 2017 lessi in una newsletter dell’ACM l’annuncio di un webinar del Prof. Silvio Micali, molto noto per i suoi studi sulla cifratura che gli sono valsi importanti riconoscimenti, uno dei quali il premio Turing, su una nuova tecnologia per Blockchain - Algorand - che avrebbe consentito una Blockchain efficiente, sicura e democratica. Mi aveva incuriosito il riferimento ad un modello democratico di Blockchain perché quanto avevo letto fino ad allora della Blockchain basata sui miners necessari per il Prof of Work (PoW), come ad esempio in Bitcoin[i] per convalidare la corretta sequenza dei blocchi, non mi convinceva né per trasparenza, né per efficienza. Inoltre i problemi legati alla biforcazione della sequenza dei blocchi, inevitabile prima o poi nel modello PoW di Blockchain, erano piuttosto preoccupanti e poco convincente il modo in cui poteva venire risolto; infine il tempo di risposta non era affatto soddisfacente per le applicazioni aziendali e in particolare per i pagamenti e l’e-commerce. Contestualmente nei primi seminari sulla Blockchain si faceva un po’ di confusione tra criptovalute, tra cui la più nota è la succitata Bitcoin, e la tecnologia sottostante detta Blockchain, cioè la catena di blocchi, costruiti in maniera distribuita, leggibili ma immodificabili e collegati in sequenza mediante tecniche di cifratura.

Il webinar del prof. Micali non deluse le attese e contattai il professore per chiedergli se potesse ripeterlo in italiano[ii] a beneficio dei membri della mia associazione, il CDTI di Roma www.cdti.org. Quando appresi che Algorand non era solo una nuova e brillante tecnologia open source, ma anche una nuova impresa volta alla realizzazione di una piattaforma tecnologica di primo livello indipendente dalle applicazioni aziendali, pensai alle grandi opportunità per le aziende italiane, di informatica e non (l’Italia è da sempre il Paese delle PMI), di conoscere qualcosa di veramente innovativo e dal grande potenziale.

L’iniziativa imprenditoriale Algorand si è sviluppata in due organizzazioni: 1) una società con sede negli USA www.algorand.com che offre ad aziende utenti finali di soluzioni informatiche e a terze parti la piattaforma tecnologica abilitante applicazioni su Blockchain; 2) l’azienda https://algorand.foundation con sede a Singapore che opera nelle criptovalute e nei sistemi di pagamento[iii].

Quello che mi ha colpito in Algorand è la originalità dell’idea della tecnologia a cui rimando per una presentazione se non completa ma certamente leggibile alla pagina del sito di Algorand https://www.algorand.com/resources/blog/algorands-core-technology-in-a-nutshell (nello stesso sito sono presenti anche documenti di rigore scientifico e rivolti agli specialisti).

I difetti del PoW sono ben noti (sono esposti nel suddetto articolo: lentezza e non scalabilità; pseudo decentramento per via della concentrazione dei miners nel corso degli anni in pochissimi centri specializzati per potenza di elaborazione, con perdita della democraticità iniziale della soluzione e scarsa sicurezza contro attacchi alla rete di telecomunicazione, e ancora altri rischi; biforcazioni inevitabili della catena dei blocchi approvati[iv]) e sono state cercate alternative, Algorand puntando in alto ha mirato a superare anche i difetti dei primi protocolli proposti in alternativa al PoW. Gli altri protocolli possibili che consentono tempi di risposta molto migliori del PoW sono il Delegated Proof of Stake (DPoS), il Bonded Proof of Stake (BPoS) e il Pure Proof of Stake (PPoS); e nello stesso articolo sono presentate le criticità del DPoS e del BPoS scelti da alcuni per le proprie Blockchain alternative a quella sottostante Bitcoin.

Algorand implementa il Pure Proof of Stake (PPoS) per la scelta del prossimo blocco valido in un modo che assicura nello stesso tempo scalabilità, sicurezza e un vero decentramento[v].

Premesso che un utente della rete ha nel suo wallet un certo numero di token, vedendo le cose molto dall’alto in Algorand un nuovo blocco valido è costruito in due fasi:

  • Nella prima fase un singolo token viene selezionato a caso e il suo proprietario è l'utente che propone il blocco successivo come quello corretto;
  • Nella seconda fase vengono selezionati 1000 token tra tutti i token attualmente nel sistema, ed i proprietari di questi 1000 token vengono selezionati per far parte di un comitato che approva il blocco proposto dal primo utente.

Di conseguenza e più in generale, alcuni membri del comitato possono essere scelti alcune volte, nel qual caso il membro avrà k voti (nel gruppo selezionato a caso) per approvare il blocco successivo.

La seconda fase è necessaria perché serve a gestire la possibilità che il blocco sia scritto da un cattivo attore: se il 10 percento dei token di Algorand appartenesse a persone disoneste, una volta su dieci, l'utente selezionato nella fase 1 per proporre un blocco potrebbe essere un cattivo attore. Di conseguenza, potrebbe dire ad alcuni utenti che il blocco è X e ad altri utenti che il blocco è Y e così via, creando così disaccordo su quella che è la Blockchain corretta.

La fase 2 serve per risolvere questo problema: in effetti, se selezioni a caso 1000 token quando il 10% dei token è in mani disoneste, la probabilità che la maggior parte delle monete selezionate appartenga a cattivi attori, cioè la probabilità che la maggioranza dei voti della commissione sia espressa da attori cattivi è così bassa da essere trascurabile.

Supponiamo che, questa volta, non sei stato selezionato per proporre un blocco e che non sei stato selezionato per far parte di un comitato per approvare un blocco proposto, ma vedi che un dato blocco B è stato approvato, ad esempio, da 700 su 1000 voti del comitato, allora sai che B è davvero il blocco successivo.

L’assunto del metodo risiede nel fatto che la stragrande maggioranza delle persone è onesta, per cui è impossibile imbrogliare per la minoranza economica, mentre sarebbe stupido imbrogliare per la maggioranza economica perché finirebbe per deprezzare il valore posseduto (infatti la moneta non sarebbe più accettata e il suo valore crollerebbe in presenza di comportamenti scorretti). 

Anche la scelta del comitato è fatta a caso e con un metodo assolutamente non condizionabile: affinché tu faccia parte del comitato, una delle tue monete deve vincere una lotteria individuale, che è equa grazie alla cifratura[vi], che esegui in isolamento - cioè senza parlare con nessun altro - nella privacy del tuo computer. E dal momento che la lotteria è equa perché cifrata, non è possibile alterare in alcun modo la possibilità di essere selezionati (e nemmeno chi avesse enormi risorse computazionali sarebbe in grado di aumentare la probabilità di essere selezionato).

Per selezionare 1.000 token casuali tra, ad esempio, 10.000.000.000 token, ciascun token viene selezionato con una probabilità 1.000 / 10.000.000.000 - cioè con probabilità 1 su 10 milioni.

Quindi, non appena un utente vede un blocco proposto, si chiede: posso essere un membro del comitato selezionato per approvare un blocco? E quanti voti avrò?  Per rispondere a queste domande, si esegue la lotteria cifrata sul suo laptop per ognuno dei token che possiede  (e la tecnologia consente di eseguire una singola lotteria invece di tante lotterie separate per ogni utente!). Una volta che un utente esegue la sua lotteria, si verifica uno dei due casi:

  • Nessuno dei suoi token vince la lotteria cifrata, nel qual caso qualsiasi opinione espressa sul blocco verrà ignorata;
  • Alcuni dei suoi token vincono la lotteria cifrata, nel qual caso ottiene un biglietto vincente, ovvero una breve dimostrazione da tutti facilmente verificabile di avere k voti in commissione; in quest'ultimo caso, diffonde attraverso la rete sia un biglietto vincente comprovante che ha k voti, che la propria opinione sul blocco successivo proposto.

Questa metodo implementabile da Algorand con una tecnologia adeguata allo scopo assicura alla Blockchain scalabilità, sicurezza, decentramento e assenza di percorsi biforcati[vii].

Per completezza è importante far notare che, mentre Algorand è una tecnologia PPoS permissionless, nel mercato esistono, come detto all’inizio nella nota in calce, altri approcci, quali ad esempio la Blockchain di IBM, HyperLedger, R3 Corda, Etherum. Ci sono anche da considerare per capirne la portata l’annuncio di Facebook relativo alla Libra per il 2020 e le discussioni in corso tra permissioned e permissionless Blockchain.

Cerco di inquadrare questi temi per consentire alle persone interessate di farsi una prima idea utile per orientarsi e facilitare futuri, personali approfondimenti.

Facebook che offre servizi centralizzati di reti sociali ha espresso interesse nella Blockchain con l’annuncio della Libra, che è attinente ai sistemi di pagamento (ma con la probabile successiva erogazione del credito Facebook entrerà nel mondo delle criptovalute FIAT[viii]).

Facebook non sembra interessata a fornire una piattaforma per applicazioni di terze parti diverse da un’interfaccia alla sua criptovaluta; l’architettura tecnica di Facebook sarà verosimilmente centralizzata e permissioned, per cui Libra si porterà appresso i problemi di sicurezza insiti nei servizi centralizzati. In sintesi, Libra copia il gergo della Blockchain modello Bitcoin, ma dal punto di vista della soluzione tecnologica è piuttosto distante da modelli tecnologicamente avanzati e non sembra essere nulla di sostanzialmente nuovo.

Su versanti più tecnologici, ci sono le architetture decentrate e il loro grado di decentramento può essere naturalmente a diversi livelli, andando da modelli di Blockchain completamente accentrati a modelli totalmente decentrati.

L’accentramento riguarda il set up di nuovi utenti autorizzati (Blockchain permissioned) e i server posseduti /controllati da un’autorità centrale, come nel caso della Blockchain dell’IBM.

Ci possono essere anche sistemi in cui i nuovi utenti hanno bisogno di essere autorizzati (Blockchain permissioned), ma che si basano su procedure operative che si coordinano mediante protocolli condivisi; il riferimento è al consorzio Hyperledger (open source) e a R3 Corda (closed sourced). Queste soluzioni sono fortemente scalabili (si hanno sempre ottimi tempi di risposta) e interoperabili, ma per la sicurezza non sono al top perché di fatto i processi di consenso e autorizzazione sono parzialmente centralizzati rispetto alle soluzioni Bitcoin, Etherum[ix] e ZCash che però a loro volta non assicurano le stesse prestazioni (minore scalabilità).   E’ importante riflettere sul fatto che avere una Blockchain permissionless non significa affatto che non si possono implementare politiche di autorizzazione per l’uso di applicazioni. Infatti Blockchain permissionless significa semplicemente una Blockchain aperta, pubblica, appositamente disegnata contro i cattivi comportamenti per cui nuove applicazioni possono essere aggiunte alla rete senza autorizzazioni e controlli di altri. La rete Blockchain è uno strato di trasporto e il controllo accessi è demandato alle singole applicazioni che lo richiedano. Mentre Blockchain permissioned indica semplicemente una Blockchain solo privata, che naturalmente è più facile da progettare perché c’è un’autorità centrale.

I problemi succitati hanno portato alcuni a dire che sia inevitabile accettare compromessi tra sicurezza, scalabilità e decentramento; cioè che tutte e tre le qualità NON sono contemporaneamente possibili.  Algorand ritiene giustamente che non sia pensabile rinunciare a nessuna delle tre qualità e con la sua tecnologia prova che il Blockchain Trilemma è falso. 

Ciò detto la tecnologia Algorand sarà utile per le terze parti e sarà da questi utilizzata, se risulterà più semplice da impiegare nello sviluppo delle applicazioni aziendali basate su Blockchain. Sull’obiettivo di facilitare il lavoro delle terze parti Algorand ha lavorato fin dall’inizio per distinguersi rispetto alla concorrenza e il riscontro presso gli sviluppatori è positivo[x].

Oggi Algorand offre tre reti che sono MainNet, TestNet e DevNet:

  • DevNet è pensata per essere utilizzata dagli sviluppatori che stanno lavorando al codice sorgente di Algorand;
  • TestNet è utilizzata dagli sviluppatori che vogliono essere in grado di testare un'applicazione prima di inviarla al MainNet (pertanto chi sta pensando di sviluppare un'applicazione su Algorand, è consigliato di farlo su TestNet);
  • MainNet è la rete principale di Algorand, utilizzata dalle applicazioni di produzione.

Per maggiori informazioni andare su  https://developer.algorand.org/docs/getting-started e su https://developer.algorand.org/docs/using-sdks-and-rest-apis

Passo successivo

In autunno ci sarà a Roma un convegno che vedrà coinvolte le aziende che stanno sviluppando su tecnologia Algorand e certamente interverranno anche aziende italiane.

Dall’estero interverranno società che già hanno realizzato applicazioni e servizi innovativi come, ad esempio (la lista non è esaustiva):

Il confronto produrrà un reciproco arricchimento.

Sergio Caserta, consigliere del CDTI di Roma, è Algorand Ambassador, responsabile Italia della Vanguard Communications Europe e value maximiser della MirrorWave. Caserta si è laureato in Ingegneria Elettronica  nel 1977 a Roma ed è membro ACM; può essere contattato via email scrivendo a [email protected]



[i] Bitcoin è un tipo di moneta elettronica/digitale decentralizzata, quindi senza una banca centrale o senza un unico amministratore, che può essere scambiata in una rete peer-to-peer senza intermediari; le transazioni in Bitcoin sono convalidate dai nodi della rete e poste in un registro pubblico distribuito; tutta la tecnologia abilitante è detta Blockchain.  Per supportare la criptovaluta Bitcoin la Blockchain originaria, quindi quella attribuita a Nakamoto, deve essere permissionless. Il significato del termine Blockchain si è esteso col suo successo e individua oggi una famiglia di tecnologie, tra cui anche le Blockchain private (permissioned) che si sono diffuse per le applicazioni aziendali.

[ii] La registrazione del webinar di Silvio Micali in lingua italiana erogato il 28 febbraio 2018 è disponibile al link https://login.filesanywhere.com/fs/v.aspx?v=8b72698f5e5f737ab1a3) .

[iii] Algorand Foundation il 19 giugno 2019 ha lanciato l’Algo attraverso un’asta pubblica con il metodo del prezzo al ribasso secondo cui alla chiusura dell’asta tutti hanno avuto allo stesso prezzo finale gli Algo ordinati a prezzi diversi secondo le regole dell’asta olandese.

[iv] La biforcazione nella terminologia Blockchain è detta fork e nel sito di Algorand alla pagina https://www.algorand.com/what-we-do/faq/ sono raccolte le definizioni dei principali termini utilizzati in Blockchain; vi si trovano anche la definizione di PoW e la introduzione del forking, che comprende Hard Fork, Temporary Fork e Soft Fork.

[v] Il metodo del PPoS potrebbe essere applicato anche alla governance di una rete.

[vi] La cifratura è essenziale nella Blockchain e i ricercatori di Algorand prevedono di rilasciare una cifratura quantum-resiliency; vedere qui le tecnologie in rilascio https://medium.com/algorand/algorands-forthcoming-technology-bcd17989c874  

[vii] La probabilità di una biforcazione in Algorand esiste solo ad un livello meramente teorico, ed è pari a 10⁻¹⁸.

[viii] Per una spiegazione del termine FIAT Money vedere https://en.wikipedia.org/wiki/Fiat_money

[ix] Etherum, l’alternativa più nota alla Blockchain di Nakamoto, sta abbandonando il PoW per migrare verso il PoS.

[x] Il 22 gennaio 2019 nell’Università Roma Tre c’è stata una presentazione di due dirigenti di Algorand, Chris Hurley (Direttore dello Sviluppo del Business e dei Rapporti con gli Investitori) e Jason Weathersby (Direttore dei Rapporti con gli Sviluppatori); il 10 maggio 2019 ancora nell’Università Roma Tre c’è stato l’intervento di Silvio Micali, Presidente e fondatore di Algorand, all’interno del Data Driven Innovation https://www.youtube.com/watch?v=2Bo-Fo4xUW4&list=PLn0cdhKuQGImA3n1OpNMm5h3eF-xim4QF&index=10&t=0s