Figura 1. Visualizzazione di una rete blockchain. Credito:contributori OpenStreetMap
Kazuyuki Shudo, i suoi colleghi, e il Centro di ricerca sulla sicurezza informatica del Tokyo Institute of Technology (Tokyo Tech) ha sviluppato un simulatore di blockchain pubblico chiamato "SimBlock" da utilizzare per testare le prestazioni e la sicurezza della blockchain. Il software può essere eseguito su un singolo PC. Ora è disponibile pubblicamente come open source.
SimBlock consente a un utente di simulare una rete blockchain costituita da un gran numero di nodi (server), e modificare il comportamento dei nodi per testare gli effetti su prestazioni e sicurezza. Gli utenti possono simulare l'impatto delle modifiche a una blockchain esistente, come Bitcoin, o a una blockchain di loro progettazione.
Blockchain è stato implementato per la prima volta per la criptovaluta, fungendo da base della rete Bitcoin, che ha iniziato a operare nel 2009. Ma ora si stanno trovando altre potenziali applicazioni in aree come la gestione delle risorse e dei diritti, prodotto (es. alimentare) tracciabilità, voto, e automazione dei processi aziendali.
In questi giorni, si tengono una serie di conferenze sulla tecnologia blockchain, compreso IEEE ICBC, CryBlock, e Blockchain IEEE. Eppure, nonostante l'attività sul campo, è stato quasi impossibile testare miglioramenti su una rete blockchain del mondo reale. Tale esperimento richiede l'aggiornamento del software di tutti i nodi, che non è pratico per una rete funzionante a causa del rischio di causare interruzioni. Anche nei casi in cui una blockchain ha un problema che deve essere risolto, testare la correzione potrebbe essere difficile, perché potrebbe rompere qualcos'altro.
Un simulatore blockchain chiamato SimBlock
Shudo e colleghi hanno sviluppato SimBlock, che può simulare un comportamento di circa 10, 000 nodi su Internet utilizzando un unico PC tipico. Il software, che è stato reso open source nel luglio 2018, consente agli ingegneri di testare miglioramenti su una blockchain esistente o originale, o persino simulare nodi dannosi e misurare i tassi di successo degli attacchi, quindi applicare contromisure per testarne gli effetti.
Dimostrazione di SimBlock all'IEEE ICBC 2019 Credito:Kazuyuki Shudo
SimBlock può attualmente simulare i parametri di Bitcoin, Litecoin, e Dogecoin, rispecchiando le dimensioni della rete blockchain, intervallo di generazione del blocco, e velocità di comunicazione su Internet. Gli utenti possono vedere quali modifiche apportano al comportamento del nodo a una rete blockchain modificando il codice Java in SimBlock. È inoltre possibile modificare i parametri della blockchain e la velocità di comunicazione.
SimBlock ha anche un visualizzatore che mostra la comunicazione tra i nodi e l'altezza del blocco animata su una mappa del mondo. Una dimostrazione del visualizzatore è disponibile in questa pagina web.
Dimostrazione del visualizzatore:rete Bitcoin (ridimensionata a 600 nodi)
Il team di ricerca ha dato una dimostrazione di SimBlock all'IEEE ICBC 2019 tenutosi a Seoul, attirando molta attenzione da parte dei partecipanti (Figura 2).
Esempi di applicazioni
I membri del team hanno utilizzato SimBlock anche nei loro altri studi. Di seguito sono riportati tali argomenti di ricerca per migliorare le prestazioni delle blockchain.
Figura 3 Selezione del vicino di prossimità e Figura 4 Misurazione dell'effetto di una rete di relè. Credito:Proc. IEEE Blockchain 2019 per Fig 3 e Proc. AINTEC 2019 per Fig 4.
La figura 3 mostra l'effetto dell'applicazione di una tecnica chiamata selezione dei vicini di prossimità, dove ogni nodo si connette con i suoi nodi vicini sulla rete. Ciò si traduce in una riduzione dei tempi di propagazione dei blocchi sulla rete. La riduzione del tempo di propagazione porta al miglioramento della sicurezza. Porta anche al miglioramento delle prestazioni del processo di transazione senza sacrificare la sicurezza.
La Figura 4 illustra il vantaggio dei nodi che utilizzano una rete di inoltro[c, 4]. Utilizzando una rete di inoltro, un nodo può ridurre drasticamente la probabilità che un blocco che ha generato diventi un blocco orfano[d]. Significa che un nodo può aumentare le sue entrate utilizzando la rete di inoltro perché un tale blocco orfano non dà ricompensa per il mining al nodo che ha generato il blocco orfano.
Un nodo che utilizza una rete di inoltro può ricevere rapidamente un blocco appena generato. Sembra che il tasso di successo del mining[e] del nodo aumenti a causa della ricezione rapida. Però, usando SimBlock, il gruppo di ricerca non ha osservato alcun aumento evidente. D'altra parte, il team di ricerca ha scoperto un altro vantaggio delle reti di inoltro. Un nodo potrebbe ridurre la probabilità che un blocco che ha generato diventi un blocco orfano. Una rete di inoltro abbassa naturalmente il tasso di blocco orfano dell'intera rete blockchain ed è stato precedentemente sottolineato. Il team di ricerca ha scoperto che i nodi beneficiano molto di una rete di rilancio anche se il rapporto tra i nodi che utilizzano la rete di rilancio è molto basso (ad es. 1%).
Il team di ricerca continuerà a lavorare sul miglioramento delle prestazioni delle blockchain utilizzando SimBlock. Hanno anche iniziato a lavorare su studi di sicurezza simulando attacchi su blockchain e contromisure. I miglioramenti in corso e pianificati per SimBlock includono il supporto per altre blockchain come Ethereum, ulteriore aggiornamento dei parametri Internet come velocità di comunicazione, e supporto per i più recenti protocolli di comunicazione come Compact Block Relay.
Il team crede fermamente che le comunità di ingegneria e ricerca possano trarre vantaggio da SimBlock e dai suoi contributi alla tecnologia blockchain e alla nostra società supportata dalla tecnologia.