Sei sulla pagina 1di 65

INDICE

Capitolo 1: Breve storia di Ethereum 4


Capitolo 2: Una panoramica della tecnologia Blockchain 8
Capitolo 3: La Blockchain di Ethereum 14
Capitolo 4: Gli Smart Contracts in Ethereum - Comprendere il concetto di 16
"Stato" nelle applicazioni
Capitolo 5: La macchina virtuale di Ethereum (EVM) 25
Capitolo 6: Il ruolo di Ether negli Smart Contracts 31
Capitolo 7: Algoritmi di consenso: Proof-of-Work vs. Proof-of-Stake 37
Capitolo 8: Ethereum (ETH) vs. Ethereum Classic (ETC) 42
Capitolo 9: Applicazioni decentrate (dApps) basate sulla piattaforma Ethereum 45
Capitolo 10: Ethereum Enterprise Alliance (EEA) 51
Capitolo 11: Critiche, rischi e sfide riguardanti Ethereum 53
Capitolo 12: Il futuro di Ethereum, applicazioni decentralizzate e 61
tecnologia Blockchain
Conclusioni 64
Capitolo 1 Breve storia di Ethereum

Il concetto iniziale di Ethereum è stato introdotto nell'anno 2013, dettagliato in un white paper scritto
dal programmatore russo-canadese Vitalik Buterin. Buterin, che all'epoca aveva solo 19 anni, e già
conosceva bene Bitcoin. Nel 2014 ha ricevuto la Theil Fellowship e un premio di $ 100.000, questo
lo ha spinto ad abbandonare il college e dedicarsi a tempo pieno allo sviluppo di Ethereum. Come
partecipante attivo nello spazio criptovaluta, Buterin ha visto il potenziale per estendere la struttura
blockchain oltre Bitcoin. La visione iniziale del progetto Ethereum era di creare una piattaforma per
sviluppare applicazioni decentralizzate con ampie capacità. In poche parole, Buterin ha immaginato
le possibilità di un sistema simile a Bitcoin che potrebbe essere utilizzato per più di un tipo di
transazioni finanziarie peer-to-peer. La visione completa di Buterin per Ethereum può essere
interpretata come un serio tentativo di applicare gli apprendimenti dalla rete crittografica globale
decentralizzata di Bitcoin alle sfide che vanno oltre il semplice scambio di valori. Anziché limitarsi
a eliminare l'intermediario e semplicemente inviare e ricevere denaro, i programmatori hanno visto il
quadro più ampio e hanno pensato alla possibilità di utilizzare "bitcoin" per rappresentare merci,
derivati o anche azioni immobiliari – in pratica quasi tutto ciò per cui una unità sicura e fissa di
codice potrebbe funzionare come risorsa digitale.
In sostanza, Buterin ha immaginato come la piattaforma potrebbe rimuovere i convenzionali arbitri fiduciari e
consentire una nuova ondata di sviluppo delle applicazioni, che potrebbe cambiare il modo in cui eseguiamo
transazioni le fiduciarie, senza l'uso di quei sistemi legali e burocratici lenti e complessi che sono oggi in vigore.
Alla fine del 2014, Ethereum aveva costituito un gruppo di sviluppatori, ottenuto un notevole sostegno ed era
ufficialmente in fase di sviluppo. Una vendita crowd del primo round di Ether, la valuta digitale utilizzata da
Ethereum, si è svolta nei mesi di luglio e agosto del 2014, il ricavato è andato a finanziare lo sviluppo ulteriore
del software. Il 30 luglio 2015, la prima versione di Ethereum è andata ufficialmente live. Oggi, Ethereum è
ancora guidato da un team centrale di sviluppatori, tra cui il fondatore Vitalik Buterin, ed è gestito da
un'organizzazione svizzera senza scopo di lucro chiamata Ethereum Foundation. A differenza di Bitcoin, il cui
creatore rimane ad oggi sconosciuto, Buterin è la figura chiave di questo progetto e la sua identità è molto legata
a Ethereum. Nonostante ci siano molti altri programmatori e visionari che contribuiscono allo sviluppo di
Ethereum, Buterin è generalmente considerato l'inventore e il "volto" del progetto. Alcuni critici hanno espresso
preoccupazione per la centralità del progetto Ethereum e per il "culto della personalità" che circonda Buterin.
Nel corso della sua breve storia, Ethereum ha suscitato interesse internazionale, ottenuto molto sostegno e
ricevuto anche una buona dose di critiche. L’Ether, nonostante periodi di volatilità, è diventata una delle più
pregiate valute digitali nello spazio delle criptovalute. Soprattutto perché è una tecnologia così nuova, è
impossibile prevedere cosa riserva il futuro per la piattaforma Ethereum. Per tutto il 2016 e il 2017, abbiamo
assistito a un enorme aumento dell'interesse globale per le criptovalute e il concetto di tecnologia blockchain. La
piattaforma Ethereum rappresenta, per molti, la cosa più vicina attualmente esistente a un framework per la
creazione di applicazioni blockchain decentralizzate in grado di funzionare autonomamente. Allo stesso tempo,
Ethereum è ancora agli inizi. Molti sostengono che non ha ancora raggiunto il livello di stabilità, sicurezza e
scalabilità necessarie per fare da apriporta al futuro delle applicazioni blockchain decentralizzate. Nel corso di
questo libro, esploreremo le capacità, le potenzialità e le sfide presentate da Ethereum. Daremo uno sguardo
ampio ai concetti e alle applicazioni pratiche di questa nuova tecnologia.
È importante capire che molti dei concetti fondanti di Ethereum, in particolare quando si esaminano le critiche e
la tabella di marcia per lo sviluppo, sono altamente tecnici. Il codice stesso e molti dei concetti matematici alla
base della piattaforma Ethereum vanno oltre lo scopo di questo libro, noi approfondiremo le idee fondamentali
ed esploreremo le domande pratiche: Che cos'è? Come funziona? Come posso usarlo? Esploreremo le
differenze fondamentali tra Bitcoin ed Ethereum e analizzeremo alcuni esempi reali di come Ethereum viene
utilizzato per sviluppare nuovi tipi di applicazioni.
Capitolo 2 Una panoramica della tecnologia Blockchain

Prima di iniziare a esplorare le specifiche di Ethereum, è fondamentale comprendere alcuni dei


