Cos'è un nodo Ethereum e come funziona

Qual è l'importanza di un nodo Ethereum all'interno della blockchain e come interagisce con gli altri?

Ethereum in realtà non è una criptovaluta, ma una rete P2P decentralizzata basata su un protocollo informatico pubblico e open source. 

La sua criptovaluta nativa è Ether (ETH), anche se spesso viene chiamata con il nome dell'intera rete, che è Ethereum. 

Le reti P2P, o reti peer-to-peer, sono costituite da nodi peer che comunicano tra loro tramite Internet. Pertanto, sono i nodi i costituenti fondamentali di queste reti. 

I costituenti fondamentali di Ethereum sono quindi i suoi nodi, che formano la rete P2P, e ovviamente il protocollo su cui si basano. 

Per far parte della rete Ethereum P2P, e per interagire con altri nodi, un nodo Ethereum deve aderire alla lettera al suo protocollo di base, che ovviamente deve essere assolutamente identico per tutti i nodi, altrimenti verrà escluso dalla rete si. 

Il funzionamento di un nodo Ethereum

I nodi Ethereum sono computer, o server, connessi a Internet e su cui viene eseguito un software speciale. 

Questo software in gergo si chiama client di rete, ed è assolutamente indispensabile per l'esecuzione di un nodo. È proprio questo software che si connette con gli altri nodi della rete P2P, e che deve rispettare alla lettera il protocollo Ethereum. 

La cosa curiosa è che poiché il protocollo è pubblico e open source, chiunque può creare un client di rete per eseguire un nodo sulla rete Ethereum. 

L'importante è che il client rispetti tutte le regole del protocollo, perché se così non fosse non sarà compatibile con gli altri nodi, finendo per essere escluso a priori dalla rete stessa. 

Attualmente ci sono solo 4 client più utilizzati, perché sebbene ce ne siano molti, la maggior parte viene usata molto poco. 

Tuttavia, è necessario fare una distinzione tra Consensus Client ed Execution Client. 

Gli Execution Client sono i nodi del cosiddetto “Execution Layer” (EL) di Ethereum, ovvero quelli derivati ​​dal precedente protocollo basato su Proof-of-Work (PoW). 

Il client di esecuzione di gran lunga più utilizzato è lo storico Geth, che esiste da molto tempo ed è il leader indiscusso della rete basata sul vecchio protocollo. Questo è seguito, ma con percentuali molto inferiori, da Erigon, Nethermind e Besu. 

Da quando il protocollo Ethereum è passato a Proof-of-Stake (PoS) con il Merge del 15 settembre, è stato aggiunto il cosiddetto “Consensus Layer” (CL), con diversi client. 

Nel caso dei clienti CL, c'è più diversità, con Prysm al 42%, Lighthouse al 36% e Teku al 18%. Segue Nimbus con solo il 3%. 

Tutti questi software sono open source, liberamente e liberamente scaricabili da tutti. 

Cosa fanno i nodi di rete

Nel tempo, la funzione dei nodi si è evoluta. 

Inizialmente facevano tutto loro, cioè l'unico software esistente sulla rete Ethereum erano i nodi. 

In altre parole: 

  • hanno protetto e controllato la blockchain 
  • hanno estratto i blocchi con il PoW 
  • hanno verificato la conformità al protocollo di tutti i blocchi e le transazioni
  • hanno eseguito contratti intelligenti
  • fungevano da portafogli consentendo l'invio e la ricezione di token. 

Tuttavia, nel tempo hanno perso alcune funzionalità. 

In particolare, hanno perso la funzionalità per estrarre i blocchi, perché per farlo con successo era necessario un software più snello e veloce. Pertanto, è stato sviluppato un software ad hoc per minerario

In teoria, possono ancora essere usati come portafogli, ma sono molto scomodi. Infatti ormai quasi tutti i wallet largamente in uso non sono nodi. 

Il fatto è che un nodo deve proteggere e verificare la blockchain, che è un file di quasi 350 GB in cui sono state registrate tutte le transazioni su Ethereum nella storia, che un nodo deve controllare una per una. 

