Concetti base di IOTA

STORIA

IOTA è un progetto annunciato oramai 3 anni fa e che sta crescendo con ricerca e sviluppo dell'ecosistema IOT sempre più presente nelle nostre vite (basti pensare che anche un Frigorifero SMART è incluso nella categoria IOT (Internet Of Things) 

La storia di IOTA inizia ben prima dall'annuncio ed è basata tutto su una struttura chiamata DAG (Directed Acyclic Graph - Grafico Aciclico Direzionato) che si oppone ad una struttura a blocchi (meglio conosciuta come blockchain)

Il problema principale di una struttura blockchain è la scalabilità che sta diventando sempre più presente negli ultimi anni. Infatti non è affatto difficile vedere che le prime implementazioni di blockchain (per esempio bitcoin o ethereum) ha dimensioni sempre più grandi e questo è  difficile da supportare in tetmini di potenza di calcolo, oltre ciò viene essere prodotta a intervalli temporali e che comunque produce un collo di bottiglia per la validazione dei blocchi cosa che poi tra l'altro serve e quindi inserire delle tasse da ridare ai miners.

Naturalmente se si pensa di eliminare questi colli di bottiglia volendo inoltre eliminare le "tasse" per l'utilizzo della struttura occorre, per forza di cose, eliminare i miners.

Questo naturalmente è più facile a dirsi che a farsi perchè, senza una legge di renumerazione, è difficile avere un' infrastruttura efficace.

Inoltre senza i miners risulta più difficile gestire la creazione dei prossimi blocchi e la validazione delle transazioni.

IOTA e la sua fondazione è passata anni a cercare di trovare una soluzione soddisfacente e l'idea odierna è quella che potenzialmente risolve la questione. 

In questo sistema ogni vertice del grafo è una transazione che comunque approva altre 2 transazioni selezionate da un algorimo casuale (random walk). Questa struttura è chiama Tangle (groviglio) ed è supportato da leggi matematiche che ne governano la giusta distribuzione.

Il principale obiettivo è costruire una struttura decentralizzata che:
  • può scalare dinamicamente
  • che sia senza costi (no transaction's fees)
Per eliminare i miners è stata creata una struttura dove gli utenti che usano IOTA sono sia utenti fini a se che utenti attivi i quali aiutano l'intera infrastruttura.

REGOLE SEMPLICI E REGOLE COMPLESSE

Le regole che governano la Tangle sono nello stesso tempo semplici che complessi.

La parte semplice è data dall'unica regola imposta: 

una transazione deve convalidare due transazione precedenti

La parte complicata è presente perchè i nodi della rete sono liberi di scegliere le due transazioni da confermare e questo rendere tutta la struttura Tangle disordinata e imbrigliata.


COORDINATOR


Come appunto abbiamo appena detto gestire una struttura disordinata e imbrigliata non è facile. In questa fase, dove la rete IOTA è relativamente piccola, è stato necessario inserire un tipo di nodo speciale chiamato coordinatore.

Il ruolo del coordinatore è quello di garantire una corretta qualità dei nodi confermando delle transazioni periodicamente. In pratica ogni minuto il coordinatore effettua una transazione su di esso per verificare altre 2 transazioni (e le altre collegate), questa speciale transazione è chiamata milestone

A pieno regime il coordinatore verrà eliminato e allora sarà possibile validare in assoluta sicurezza transazioni prese casualmente.

UNO SGUARDO NEL FUTURO - QUBIC


Il progetto QUBIC non fa altro che estendere le funzionalità di tutta l'infrastruttura IOTA perchè grazie ad esso sarà possibile:
  1. interagire con il mondo esterno tramite un attore chiamato Oracle Machines
  2. Effettuare dei calcoli delegati sfruttando il principio del Fog Computing
  3. Eseguire degli Smart Contract
  4. Ricevere una sorta di ricompensa per incentivare l'uso della Tangle

ATTORI PRINCIPALI


IOTA come abbiamo potuto capire non è una "semplice blockchain" ma è un approccio e una struttura più complessa. Appunto per questo occorre conoscere pure le varie parole chiavi che girano intorno ad esso.

Seed

E' la chiave privata, un pò analoga alla chiave privata su blockchain bitcoin, con la particolarità che un seed serve a generare una quantità molto grande di indirizzi IOTA

Indirizzo

Appunto come detto, un indirizzo viene generato dall'unione di un Seed ed un indice. Un indirizzo ha tre livelli di sicurezza e DEVE essere utilizzato 1 ed 1 sola volta.

Una cosa importante è che il "saldo" del nostro wallet non è scritto quando viene fatta una transazione ma calcolata ogni qualvolta.

Questo avviene ricorsivamente dall'inizio o dall'ultimo snapshot.

Snapshot

Operazione schedulata di compressione e pulizia della Tangle. Durante lo snapshot vengono cancellate tutte le vecchie transazioni in pending e tutti i dati relativi a MAM (Masked Autheticated Messaging) e scritti vari saldi.

Nodo

Nodi della rete che tengono in piedi la Tangle

Nodo permanente

Un particolare nodo che non tiene conto degli snapshot e quindi memorizza tutto ciò che è avvenuto dentro la Tangle.

Di seguito due operazioni che possono essere effettuate per "forzare" la conferma di una transazione IOTA:

Operazione "Promote"

Collegerà una transazione nuova, a valore 0, alla transazione in pending. In modo che verrà forzato la sua conferma.

Operazione "ReAttach"

Ricollega una copia della transazione ad altre 2 precedenti. Le transazioni vengono collegate per evitare il problema che vengano entrambe confermate.

Alla prossima!

Commenti

Post popolari in questo blog

Hadoop, how to create a single node cluster using docker

How to install IOTA node with docker

Apache Spark - Try it using docker!