# Ethereum

Ethereum è una piattaforma decentralizzata del Web 3.0 per la creazione e pubblicazione peer-to-peer di contratti intelligenti (smart contracts) creati in un linguaggio di programmazione Turing-completo. La criptovaluta a esso legata, Ether, è seconda in capitalizzazione dietro a Bitcoin.

## Evoluzione del prezzo

Ethereum ha avuto un valore stabile di circa 10 dollari fino al 2017, anno in cui ha avuto un fortissimo aumento di valore, toccando un picco di 1 261 dollari il 12 gennaio 2018, per poi scendere nuovamente, con picchi ad aprile 2018 (circa 700 dollari), giugno 2019 (circa 300 dollari), febbraio 2020 (circa 200 dollari) e dicembre 2020 (circa 600 dollari). Risalita nel 2021 con un picco di oltre 4 672 dollari.

## Caratteristiche

Per poter girare sulla rete peer-to-peer, i contratti di Ethereum "pagano" l'utilizzo della sua potenza computazionale tramite una unità di conto, detta Ether, che funge quindi sia da criptovaluta sia da carburante. In altre parole, contrariamente a molte altre criptovalute, Ethereum non è solo un network per lo scambio di valore monetario, ma una rete per far girare contratti basati su Ethereum. Questi contratti possono essere utilizzati in maniera sicura per eseguire un vasto numero di operazioni: sistemi elettorali, registrazione di nomi di dominio, mercati finanziari, piattaforme di crowdfunding, proprietà intellettuale, ecc.
La piattaforma fu inizialmente menzionata da Vitalik Buterin nel Bitcoin Magazine, di cui lui stesso è co-fondatore con Joseph Lubin, agli inizi del 2013.. È stata successivamente concettualizzata nel White Paper dello stesso Buterin e formalizzata da Gavin Wood nel cosiddetto Yellow Paper, a inizio 2014. Il rilascio della prima versione "live" della piattaforma (cosiddetta versione Frontier) è avvenuto il 30 luglio 2015.
Ethereum fa parte di un gruppo di piattaforme blockchain detto di "nuova generazione" (o "2.0").
Come per le altre criptovalute, la validità di ciascun Ether è garantita da una blockchain, che è un elenco di record in continua crescita, chiamati blocchi, i quali sono collegati tra loro e protetti mediante crittografia. Per definizione, la blockchain è in sé resistente alla modifica dei dati. È un libro mastro contabile, aperto e distribuito che registra le transazioni tra due parti in modo efficiente e permanentemente verificabile.
A differenza di Bitcoin, Ethereum opera utilizzando conti e saldi secondo le cosiddette transizioni di stato, che non si basano su output di transazione non spesi (unspent transaction outputs, UTXOs), ma sui saldi correnti (chiamati stati) di tutti i conti, oltre ad alcuni dati aggiuntivi. L'informazione relativa allo stato non è memorizzata nella blockchain, bensì è archiviata in un proprio albero di Merkle, vale a dire un albero binario nel quale ogni nodo è padre di due figli e il suo hash è dato ricorsivamente dalla concatenazione degli hash dei due blocchi a esso associati, secondo il seguente schema:
    $hash_{0}=hash(hash_{0-0}+hash_{0-1})$
Un portafoglio di criptovaluta memorizza le "chiavi" o "indirizzi" pubblici e privati che possono essere utilizzati per ricevere o spendere Ether.
Le chiavi private (deterministiche) possono essere generate mediante il protocollo Bitcoin chiamato BIT32, a partire da una sequenza di 12 oppure di 18 parole che è memorizzata nel portafoglio Bitcoin, dalla quale è ricavata la chiave privata master di livello 0 e, a scendere, quelle dei livelli successivi. Per ogni chiave privata viene generato l'indirizzo Bitcoin associato al suo livello. Tuttavia, in Ethereum, questo procedimento non è richiesto, poiché non può funzionare in uno schema UTXO: tramite la chiave privata è possibile scrivere nella blockchain, concludendo effettivamente una transazione Ether.
Per indirizzare l'Ether a un conto, è necessario essere in possesso dell'hash calcolato della relativa chiave pubblica, che è calcolato con l'algoritmo di crittografia Keccak-256. I conti Ether non sono nominativi, non identificano univocamente il beneficiario, quanto piuttosto uno o più indirizzi specifici.

## Ether