Quindi, nel tempo, i nodi hanno finito per fare principalmente due cose: da un lato, custodiscono e verificano la blockchain, o registro delle transazioni, e dall'altro eseguono le istruzioni contenute negli smart contract. 

Il passaggio al PoS

I Unire, con il passaggio al PoS, ha cambiato le cose. 

Infatti, l'abbandono di PoW ha eliminato la necessità di minare blocchi, quindi i minatori di Ethereum sono semplicemente scomparsi o si sono spostati su altre blockchain ancora basate su PoW. 

Ma quando non erano più i minatori a creare i blocchi con le transazioni da aggiungere alla blockchain, è stato necessario creare altri software per convalidare i blocchi. 

Tali software sono i nuovi client Consensus Layer, in particolare Prysm, Lighthouse, Teku e Nimbus. 

Questi nodi CL convalidano i blocchi ora che i minatori non lo fanno più. 

Tuttavia, PoS si basa sullo staking, quindi i nodi CL detengono anche i token ETH messi in staking. 

Il Consensus Layer si basa su una nuova blockchain, chiamata Beacon Chain e basata su PoS, su cui i token ETH possono essere picchettati sui nodi rilevanti in modo da poter fare PoS. Il vecchio Execution Layer utilizza la vecchia blockchain basata su PoW, ma senza più nuovi blocchi aggiunti, poiché le transazioni ora vengono registrate solo sulla nuova Beacon Chain. 

Configurazione di un nodo Ethereum

Il funzionamento di un nodo è relativamente semplice. Infatti, una volta installato, il client deve semplicemente essere lasciato in funzione connesso ad Internet. 

Tuttavia, l'installazione non è una cosa da poco. 

Innanzitutto, quando il client è installato, deve scaricare l'intera blockchain e verificarla tutta, transazione per transazione. Questo processo risulta essere particolarmente lungo. 

Inoltre, una volta installato deve essere configurato in modo che possa connettersi ad altri nodi, altrimenti risulta essere di fatto escluso dalla rete P2P. 

Quest'ultimo è un processo tecnico che richiede un minimo di competenza. Non è quindi adatto a chi sta solo muovendo i primi passi in questo ambito, anche perché richiede competenze informatiche e sistemistiche. 

È ancora più complicato nel caso di un nodo CL, perché dovendo presidiare almeno 32 ETH in staking rende ancora più rilevante la questione della sicurezza. 

Sicurezza

La sicurezza di un nodo è fondamentale per consentirgli di funzionare correttamente, perché ha un portafoglio integrato e nel caso di nodi CL detiene ETH in staking. 

L'unico grosso problema in caso di violazione è il possibile furto di fondi, perché anche se venisse attaccato o violato l'intera rete non ne risentirebbe. 

Poiché possono essere soggetti a furto di fondi, è essenziale un elevato livello di protezione delle macchine e delle reti su cui girano. 

Un problema un po' più complicato è quello della sicurezza della rete P2P. 

Poiché questo si basa sui propri nodi, se molti di essi dovessero essere violati, la rete stessa potrebbe avere problemi. L'eventuale violazione di un singolo nodo, o di un numero limitato di nodi, non crea grossi problemi alla rete, ma se ne vengono violati molti i problemi potrebbero essere anche molto gravi. 

Questo è il motivo per cui sarebbe necessario utilizzare più client in ogni momento, perché nel caso in cui uno abbia un bug o una vulnerabilità, è difficile che li abbiano anche gli altri client. 

Per quanto riguarda l'Execution Layer, Geth è ora così ben collaudato che sembra improbabile che abbia problemi seri. Anche così, è comunque utile che ci siano anche altri client da utilizzare nel caso ipotetico di un problema in Geth. 

Al contrario, nel caso dei clienti per il Consensus Layer, la questione è diversa, dal momento che in realtà sono stati in uno solo per pochi mesi. 

Fonte: https://en.cryptonomist.ch/2022/11/26/what-is-an-ethereum-node-and-how-it-works/