Algorand: una tecnologia Blockchain per l’IT Manager

L’IT Manager guarda alle prestazioni, alle funzioni e peculiarità, alla diffusione presso i solution provider e, soprattutto se dirigente di una grande azienda, dà priorità alle soluzioni, molto spesso high end, suggerite dalla consulenza.  

Verso la fine di novembre dello scorso anno venne rilasciata la versione 2.0 di Algorand e da allora si è accelerata la diffusione di questa piattaforma in tutto il mondo e a questo link sono raccolti i principali use case Algorand https://www.algorand.com/use-cases.

Anche in Italia si è vista l’adozione di Algorand come piattaforma di primo livello per soluzioni aziendali basate su Blockchain, sebbene le applicazioni più numerose, allo stadio di PoC e in produzione sono all’estero nei paesi tradizionalmente più amanti della sperimentazione. Le esperienze che Algorand sta accumulando riguardano: progetti governativi (tipicamente relativi alla sperimentazione di criptovalute), la finanza tradizionale e la finanza decentralizzata, termine utilizzato per raccogliere un’ampia gamma di casi in cui sono utilizzati diversi tipi di Asset.

In Italia Algorand ha attivato diversi partenariati e, più in generale, progetti di qualsiasi settore merceologico nei quali sia utile un registro immutabile e decentralizzato efficace (ad es.: SIAE, FUB, Stonize, Planetwatch[i], e la lista si allunga ogni mese), ci sono aziende che stanno sviluppando soluzioni che prevedono l’utilizzo di Algorand per la componente Blockchain, esistono rapporti con diverse università statali e sta crescendo il numero di sviluppatori software esperti, sia autonomi che nelle aziende dell’ICT, degli ambienti e dei tool Algorand di sviluppo di sw applicativo (per un’introduzione e dettagli vedere https://developer.algorand.org/). La tecnologia Algorand è in corso di presentazione a grandi aziende e a PMI, sia dell’offerta che della domanda, con notevole interesse dei loro esperti coinvolti, essendo risultato molte volte che Algorand era proprio la soluzione che attendevano dopo le delusioni di un recente passato. Infatti agli inizi (dal 2014 quando Bitcoin aveva assunto una notorietà globale, e in quegli anni Blockchain e Bitcoin erano sinonimi), come avviene per tutte le cose nuove, c’era stato un eccesso di promesse da parte dei fornitori, che hanno determinato una delusione crescente presso le aziende utenti finali quando emersero i vincoli delle piattaforme più diffuse. Questa è stata anche una delle considerazioni di Avivah Litan, analista e vice presidente della ricerca in Gartner.  La risposta a questa delusione furono le piattaforme permissioned, che risolvevano i problemi di performance ma contestualmente non rispettavano la promessa di fondo della Blockchain.

Addirittura Vitalik Buterin di Ethereum https://en.wikipedia.org/wiki/Vitalik_Buterin fece anche un’affermazione molto forte e cioè che non si potessero avere insieme decentralizzazione, scalabilità e sicurezza, e che quindi il management di un’azienda sarebbe dovuto scendere a compromessi e avrebbe dovuto scegliere il binomio di requisiti prioritari per la specifica applicazione.  Si rileva anche una letteratura costruita su questa asserzione che per un po’ ha avuto successo e che successivamente (grazie al Prof. Micali, fondatore e Presidente di Algorand, nonché geniale matematico e crittografo https://people.csail.mit.edu/silvio/) è stata messa profondamente in discussione[ii]. Ma la tecnologia precedente ad Algorand ha nel frattempo causato un forte scetticismo proprio sulla fattibilità e concretezza delle promesse e del valore della tecnologia Blockchain. Oggi è lecito dire che non era sbagliata la vision, ma per abilitare il modello concettuale molto sofisticato che era stato delineato era probabilmente necessario un insieme di ulteriori raffinamenti evolutivi e che, come spesso accade nella disseminazione dell'innovazione, è necessario provvedere a colmare progressivamente il gap apparentemente incolmabile tra obiettivi e strumenti inizialmente proposti.[iii].

Ecco alcune osservazioni che evidenziano la inadeguatezza o quantomeno la parzialità delle soluzioni precedenti:

1. Attendere 10 minuti per essere certi che una transazione si sia conclusa in modo irrevocabile è un tempo inaccettabile per le attuali applicazioni[iv] nei sistemi di pagamento, e per quelle di un ecommerce basato su asset/ token di nuova concezione;

2. Partire da un modello decentrato di Blockchain per arrivare, in tal modo regredendo, ad una concentrazione della potenza elaborativa necessaria, nonostante fosse basata su processori specializzati, in pochi centri di elaborazione al mondo, appartenenti a soggetti neanche indipendenti tra di loro e che consumano una quantità enorme di energia elettrica, non è una cosa positiva in un mondo sempre più orientato al rispetto di obiettivi ecologici, anzi solleva perplessità non risolvibili negli utenti potenziali e negli osservatori del settore;

3. Le Blockchain private possono dare sufficienti garanzie ai soggetti a cui si rivolgono e che la governano (quelli che stabiliscono gli amministratori), ma i dati presenti nella catena sono in ogni caso nell’ambito del controllo di un’entità privata non terza parte rispetto al pubblico e ad altre possibili aziende esterne, che non essendo coinvolte nell’amministrazione della Blockchain privata non potrebbero avere mai una garanzia assoluta della immutabilità nel tempo dei blocchi registrati (è un difetto di fondo della Blockchain privata che cessa di essere un soggetto indipendente e terzo per il beneficio di tutti per cui per alcune applicazioni non appare proprio indicata).

Pero la diatriba tra Blockchain pubblica e privata è comunque reale, perché la varietà delle situazioni e delle esigenze possono imporre vincoli sulla riservatezza dei dati, come è anche per tradizione nel caso di banche, società finanziarie, organizzazioni governative, aziende ospedaliere, ecc. e allora è importante vedere se e come Algorand può e intende risolvere questo problema.

Silvio Micali, Sergey Gorbunov, capo della crittografia in Algorand, e Maurice Herlihy, esperto di elaborazione distribuita appartenente al team dei consulenti scientifici di Algorand[v], affrontano e presentano una soluzione potenziale alla diatriba tra Blockchain permissioned e permissionless nel documento https://www.algorand.com/resources/blog/algorand-co-chains,[vii].che introduce il tema delle Co-Chain che è il modello con cui Algorand risolve la succitata diatriba.  Nel documento spiegano come la Blockchain Algorand potrà mettere in collegamento tante Co-Chain/Blockchain private, senza far perdere loro i vantaggi della Blockchain pubblica, nei casi in cui serve assicurare terzietà (la Blockchain pubblica è super partes).

Le Blockchain private[viii], se basate su Co-Chain Algorand, si avvalgono per la sicurezza di una crittografia di altissima qualità quale è quella creata dai crittografi di Algorand per la loro MainNet[ix] e hanno gli ulteriori benefici della Blockchain Algorand pubblica, quali ad esempio le principali funzioni applicative portate a layer-1, come di seguito esposto.  A valle dell’articolo, Silvio Micali e suoi colleghi, ognuno per le proprie specifiche responsabilità, hanno danno risposte a quesiti di carattere teorico e pratico e l’evento registrato è disponibile al link   https://www.algorand.com/resources/blog/algorand-co-chain-video-replay.

Passando alle prestazioni e alla scalabilità, che sono una diretta conseguenza dell’uso del protocollo Pure Proof of Stake, si ha:

  • Oggi la MainNet Algorand, che è pubblica, supporta 2x103 TPS (Transazioni Per Secondo) con un tempo di risposta di poco maggiore a 4” e si conta di raggiungere per fine anno 10x103 TPS con le medesime prestazioni;
  • La MainNet è concepita per miliardi di utenti; si è appena agli inizi della storia;
  • Nella rete privata Algorand (la Co-Chain) il tempo di risposta previsto sarà al di sotto del secondo;
  • Il livello delle prestazioni della rete MainNet Algorand è indipendente dal valore di mercato dell’Algo, mentre per altre Blockchain pubbliche basate sul proof of work questo non avviene proprio per la logica del compenso collegato al mining di un nuovo blocco.

Le prestazioni molto elevate e la scalabilità della rete Algorand sono un vantaggio evidente nelle operazioni di trasferimento fondi legate all’ecommerce e al sistema dei pagamenti al dettaglio come tipicamente sono e gli acquisti via web e il possibile uso di carte elettroniche abbinate a criptovalute, quando fossero emesse, presso POS di esercizi commerciali.  Le commissioni dovrebbero essere più basse di quelle attuali e quindi più vantaggiose per l’esercente per cui queste carte dovrebbero godere di una rapida accettazione (molti piccoli commercianti operanti nei comuni minori del nostro paese non gradiscono il POS per le alte commissioni, non costituendo per loro un rischio la presenza di contante in cassa perché la criminalità è minore, se non del tutto assente, e le distanze da percorrere per portare il contante in banca sono minime).

Tuttavia anche le tesorerie delle grandi aziende che operano a livello globale considereranno di ricorrere alla Blockchain e alle criptovalute. Osservatori del settore sostengono da tempo che i loro tesorieri hanno forti incentivi economici verso un utilizzo di sistemi di regolamento al lordo in tempo reale per i pagamenti, invece dell’attuale meccanismo basato sulla regolazione delle situazione nette, come determinatesi alla fine della giornata. Le nuove alternative stanno guadagnando terreno, perché non sembra aver senso per la tesoreria continuare a utilizzare i sistemi attuali che richiedono di mantenere del capitale fermo in numerosi conti bancari aperti in tutto il mondo, che spesso servono solo per finanziare i loro pagamenti tra le filiali e sussidiarie del gruppo. A causa dei vantaggi economici, che per alcune aziende possono essere molto forti, i responsabili della tesoreria di una multinazionale hanno seguito con interesse gli sviluppi della Blockchain nell'area dei pagamenti, e sono oggi in grado di orientarsi verso soluzioni che abbiano senso per loro, e pertanto saranno probabilmente tra i primi a passare ai sistemi di regolamento del lordo in tempo reale.   Le caratteristiche della piattaforma Algorand (prestazioni, sicurezza, funzioni a layer-1, tanto per dirne alcune) sono di estremo interesse  per queste aziende e per i loro fornitori, rendendo molto affidabile e sicura l’introduzione della economicamente più conveniente valuta digitale intermedia per il commercio globale.  Esistono più opzioni per il regolamento del lordo in tempo reale: valuta digitale della banca centrale, stable coin privato, ecc..

Venendo agli aspetti tecnici della rete Algorand, questa è composta da nodi la cui potenza[x] non è essenziale alla efficacia dell’algoritmo di consenso utilizzato per costruzione della Blockchain. Si presume che il lettore abbia già una buona idea della originale modalità definita da Algorand per la scrittura del blocco successivo, tuttavia un ripasso è disponibile alla pagina

https://developer.algorand.org/docs/algorand_consensus/.

Nella rete Algorand ci sono 2 tipi di nodi Relay e Non-Relay e tutti possono partecipare al consenso, ma non è necessario che ogni nodo vi partecipi (in genere si raccomanda che solo i nodi Non-Relay vi partecipino, perché i nodi Relay sono orientati alle comunicazioni, spesso sono collocati presso Internet Exchange Point per ridurre il tempo di propagazione, ma tutti possono installare un nodo Relay; inoltre i nodi off-line non partecipano al consenso). I requisiti hw di un nodo Non-Relay sono molto bassi e un normale PC è più che sufficiente. Un nodo del gruppo di nodi Non-Relay può essere collegato solo a nodi Relay e anche a più di uno, i nodi Relay possono collegarsi con tutti i nodi, ma principalmente servono a inoltrare i blocchi a tutti nodi Non-Relay che sono a loro connessi. I nodi Relay hanno requisiti hw più stringenti ma nulla di particolare in questa fase di esercizio della Blockchain Algorand[xi]. L’unico requisito comune ai 2 nodi sono i sistemi operativi[xii], che possono essere MacOS della Apple e una serie di S.O. Unix[xiii]. La procedura di installazione è la medesima per i due tipi di nodi e per quanto riguarda i nodi Non-Relay, essi possono essere configurati in modo da non archiviare la intera Blockchain, ma solo gli ultimi 103 blocchi.  Per un nodo Relay che è già configurato per archiviare la intera Blockchain può essere prevista una ulteriore configurazione per effettuare una ricerca di un nodo attraverso un’indicizzazione, per la quale si può prevedere anche un range di valori.   

Quindi un’azienda può avere tutti i blocchi di suo interesse in un proprio server ed è importante ricordare che i dati non stanno nella Blockchain ma stanno sempre e solo nei server aziendali[xiv], ove devono stare.

Per quanto attiene al consenso, la probabilità di partecipare è lineare con gli Algo posseduti col solo requisito che il nodo sia online, e se partecipare al consenso o meno è una facoltà del titolare del nodo che ha esercitato precedentemente; per quanto attiene al riconoscimento di compensi questi sono sempre proporzionali alla quantità di Algo e non al tempo in cui è stato on line per partecipare al consenso.

Accanto alla infrastruttura tecnologica, i tool messi a disposizione degli sviluppatori sono relativi ai linguaggi più largamente utilizzati: GO, JAVA, JAVA SCRIPT e PYTHON:

(https://developer.algorand.org/docs/reference/sdks/ ) e passando in esame i mattoni di Algorand, si trova che nello scrivere un’applicazione il programmatore deve occuparsi frequentemente, sono esempi, delle seguenti attività (i link fanno riferimento a Java per brevità, ma tutti i sopracitati linguaggi sono supportati allo stesso modo; nella sezione del sito per i programmatori ci sono esempi e video per apprendere rapidamente le tipiche cose da fare):

Una caratteristica veramente molto importante è che le applicazioni decentrate (nell’industry della Blockchain è usato il termine Dapps https://en.wikipedia.org/wiki/Decentralized_application) e i processi che sono implementabili in Algorand sono costruiti nel layer-1 senza penalizzare prestazioni e sicurezza.

Il riferimento è all’ASA (Algorand Standard Asset), agli Atomic Transfer e agli ASC1 (Algorand Smart Contract in Layer-1).

In Algorand il nome ufficiale dell’Asset è ASA, ed Asset possono essere l’Algo, oppure le rappresentazioni digitali di altre criptovalute o delle diverse monete FIAT (laddove intendano farlo in questa modalità), o ancora entità non finanziarie come i punti fedeltà, i punti di un gioco, e anche i beni caratterizzati dalla loro unicità (ad es.: opere d’arte, edifici, ecc.); dettagli sono disponibili su

https://developer.algorand.org/docs/features/asa/[xvi]; si parla di Asset fungibili e Asset non fungibili per accennare alla ampia gamma di possibilità supportate[xvii].

Gli Atomic Transfer offrono un modo sicuro per trasferire simultaneamente un certo numero di ASA tra i soggetti interessati al trasferimento senza che sia coinvolto un qualsivoglia garante, ciò viene ottenuto attraverso il raggruppamento, ovvero con la creazione di un lotto irriducibile, di tutte le transazioni oggetto del trasferimento di Asset in modo che o vengono eseguite tutte come previsto o nessuna di esse viene eseguita. Il programmatore deve in un Atomic Transfer: creare le transazioni, combinarle e raggrupparle, farle firmare e spedirle. Nel trasferimento possono essere coinvolti Algo o altri Asset. Questa caratteristica, che sembra essere unica nella panoramica delle Blockchain, evita di ricorrere a tecniche molto rischiose e ormai anche un po’ rozze quali quelle descritte in

https://en.bitcoinwiki.org/wiki/Hashed_Timelock_Contracts, e nonostante sia multiparty il tempo di risposta della transazione atomica è sempre quello standard.

Approfondimenti qui https://www.algorand.com/what-we-do/technology#Atomic-Transfers

e qui https://developer.algorand.org/docs/features/atomic_transfers/.

Anche da un punto di vista economico il costo di esecuzione dei trasferimenti atomici è incredibilmente basso[xviii]. Un Atomic Trasfer può combinarsi nelle applicazioni pratiche per gestire le diverse situazioni con Algorand Standard Assets (ASA) e Algorand Smart Contracts (ASC1).

Algorand ha preparato un macro-linguaggio TEAL (Transaction Execution Approval Language) per gli smart contract (nome corretto ASC1, ovvero Algorand Smart Contract in layer-1). TEAL è un linguaggio di programmazione dell’insieme degli stack-language, cioè appartiene ai linguaggi  del genere non-Turing-complete (detto in modo più semplice il linguaggio non ammette la ricorsione[xix], non consente il loop, ma si limita a consentire i salti in avanti), questa limitazione è voluta per evitare errori di programmazione, come ad esempio che il programma non si arresti mai (il linguaggio è interpretato da un automa con stack[xx], da qui la denominazione “stack-language”). TEAL può solo approvare o rigettare transazioni; per maggiori dettagli vedere https://developer.algorand.org/docs/features/asc1/teal_overview/.

Non serve essere esperti di Blockchain per sviluppare software e un programmatore senior impara a muoversi molto bene nell’ambiente di sviluppo Algorand in pochi giorni, se non dopo poche ore se già pratico di ambienti analoghi, riuscendo a sviluppare transazioni come quelle realizzate in altri ambienti in modo probabilmente più rapido. Algorand ha messo a disposizione dei programmatori un sito specializzato in cui può essere reperita documentazione tecnica, tutorial, esempi di soluzioni, articoli e collegamenti al forum della community, che sta diventando una potente risorsa a cui è dedicata un’incredibile attenzione. Ad esempio alla comunità degli sviluppatori sono dedicate iniziative specifiche quali:

  1. https://algorand.foundation/developer-incentive-awards-program, già in atto da tempo;
  2. https://algorand.foundation/grants-program, recente.

Il programma 2. sui Grant è però più ampio e indirizza diverse aree (ricerca, infrastrutture e strumenti di sviluppo, use case e applicazioni, formazione e iniziative di networking) per favorire ancora di più lo sviluppo di un ecosistema di risorse competenti nelle numerose società di informatica italiane in modo che siano capaci di assistere le aziende nella implementazione di soluzioni aziendali lasciando al Algorand solo un supporto di secondo livello[xxi].

In questo modo Algorand può dedicarsi a completare il modello di Blockchain che ha concepito arricchendo la release di funzioni in linea con le richieste: Co-Chain, già illustrata; Smart Contact anche a livello-2; VAULT, che consente ad un utente di diventare immediatamente un nodo della rete; PIXEL, un nuovo schema di firme specifico per Blockchain https://medium.com/algorand/digital-signatures-for-blockchains-5820e15fbe95, e altri come l’implementazione del diritto all’oblio.  


[i] L’azienda è registrata in Francia, ma il fondatore ed il management sono italiani.

[ii] Trilemma; il Prof. Micali si accorse che il trilemma avanzato da Vitalik Buterin, l’inventore degli smart contract, era controverso e controvertibile nel tentativo di dimostrarne teoricamente la esattezza.

[iii] Strumenti adeguati ai fini; per far volare gli aerei servì il motore a scoppio, non bastò quello a vapore; per poter volare ad altissima quota servono gli aerei razzo, ecc.

[iv] Finality; nel mondo Blockchain è usato il termine finality, che è l'affermazione che tutti i blocchi ben formati non verranno revocati una volta registrati nella Blockchain.

[v] Management Algorand; a inizio del 2018 Silvio Micali disse che stava organizzando una fortissima squadra per Algorand; vedere i profili dei rispettivi manager https://www.algorand.com/who-we-are/our-team e https://algorand.foundation/who-we-are .


[vii] Aspetti teorici della Co-Chain: seguirà un approfondimento più dettagliato per gli addetti ai lavori che sarà verosimilmente di non facile comprensione; lo sviluppo di Internet e la facilità di accesso alle informazioni porta molte persone a dedicare il proprio tempo ad approfondire questioni molto difficili come è in questo caso la comprensione della teoria sottostante alla Blockchain che non è affatto agevole ed è riservata a specialisti; è invece essenziale per gli IT manager capire quali possono essere le ricadute nel mondo delle imprese e nella società per quanto di loro interesse.

[viii] All’interno di una rete privata i titolari non desidereranno verosimilmente essere visibili dall’esterno e vorranno gestirsi la propria rete di comunicazione con proprie regole, tra cui per esempio quella di prevedere la presenza di uno o più amministratori che consentano un’attività nella rete e l’utilizzo della stessa secondo regole concordate dalla comunità per cui è nata la rete; un significativo esempio italiano di Blockchain privata è quello realizzato su tecnologia Corda dalle Banche italiane.

[ix] Sicurezza di una Blockchain privata: è sicura fino a quanto lo consente la propria crittografia; la crittografia Algorand è già di fatto post quantica  e la mission dell’azienda è quella di renderla sempre più resistente.

[x] Blockchain e ambiente: la tecnologia per Bitcoin è conosciuta per essere decisamente energivora perché i computer che lavorano per certificare le transazioni hanno consumi complessivi che rasentano quelli di interi Paesi, ma la rete Algorand non è energivora e così la Blockchain può diventare una preziosa alleata dell’ambiente nella lotta all’inquinamento senza contraddizioni;  Algorand ha messo la propria piattaforma Blockchain a disposizione di PlanetWatch, spinoff del Cern di Ginevra che sta progettando un servizio di monitoraggio ambientale a livello globale, per creare il primo registro pubblico e distribuito sulla qualità dell’aria https://www.planetwatch.io/ 

[xi] Blocchi necessari in un nodo Relay: è interessante il fatto che col particolare algoritmo di consenso non è necessario per un nodo avere tutta la catena come avverrebbe con la tecnologia basata sul proof-of-work; inoltre è programmata una feature per un prossimo futuro per cui sarà una scelta del titolare del nodo se avere tutta la Blockchain memorizzata nel nodo o solo una parte, per esempio dal momento in cui è entrato a far parte della rete; se un nodo lo vuole, può avere tutta la Blockchain.

[xiii] I programmatori che lavorassero su PC con SO della Microsoft possono sviluppare il sw nei diversi ambienti consentiti installando Docker e su questi Unix.

[xiv] Dove stanno gli Algo? Stanno in wallet che può essere offline rispetto alla rete

[xv] Un’azienda partner Algorand Purestake offre tutto in cloud sia il nodo per la rete MainNet che i nodi per la TestNet e BetaNet utilizzati da chi fa sviluppo.

[xvi] Un account può avere fino a 1000 Asset.

[xvii] Vedere https://it.wikipedia.org/wiki/Bene_fungibile  per i beni fungibili o intercambiabili, mentre i beni non fungibili sono quelli che non possono essere sostituiti da altri senza danneggiare l’interesse del creditore.

[xviii] Costi Algorand: Il sw è open source e il costo di una transazione è un millesimo di Algo, di fatto immateriale anche per grandissimi volumi.

[xix] Una funzione è detta ricorsiva se richiama se stessa; i linguaggi tipo C, Java, ecc. accettano la ricorsione oltre al claasico vecchio loop e sono turing-complete.

[xx] Per chi è appassionato si consiglia di vedere la classificazione dei linguaggi e degli automi su https://en.wikipedia.org/wiki/Pushdown_automaton

[xxi] Il sw è open source ed è disponibile su http://github.com