Ether è un componente fondamentale per il funzionamento di Ethereum, perché fornisce un libro mastro per le transazioni. È utilizzato per pagare il gas, un'unità di calcolo per le transazioni e altre transizioni di stato. È indicato con l'icona di transazione ETH (ticker symbol) e con simbolo di valuta la lettera greca Ξ maiuscola, in modo tale da poter essere scambiato nei mercati elettronici denominati in criptovalute, ovvero pagare le commissioni di transazione e servizi aggiuntivi alla rete Ethereum.

## Indirizzi

Gli indirizzi della rete Ethereum incominciano e sono identificati dal prefisso "0x", comune per i numeri numeri in base 16, seguito dai 20 byte più a destra (ordine dei byte) dell'hash Keccak-256 della chiave pubblica ECDSA dove la curva utilizzata è la cosiddetta secp256k1, la stessa di Bitcoin. Dato che in base 16 due digit corrispondono a un byte, gli indirizzi Ethereum contengono 40 cifre esadecimali (il prefisso standard "0x", che è la parte invariante, non è memorizzato, ma "reinserito" di volta in volta).
Gli indirizzi di contratto sono nello stesso formato, ma sono determinati dal mittente e dal nonce, uno scalare di valore pari al numero di transazione inviato dal mittente (contract creation). In altre parole, i conti utente sono indistinguibili dai conti-contratto, ai quali viene associato un singolo indirizzo per ciascuno e nessun dato blockchain. Un utente, al contrario, può avere molteplici livelli di chiave privata, dai quali sono generati altrettanti indirizzi Ethereum. Qualsiasi hash Keccak-256 valido inserito nel formato descritto è valido, anche se non corrisponde a un account con una chiave privata o a un contratto. Diversamente da Ethereum, Bitcoin utilizza base58check per assicurarsi che gli indirizzi siano digitati correttamente.

## Sviluppo

Lo sviluppo di Ethereum è incominciato nel dicembre 2013, e le prime versioni del software in linguaggio Go e in linguaggio C++ sono state rilasciate agli inizi del febbraio 2014. Da allora sono state pubblicate diverse versioni successive, che hanno incluso lo sviluppo di tre linguaggi di programmazione appositamente creati per scrivere smart contracts: il Serpent (ispirato al linguaggio Python), il Mutan (ispirato al linguaggio Go) e LLL (ispirato al linguaggio di programmazione Lisp).
Per finanziare il lavoro di sviluppo, Ethereum ha lanciato un'offerta pubblica di pre-vendita di Ether. L'offerta pubblica è durata 42 giorni e ha totalizzato la raccolta di 31 591 Bitcoin, pari (al tasso di cambio del 2 settembre 2014) a circa 18,4 milioni di dollari statunitensi, o 60 102 216 ETH.
La Proof of Concept numero 5, è stata distribuita su GitHub il 22 luglio 2014, contemporaneamente al lancio della prevendita di Ether, e comprendeva numerosi cambiamenti rispetto alla Proof of Concept precedente. Per la prima volta i due client, uno scritto in C++ e un altro in Go, hanno incominciato a interagire alla perfezione e lavorare sulla stessa Blockchain. Ad agosto 2014, un client scritto in Python è stato aggiunto alla lista delle piattaforme disponibili.
Con la Proof of Concept numero 7 è stato lanciato Solidity, un linguaggio di programmazione ibrido, ispirato a JavaScript/C++, contenente numerosi arricchimenti sintattici in modo da poter essere compatibile e versatile per la compilazione degli smart contract su Ethereum. I tempi dei blocchi sono stati ridotti da 60 secondi ai 12 secondi, utilizzando un nuovo protocollo basato su GHOST.
Nel 2015, Ethereum ha incominciato a utilizzare la raccolta di fondi della pre-vendita per espandere le proprie operazioni, a partire dalla fondazione con base a Zugo, in Svizzera e con team di sviluppo a Londra, Berlino e Amsterdam. La versione beta con rete funzionante e in cui il mining dà ricompensa in vero Ether, detta Frontier, è stata distribuita il 30 luglio 2015. Inoltre, è stato lanciato un programma di ricerca di bug aperto alla comunità degli sviluppatori.
Ethereum è un progetto open source, e ogni sviluppatore può contribuire al codice sorgente.
L'unità di conto della valuta di Ethereum si chiama Ether ed è abbrieviata dal simbolo ETH. L'Ether è divisa in sottounità di conto chiamate finney, szabo, shannon, babbage, lovelace, e wei, rispettivamente in onore di Hal Finney, Nick Szabo, Claude Shannon, Charles Babbage, Ada Lovelace e Wei Dai, personalità più o meno note nel mondo della crittografia, programmazione e criptovalute.

