Difetti e limitazioni dell’Ethereum

Vi invito oggi ad un’analisi del sistema dell’Ethereum, e in particolare dei punti neri che lo riguardano. Ma prima di iniziare, vorrei chiarire una cosa: questo articolo non intende suscitare alcun odio verso l’Ethereum, e io personalmente uso molto l’Ethereum. Anche se spero di coprire un gran numero di questioni dell’Ethereum, non posso fare un elenco esaustivo delle preoccupazioni che possono essere attribuite all’Ethereum. Spero solo di poter introdurre alcuni dei problemi, a volte sconosciuti, della seconda maggiore capitalizzazione del mercato dei criptomoni.

Volendo fare troppo

L’Ethereum è una sorta di computer globale decentralizzato. Questa è infatti la visione del suo creatore, che non ha voluto imporre alcuna limitazione a ciò che poteva essere dispiegato sulla rete. Solidità, il linguaggio di programmazione utilizzato per sviluppare gli smart-contracts dell’Ethereum è “Turing-complete”, il che implica che può eseguire funzioni ricorsive e altri calcoli matematici avanzati. La solidità è anche un linguaggio abbastanza semplice da imparare, comprendere e utilizzare. Le sue somiglianze con C++ o JavaScript lo rendono rapidamente utilizzabile dagli sviluppatori che utilizzano questi linguaggi. È facile da usare e ha poche restrizioni. Parleremo di questi temi più avanti nell’articolo.

Smart-contratti

Il problema è che questo crea problemi quando si sviluppano contratti intelligenti. Ricordate che gli smart-contract sono immutabili e, una volta attivati, nessuno può cambiare il loro modo di lavorare. Gli sviluppatori non possono quindi risolvere bug o errori in un contratto esistente, il che può rendere felici gli hacker. I contratti intelligenti devono quindi essere attentamente studiati e controllati prima di essere utilizzati. Chi vorrebbe che il proprio contratto ICO fosse hackerabile? Questo può porre fine a progetti come MakerDAO e il suo stablecoin Dai. La piattaforma ha recentemente premiato un ricercatore sulla sicurezza con 50.000 dollari per aver segnalato un bug che avrebbe potuto permettere il furto di oltre 7 milioni di dollari di beni.

La macchina virtuale di Ethereum

Nel mondo dell’informatica, ci sono diversi modi per configurare un sistema. Ogni scelta tecnica deve essere fatta in base a molti parametri. La storia dei sistemi informatici ci insegna che funziona meglio quando sono composti da moduli specializzati. Una volta che tutte le funzioni sono fornite da questi piccoli, semplici ed efficienti sistemi specifici, possiamo assemblarli. La Macchina Virtuale dell’Etereum, chiamata anche EVM per la Macchina Virtuale dell’Etereum, realizza la maggior parte delle funzioni dell’Etereum, in modo molto opaco e non sembra essere abbastanza efficiente nei calcoli.

Alcuni pensano che il problema principale dell’Ethereum sia questo aspetto del “computer globale”. La principale proposta di valore delle catene a blocchi è la verifica, non la potenza di calcolo. Le interazioni tra diversi smart-contract non devono essere duplicate su computer diversi. Solo la validazione delle transazioni deve passare attraverso il protocollo, e questo è ciò che viene utilizzato da diversi progetti di overlay.

La scarsità di eteri

Uno dei principali indicatori nella valutazione di un progetto cripto, o di un protocollo come l’Ethereum, è il numero di gettoni in circolazione. È necessario studiare quanti gettoni esistono, come vengono messi in circolazione e chi li possiede. Mentre alcuni progetti come Ripple possono far digrignare i denti alla gente perché la società omonima ne possiede la maggior parte, Ethereum rimane poco chiaro su altri punti. Il punto più controverso è il numero di eteri che possono esistere. Sono i minatori ad essere attualmente ricompensati in eteri per i loro servizi.

Si tratta di un processo abituale per la crittografia che utilizza un algoritmo di prova del lavoro. D’altra parte, se il numero di bitcoin creati da questo sistema è finito (21 milioni di unità), questo non è il caso dell’Ethereum e degli eteri. Ciò può essere spiegato in particolare con il passaggio programmato alla prova di presa in carico del protocollo, che oggi non è ancora stato implementato. Ciò dimostra l’instabilità della gestione dell’etere, e sorge quindi la domanda: l’etere è un segno che è raro o almeno sta diventando raro?

Una scelta di consenso inefficiente