principi fondamentali della tecnologia blockchain più in generale. Per i neofiti, uno dei concetti che
inizialmente può risultare più confuso è la relazione tra criptovalute e blockchain. La tecnologia
blockchain è la forza alla base sia di Bitcoin che di Ethereum, ma questi due progetti utilizzano
questa tecnologia in modi diversi. Per capire come Ethereum implementa la blockchain, tuttavia, è
utile avere qualche informazione di background su Bitcoin. Bitcoin è stata la prima valuta digitale e
la prima applicazione costruita su una piattaforma blockchain. Oggi, Bitcoin è di gran lunga la
criptovaluta più famosa e conosciuta oltre ad essere la blockchain aperta più grande e attiva al
mondo. Quando Bitcoin ha acquistato popolarità, molti media hanno sviluppato una tendenza (errata)
a usare i termini "Bitcoin" e "blockchain" in modo quasi intercambiabile. Ancora oggi si possono
trovare molti articoli che cercano di chiarire chiaramente la relazione tra Bitcoin, altre criptovalute e
la tecnologia blockchain.
Per motivi di chiarezza, analizziamo i fondamenti. Bitcoin è fondamentalmente una valuta, progettata per
consentire transazioni finanziarie digitali, sicure e peer-to-peer ed ha ottenuto, per la maggior parte, un grande
successo nel raggiungimento di questo obiettivo specifico. Bitcoin usa una blockchain per svolgere la sua
funzione. La tecnologia blockchain, d'altra parte, ha implicazioni che vanno ben oltre il Bitcoin e, in generale,
ben oltre il mondo delle valute digitali. Il modello blockchain su cui è costruito Bitcoin funziona molto bene con
Bitcoin, anche se ci sono margini di miglioramento. (Ad esempio, le transazioni Bitcoin possono richiedere
molto tempo per essere approvate, il che rappresenta un impedimento per molti commercianti ad accettare
pagamenti in Bitcoin. Nessuno vuole aspettare in un negozio per un'ora mentre viene verificata una transazione
Bitcoin). Mentre Bitcoin è stata la prima tecnologia a implementare la blockchain, i primi utilizzatori, come
Vitalik Buterin, hanno rapidamente iniziato a vedere il potenziale dell'architettura blockchain in un'ampia varietà
di altri ambienti. Poiché Bitcoin è stato progettato specificamente per essere una valuta, gli innovatori si sono
chiesti se la particolare struttura blockchain utilizzata da Bitcoin fosse il miglior modello su cui costruire altre
applicazioni, oltre alle transazioni peer-to-peer di una valuta digitale. Ethereum è nata proprio dall’idea di creare
un ambiente più flessibile per implementare la potenza della tecnologia blockchain in modo universale,
attraverso un ampio spettro di diverse applicazioni.
Quindi, cos'è una blockchain e come funziona? Rispondere approfonditamente a questa domanda richiederebbe
l’analisi di alcuni concetti matematici abbastanza avanzati che vanno oltre lo scopo di questo libro.
Fortunatamente, a meno che tu non abbia intenzione di diventare un programmatore, non hai davvero bisogno
di capire il succo degli algoritmi di hashing crittografico per avere una solida base circa i concetti fondamentali e
la struttura del blockchain.
I blockchain usano una matematica complessa, ma se non andiamo in profondità sono in fin dei conti
abbastanza semplici da capire da una prospettiva più ampia. Partendo proprio dalla terminologia, abbiamo i
"blocchi" che sono collegati insieme, uno dopo l'altro, per formare una "catena". Ogni blocco è costituito da un
insieme di dati relativi agli eventi che si sono verificati durante un particolare periodo di tempo. Il blocco più
recente contiene dati relativi agli eventi più recenti. Nel caso di Bitcoin, questi dati sono relativi alle transazioni,
come gli indirizzi dei portafogli Bitcoin che inviano e ricevono fondi, gli importi oggetto di transazione, l'ora
delle transazioni e altri dettagli simili.
Quindi, ogni nuovo blocco è una raccolta di una serie di dati sulle transazioni più recenti che hanno avuto luogo.
Ogni blocco è collegato al blocco precedente da un tipo speciale di timestamp crittograficamente sicuro. A
questo punto si verificano alcuni processi matematici complessi per garantire che ogni nuovo blocco
corrisponda all'intera cronologia di tutte le transazioni precedenti sulla blockchain. Ogni nuovo timestamp deve
coincidere con il timestamp del blocco precedente, che a sua volta è collegato a quello prima ancora, creando
così una lunga catena in cui ogni blocco è collegato in modo verificabile al precedente, fino al primo blocco,
noto come il "blocco di genesi". L'intera storia di ogni singola transazione Bitcoin viene registrata sulla
blockchain, che è pubblica e disponibile per chiunque desideri consultarla. Il potenziale per transazioni sicure
con questo livello di trasparenza è una caratteristica che ha attirato molte persone verso il Bitcoin e la tecnologia
blockchain.
In poche parole, il blockchain Bitcoin è in definitiva solo una registrazione di ogni singola transazione Bitcoin
verificata che sia mai avvenuta. Le transazioni che avvengono in un determinato periodo di tempo sono
raggruppate in blocchi. Copie multiple e identiche della blockchain vengono archiviate e aggiornate
costantemente da una grande rete di computer partecipanti in tutto il mondo. Questo è ciò che è noto come
"libro mastro distribuito" (distributed ledger). Un libro mastro distribuito è fondamentalmente un gigantesco
database decentralizzato, o una registrazione di informazioni, eventi o transazioni. La decentralizzazione è un
concetto fondamentale dell'architettura blockchain di Bitcoin ed Ethereum, così come per molte altre iniziative
basate su blockchain e criptovalute.
Non tutti i libri mastri distribuiti sono blockchain, ma tutti i blockchain utilizzano una sorta di sistema di registro
distribuito. Di solito, questo significa che copie identiche vengono archiviate e aggiornate simultaneamente su
molte macchine diverse in tutto il mondo. Nel caso di Bitcoin, chiunque volesse hackerare o manomettere la
blockchain, dovrebbe manipolare i dati non solo di un blocco, ma dell'intero registro storico, sulla maggior parte
dell'intera rete di macchine decentralizzate, e simultaneamente. Il tipo di potenza computazionale necessaria per
fare tutto questo non è attualmente nemmeno concepibile, rendendo così il sistema sicuro. Concettualmente,
sebbene non del tutto identica, la blockchain di Ethereum è strutturata in modo molto simile. La differenza
fondamentale, osservando Ethereum, è il tipo di dati che vengono archiviati in blocchi e il modo in cui vengono
gestiti i dati.
Capitolo 3 La Blockchain di Ethereum

Oggi, Bitcoin continua ad essere la più grande blockchain aperta e pubblica. E ‘anche un modello
completo su cui si basano molte altre applicazioni blockchain. Tuttavia, la blockchain di Bitcoin è
solo un'implementazione di questa tecnologia. Mentre sempre più settori industriali iniziano a
esplorare il potenziale della blockchain, nuovi modelli stanno emergendo con regolarità, spesso
adatti a servire a uno scopo specifico. Se osserviamo Bitcoin, vediamo che fondamentalmente il suo
scopo è essere una valuta digitale peer-to-peer e decentralizzata. Bitcoin risolve un problema
specifico: rendere sicure le transazioni finanziarie su base peer-to-peer da qualsiasi parte nel mondo,
eliminando al contempo la necessità di fiducia, di un intermediario o di un'autorità centralizzata come
una banca. Anche se Bitcoin non è perfetto, ha avuto sicuramente successo nel servire lo scopo per il
quale era destinato. Mentre gli sviluppatori e gli imprenditori cominciavano a intravedere che le
implicazioni per la tecnologia blockchain andavano ben oltre le transazioni finanziarie, molti
iniziarono a pensare a strutture di blockchain alternative più adatte a svolgere diverse funzioni.
Vitalik Buterin, lo sviluppatore che ha inventato Ethereum, ha ideato una piattaforma aperta sulla
quale chiunque potrebbe costruire un'applicazione blockchain per eseguire qualsiasi tipo di funzione.
Piuttosto che una blockchain che memorizza semplicemente i dati delle transazioni finanziarie, come con
Bitcoin, la blockchain di Ethereum è progettata per eseguire un codice basato su transazioni verificate. Invece di
spostare semplicemente fondi dall'account A all'account B, come con Bitcoin, Ethereum potrebbe creare un
ambiente in cui una transazione dall'account A all'account B innesca una vasta gamma di eventi. Ad esempio, le
transazioni in Ethereum possono essere utilizzate per registrare un nuovo dominio, trasferire titoli di proprietà,
gestire la registrazione degli elettori o eseguire contratti sicuri tra due o più parti. Proprio per questo, le
"transazioni" all'interno di Ethereum sono spesso definite “smart contracts" (contratti intelligenti).
Capitolo 4 Gli Smart Contracts in Ethereum - Comprendere il concetto di "Stato" nelle
applicazioni

