Blockchain Ethereum, qualche tecnicismo

Avatar di Tom's Hardware

a cura di Tom's Hardware

 

La differenza principale tra Ethereum e Bitcoin è che i blocchi di Ethereum contengono una copia sia dell'elenco delle transazioni sia lo stato più recente. L'algoritmo di validazione del blocco alla base in Ethereum funziona in questo modo:

  1. Controlla se il precedente blocco di riferimento esiste ed è valido.
  2. Controlla se la marca temporale del blocco è più grande di quella del blocco di riferimento precedente ed inferiore di 15 minuti nel futuro.
  3. Controlla che il numero del blocco, difficoltà, l'origine della transazione, la transazione derivata ed il limite del gas (vari e specifici concetti di basso-livello di Ethereum) sono validi.
  4. Controlla che il proof of work sul blocco sia valido.
  5. Controlla che lo stato originario del Merkle tree sia uguale allo stato finale originario fornito nell'intestazione del blocco. In tal caso, il blocco è valido; in caso contrario, quest'ultimo non è valido.

L'approccio può sembrare molto inefficiente a prima vista, perché bisogna registrare l'intero stato di ogni blocco, ma in realtà l'efficienza dovrebbe essere comparabile a quella del Bitcoin. La ragione sta nel fatto che lo stato è registrato in una struttura ad albero, e dopo ogni blocco solo una piccola parte dell'albero necessita di essere cambiata. Quindi, in generale, tra due blocchi adiacenti la grande maggioranza dell'albero dovrebbe essere la stessa, e quindi i dati possono essere registrati una sola volta e consultati due volte usando i puntatori (ad es. gli hash degli alberi inferiori).

bitcoin coins t[1]

Un tipo speciale di albero conosciuto come Patricia tree viene usato per raggiungere questo risultato, includendo una modifica del concetto del Merkle tree, che permette ai nodi di essere inseriti e cancellati, e non solo cambiati, in maniera efficiente. Per di più, poiché tutta l'informazione sullo stato è una parte dell'ultimo blocco, non c'è bisogno di registrare tutta la storia della blockchain - una strategia che, se applicata al Bitcoin, può consentire un risparmio di spazio.

Un quesito comune che viene posto è "dove" il codice del contratto viene eseguito, in termini di hardware fisico. Questa è una risposta semplice: il processo di esecuzione del codice del contratto è una parte della definizione della funzione di transizione di stato, che è una parte dell'algoritmo di validazione del blocco, così che se una transazione è aggiunta al blocco B l'esecuzione del codice generata da questa transazione sarà eseguita da tutti i nodi, nel presente e nel futuro, scaricando e validando il blocco B.

Il risultato è che quella di Etehreum è una blockchain estremamente veloce: a differenza di Bitcoin infatti per verificare il blocco bastano tra 5 e 30 secondi mentre per bitcoin 10 minuti. Si tratta di valori teorici però, e quelli reali sono purtroppo molto più altri - infatti molti progetti si stanno concentrando proprio sulla velocità di esecuzione.

Bitcoin vs Ethereum

Bitcoin nasce a tutti gli effetti moneta digitale si può usare per fare veri e propri acquisti oppure può essere visto come un investimento. Anche Ethereum può essere visto come una moneta virtuale per investimenti o acquisti ma ha qualcosa in più.

Infatti Ethereum è utilizzato da molte aziende per creare nuovi programmi e sta prendendo sempre più piede, utilizza una Blockchain diversa rispetto a Bitcoin. Inoltre Ethereum è supportato da diverse compagnie, oltre 500, questo gruppo è chiamato anche Enterprise Ethereum Alliance ed ha lo scopo di implementare e supportare la tecnologia che sta dietro ethereum sfruttando gli smart contracts.

Possiamo quindi dire che, al di là dei fenomeni speculativi, Bitcoin mira a diventare una moneta e sbaragliare altre forme di valuta come per esempio l'euro o il dollaro mentre Ethereum è una vera e prorpia tecnologia che punta ad essere applicata nell' IoT soprattutto dalle aziende.

Le differenze più rilevanti sono:

  1. Il tempo di creazione di un blocco per il Bitcoin è di 10 minuti mentre per Ethereum di blocco di pochi secondi. Di conseguenza, mentre le transazioni Bitcoin richiedono normalmente alcuni minuti per essere implementate, le transazioni con Ethereum vengono elaborate immediatamente e in pochi secondi.
  2. Ethereum ha un modello economico leggermente diverso rispetto a quello del Bitcoin. Con BTC i compensi per i miners si dimezzano ogni 4 anni, mentre Ethereum rilascia la stessa quantità di Ether ogni anno all'infinito.
  3. Bitcoin utilizza l'algoritmo SHA-256, che produce un numero in formato esadecimale. Ethereum utilizza l'algoritmo Ethash (versione modificata del vecchio dagger hashimoto) il quale utilizza un set di dati da 1 GB personalizzato, che si aggiorna in base ai dati del blocco ogni N blocchi. Il set di dati utilizzato per interrogare il blocco è semi-permanente, e viene aggiornato solo occasionalmente (ad esempio una volta alla settimana). Ciò significa che la parte dello sforzo che porta alla generazione del set di dati è prossima allo zero.

Ethash: Esiste un seme che può essere calcolato per ogni blocco scansionando le intestazioni dei blocchi fino a quel punto. Dal seme si può calcolare una cache pseudocasuale da 16 MB. I client memorizzano la cache. Dalla cache possiamo generare un set di dati da 1 GB, con la proprietà che ogni elemento nel set di dati dipende solo da un piccolo numero di elementi dalla cache. I client completi e i minatori memorizzano il set di dati. Il set di dati cresce linearmente nel tempo.

L'estrazione comporta l'acquisizione casuale di sezioni del set di dati e il loro raggruppamento. La verifica può essere eseguita con poca memoria utilizzando la cache per rigenerare i pezzi specifici del set di dati di cui hai bisogno, quindi è sufficiente memorizzare la cache.

  1. Ethereum usa un protocollo Ghost che impedisce l'uso di mining (centri di "estrazione di valuta") centralizzati. Bitcoin invece impiega ancora il concetto di mining, grazie al quale possono nascere società e, con la giusta tecnologia, iniziare ad emettere BTC.
  2. Ethereum ha un metodo diverso per far pagare transazioni in funzione della complessità computazionale, dell'utilizzo della larghezza di banda e delle esigenze di archiviazione. Le transazioni in Bitcoin hanno lo stesso costo tra loro. Il costo viene chiamato "Gas" in Ethereum ed avviene per blocco mentre per Bitcoin è limitato dalla dimensione del blocco.
  3. Ethereum è stato finanziato dal crowdfunding mentre il Bitcoin è arrivato direttamente sul mercato e primi miners possidono la maggior parte delle criptovalute che saranno mai estratte. In Ethereum il 50% delle monete saranno di proprietà dei miners in cinque anni.

Simone Raimondi Cominesi

15823543 10208123526267628 4282135009201858219 n[1]Diplomato in informatica, è attualmente studia sicurezza informatica presso l'Università degli Studi di Milano. Potete seguirlo su Twitter e Instagram