I problemi del consenso in una blockchain pubblica: la risposta di NEM

Consenso fiducia blockchain

NEM è una piattaforma P2P peculiare all'interno del panorama blockchain: non è perfettamente ascrivibile alla diatriba tra blockchain pubbliche e private (che abbiamo già introdotto), non utilizza alcun linguaggio di sviluppo nativo e permette di creare applicazioni utilizzando solamente le API Java "esposte" direttamente dai nodi che la compongono. 

Questa flessibilità permette di supportare la creazione di blockchain private all'interno di quella pubblica, di gestire asset, sistemi di messaggistica, controllare sistemi di voto, salvare dati sulla blockchain. 

L'idea di questa blockchain si sviluppa nel gennaio 2014 partendo da una open call  di un utente del forum bitcointalk.org che voleva lavorare con altri sviluppatori ai punti di debolezza di NXT , una delle prime piattaforme che si differenziava da Bitcoin utilizzando il protocollo Proof-of-Stake.

Proof of Work, Stake o Importance?

Alla base del funzionamento di un database decentralizzato deve esserci un meccanismo di consenso, un accordo tra diversi nodi che lo compongono, al fine di aggiungere un blocco specifico alla blockchain. La Proof-of-Work (PoW) è un protocollo che serve a dimostrare la potenza computazionale impiegata dai nodi per aggiungere blocchi ad una blockchain pubblica, ad esempio quella del Bitcoin: a partire da un input (header di un blocco), al nodo (miner) verrà sottoposta la risoluzione di una funzione Hash che produrrà un output univoco attestante la quantità di lavoro svolta durante il processo. Questa "prova di lavoro" è indispensabile per riconoscere al miner una remunerazione adeguata al lavoro svolto e all'energia elettrica consumata durante il processo. Questa ricompensa (fee) consiste in una porzione di asset nativo della blockchain: BTC nel caso della blockchain Bitcoin, ETH per Ethereum, XEM per la blockchain NEM.

Per mantenere costante la produzione di blocchi, all'aumentare del valore della rete dovrà aumentare anche la difficoltà della funzione di Hash, spingendo i miner a lavorare assieme in enormi web-farm (chiamate pool) e spostarsi verso aree caratterizzate da un costo dell'energia molto basso.

In un sistema che fa della decentralizzazione il proprio punto di forza, questo processo rappresenta un enorme problema: ad oggi un accordo tra le prime tre pool BTC al mondo sfiorerebbe un consensus del 50% (dati blokchain.info), permettendo un controllo pervasivo sull'emissione di blocchi, sulle transazioni e sulla sicurezza di tutta la rete. 

Altre ciriticità della PoW sono il crescente fabbisogno energetico e la velocità di esecuzione nelle operazioni di modifica alla rete. 

Un meccanismo di consenso alternativo è la Proof-of-Stake (PoS): in questo caso un algoritmo pseudo-randomico sceglie quale account (stakeholder) è incaricato di validare il blocco che verrà aggiunto alla rete, lasciandolo altrimenti inattivo. La probabilità che ad un nodo tocchi la creazione di un blocco cresce però in base alla quantità di monete presenti sull'account, e non essendo necessario alcuno sforzo per la validazione di un blocco viene meno la garanzia dell'immutabilità del dato. A questo punto si rende necessario reintrodurre il concetto di "trust" all'interno della blockchain, rendendo questo sistema molto più simile ad un database tradizionale che utilizza logiche di una blockchain. Applicare questa logica alla piattaforma NEM, premiando chi possiede di più e non spende il proprio asset, avrebbe portato alla creazione di una economia stagnante. 

Il consenso all'interno di NEM viene invece deciso dalla Proof-of-Importance (PoI), che assegna al nodo un trust score funzione non solo della quantità di asset posseduto, ma anche delle transazioni effettuate e dall'importanza dei nodi con cui sono stati effettuati gli scambi. 

Vested Balance

Fonte: Sito internet NEM

Per armonizzare nel tempo l'importanza del nodo vengono considerate le transazioni in uscita dall'account negli ultimi 30 giorni e la quantità di monete espressa sotto forma di vested balance, funzione del bilancio in cui ogni giorno il 10% della proprietà non ancora acquisita diventa "vested", tendendo asintoticamente al bilancio effettivo. Questo meccanismo di attrito serve a compensare la funzione delle sole transazioni in uscita, da cui si otterrebbe una volatilità troppo alta. 

Per iniziare a raccogliere commissioni il sistema richiede la presenza di almeno 10.000 XEM "vested", mentre raggiunta la quota di 3 Milioni il nodo acquisisce la possibilità di essere remunerato con 450 XEM giornalieri. Da segnalare che un nodo dello stesso tipo, in  una blockchain con funzione PoW, non avrebbe diritto ad alcuna remunerazione, se non quella giustificata dalla potenza di calcolo in cui avrà dovuto investire. 

La Smart Asset Blockchain, applicazioni e ICO

La blockchain NEM permette ad ogni organizzazione di creare un Namespace, un recinto privato all'interno del quale sviluppare i propri asset, detti Mosaic. All'interno di questa cornica, NEM stessa è uno dei Namespace su cui gira il Mosaic XEM, criptovaluta asset nativo della blockchain NEM. Per lanciare una ICO non serve uno smart contract in un linguaggio nativo della piattaforma, basta utilizzare le API disponibili per pubblicare un Mosaic all'interno di un Namespace e indicare una fee da pagare a chiunque si occupi di creare il blocco della rete. Questa fee potrà essere corrisposta tramite qualsiasi Mosaic/token/crypto presente nell'intero ecosistema NEM, di fatto rendendo possibile l'utilizzo dello stesso XEM, anche se la transazione dovesse avvenire su altri Namespace "privati".

Alcune applicazioni

  • Mijin è la rete privata (permissioned) di NEM, rivolta alla migrazione di business su tecnologia blockchain.
  • Effettuato test in collaborazione con Tech Bureau Corp che prova la capacità della rete Mijin di raggiungere 3000 Transazioni al secondo (TPS) tra 10,8 milioni di account. 
  • Questa capacità di gestione delle transazioni si avvicina a quella del circuito Visa (con picchi oltre 50.000 TPS) piuttosto che a quella di Ethereum (20 TPS) o Bitcoin (3-4 TPS).
  • Lo scambio di informazioni secondo protocolli non paritetici: l'informazione può essere scambiata solo tra ricevente e chi ha originariamente inviato l'informazione, impedendo che dati personali vengano ceduti a terzi senza il consenso dell'utente. 
  • Aggregated transaction: possibilità di inserire più transazioni in un unico contenitore, evitando di firmare tutte le transazioni. Applicabile al RID Bancario e possibile grazie a Catapult un fork della blockchain di NEM.

NEM è una piattaforma che nasce per rispondere alle criticità di blockchain pubbliche e alla eccessiva centralizzazione di quelle private, dando vita ad una rete in grado di soddisfare entrambe queste istanze. 

In futuro bisognerà osservare con attenzione lo sviluppo del fork Catapult e del progetto Proximax, che permetteranno di utilizzare la blockchain come una rete che possa mantenere e veicolare file, streaming, comunicazioni P2P e dati personali.

Giovanni Vizzarri avatar
Giovanni Vizzarri

Passionate about entrepreneurship, fintech and AI technologies applied to financial markets. Working on projects involving blockchain architecture, ICO design and crypto token economics.