Il termine "Smart Contracts" - Contratti Intelligenti – viene spesso usato in riferimento a Ethereum.
Cos'è un contratto intelligente? La risposta più semplice è che un contratto intelligente è un
programma per computer. I contratti intelligenti sono in realtà l’essenza di Ethereum, e vale la pena
esplorare questo concetto in profondità per comprendere davvero la potenza e la visione della
piattaforma. Se non hai un solido background tecnico, non ti preoccupare. Quando si tratta
effettivamente di scrivere smart contracts, è necessario imparare a programmare o rivolgersi a un
programmatore, ma non serve sapere come codificare per comprendere concettualmente come
funzionano i contratti intelligenti. Tuttavia, è utile avere una conoscenza di base di come funzionano i
programmi per computer, anche se non si sa necessariamente come scriverli da soli. Benché possano
fare cose incredibilmente complesse, tutti i programmi per computer essenzialmente funzionano
chiedendo una serie di sì o no. Quando pensiamo a tutti i "dati" costituiti in ultima analisi da 1 e 0, o
codice binario, ciò che questi 1 e 0 rappresentano sono "sì" e "no".
In senso lato, non ci sono "forse" per un computer. Se potessimo scrivere un semplice programma per
computer usando l’italiano, potrebbe sembrare qualcosa del genere: Caro computer, se sto riproducendo un
video e faccio clic sul pulsante di pausa, per favore metti in pausa il video. In questo esempio, il computer
dovrà prima controllare se sto riproducendo un video. Questa è la prima domanda a cui dovrà rispondere "sì" o
"no". Se la risposta è "sì", sto riproducendo un video, farà quindi la domanda numero due: sto facendo clic sul
pulsante di pausa? Diciamo di no. Per tutto il tempo in cui sto riproducendo il video (vale a dire finché la prima
risposta è ancora "sì"), il computer aspetterà pazientemente chiedendo la seconda domanda più e più volte fino
a quando la risposta sarà "sì". Il suo unico scopo, purché io stia riproducendo un video, sarà controllare
costantemente se sto premendo o meno il pulsante pausa. Non appena premo il pulsante di pausa, la risposta
alla seconda domanda diventa "sì" e quindi interromperà il video.
Quando pensiamo alle transazioni digitali che accadono con Bitcoin, quello che facciamo quando partecipiamo a
queste transazioni è l'esecuzione di un semplice programma per computer. L'essenza di ciò che accade è che la
Persona A vuole inviare fondi alla Persona B. Il software di Bitcoin porrà una serie di domande: la Persona A
ha effettivamente fondi sufficienti? La persona A può verificare la proprietà dell'indirizzo che detiene tali fondi?
L'indirizzo per la persona B è valido? Finché vengono forniti gli input corretti, la rete decentralizzata di Bitcoin
raggiungerà un consenso per compiere i calcoli e l'esecuzione del programma: la transazione verrà verificata e la
Persona B riceverà i fondi. Con Bitcoin, il programma in esecuzione si occupa solo di un tipo di transazione. I
bitcoin sono essenzialmente solo numeri che vengono spostati da un indirizzo digitale a un altro, e il registro di
tutti quei movimenti viene memorizzato sulla blockchain. La blockchain fornisce un sistema per una rete
decentralizzata di computer che deve raggiungere un consenso su quali attività eseguire e poi eseguire tali
attività. Nel caso di Bitcoin, le "attività" sono trasferimenti di bitcoin dalla Persona A alla Persona B, ma c'è
qualche ragione per cui questo sistema non possa essere usato per gestire altri tipi di attività? Bene, no, e questo
è esattamente ciò che Ethereum è stato creato per fare. Ethereum utilizza la stessa infrastruttura blockchain, ma
apre la porta a qualsiasi tipo di programma da eseguire.
Anche quando continuiamo a pensare in termini di transazioni finanziarie, le possibilità che offre Ethereum
consentono anche la creazione di un ambiente molto più flessibile per i sistemi di pagamento. Ad esempio, con
Ethereum, un deposito a garanzia potrebbe essere trattenuto sulla blockchain per un determinato periodo di
tempo: se non venisse soddisfatta una serie di condizioni, potrebbe essere restituito al compratore; se le
condizioni fossero soddisfatte, il pagamento potrebbe essere rilasciato al beneficiario. In Bitcoin, non c'è modo
di tenere un pagamento in "deposito" in questo modo senza ricorrere ad una parte terza. Questo tipo di
transazione condizionale è un semplice esempio di qualcosa che potrebbe essere realizzato con un contratto
intelligente in Ethereum. Altre possibilità d'uso per i contratti intelligenti potrebbero includere un approccio
"multi-firma" per rilasciare fondi, il che significa che un determinato numero di persone dovrebbe essere
d'accordo nel rilasciare i fondi per rendere effettivo un contratto. Per complicare ulteriormente le cose, ma
anche renderle molto più interessanti, i contratti intelligenti sono spesso usati per innescare altri contratti
intelligenti.
Ad esempio, supponiamo che volessi scommettere su una vittoria della tua squadra sportiva nella prossima
partita: potresti utilizzare un solo contratto per piazzare la scommessa, e in background, utilizzare un altro
contratto intelligente per raccogliere i dati sulla partita ed elaborare i risultati, questo poi invierebbe le
informazioni nuovamente a un altro contratto intelligente per erogare il pagamento al vincitore. Man mano che
diventiamo più integrati nell'Internet delle Cose, i contratti intelligenti aprono un intero mondo di possibilità. Ad
esempio, quando le auto intelligenti diventeranno di uso comune, potremmo facilmente immaginare una
transizione dal vecchio sistema in cui dobbiamo mettere i soldi in un parchimetro ad un sistema interamente
basato su contratti intelligenti. I sensori potranno facilmente collegare auto specifiche a zone di sosta specifiche,
e si userà un contratto intelligente per detrarre automaticamente la tariffa giusta in base al tempo in cui un'auto
è rimasta parcheggiata in un determinato spazio. Piuttosto che frugare nelle tasche alla ricerca di monetine da
inserire nei parchimetri, i guidatori potranno semplicemente parcheggiare e il contratto intelligente gestirà la
transazione in background. Le città potrebbero sbarazzarsi dell'intero sistema basato su parchimetri e
automatizzare l'intero processo.
Anche il concetto di catena di approvvigionamento può servire come buon esempio per visualizzare come i
contratti intelligenti possono essere collegati insieme in uno scenario reale. Supponiamo che entri un negozio per
comprare uno spazzolino da denti. Questo negozio normalmente ha solo 10 di questi spazzolini da denti in
stock, e tu compri l'ultimo. Molti altri sono stoccati in un magazzino a 100 miglia di distanza. Sono fabbricati,
tuttavia, in Cina. Mentre l'impianto chimico che fornisce la plastica per realizzare questo spazzolino da denti si
trova in Texas. Quando acquisti lo spazzolino, una rete di contratti intelligenti potrebbe immediatamente
informare il magazzino che il negozio ha bisogno di più scorte, successivamente informerà il produttore che sarà
necessario preparare un'altra spedizione per il magazzino, che a sua volta farà sapere al fornitore di materie
plastiche che, per produrre più spazzolini, la fabbrica in Cina avrà bisogno di una spedizione di materie prime. I
vantaggi di automatizzare l'intero sistema tramite contratti intelligenti includono l'eliminazione di un'enorme
quantità di scartoffie, burocrazia, ritardi, errori umani e costi associati agli intermediari necessari per contattare
fisicamente il successivo collegamento nella catena di approvvigionamento e negoziare ciascun ordine. Rendere
questi sistemi incredibilmente complessi più efficienti e meno vulnerabili alla corruzione, creando una
registrazione trasparente per ogni transazione è una delle applicazioni più promettenti per i contratti intelligenti.
Nonostante le differenze fondamentali tra Bitcoin ed Ethereum, molte persone tendono a considerare questi due
progetti come "concorrenti", in competizione per il controllo dello spazio blockchain. Anche per coloro che
sono interessati solo a Ether come valuta, e non si preoccupano particolarmente della tecnologia, questa idea
non è veramente corretta. In definitiva, Bitcoin ed Ethereum sono due tecnologie distinte e coesistenti che
hanno diversi obiettivi e applicazioni. Bitcoin è progettato per essere una valuta: è un fine in sé e per sé.
Ethereum utilizza Ether come un modo per eseguire contratti intelligenti: la valuta Ether è uno strumento. In
questo senso, i due progetti non sono realmente concorrenti, in quanto entrambi hanno visioni, obiettivi e usi
differenti. Per comprendere meglio il concetto di contratti intelligenti e come funziona la piattaforma Ethereum,
è utile esplorare alcuni dei fondamenti dello sviluppo del software. Se hai esperienza con qualsiasi linguaggio di
programmazione, avrai un vantaggio in termini di comprensione del modo in cui il codice viene eseguito
utilizzando contratti intelligenti. In caso contrario, non preoccuparti. Ancora una volta, non è necessario sapere
come scrivere un codice per capire come funziona Ethereum, ma è utile acquisire familiarità con alcuni concetti
di programmazione di base.
Comprendere il concetto di "Stato" nelle applicazioni
In materia di sviluppo del software, esiste un concetto noto come "stato". In pratica, lo stato si riferisce a ciò
che accade all'interno di un'applicazione in un dato momento. Ogni volta che qualcosa cambia, lo stato
dell'applicazione cambia. Ad esempio, immagina di visitare una pagina Web che richiede la registrazione di un
account. Molto probabilmente dovrai compilare un modulo con alcune informazioni e fare clic sul pulsante
"Invia" per inviare il modulo al server del sito web. Verrai quindi indirizzato a una pagina di "Benvenuto" e
avrai accesso al resto del sito web. Dietro le quinte, quando invii il modulo e il sito ti porta alla pagina di
benvenuto, lo stato del programma in esecuzione sul sito cambia.
Perché è importante? I contratti intelligenti in Ethereum sono in definitiva programmi o applicazioni. Ogni
iterazione dello stato di un'applicazione è memorizzata sulla blockchain. Questo potrebbe sembrare complicato -
ed è, in effetti, piuttosto complicato - ma questa registrazione della storia di un programma è fondamentale per
il funzionamento dei contratti intelligenti in Ethereum. All'interno delle applicazioni Ethereum, quando si verifica
una "transazione", il codice software può essere attivato ed eseguito. Pertanto, lo stato di tale applicazione può
essere modificato e una registrazione di ciò che è accaduto all'interno del codice viene memorizzata sulla
blockchain. Mantenendo questo record, è possibile accedere all'intera cronologia dell'esecuzione di qualsiasi
applicazione e utilizzarla per verificare le richieste e regolare le transazioni.
Capitolo 5: La Ethereum Virtual Machine (EVM)

