7 min read

Che cos’è Ethereum. Corso base ep. 7

Di Davide Grammatica

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 -stake evoluta da una chain proof-of-work. E questo grazie al completamento del “Merge”, un aggiornamento recente determinante per il futuro della rete da moltissimi punti di vista. 

Fino a poco fa, quindi, le differenze con Bitcoin si limitavano in primo luogo all’algoritmo utilizzato per la validazione dei blocchi. In quel caso la blockchain non aveva un tempo fissato tra il mining di un blocco e l’altro (per bitcoin è intorno ai 10 minuti), ma un numero massimo di transazioni al secondo, di circa 15-20. Un limite strutturale, e ben noto a community e sviluppatori, che hanno lavorato 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 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.


X

Vuoi essere sempre sul pezzo?

Iscriviti alla newsletter. Niente spam, promesso!

Se ti iscrivi c'è un regalo per te: una guida completa per i prossimi airdrop!

bitcoin
Bitcoin (BTC) $ 27,085.26
ethereum
Ethereum (ETH) $ 1,866.36
tether
Tether (USDT) $ 1.00
bnb
BNB (BNB) $ 306.59
usd-coin
USD Coin (USDC) $ 1.00
xrp
XRP (XRP) $ 0.512472
cardano
Cardano (ADA) $ 0.375061
staked-ether
Lido Staked Ether (STETH) $ 1,866.05
dogecoin
Dogecoin (DOGE) $ 0.071598
matic-network
Polygon (MATIC) $ 0.888422
solana
Solana (SOL) $ 20.68
tron
TRON (TRX) $ 0.075772
polkadot
Polkadot (DOT) $ 5.31
litecoin
Litecoin (LTC) $ 89.52
binance-usd
Binance USD (BUSD) $ 1.00
shiba-inu
Shiba Inu (SHIB) $ 0.000008
avalanche-2
Avalanche (AVAX) $ 14.10
dai
Dai (DAI) $ 1.00
wrapped-bitcoin
Wrapped Bitcoin (WBTC) $ 27,115.26
uniswap
Uniswap (UNI) $ 5.03
chainlink
Chainlink (LINK) $ 6.46
leo-token
LEO Token (LEO) $ 3.51
cosmos
Cosmos Hub (ATOM) $ 10.53
okb
OKB (OKB) $ 45.76
the-open-network
Toncoin (TON) $ 1.84
monero
Monero (XMR) $ 147.77
ethereum-classic
Ethereum Classic (ETC) $ 17.95
stellar
Stellar (XLM) $ 0.091012
bitcoin-cash
Bitcoin Cash (BCH) $ 112.72
true-usd
TrueUSD (TUSD) $ 1.00
internet-computer
Internet Computer (ICP) $ 4.66
filecoin
Filecoin (FIL) $ 4.70
lido-dao
Lido DAO (LDO) $ 2.11
quant-network
Quant (QNT) $ 116.82
aptos
Aptos (APT) $ 8.26
hedera-hashgraph
Hedera (HBAR) $ 0.051563
crypto-com-chain
Cronos (CRO) $ 0.059529
vechain
VeChain (VET) $ 0.020416
arbitrum
Arbitrum (ARB) $ 1.15
near
NEAR Protocol (NEAR) $ 1.57
the-graph
The Graph (GRT) $ 0.134839
apecoin
ApeCoin (APE) $ 3.14
algorand
Algorand (ALGO) $ 0.147499
paxos-standard
Pax Dollar (USDP) $ 1.00
frax
Frax (FRAX) $ 1.00
edgecoin-2
Edgecoin (EDGT) $ 1.00
the-sandbox
The Sandbox (SAND) $ 0.532583
eos
EOS (EOS) $ 0.887115
rocket-pool
Rocket Pool (RPL) $ 48.39
elrond-erd-2
MultiversX (EGLD) $ 36.54