Origini, scopi, algoritmi di consenso, linguaggi di programmazione e smart contract. Bitcoin ed Ethereum, universi paralleli a confronto.
- Origini e storia
- Scopi e visioni
- Algoritmi di consenso: dalla Proof of Work alla Proof of Stake
- Linguaggi di programmazione a confronto
- Approcci opposti
Origini e storia
Bitcoin nasce da uno sviluppatore anonimo conosciuto con il nome di Satoshi Nakamoto che il 31 ottobre 2008 pubblica il white paper di Bitcoin. Il protocollo diventa operativo il 3 gennaio del 2009, ma la ricerca per portarlo alla luce ha una storia trentennale.
Diversi sono gli studi, i sistemi di pagamento e le tecnologie che hanno influenzato la nascita del protocollo Bitcoin. L’introduzione della crittografia asimmetrica e della crittografia a curva ellittica negli anni ‘70 e ‘80, i tentativi di creazione di una moneta digitale quali Digicash, e-gold, BitGold, B-Money e gli antenati di quella che oggi conosciamo come Proof-of-Work: HashCash e Reusable Proofs of Work (RPOW). Tutti questi sono i pezzi del puzzle che Satoshi Nakamoto riesce a incastrare nel 2009.
Da allora il protocollo viene mantenuto da migliaia di sviluppatori e contributori volontari provenienti da tutto il mondo.
Ethereum nasce nel 2014 tramite un’ICO (Initial Coin Offering) promossa dal team di sviluppatori. Il team è composto da Vitalik Buterin, Gavin Wood, Charles Hoskinson, Anthony Di Iorio, Jeffrey Wilcke, Mihai Alisie e Joseph Lubin.
Il modello di fundraising utilizzato dal team di Ethereum viene considerato una novità all’epoca. L’ICO di Ethereum inizia il 22 luglio e dura 42 giorni, fino al 2 settembre 2014. Inizialmente, gli investitori che partecipano all’ICO possono ottenere 2.000 ETH per 1 BTC.
Oggi, il player principale che porta avanti il progetto è una fondazione svizzera chiamata Ethereum Foundation, composta da Vitalik Buterin, Joseph Lubin, Ceo di Consensys e Aya Miyaguchi, membro del World Economic Forum. Molto interessante è il ruolo che svolge Consensys, azienda leader nello sviluppo di software legati a Ethereum, che punta a rendere semplice lo sviluppo di applicazioni su Ethereum e accedere all’ecosistema Web3. Tra l’altro, l’azienda è proprietaria di MetaMask, un famoso wallet crypto che permette di accedere al mondo delle dApps e di Infura, un’infrastructure-as-a-service che semplifica l’accesso alle piattaforme crypto e Web3.
Scopi e visioni
L’obiettivo primario di Bitcoin è chiaro sin dalla sua nascita: essere una moneta digitale trasferibile senza intermediari, una sorta di contante digitale.
Bitcoin si ispira al concetto di scarsità dell’oro. Non potranno mai esistere più di 21 milioni di unità di bitcoin.
La sua capacità di essere trasferito in modo quasi istantaneo in tutto il mondo e la neutralità della rete, fanno sì che Bitcoin possa fungere da efficace layer di settlement internazionale in futuro, andando a ricoprire il ruolo tradizionale svolto dall’oro come riserva di valore nel corso della storia.
La tesi principale di Ethereum è creare un computer globale e decentralizzato su cui è possibile sviluppare ed eseguire smart contract e applicazioni decentralizzate note come dApps.
Proprio per come è stato pensato Ethereum, non vi è un limite massimo di Ether (il token nativo del protocollo) disponibili. La moneta Ether è vista come il gas da spendere per alimentare questo computer globale e decentralizzato.
Algoritmi di consenso: dalla Proof of Work alla Proof of Stake
L’algoritmo di consenso nel protocollo Bitcoin è noto come Proof of Work (POW). Questo meccanismo è ciò che sta alla base della creazione di nuovi bitcoin.
Per partecipare al meccanismo che permette di guadagnare dalla scrittura dei blocchi della blockchain, occorre dimostrare di aver compiuto del lavoro, ossia aver investito in risorse tecnologiche ed energetiche. Come ben noto, il mining di bitcoin è un processo altamente energivoro.
Finora la Proof of Work si è dimostrata il miglior algoritmo di consenso in termini di sicurezza e decentralizzazione.
Fino a poco tempo fa, anche Ethereum utilizzava la Proof of Work come meccanismo di consenso. A settembre 2022 il team di Ethereum ha deciso di passare alla Proof of Stake (POS). Questa non consiste in una “prova di lavoro”, ma in un’allocazione di capitale (“stake”), investito nella moneta in questione. Per poter trovare un nuovo blocco, viene effettuata una lotteria dove chi ha più denaro bloccato ha più possibilità di vincere e quindi di guadagnare la ricompensa. Questo meccanismo fa sì che nel lungo termine la Proof of Stake tenda alla centralizzazione.
Linguaggi di programmazione a confronto
I linguaggi di programmazione impiegati nei due protocolli rivestono un ruolo fondamentale nella definizione delle loro funzionalità, degli utilizzi e dell’ecosistema nel suo complesso.
Bitcoin utilizza un linguaggio di scripting volutamente semplice, non Turing-complete e progettato per un insieme specifico di operazioni. Il linguaggio di scripting di Bitcoin è principalmente utilizzato per creare condizioni sotto le quali le transazioni possono essere spese. Sebbene consenta l’implementazione di smart contract, le sue funzionalità sono intenzionalmente limitate per garantire sicurezza e prevenire potenziali vulnerabilità.
La semplicità del linguaggio di scripting di Bitcoin è una scelta di design che dà priorità a sicurezza e robustezza rispetto alla flessibilità. Di fatto, consente operazioni di scripting di base, come portafogli multi-sig e transazioni con blocco temporale, ma evita intenzionalmente la complessità associata alla Turing-completeness.
In netto contrasto, Ethereum abbraccia un linguaggio di programmazione Turing-complete, consentendo agli sviluppatori di creare una vasta gamma di applicazioni decentralizzate (dApps) e smart contract. Il linguaggio di programmazione di Ethereum, Solidity, offre la flessibilità di un sistema Turing-complete, consentendo agli sviluppatori di implementare logiche e calcoli complessi all’interno degli smart contract.
Approcci opposti
La Turing-completeness del linguaggio di programmazione di Ethereum apre la strada a una miriade di possibilità, tra cui exchange decentralizzati, piattaforme di prestito e altro ancora. Gli sviluppatori possono creare sofisticate applicazioni decentralizzate che vanno oltre la natura transazionale di Bitcoin. Tuttavia, questa flessibilità comporta delle sfide, poiché smart contract complessi possono introdurre potenziali vulnerabilità se non vengono adeguatamente auditati e protetti.
La differenza fondamentale tra i linguaggi di programmazione in Bitcoin ed Ethereum risiede nel compromesso tra sicurezza e flessibilità. La semplicità di Bitcoin garantisce un ambiente più sicuro riducendo la superficie di attacco e i rischi potenziali associati agli smart contract. Dall’altra parte, la Turing-completeness di Ethereum consente una gamma più ampia di applicazioni ma richiede agli sviluppatori di essere attenti nell’affrontare i problemi legati alla sicurezza.
Spesso si tende a pensare che Bitcoin non disponga di smart contract. In realtà, Bitcoin ha la possibilità di eseguire smart contract, anche se più limitati rispetto a quelli presenti in Ethereum.
Un classico esempio di smart contract in Bitcoin è il Lightning Network, ovvero il secondo layer più importante della rete Bitcoin.
Effettuando una transazione verso un indirizzo multi-sig, è possibile aprire canali Lightning Network e iniziare a trasferire bitcoin off-chain.