L’utilizzo di un sistema decentralizzato è prima di tutto una scelta. Il decentramento ha un costo, non necessariamente in termini di prezzo della soluzione, ma spesso si trova una soluzione centralizzata più efficiente. Il Bitcoin non è un sistema efficiente, come afferma il suo libro bianco. Le righe successive spiegano che il Bitcoin non è particolarmente efficiente, ma senza un corpo di controllo.

READ  Bitcoin trader opinioni: sito affidabile o no?

Punti deboli delle reti decentralizzate

La maggior parte della forza di Bitcoin deriva da quelle che potrebbero essere considerate delle carenze. Le transazioni vengono dispiegate sulla rete lentamente e sarà ancora più avvincente attaccarla. Il sistema di trasmissione tra ogni nodo è obsoleto e ridondante (ogni nodo trasmetterà le informazioni a tutti i suoi vicini, anche se ne hanno già uno), quindi più nodi possono fallire, e devono solo fidarsi degli altri. Ma il motivo per cui Bitcoin funziona così bene è la gestione dei dati generati. Sapete quali dati stanno arrivando, quanti dati stanno arrivando, e questo continuamente, perché è fisso. L’aumento delle dimensioni della blockchain è lineare e quindi molto più gestibile per i nodi, cosa che non avviene per l’Ethereum.

Gestione dei dati

La quantità e la dimensione dei dati che devono essere gestiti dalla rete dell’Ethereum varia, cioè la rete può essere saturata da questi dati, ed è quindi vulnerabile. Questa saturazione non porta solo a una coda per le transazioni, con un biglietto di priorità per chi paga di più. Si tratta anche di un problema di sicurezza, poiché queste congestioni di rete possono essere impostate in modo malevolo, e questo può portare allo sfruttamento delle vulnerabilità.

Scarsa esperienza dell’utente

L’esperienza è, a mio avviso, uno degli ostacoli più importanti all’adozione del criptomonia. Nonostante gli sforzi compiuti, rimane molto complicato navigare nell’uso dei protocolli ecosistemici. Ma l’Ethereum è, secondo me, uno dei peggiori, lui e i sistemi che ruotano intorno a lui. Prendiamo l’esempio del Bitcoin, e soprattutto del Lightning Network, che ancora oggi è un WIP (Work in Progress).

LN permette a tutti di inviarsi reciprocamente un piccolo numero di Bitcoin (parliamo qui di satoshis), riducendo i tempi di trasferimento e i costi associati. Esistono molte applicazioni mobili per utilizzare LN senza conoscenze preliminari. Sono facili da usare e hanno interfacce che non hanno nulla da invidiare a fintech, ad esempio. Un clic e si ricevono bitcoins, un altro e si inviano bitcoins. È semplicissimo.

Gestione dei gettoni ERC-20

D’altra parte, l’uso della rete dell’Ethereum e dei suoi derivati è molto più complesso. La gestione degli indirizzi rimane comunque simile a quella di Bitcoin. Ma usare l’Ethereum non è solo usare gli eteri. Questi ultimi vengono teoricamente utilizzati solo per finanziare le operazioni effettuate sulla rete. Infatti, è più probabile che i gettoni vengano scambiati durante l’uso di applicazioni decentralizzate.

Tuttavia, gli eteri sono ancora necessari per utilizzare queste applicazioni, cioè per fornire e memorizzare diversi gettoni, il che rende il processo meno leggibile. Anche la memorizzazione di questi gettoni è un punto nero nell’esperienza dell’utente. Sia che utilizziate un software o un portafoglio elettronico, dovrete inviarli ad un indirizzo Ethereum. Ma nella maggior parte dei casi, non vedrete apparire automaticamente i vostri gettoni e dovrete aggiungerli manualmente per vedere il saldo.

Inoltre, la questione UI/UX nell’ecosistema dell’Ethereum non si applica solo allo stoccaggio dei gettoni. La maggior parte delle applicazioni decentralizzate non hanno interfacce user-friendly, e queste non aiutano a capire come funzionano. Basta guardare l’UI/UX di uno scambio tradizionale e confrontarlo con uno scambio decentralizzato.

Davvero decentrato?

Spesso spiego che Ethereum è una buona piattaforma per scoprire lo sviluppo di applicazioni decentralizzate. Pensare e implementare questo tipo di applicazione non è semplice: bisogna pensare all’architettura e spesso si tratta di prendere l’opzione più complessa, perché spesso la facilità è data dalla centralizzazione. Ma prima di pensare alla propria architettura, è meglio studiare il sistema su cui il progetto verrà implementato. Possiamo poi porci la questione del decentramento dell’Ethereum, punto sul quale molti ritornano.

Come definire se l’Ethereum è decentralizzato o meno? Quali sono i criteri per decidere lo stato di un protocollo?