### Storia degli upgrade

L'originaria versione alfa di blockchain Ethereum si chiamava Frontier. Gli sviluppatori non ne garantivano la sicurezza. La prima modernizzazione del blockchain Ethereum ebbe luogo il 14 maggio 2016 all'altezza del blocco 1, 150, 000. La nuova versione del protocollo è stata chiamata Homestead. L'aggiornamento eliminò dalla rete i contratti Canary.
Fu dichiarato che la protezione della rete sulla base del mining era prevista solo in fase iniziale con il successivo passaggio al solo proof-of-stake con il modello ibrido nella fase intermedia. Nel frattempo, in qualità di protezione dall'impiego dei processori specializzati (ASIC) per il mining erano impiegati alti standard per la memoria video (GPU) – a luglio 2017 erano richiesti 2,04 Gb.
Aggiornamento Metropolis: Byzantium diventò l'inizio del passaggio al metodo Proof of Stake.
Lancio del Metropolis: Constantinople ebbe luogo il 28 febbraio 2019 e preparò la rete al passaggio al protocollo Po-S Casper e all'annullamento del modello precedente di mining, che ebbe luogo nel primo quarto del 2019. Il prossimo rimodernamento di Istanbul era previsto al blocco #9069000 (si riteneva che sarebbe accaduto il 4 dicembre 2019), però alla fine l'aggiornamento fu attivato nella rete principale Ethereum l'8 dicembre 2019. Come compiti principali, Istanbul doveva assicurare la compatibilità del blockchain Ethereum con l'anonima criptovaluta Zcash, nonché migliorare la mappatura della rete grazie ai protocolli di conoscenza zero SNARKS e STARKS. Inoltre, l'aggiornamento complicò attacchi Dos sulla rete a seguito del cambio del costo del gas per l'attivazione dei codici operativi. Istanbul si componeva di due parti, il passaggio alla seconda parte – Berlin ebbe luogo il 15 aprile 2021. Il 5 agosto 2021 si aggiorna a London portando con sé le novità del protocollo EIP-1559 con l'obiettivo di avere una rete più prevedibile nella previsione di domanda di gas e contenere l'esborso di una transazione.

## Enterprise Ethereum Alliance

A marzo del 2017 è stata fondata l'Enterprise Ethereum Alliance (EEA) da 30 soggetti fra startup, gruppi di ricerca e aziende classificate nella Fortune 500. A maggio l'organizzazione senza scopo di lucro aveva 116 membri, fra i quali: ConsenSys, CME Group, Cornell University's research group, Toyota Research Institute, Samsung SDS, Microsoft, Intel, J. P. Morgan, Cooley LLP, Merck KGaA, Depository Trust & Clearing Corporation, Deloitte, Accenture, Banco Santander, BNY Mellon, ING e National Bank of Canada. A luglio del 2017, i membri erano divenuti 150, con i recenti ingressi di MasterCard, Cisco Systems, Sberbank e Scotiabank.

## Reazioni del pubblico

La piattaforma di Ethereum è stata menzionata in articoli su alcuni dei più importanti periodici di tecnologia e informazione come Wired, The Globe and Mail, SiliconANGLE, Yahoo News, Medium.com, Al Jazeera, Forbes, il Daily Telegraph e il Keiser Report.
Primavera De Filippi, una ricercatrice post-doc del CERSA / CNRS / Università Panthéon-Assas, ha tenuto una conferenza sulle implicazioni legali di Ethereum a Harvard il 15 aprile 2014. Quinn DuPont, dottorando dell'Università di Toronto ha discusso della transizione da Bitcoin a Ethereum in una lecture pubblica all'Università di Dalhousie il 2 ottobre 2014. Steve Randy Waldman ne ha parlato come di uno strumento che può essere utilizzato per "ingegnerizzare sicurezza distribuita economicamente".

## Ethereum nel mondo

La community di appassionati che sostiene Ethereum si è rapidamente allargata fino a comprendere 111 gruppi in 83 città di oltre 34 paesi. I gruppi di appassionati si organizzano tramite la piattaforma Meetup.

## Applicazioni

Lo standard ERC-20 serve per la creazione di token (fungible token o token con una funzione) di altre criptovalute, lo standard ERC-721 serve per creare Non Fungible token (token non intercambiabili, come invece sono le monete dove una vale l'altra) unici mentre l'ERC-1155 permette la creazione di più token in un singolo contratto intelligente.