7 min read

Che cos’è Ethereum. Corso base ep. 7

Ethereum non è un semplice registro distribuito di transazioni. È piuttosto un “World Computer”, che rende programmabile, anche in modo automatico, il valore sotto forma token.

L’universo Ethereum

Che cos’è, e come funziona esattamente Ethereum? È un computer decentralizzato, in grado di eseguire delle applicazioni. Tutto giusto, ma come avviene concretamente questo processo?

In questo nuovo episodio del Corso base su Bitcoin e le criptovalute l’obiettivo sarà andare a vedere nel dettaglio come funziona Ethereum sulla sua blockchain, cosa succede quando si invia una transazione, e come ragiona uno smart contract.

La blockchain ETH

L’elemento centrale per conoscere l’ecosistema Ethereum è lo smart contract, e di conseguenza le dApp e le gas fees.

Come anticipato, la definizione generale di Ethereum è “World Computer”, azzeccatissima perché descrive un’infrastruttura decentralizzata basata su blockchain. Anche qui ci sono una moltitudine di nodi, ma con differenze rilevanti con Bitcoin, escluse decentralizzazione, immutabilità e trasparenza.

Oltre alle transazioni, tuttavia, ciò che cambia è proprio l’interazione degli smart contract, che sono da intendere come linee di codici dei programmi, che a loro volta rimangono immutabili. In questo senso, il valore non è più soltanto qualcosa di “trasferibile” in maniera decentralizzata come avviene con Bitcoin, ma anche “programmabile”.

La qualità principale di Ethereum è questa programmabilità, che ingloba il concetto di valore e, quindi, di finanza.

Nelle puntate precedenti si è imparato come le blockchain non siano uguali le une alle altre. Ci sono diversi algoritmi di consenso, o ci possono essere vari nodi validatori o delegatori. Ethereum, al momento, è una blockchain proof-of-work. E con “per ora” si intende fino a che non si completerà il “Merge”, che la porterà a diventare proof-of-stake.

Per ora, quindi, le differenze con Bitcoin si limitano in primo luogo all’algoritmo utilizzato per la validazione dei blocchi. In questo caso la blockchain non ha un tempo fissato tra il mining di un blocco e l’altro (per bitcoin è intorno ai 10 minuti), ma si ha un numero massimo di transazioni al secondo, di circa 15-20. È un limite strutturale, e ben noto a community e sviluppatori, che stanno lavorando proprio su questo.

A differenza di Bitcoin, Ethereum è programmabile, per cui la scalabilità diventa un problema molto più rilevante: in caso di poca operabilità sarebbe come utilizzare un pc che però riesce a fare quattro clic nell’arco di cinque minuti. Fintanto che ci sono pochi utenti tutto potrebbe comunque funzionare, ma con il crescere della popolarità il network viene portato alla saturazione, con conseguenze dirette sulle gas fee.

Verso la State Machine

Ethereum può essere definito “State Machine”. Andiamo con ordine. Un blocco di Ethereum contiene delle transazioni. Una di queste esprime un “cambiamento di stato”, ed è un ulteriore differenza con Bitcoin. Non esiste UTXO, che è quella dinamica che include “output”, “input”, “spent” e “unspent”, come si vede in Bitcoin, ma un cambio di “stato”, prima e dopo la transazione.

Le transazioni incluse nel blocco creano quindi una variazione di stato, chiamato anche “world state”, perché di fatto varia la struttura della blockchain intera, anche se nell’intervallo di un blocco. Tutti in nodi della blockchain, quindi, trovano il consenso (PoW) su un unico “world state”.

Gli smart contract

Ogni entità all’interno di Ethereum viene definito “account”. E ce ne sono di più tipi. Il primo viene chiamato EOA (externally owned account), che è un wallet privato tradizionale con le proprie chiavi private. Il proprio wallet blocco per blocco avrà associato il proprio storico, con il cambiamento del suo “state”.

Di contro, c’è il contract account, per cui non serve una chiave privata ed è on-chain. In pratica, un address controllato dal codice interno allo smart contract. E con il quale si può interagire. Nelle dApp, quindi, si riceve un input nell’interazione con gli smart contract.

In generale, un input modifica uno smart contract, che poi esprime un output in base a come è programmato, con il privilegio di influenza implementata (codice EVM) nei confronti di specifici address esterni (una specie di amministratori).

Importante da chiarire, infine, è il fatto che tra gli smart contract una tipologia è quella legata ai token. Per capirsi, se si crea un token, si crea di conseguenza anche uno smart contract, che a sua volta controlla il token.

Le dApp

Tanti smart contract messi insieme formano una dApp. Tutta una complessità delle funzioni in un solo smart contract sarebbe molto controproducente, ma questi possono benissimo interagire tra di loro. Basti pensare, per esempio, a una classica piattaforma DeFi, con più pool di liquidità a disposizione, gestiti appunto da diversi smart contract. Inoltre, anche lato debugging rende le procedure molto più semplice.

Il backend di un DEX è quindi tutto un insieme di smart contract. Uno per ogni pool, uno per il controllo dei prezzi, il router (che accompagna nei pagamenti) e gli “oracoli”, che prendono fonti esterni per metterli on-chain (sempre per il controllo dei prezzi).

