In questo secondo post della serie, si offrono ulteriori approfondimenti sull’esatta natura del registro distribuito IOTA come grafico aciclico diretto (DAG). Questo esercizio è particolarmente utile perché queste differenze aiutano a spiegare la visione globale del futuro del protocollo IOTA, così come la via verso il Coordicidio.

A livello concettuale, blockchains e DAGs hanno alcune somiglianze. Entrambe sono tecnologie di registro distribuito, che permettono agli utenti di ottenere un eventuale consenso sullo stato di un libro mastro in modo decentralizzato. Tuttavia, essi differiscono in qualche modo nei loro meccanismi sottostanti e cosa ancora più importante, hanno alcune differenze chiave nelle loro proprietà di scalabilità e nei loro potenziali casi d’uso.


Ma cosa c’è di male nelle blockchain?

Dato che leblockchain esistono già e che sembrano mantenere in modo affidabile uno stato di contabilità, questa è una domanda valida. Perché reinventare la ruota? La motivazione principale è la scalabilità.

Prendiamo Bitcoin come il nostro caso di studio sulle blockchain. È limitato a circa 7 transazioni al secondo (TPS) a livello globale, indipendentemente da quanta richieste o potenza di calcolo sono coinvolti nel sistema. Inoltre il tempo necessario ad una transazione per raggiungere una conferma relativamente definitiva, anche senza congestione, è di circa un’ora, il che limita molti potenziali casi d’uso. La descrizione completa del problema della scalabilità della blockchain va oltre lo scopo di questo post del blog, e si raccomanda di leggere questo articolo di Preethi Kasireddy (in inglese) come un buon punto di partenza per il problema della scalabilità di Bitcoin.

Uno dei colli di bottiglia della blockchain è la necessità per ogni nodo di raggiungere un consenso prima di rilasciare un nuovo blocco. Se questa sincronicità non viene mantenuta, si ottengono molti blocchi orfani. Questi blocchi non contribuiscono al throughput complessivo e quindi sprecano sia la larghezza di banda che le risorse di Proof of Work. I blocchi orfani sono noti anche come fork temporanei.

In un DAG, accettiamo che questi orfani e fork siano una conseguenza inevitabile di un alto tasso di TPS (transazioni al secondo). Tuttavia, a differenza dei sistemi blockchain, questi orfani vengono ricondotti nel sistema e non sono quindi uno spreco di risorse. In teoria, questo è il principale vantaggio del DAG.

Come si raggiunge il consenso

I termini blockchain e DAG si riferiscono alle strutture dati utilizzate per memorizzare lo stato del registro distribuito, piuttosto che ai meccanismi di consenso. Le blockchain possono utilizzare, ad esempio, la prova di lavoro (PoW), la prova di partecipazione (PoS) o un quorum per raggiungere il consenso. Allo stesso modo, DAG diversi possono avere diversi meccanismi di consenso. In questa sezione ci concentreremo sul confronto tra una blockchain PoW, come Bitcoin e IOTA.

In un DLT basato sul PoW, ci sono due domande fondamentali a cui rispondere:

  1. Dove dovrebbe connettersi un nuovo blocco?
  2. Come possiamo determinare quando una transazione è considerata confermata?

Bitcoin e IOTA forniscono risposte diverse ma analoghe a queste due domande. Queste possono essere riassunte come segue.

Le risposte di Bitcoin:

  1. Regola della catena più lunga: un po’ come un termine improprio, ma questa regola stabilisce che un nuovo blocco dovrebbe approvare la catena con il maggior PoW accumulato
  2. Regola dei sei blocchi: se un blocco è profondo almeno sei blocchi e fa parte della catena più lunga, può essere considerato confermato

(Se questi concetti non sono chiari, raccomandiamo l’eccellente video di introduzione a Bitcoin (in inglese) di 3Blue1Brown, o una lezione equivalente a livello di introduzione alla catena a blocchi.)

Le risposte di IOTA, come proposto nel whitepaper del Tangle:

  1. Selezione tip MCMC: una nuova transazione sceglie 2 transazioni precedenti da approvare, utilizzando una passeggiata aleatoria ponderata MCMC.
  2. Fiducia di conferma: una transazione è confermata se la sua fiducia è molto alta, il che significa che quasi tutti i tip legittimi la approvano.

Mentre IOTA non utilizza blocchi, possiamo immaginare le transazioni come blocchi di dimensione uno e l’analogia ha senso. Questa descrizione è una semplificazione eccessiva di entrambi i sistemi, ma si spera trasmetta l’idea generale di come il consenso blockchain sia correlato al Tangle.


Come possiamo far rispettare l’MCMC?

IOTA è un sistema distribuito. Non è possibile che la IOTA Foundation o chiunque altro faccia rispettare l’approvazione di una transazione particolare. Inoltre, non è possibile imporre l’utilizzo dell’algoritmo MCMC raccomandato. Nella migliore delle ipotesi è possibile dimostrare che sta nell’interesse dell’utente seguire il suggerimento dato, o le sue transazioni avranno meno probabilità di essere approvate da altri.

Questa è la stesso concetto che si trova in Bitcoin. Se i minatori pensano che sia più profittevole forcate la catena principale piuttosto che estenderla, lo faranno sicuramente. Vedere per esempio questo recente articolo, che sostiene che il sistema di incentivi di Bitcoin potrebbe non essere sufficiente a stabilizzarlo in assenza di premi di blocco. Un esempio più concreto viene da Ethereum, nella loro hard fork in seguito all’hack DAO: se c’è un incentivo economico ad ignorare la regola della catena più lunga, sarà ignorata.

Di fronte a queste scomode verità, l’approccio migliore e più sensato è quello di dare agli utenti la libertà di scegliere chi approvare e quali transazioni considerare confermate. C’è un’unica regola di base nel protocollo IOTA: ogni transazione deve approvare esattamente due transazioni precedenti. Se gli utenti ritengono che sia nel loro interesse seguire l’algoritmo di selezione dei tip raccomandato, lo faranno, e sta alla IOTA Foundation dimostrare che in effetti questa sia la migliore strategia da seguire.


Questo è un post in più parti. I link alle altre parti si trovano qui sotto:
Parte 1
Parte 2 (questo articolo)
Parte 3
Parte 4


Il testo originale in lingua inglese si trova qui: https://blog.iota.org/coordinator-part-2-iota-is-a-dag-not-a-blockchain-2df8ec85200f


Da oggi è possibile dare il vostro supporto su Patreon https://www.patreon.com/antonionardella

Per ulteriori informazioni in italiano o tedesco trovate i miei contatti a questa pagina.
Se avete trovato utile la mia libera traduzione, accetto volentieri delle donazioni 😉

IOTA:
QOQJDKYIZYKWASNNILZHDCTWDM9RZXZV9DUJFDRFWKRYPRMTYPEXDIVMHVRCNXRSBIJCJYMJ9EZ9USHHWKEVEOSOZB
BTC:
1BFgqtMC2nfRxPRge5Db3gkYK7kDwWRF79

Non garantisco nulla e mi libero da ogni responsabilità.


Also published on Medium.