Tutte le macchine che partecipano alla rete Ethereum sono chiamate "nodi". Proprio come Bitcoin e
altre reti peer-to-peer decentralizzate, ci sono molti nodi distribuiti in tutto il mondo. Chiunque può
decidere di gestire un nodo. In termini di Ethereum, possiamo pensare a tutti questi diversi computer
che si fondono insieme, in un certo senso, per formare un gigantesco computer in grado di eseguire
calcoli distribuiti. Questo concetto è noto come "Ethereum Virtual Machine" – Macchina Virtuale
Ethereum -, spesso abbreviato in EVM. Le macchine virtuali (o VM), in termini di calcolo, sono
sistemi informatici emulati. Se hai mai partizionato il tuo disco rigido per eseguire sia Windows che
OSX, hai utilizzato un tipo di macchina virtuale. Per i nostri scopi, non abbiamo davvero bisogno di
sapere troppo sul ruolo delle macchine virtuali, in generale.
Quando si parla della macchina virtuale Ethereum, la cosa importante da sapere è che si tratta dell'ambiente di
runtime per i contratti intelligenti. Ogni nodo sulla rete Ethereum esegue un'implementazione dell'EVM. Come
la maggior parte delle macchine virtuali, anche quella di Ethereum funziona a un livello molto basso, il che
significa che elabora il codice scritto in un linguaggio di programmazione di “basso livello". Per gli sviluppatori,
è molto più efficiente scrivere contratti in un linguaggio di "alto livello". Perciò, i contratti intelligenti sono scritti
in un linguaggio, solitamente Solidity, e poi compilati (usando un programma speciale chiamato "compilatore")
nel codice di basso livello che può essere elaborato dall'ambiente EVM. I contratti intelligenti vengono eseguiti
sulla macchina virtuale Ethereum, che viene eseguita su ciascun nodo partecipante. Quando consideriamo ciò
che sappiamo sulla tecnologia blockchain e ciò di cui abbiamo appena parlato relativamente ad Ethereum,
possono sorgere alcune domande.
Innanzitutto, se ogni istanza dello stato di un'applicazione è memorizzata nella blockchain, non vuol forse dire
che la blockchain diventerà davvero, davvero grande? Non sarà difficile per i nodi mantenerla in continuo
aggiornamento? In che modo i nodi più piccoli possono utilizzare il network in modo efficiente se non hanno la
capacità di memorizzare l'intero stato? Buona domanda! Se la blockchain di Ethereum avesse usato lo stesso
approccio e la stessa struttura di Bitcoin - cioè, se semplicemente avesse registrato una lunga lista di ogni
singola cosa che accade in ogni applicazione – ciò avrebbe effettivamente creato problemi in termini di
efficienza e scalabilità. Come avrai intuito, non è esattamente così che funziona. In realtà, questa è una delle
sfaccettature della blockchain di Ethereum che la rende unica, differenziandosi dall'architettura della blockchain
originale implementata da Bitcoin. Ethereum utilizza un particolare tipo di struttura dati basata su un principio
matematico chiamato Albero di Merkle.
Anche la blockchain di Bitcoin utilizza un Albero di Merkle, ma per essere tecnici, Ethereum utilizza
effettivamente un particolare tipo di Albero Merkle conosciuto come Albero Merkle Patricia. Il Merkle Patricia
usato da Ethereum è un modo di memorizzare dati (cioè i dati che costituiscono i "blocchi") come un insieme di
coppie chiave / valore. Una "chiave" è un codice breve che corrisponde a uno specifico "valore", che può anche
essere una porzione di dati molto più lunga. Queste chiavi e valori sono generati e autenticati utilizzando
algoritmi crittograficamente sicuri. Chiavi e valori possono essere generati solo in un modo molto specifico
usando un particolare metodo matematico che funziona solo in una direzione. Ciò significa che qualsiasi dato (il
valore) che viene inserito nell'algoritmo genererà sempre la stessa chiave. Tuttavia, non è possibile invertire il
processo inserendo una chiave nel sistema per arrivare al valore iniziale.
Dato lo stesso insieme di chiavi e valori, otterrai esattamente la stessa struttura Albero Merkle ogni volta. Anche
un leggero cambiamento in un bit di dati di input produrrà un output completamente diverso. Concettualmente,
questo è il dettaglio più importante da comprendere in termini di funzionamento della verifica: tutti i dati che
vengono inseriti nell'algoritmo generano l'output crittografico sicuro identico ogni volta, purché i dati rimangano
invariati. Finora, ciò che abbiamo descritto è praticamente lo stesso tipo di Albero Merkle usato nella
blockchain di Bitcoin. Ciò che rende diverso il modello di Ethereum è la parte "Patricia" dell’Albero. Questo ha
a che fare con il modo in cui le chiavi sono posizionate nella struttura dei dati blockchain. Entrare nella logica
matematica che si trova dietro a questo principio, è oltre lo scopo di questo libro, ma in generale il sistema è in
grado di decidere come unire e organizzare i dati memorizzati nei blocchi utilizzando i prefissi assegnati a
ciascuna chiave. Ciò significa, in pratica, che i nodi hanno la possibilità di verificare l'autenticità senza dover
scaricare l'intera blockchain.
Infatti, i singoli nodi non avranno quasi mai bisogno di accedere all'intero stato del sistema per eseguire un
determinato calcolo. Scaricare l'intera blockchain, quindi, non sarebbe molto efficiente. Invece, un nodo può
scaricare solo lo stato parziale di cui ha bisogno, e può verificare quel pezzo di codice (o quel "ramo
dell'albero") controllandolo, usando le chiavi, in rapporto ai rami circostanti. Poiché i rami circostanti
conterranno un riferimento collegato fino alla radice (la prima transazione), i nodi possono verificare lo stato
parziale senza dover scaricare l'intera cronologia dello stato. Ciò rende le transazioni in Ethereum molto più
veloci, efficienti e consente una maggiore scalabilità della piattaforma.
Capitolo 6 Il ruolo di Ether negli Smart Contracts

I contratti intelligenti, come abbiamo imparato, sono programmi per computer, o "script", scritti in
codice. Questi script sono scritti in un linguaggio di programmazione completo di Turing. "Turing-
complete", per definizione, significa che questo linguaggio è in grado di eseguire qualsiasi tipo di
calcolo. Se qualcosa può essere espresso con un algoritmo, un linguaggio completo di Turing può
esprimerlo. Ci sono diversi linguaggi che possono essere utilizzate per scrivere contratti intelligenti,
il più popolare oggi si chiama Solidity. Solidity è simile per molti versi a JavaScript, un linguaggio
di programmazione molto versatile e ampiamente utilizzato, noto per il suo uso nelle applicazioni
web. Uno dei problemi principali posti dalle macchine complete di Turing (vale a dire qualsiasi
macchina in grado di eseguire script scritti in un linguaggio completo di Turing) è noto come
"problema di interruzione".
Fondamentalmente, ciò significa che il computer non ha modo di sapere in anticipo se un programma si fermerà
a un certo punto, o se proseguirà a ciclo continuo (in termini di programmazione, questo è noto come un "ciclo
infinito"). L'unico modo per determinarlo è eseguendo effettivamente il codice. Ad esempio, immagina di avere
un programma che dicesse qualcosa del tipo: "Gentile computer, per favore dammi un numero casuale". E
‘possibile che in questo modo io possa ottenere un numero come 50 o 300, ma come puoi notare non ho
specificato una lunghezza. È quindi plausibile che il computer se ne esca con un numero così lungo che
potrebbe andare avanti e avanti, fino all'infinito. Un'idea migliore potrebbe essere quella di dire al computer:
"Gentile computer, per favore, dammi un numero casuale inferiore a 1000". Ma ora potrebbe anche darmi un
numero negativo diretto verso l'infinito. Quindi, potrei dirgli: "Ok, bene, per favore dammi un numero casuale
tra 0 e 1000." Il povero computer sta solo cercando di fare il suo lavoro, ma questa volta potrebbe sputare
fuori un numero come 1,500.000 ... seguito da un numero infinito di 0. In realtà, per far funzionare il nostro
programma, dovremmo specificare che vogliamo un numero intero, compreso tra 0 e 1000.
Fare in modo che i programmi lavorino nel modo in cui vogliamo non è sempre facile, e non è raro
programmare inavvertitamente un bug creando "loop infiniti". Una macchina non ha modo di sapere se
incapperà o meno in un ciclo infinito all’interno di un pezzo di codice finché non eseguirà effettivamente quel
codice, e a quel punto tutto è bloccato. Se qualsiasi nodo sulla rete Ethereum si blocca eseguendo un
programma in un ciclo infinito, fermerebbe effettivamente l'intero sistema, ecco quindi "il problema di
interruzione". L’incapacità di completare uno script impedirebbe l'aggiunta di nuovi dati alla blockchain. Ciò,
ovviamente, sarebbe un male. Quindi, come possiamo evitare questo problema? La risposta è in realtà piuttosto
semplice: Ether. All'interno della rete Ethereum, il calcolo non è gratuito. Ogni volta che un utente fa una
richiesta per eseguire uno script, viene associata una determinata tariffa, che viene pagata in Ether. Inoltre, per
poter eseguire uno script, un utente deve impostare un limite alla quantità di Ether utilizzata per l'esecuzione di
tale script. L'Ether dedicato alla gestione di un particolare script è noto come "gas". Se lo script esaurisce Ether,
o "gas", prima del completamento, si fermerà semplicemente al suo stato attuale.
Richiedendo una tariffa e imponendo un limite di valore da impostare per ogni script, Ethereum elimina il
problema dei programmi a ciclo infinito, siano essi accidentali o, come è più probabile, attacchi a danno del
sistema. Nessuno ha una quantità infinita di Ether, quindi anche se qualcuno tentasse di eseguire un programma
a ciclo infinito, non sarebbe poi in grado di sostenere i costi necessari per continuare a eseguire il programma.
Lo script sarebbe tagliato fuori dall'esecuzione non appena finiti i fondi. L’Ether, come valuta, gioca un ruolo
fondamentale all’interno di Ethereum. Oltre all’uso come "gas" per l'esecuzione di contratti intelligenti sulla
blockchain di Ethereum, Ether viene anche negoziato con altre criptovalute e alcune valute correnti, come
dollari ed euro. Negli Stati Uniti è possibile acquistare Ether con valuta corrente attraverso diversi scambi di
valute digitali, tra cui Coinbase, Bittrex e altri. Puoi acquistare Ether con Bitcoin attraverso quasi tutte le
piattaforme più importanti, tra cui ShapeShift, Kraken, Poloniex e altro. A seconda di dove ti trovi nel mondo,
il tuo accesso a specifici scambi varierà, ma non dovresti avere problemi ad acquistare, vendere o negoziare
Ether attraverso una o più piattaforme online, indipendentemente da dove vivi.
L’Ether ha un valore significativo nel mondo reale, al di là del ruolo di “gas”. Un Ether ha raggiunto un valore
di oltre $300 in diversi periodi del 2017. Per molti, l'Ether è trattato esclusivamente come un investimento, con
gli speculatori che scambiano Bitcoin o altre valute digitali per Ether nella speranza che il valore di Ether cresca.
In tal caso, potrebbero semplicemente rinegoziare i loro Ether in valuta corrente senza mai realmente interagire
con alcuna applicazione sulla rete Ethereum. In questo senso, Ether può essere acquistato, venduto e scambiato
come Bitcoin o qualsiasi altra valuta digitale. All'interno del framework Ethereum, tuttavia, Ether ha l’unica
funzione di "gas" per eseguire contratti intelligenti. Anche se il tuo interesse per Ethereum è puramente di
carattere finanziario e non hai intenzione di scrivere software o di essere coinvolto in alcun modo con le
applicazioni create sulla piattaforma, è utile capire la relazione tra queste applicazioni, la struttura del sistema di
Ethereum e il valore di Ether come valuta. Sappiamo che l'Ether può essere acquistato su vari cambi di valuta,
ma da dove viene effettivamente l’Ether? Chi lo fa e come? Ad oggi Ether viene "estratto" in un modo simile a
Bitcoin.
I nodi nella rete Ethereum eseguono complessi problemi matematici per convalidare le transazioni. Quando un
particolare nodo, o estrattore, con successo "risolve un blocco", quel blocco viene aggiunto alla blockchain e
l’estrattore viene ricompensato per il suo lavoro con una certa quantità di Ether. Questa struttura potrebbe
cambiare nel prossimo futuro, tuttavia, e ci conduce a un altro importante concetto. Abbiamo bisogno di
guardare un po’ 'più da vicino il ruolo dell’estrattore, come vengono convalidate le transazioni, come viene
mantenuta la blockchain e come questo si collega al futuro di Ethereum.
Capitolo 7 Algoritmi di consenso: Proof-of-Work vs. Proof-of-Stake

Una parte significativa di ciò che guida l'implementazione dei protocolli blockchain nel mondo reale
consiste nel condurre transazioni sicure, sia che si tratti di transazioni puramente finanziarie come
con Bitcoin, sia che si tratti di transazioni di altri tipi di informazioni o dati. Quando una parte invia
informazioni a un'altra, in che modo il sistema garantisce che l'informazione è valida? Abbiamo già
toccato il concetto di un libro mastro distribuito e il ruolo delle reti decentralizzate nel mantenimento
di una blockchain. In pratica, ciò significa che molte persone in tutto il mondo devono eseguire un
software che convalida le transazioni e registra tali transazioni sulla blockchain. In alcuni casi,
questo può diventare piuttosto costoso in termini di potenza del computer e costi di elettricità. Per
incoraggiare le persone a partecipare, c’è bisogno di qualche incentivo. È qui che entra in gioco il
"mining" cioè l’estrazione. Gli estrattori di bitcoin richiedono notoriamente attrezzature specializzate
che eseguono migliaia di complesse operazioni matematiche ogni secondo. Questi calcoli consumano
una notevole potenza di elaborazione oltre a molta energia elettrica. Non andremo troppo in
profondità su come funziona il mining Bitcoin, in particolare, ma l'idea generale è che gli estrattori
competono per risolvere un complesso problema matematico al fine di convalidare ogni nuovo
blocco che viene aggiunto alla blockchain.
La soluzione ad ogni problema è fondamentalmente un numero casuale, e l'unico modo per trovarlo è per
tentativi ed errori. Quindi, gli estrattori usano il loro equipaggiamento per provare tonnellate di numeri casuali il
più rapidamente possibile, finché non trovano quello che corrisponde ai criteri stabiliti dal codice core del
software Bitcoin. Come Bitcoin, Ethereum ha fin dall’inizio lavorato su un modello di consenso "Proof-of-
Work". Tuttavia, all'inizio del 2017 è stato annunciato che Ethereum intende in futuro passare all'attuazione di
un modello di consenso "Proof-of-Stake". Vitalik Buterin, creatore di Ethereum, ha pubblicato un white paper
nel maggio del 2017 proponendo l'implementazione di un nuovo algoritmo Proof-of-Stake chiamato Casper nel
protocollo Ethereum. La tempistica non è chiara, ma i primi resoconti suggeriscono che l'algoritmo di Casper
sarà introdotto gradualmente nel tempo. Gli appassionati di Ethereum hanno accolto questa notizia con
sentimenti contrastanti, e vi sono continue speculazioni su come la Proof-of-Stake si tradurrà in applicazioni nel
mondo reale.
Per capire come questo potrebbe avere un impatto su Ethereum, esploriamo come funziona la Proof-of-Stake.
Quando abbiamo esaminato la Proof-of-Work, abbiamo visto che esiste un costo reale associato all'esecuzione
di calcoli apparentemente privi di significato al fine di trovare un numero casuale per risolvere un blocco e
richiedere un premio. Per avere un'idea di quanto questo costo sia significativo, si stima che sia Bitcoin che
Ethereum consumino più di 1 milione di dollari al giorno in costi di elettricità e hardware associati al mining. Il
modello Proof of Stake (PoS) proposto da Ethereum elimina il drenaggio delle risorse presentato dal Proof-of-
Work. Piuttosto che fare affidamento sugli estrattori, i partecipanti a questo modello assumono il ruolo di
"validatori". Come in una scommessa, i validatori mettono in gioco una certa quantità dei loro Ether per
risolvere un blocco. Maggiore è la posta di un validatore, maggiore è la probabilità che risolva il blocco. Se
"vincono", saranno ricompensati.
Nel caso in cui un cattivo attore cerchi di manipolare il sistema, la sua posta scomparirà semplicemente dalla
circolazione. L'Ether usato per cercare di convalidare una falsa transazione, per esempio, sarà eliminato dalla
quantità totale di Ether esistente. In teoria, ciò aumenterà il valore complessivo della valuta per via del principio
della scarsità. In economia, il principio di scarsità implica fondamentalmente che laddove esista una domanda,
minore è la merce, maggiore è il suo valore. L'algoritmo di Casper rappresenta un nuovo modello per
implementare il consenso Proof-of-Stake in un ambiente reale. Tra gli utenti di Ethereum e in tutta la più vasta
comunità di criptovalute e blockchain, vi è un acceso dibattito su PoW versus PoS, in generale e in relazione a
Ethereum, in particolare. In caso di successo, alcuni dei vantaggi della Proof of Stake includono l’eliminazione
del consumo di risorse richiesto per il mining e potenzialmente un maggiore livello di sicurezza e scalabilità.
Anche le transazione più veloci possono essere un risultato.
Tuttavia, fino a quando non verrà implementato l'algoritmo di Casper, molte di queste possibilità rimangono
teoriche e molti scettici mantengono l'atteggiamento del "ci crederò quando lo vedrò". Come piattaforma per
gestire contratti intelligenti, Ethereum apre il potenziale della tecnologia blockchain ad un'ampia varietà di
applicazioni creando un ambiente sicuro, a prova di hacker e senza necessità fiduciarie per la creazione e
l'esecuzione di contratti intelligenti. Fondamentale per questa piattaforma è il modo in cui le transazioni di
informazioni vengono convalidate e la convalida viene gestita dall'algoritmo di consenso. Gli algoritmi di
consenso sono un grosso problema in termini di funzionalità in un ambiente blockchain decentralizzato. Ci sono
molti che hanno preoccupazioni su come lo spostamento dell'algoritmo Proof-of-Work a quello Proof-of-Stake
impatterà su Ethereum. Altri credono che la Proof-of-Stake sarà un'evoluzione positiva in termini di
miglioramento dell'efficienza dell'architettura blockchain. La Proof-of-Stake funzionerà come previsto quando
implementata nel mondo reale? La risposta rimane in sospeso, ma per tutti coloro con un interesse legittimo in
Ethereum, questo è un punto importante da tenere sotto controllo.
Capitolo 8 Ethereum (ETH) vs. Ethereum Classic (ETC)

Per coloro che sono nelle prime fasi della scoperta dello spazio criptovaluta, un ostacolo che
potrebbe presentarsi è l'esistenza di Ethereum Classic, abbreviato in ETC su molti scambi di valuta e
di criptovaluta. Qual’ è la differenza tra Ethereum ed Ethereum Classic? Se non sei già abbastanza
confuso, per comprendere Ethereum Classic è necessario familiarizzare con il DAO. DAO, in
generale, sta per "organizzazione autonoma decentralizzata". Il DAO era un'organizzazione autonoma
decentrata specifica che è stata lanciata sulla blockchain di Ethereum nel 2016. Il DAO è stato
progettato per offrire un modello per un nuovo tipo di struttura istituzionale, utile sia per le imprese
che per le organizzazioni senza scopo di lucro. Questa particolare impresa ha emesso una vendita di
token nel maggio 2016 come modalità per finanziare lo sviluppo. Questa vendita di token ha avuto
molto successo e ha raccolto circa 150 milioni di dollari in meno di un mese. Poi, il codice del DAO
è stato violato un mese dopo, nel giugno del 2016. Gli hacker hanno utilizzato una vulnerabilità nel
codice, ridistribuendo circa un terzo del denaro in un altro account, una cifra intorno ai 50 milioni di
dollari al momento dell'attacco.
Nel luglio del 2016, dopo l'attacco, ci fu una decisione all'interno della comunità di Ethereum di fare una "hard-
fork" alla blockchain. Una "hard-fork" in una blockchain è molto simile a una biforcazione di una strada: una
divisione, in cui un percorso si sdoppia. Nel caso di Ethereum, l'hard-fork della blockchain ha permesso di
tornare indietro e recuperare i fondi rubati e restituirli a DAO. L'hard-fork DAO ha creato una grande
controversia all'interno della comunità Ethereum. Un numero significativo di partecipanti al network era
contrario alla divisione della blockchain e, di conseguenza, ha continuato a mantenere la catena pre-fork. La
versione pre-fork della blockchain divenne Ethereum Classic. Gli altri membri della rete Ethereum si
trasferirono nella nuova blockchain, che continuò semplicemente come Ethereum. Da allora, Ethereum ha
subito altre hard-fork volte in risposta ad altri attacchi, rafforzando le sue difese contro gli attacchi DDoS e lo
spamming. Le hard-fork successive non sono state così controverse e non hanno generato "versioni
concorrenti" di Ethereum.
Continua ad esserci un dibattito in corso all'interno della comunità di Ethereum sul ruolo di Ethereum Classic e
sulla più ampia politica che circonda le “forchette” blockchain. Ci sono alcuni che sono ideologicamente
contrari all'idea di biforcarsi, indipendentemente da quello che succede, sostenendo che il valore intrinseco e il
principio guida di una blockchain non possono essere alterati. Altri ritengono che la biforcazione possa essere
un modo necessario, accettabile e utile che consente ai progetti di blockchain di adattarsi in risposta alle
mutevoli circostanze, ai progressi tecnologici e alle richieste degli utenti. Esiste un dibattito sulla redditività
dell'investimento e sull'ideologia. Ci sono quelli che affermeranno che Ethereum Classic sia "morto" e coloro
che credono che alla fine supererà Ethereum come "forchetta" dominante della blockchain, quest’ultima idea è
sostenuta da una piccola minoranza. Guardando la storia di entrambi in termini di rispettive valute, si può
affermare con sicurezza che la maggior parte degli investitori sembra orientarsi, finora, verso Ethereum
piuttosto che Ethereum Classic.
Capitolo 9 Applicazioni decentrate (dApps) basate sulla piattaforma Ethereum

Abbiamo parlato di Ethereum come piattaforma per la creazione di applicazioni decentralizzate


(dApps), ma non abbiamo davvero approfondito questo argomento. Tenendo presente, ancora una
volta, che questa tecnologia esiste solo da qualche anno, abbiamo già visto emergere una serie di
progetti molto interessanti costruiti sull'architettura Ethereum. Il focus di questo libro è
principalmente su Ethereum, ma è opportuno esaminare alcuni dei modi in cui questa piattaforma è
stata implementata in diverse applicazioni e scenari reali. Una delle caratteristiche principali di
Ethereum è che consente a chiunque di emettere il proprio token digitale o valuta. L'Ether è usato
come "gas" per finanziare l'esecuzione di contratti intelligenti all'interno dell'ecosistema Ethereum.
Le applicazioni fondate sul codice base di Ethereum, ma adatte per l'esecuzione di una funzione
specifica, possono scegliere di creare il proprio token da utilizzare come "gas" all'interno del loro
particolare ecosistema blockchain.
Un esempio per illustrare questo concetto è il progetto Golem. Golem è una delle applicazioni più consolidate e
conosciute costruite sulla struttura di Ethereum, e ha una propria valuta, chiamata anch’essa Golem (GNT).
L'idea generale alla base di Golem è quella di creare una piattaforma per l'informatica decentralizzata. Molte
persone hanno uno o più computer a disposizione. La maggior parte delle persone non usa mai i propri
computer al massimo delle capacità disponibili. Ciò significa che molte persone hanno accesso a molta potenza
inutilizzata. La visione di Golem è quella di creare un sistema che permetta alle persone di "affittare" in modo
sicuro la potenza inutilizzata alle persone che ne hanno bisogno per eseguire calcoli altamente complessi. Cose
come la grafica di rendering, ad esempio, richiedono molta potenza computazionale - più il lavoro è complesso,
più diventa costoso, e alla fine è necessario l'accesso a risorse che possono essere proibitive in molte situazioni.
Invece di chiedere supporto a uno studio costoso per fare rendering su un complesso set di grafici, o dover
accedere a un'infrastruttura professionale per elaborare una grande quantità di dati, l'obiettivo di Golem è creare
un accesso on-demand a grandi quantità di energia computazionale attraverso una rete distribuita - con molti
partecipanti che forniscono risorse per un dato compito. Le transazioni avvengono tramite contratti intelligenti e
il pagamento si salda con il token Golem. L'infrastruttura blockchain sicura di Ethereum apre le porte allo
sviluppo di progetti come questo.
Un altro esempio di un progetto che utilizza la colonna portante di Ethereum è BAT o Basic Attention Token.
Questa è una nuova piattaforma per la pubblicità digitale in fase di sviluppo ideata del creatore di JavaScript e il
co-fondatore di Mozilla. BAT utilizza il proprio browser web incentrato sulla privacy per tracciare l'attenzione
degli utenti in modo anonimo, mantenendo le informazioni private al sicuro e inviando informazioni anonime
agli inserzionisti. Gli utenti possono scegliere di aderire e guardare annunci mirati, venendo premiati con le BAT
per la loro attenzione. Gli inserzionisti, a loro volta, vengono premiati con i BAT in base al livello di
coinvolgimento dei loro annunci. Gestendo tutte queste informazioni su una blockchain sicura, i creatori di BAT
sostengono che la capacità di pubblicità fraudolenta o malevola viene notevolmente ridotta, la privacy dei
consumatori è protetta e l'efficienza del targeting degli annunci è notevolmente migliorata.
Golem e BAT sono due esempi di progetti molto diversi che utilizzano i propri token, entrambi basati sul
framework Ethereum. Naturalmente, ci sono molte altre "dApp" là fuori, e indubbiamente molte altre verranno
sviluppate nel prossimo futuro mentre Ethereum continua a guadagnare trazione e fare breccia nel mainstream.
Le possibilità di implementare contratti intelligenti sulla blockchain sono praticamente illimitate, soprattutto
perché anche la stessa infrastruttura per l'implementazione di sistemi basati su blockchain si sviluppa. Ad
esempio, fingiamo di possedere un parco di divertimenti. Per anni, abbiamo venduto biglietti che possono
essere utilizzati per varie giostre, giochi e snack. Le persone comprano un certo numero di biglietti in un
chiosco prima di entrare nel parco, e poi usano i biglietti per qualsiasi cosa all'interno. Invece di vendere
biglietti, è possibile creare il proprio token tramite Ethereum. I clienti possono scaricare un'app, acquistare
token e accedere automaticamente alle giostre.
Se qualcuno esaurisce i token, non può accedere alle giostre senza acquistarne altri, cosa che può fare
facilmente dall'app. Con un sistema di blockchain sicuro, nessuno può fingere di perdere i biglietti, rubare
biglietti o cercare di entrare senza biglietti. L'esempio del parco dei divertimenti può essere un poco triviale, ma
lo stesso concetto potrebbe essere applicato a molti contesti più seri. Ad esempio, il governo di Dubai sta
facendo uso di Ethereum nel suo dichiarato obiettivo di diventare il primo governo a blockchain entro il 2020.
Dubai ha stimato, finora, di poter risparmiare 1,5 miliardi di dollari semplicemente ottimizzando l'elaborazione
dei documenti attraverso l'implementazione di un sistema blockchain. Molti altri governi, tra cui Giappone, Cina
e Stati Uniti, hanno espresso interesse ad esplorare la tecnologia blockchain per ottimizzare i servizi governativi.
In Ucraina, una società di startup che utilizza la piattaforma Ethereum è stata ingaggiata nel 2017 per testare un
nuovo sistema di gestione immobiliare. La rivoluzione blockchain è senza dubbio in corso, ed Ethereum è uno
dei principali attori, aprendo la strada in molti settori. Dal punto di vista degli investimenti, molte persone
vedono grande potenziale nelle applicazioni Ethereum e blockchain decentralizzate. Prima di decidere se
investire in Ethereum o in un progetto basato su Ethereum, è una buona idea esplorare anche alcuni dei
potenziali aspetti negativi oltre agli elementi promettenti.
Capitolo 10 Ethereum Enterprise Alliance (EEA)

Vista l'ondata di entusiasmo nei confronti della blockchain e delle criptovalute nel 2017, non
dovrebbe sorprendere che un certo numero di aziende di Fortune 500 abbiano iniziato a esplorare
queste tecnologie. Nel marzo del 2017 è stata lanciata un'organizzazione non profit denominata The
Ethereum Enterprise Alliance (EEA). L'EEA è composta da una serie di start-up, think tank, aziende
Fortune 500 e altri che lavorano con il framework Ethereum. La visione dell'EEA è incentrata
principalmente sullo sviluppo di blockchain "private" basate su Ethereum e progettate per ambienti
aziendali. A differenza delle blockchain pubbliche, le blockchain "private" non sarebbero visibili o
accessibili a nessuno. Queste blockchain in-house richiederebbero il permesso di accesso. Molti
all'interno della più ampia comunità blockchain considerano questa mossa poco intuitiva, poiché gran
parte dell'attrattiva dell'architettura blockchain è legata proprio al fatto che è decentralizzata, aperta
ed elimina la necessità di fiducia in parti terze. Gli scettici hanno poi sollevato la questione di come
le "blockchain private" differiranno fondamentalmente dalle intranet. Questo resta tutto da vedere.
Detto questo, l'EEA ha ottenuto un enorme sostegno durante i primi mesi della sua esistenza. Molti grandi nomi
stanno investendo sostanzialmente nello sviluppo di "blockchain private", incluse società come IBM, JP
Morgan, Microsoft, Intel e Deloitte. In che modo l'adozione aziendale della tecnologia blockchain avrà un
impatto sulla visione di scambi aperti, decentralizzati e peer-to-peer? Questa è una domanda che si profila nelle
menti di molti investitori indipendenti e di coloro che vedono le possibilità della tecnologia blockchain di creare
cambiamenti sistemici e di re-immaginare strutture istituzionali.
Capitolo 11 Critiche, rischi e sfide riguardanti Ethereum

Ogni nuova tecnologia affronta ostacoli e sfide mentre si muove nel mondo reale, ed Ethereum non fa
eccezione. Sebbene vi sia un supporto entusiasta, una comunità attiva e un potenziale evidente che
circonda Ethereum, chiunque voglia essere coinvolto dovrebbe essere consapevole che esistono
anche sfide e rischi. Poiché la piattaforma Ethereum è aperta e accessibile, molte società e progetti
sono sorti intorno all'ecosistema Ethereum, costruendo sulla blockchain di Ethereum. A lungo
termine, questa è probabilmente una buona cosa. Quando consideriamo il quadro generale e
ricordiamo che siamo ancora nelle fasi iniziali dell'esplorazione di questa tecnologia, un gruppo
eterogeneo di sviluppatori iniziali in competizione per creare applicazioni decentralizzate, in teoria,
alla fine rafforzerà la piattaforma Ethereum.
Nel breve periodo, tuttavia, questo clima ha portato a un'enorme ondata di "ICO" o Initial Coin Offerings. Gli
ICO sono un modo ampiamente non regolamentato per le aziende di raccogliere capitali per un nuovo progetto
basato sulla criptovaluta. ICO è una forma di crowdfunding, in cui si vende una percentuale di una nuova
criptovaluta o un token a un gruppo di investitori iniziali in cambio di qualche altra forma di valuta legale, di
solito Bitcoin. Questo metodo di raccolta fondi offre alle startup un modo per aggirare molti dei severi
regolamenti circa l’aumento di capitale o per evitare prestiti dalle banche attraverso i mezzi tradizionali. È molto
simile alle azioni vendute da un IPO di un'azienda per raccogliere fondi per piani o operazioni future, tranne
che, in questo caso, piuttosto che acquistare azioni, un investitore acquisterà moneta virtuale. Per gli investitori,
acquistare in anticipo un progetto promettente può essere molto allettante.
Se il progetto ha successo, il valore della valuta associata aumenterà, dando così potenzialmente un profitto
considerevole. Poiché gli ICO non sono regolamentati da autorità finanziarie come la SEC (Securities Exchange
Commission), esiste anche il rischio di ICO fraudolente. Gli ICO possono essere delle iniziative redditizie e di
successo, ma lo spazio in cui operano presenta un alto rischio. Considerano, in particolare, che chiunque può
emettere la propria valuta abbastanza facilmente con Ethereum, è importante, come investitore, eseguire una
due diligence. Non si può fare un passo nel cyberspazio senza incontrare un ICO che sviluppa una nuova
applicazione basata su Ethereum e che promette di far diventare i primi investitori milionari. Oltre al rischio di
frode, vi sono altre potenziali preoccupazioni che derivano dal modello ICO. In molti casi, i primi investitori in
un progetto promettente sono in realtà società piuttosto che dei privati.
Uno dei risultati del modello ICO applicato nello spazio Ethereum è che alla fine ci si ritrova con aziende che
possiedono moltissimi Ether, piuttosto che singoli individui. Prendendo in considerazione Ether come valuta, è
importante riflettere sulle implicazioni di grandi quantità di Ether legate nelle aziende. Detto in parole semplici,
le aziende hanno delle spese. Hanno bisogno di pagare dipendenti, spazi per uffici, marketing, ecc. Cosa
succede se una grande azienda ha un finanziamento di successo, incassa moltissimi Ether dagli investitori, e poi
non sviluppa veramente qualcosa di così grande? Quella azienda deve comunque pagare le sue spese. Forse
decide di negoziare tutto il suo Ether in una volta sola e incassare. Eventi consistenti di questo tipo influenzano
il prezzo di qualsiasi valuta, e se una grossa azienda si disfa dei propri Ether, altre potrebbero notare il calo dei
prezzi, allarmarsi e iniziare a fare lo stesso, causando un enorme calo dei prezzi che alla fine danneggia più gli
investitori singoli.
Questo non è necessariamente uno scenario inevitabile, e non è sicuramente un potenziale problema solo di
Ethereum, ma è una preoccupazione che sorge quando una manciata di grandi aziende detiene una quantità
considerevole di Ether. Come potenziale investitore, è sempre una buona idea informarsi adeguatamente. Leggi
i white paper, partecipa alle discussioni e stabilisci autonomamente se pensi che un progetto sia solido. Il
marketing e l'entusiasmo possono giocare un ruolo importante in questo spazio, e seguire la folla che partecipa
all’ICO più popolare del mese, è spesso molto più probabile che finisca in perdita piuttosto che in un profitto.
Una delle maggiori preoccupazioni all'interno della comunità Ethereum è il modo in cui le applicazioni di terze
parti possano influire sulla piattaforma Ethereum. Questo è vero per potenziali ICO fraudolenti che possono
emettere una valuta truffa utilizzando l'infrastruttura di Ethereum, ma può anche essere vero per progetti che
nascono con le migliori intenzioni.
Sappiamo che Ethereum è una piattaforma per la creazione di applicazioni decentralizzate. Sappiamo anche che
parte del fascino della piattaforma Ethereum è la capacità di eseguire applicazioni su una blockchain. Il
potenziale di questa visione è molto eccitante, ma creare dApp sulla piattaforma Ethereum non è così semplice
e immediato. Basti pensare che trovare programmatori che sanno scrivere software valido e privo di bug per
Android o iOS può essere difficile anche se si tratta di piattaforme estremamente popolari su cui sono costruite
moltissime applicazioni. Quando si tratta di sviluppare applicazioni per la blockchain di Ethereum, trovare
sviluppatori che possano scrivere codice nel linguaggio Solidity o altri linguaggi utilizzati per implementare
contratti intelligenti, può essere ancora più difficile. In effetti, molti ottimi programmatori ancora non hanno mai
nemmeno sentito parlare di Ethereum!
Poiché la domanda di sviluppatori che sanno scrivere codice nel linguaggio Solidity continua a crescere, è
un'occasione per aspiranti programmatori per trovare lavoro in questo campo con relativamente poca
concorrenza. Sebbene esistano sicuramente programmatori di talento che lavorano con Ethereum, è importante
ricordare che i contratti intelligenti esistono solo da qualche anno, e quindi anche i programmatori più bravi
possono avere relativamente poca esperienza con questo tipo di software. Naturalmente, qualsiasi nuova
tecnologia passerà inizialmente attraverso un processo simile. Quando si pensa ad Ethereum, tuttavia, è
importante riflettere sull'impatto che le potenziali vulnerabilità nelle applicazioni basate sulla blockchain di
Ethereum potrebbero avere su Ether come valuta. Se una o più applicazioni create sulla piattaforma Ethereum
soffre un attacco hacker significativo o è piena di bug, come influirà questo sul valore di Ether?
È impossibile prevedere il futuro, ma per un potenziale investitore, è una buona idea pensare seriamente a come
le applicazioni di terzi sviluppate sulla piattaforma Ethereum potrebbero avere un impatto sulla percezione della
piattaforma stessa e, successivamente, sul valore di Ether. Naturalmente, l'adozione su larga scala e una serie di
dApp di successo su Ethereum potrebbero avere un impatto molto positivo sul valore di Ether, e questa è
chiaramente la direzione in cui gli investitori più convinti credono che il progetto stia andando. (Altrimenti, si
suppone, non sarebbero convinti).
Capitolo 12 Il futuro di Ethereum, applicazioni decentralizzate e tecnologia Blockchain

Il valore di Ether ha raggiunto livelli record nel 2017, e molti ipotizzano che il valore continuerà a
salire nel tempo. Molte importanti aziende hanno adottato la visione di Ethereum di una piattaforma
flessibile di blockchain con la possibilità di utilizzare contratti intelligenti. Mentre la promessa della
tecnologia blockchain diventa più chiara su scala globale, è emersa un'ondata di imprenditori che
cercano di integrare questa tecnologia in tutti i campi, dall'energia all'assistenza sanitaria alla
politica. Resta da vedere se la piattaforma Ethereum alla fine diventerà il quadro definitivo per la
costruzione di blockchain decentrate. È possibile che Ethereum sia simile a un browser precoce
come NetScape Navigator e che con qualche sforzo in futuro diventerà il "Google della blockchain".
Considerando quanto nuova sia questa tecnologia, sarebbe ingenuo non considerare tale possibilità.
Naturalmente, è anche ipotizzabile che Ethereum continuerà a crescere, migliorare e in definitiva dominare
questo spazio. Il prossimo aggiornamento con l'uso dell'algoritmo Casper e del modello Proof-of-Stake servirà
come un banco di prova per la capacità di evoluzione di Ethereum. Sia che tu abbia intenzione di investire in
Ether, in un altro token rilasciato tramite un'applicazione basata su Ethereum, o che tu sia interessato a
costruire la tua dApp sulla blockchain di Ethereum, è importante tenersi informati. La tecnologia in questo
spazio cambia in modo incredibilmente rapido, e dato che la blockchain sta entrando nelle industrie più
importanti, probabilmente inizieremo a vedere cambiamenti in termini di come le criptovalute e le applicazioni
blockchain vengono regolamentate. Partecipare a community e conversazioni online, come Reddit, canali Slack
e Twitter, è un ottimo modo per rimanere aggiornati sugli sviluppi della piattaforma Ethereum.
Conoscere altre piattaforme, leggere white paper e familiarizzare con i principali pensatori in questo campo è un
buon modo per sviluppare una conoscenza più profonda e una prospettiva più ampia, che può aiutarti a
formulare le tue opinioni su quali tecnologie hanno probabilità di successo e su come investire e partecipare.
Come si svilupperà il futuro è, naturalmente, qualcosa che non possiamo prevedere, tuttavia, sarà quasi
certamente modellato dalla tecnologia blockchain. Oggi, Ethereum offre uno degli approcci più consolidati e
innovativi per rendere questa tecnologia accessibile, flessibile ed entusiasmante. Per investitori, sviluppatori e
imprenditori ci sono possibilità illimitate in questo spazio all'avanguardia.
Conclusioni

Ti ringrazio per aver acquistato questo libro e mi congratulo con te per aver dedicato del tempo alla
conoscenza di Ethereum. Spero che questa breve lettura sia stata in grado di aiutarti a comprendere in
modo esatto cos'è esattamente Ethereum, stimolando il tuo interesse a fare ulteriori ricerche e iniziare
il tuo viaggio verso questo spazio. Il passo successivo è quello di attivarsi sui forum e tramite le
risorse qui menzionate. Infine, se ti è piaciuto questo libro, vorrei chiedere se saresti così gentile da
lasciare una recensione su Amazon. Sarà molto apprezzata.
Grazie e buona fortuna!
Andrea Conti 2017

1a edizione

Tutti i diritti riservati.

Ristampato, compresi gli estratti, proibito.

Nessuna parte di questo lavoro può essere eseguita senza il permesso scritto dell'autore in qualsivoglia forma

Riprodotto, moltiplicato per contatto di distribuzione: Wlad Winkler / Reddehals 1/49610 Quakenbrück

copertina: copertina Boris M orand: depositphotos.com

razie e buona fortuna!

Potrebbero piacerti anche