Ad ogni operazione effettuata con la dApp, a questo punto, viene spesa una certa somma in gas fee, proprio perché l’interazione è costantemente con la blockchain in forma di transazione.

Ethereum virtual machine

La EVM è l’ente che elabora i dati. Tutte le funzioni degli smart contract, gli stati, e la programmazione (Solidity). Un input viene inviato a uno smart contract, questo viene elaborato dalla EVM, e quello che si genera è il cambiamento dello “stato”, con un update dello smart contract stesso.

Il codice sorgente di uno smart contract è scritto in Solidity, che è ovviamente leggibile. Compilandolo diventa “linguaggio macchina”, che poi viene applicato all’address. Una volta richiamata la funzione il passaggio è l’opposto, e viene gestito in entrambi i casi dall’EVM.

Le Gas fee

Il ruolo del Gas è la moderazione delle transazioni, grazie al quale il network non viene intasato. Ogni funzione è, in questo senso, a pagamento. E questo a seconda della funzione che viene richiamata, con un vero e proprio listino prezzi.

Il costo è variabile in base alle “unità” di gas. Non è il prezzo del gas in generale a variare, ma le sue unità necessarie per ogni operazione. Nel momento in cui di compila una transazione, infatti, si trova il gas price (il costo che si è disposti a pagare per unità di gas), e il max gas, che sono le unità di gas che invece si è disposti a spendere.

Il prezzo è invece deciso da una classica asta, decisa da chi è disposto a pagare di più. Se la chain è intasata, chi vuole una transazione immediata sarà costretto a pagarla di più in termini di fee. Vale per Ethereum, ma anche per tutte le altre chain che funzionano con EVM, ovviamente.

Il costo complessivo è deciso dal numero di unità di gas per il gas price, mentre l’unità di misura è rappresentata dal GWEI, ovvero una piccolissima quantità di ETH (un miliardesimo).

Il valore di Ethereum

Ciò che è consumabile ha un valore, e questo vale anche per Ethereum, la cui domanda è decisa da vari fattori. Lo è il gas, come abbiamo visto, il cui prezzo è influenzato da più dinamiche. C’è per esempio il EIP-1559, che non è altro che il “burn” proporzionale al gas speso per ogni transazione. Oppure la ricompensa per i miner, con una rendita del 4% annua. Tutto ovviamente, cambierà radicalmente con il “Merge”, per esempio il passaggio da asset inflattivo a deflattivo.


bitcoin
Bitcoin (BTC) $ 19,100.94
ethereum
Ethereum (ETH) $ 1,344.22
tether
Tether (USDT) $ 1.00
usd-coin
USD Coin (USDC) $ 1.00
bnb
BNB (BNB) $ 280.50
xrp
XRP (XRP) $ 0.477269
binance-usd
Binance USD (BUSD) $ 1.00
cardano
Cardano (ADA) $ 0.462119
solana
Solana (SOL) $ 33.79
dogecoin
Dogecoin (DOGE) $ 0.065916
polkadot
Polkadot (DOT) $ 6.45
shiba-inu
Shiba Inu (SHIB) $ 0.000012
dai
Dai (DAI) $ 1.00
staked-ether
Lido Staked Ether (STETH) $ 1,337.51
matic-network
Polygon (MATIC) $ 0.771941
tron
TRON (TRX) $ 0.060333
avalanche-2
Avalanche (AVAX) $ 17.90
wrapped-bitcoin
Wrapped Bitcoin (WBTC) $ 19,099.12
uniswap
Uniswap (UNI) $ 5.87
cosmos
Cosmos Hub (ATOM) $ 13.93
leo-token
LEO Token (LEO) $ 4.25
ethereum-classic
Ethereum Classic (ETC) $ 28.82
litecoin
Litecoin (LTC) $ 54.99
okb
OKB (OKB) $ 15.17
chainlink
Chainlink (LINK) $ 7.65
ftx-token
FTX (FTT) $ 24.03
stellar
Stellar (XLM) $ 0.120345
near
NEAR Protocol (NEAR) $ 3.83
crypto-com-chain
Cronos (CRO) $ 0.119432
algorand
Algorand (ALGO) $ 0.373924
monero
Monero (XMR) $ 142.71
bitcoin-cash
Bitcoin Cash (BCH) $ 120.35
flow
Flow (FLOW) $ 1.71
apecoin
ApeCoin (APE) $ 5.60
terra-luna
Terra Luna Classic (LUNC) $ 0.000245
vechain
VeChain (VET) $ 0.023366
filecoin
Filecoin (FIL) $ 5.74
chain-2
Chain (XCN) $ 0.077599
internet-computer
Internet Computer (ICP) $ 6.13
quant-network
Quant (QNT) $ 119.21
hedera-hashgraph
Hedera (HBAR) $ 0.062576
chiliz
Chiliz (CHZ) $ 0.259918
tezos
Tezos (XTZ) $ 1.53
the-sandbox
The Sandbox (SAND) $ 0.908755
frax
Frax (FRAX) $ 0.998112
decentraland
Decentraland (MANA) $ 0.724517
eos
EOS (EOS) $ 1.23
axie-infinity
Axie Infinity (AXS) $ 13.11
theta-token
Theta Network (THETA) $ 1.12
elrond-erd-2
Elrond (EGLD) $ 48.52