READ  Scanner truffa: un'antologia di criptotruffe

I nodi dell’Etereum

Questo punto può non parlare a tutti, ma per interagire con la rete dell’Ethereum bisogna passare attraverso un nodo. Non entrerò nei dettagli, ma impostare un nodo Ethereum non è facile come impostare un nodo Bitcoin. E le condizioni diventano sempre più complicate da soddisfare, il che riduce il numero di nodi esistenti. In effetti, per poter memorizzare la blockchain è necessaria prima di tutto una grande capacità di archiviazione: almeno 120 GB di memoria, che possono aumentare rapidamente a seconda delle informazioni non obbligatorie che si desidera conservare. Questo può arrivare fino a più di 700 GB per alcuni nodi. Ma avrete bisogno anche di una grande quantità di RAM disponibile, almeno 8 GB. Infine, dovrete essere pazienti, poiché dovrete aspettare diversi giorni prima di sincronizzare il vostro nodo con la rete dell’Ethereum.

Alcune statistiche

Oggi, ci sono 7855 nodi pubblici dell’Etereum contro 9240 nodi pubblici Bitcoin per dare un’idea. Ma la loro crescita è in calo, un’evoluzione del -7,4% per il mese scorso. Meno nodi significa meno decentramento, ma un numero elevato di nodi non significa che siano tutti autonomi. Solo due client Ethereum sono ampiamente utilizzati sui quindici disponibili, e la maggior parte di questi nodi sono distribuiti su server remoti (cloud). Infatti, più del 60% dei nodi dell’Ethereum sono ospitati su piattaforme cloud e più del 25% su Amazon.

I servizi di accesso alla rete sono quindi centralizzati su alcuni provider, in particolare su Infura. Quando si desidera impostare un progetto applicativo decentralizzato, è necessario tale accesso per consentire ai propri utenti di interagire con i propri smart-contract. Infine, un Dapp distribuito su Ethereum non è simile a un’applicazione distribuita su AWS o Azure?

Il problema degli eteri

Per realizzare un sano ecosistema decentralizzato, è importante che la massa monetaria sia nelle mani del maggior numero possibile di utenti diversi. Ci sarà sempre una certa concentrazione di valore, spesso premiando l’assunzione di rischi o il coinvolgimento nel sistema. Ci sono molti sospetti di concentrazione di etere in un piccolo numero di portafogli. Si tratta principalmente di due punti neri nella creazione di eteri che spesso vengono fuori.

La prima riguarda gli eteri che sono stati pre-minati, cioè il team di sviluppo dell’Ethereum ha avuto accesso agli eteri e alla loro estrazione e creazione in anteprima. Ciò ha permesso loro di avere un certo numero di gettoni per stabilizzare, tra le altre cose, la domanda e l’offerta. Ma centralizza anche il possesso degli eteri.

Corso dell’ICO

Il processo di pre-vendita dell’etere sembra essere manipolato, o almeno concentrato. Non ci sono prove, ma ci sono indicazioni che gli eteri pre-venduti siano stati acquistati da un numero limitato di acquirenti. Diamo un’occhiata a questo grafico che mostra il numero di bitcoin che alimentano l’indirizzo utilizzato da Ethereum durante la prevendita.

Notiamo rapidamente che l’evoluzione del numero di bitcoins di proprietà dell’Ethereum, e quindi la distribuzione degli eteri non è molto organica. Ci sono stati due grandi acquisti, effettuati in un numero limitato di blocchi. Da ciò possiamo dedurre che non ci sono molti acquirenti di eteri durante le prevendite, e che alcuni di loro concentrano un gran numero di eteri. E questo non è un numero aneddotico di eteri, visto che durante l’ICO sono stati messi in vendita 60 milioni di ETH e 12 milioni sono stati mantenuti dal team. Oggi ci sono 108 milioni di eteri in circolazione, di cui il 66% è stato pre-minerato.

Diamo un’occhiata al tipico grafico di una vendita di gettoni, ad esempio durante una ICO.

Si può notare che l’aumento è molto più organico rispetto alla prevendita di cui sopra. Tuttavia non è lo studio del grafico che permette di definire chi ha posseduto un giorno questi eteri. Nonostante il lato speculativo della teoria, questo porta un elemento che mette in discussione il decentramento dell’Ethereum.

I limiti della solidità

Abbiamo già studiato Solidità, ma credo che il linguaggio utilizzato nello sviluppo di smart-contract meriti un po’ più di attenzione. La semplicità e la possibilità spesso fanno rima con i difetti dell’informatica, e la solidità ha mostrato più volte i suoi difetti. Spesso si tratta di una questione di sicurezza degli smart-contracts, che è essenziale in quanto Ethereum vuole permettere l’implementazione di molti servizi finanziari sulla loro rete.

