Grazie al progresso tecnologico, i device appartenenti all'ecosistema dell'Internet of Things (IoT) diventano sempre più piccoli e compatti, economici ed efficienti in termini di consumi energetici. Questi dispositivi implicano la generazione di un flusso di dati che deve essere in qualche modo gestito. Una potenziale soluzione è quella di fornire strumenti flessibili online capaci di elaborare questi dati, e il cui pagamento verrebbe gestito automaticamente dai nodi IoT. In un contesto del genere ecco che entra in gioco una criptovaluta come IOTA. In questa prima parte dell'articolo ne descriviamo gli aspetti fondamentali, mentre nella prossima presenteremo una scheda d'estensione HAT basata su un FPGA per Raspberry Pi, in grado di accelerare le transazioni IOTA.
Introduzione
Il potenziale campo di applicabilità del mondo IoT è molto ampio e variegato. Un frigorifero in grado di programmare la spesa automaticamente, un'automobile che stabilisce l'itinerario in maniera indipendente con l'ausilio di dati sul traffico in tempo reale, oppure ancora una lavatrice in grado di avvisarci tramite notifica su smartphone quando termina il ciclo di lavaggio; questi sono solo alcuni degli esempi più ovvi che possiamo citare. Non ci sono limiti all'immaginazione.
Molti device IoT sono dedicati esclusivamente all'acquisizione di dati. Per esempio, un'ampia gamma di sensori rileva dati meteorologici utilizzabili per un'accurata analisi globale sul clima, altri sensori sono dedicati alla raccolta di dati sulle radiazioni per permettere di conseguenza di realizzare una mappa del livello radioattivo attuale del Giappone, e ancora altri integrati nelle smart home come contatori elettrici, al fine di misurare il consumo energetico e il profilo di utilizzo. Questo permette ai fornitori di energia elettrica di migliorare le previsioni dei picchi di carico e, di conseguenza, ottimizzare l'infrastruttura di rete.
Ma l'Internet of Things va oltre tutto ciò. Ci indirizza verso un'economia delle macchine, dove queste ultime possono pagare i servizi resi disponibili da altre macchine. La compagnia di ricerca di mercato Gartner nel 2017 [1] pronosticò che nel 2020 il numero di dispositivi connessi ad Internet sarebbe stato di circa 20 miliardi. La grande diffusione di dispositivi IoT implica però anche una mole di dati sempre più vasta, che potrebbe travolgere la tecnologia attuale in un futuro prossimo. La prima domanda è: dove mettere tutti questi dati? E se si trova un'adeguata posizione per l'archiviazione dei dati, come accedervi e come utilizzarla? È proprio qui che entra in gioco IOTA. IOTA ha la funzione di risolvere tutte le difficoltà tecniche, sia presenti che future, relative alla crescente popolarità e diffusione dell'IoT.
Quali sono le problematiche che consente di risolvere IOTA?
Lo sviluppo delle criptovalute come Bitcoin ed Ethereum ci ha fornito registri virtuali decentralizzati, a prova di manomissione e altamente sicuri, che tutti possono utilizzare in modo anonimo e senza permesso esplicito, grazie all'ausilio delle chiavi crittografiche user-generated. La visione è stata estasiante sin dall'inizio, quando è diventato improvvisamente possibile trasferire denaro virtuale peer-to-peer senza intermediario e senza doversi affidare ad un'autorità centrale. Sfortunatamente, qualche difetto di progettazione non previsto si è rivelato nel tempo: i sistemi blockchain di prima generazione (Bitcoin) e di seconda generazione (Ethereum con Smart Contract), infatti, si caratterizzano per una limitata capacità di transazione e ciò li rende inadatti per l'Internet of Things del prossimo futuro. Un altro tipo di problematica nasce dal modello tariffario scelto, nel quale la posizione di una transazione, in uno dei blocchi crittografati, viene assegnata tramite una sorta di asta e ciò porta ad avere costi eccessivamente alti per transazione, oppure a tempi di conferma eccessivamente lunghi nei periodi di picco di carico.
IOTA può essere considerata come una criptovaluta di terza generazione, che si allontana nettamente dal modello di blockchain lineare e che fa invece affidamento su una particolare tecnologia Distributed Ledger (DLT), nella quale tutte le transazioni vengono salvate in un grafo aciclico diretto (DAG), come illustrato in Figura 1. Questa rete di transazioni popolata di dati viene chiamata tangle.
I vantaggi sono evidentemente chiari: le blockchain presentano problemi di scalabilità, mentre i tangle IOTA non presentano difetti o colli di bottiglia che limitano la velocità massima di transazione. Di fatto, le performance del tangle aumentano in maniera proporzionale con l'aumento del numero di transazioni effettuate (Figura 2).
Oltre al trasferimento di criptomoneta, IOTA abilita le transazioni "senza valore", il che significa che il tangle può essere utilizzato come infrastruttura di archiviazione per tutti i tipi di pacchetti di dati. Ideale per quel tipo di dati ottenuti dai sensori, per esempio, e senza che alcuna commissione venga addebitata per le transazioni.
Inoltre, ci sono estensioni ufficiali del protocollo per massimizzare il livello di funzionalità, come MAM (Masked Authenticated Messaging) che abilita continui flussi di dati crittografati.
Qubic, che rappresenta l'equivalente degli Smart Contracts di Ethereum, è tuttora in fase di sviluppo e non ancora pronto per essere usato. A differenza degli Smart Contracts, IOTA utilizza un linguaggio di programmazione funzionale che consente di dimostrare la correttezza matematica delle operazioni.
Transazioni nel tangle
Con la famosa criptovaluta Bitcoin tutte le transazioni devono essere registrate nei blocchi del sistema dai miner. In cambio del loro impegno, i miner vengono premiati con nuovi Bitcoin. Ciò crea uno stimolo finanziario per il lavoro della rete. Il processo di mining implica l'esecuzione dei calcoli di proof-of-work, che si completano approssimativamente in dieci minuti. Se la potenza di calcolo è maggiore e i blocchi vengono generati più velocemente, la difficoltà di calcolo aumenta, al fine di ripristinare e mantenere la velocità target di sei blocchi all'ora. Questo viene eseguito automaticamente dal network Bitcoin.
Nonostante questa sembri una buona idea, in realtà è il motivo per cui il processo di mining risulta essere la più grande debolezza di Bitcoin. Si viene a formare un collo di bottiglia che limita drasticamente la velocità di esecuzione, dato che il volume massimo di dati per blocco è fisso. Al momento sono circa 300,000 le transazioni effettuate ogni giorno; ciò corrisponde a 3.4 transazioni al secondo. In confronto, Ethereum realizza 20 transazioni al secondo con una maggiore velocità media per blocco. Un problema ancora più grave riguarda il fatto che la priorità di integrazione delle transazioni nei blocchi viene controllata dalle quote ricevute dai miner. Pertanto, dare precedenza alle transazioni più rilevanti rientra negli interessi dei miner. Ciò è diventato molto chiaro con l'ultimo clamoroso scandalo di Bitcoin nel 2017, quando si era arrivati a dover pagare $50 per poter registrare le proprie transazioni in maniera permanente su blockchain (Figura 3).
2. Una transazione deve fare riferimento direttamente o indirettamente a un milestone
Un milestone consiste in una transazione firmata da un'entità centrale (il coordinatore o coordinator), che indica la direzione desiderata del tangle. Il coordinatore è al contempo una grazia e una maledizione, nonché il focus principale delle critiche verso IOTA. È necessario comprendere il suo ruolo. Prima di tutto, il loro primo compito è di garantire la sicurezza del tangle.
La sicurezza del tangle aumenta in maniera proporzionale al numero di transazioni eseguite, ma è necessario effettuare un numero minimo di transazioni prima che il tangle possa operare senza il coordinatore. Nei primi tempi di Bitcoin esistevano dei checkpoint analoghi per assicurare lo stato di sicurezza. Queste forme di tutela sono essenziali dato che la maggioranza degli attacchi (51%) non può essere esclusa finché la velocità del network resta bassa. Nel passato, ad esempio, questa bassa velocità permetteva gli attacchi double-spending (spendere le stesse monete due volte). Sebbene la presenza di un coordinatore sia un'idea ragionevole, dal punto di vista dei sostenitori della criptovaluta crea il rischio di un singolo punto di vulnerabilità (single point of failure) e concentra il potere nelle mani di un solo individuo. Ciò potrebbe in teoria essere sfruttato dalla Fondazione IOTA per favorire determinate transazioni e ignorarne altre. Un altro problema è che questa entità centrale abbassa notevolmente il livello di performance dell'intero network, causando un collo di bottiglia. È un pò come una CPU con un processore multicore, dove ogni core deve attendere su un singolo thread. La Fondazione IOTA è cosciente di ciò e ha impostato un progetto di gruppo con l'obiettivo di eliminare il coordinatore ("coordicide") [2].
La Fondazione IOTA
La Fondazione IOTA è stata istituita il 17 novembre 2017; viene finanziata tramite donazioni (approssimativamente il 5% del numero totale di token IOTA). IOTA è un'organizzazione no profit registrata, la cui sede centrale si trova a Berlino, Germania. Ha altre filiali in altre città, come Tel Aviv, Oslo, Taipei.
La Fondazione ha attualmente circa 80 dipendenti in tutto il mondo (dato risalente a novembre 2018). Inoltre, vi sono più di 70,000 membri attivi appartenenti alla community e più di 120,000 follower interessati alle pubblicazioni della Fondazione. L'obiettivo della Fondazione IOTA è quello di supportare l'ecosistema IOTA effettuando ricerche per lo sviluppo di un fondamento scientifico adeguato per la tecnologia tangle. Inoltre, in questa ricerca si sviluppano i componenti essenziali per facilitare l'integrazione della tecnologia IOTA nei progetti della community, come l'implementazione di riferimento di nodi completi IOTA (IRI) e di varie librerie in diversi linguaggi di programmazione. Naturalmente, sostiene attivamente vari partners in attività integrative. Un altro focus va sulla standardizzazione della tecnologia IOTA, particolarmente importante se quest'ultima verrà adottata dal settore industriale.
Marketplace di dati IOTA
Il marketplace di dati IOTA è in fase di sviluppo dal 2015. L'obiettivo è offrire un marketplace decentralizzato dove i dati provenienti dai sensori possono essere venduti e comprati. IOTA può essere utilizzata senza alcuna commissione per l'utilizzo del tangle, con l'abilitazione di micro pagamenti. Nonostante il marketplace dati sia ancora in una fase beta riservata, è già possibile comprare dati provenienti dai sensori. Per esempio, c'è un sensore a Kaiserslautern (Germania) che colleziona dati relativi alla qualità della fornitura elettrica e rende il flusso di dati reperibile. Il prezzo è di 1336 IOTA (equivalente a 0.0273 cent in euro), ovvero un prezzo molto basso. Ci si aspetta che questo marketplace venga aperto al pubblico entro la fine dell'anno, così da avviare il commercio di dati raccolti dai sensori.
Ecosistema per progetti
La Fondazione IOTA promuove anche un ecosistema dedicato a progetti e codifica. I developers possono pubblicare i loro progetti su una piattaforma web sviluppata internamente. Donazioni IOTA possono essere inviate ai developers tramite il pulsante "Donate". Su questa piattaforma ci sono attualmente più di 2500 utenti registrati, con quasi 200 progetti pubblicati. La Fondazione IOTA, inoltre, sponsorizza progetti selezionati attraverso un Fondo di Sviluppo dell'Ecosistema (Ecosystem Development Fund). Il fondo donazioni è basato sulle donazioni volontarie effettuate dal 2015 ad oggi e ha raggiunto circa 6 milioni di dollari. Le condizioni base di questo finanziamento prevedono che IOTA è open source e la relativa community ha il diritto di beneficiare dei risultati di tali progetti. L'Ecosystem Fund può essere sfruttato per promuovere, oltre ai progetti, anche gli eventi.
Un processore per il calcolo ternario: Jinn
IOTA è una criptovaluta ternaria e ciò significa che utilizza trit al posto dei bit, e tryte al posto dei byte. Invece dei soli 0 e 1, utilizza un sistema numerico ternario bilanciato e composto dai valori -1, 0, +1. A prima vista, questo sistema potrebbe sembrare inefficiente, dato che IOTA (nella versione attuale) viene fatta girare su macchine binarie. I dati devono essere costantemente convertiti per il sistema ternario (e viceversa), il che richiede l'esecuzione di diverse operazioni di moltiplicazione e divisione. Tutto ciò è in effetti problematico, specialmente sui microcontrollori. In ogni caso il sistema numerico ternario bilanciato è di per sé molto efficiente, più efficiente del sistema binario. Tra i vari aspetti, riunisce numeri negativi e positivi in un sistema numerico che non ha bisogno di bit. Questo significa che un numero ternario può essere negato negando il segno di ogni trit, invece di utilizzare l'operazione a due complementi (inversione di bit e addizione di 1). Due numeri ternari possono essere sottratti negando un numero e aggiungendolo all'altro numero. Le operazioni logiche e le funzioni più complesse, come i full-adders, possono essere facilmente implementate come accade per il sistema binario.
Il sistema ternario è attraente anche dal punto di vista hardware. L'immagazzinamento e la trasmissione di numeri con lo stesso range di valori richiede con il ternario una quantità considerevolmente inferiore di celle di memoria, o linee di segnale. Per esempio, un numero binario a 64 bit necessita di sole 41 celle di memoria in un sistema ternario. Ciò semplifica la progettazione del chip, restringe l'area del wafer per la matrice e riduce il numero di funzioni logiche necessarie, in breve, il design nel suo complesso è più efficiente, più piccolo e consuma meno energia.
L'idea di un computer ternario non è nuova. Erano già disponibili negli anni 60, ad esempio, il computer russo Setun. Veniva usato a scopo educativo e professionale, ricerca nucleare inclusa. Un totale di 50 di questi computer venne costruito negli anni fino al 1995 [3]. I computer ternari non hanno comunque ancora raggiunto il successo commerciale.
Ciò nonostante, il concetto di calcolatore ternario non è stato ancora interamente dimenticato. Nel 2014 sono state pubblicate alcune news concernenti un progetto di sviluppo segreto di un processore ternario chiamato Jinn [4]. Secondo questo report, l'ambizioso progetto è stato finanziato tramite crowdfunding. Un totale di 100.000 quote sono state vendute all'asta sulla piattaforma di trading NXT [5]. La compagnia Jinn Labs è stata lanciata dal co-fondatore IOTA Sergey Ivancheglo e Davis Sønstebø. Quest'ultimo ha fondato anche la piattaforma di crypto trading NXT.
Nel 2016 un video dal titolo "Building a base 3 computer" è apparso sul canale Hackaday di YouTube. Nel video Jessie Tank spiega come funziona la logica ternaria [6]. Oltre a mostrare una prima versione sperimentale del processore IC ternario Jinn, il video menziona IOTA per la prima volta, in qualità di infrastruttura essenziale del processore ternario.
Le informazioni inerenti Jinn non sono ancora molte data la riservatezza del progetto. Si vocifera però che questo processore abbia un'architettura caratterizzata da alcuni aspetti simili a quelli di una CPU e altri simili a quelli di una GPU, ma non è ottimizzato per le performance, dato che è stato progettato per essere scalabile orizzontalmente.
La scalabilità verticale implica che i core del processore vengono eseguiti più velocemente, mentre la scalabilità orizzontale implica la presenza di un maggior numero di core. Jinn è pensato per essere un piccolo processore per device IoT, efficiente in termini energetici, utilizzabile per calcoli distribuiti massicciamente sul tangle.
Nel 2014 i giochi online multiplayer di massa (MMOG) sono stati identificati come una delle applicazioni ideali per Jinn. Non c'è dunque da stupirsi se una piattaforma corrispondente chiamata Paracosm è stata annunciata quest'anno [7].
Un altro potenziale di applicazione per il processore Jinn è l'Intelligenza Artificiale, dato che la logica ternaria è molto più adeguata per l'ambito delle reti neurali rispetto alla logica binaria. L'infrastruttura IOTA e Jinn potrebbero essere utilizzati per una enorme rete neurale globale.
Dove trovare ulteriori informazioni
• IOTA website: www.iota.org/
• Partners: http://iotaarchive.com/
• Official blog: https://blog.iota.org/
• Ecosystem: https://ecosystem.iota.org/
• Reddit: www.reddit.com/r/Iota/
• Discord: https://discordapp.com/invite/fNGZXvh
• Twitter: https://twitter.com/iotatoken
Web links
[1] Gartner press release (login required): www.gartner.com/en/newsroom/
press-releases/2017-02-07-gartner-says-8-billion-connected-things-will-be-in-use-in-2017-up-31-percent-from-2016
[2] Coordinator: The Path to Coordicide: https://blog.iota.org/coordinator-part-1-the-path-to-coordicide-ee4148a8db08
[3] Setun ternary computer: https://de.wikipedia.org/wiki/Setun
[4] Jinn on the NXT forum: https://nxtforum.org/news-and-announcements/(ann)-jinn/
[5] Jinn Labs: https://web.archive.org/web/20141005232852/http://www.jinnlabs.com/
[6] Building a base 3 computer: https://www.youtube.com/watch?v=EbJMtJq20NY
[7] Paracosm showcase: https://paracosm.company/Paracosm_Showcase_ENG.pdf
[8] Figure 1 image source: https://twitter.com/iotatokennews/status/955455377096757249?lang=de
[9] Figure 2 image source: https://steemit.com/german/@moodledidoodledi/die-internet-der-dinge-iot-revolution-iota
[10] Figure 3 image source: https://blog.iota.org/on-the-tangle-white-papers-proofs-airplanes-and-local-modifiers-44683aff8fea