READ  eToro: Recensioni e tutorial per Bitcoin e Crypto Trading

La solidità autorizza il dispiegamento di codice non valido, infatti non c’è un test a monte sui programmi dispiegati. Se non contengono errori di compilazione e i vostri contratti sono leggibili dall’EVM, possono essere distribuiti in rete.

I compilatori

I vari compilatori di Solidity esistenti, migliorati con lo sviluppo dell’Ethereum, possono subire modifiche significative. Questi compilatori permettono di produrre un codice comprensibile dalla macchina virtuale Ethereum, da smart-contracts Solidity. Durante i numerosi cambiamenti dei compilatori, a volte troviamo grandi differenze nel linguaggio della macchina. Se si utilizzano due compilatori diversi per lo stesso smart-contract, il codice ottenuto all’uscita può cambiare molto. Questo è abbastanza problematico quando lo si studia per cercare i difetti. Trovare il codice Solidity una volta effettuata la compilazione non è un compito facile, ma è necessario, nell’ambito dell’Ethereum, conoscere anche la versione del compilatore utilizzato, che alla fine rallenta la correzione dei difetti di sicurezza.

Soluzioni fornite da Ethereum 2.0

Molte persone aspettano con ansia l’Ethereum 2.0 e le sue molteplici soluzioni. All’ordine del giorno sono all’ordine del giorno il passaggio alla prova della questione (Casper), l’accaparramento e altri miglioramenti. L’intero programma dovrebbe essere implementato tra questa fine dell’anno e il 2022, anche se Ethereum ci ha già abituati ai suoi ritardi. Vediamo nel dettaglio cosa potrebbe portare l’Ethereum 2.0.

Il canale “ammiraglia

Si tratta di una nuova catena di blocco, che utilizza il protocollo di proof-of-stake. Si tratta di un’operazione diversa dalla prova del lavoro, che si basa sui depositi di Ethereum. Gli utenti potranno impegnare 32 eteri per partecipare alla convalida delle transazioni. Permetterà il passaggio dall’Ethereum al POS. Questo porterà valore agli eteri, aumentando la loro utilità ma anche la loro rarità sul mercato.

Sharding

Lo sharding permetterà di distribuire i calcoli alle sottoreti dei nodi, il che rappresenta un grande miglioramento del sistema esistente. Come abbiamo studiato, ogni nodo deve eseguire i calcoli e annunciare il risultato agli altri. Ma come abbiamo visto, il funzionamento dell’Ethereum non aveva solo questo problema di scalabilità. Ulteriori calcoli porteranno grandi quantità di dati da gestire e memorizzare.

EWASM

Una nuova macchina virtuale per eseguire contratti intelligenti. Quest’ultimo, sobriamente chiamato EWASM (Ethereum Web Assembly), sostituirà quello attuale. Il Web Assembly è uno standard di architettura e programmazione di macchine virtuali molto ottimizzato. L’ecosistema dell’Ethereum trarrebbe vantaggio dai vari vantaggi derivanti dallo sviluppo di contratti intelligenti su questa nuova macchina virtuale. Questi funzioneranno più velocemente, ma possono anche essere sviluppati in diverse lingue, oltre a Solidity. Si tratta di linguaggi più stabili e rigorosi, come il C/C+++, Ruggine o Go. Oltre alle risorse già esistenti su Web Assembly, la comunità di Ethereum potrà contare su migliori strumenti di sviluppo.

Ma tutti questi miglioramenti arriveranno solo tra qualche anno, e non risolveranno tutti i problemi attuali. Non è solo una questione di velocità di esecuzione o di spesa di energia in miniera. Un sistema di ricompense per gli eteri di pegno garantisce il mantenimento della loro concentrazione.

Conclusione

Infine, Ethereum non è forse il riflesso della moltitudine di startup che si lanciano sul mercato, seguendo l’adagio “fingi finché non ce la fai”? Il progetto cripto avendo venduto i suoi gettoni senza nemmeno aver prodotto un MVP, migliaia di bitcoin in cambio di un whitepaper, un’operazione che si è ripetuta nel bene e nel male. Molti altri progetti offrono alternative all’Ethereum su diverse scale. La Bilancia potrebbe, ad esempio, diventare un serio concorrente dell’Ethereum, o meglio dell’Ethereum 2.0. Possiamo anche citare Tezos, che attira anche gli attori di DeFi. L’etereo e la solidità rimangono comunque agli occhi di molti il modo migliore per sviluppare facilmente gli smart-contracts.