Bitcoin 101: passato, presente e futuro
Indice dei contenuti
In questo articolo parlerò dei fatti più importanti legati a Bitcoin, dello stato attuale del protocollo e dei possibili sviluppi futuri. Se vuoi approfondire questi argomenti, puoi ascoltare il podcast Il Priorato del Bitcoin di turtlecute con Giacomo Zucco come ospite.
Il priorato è benevolo.
Sostienimi! Se vuoi supportare il mio lavoro, puoi visitare la pagina delle donazioni, in cui sono anche presenti i riferimenti di persone che stimo nella comunità. Ogni contributo, grande o piccolo che sia, mi aiuta a dedicare più tempo alla stesura, revisione e aggiornamento di questi articoli. Grazie per il tuo supporto.
Passo dopo passo #
Bitcoin non è nato nel 2008. In realtà, è il risultato di decenni di studi e ricerche nel campo dell’informatica. Per comprendere al meglio le origini di Bitcoin, dobbiamo tornare indietro nel tempo, fino al 1933. La sua preistoria è ricca di eventi importanti e per capire dove siamo oggi dobbiamo fare un tuffo temporale non indifferente.
Dal 1930 al 1940 #
Nel 1933, Franklin Delano Roosevelt firmò l’ordine esecutivo 6102 che vietò l’uso privato di moneta in forma diretta, come dobloni e monete, o in forma indiretta, come banconote rappresentative di un collaterale, come l’oro. In quel momento, l’inflazione in America era pesante, le casse pubbliche federali erano al collasso e la situazione economica era difficile. Di conseguenza, il governo confiscò tutto l’oro dei privati cittadini. Questo evento è importante per capire la storia di bitcoin, poiché stiamo parlando della land of the free, la patria della democrazia liberale costituzionale, non della Corea del Nord.
Saltando in avanti nel tempo, nel 1936, un giovane Alan Turing pubblicò un paper intitolato On Computable Numbers, with an Application to the Entscheidungsproblem, che costituì la base teorica per la rivoluzione digitale
pratica e naturalmente Bitcoin non sarebbe mai potuto nascere senza la rivoluzione digitale. Poco tempo dopo, nel 1938, fu costruito il primo computer che funzionava con impulsi elettromagnetici, chiamato torpedo data computer, al di sopra di un sottomarino. Anche se poteva eseguire solo il calcolo trigonometrico, non era un computer tuttofare
come quelli a cui siamo abituati oggi. Nel 1939, nacque il primo computer digitale, chiamato Z2, costruito da un ingegnere tedesco, anche se ci sono alcune controversie sull’effettiva paternirà di questo calcolatore.
Dal 1970 al 1980 #
Nel 1971 accadde un fatto gravissimo, noto come Nixon Shock. A causa della guerra in Vietnam e della recessione generale, il governo federale statunitense aveva bisogno di soldi e il presidente Richard Nixon decise di sospendere la convertibilità del dollaro in oro.
Fino a quel momento, l’intero sistema economico mondiale si basava sul seguente schema: tutte le valute ufficiali di Stato erano convertibili in dollari americani e ogni banca centrale di ogni paese prometteva la convertibilità della moneta locale in dollari americani, mentre la banca centrale americana prometteva la convertibilità di questi dollari in oro.
Nixon, sostenendo di voler proteggere il dollaro dagli speculatori, comunicò in diretta televisiva che la convertibilità del dollaro in oro sarebbe stata temporaneamente sospesa
. Siamo nel 2022 ma la sospensione di Nixon è ancora in pienamente in vigore.
Dall’economia torniamo nuovamente alla tecnologia. Nel 1974, Cerf e Kahn pubblicarono uno studio intitolato A Protocol for Packet Network Intercommunication, protocollo permise di connettere tra loro diverse reti di computer, noto oggi come IP (Internet Protocol).
Nel 1976, i ricercatori Diffie e Hellman pubblicarono il paper New directions in cryptography.
Fino a quel momento, la crittografia utilizzava una chiave simmetrica, che funzionava (ad esempio) come segue:
- Alice ha un testo in chiaro che vuole crittografare e inviare a Bob;
- Alice “sposta avanti” ogni lettera del testo di sette posizioni, ottenendo un blocco di testo senza senso logico;
- Alice invia a Bob il testo crittografato;
- Per recuperare il testo originale, Bob deve “spostare indietro” di sette posizioni ogni lettera del blocco di testo ricevuto da Alice.
Tutti i sistemi crittografici fino al 1976 erano di questo tipo ed erano poco sicuri perché si basavano sul concetto che si può “girare una chiave in un senso” e “rigirarla nel senso opposto” con estrema facilità.
In “New directions in cryptography” (crittografia asimmetrica) teorizzata da Diffie e Hellman, risulta ancora molto semplice “girare una chiave in un senso”, ma praticamente impossibile girare la chiave nel senso opposto
.
Esempio di crittografia asimmetrica:
- Ogni parte in uno scambio crittografico possiede due chiavi, una pubblica e una privata;
- Alice genera una chiave privata;
- Alice calcola in modo matematico e deterministico la chiave pubblica associata alla chiave privata;
- Alice può inviare la sua chiave pubblica a chiunque;
- Bob, che vuole comunicare in modo crittografato con Alice, utilizzerà la chiave pubblica di Alice per rendere un testo illeggibile;
- Il contenuto del testo può essere decriptato solo dalla chiave privata di Alice.
Due anni più tardi, nel 1978, Rivest, Shamir e Adleman pubblicarono lo studio intitolato A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. Questi tre autori svilupparono un algoritmo che rendeva effettivamente possibile la crittografia a chiave asimmetrica introdotta nel 1976, basandosi sull’utilizzo dei numeri primi.
I numeri primi hanno una caratteristica importante: se ti chiedessi di moltiplicare il numero 3
per il numero 5
, sarebbe molto semplice; ma se ti chiedessi i fattori primi di un numero primo come 15
, questa operazione è generalmente più complessa. Probabilmente penserai che è ovvio che i fattori primi di 15
siano 3
e 5
, ma se spostassimo questo ragionamento su numeri molto grandi sarebbe impossibile determinare la soluzione dal momento che non esiste un algoritmo semplice per risolvere questo tipo di problema.
Lo stesso anno, uscì un libro molto influente di un premio Nobel per l’economia, intitolato Denationalisation of Money di F.A. Hayek, un esponente della scuola austriaca di economia. Hayek era molto contrario al monopolio statale sul denaro, che a suo parere non è mai esistito nella storia dell'umanità
. Secondo Hayek, il monopolio totale è distruttivo e l’idea che proponeva era che il denaro dovesse tornare ad essere emesso (e scelto) dagli attori del mercato, senza nessuna forma di centralizzazione che potesse generare corruzione e crisi sistemiche.
In un certo senso, Hayek aveva predetto l’immacolata concezione di Bitcoin. 😁
Nel 1979, un matematico di nome Claus P. Schnorr brevettò l’idea del merkle tree. Per semplificare, l’idea di base del merkle tree è avere una struttura utilizzata per verificare l’integrità di un insieme di dati. Funziona dividendo i dati in piccole parti, poi creando delle coppie di queste parti e calcolando l’hash (un valore univoco, imprevedibile e non invertibile) di ogni coppia. Questo processo viene ripetuto fino a che tutte le parti non sono state incluse in un’unica radice, chiamata merkle root
, che riassume tutte le parti.
Quando si vuole verificare l’integrità di un insieme di dati, basta calcolare l’hash di ogni parte e verificare che sia uguale a quello che si trova nella struttura del merkle tree. Se l’hash di una parte è diverso, vuol dire che i dati sono stati modificati o alterati in qualche modo. Il merkle tree tra l’altro è molto efficiente perché richiede poco spazio su disco e permette di verificare l’integrità dei dati anche quando questi sono divisi in piccole parti e distribuiti su rete.
Dal 1980 al 1990 #
Nel 1980, Samuel Konkin III pubblicò il New Libertarian Manifesto, in cui sosteneva il pensiero agorista, ovvero l’idea che:
Non basta proclamare la bellezza della libertà e la bruttezza dello Stato, ma bisogna agire in modo pragmatico e costruire strumenti tecnici in grado di sconfiggere lo Stato.
— Samuel Konkin III
Questo pensiero verrà poi adottato anche dal movimento cypherpunks.
Nel 1981, si verificarono due eventi rilevanti:
- Il protocollo Internet raggiunse la versione 4 ed è affascinante pensare che nel 2022 ancora si utilizzi questa verione ormai ossificata (ad esempio per leggere questo sito), nonostante Internet sia diventato la spina dorsale del mondo moderno;
- Il signor David Chaum immaginò un protocollo di posta elettronica non tracciabile che utilizzasse pseudonimi digitali e pubblicò il paper Untraceable electronic mail, return addresses, and digital pseudonyms. Questa pubblicazione è molto importante perché segna l’inizio dell’utilizzo del concetto di crittografia asimmetrica per firmare i messaggi anziché per criptare i testi.
Per comprendere meglio la differenza rispetto all’esempio di crittografia asimmetrica di prima, vediamo questo esempio:
- Alice manda un messaggio a Bob e vuole dimostrare di essere la proprietaria del messaggio;
- Alice firma il messaggio con la sua chiave privata;
- Alice manda a Bob il testo in chiaro e il testo criptato con la sua chiave privata;
- Bob conosce la chiave pubblica di Alice, quindi può decriptare il testo con la chiave pubblica di Alice;
- Se Alice ha effettivamente firmato il messaggio con la sua chiave privata, allora il testo in chiaro e il testo criptato (decriptato da Bob) saranno identici.
Alice ha quindi certificato la comunicazione dimostrando di aver firmato con la sua chiave privata 🎉
Dal 1982 al 1988 si susseguono vari passaggi chiave:
- Nel 1982 non c’è un vero passaggio chiave ma è indicativo di una cultura generale che si stava diffondendo: viene pubblicato il testo The Ethics of Liberty nel quale Murray N. Rothbard (altro economista austriaco) suggerisce l’abolizione delle Federal Reserve americana e il ritorno ad un denaro di mercato;
- Nel 1983 David Chaum pubblica il paper Blind signatures for untraceable payments e per la prima volta l’idea di utilizzare un sistema di firma crittografica per fare pagamenti digitali non tracciabili venne introdotta;
- Due anni dopo, nel 1985, Koblitz pubblicò il testo Elliptic curve cryptography proponendo un modo alternativo a RSA per fare firme a chiave pubblica basato sulle curve elittiche a campi finiti.
- Infine, nel 1988 comparve il Crypto Anarchist Manifesto di Timothy May, anarchico agorista come Konkin III. Riassumendo in modo brutale Timothy afferma:
Nel mondo fisico lo stato ci controlla, ma nel mondo digitale, di Internet, grazie alla crittografia lo Stato non ci potrà controllare se sviluppiamo gli strumenti giusti. Potremmo creare pseudonomini scambiando idee, servizi e prodotti senza dover essere necessariamente sorvegliati.
— Timothy May
Nel 1989 David Chaum, svilppa un sistema di pagamento elettronico (con relativo brevetto) basato sulla crittografia asimmetrica e le blind signatures, chiamato DigiCash
.
L’idea dietro DigiCash era quella di fornire un mezzo di pagamento elettronico che fosse sicuro, anonimo e che garantisse la privacy degli utenti. Per raggiungere questo obiettivo, Chaum utilizzò la crittografia per proteggere le transazioni e per assicurare che solo il mittente e il destinatario potessero vedere i dettagli delle transazioni, il tutto accorpato con un sistema di “firme digitali” per verificare l’autenticità delle transazioni e per prevenire la falsificazione.
Il sistema di DigiCash era basato sulla moneta digitale ecash, che poteva essere trasmessa attraverso la rete e utilizzata per effettuare pagamenti online. Gli utenti potevano acquistare ecash da banche o da altre istituzioni finanziarie e utilizzarlo per effettuare pagamenti in modo rapido e sicuro.
Dal 1990 al 2000 #
Nel 1990, Claus Schnorr brevettò un tipo di firma che utilizzava la crittografia a curva ellittica, che si dimostrò molto efficace e possedeva alcune caratteristiche come la dimostrabilità di sicurezza formale
e l'aggregabilità
delle firme. Se Alice e Bob firmavano un testo con le loro chiavi private e poi sommavano le loro firme, il risultato era una firma valida per la chiave pubblica che era la somma delle chiavi pubbliche di Alice e Bob. Mal di testa? Tutto nella norma, questi tecnicismi sono stati importanti per lo sviluppo recente di Bitcoin (come taproot) e li esamineremo in seguito.
Nel 1991, due avvenimenti importanti si verificarono:
- Phil Zimmermann inventò PGP (Pretty Good Privacy), che sostanzialmente funziona creando una chiave pubblica e una chiave privata per ogni utente. La chiave pubblica viene utilizzata per crittografare i messaggi o i documenti che vengono inviati all’utente, mentre la chiave privata viene utilizzata per decrittografare i messaggi o i documenti che vengono ricevuti dall’utente. In questo modo, solo l’utente può leggere i messaggi o i documenti che riceve, poiché solo lui ha la chiave privata per decrittografarli;
- I ricercatori Haner e Stornetta pubblicarono il paper How to time-stamp a Digital Document, citato anche da Satoshi Nakamoto nel suo paper su Bitcoin. In questo paper, i due ricercatori scoprirono come dimostrare l’esistenza di un documento in un determinato istante temporale, ma Bitcoin doveva fare un po’ di più: dimostrare, nello stesso intervallo, sia
esistenza
cheunicità
.
Nel 1992, a San Francisco, nacquero i cypherpunks, attivisti libertari che sostenevano l’uso intensivo della crittografia informatica come parte di un percorso di cambiamento sociale e politico, ad esempio violando archivi riservati per rendere pubbliche alcune verità scomode.
Nei due anni successivi, 1993 e 1994 vengono pubblicati rispettivamente:
- A Cypherpunk’s Manifesto: la differenza cyhperpunk e criptoanarchici è che questi ultimi sostengono l’uso della tecnologia crittografica come mezzo per promuovere l’anarchia e l’individualismo nella società mentre i chyperpunk sono attivisti che utilizzano la crittografia per cambiare la società e la politica;
- The Cyphernomicon di Timothy May che per certi versi è profetico in quanto esamina come la tecnologia crittografica possa essere utilizzata per proteggere la privacy dei dati personali, per creare una rete di scambio di beni e servizi senza il controllo delle istituzioni governative e proteggere la libertà di parola e di espressione in un mondo sempre più interconnesso.
Siamo ancora nel 1994, nasce una versione alternativa di DigiCash di Chaum chiamata CyberCash ad opera di Daniel C. Lynch.
Due anni dopo, nel 1996, l’avvocato Barry Downey e l’oncologo Douglas Jackson fondarono e-gold in California, poichè sostenevano che data l’inconvertibilità del dollaro americano in oro e la mancanza di limiti alla stampa della moneta da parte della banca centrale, il sistema monetario statale sarebbe stato destinato a implodere. Tuttavia, l’oro era inadatto per un’epoca che andava in contro ad Internet, quindi decisero di creare una società che utilizzasse l’oro come collaterale (sottoposto a rigidi audit) e qualcuno pagava con e-gold, loro staccavano un assegno digitale (utilizzando un sistema molto simile a DigiCash di Chaum) che poteva essere inviato ad altri tramite indirizzi e-mail. Questa idea permise di scambiare titoli digitali che rappresentavano grammi di oro.
Durante lo stesso periodo, anche la NSA americana pubblicò un paper su come creare una valuta online simile a DigiCash/CyberCash anche se non sono noti gli scopi reali di tale pubblicazione.
Nel 1997 avvengono tre eventi importanti:
- Adam Back creò HashCash per risolvere il seguente problema: Adam Back, essendo un chyperpunk, parlava con altre persone via email (anonime) e queste erano usa e getta. Ciò creava un problema, quello dello spam. Per evitare lo spam, Adam utilizzò un metodo decisamente creativo. Spiego con un esempio:
- Alice crea il messaggio email:
Ciao, come stai?
con la data di oggi e poi esegue l’hash del messaggio; - Alice manda a Bob il testo e l’hash;
- Bob decide che se l’hash del messaggio inizia con
0
leggerà il messaggio, altrimenti non lo leggerà; - Se Alice si accorge che l’hash della sua email inizia con
1
, non manda il messaggio e modificherà leggermente il testo per creare un nuovo hash: se esce0
lo manderà (e Bob lo leggerà), altrimenti dovrà riprovare ancora. - E così via..
Se Bob si accorge di ricevere ancora troppo spam, può modificare la difficoltà imponendo che leggerà le email solo se l’hash del messaggio inizia con 00
invece di 0
. Preciso solo che in questo modo la difficoltà non raddoppia, aumenta quadraticamente.
È esattamente la proof-of-work di Bitcoin! 👌
Un’idea simile c’era già stata un’idea simile con il paper del ‘92 Pricing via Processing or Combatting Junk Mail.
Per concludere il 1997, succedono altri due eventi rilevanti:
- L’informatico (e chyperpunk) Nick Szabo pubblica un testo che parla per la prima volta di
smart contract
(questo a dimostrazione che gli smart contract non sono l’invenzione di qualche shitcoiner recente). Ciò che afferma Nick nel paper Formalizing and Securing Relationships on Public Networks è che non solo è possibile mandare cash da una chiave pubblica ad un’altra come fa David Chaum in DigiCash, ma il problema si può generalizzare e affermare che è possibile utilizzare la crittografia per garantire la sicurezza delle comunicazioni e delle transazioni online, proteggendo così le informazioni sensibili e gli asset digitali. Szabo menziona contratti intelligenti,programmi automatizzati che eseguono azioni specifiche in base a condizioni prestabilite, per formalizzare le relazioni sulla rete e garantirne la sicurezza, ad esempio implementando test temporali o multifirma; - Viene pubblicato il libro The Sovereign Individual che è anch’esso molto profetico e che possiamo riassumere per semplicità con:
Il mondo in cui gli stati sovrani volge al termine perchè Internet porterà la possibiità di scegliere dove vivere, l’individuo sovrano potrà andare in giro con diverse nazionalità, diverse residenze, diversi passaporti. Così facendo l’individuo potrà fare shopping dello stato migliore, lo Stato non sarà più il suo dominatore ma sarà il suo provider di servizi.
Dopo il caldissimo anno del 1997 arriviamo al 1998 che è ancora più ricco di novità perchè Nick Szabo inventa una versione potenzialmente decentralizzata di DigiCash, chiamata BitGold. La descrive nel 1998 ma la pubblica solo nel 2005 in modo completo e formale. Si può dire che è vicinissimo all’idea di Bitcoin anche se manca ancora un tassello fondamentale.
Nel frattempo un chyperpunk molto famoso chiamato Wei Dai pubblica un paper creando B-Money senza presentare del codice ma proponendo l’utilizzo di un sistema di contratti intelligenti per gestire le transazioni e garantire la sicurezza del sistema. I contratti intelligenti avrebbero agito come intermediari automatici per le transazioni, verificando che le condizioni per la loro esecuzione fossero soddisfatte prima di eseguire le transazioni. In questo modo, il sistema sarebbe stato in grado di funzionare senza la necessità di un ente centrale di controllo. C’è però un problema che affligge sia Nick Szabo che Wei Dai ed è quello del double spending
.
A questa eccellente domanda, Wei Dai propone di stabilire un ordine per le transazioni e per fare questo, si vota per determinare quale transazione è arrivata prima e quale è arrivata dopo. Tuttavia, c’è il rischio che alcuni nodi falsi votino per far sembrare che una transazione sia arrivata prima o dopo di quanto non sia realmente. Inoltre, non tutti i nodi nella rete hanno lo stesso potere di voto. Alcuni possono votare con più peso perché hanno messo dei soldi digitali a garanzia, e il peso del loro voto dipende da quanti soldi hanno messo a garanzia (stake).
Dopo varie analisi si giunge alla conclusione che non può fuzionare perchè è un meccanismo circolare e per realizzare questo sistema il peso del voto che decide quale transazione è arrivata prima è definito in base al possesso del denaro in stake e il possesso del denaro in stake dipende dalle transazioni precedenti e dalla loro tecnologia che a loro volta dipende da una votazione che dipende dal possesso e così via. Un loop senza fine. Questa circolarità logica si traduce in un sistema debole, che porta facilmente ad attacchi e alla centralizzazione.
Altri eventi importanti nel 1998:
- Bernard von NotHaus crea il Liberty dollar, valuta digitale basata sull’oro e sull’argento. Il sistema Liberty Dollar prevedeva l’emissione di monete fisiche e digitali di oro e argento, nonché di carte di credito e di assegni che potevano essere scambiati come moneta. La valuta era basata su un tasso di cambio stabilito dal mercato dell’oro e dell’argento e poteva essere utilizzata come alternativa alle valute tradizionali come il dollaro statunitense. Nel 2009 lo stato federale Americano lo perseguirà mandandolo in galera, facendo chiaramente intendere che non ci può essere concorrenza nella patria liberale;
- Peter Thiel crea Coinfinity, sistema di pagamento online per e-commerce, ma il modo in cui lo immagina è qualcosa di simile a Bitcoin:
Nel mondo fisico interagirete con la moneta del vostro stato, ma quando siete su internet siete cittadini del cyber spazio e quindi senza frontiene, confini e burocrazia voi pagherete nella moneta di coinfinity
— Peter Thiel
Nel 1999 entra in gioco il caro Elon Musk che crea X.com, un sistema di pagamento con la stessa idea di base di Coinfinity di Peter Thiel e lo stesso anno, Milton Freeman ci delizia con una profezia:
Penso che internet sarà una forza enorme per ridurre il potere del governo nella vita delle persone. Ma c’è una cosa che manca –e che sarà presto inventata– e sarà una moneta digitale di Internet in cui A potrà trasferire fondi a B e senza che B conosca A. Questo sistema non esiste ancora, ma esisterà e rendera Internet la rivoluzione definitiva.
— Milton Freeman
Dal 2000 al 2007 #
Nel 2000 si verificò la fusione di X.com di Elon Musk e Coinfinity di Peter Thiel, che diede origine a PayPal. Come sempre arrivò il regolatore vietando categoricamente di sviluppare l’ideale PayPal, perchè non ci deve essere concorrenza con il dollaro degli Stati Uniti. Dopo qualche visita da parte di esponenti di banche centrali e del governo federale, PayPal abbandonò il suo ideale di moneta di internet
, ma divenne una rete di pagamento per le valute tradizionali (al di sopra delle banche autorizzate, con tutto ciò che ne consegue: burocrazia, censura, inflazione.
Nel 2001 abbiamo tre eventi importanti:
- Bram Cohen creò BitTorrent, protocollo peer-to-peer con alla base un software open-source, impossibile da fermare per la sua natura decentralizzato. Nel 2001 esisteva già Napster per scambiare musica, film e in generale file digitali ma funzionava in modo centralizzato.
Con BitTorrent la lotta alla musica pirata divenne praticamente persa.
-
Dopo il crollo delle Torri Gemelle del 11 settembre nacque la più severa regolamentazione finanziaria della storia dell’uomo (con il pretesto del terrorismo) con molte sanzioni e sorveglianze preventive. Fu deciso che i politici e i burocrati del governo federale dovessero conoscere ogni movimento e ragione di movimento di fondi di ogni essere umano, all’interno e all’esterno della giurisdizione americana. Si introdussero ovunque le regolamentazioni KYC e AML.
-
In uno scambio di email tra il sedicenne Peter Todd e il famoso Adam Back, quest’ultimo spiegò che, come già ipotizzato da Wei Dai e Nick Szabo, HashCash avrebbe potuto essere utilizzato non solo come antispam, ma come base per un sistema monetario di cash digitale. Tuttavia, Peter Todd fece notare ad Adam un problema: il modo in cui funziona il potere computazionale è tale che, se questa prova di lavoro fosse trasferibile tra soggetti, sarebbe
iperinflattiva
e la motivazione è che c la prova di lavoro si dimostra di aver sostenuto un costo computazionale (di tempo macchina e di energia) e l’idea cardine è quella di renderetrasferibile
questa prova di lavoro, per dimostrare che qualcun altro ha speso tempo e macchina e io sto solo riutilizzando il suo costo computazionale già sostenuto, ma:- Una prova di lavoro svolta nel 2001 sarebbe molto diversa da una prova di lavoro svolta nel 2022, poiché la potenza delle macchine è esponenzialmente maggiore e renderebbe ridicola la prova di lavoro del 2001;
- Se ci fosse tanta domanda per questa “moneta digitale”, il prezzo salirebbe, la profittabilità salirebbe e molte persone farebbero la prova di lavoro, creando più offerta. Con più offerta, il prezzo calerebbe e nascerebbero cicli economici molto negativi, simili a quelli del sistema fiat.
Nel 2003 il videogioco Second Life divenne molto famoso grazie ad una meccanica per la quale si potevano acquistare all’interno del gioco beni, servizi e terreni (coff coff, metaverso? 😃) con una moneta chiamata Lindel Dollar, scambiabile sia nel gioco che fuori dal gioco. L’economia del gioco era così fiorente –e con politiche monetarie meno stupide di quelle della Federal Reserve– che il valore del singolo Linden Dollar superò brutalmente quello del dollaro degli Stati Uniti.
Come sempre e ormai senza stupirci, arriva il regolatore che vieta lo scambio del Linden Dollar contro il dollaro americano e costringe gli sviluppatori di Second Life ad eseguire il peg 1:1 del Linden Dollar contro il dollaro. Il Linden Dollar divenne quindi irrilevante.
Passa un altro anno, siamo nel 2004 e un chyperpunk chiamato Hal Finney (creatore di PGP 2.0) crea la Reusable Proofs of Work (RPOW) rendendo finalmente trasferibile la prova di lavoro di HashCash.
Restava sempre il problema della doppia spesa. Semplificando in modo quasi errato, affermava che bisognava fidarsi del chip (ad esempio, Intel) che era all’interno del computer, che avrebbe firmato la data della transazione in modo preciso e tale da evitare la doppia spesa. Era un sistema fiduciario di una terza parte hardware (il chip Intel) che, in teoria, non avrebbe dovuto essere collusa con i partecipanti ma non ha molto successo come soluzione. Siamo al culmine perchè nel 2005 Nick Szabo ripubblica bitgold (ideato nel 1998) e suppone di risolvere il problema della doppia spesa non solo generando la valuta ma anche votando sulla cronologia delle transazioni; il concetto era simile alla proof-of-stake di Wei Dai, ma invece di pesare i voti sulla moneta messa in stake, pensava di farlo sulla base della proof-of-work stessa. Szabo cercò sviluppatori, ma poi nel 2006 rimosse la sua pubblicazione. Siamo vicinissimi all’idea di Bitcoin, quasi ad un soffio.
Anno zero: 2008 #
Due eventi fondamentali accaddero:
- Il brevetto sulla firma Schnorr scadde (anche se Satoshi non l’avrebbe utilizzata);
- Scattò l’ennesima crisi economica creata dalla moneta fiat, ovvero la crisi dei Subprime Mortgage, orchestrata da varie entità governative che avevano il compito di gonfiare un mercato di mutui che non potevano mai essere ripagati, basato sulla manipolazione dei tassi di interesse abbassati artificialmente dalla Federal Reserve.
Il 31 ottobre 2008 arriva l’immacolata concezione: Satoshi Nakamoto pubblicò il paper di bitcoin. Sipario.
Satoshi Nakamoto #
Nome, dominio e hosting #
La prima traccia documentata di Satoshi Nakamoto risale al 2008, anche se in vari post pubblici questo utente anonimo (o gruppo di utenti) commentò casualmente in giro per Internet dicendo di aver iniziato a lavorare ad un progetto chiamato Bitcoin già nel 2007. Nel 2007, da qualche parte nel mondo, qualcuno stava già lavorando su Bitcoin.
Tuttavia, la vera storia documentabile inizia il 18 agosto 2008, quando viene registrato il sito bitcoin.org
(che ora non esiste più) utilizzando il servizio di internet anonymousspeech
, che consentiva di pagare per registrare domini in modo anonimo.
All’epoca anonymousspeech accettava pagamenti in contanti spediti fisicamente alla loro sede oppure tramite pagamenti e-gold
. Per mera questione di continuità tra le sperimentazioni fatte fino al 2008, molti scommettono abbia utilizzato proprio quest’ultimo per acquistare il dominio
Un fatto interessante è che anche se non conosciamo l’identità legale di Satoshi, anonymousspeech assegnava un ID ad ogni cliente e quindi si seppe che lo stesso Satoshi aveva acquistato un altro dominio, questa volta chiamano netcoin.org
, possiamo dire che era indeciso sul nome da dare alla sua creatura.
L’informazione sull’hosting è sempre nelle mani di anonymousspeech (ormai chiuso) ma molto realisticamente Satoshi avrà utilizzato un servizio simile anche per pagarsi l’hosting; probilmente fare un self-hosting sarebbe stato troppo pericoloso e per mentenere l’anonimato assoluto ha preferito anche acquistare un hosting.
Whitepaper #
Il 31 ottobre viene pubblicato il whitepaper di Satoshi Nakamoto, che presenta per la prima volta in modo pratico e tecnico come funziona bitcoin. Satoshi scrive su una mailing list chiamata cryptography
(successore spirituale della mailing list “cypherpunk”, chiusa da diversi anni) dicendo:
Ho lavorato ad un nuovo sistema di contante elettronico completamente peer-to-peer, senza una terza parte fidata. Il paper è hostato su bitcoin.org/bitcoin.pdf"
— Satoshi Nakamoto
Le proprietà principali che descrive sulla mailinglist sono:
- La doppia spesa viene prevenuta grazie a una rete peer-to-peer;
- Non c’è una zecca centrale o altra parte fidata;
- I partecipanti possono essere anonimi;
- I nuovi coin sono creati attraverso una prova di lavoro in stile HashCash;
- La prova di lavoro utilizzata per la creazione delle monete serve anche al network per evitare la doppia spesa.
Analizziamo l’abstract del paper:
Abstract
. Una versione puramente peer-to-peer di contante elettronico consentirebbe di inviare pagamenti online direttamente da una parte a un’altra senza passare per una terza parte finanziaria. Le firme digitali forniscono una parte della soluzione, ma i vantaggi principali si perdono se è necessaria una terza parte fidata per evitare la doppia spesa.
Proponiamo una soluzione al problema della doppia spesa utilizzando una rete peer-to-peer. La rete marca il tempo delle transazioni, inserendole in una catena continua di prove di lavoro basate su hash, formando un record che non può essere modificato senza rifare tutte prove di lavoro. La catena più lunga non serve solo come prova della sequenza di eventi di cui si è testimoni, ma anche come prova che provengono dalla più grande pool di CPU. Finché la maggior parte della potenza della CPU è controllata da nodi che non collaborano per attaccare la rete, essi genereranno la catena più lunga e superano gli attaccanti. La rete richiede una struttura minima. I messaggi sono trasmessi in best effort e i nodi possono lasciare e unirsi alla rete a piacimento, accettando la catena di lavoro più lunga come prova di ciò che è accaduto durante la loro assenza.
Il whitepaper di Satoshi Nakamoto non tratta temi come inflazione, banche centrali o oro digitale. È completamente neutrale e privo di connotazioni politiche, con una narrativa puramente commerciale. Tuttavia, in altri post su internet Satoshi ha espresso le sue radici crypto-anarchiche. Un altro elemento interessante è che nel paper Satoshi si concentra principalmente sulla soluzione del problema del double spending
, dando per scontate le parti tecnologiche necessarie che vengono date per assunte come:
..digital signatures provide part of the solution..
— Satoshi Nakamoto
Satoshi non spiega in questa pubblicazione concetti importanti come il linguaggio di smart contract di bitcoin, lo script
, non tratta il limite dei 21 milioni di bitcoin e non è menzionato neanche l’halving.
Le prime risposte alla mail di Satoshi sono molto scettiche, del tipo: “bello ma non può funzionare, questa roba non scala abbastanza”.
Timechain ed errori #
Il termine blockchain
non è stato utilizzato da Satoshi Nakamoto nel suo whitepaper. Invece, ha utilizzato i termini chain of blocks
, chains of proofs of works
e chain of hash-based proof-of-works
per descrivere ciò di cui stava parlando. Nel codice, ha spesso utilizzato il termine timechain
per indicare la sequenza di blocchi. La scelta di questo nome è stata fatta semplicemente per stabilire l’ordine cronologico dei blocchi. Tuttavia, alcuni, come Peter Todd, hanno sollevato obiezioni all’utilizzo di timechain relativamente all’uso improprio che Satoshi fa del termine timestamp
che letteralmente significa “bollo che garantisce che una certa informazione esiste” in un certo tempo, come fosse una prova di esistenza. A Bitcoin non serva una prova di esistenza, ma una prova di unicità o meglio di esistenza di non alternative.
-
Satoshi ha impropriamente utilizzato il termine
timestamp
perché Bitcoin non ha bisogno di un timbro che garantisca l’esistenza di una determinata informazione, ma di una prova di unicità. Ad esempio, se firmo due transazioni, una in cui affermo che domani pioverà e una in cui affermo che domani farà bel tempo, e poi rivelo la prima transazione se domani piove e la seconda se domani fa bel tempo, sto violando l’unicità delle transazioni, sto facendo un double spending. Peter Todd ha correttamente osservato che il termine più appropriato da utilizzare sarebbe statosingle-use-seals
invece di timestamp. Giacomo Zucco ha suggerito che la prova di unicità dovrebbe essere chiamatatimesealing
. Possiamo tuttavia perdonare questo errore a Satoshi, poiché nel 2008 la letteratura sulle prove temporali crittografiche non era ancora ben sviluppata; -
Satoshi cita spesso il termine CPU nel suo paper. Oggi, tuttavia, è impossibile fare mining utilizzando una CPU, poiché è troppo poco specializzata. Le CPU possono fare qualsiasi cosa (emulare qualsiasi macchina di Turing), ma le GPU sono più efficienti perché possono fare solo alcune cose, come i videogiochi o le simulazioni 3D. Successivamente, si è passati dalle GPU alle FPGA (schede programmabili stampate genericamente e programmate) fino alle ASIC, che sono progettate esclusivamente per il mining di bitcoin. Tuttavia, questo non è un grave errore da parte di Satoshi, poiché non poteva prevedere l’evoluzione tecnologica degli ultimi 14 anni.
-
Satoshi parla spesso della catena più lunga nel suo paper, ma è un errore poichè se così basterebbe prendere il blocco genesi, utilizzare una nostra ASIC per iniziare a minare tutti i blocchi ogni 10 minuti senza mai triggerare il difficulty adjustment. Il risultato sarebbe che, poiché la difficoltà è bassa, potremmo creare una catena molto più lunga dell’originale e presentarla come tale. La soluzione a questo problema (che è anche un errore nel codice sorgente di Satoshi) è quella di verificare la
catena più pesante
, ovvero quella con la maggiore quantità di lavoro cumulativo, che viene ottenuta moltiplicando la lunghezza della catena per il coefficiente di difficoltà di ogni blocco. -
Satoshi utilizza il termine
nodo
in modo generico nel suo paper, descrivendo nodi che fanno mining, gestiscono wallet, gestiscono il consenso e gestiscono la connessione peer-to-peer. Nel tempo, i nodi si sono specializzati: ad esempio, i nodi che fanno mining non sono più software generici che fanno la validazione, ma sono software appositamente progettati per questo scopo. I nodi sul nostro computer non fanno più l’hashing, ma si occupano solo della validazione delle transazioni, mentre i wallet sul nostro cellulare non fanno più la validazione, ma si occupano solo della generazione di chiavi e transazioni. Inoltre, i dispositivi di firma (come gli hardware wallet) non si occupano neanche della composizione delle transazioni, della selezione della fee o della selezione della coin, ma fanno solo la firma delle transazioni. -
Riguardo gli SPV (Simplified Payment Verification), Satoshi credeva che non fosse necessario che tutti scaricassero tutti i blocchi, ma che fosse sufficiente scaricare solo l’header (che contiene il merkle root della transazione). In questo modo, bastava fidarsi che, se una transazione esisteva all’interno del merkle root, significava che era valida e potevamo assumerlo per vero, fidandoci dei miner. Tuttavia, se qualcuno avesse trovato una transazione non valida, avrebbe segnalato l’errore e tutti avrebbero scaricato il blocco intero. Il problema è che basta un nodo malintenzionato che inizia a segnalare tutti i blocchi come falsi per far sì che ogni light client debba iniziare a scaricare tutto e diventare un full node.
-
Con la blockchain tutte le transazioni sono pubbliche, ma il modello di privacy è nuovo: tutti possono vedere le transazioni, ma le identità fisiche collegate alle transazioni sono nascoste. Diventa importante nascondere il rapporto tra le chiavi pubbliche e l’identità di un individuo. Come ulteriore misura di sicurezza, si consiglia di utilizzare un nuovo set di chiavi pubbliche e private per ogni transazione. Si consiglia inoltre di non riutilizzare gli indirizzi. Satoshi dice: “un po’ di collegamento è comunque inevitabile quando c’è una transazione con molti input, poiché indica che chi sta eseguendo la transazione è il proprietario di tutti gli indirizzi nella transazione”. In realtà, questo è falso, poiché diverse persone possono mettere insieme diversi input. Esamineremo meglio il concetto di “CoinJoin” in seguito.
-
Nel whitepaper non viene descritto il bitcoin come lo conosciamo oggi: non vi è menzione del limite di 21 milioni, dell’halving, dell’UTXO set, degli script per gli smart contract o dell’aggiustamento automatico della difficoltà. Bitcoin 0.1 non discende dal whitepaper; il whitepaper nasce per risolvere il problema principale, ovvero il double spending.
Blocco genesi e Patoshi #
Un gruppo di crittografi ha rivelato che nel novembre 2008 Satoshi li contattò per passargli un dump di codice per una review privata, molto simile al codice pubblico che è stato rilasciato a gennaio 2009.
Due cose interessanti sul codice privato:
- Implementa un sistema di poker peer to peer nel codice (rimosso successivamente per mantere il focus su bitcoin);
- Implementa un sistema di mercato decentralizzato con un complesso sistema di reputazione di commercianti (rimosso successivamente per mantere il focus su bitcoin).
Il 3 gennaio 2009 il primo blocco Bitcoin viene minato: il codice sorgente è stato rilasciato su Sourceforge il 9 gennaio, ma stava già girando tra varie figure a partire da novembre 2008; il blocco genesi, quindi lo start ufficiale è datato 3 gennaio 2009 e in questo primo blocco, Satoshi scrive:
The Times 03/Jan/ 2009 Chancellor on Brink of Second Bailout for Banks
— Satoshi Nakamoto
Fatti interessanti sull’immagine del The Times:
- Una pubblicità di Gordon Ramsey in cui invita le persone a mangiare fuori per solo 5 sterline (incredibile come in 14 anni l’inflazione fiat sia esplosa)
- Una birra in basso, acquistabile per 1 sterlina;
- Israele che invia truppe a Gaza. Guerra eterna nel Medio Oriente, collegamenti con il petrodollaro? Forse questo effettivamente potrebbe cadere nel complottismo.
Qual è lo scopo di tutto questo da parte di Satoshi? Sicuramente un interesse per il tema monetario e per le crisi economiche, un altro è la prova che lui e altri hanno iniziato a mianre il 3 gennaio; il primo blocco non è stato creato settimane prima e poi il codice è stato rilasciato: il blocco genesi è stato creato esattamente il 3 gennaio 2009. Una dimostrazione che ne lui ne nessun’altro ha eseguito una proof-of-work nascosta per un qualche tipo di vantaggio. Come se non bastasse, i bitcoin che Satoshi si assegna dopo aver estratto il primo blocco non sono stati spesi perchè..non erano spendibili! Tutti questi elementi denotano una profonda trasparenza verso Satoshi.
Si dice che Satoshi abbia estratto per sé 1.3 milioni di bitcoin: non c’è alcuna prova reale e questa affermazione è del tutto gratuita e improbabile. L’origine di questa leggenda risale al ricercatore Sergio Lerner nel 2013, che ha esaminato i primi blocchi e ha osservato come gestissero il nonce
. Ogni blocco in Bitcoin ha un header che contiene diversi campi: data, hash del blocco precedente, difficoltà, merkle root di tutte le transazioni e il nonce: un numero casuale che il miner deve inserire e continuare a modificare finché l’hash non corrisponde alla difficoltà attuale.
Sergio esamina tutti i blocchi e nota che alcuni blocchi consecutivi non hanno il nonce che riparte da 0, ma che continuano rispetto al nonce del blocco validato in precedenza rispetto a quello in esame. Sergio ritiene quindi credibile che una sola entità per tutto il 2009 abbia estratto così tanti blocchi da aver ottenuto circa 1.3 milioni di bitcoin. Tale entità rileva un pattern e quindi Sergio lo ha chiamato Patoshi
.
Le principali obiezioni non sono al fatto che Patoshi esista (molto probabile), ma che Patoshi sia di fatto Satoshi. Analizziamo le contro prove:
- Satoshi si è speso moltissimo per dimostrare la fairness del blocco genesi tramite la pagina di giornale del New York Times dimostrando chiaramente di non aver fatto prova di lavoro “da solo”;
- Quando il sorgente non era molto diffuso (prima di essere postato su SourceForge) Satoshi non ha minato nulla;
- Quando Satoshi manda personalmente dei bitcoin ad Hal Finney da una sua coinbase, li estrae da un blocco che non appartiene al pattern di Patoshi.
Ultimo post, fork e addio #
Il 11 febbraio, Satoshi crea un profilo sul forum della P2P Foundation con la data di nascita il giorno della confisca dell’oro da parte di Roosevelt e l’anno di nascita quello della fine del gold standard da parte di Nixon.
Nel suo primo post, spiega di aver sviluppato questo sistema di ecash peer-to-peer completamente decentralizzato e inserisce il link a bitcoin.org aggiungendo:
Il principale problema della valuta convenzionale è tutta la fiducia richiesta per funzionare, la banca centrale deve essere affidabile nel non fare inflazione, ma la storia delle valute fiat è piena di tradimenti a questa fiducia sul non inflazionare.
— Satoshi Nakamoto
Il tono di Satoshi inizia ad essere puù politico rispetto al whitepaper.
Il 29 ottobre, Satoshi fu convinto da alcuni sviluppatori a trasferire il codice di Bitcoin da SourceForge a GitHub, un sistema più adatto ai sistemi operativi Linux. Gavin Andresen fu il responsabile della migrazione e presto altri sviluppatori importanti si unirono a loro su GitHub. Il 22 novembre, il forum di Bitcoin si trasferì su un nuovo forum chiamato BitcoinTalk, gestito dagli utenti theymos
e cobra
.
Tra gli sviluppatori che intervennero in questo periodo c’era Mike Hearn, uno sviluppatore di Google che iniziò a discutere proponendo la normalizzazione assoluta
di Bitcoin come termine di protezione rispetto alla minaccia di chiusura da parte di poteri centrali statali. Anche Gavin Andresen diventa un forte sostenitore di questa politica.
Satoshi nel frattempo esegue delle modifiche sul sorgente:
- Il 28 luglio 2010 esegue un soft fork per colpa di un baco nell’
OP_RETURN
(non sfruttato da nessuno) che avrebbe permesso a chiunque di spendere qualunque bitcoin. L’OP_RETURN è un operazione che consente di inserire un messaggio di dati per un massimo di circa 100 byte di dati in una transazione; - Il 31 luglio 2010 esegue un altro soft work: alcuni utenti avevano dei problemi negli upgrade, Satoshi toglie due
OP_CODE
e poi esegue un hard fork introducendo gliOP_NOP
che di base non fanno nulla ma che con un soft fork futuro avrebbero potuto essere utilizzati per fare qualcos’altro - Un altro successivo hard fork viene eseguito per separare la valutazione dello
scriptSig
dascriptPubKey
che sono due componenti chiave del sistema di trasferimento di valore in Bitcoin. Lo ScriptSig è una stringa di codice presente all’interno di una transazione Bitcoin che contiene le firme digitali dei partecipanti alla transazione e altre informazioni necessarie per verificare l’autenticità della transazione. Lo ScriptPubKey invece è una stringa di codice presente all’interno di un output di transazione che specifica le condizioni che devono essere soddisfatte per spendere il denaro contenuto in quell’output. Insieme, ScriptSig e ScriptPubKey formano il meccanismo di spesa di Bitcoin, che garantisce che solo i legittimi proprietari di Bitcoin possano trasferire fondi a altri indirizzi. Il bug trovato da Satoshi permetteva a tutti di spendere bitcoin anche se non si era il proprietario di quei fondi; - Il 15 agosto viene scoperto un bug di tipo
value-overflow
. È molto pericoloso perchè inserendo un valore più alto di quello che la varaibile può contenere causa la comparsa di un altro numero imprevedibile. Questo bug viene sfruttato per 51 blocchi e vengono generati 184.5 miliardi di bitcoin. Satoshi se ne accorge, riavvia la catena di 51 blocchi (fa il Buterin della situazione) facendo il rollback della catena. Non è una giustificazione ma questa cosa avviene solo dopo pochi mesi al lancio di bitcoin ed è del tutto giustificabile; - Il 7 settembre avviene un altro fork che aggiunge il limite di operazioni sulla firma a 20 mila, altrimenti sarebbe stato possiible creare una transazione che bloccava un nodo perchè chiedeva di verificare un numero spropositato di firme;
- Il 12 settembre Satoshi esegue un altro soft fork agguingendo al blocco un limite sulla blocksize di 1 megabyte;
Dopo il 12 settembre la storia degli upgrade di Satoshi si ferma ma succedono due fatti importanti:
- L'11 dicembre 2010 arriva il penultimo messaggio pubblico di Satoshi: qualcuno riporta su un giornale (Business Insider) un articolo nel quale WikiLeaks apre alla possibilità di adottare Bitcoin per ricevere finanziamenti, visto il blocco imposto da Visa e Mastercard. Satoshi risponde chiedendo ufficialmente a WikiLeaks di non fare questa mossa:
WikiLeaks has kicked the hornet’s nest, and the swarm is headed towards us. […] I make this appeal to WikiLeaks not to try to use Bitcoin. Bitcoin is a small beta community in its infancy. You would not stand to get more than pocket change, and the heat you would bring would likely destroy us at this stage.
— Satoshi Nakamoto
Satoshi afferma che “per ora” Bitcoin è troppo piccolo per una battaglia diretta con lo stato americano.
- Il 12 dicembre 2010 alle 18:22:33 Satoshi ci regala il suo ultimo post in cui dice che: “c’è tanto lavoro da fare”. In una email del 23 aprile 2011 (per la quale non esiste una prova crittografica a riguardo) Satoshi scrive a Mike Hearn di voler nominare Gavin Andresen come suo successore spirituale.
La pubertà del protocollo #
L’adozione #
Nel 2011, Bitcoin è diventato popolare con l’adozione da parte della Electronic Frontier Foundation, una fondazione che si occupa di promuovere le libertà civili su Internet. Tuttavia, nel giugno dello stesso anno, hanno smesso di accettare Bitcoin a causa del timore di ripercussioni legali per aver ricevuto donazioni in criptovaluta. Nel febbraio del 2011, Ross Ulbricht appassionato di scuola austriaca e libero mercato ha fonda con lo pseudonimo di Dread Pirate Roberts
The Silk Road, un sito di e-commerce che vendeva beni e servizi sulla rete TOR. The Silk Road aveva alcune restrizioni etiche, ma non morali, religiose o politiche, ad esempio non erano ammessi prodotti rubati o carte di credito rubate, ma erano permessi libri o sostanze psicotrope.
The Silk Road accetta solo Bitcoin, nasce il primo vero caso d’uso.
Prima shitcoin e BIP #
Il 17 Aprile 2011 nasce la prima scamcoin chiamata namecoin
che rispetto a quelle del 2022 è anche abbastanza onesta, quindi non è una vera shitcoin:
- Non c’è una ICO;
- Non ci sono reparti marketing;
- Non ci sono menzogne nel modo in cui viene descritta;
- Non ci sono cavolate super tecniche.
Lo scopo principale di Namecoin era quello di offrire un’alternativa decentralizzata al sistema di risoluzione dei nomi di dominio (DNS) attualmente utilizzato su Internet, che è gestito da enti centralizzati come l’ICANN (Internet Corporation for Assigned Names and Numbers). Mirava a fornire un sistema di risoluzione dei nomi resistente a censure e a manomissioni da parte di governi o di altri attori centralizzati, rendendo più difficile per gli utenti di Internet essere esclusi o limitati nell’accesso a determinati siti web o servizi online. Offriva inoltre un sistema di certificazione dei nomi di dominio, che consente agli utenti di dimostrare la proprietà di un nome di dominio in modo decentralizzato e senza la necessità di ricorrere a terze parti centralizzate. Tutto questo con una nuova terminazione nel browser: .bit
. Visti i problemi di scalabilità sulla timechain di Bitcoin è sembrato logico ingolfarla ulteriormente, quindi ulteriore fu creare un’altra chain da zero che invece di reinventare il mining, viene eseguito il merge mining
.
La tecnica del merge mining permette di incorporare l’hash del blocco della chain secondaria (namecoin, in questo caso) nella coinbase del blocco della chain principale (Bitcoin) che viene minato.L’hash incorporato è preceduto da un breve testo descrittivo chiamato “tag” che consente alla chain secondaria di individuarlo facilmente. Essendo una catena separata c’era però un problema, che dai poi vita alla scamcoin:
La seconda shitcoin più famosa è litecoin
, tutt’altra bestia rispetto a namecoin subito e demolita dagli sviluppatori Bitcoin.
I creatori di litecoin affermarono una serie di assunti completamente insensati:
Affermazione
: Bitcoin è stupido perchè vengono creati i blocchi ogni 10 minuti, noi faremo blocchi veloci circa 2 secondi.
Risposta degli sviluppatori Bitcoin
: Satoshi non ha impostato i 10 minuti casualmente, ma perchè a parità di hashrate se hai un blocco dopo 1 minuto non vale quanto uno fatto ogni 10 minuti ma vale logaritmicamente meno di 1/10. Non c’è più sicurezza se i blocchi arrivano prima. In secondo luogo con una granularità maggiore hai più possibilità di orphan rate: se i blocchi vengono trovati più frequentemente, molto più spesso due blocchi saranno trovati nello stesso momento e dunque ci saranno molte catene parallele nella quale una delle due perde e una vince; questo comporta che la profittabilità dei miner diventa molto più bassa incentivando molto di più i miner grandi rispetto ai piccoli perchè aumenta la varianza.Affermazione
: avremo fees più basse rispetto a Bitcoin;
Risposta
: di questa narrativa ne parliamo nel prossimo paragrafo che riguarderà interamente la blocksize war.Affermazione
: non va bene che Bitcoin sia minato con le GPU, non utilizzeremo sha256 e creeremo un algoritmo chiamato script resistente alle GPU;
Risposta degli sviluppatori Bitcoin
: non c’è nessuna resistenza, script è comunque un algoritmo e si troverà un modo per renderlo fattibile e scalabile per le GPU, anche se più lentamente. Aumentando la complessità si crea una barriera di ingresso tale per cui il primo che troverà il modo di farlo con la GPU avrà un vantaggio competitivo sugli altri.
litecoin presenta alcuni problemi evidenti: in primo luogo, il suo creatore ha effettuato un pre-mining prima di rendere pubblica la criptovaluta, cosa che non è accaduta con Bitcoin e che rappresenta un chiaro segno di disonestà alla base del progetto. Inoltre, litecoin viene spesso definito “l’argento di Bitcoin”, ovvero una valuta meno pregiata rispetto all’oro. Tuttavia, questa affermazione non ha molto senso, poiché entrambe le valute sono asset digitali e quindi già divisibili per loro natura. A differenza dell’oro, che è facilmente trasportabile ma poco divisibile, o dell’argento, che è meno trasportabile ma molto ben divisibile, gli asset digitali possono sempre essere divisi e sono facilmente trasportabili.
Il 19 settembre, uno sviluppatore dallo spirito chyperpunk chiamato Amir Taaki, ebbe un’idea brillante: creare il processo BIP (Bitcoin Improvement Proposal)
. Questo sistema consentiva (e consente tutt’ora) a chiunque abbia una proposta su Bitcoin di seguire un percorso strutturato per presentarla. In particolare, la proposta viene discussa in una fase di raccolta di feedback, poi strutturata con un abstract, un preambolo, specifiche dettagliate, motivazioni, compatibilità con gli altri sistemi e una implementazione di riferimento. Una volta che la proposta è stata formalizzata, viene presentata a un gruppo di persone che mantengono la repository di Bitcoin senza entrare nel merito della questione. Queste figure non decidono se la proposta è valida o meno, ma semplicemente assegnano un numero a ogni BIP presentato.
Benevolent dictator #
La BIP 30 – Duplicate transactions è stata creata per risolvere il problema delle collisioni di transazione, ovvero il fenomeno per cui due transazioni possono avere lo stesso transaction ID. Questa BIP non nulla di malvagio o strano ma Gavin Andresen, che dice di essere l’erede di Satoshi si autoproclama capo di Bitcoin decidendo che in una certa (15 marzo 2012) si sarebbe attivato il soft fork per questa BIP
La comunità mormoa, chi ha stabilito che adesso Gavin è il nuovo capo?
Nel gennaio 2012 Gavin propone la BIP 16 – Pay to Script Hash che consente di inviare transazioni ad un hash di script (indirizzo che inizia con 3) anziché a un hash di chiave pubblica (indirizzi che iniziano con 1). La differenza è che se voglio pagare con uno smart contract a due o più chiavi pubbliche, non posso pagare un indirizzo ma devo pagare un contratto che ha dentro diverse chiavi pubbliche. Inizia a girare l’idea che sarebbe molto più intelligente permettere anche di pagare all’hash di uno smart contract. È complesso ma il concetto è che anzichè pagare e nell’output scrivere: “pago a questa chiave, oppure a questa chiave, oppure a quest’altra” io scriva tutte queste condizioni, eseguo l’hash completo e nella timechain scriverò: questi soldi sono pagati all’hash di questo smart contract; quando spenderò i soldi, solo in quel momento rivelerò lo smart contract che voglio risolvere con le firme sufficienti per farlo. È una soluzione efficiente sia in privacy perchè gli smart contract sono più privati finchè non sono spesi e anche di scalabilità perchè vengono inseriti in timechain solo quando vengono spesi e non quando vengono creati.
Inizia però un forte litigio perchè Luke Dashjr analizzando il BIP 16, ritiene che sia fatto molto male e propone il BIP 17 – OP_CHECKHASHVERIFY (CHV). Luke si intestardisce perchè Gavin vuole compiere un cambiamento radicale nel modo in cui viene validata la transazione, che presuppone:
- Il fatto che l’hash venga controllato prima dello script;
- Il fatto che viene modificato completamente il modo in cui è rappresentato;
- Vengono modificati i limit di sigops;
- Il nuovo operatore OP_EVAL è pericoloso perchè permette di creare loop ricorsivi.
Luke sentenzia che è inutile fare l’hash dello script, sarebbe molto meglio fare il merkle tree dello script così poi è possibile rivelare solo alcuni pezzi dello script. Gavin non è d’accordo e decide di mettere una flag date per l'1 febbraio 2012.
Come effetto collaterale gli sviluppatori si dividono in fazione e come prima cosa costringono Gavin a rimuovere l’OP_EVAL
perchè crea dei problemi di attacchi pesanti stile Ethereum. Gli viene inoltre richiesto l’inserimento di un meccanismo di attivazione a treshold, con una segnalazione da parte miner. Se almeno il 55% dei miner avessero dato l’OK nei loro blocchi ci sarebbe stato consenso.
Non solo i miner, tutti gli utenti devono raggiungere il consenso e infatti questa flag date fallisce miseramente e con un post su bitcointalk il 27 febbraio Gavin annuncia che:
Anche se non siamo arrivati al 55% decido che BIP 16 sarà sarà attivata comunque dal 1 aprile 2012 (e non è un pesce d’aprile).
— Gavin Andresen
Nel blocco 170060 viene minata una transazione che viene invalidata perchè non faceva enforcement su PS2H. Si stima che fino a dicembre 2012 un 45% dei miner ha continuato a farsi orfanare i blocchi perchè non era assolutamente d’accordo con P2SH.
Nel settembre del 2012 è stata creata la Bitcoin Foundation, basata a Washington DC e ispirata alla struttura gerarchica della Linux Foundation di Linus Torvalds. Secondo il consiglio di Mike Hearn, l’idea era quella di dare una struttura più organizzata a Bitcoin, scegliendo un benevolent dictator
come Gavin, che era stato designato da Satoshi stesso tramite un’e-mail non verificabile inviata a Mike Hearn. La Bitcoin Foundation acquisisce prestigio anche a livello mediatico, diventando il punto di riferimento ufficiale per i giornalisti che volevano parlare con i “leader di Bitcoin”. Tuttavia, questo ha anche creato una delle prime grandi battaglie all’interno della comunità di Bitcoin, con alcuni che cercavano di presentare la Bitcoin Foundation come un’istituzione rassicurante e che evitasse di parlare di evasione fiscale, riclaggio, etc. mentre altri erano più interessati a spiegare la realtà così com’è. A spiegare quello che Bitcoin rappresentava per davvero.
Pre blocksize war #
Il 11 marzo del 2013 c’è stato un grave problema durante l’upgrade del protocollo di Bitcoin, che ha visto la sostituzione del database Berkeley DB con LevelDB. La questione era che Satoshi Nakamoto aveva impostato una dimensione massima del blocco di 1 mb, un limite accettato dalla comunità a partire dal settembre 2010. Tuttavia, c’era un limite implicito, non dichiarato, più piccolo di 1 mb all’interno di Berkeley DB. Di conseguenza, anche se i blocchi di 1 mb erano validi a livello di consenso, non lo erano a livello di database e venivano quindi rifiutati. Con l’adozione di LevelDB, alcuni nodi hanno iniziato ad accettare blocchi di 0,9/1 mb, causando uno split della chain. In questo caos generale, è stato effettuato con successo un attacco di double spending involontario: una transazione che era presente nella vecchia catena è finita per caso sulla nuova, e il merchant che aveva ricevuto circa 9000$ li ha visti scomparire sotto il suo naso una volta che la chain si è riorganizzata. Tutto è stato causato da un problema di consenso dovuto al cambio di tecnologia a livello di database.
Il 14 giugno del 2013, Wikileaks torna ad accettare Bitcoin ma le brutte notizie non tardano ad arrivare perchè il 2 ottobre il creatore di the Silk Road dopo una caccia all’uomo durata mesi venne arrestato e condannato a due ergastoli senza la possibilità di condizionale per aver creato l’e-commerce.
Nell’ambito delle indagini, è stato scoperto che un agente dell’FBI che aveva partecipato all’arresto di Ross aveva rubato gran parte dei suoi Bitcoin. Inoltre, quando Ross è stato arrestato, si trovava in una biblioteca pubblica e stava accedendo al pannello di controllo del sito come amministratore. Mentre era concentrato sullo schermo, alcuni agenti hanno inscenato una rissa alle sue spalle, attirando la sua attenzione. Nel frattempo, altri agenti lo hanno ammanettato. Tutti i Bitcoin presenti sul sito sono stati confiscati, ma una parte di essi è sparita a causa della corruzione di due agenti, uno dei quali è stato successivamente arrestato.
Purtroppo i bitcoin erano gestiti da un “hot wallet” ed erano ritirabili dall’interfaccia del sito stesso.
Nel 2014, nasce il Bitcoin Meetup a Milano, diventando presto il più grande e influente in Europa. Tuttavia, poco dopo, arriva un’altra batosta perchè nel febbraio di quello stesso anno, l’exchange MtGox sospende i prelievi e dichiara fallimento a causa di un attacco informatico. La chiusura di MtGox ha dato origine alle prime aziende di chain-analisys e, in Cina, ha portato il ban di Bitcoin e al divieto assoluto di accettare bitcoin da parte di Baidoo.
Nel 2015, Giacomo Zucco fonda BlockchainLAB a Milano con l’obiettivo di riunire i migliori esperti di bitcoin al mondo in un unico ufficio. Gli sviluppatori erano liberi di lavorare e fare ciò che volevano, a patto di condividere le loro conoscenze e creare report che BlockchainLAB avrebbe poi venduto a banche e istituzioni. Questo avveniva nell’ufficio di via Copernico a Milano, dove accadranno eventi futuri molti importanti.
Blocksize war #
Premesse e direzioni #
La blocksize war ha avuto inizio ufficialmente nel 2015, ma per comprenderla a pieno bisogna fare un breve excursus:
- Il 15 luglio 2010 Satoshi introduce il limite alla dimensione del blocco di 1 mb, che viene attivata nel settembre 2010. Il 4 ottobre 2010, lo sviluppatore Jeff Garzik rilascia un nuovo client con una patch che rimuoveva il limite di dimensione del blocco introdotto da Satoshi. A questo punto, Theymos, proprietario di Bitcointalk e di r/reddit, risponde dicendo di non utilizzare la versione patchata di Garzik perché altrimenti chi l’avrebbe usata sarebbe stato tagliato fuori dalla rete. Satoshi risponde con “+1 Theymos” e Garzik dal cnto suo dice a Satoshi che la questione non era tanto il fatto essere forkati o meno, ma era più una questione di marketing: se un giorno ci fossero stati i livelli transazionali di Visa questo limite del blocco avrebbe limitato la quantità di transazioni. A quel punto, Satoshi rispose che se fosse stato necessario cambiare il block size, sarebbe stato fatto in futuro, ma in maniera controllata e lenta.
- Nel 2011 ci sono tre fatti rilevanti:
- Il 7 marzo 2011, Mike Hearn fu il primo sviluppatore di Bitcoin con uno stipendio. Google ha una policy che permetteva ai loro impiegati di dedicare il 20% del loro tempo a progetti personali, a patto che venissero segnalati in anticipo. Mike Hearn propose a Google di lavorare a BitcoinJ per portare Bitcoin su Java;
- Il 23 aprile 2011, Mike Hearn rivelò uno scambio di email con Satoshi, che affermava che Gavin Andreesen sarebbe stato il successore spirituale di Satoshi;
- Il 5 maggio 2011, un nuovo utente si unì a bitcointalk:
Gregory Maxwell
, uno dei più prolifici ricercatori e sviluppatori di Bitcoin, noto come “il cattivo supremo” per i big blockers. Si presentò con un lungo post in cui sosteneva la dimensione del blocco imposta da Satoshi, poiché non solo evitava il rischio che i blocchi potessero non essere scaricati in tempo o causare l’aumento l’orphan rate, ma anche per una questione puramente economica; se non ci fosse un limite lo spazio sarebbe infinito e di conseguenza le fees dei miner sarebbero molto basse; il sussidio inflattivo diventa troppo basso (ricordiamo che nel 2140 arriverà 0) siccome sappiamo che il prezzo si forma solo su beni scarsi, se lo spazio sul blocco non è scarso non ha un prezzo e nessuno vorrebbe pagarlo.
- Nel 2012 il secondo impiegato totalmente pagato per lavorare su Bitcoin è Gavin Andresen;
- Nel 2013 Mike Hearn convince Gavin a ribattezzare bitcoin in Bitcoin Core;
- A maggio 2013, Peter Todd divenne un altro villain per i big blocker pubblicando il sito keepbitcoinfree.org, dove pubblicò un video con una produzione hollywoodiana spiegando che la questione del blocco non era una scelta tecnica, ma morale, e che c’erano due visioni: una che voleva centralizzare Bitcoin dando la possibilità ai miner di prenderne il controllo e un’altra libera e verificabile da tutti;
- Poco dopo, il 19 agosto 2013, Gregory Maxwell lanciò l’idea di
coin witness
pubblicando su bitcointalk l’articolo Really Really ultimate blockchain compression: CoinWitness. La prima idea di side chain. Greg diceva:
Potremmo avere tante blockchain e sulla blockchain di bitcoin potremmo usare una cosa che si chiama
SNARKs
che serve per produrre prove piccole compatte per storie lunghe. Potremmo implementare un operatore in Bitcoin che valida le SNARKs e in questo modo si avrebbero intere blockchain che vivono fuori da Bitcoin; il vantaggio è che possiamo congelare un bitcoin sulla main chain e creare un side coin sulla side chain e quando torna indietro il nostro nodo dovrebbe soltanto validare una prova compatta della sua storia; questo migliorerebbe la scalabilità permetterebbe di sperimentare senza creare shitcoin.
— Gregory Maxwell
- Il 14 ottobre, Adam Back pubblicò un paper chiamato
Bitcoin Staging
, in cui spiegava che era bello sperimentare con blocchi più grandi o più piccoli e diverse tradeoff di privacy, ma non era bello farlo creando nuove shitcoin. Si poteva usare l’idea di Maxwell creando delle side chain; - Gavin lasciò il controllo su GitHub e passò il ruolo a Wladimir Van Der Laan; non lo presentò come una riduzione del proprio potere, ma come il fatto che il mantenimento della repository era un ruolo impegnativo, mentre lui doveva fare cose più importanti;
- Il 23 ottobre 2014 venne scritto il whitepaper sulle side chain. In questo documento, si affermava che l’idea di Coin Witness con le SNARKs ancora non era fattibile, ma con una “specie di SPV” in stile Satoshi si potevano creare queste chain separate, nelle quali le coin potevano spostarsi sperimentando vari trade-off di privacy, velocità e scalabilità. A firmare questo whitepaper erano Adam Back, Gregory Maxwell, Matt Corallo, Luke Dashjr, Pieter Wuille, Andrew Poelstra, Andrew Miller e Jorge Timón. Tutti questi sviluppatori, però, commisero un errore: crearono un conglomerato troppo grande e di nomi troppo importanti, il che ha generò l’impressione di una “centralizzazione” in Bitcoin;
- Il 27 dicembre 2014, Mike Hearn lanciò
BitcoinXT
, un client alternativo che riproduceva e completava Bitcoin. La versione XT nasce perchè Mike poco tempo prima aveva creato la BIP 64 – getutxo message ma questa BIP non fù implementata in Bitcoin con una velocità sufficiente e qui Mike Hearn decise di creare una versione alternativa del client che conteneva varie piccole differenze con l’originale, tra cui la BIP 64.
Fatte le doverose premesse adesso possiamo partire con la blocksize war vera e propria: il tema principale sarà quello della dimensione massima di un blocco in Bitcoin e quindi un tema puramente tecnico che riguarda:
- Il tempo di validazione per scaricare un blocco della timechain;
- Il tempo di propagazione, che può creare o meno degli orphan;
- La possibilità di fare selfish mining;
- La possibilità per un miner di grande dimensione di mettere in difficoltà miner più piccoli;
- La gestione delle fees.
Tutti questi quesiti tecnici aprono ad un’altra serie di temi come:
- Come cambiare la blocksize, velocemente o lentamente?
- Bisogna cambarla con un hard fork non retrocompatibile o con un soft fork?
- La cambiamo in maniera dinamica o in maniera fissa?
Affronteremo poi il problema della necessità di scalare rapidamente i grandi blocchi off-chain, quindi il dubbio sull’efficacia delle pratiche off-chain come la rete lightning o le side chain. Altri due argomenti di discussioni riguarderanno l’idea originale di Satoshi, cioè che pochi grandi data center possano avere nodi veri, ma che tutta l’economia rimanga protetta dal protocollo SPV e la governance: chi decide i cambiamenti? I miner? Gli sviluppatori? La Bitcoin Foundation? Gli exchange? Oppure sono gli utenti a decidere?
Infine, analizzeremo il dibattito sulla moderazione dei forum in relazione alla libertà di espressione.
Blockchainlab e i primi litigi #
Nel gennaio 2015 è stata fondata la Blockchainlab
di Giacomo Zucco, una società di consulenza che avrebbe funzionato come incubatore per le startup di Zucco, che in quel momento avevano un modello di business basato sul perdere soldi facendo cose fighe su Bitcoin, quindi andava bene così.
Il modello di business di Blockchainlab era quello di andare da tutti i clienti di Zucco, vendere consulenze e formazioni su Bitcoin non offerte da Zucco, ma da un team che raccoglieva le competenze delle più grandi startup e sviluppatori su Bitcoin, oltre a fare da incubatore per le nuove startup. La prima incubata è stata Geobit di Riccardo Casatta (che poi avrebbe creato Eternity Wallet) e successivamente si sono aggiunte altre figure, tra cui Franco Cimatti, uno dei più antichi bitcoiner italiani che ha tradotto il client di Bitcoin italiano ricevendone i meriti da Satoshi in persona.
Poco dopo la parte “incubatore di startup” va a farsi benedire perchè Zucco si rende conto che la maggior parte di queste startup non aveva un modello di business e non voleva averne uno. Invece delle quote, il modello di business con cui Blockchainlab si consolida è quella di essere un laboratorio di ricerca per gli sviluppatori, attingendo da loro informazioni privilegiate da impacchettare e rivendere; uno scambio tra servizi di aiuto in cambio di informazioni.
A febbraio 2015, Thaddeus Dryja e Joseph Poon pubblicano il primo paper su lightning network e solo 3 mesi dopo, il 15 aprile 2015, avvine una conferenza importante a Londra durante la quale Gavin fa uno speech chiamato Why we need the bigger chain dove esprime la necessità di volere blocchi molto più grandi e che il limite di Satoshi doveva essere eliminato.
Dopo lo speech, in un Q&A, viene chiesto a Gavin: cosa succede se non c’è consenso sulla discussione del blocksize? e Gavin risponde candidamente: si farà come dico io, come già avvenuto per P2SH. Questa risposta lascia abbastanza basiti e di fatti, il 7 maggio nasce il primo attrito: Wladimir Van Der Laan (il nuovo maintener del repo GitHub) afferma che non è d’accordo con Gavin sull’aumento della dimensione del blocco: avverte che allargare il blocco è pericoloso e prematuro, sopratutto senza il consenso della comunità.
A questo punto il 29 maggio Gavin da un ultimatum, affermando che Mike Hearn avrebbe implementato i blocchi più grandi nel client alternativo BitcoinXT e il 22 giugno Gavin rilascia la BIP 101 – Increase maximum block size che in termini semplici allarga la dimensione del blocco massimo da 1 mb a 8 mb, per poi raddoppiare ogni anno.
Gavin afferma che per la legge di Moore
lo spazio di archiviazione dei dischi fissi raddoppia ogni anno, peccato che il problema non è lo spazio di archiviazione ma:
- La banda che non raddoppia ogni anno seguendo la legge di Moore;
- Il potere di calcolo per controllare cifre, fare validazione, etc, non raddoppia ogni anno.
Il razionale per cui Gavin ha scelto 8 mb era che inizialmente lui e Mike avevano in mente di allargare i blocchi fino a 20 mb; i miner cinesi (che rappresentavano oltre il 60% dell’hash-power) erano contrari perché sarebbero stati tagliati fuori dalla rete a causa dei firewall governativi. La Cina ha quidi accettato 8 mb come compromesso. In seguito, Mike ha rivelato che hanno scelto 8 mb perché il numero 8, nella tradizione cinese, significa prosperità e ricchezza e doveva fare piacere ai miner cinesi (una grandissima motivazione scientifica 😁).
Garzik fa quindi due proposte:
- BIP 100 – Dynamic maximum block size by miner vote: poichè la dimensione del blocco è votata a maggioranza dai miner, se i miner hanno maggioranza decidono la dimensione del blocco. Questa è una proposta controversa perchè chiaramente un blocco troppo grande permette ad un miner di buttare fuori mercato miner più piccoli; se un miner dovesse raggiungere la maggioranza potrebbe autovotarsi un blocco maggiore per mettere fuori mercato tutta la minoranza, decisamente pericoloso;
- BIP 102 – Block size increase to 2MB: soluzione più rapida: propone di raddopiare subito, spostando il problema “tra un po di anni”. Anche questa proposta non è apprezzata, molti si chiedono che senso ha fare un hard fork solo per evitare un problema che si ripresenterà tra pochi anni.
Interviene dunque Pieter Wuille (detto “sipa”) che propone la BIP 103 – Block size following technological growth che dice: facciamo subito un aumento con un hard fork, ma non raddoppiamo, incrementiamo del 17.7% fino al 2063. Sipa cita il maintener Wladimir e Greogory Maxwell ringriandoli a fine BIP per i feedback positivi. Viene fuori che Gregory dirà: io sono citato nei ringraziamenti, ma il mio feedback è: non farlo.Sono assolutamente in disaccordo con Sipa.
Il più aggressivo di tutti è Adam Back che è d’accordo con Garzik sul BIP 102 perchè lo considera “sicuro” e scherzosamente propone il BIP 248 in cui dice: raddoppiamo in questo momento a 2 mb e con il prossimo halving saliremo a 4 mb, con il successivo halving a 8 mb e così via; nel frattempo le tecnologie off-chain e side chain avranno mitigato il problema.
Adam Back è un big blocker alla Garzik, in disaccordo totale con Gregory Maxwell e Luke Dashjr. Su un punto però sono d’accordo: senza consenso totale un hard fork non
si farà.
La coin dalle mille narrative, Bitcoin Jesus #
Il 30 luglio 2015 nasce (purtroppo) Ethereum: Vitalik Butarin, un giovanissimo e talentuoso giornalista pubblica una serie di articoli (commissionati di Jimmy Song) sui protocolli Bitcoin 2.0 per “fare gli asset” su Bitcoin. Vitalik raggiunge la conclusione corretta che su Bitcoin gli asset vanno gestiti in modo diverso pecrhè i miner non fanno enforcement delle regole degli asset (che è la stessa logica che porterà poi Peter Todd e Zucco a lavorare su temi attuali come RGB
). La nascita di questa shitcoin è comunque importante da citare perchè fa parte della storia Bitcoin anche se ha da sempre mille narrative differenti:
- La prima narrativa è “dobbiamo fare gli asset meglio di Bitcoin”;
- La seconda narrativa è “ambientalismo, useremo la proof-of-stake piuttosto che la proof-of-work”;
- La terza narrativa è “estendiamo il linguaggio degli smart contract per fare computazione generica distribuita”;
- La quarta narrativa è come quella di litecoin “fees basse e blocchi larghi e veloci”.
Vitalik diventa -anche se su un’altra chain- diventa un fervido sostenitorie dei big blocker e secondo la sua visione non c’è limite alla scalabilità dei blocchi, ci si può mettere dentro tutto ciò che si vuole, tutti gli smart contract e i dati dovrebbero stare sulla blockchain e i blocchi dovrebbero essere grandi e con fees basse.
Ne approffitto per condividere il moderato parere di Giacomo Zucco su Etherem:
Ritengo Ethereum uno dei peggiori scam nel settore, che quindi chiunque sia interessato a Bitcoin dovrebbe assolutamente ignorare, senza contaminare una cosa seria come Bitcoin. Ha tutte le caratteristiche di centralizzazione di sviluppo tipiche delle altcoin, ma rese peggiori da precedenti storici come il TheDAO bailout e il “ok can you guy stop trading”, oltre che dall’episodio della moneta che dumpa e pumpa a seconda delle fake news relative al suo creatore. Ha tutte le problematiche di insostenibilita’ di scala causate da una incomprensione di fondo dei trade-off di una blockchain (“vogliamo tutto onchain”) delle tipiche scamcoin “a blocchi grossi”, che rende i nodi tecnicamente centralizzatissimi. Ha tutte le falle di sicurezza tipiche delle supercazzole pseudo-tecniche di chi non sa cosa sta facendo (ad oggi si È dimostrato impossibile in Ethereum anche solo fare un semplice multisig in modo che fosse sicuro e non fosse “accidentally killed” da un utente a caso…figuriamoci gli “smart contract” complessi). Ha tutte le problematiche morali, etiche, legali e di incentivi economici distorti delle premined coin e delle ICO, allo stesso tempo. Ha tutta la retorica fraudolenta del “no, non È una moneta, È una appcoin”, tipica delle ICO. Ha un cambio di narrativa al mese per ignorare le promesse false debunkate dai fatti e lanciare nuove promesse false per il futuro (world computer con appcoin, anzi no turing completeness, anzi no unstoppable applications, anzi no rich statefullness, anzi no gattini collezionabili, anzi no defi, anzi no open finance, anzi no store of value, anzi no..). Ha un creatore che vendeva scam sul “quantum computing emulato su computer normali” prima di lanciare questo scam (tipo uno che vende cristalli curativi e macchine del tempo, in pratica). Ha un sito dove campeggia una frase che dal bailout di TheDAO rappresenta una vera e propria truffa commerciale a tutti gli effetti (“unstoppable applications”). Ha un’infrastruttura di validazione completamente centralizzata da una sola compagnia (infura). Ha una “road map” per il “2.0” che rappresenta una dichiarazione di fallimento su tutta la linea rivestita da promesse fantascientifiche. Ritengo che sia anche peggio di roba come Bitconnect, Dentacoin o BSV, perchÈ su queste ultime, anche se qualche trader ci ha fatto soldi o perso soldi, nessun ragazzo ha buttato via reputazione, skill, talento e tempo. Ethereum invece ha distolto un sacco di risorse intellettuali potenzialmente valide.
— Giacomo Zucco
Il 15 agosto 2015 inizia ufficialmente la blocksize war. Gavin e Mike insieme in un blog post rilasciano una comunicazione in cui dicono che BitcoinXT nella nuova versione implementerà la BIP 101 di Gavin e che Gavin non supporta più direttamete Bitcoin Core. Non ci sarà votazione dei miner, ci sarà una attivazione diretta.
Sono passati quasi 5 anni dalla scomparsa di Satoshi e magicamente arriva una mail da un suo indirizzo in cui scrive:
Ho seguito il recente dibattito, ho sperato che si sarebbe risolto con un consenso generale ma con il rilascio di BitcoinXT 0.11a ciò sembra impossibile e sono costretto a condividere le mie preoccupazioni per questo fork molto pericoloso. Gli sviluppatori di questo “aspirante Bitcoin” dicono di seguire la mia visione originale ma niente potrebbe essere più lontano dalla verità. Quando ho disegnato Bitcoin l’ho disegnato in modo tale che fare modifiche future fosse difficile o quasi impossibile senza un consenso globale. L’ho disegnato per proteggerlo dall’influenza leader carismatici anche se il suo nome fosse Gavin Andresen, Barack Obama o Satoshi Nakamoto. Loro utilizzano miei vecchi scritti per dire che Bitcoin doveva essere in un certo modo ma anche io potevo sbagliarmi e tante cose sono cambiate da allora. Se due developer da soli possono cambiare Bitcoin e ridefinirlo come meglio credono allora dovrò dichiarare Bitcoin un progetto fallito.
— Satoshi Nakamoto
Questo messaggio non è dimostrabilmente verificabile essere stato scritto da Satoshi stesso, ma la sostanza non cambia: anche se fosse Satoshi ad averlo scritto sarebbe comunque una sconfitta dover far dipendere il futuro di un protocollo decentralizzato dal suo stesso creatore.
Il 17 agosto 2015, Theymos comunica una nuova policy su Bitcointalk e r/bitcoin. Fino a quel momento si parlava solo di BitcoinXT e quasi tutti i post monopolizzavano le due board. Theymos dichiara che si stava discutendo di qualcosa che rompe il consenso di Bitcoin, quindi di una altcoin. Come proprietario del forum, invita tutti coloro che volevano parlare di altcoin di andare altrove: la policy sarebbe stata quella di cancellare i post relativi alle shitcoin. BitcoinXT viene confinato nella categoria delle altcoin su Bitcointalk, mentre su Reddit dice espressamente che non se ne può più parlare.
Roger Ver, noto come Bitcoin Jesus
, scopre Bitcoin nel 2010 e ne è diventa un sostenitore convinto. È un super libertario che ha addirittura rinunciato alla sua cittadinanza americana e investito in piccole startup di Bitcoin; Roger non ha grandi conoscenze tecniche, ma cercava solo di politicizzare un po’ Bitcoin contro Gavin, Mike, Luke Dashjr e Gregory, che invece volevano mantenerlo più neutro e meno spaventoso. Sul tema del blocksize non si interessa molto della dimensione del blocco, ma lui spingeva tanto la retorica della spesa di Bitcoin contro il risparmio (aggiungo grazie al cavolo, quando hai fatto i milioni con Bitcoin :-D). Impazzisce totalmente quando scrive un post di supporto a Gavin e Mike, ma questo post viene bannato da Theymos. L’affronto all’ego è totale per Bitcoin Jesus, proprio lui non può essere bannato dalla board ufficiale. Di conseguenza, Roger Ver diventa uno dei più accaniti oppositori di r/bitcoin, Bitcointalk, Blockstream o Bitcoin Core, e si trasforma nel più più fervido sostenitore dei big blocker (e di ogni altra possibile shitcoin, in seguito).
Il 24 agosto BitPay, blockchain.info, Circle, BitGo, KnCMiner, itBit e Xapo inviano una lettera pubblica in cui dichiaravano di aver discusso con Gavin, il leader di bitcoin, e di aver compreso che il modo per andare avanti era aumentare le dimensioni dei blocchi. Si dichiaravano d’accordo e decidono di supportare Gavin. L’intera industria decide di supportare BitcoinXT che pare avere la vittoria in tasca perchè sembra essere arrivata per una scelta strutturata dai capitani dell’industria il che è preoccupante perchè ha delle implicazioni politiche: Bitcoin è governato da un consenso non modificabile o da entità legali e regolate principalmente negli stati uniti? Sembra un mercato facilissimo da regolamentare perchè se il governo americano prende possesso di questa maggioranza diventa immediatamente censuribile come lo sono stati il Linden Dollar, e-gold o PayPal.
SegWit e il falso Satoshi #
Dopo due settimane, Pindar Wong (ex membro della IETF | Internet Engineering Task Force (gruppo informale di ingegneri che hanno sviluppato il protcollo TCP/IP) suggerisce di smettere di continuare a scrivere blog post ma di risolvere la questione guardandosi dritti negli occhi e chiede a Gregory, Gavin, Adam e compagnia di discuterne in presenza durante conferenza Scaling Bitcoin Phase 1 del 12 settembre 2015, a Montreal.
Molto timidamente nel marasma generale della conferenza, Gregory inizia a discutere con Gavin e questo amabile scambio si trasforma in un vero e proprio dibattito quando ci si accorge che sono presenti circa 80 persone ad ascoltare i punti di vista dei due sviluppatori; dopo circa 40 minuti Gregory rompe la riunione affermando che non fosse corretto che loro due avessero deciso le sorti di Bitcoin, ma che sarebbe stato opportuno far prendere la parola a chi aveva qualcosa da dire in merito o meglio, scrivere tutto su una board.
Il 6 dicembre avviene seconda puntata dello Scaling Bitcoin, questa volta ad Honk Hong. Durante la prima puntata (a parte la discussione tra Gregory e Gavin) la conferenza era stata più dominata dalla presentazione di lighining network, questa volta viene dominata da una proposta di Pieter Wuilla chiamata Segregated Witness
; SegWit ha l’obiettivo di migliorare la scalabilità della rete Bitcoin, aumentando il numero di transazioni che possono essere incluse in ogni blocco e riducendo il consumo di spazio di archiviazione delle transazioni. Il modo in cui SegWit raggiunge questi obiettivi è separando i dati di firma delle transazioni (chiamati “witness”) dal resto dei dati delle transazioni. In questo modo, la dimensione delle transazioni può essere ridotta, consentendo a più transazioni di essere incluse in ogni blocco senza superare il limite di 1 MB di dimensioni per blocco. Inoltre, Luke Dashjr scopre che con SegWit è possibile aumentare leggermente la dimensione massima dei blocchi senza eseguire un hard fork.
Durante Honk Hong emerge un attore importante, Jihan Wu, CEO di Bitmain (società che produce ASIC con un market share dell'80% al mondo) che sostiene che SegWit piace come proposta masolo come hard fork, non come soft fork. Dopo capiremo il motivo di queste parole.
Il 3 gennaio 2016, il CEO di Coinbase Brian Armstrong annuncia il suo supporto a BitcoinXT, declassando pubblicamente Bitcoin Core. C’è però un problema perchè il 14 gennaio Mike afferma di essere stato ad Honk Hong e aver recepito che la maggioranza dei miner non vuole BitcoinXT e non lo supporterà e quindi con un blog post chiamato The resolution of the Bitcoin experiment
dichiara (a detta sua) la fine dell'esperimento bitcoinXT
*. A livello industriale sembravano molto forti perchè avevano incassato il supporto di Coinbase, ma a livello miner erano debolissimi perchè i miner con un tacito accordo avevano deciso di supportare un SegWit a 2 mb con hard-fork. Ripeto, capiremo dopo perchè SegWit hard-fork è così voluto da tutti.
Il 5 febbraio 2016, due riviste americane, Gizmodo e Wired, hanno pubblicato articoli sostenendo che Craig Wright, un investitore/imprenditore australiano, fosse in realtà Satoshi Nakamoto, l’anonimo creatore di Bitcoin. Wright ha affermato di essere in possesso dei 1.3 milioni di Bitcoin relativi al famoso pattern “Patoshi”, che si ritiene siano stati estratti da Satoshi Nakamoto stesso.
Questa notizia ha suscitato molte polemiche nella comunità, poiché molti bitcoiner, tra cui Gregory, Luke e Wladimir, si sono distanziati da Wright, ritenendo che ci fosse qualcosa di sospetto nelle sue affermazioni. Wright ha poi cambiato la sua narrativa, auto proclamandosi leader dei big blockers e sostenendo che fosse necessario aumentare la dimensione dei blocchi a gigabyte o addirittura terabyte o che SegWit fosse una “merda”.
Bitcoin Classic & figuracce #
Il 10 febbraio 2016, Gavin lancia un nuovo client di Bitcoin chiamato Bitcoin Classic, che ha molto meno supporto di BitcoinXT. Poco dopo avviene la Honk Hong rounde table con alcuni dei developer e dei miner che si erano incontrati durante Scaling Bitcoin phase 2. Questa riunione avviene perchè alcuni dei miner stavano minacciando di far girare Bitcoin Classic di Gavin; il punto è ancora quello, il contenuto chiaro che da Jihan Wu emerge è ancora una volta che non è tanto una questione di dimensione del blocco, ma che SegWit va fatto come hard fork non retrocompatibile, non come soft fork.
Dopo due giorni di intense discussioni si arriva al seguente accordo:
“Noi miner cinesi, ci impegniamo a non far girare Bitcoin Classic ma solo Bitcoin Core. In cambio, noi bitcoin developer qui presenti, ci impegniamo a sviluppare un hard fork per SegWit che verrà accettato solo se la community lo verrà”.
Gregory Maxwell, in quel momento CTO di Blockstream litiga con Adam Back perchè Greg dice: “voi non rappresentate nessuno, non siete Bitcoin e non potete fare accordi a porte chiuse. Bitcoin è Bitcoin e se ne frega dei vostri accordi”. Adam risponde a Gregory che loro non si sono impegnati a cambiare Bitcoin con l’accordo fatto con i miner, ma che si sono impegnati a sviluppare un codice che fa un hard fork e che lo proporranno in produzione solo se c’è consenso.
Il 2 maggio 2016 Gavin Andresen segna un passaggio che cambia totalmente la storia della guerra con un blog post in cui afferma di essere stato invitato a Londra con un jet privato da Craig Wraith che gli ha dimostrato privatamente di essere Satoshi Nakamoto. Afferma inoltre che pochi giorni dopo Wraigth dimostrerà al mondo di essere Satoshi con una firma pubblica.
Come volevasi dimostrare Craig non firma realmente, pubblica un post in cui sembra che firmi ma in realtà la firma che propone sono false. Wraith pubblica quindi un post in cui dice che non riesce a firmare perchè non ne ha le forze, non ce la fa a rendersi pubblico perchè ci tiene troppo alla sua privacy. E cancella il suo blog.
Ottima figura! 😁
Poco dopo, il 5 maggio 2016, in una conferenza chiamata Consensus
Gavin continua a sostenere che Wraigth è Satoshi e a questo punto anche Vitalik Buterin dice la sua con un ottimo intervento:
Il 6 maggio 2016, Wladimir (il maintener di GitHub) rimuove le chiavi di Gavin e dice che il fatto che Gavin appoggi Wraight è pericoloso e potrebbe far temere ad una compromissione di Gavin. Gavin ha ha più accesso al repo di Bitcoin.
Avvenimenti in blockchainlab #
Il 27 luglio 2016 si crea uno split all’interno al gruppo di Blockchainlab, Lawrence Nahum (chief scientist) viene acquisito da Blockstream, uno dei tre simboli del male per i big blockers e uno dei 3 simboli eroici per gli small blockers. I tre simboli vittoriosi erano:
- Bitcoin Core;
- Il circuito dei moderatori di forum/reddit, quindi theymos e cobra;
- Blockstream.
Blockchainlab si trova ad avere all’interno del laboratorio una figura che è anche un dipendente Blockstream; un altro elemento del laboratorio era Franco Cimatti (HostFat) il quale era un big blockers sfegatato ma più da un punto di vista del free speech contro la censura cattiva: il suo tema non era tanto “è meglio un blocco grande” quanto “è meglio avere la possibilità di cambiare Bitcoin, ognuno deve poter fare e dire la sua”.
La frattura in blockchainlab diventa insanabile e Zucco non essendo più vincolato a tenere le redini delle fazioni inizia a schierarsi e propone a Pinder Wong Milano come sede per la terza puntata di Scaling Bitcoin.
Due “grosse azioni” vengono percepite come una presa di posizione di Zucco e del laboratorio di blockchainlab:
- La scelta di ospitare e organizzare una conferenza orientata agli small blockers;
- Partecipendo direttamente alla stesura del programma della conferenza, Zucco e gli altri organizzatori devono decidere quali paper possono essere presentati e quali no; nei due giorni della conferenza c’è tempo per poche decine di presentazioni quindi le scelte vengono fatte su base qualitativa. Il topic principale è che assunta l’idea della limitatezza deella dimensione dei blocchi su una blockchain, come si può far scalare il protocollo nel modo migliore?
- Nonostante il topic principale gli organizzatori lasciano comunque una sezione per parlare di cambiamenti radicali di consenso e aumento della dimensione del blocco; in questa sezione c’era una presentazione Meni Rosenfeld sul blocksize elastico: la sua idea era che si poteva temporaneamente ingrandire il blocco quando c’era overhead sulla mempool per poi rimpicciolirlo quando l’overhead fosse terminato. Ovviamente non erano i miner a decidere quando allargare e stringere il blocco ma erano scelte determinate da regole basate sulla fees della transazione più bassa possibile in tutto il blocco. Questa proposta non viene presentata ma viene presentata quella di Bitcoin Unlimited: il nuovo sacro Graal dei big blockers su cui sta convergendo il consenso dopo che è stato ucciso Bitcoin Classic. Peccato però che il paper fosse di qualità inaccettabile.
- Peter Todd presenta l’idea di Bitcoin client-side validated, che marcherà la nascita di RGB. Peter Todd sostiene: i miner non solo non devono decidere la dimensione dei blocchi ma non devono sapere quali transazioni sono valide o no. I miner devono solo farsi pagare per includere nella chain ciò che lui chiama un
single-use-seal
. Se Alice paga Bob la prova del pagamento che include le firme, che include script di input e script di output dovrebbe essere passata peer-to-peer da Alice a Bob e solo l’hash della transazione dovrebbe finire onchain in modo che neanche i miner possano sapere cosa stanno facendo Alice e Bob. In questo modo si avrebbe una scalabilità notavole ed una privacy fantastica; - L’unico effettivo cambiamento di consenso che viene discusso e tollerato è SegWit come soft fork con eventualmente un blocksize increase. Si può fare in soft fork perchè la transazione che viene vista dai vecchi nodi è una transazione piccolissima perchè non include più gli script di spesa (ma solo input e output). Gli script di spesa (comprese le firme) vengono spostati tutti in una struttura parallela chiamata
witness program
che viene mandata a parte insieme al blocco ed è committata all’interno del blocco; di conseguenza ci sono nuovi nodi che si possono passare fino ad un massimo teorico di 4 mb di dati per blocco mentre i vecchi nodi ritengono valide queste transazioni e vedono 1 mb (e non vedono il witness program).
Hard Fork Cafè
, prendendo in giro il logo dell’Hard Rock Cafè.
La vera dichiarazione di guerra avviene quando il gruppo di big blockers forka addirittura il party finale di fine conferenza: organizzano un party alternativo chiamato free speech party
che ha la solita retorica: durante la conferenza siete stati costretti ad ascoltare quello che il comitato voleva farvi sentire, mentre nel nostro free speech party chiuqnue prende il microfono può proporre qualsiasi modifica al consenso.
Molte persone vanno a questo party alternativo e la cosa sconvolgente è che riuscirono a portare all’evento tutti i miner cinesi. C’è una sola eccezione, il miner Wang Chun, CEO della pool F2Pool che andò sia al party alternativo che a quello ufficiale.
single point of failure
e a tal proposito il comitato organizzativo internazionale impose regole stringenti come ad esempio il fatto che tutta la filiera di produzione alimentare avesse una catena particolarmente verificabile. Giacomo Zucco incaricò una società di sicurezza internazionale con esperienza nell’antiterrorismo poichè era in grado di garantire una eccellente sicurezza insieme ad una elevata discrezione. Com’è noto i bitcoiner non amano essere fermati, perquisiti o importunati.
Dopo lo Scaling Bitcoin Zucco mette a disposizione gli uffici di Blockchainlab per fare due cose:
- Ospitare il Bitcoin Core Meetup, meetup ufficiale degli sviluppatori nei giorni successivi alla conferenza;
- Gabriele Domeninichini era un dipendente di Blockchainlab che era intento a provare:
- L’implementazione in GO di lightning network ad opera di Thaddeus Dryja e Joseph Poon;
- L’implementazione di Christian Decker che aveva inventato una cosa del tutto paragonabile a lightning network, assunto poi da Blockstream insieme allo storico sviluppatore linux Rusty Russell. Loro due stavano lavorando a questa implementazione in C;
- Due ragazzi francesi molto in gamba, avevano iniziato a creare un hardware wallet ma poi si erano accorti che a Parigi c’era già un hardware wallet che era molto forte e si chiamava
Ledger
. Cambiarono direzione costruendo una implementazione di lightning chiamataeclair
, creando la società chiamataACINQ
. Gabriele le aveva installate tutte e si accorge che anche se in teoria stavano lavorando tutti sulla stessa idea, mancavano delle specifiche comuni. Allora Zucco convince Elizabeth Stark di Lightning Labs di radunare tutte queste società/sviluppatori con l’idea di far lavorare tutte queste menti insieme finchè non avessero prodotto delle specifiche di interoperabilità che tutte le implementazioni avrebbero seguito per poter fare routing e aprire canali tra le varie implementazioni.
opentimestamps
, di Peter Todd.
Tornando su lightning, finalmente tutti i partecipanti convergono su un protocollo chiamato: Protocollo Milano
; in realtà due giorni dopo viene cambiato nome al protocllo in BOLT
(basics of lightning tecnology).
Nel ovmebre 2016 entra in gioco la versione 0.13.1 di Bitcoin Core che comprende il codice di SegWit e il meccanismo di signaling (la segnalazione da parte dei miner che dice “siamo pronti” ) che permette l’attivazione del soft fork. Entra subito in produzione ma c’è un attivazione rimandata ai mesi successivi e che richiede una soglia di almeno il 95%.
Il pungiball: Bitcoin Unlimited #
Il 30 gennaio 2017 un miner che sta facendo girare Bitcoin Unlimited mina un blocco maggiore di 1 mb che viene immediatametne orfanato dalla rete.
l 12 marzo 2017, Shaolin Fry (identità fittizia) propone la BIP 148 – Mandatory activation of segwit deployment, che è essenzialmente una versione di Bitcoin Core che richiede ai miner di segnalare l’adozione di SegWit entro una determinata data. Se i miner non lo fanno, tutti i blocchi che non includono SegWit saranno considerati non validi. Questa proposta è estremamente aggressiva, poiché impone ai miner non solo di accettare SegWit, ma anche di segnalarne l’adozione o rischiare di essere esclusi dalla rete. La maggior parte degli sviluppatori di Bitcoin Core si oppone alla BIP 148, tranne Luke Dashjr, che afferma che: le regole le fanno gli utenti, i miner devono adattarsi o rischiare di vedere i loro blocchi rifiutati. Si forma così un movimento che sostiene che la decisione di Bitcoin Core di non sostenere la BIP 148 è minoritaria all’interno della comunità. Gli oppositori sostengono che, sebbene SegWit sia una buona soluzione e funzioni correttamente, non dovrebbe essere imposta con urgenza, poiché ciò potrebbe destabilizzare il consenso all’interno della rete.
Il 15 marzo 2017 accade un fatto curioso su Bitcoin Unlimited. Su questa versione alternativa di Bitcoin c’erano tutta una serie di nuove tecnologie, una di queste soffre di un baco che tira giù tutti i nodi dal network uno alla volta; sia Jhian Wu che Gavin Andresen pubblicano una comunicazioni su Slack in cui dicono che è il caso di controattaccare contro Bitcoin producendo blocchi vuoti: la loro idea è visto che c’era una baco e che questo baco ha fatto crashare tutti, qualcuno deve averlo sfruttato. Sicuramente saranno stati i cattivoni di Bitcoin Core e volevano vendicarsi.
Bitmain (società di Jhian Wu) in una chat parla -anche se non c’è nessun documento ufficiale come prova- di 100 milioni di dollari stanziati per produrre blocchi vuoti e attaccare il network di Bitcoin. In questo modo pensano di ucciderlo, lasciando vivo solo Bitcoin Unlimited.
Dopo due giorni tutti i più grandi exchange del mondo (tranne Coinbase) firmano una lettera contro Bitcoin Unlimited in cui affermano:
- Se su Bitcoin Unlimited non sarà inserita la reply protection loro non lo listeranno mai (la reply protection significa che se si splitta la rete e su una delle due versioni della catena io spendo un UTXO allora nessuno può prendere questa spesa e broadcastarla sull’altra catena);
- Fixare la reply protecion equivale a dichiarare che Bitcoin Unlimited è l’altcoin rispetto a Bitcoin.
La sforuna ci vede benissimo e il giorno dopo, il 18 marzo, avviene un colpo ancora peggiore: l’exchange Bitfinex lancia dei futures, cioè dei contratti in cui si può dare un Bitcoin e ricevere in cambio due futures, uno sulla versione core e l’altro sulla versione unlimited. Aprono il mercato e all’inizio il futures su unlimited viaggia sul 20% rispetto alla versione core; successivamente si stabilizza intorno al 3% di valore. La cosa che questi futures rendono evidenti è che quando c’è da puntare davvero i soldi su una delle due, il 97% del capitale puntava su Bitcoin e non su Bitcoin Unlimited.
Il 5 aprile arriva l’ennesimo colpo devastante perchè Gregory Maxwell pubblica un post che parla di covert AsicBoost
. L’idea è che quando si applcia sha256 non si fa l’hash di tutto il file ma si divide il file in chunks e si fa l’hash di ogni pezzo; nel caso specifico dell’intestazione del blocco servono “due pezzi” per fare un blocco di 1 mb. Se bisogna modificare l’hash perchè non si è trovata la soluzione al blocco, invece di fare l’hash di due nuovi chunk dell’header riesci a tenere il primo fermo e cambiare solo il secondo si risparmia tempo ad ogni hash. Ci sono due modi di fare questa operazione, una evidente in cui si usa come entropia i bit di segnalazione all’interno del block header (ed è evidente che si sta ottimizzando con questa tecnica AsicBoost). Greg scopre invece che mettendo le transazioni bitcoin in un certo ordine è possibile fare AsicBoost senza far vedere che stai facendo AsicBoost. Si accorge anche che:
- SegWit come hard fork non crea problemi ad AsicBoost;
- Segwit come soft work spezza la possibilità di fare AsicBoost “nascosto”.
Allora Gregory Maxwell prende il firmware della FPGA che fa andare gli ASIC di Bitmain e si accorge che c’è una ottimizzazione nascosta nella tutte le macchine fanno AsicBoost nascosto. Bitmain aveva un vantaggio competitivo in produzione, ecco perchè Jhian Wu desiderava così tanto SegWit solo come hard fork 🤢.
Scoppia un grosso scandalo, seguito poi da un altro scandalo scoperto sempre da Gregory Maxwell e chiamato antbleed
: si scopre che se Bitmain avesse voluto avrebbe potuto mandare un segnale via internet che avrebbe spento e ucciso in modo remoto le ASIC vendute da Bitmain.
Il 6 aprile succedono altri due eventi:
- Samson Mow entra in blockstream, uno dei nemici numero uno fuori blockstream entra nel nemico numero uno che è blockstream;
- Joseph Poon, uno dei due creatori di lighining network, in contrapposizione a SegWit aveva proposto una alternativa chiamata
extension blocks
che per qualche motivo andava bene a Jhian Wu anche come soft fork a differenza di SegWit. Si scoprirà successivamente che extension blocks non rompeva l’AsicBoost nascosto degli ASIC di Bitmain.
DraongsDen
capitanata da Samson Mow, che ha come obiettivo quello di bullizzare le persone online. E che lui si riteneva una vittima.
NYA e Bitcoin Cash #
Il 22 maggio 2017 avviene un’altra edizione di Consensus (la stessa conferenza dove Gavin era stato ridicolizzato da Buterin) e quello che succede è che l’organizzatore della conferenza (Coindesk) annuncia che hanno risolto lo scaling debate; in particolare dichiara di aver organizzato un accordo tra tutte le più grandi società Bitcoin le quali accettano SegWit ma, come hard fork. Questo accordo viene chiamato New York Agreement Nei due giorni successivi compaiono una cinquantina di startup che supportano questa decisiione e tra queste società ci sono anche Blockstream, Lightning Labs, etc. Sembra assurdo ci siano anche società prettamente small block ed infatti lo è, tanto che molte di queste smentiscono pubblicamente questa notizia perchè non avevano mai firmato o accettato un accordo di questo tipo. Viene fuori, poco dopo, che una dipendente di Coindesk aveva semplicemente iniziato a pubblicare adesione da parte di qualunque startup, senza chiedere nulla a nessuno. Una ventina su cinquanta erano totalmente false e non facevano parte del New York Agreement.
James Hilliard, sviluppatore e miner fa una proposta a tutti i partecipanti che sostenevano l’hard fork con SegWit pubblicando la BIP 91 – Reduced threshold Segwit MASF in cui dice: “voi volete SegWit e anche noi vogliamo SegWit. Fatelo come soft work (cosa che non piace a Jhian Wu), se poi passerà ci metteremo d’accordo per l’hard fork che è la parte centrale nella controversia”.
Dal 22 maggio al 5 giugno 2017 c’è un gran dibattito, ma la scoperta dell’AsicBoost nascosgo gioco un ruolo fondamentale per l’opinione pubblica; anche alcuni big blockers convinti diventano scettici.
Il 21 luglio viene accettato il BIP 91 e arriva il vero e proprio “lock in”. Jhian Wu pubblica un post di reazione nel quale afferma che è stato fatto un torto gravissimo, che non erano questi gli accordi e dicendo che faranno uno user activated hard fork (UAHF). Quello che proclama Jhian è l’arrivo di Bitcoin Cash, che sarà disponibile dal 1° agosto. Questa nuova versione avrà un blocco più ampio e non conterrà SegWit.
Il 9 settembre c’è una nuova conferenza, la Breaking Bitcoin. Finalmente non si parla più di scalabilità ma di “come rompere Bitcoin” e di tutti i possibili attacchi e problemi di sicurezza:
Nella stessa conferenza sul palco viene chiesto a un po di miner se sosterranno il fork 2x e in quel caso Alex Petrov di BitFury risponde: no aspettate, io quando ho firmato l’accordo intendevo dire che se c’è consenso faremo un hard fork, è chiaro se non c’è non mineremo mai dei blocchi con 2 mb (portati a 8 mb con lo sconto del witness program). Dopo Breaking Bitcoin, con questa interpretazione di Petrov, tanti altri come RootStock o Xapo confermano questa versione. Altri ancora come Coinbase o BitPay inviano delle email ai loro utenti avvisandoli di scaricare la nuova versione del software perchè altrimenti sarebbero stati tagliati dalla rete. Una mossa spericolata e tra l’altro prima del lancio ufficiale di questo software (abortito immediatametne) si scopre una falla per la quale la rete sarebbe collassata immediatamente dal giorno 1. Inoltre in questa versione conteneva due cose abbastanza strane:
- L’implementazione di alcune blacklist di indirizzi;
- L’eliminazione dei nodi di bootstrap a favore di dei nodi aziendali (🤔). Questi nodi servono perchè quando Bitcoin Core quando viene lanciato la prima volta non sa dove trovare gli altri nodi, allora utilizza dei nodi iniziali (sono 6) hardcodati nel software che sono quelli di una serie di sviluppatori storici e da questi 6 sviluppa la propria rete peer-to-peer.
Quando BitPay invia questa email in cui invita gli utenti a scaricare una nuova versione del software per motivi di sicurezza (senza altre spiegazioni) allora lo sviluppatore francese Nicolas Dorier dice:
Questo è troppo, la mia fiducia in voi è rotta e vi renderò obsoleti.
— Nicolas Dorier
Pochi giorni dopo. programmando come un pazzo in C# pubblica BTCPay Server, un clone di BitPay senza BitPay, open-source e gratis per chiunque.
L'8 novembre del 2017 termina la blocksize war.
L’epoca moderna del protocollo #
Sfortune & colpi bassi #
Dopo aver distrutto il villain chiamato New York Agreement ci si rende conto che Bitcoin è una bestia impossibile da domare. Se l'80% dell’hashrate, il più grande giornale della più grande conferenza Bitcoin, il più grande produttore di ASIC, i più grandi exchange e la maggioranza degli sviluppatori falliscono rovinosamente nel tentativo di prendere il controllo di Bitcoin, sì, Bitcoin è indomabile. Nell’aria si respira un entusiamo pazzesco.
Entusiamo che viene però smorzato da due eventi negativi e un terzo ambiguo:
- Il 14 novembre 2017, pochi giorni prima dell’inizio della conferenza Baltic Honeybadger, un programmatore Bitcoin Cash ha scovato un bug inflattivo nel codice di Bitcoin Core ed ha affermato che se fosse stato sfruttato avrebbe permesso un altro episodio di inflazione incontrollata come avvenuto all’inizio della storia di Bitcoin e costrinse Satoshi ad eseguire un soft fork.
Questo bug fù inserito all’interno del protocollo da un aggiornamento da parte di Matt Corallo, per renderla semplice: un nodo controlla che una transazione sia valida, che abbia lo script valido, le firme valide e che non crei inflazione. Tutto questo sia prima di farla entrare in mempool che quando arriva un blocco effettivamente minato; ci sono quindi due controlli, di mempool e di blocco.
Matt, in una serie di ottimizzazioni droppa uno dei due controlli e l’interazione tra due release di fila fa si che si crei effettivamente questo bug difficile ma non impossibile da exploitare, creando inflazione illimitata. La differenza cpn il bug di Satoshi è che quello c’era già, questo è stato introdotto ed ha sconcertato molte persone perchè vuol dire che: - I core developer che hanno umiliato gli “eretici” Gavin, Garzik & Co., che hanno sbeffegiato per il bug di Bitcoin Unlimited e per quello del New York Agreement (che avrebbe distrutto la rete) rivelano che anche loro non sono infallibili; - Si sono create delle dinamiche sociali per le quali alcune persone fanno dei commit che non vengono rivisti da nessuno perchè tali developer sono ritenuti troppo bravi per sbagliare; - La scoperta non arriva dal core team, ma da uno sviluppatore Bitcoin Cash.
-
Steam droppa definitivamente il supporto a Bitcoin, dopo averlo accettato per quasi un anno. Lo annuncia con un blog post e le motivazioni sono:
- È troppo volatile;
- Le fees on-chain erano troppo alte (ma su questo c’è da dire che la mempool era intasata da blocchi vuoti, graize Jhian).
-
Il 9 di dicembre sono annunciati e normalizzati i primi contratti futures su Bitcoin autorizzati dal Chicago Board Options Exchange. Poco prima che entrino in azione questi contratti futures, il 17 dicembre Bitcoin tocca il suo picco assoluto per quel periodo; il picco medio era di 19783 $.
Idea geniale: taproot #
Il 2018 inizia con una depressione di mercato, ma il 22 gennaio Gregory Maxwell lancia un’idea interessantissima. Da tanto tempo c’erano in discussione delle modifiche al protocollo, ma due in particolare erano molto discusse e cioè:
- Schnorr signatures: come già accennato nel primo capitolo il vantaggio più ovvio di queste firme è che se si può avere una chiave che è la somma della chiave di Alice e della chiave di Bob e quando c’è da firmare, firma Alice, poi firma Bob e sommando le due firme, la firma che si ottiene è una firma valida per la somma delle chiavi. Nella sostanza è come se fosse un multisig off-chain;
- (Merkelized Abstract Syntax Trees) MAST che è una tecnologia che funziona creando un albero di merkle che rappresenta tutte le opzioni di spend incluse nella transazione. Solo l’opzione effettivamente utilizzata viene poi inclusa nella transazione, rendendola più piccola e più efficiente. Inoltre, MAST rende possibile la creazione di contratti che possono essere eseguiti solo in determinate condizioni, rendendo le transazioni più flessibili e potenti. nel gennaio 2018 c’erano già due forme diverse di questa idea, BIP 114 – Merkelized Abstract Syntax Tree e BIP 117 – Tail Call Execution Semantics. Erano incompatibili tra loro e quindi bisognava sceglierne una sola.
Gregory spara un’idea geniale:
Invece di mettere sulla timechain come output la merkle-root del nostro script, mettiamoci una chiave pubblica schnorr perchè ogni contratto ha quasi sempre un caso sempre degenere (il caso più ovvio) che è quello in cui tutti i partecipanti sono d’accordo. Facciamo il tipico contratto su Bitcoin in cui la chiave pubblica è una chiave che è la somma di tutte le chiavi pubbliche dei partecipanti così se tutti i partecipanti sono d’accordo, firmano tutti, sommano le firme, si spende e non c’è bisogno di gestire il contratto. Questa chiave pubblica viene manipolata moltiplicandola per il merkle-root. Se invece c’è un disaccordo si sceglie quale dei branch del contratto bisogna attivare, risaliamo il merkle-tree con le merkle-proof e mostriamo come quella merkle-root era compresa nella chiave pubblica manipolata."
— Gregory Maxwell
Greg prende la proposta sulle firme di Schnorr, prende le due proposte MAST e fonde tutto insieme in questa idea che chiamata taproot
.
Sempre a gennaio 2018 Stripe droppa il supporto a Bitcoin, come aveva già fatto Steam. Siamo nell’epoca in cui SegWit è già in produzione e si sta diffondendo il lightning network, ma era ancora troppo di nicchia e non era ancora arrivata al pubblico mainstream.
Il 23 marzo del 2018 accade un evento non tecnico importante. Ai tempi, il libro più famoso era sicuramente Mastering Bitcoin di Andreas M. Antonopoulos. Compare The Bitcoin Standard di Saifedean Ammous e diventa ben presto mainstream perchè ha un impatto profondo sia su molti bitcoiner che su molte persone che non conoscono bitcoin ma che cominciano ad interessarsene dal punto di vista puramente economico.
Drive chain e post-maximalism #
Il 31 marzo 2018 il Blockchainlab chiude per sempre mentre il 7 aprile 2018 nasce un nuovo fenomeno con un articolo sul blog di Paul Sztorc, truthcoin. La sua idea è creare una specie prediction market su Bitcoin; mancavano alcune funzioni e invece di proporre di alterare bitcoin per introdurle Paul diventa uno dei massimi sostenitori delle side chain che, però, erano nate in un certo modo (un’idea di trustless) ma poi erano finite in una modalità trusted.
Paul non era d’accordo con questa modalità e aveva proposto l’idea delle drive chain
che in sostanza permetterebbe ai miner di votare sulla storia di una side chain così che i nodi non debbano verificarla da soli ma si debbano fidare della maggioranza dei miner. È un modello di fiducia totalmente diverso che mette molto potere nelle mani di miner e visto che i miner si erano comportati come elemento avversario con la storia di SegWit questo crea degli attriti e dei dubbi sul concetto stesso di fiducia del miner come sistema decentralizzato. Molte persone avevano quindi rigettato l’idea del drive chain perchè ritenuta troppo pericolosa; Paul vedeva la sua proposta anche come la soluzione al blocksize debate, perchè la main-chain avrebbe avuto i blocchi piccoli mentre la drive chain con i blocchi grossi; ma di nuovo, non è mai passata perchè richiedeva troppa fiducia verso i miner.
Il 7 aprile senza Paul pubblica l’articolo Bitcoin Post-Maximalism in cui inaugura un trend: già nel 2014 c’era sta una fase di odio anti Bitcoin da parte di ex bitcoiner che avevano fatto tanti soldi per poi perderli nel crollo del mercato. Con questo articolo di Sztorc nasce il concetto di post massimalismo o anti massimalismo che è una reazione culturale dovuta al fatto che quando il mondo delle shitcoin collassa rovinosamente se la prende con i massimalisti che avvisavano sul futuro collasso delle shitcoin. In particolare con il crollo delle ICO, Sztorc dice che il motivo del collasso del mercato non è avvenuto perche si era creata una bolla insostenibile e tutti facevano ICO in modo casuale, il motivo è che i massimalisti avevano impedito di fare le drive chain e che se solo ci fossero state le drive chain il mercato non sarebbe crollato. Quindi, dichiara di non essere più un massimalista.
Comincia un’ondata che porta ad almeno 11 di questo genere.
eltoo, RGB, lightning torch, guerra CoinJoin e blocklist #
Il 30 aprile arriva una innovazione tecnica da parte di di Christian Decker, Rusty Russell e Olaoluwa Osuntokun che è il paper di eltoo; eltoo è l’idea di Decker teorizzata anni prima, molto simile al Lightning network di Thaddeus Dryja e Joseph Poon. eltoo è un modo diverso di fare lightning network con backup molto più semplici e meno rischiosi, canali a più parti e altri piccoli vantaggi. È una bella idea ma per funziona richiede una modifica onchain che nell’aprile 2018 viene proposta con la BIP 118 – SIGHASH_ANYPREVOUT for Taproot Scripts. In pratica quando si crea una transazione in Bitcoin, è necessario firmare ogni input con la chiave privata del proprietario dei fondi. Tuttavia, normalmente è possibile firmare solo l’input attuale, non gli input futuri o passati. Ciò significa che se un input viene spostato in una transazione diversa, il suo firmatario originale non può più utilizzare la sua firma per garantire che l’input venga speso solo come desiderato.
SIGHASH_ANYPREVOUT
è un’opzione di firma che consente di firmare un input in modo da renderlo spendibile in qualsiasi transazione futura, indipendentemente dal fatto che l’input sia stato spostato o meno. Ciò consente ai firmatari di mantenere il controllo su come vengono spesi i loro fondi anche se gli input vengono spostati in transazioni diverse.
Riceve acclamazione dalla critica ma rimane un’idea generale, Christian non vuole pressare troppo l’idea perchè non vuole fare il champione impuntarsi per eseguire un soft fork.
Il 3 luglio del 2018 Zucco presenta a Lisbona il protocollo RGB condividendo documentazione e idee e da quel momento in poi il tema sarà portato avanti da un team di ragazzi Ucraini capitanato da Maxim Orlovsky; successivamente Federico Tenga arriverà al delivery del primo wallet RGB: (Iris Wallet) rilasciato ad ottobre 2022.
Nel gennaio 2019 nasce un anonimo su twitter chiamato Hodlonaut
ha l’idea di mettere in piedi una staffetta lightning network chiamata “lightning torch”: crea un tweet dicendo che manderà 100000 satoshi alla prima persona che gli risponderà con un invoice, quella persona dovrà aggiungere altri 10 mila satoshi e mandare 110000 saotshi alla prima persona che avrebbe risposto al suo tweet e così via, per capire quando lightning potesse essere scalabile. L’esperimento diventa gigantesco dopo essere rilanciata da personaggi sempre più conosciuti come Elizabeth Stark e Jack Dorsey e non solo: passa in Iran, violando le sanzioni USA attraverso uno scozzese dopo che Bitcoin Magazine declina l’invito perchè teme ripercussioni legali. Questa torcia diventa famosissima ed infatti iniziano ad arrivare anche gli scammer: in particolare quando la torcia è “nella mani” di Zucco un utente chiamato bitcoin wizard mette un invoice e scompare con tutto il malloppo (era un account creato da relativamente poco ma con moltissime interazioni e follower anche conosciuti). A questo punto Zucco ripaga interamente la torcia mettendoci con i suoi satoshi e le fa ripartire; quando la torcia raggiunge una dimensione particolarmente importnate viene ceduta a Bitcoin Venezuela, una associazione di volontari per aiutare i venezuelani vittime dei problemi di iperinflazione e dittatura.
Il 12 aprile c’è un altro evento importante: il We are all Hodlonauts
. Hodlonaut è diventato famosissimo per la torcia, ha raggiunto i 10 mila follower su twitter e usa una parte della sua popolarità per mettere in guardia tutti da Craig Wraith; Hodlonaut riceve una lettera di minaccia da parte della corte di Craig Wraith. È un anonimo, ma Calvin Ayre (milionario che finanzia Craig Wraith) in una sua pubblicazione chiamata CoinKeeg mette una taglia di 5000 dollari (pagati in Bitcoin Satoshi’s Vision) per chiunque riveli informazioni sull’identità di Hodlonaut. Un personaggio che aveva capito da qualcuno che potesse trovarsi ad Oslo riesce a chiamare il datore di lavoro di Hodlonaut spacciandosi per un agente polizia norvegese che stava indagando su questo account twitter; il datore di lavoro crede seriamente che sia un poliziotto, svela nome e cognome e indirizzo e arriva a casa la convocazione da parte di Craig perchè è stato citato in giudizio per diffamazione.
Questo evento fa partire una campagna bellissima perchè tutti quanti iniziano a mettere la foto di profilo di Hodlonaut e inziano a mettere la propria foto e metterlo nel casco di Hodlonaut.
La causa di Hodlonaut vs Craig Wraith si conclude ad ottobre 2022 si conclude con la vittoria di Hodlonaut.
Il 23 dicembre 2022 Hodlonaut con un tweet annuncia che Craig ha chiesto (e ottenuto) un ricorso.
Il 1 maggio 2019 viene assegnato il BIP 78 – A Simple Payjoin Proposal a Nicolas Dorier, il PayJoin è una specie di CoinJoin dove insieme a fare un CoinJoin si fa anche un pagamento. In particolare, il PayJoin funziona inserendo un input di un mittente e un input di un destinatario in una stessa transazione. Ciò significa che, anziché inviare i fondi direttamente dal mittente al destinatario, i fondi vengono prima inviati a un indirizzo di “mezzo”, dove vengono mescolati insieme. Successivamente, il mittente e il destinatario possono “ritirare” i loro fondi mescolati dall’indirizzo di “mezzo” utilizzando le loro chiavi private. In questo modo, gli osservatori esterni non possono sapere con certezza chi ha inviato e ricevuto i fondi, poiché i fondi sono stati mescolati insieme.
Alcuni giorni dopo, l'8 maggio del 2019, c’è la prima proposta semi credibile (e quindi preoccupante) di fare un rollback di Bitcoin a scopi di tutela di interessi individuali. In particolare Binance viene hackerato e il suo CEO Changpeng Zhao dichiara che pagherà i miner per orfanare la chain in cui è avvenuto il furto; vuole spendere nuovamente quelle transazioni e convincere i miner a far partire un’altra chain. Non si tratta di far passare uno stato invalido ma fare un reorg che mantenga le regole effettive; anche solo fare un reorg intenzionale per riparare a una questione di mala sicurezza da parte di Binance era molto controverso. E infatti non accadrà mai.
Parlando di privacy onchain il 2 agosto inizia la guerra delle implementazioni CoinJoin
. Il CoinJoin è quel tipo di transazione dove più parti mettono insieme i loro input; inizialmente Satoshi nel suo whitepaper scrisse che quando una transazione ha tanti input è ovvio che sono fatti dalla stessa persona e quindi è un limite alla privacy onchain perchè questo linking è reso necessario da qualche euristica; in realtà alcuni anni dopo il solito Gregory Maxwell con un post su bitcointalk commmentò dicendo che non era necessariamente vero che tutti gli input fossero della stessa persona. Bastava solo implementare un buon wallet per farlo. Gregory Maxwell, theymos ed altri miseroi in palio 15 Bictoin come bounty per la costruzione di questo wallet ma la creazione di questo prototipo latitò finchè nopara lanciò zerolink che recupera l’idea originale di David Chaum di e-cash e la inserisce nel contesto del CoinJoin quindi rende cieco il coordinatore, come lo era il coordinatore di e-cash negli anni ‘90 che impediva il double spending senza sapere cosa firmava grazie alle blind signatures. Allo stesso modo il coordinatore del CoinJoin è cieco; l’implementazione viene fatta sia su Wasabi che su Whirpool, servizio del wallet Samourai.
Il 2 agosto viene lanciato Dojo
, un applicazione subordinata a Bitcoin Core che viaggia insieme a Bitcoin Core e che serve per “comunicare” con il wallet Samourai. Dojo è necessario perchè prima di allora quando si utilizzava Samourai e Whirpool era vero che durante il CoinJoin il server era accecato dalla crittografia in stile David Chaum ma è anche vero che Samourai è un wallet mobile e tutte le chiavi pubbliche sono richieste per entrare e uscire dal CoinJoin. Questa critica viene risolta parzialmente con il lancio di Dojo, perchè se pochi utenti utilizzavano Dojo e molti utilizzano Samourai “normalmente” il risultato è che se una persona che usa Dojo entra in un CoinJoin con tanti utenti che usano Samorai, risulta ovvio qual è la tua chiave pubblica in entrata e uscita perchè è l’unico non tracciabile mentre tutti gli altri lo sono.
È un fatto storicamente importante perchè con il lancio di Dojo iniziano le critiche di Luke Dashjr e Gregory Maxwell che avvertono che questa implementazione non vanno bene e suggeriscono di non utilizzarle. Si aggiungono tanti altri developer e quello che viene fuori è l’inizio di una battaglia non tecnica ma culturale/morale senza esclusione di colpi.
Il 12 dicembre 2019 esce il primo wallet lightning denominato di “seconda generazione” chiamato Phoenix
, wallet sperimentale con questa idea: “un domani quando tutti useranno Bitcoin e non si potrà accedere al settlement onchain per cifre piccole (per i pagamenti normali utilizzeremo tutti dei layer2 o altre forme comunque off-chain) che senso ha avere un wallet complesso in cui gestisci sia l’onchain che l’offchain?”
Risulta quindi inutile far vedere due tipi di amount, uno onchain e uno su ogni canale aperto. Ma non ti faccio vedere neanche tutti i canali, ne faccio una astrazione. È come quando si naviga su Internet, non vogliamo vedere vediamo ogni connessione TCP verso ogni nodo, se proprio abbiamo lo scrupolo possiamo esplorare le opzioni avanzate, ma di base il browser fa una astrazione per nascondere questa complessità.
Questa semplicità presenta tanti compromessi e trade off:
- A livello di privacy se non si usa TOR con Phoenix si vede in chiaro l’indirizzo IP ed è possibile comunque osservare tutti i canali aperti;
- Quando ricevo dei soldi da qualcuno che fa una transazione onchain viene fatta una transazione di tipo submarine swap, che costa tantissimo;
- Presta liquidità ma ha dei costi molto alti.
Il 6 gennaio 2020 passa inosservata una proposta che sarà un dramma solo nel 2022: BIP 119 -- CHECKTEMPLATEVERIFY
di Jeremy Rubin. È una forma di covenants
: per come funziona Bitcoin ad oggi, se posso spendere un bitcoin lo posso spendere e basta. Soddisfo le condizioni di spesa, entra negli input e viene consumato. Poi creo un altro output con delle condizioni di spesa totalmente diverse. Soddisfo le condizioni A e creo le condizioni B. Non esiste per ora una condizione B di spesa che dica: tu puoi soddisfare questa condizione di spesa solo se gli output che crei soddisfano a loro volta quest’altra condizione. Non si può dire che un coin può essere speso solo in una transazione i cui criteri di ulteriore script di output siano pre determinati.
Il 19 gennaio 2020 Pieter Wuille, Jonas Nick e Anthony Towns si vedono assegnare la BIP 341 – Taproot: SegWit version 1 spending rules che parla di taproot. Dopo due mesi il 16 marzo iniziano gli isolamenti per il COVID-19 e c’è un crollo generale dell’economia, anche di Bitcoin fa un bel tuffo fino a 5000 $.
L'11 maggio c’è il terzo halving party con mezzo mondo in lockdown e il 9 di giugno arriva un altro drama Bitcoin, quello delle blacklist. Il software Bitcoin comprende una parte che blocca gli IP di nodi che fanno spam, che non sono affidabili o che in generale rompono le scatole. Esiste praticamente una blacklist ma nella cultura americana già nel 2020 si è diffusa la moda di attaccare progetti software con la scusa che le parole blacklist, whitelist o master-slave rievocano tristi memorie di schiavismo e che quindi bisogna usare termini differenti. Il 9 giugno 2020 un utente a caso (senza altri contributi) fa una pull request su Bitcoin Core per la sostituzione della parola blacklist che è razzista con la parola blocklist. Oltre ad essere un intervento semi comico ha anche un problema tecnico perchè sarebbe molto ambiguo come termine all’interno del software di Bitcoin; questa pull request viene immediatamente portata in produzione senza dibattito da Marco Falke, perchè voleva evitare “casini” e fa capire che se avesse rifiutato quella pull request si sarebbe attirato addosso gente che lo avrebbe accusato di essere razzista. Quindi la porta in produzione, di sua spontanea volontà. Bitcoin Core si trova in produzione con il merge di una richiesta ridicola e questo fa incazzare un sacco di sviluppatori che sottolineano come Bitcoin Core non sia un giochino dove la gente va a fare propaganda politica, ma è un software serio e di certo non si manda una pull request in produzione senza che la comunità l’abbia accettata.La situazione va in escalation fino a John Newbery che non solo inizia a difendere questa mossa “per l’inclusività” ma addirittura banna dal repository un contributore che aveva realizzato delle pull request su BTCPay Server. Questo fatto è molto negativo ed è l’inizio di una problematica che dura fino ad oggi. Il ruolo degli sviluppatori cambia, si trasforma, evolve: nella blocksize war i developer sono gli “eroi da difendere” mentre qui si nota che queste stesse persone sono più deboli rispetto a questo tipo di populusmo che ha iniziato ad intaccare la società. La nuova ondata di sviluppatori è asservita a questa vawe puritana e la paura di essere estromessi dai progetti diventa sempre più vivida, anche se tali comportamenti non hanno nulla a che fare con l’abilità di gestire un repository o creare del software. La differenza con gli anni ‘90 o inizio 2000 è papabile, il vecchio approccio era del “no bullshit”, gli insulti e il libertinismo nei costumi di personaggi pittoreschi era la normalità.
Il 3 settembre 2020 continua la finanzializzazione che era iniziata l’anno precedente con i futures di Chicago e il 30 novembre si supera di nuovamente il picco precedente; il prezzo in dollari tocca e supera i 19850 $ e quindi si entra ufficialmente in bull market.
Presente e futuro #
Lock-in di taproot e la favola della Co2 #
Siamo nell’era contemporanea, per comodità facciamola partire arbitrariamente dal 2021.
Il 2021 inizia con il simpatico personaggio di Elon Musk che l'8 febbraio annuncia che Tesla metterà parte della propria tesoreria in Bitcoin manifestando una generale sfiducia verso il dollaro e altre valute fiat nel contesto post-lockdown e in generale attuale. Dal 24 marzo Tesla accetta direttamente Bitcoin per vendere le sue macchine.
You can now buy a Tesla with Bitcoin
— Elon Musk (@elonmusk) March 24, 2021
Musk si affida a BTCPay Server con cui nasce una buona collaborazione e scatena un’ondata molto bullish per Bitcoin. Non ci si aspettava tutto questo clamore e questa potenza, sulla base di una conversione di una celebrità come Musk. L’effetto celebrità soprende tantissimo e l’euforia è alle stelle, c’erano veramete tutte le condizioni favorevoli per la salita del prezzo.
Il 12 febbraio un utente lancia su twitter campagna #LaserRayUntil100K che letteralmente significa occhi laser finchè il prezzo di Bitcoin non arriva 100k dollari e su twitter si scatenano tutti quanti con nuove immagini di gente con gli occhi laser
Il 6 marzo parte tutta la questione taproot ma come abbiamo visto c’era già la BIP 341, anche se non era praticamente presente traccia di una proposta effettiva di attivazione; la discussione era fortissima, ma non su taproot in sè perchè non c’era contrarietà ne tecnica ne politica (al contrario di SegWit). Taproot andava bene a tutti. Il dibattito vero era su come attivarlo in produzione, si crearono due fazioni:
- Fazione BIP 8 – Version bits with lock-in by height: “diamo tempo ai miner per dirci che sono pronti, se non sono pronti faremo comunque enforcement di questo soft-fork”;
- Fazione BIP 9 – Version bits with timeout and delay: *“diamo tempo ai miner per dirci che sono pronti, se non sono pronti il soft-work fallirà”;.
Queste fazione creano un problema perchè volendo essere conservativi l’approccio BIP 9 era sicuramente considerato migliore, dall’altra parte developer che in generale sono sempre stati molto conservativi come Luke Dashjr insistevano che questo tipo di approccio “conservativo” aveva permesso ai miner di creare un movimento politico per trasformare il signaling di preparazione di un soft fork in un voto politico di decisione.
Alla fine dei giochi viene fuori una proposta che ha dell’incredibile, viene portata avanti con un potere immenso da parte dello sviluppo di Bitcoin Core ma in realtà scontentava tutti quanti. Questa proposta si chiama Speedy Trial
e permette di concedere il BIP 9 ai miner, ma senza perdere un intero anno di tempo in attesa che i miner facciano signaling, si da un tempo massimo di 1 mese. In questo modo c’è tutto il tempo di provare, fallire ed eventualmente rilanciare una BIP 8 successivamente.
Dopo che viene proposto lo speedy trial, tutta la fazione BIP 8 non è soddisfatta perchè comunque si sta dando potere ai miner mentre la fazione conservatrice BIP 9 ritiene l’attivazione troppo pericolosa perchè il tempo massimo è troppo corto.
Il sentimento prevalente tra i mantainer di Bitcoin Core era che non si stava facendo nulla di concreto, si parlava di taproot da tanto tempo e nessuno aveva ancora fatto niente. Lo speedy trial viene quindi distribuito in produzione, assieme ad un flag che l’utente può manipolare cambiando configurazione per cambiare questo speedy trial e trasformarlo in un BIP 8 che quindi si attiva direttamente dopo lo speedy trial.
Dal punto di vista tecnico sono tutti felici dell’arrivo di taproot ma dal punto di vista di metodo fa girare le scatole a tanta gente perchè sembra una situazione con le modalità “shitcoiner” con i developer che decidono che qualcosa per loro va bene e quindi deve andare bene a tutti.
Il 5 maggio 2021 la società quotata in borsa di mining Bitcoin Marathon, mina un blocco in cui scrive nella coinbase “questo è un blocco ofac compliant” (l’OFAC è una task force finanziaria che regola i mercati di tutto il mondo eliminando transazioni considerata “brutte e cattive” o qualsiasi cosa dia fastidio all’establishment politico in essere). Non si sa esattamente cosa volesse dire che quel blocco fosse “ofac compliant” ma in ogni caso scoppia il trollaggio assoluto, i bitcoiner cominciano a fare CoinJoin e a farsi mandare transazioni da amici in Iran redistribuento i satoshi con piccole transazioni sullo stesso indirizzo della coinbase di Marathon. Praticamente Marathon viene inondata di “soldi gratis” da indirizzi mixati o dichiarati non-compliant. 🤠
Il 19 maggio avviene il disastro per coloro che avevano puntato tutto su Musk come mascotte per Bitcoin; esce un comunicato di Tesla che dice:
Ci siamo sbaglaiti, ci siamo accorti che Bitcoin genera Co2 e causa il global warming, non accettiamo più Bitcoin
– Tesla.
Ovviamente questa affermazione non ha alcun tipo di senso, innanzitutto ripropongono ancora la metrica che ogni transazione Bitcoin consuma energia: questa metrica non ha senso, le transazioni bitcoin non consumano energia, al limite si può dire un blocco Bitcoin in base ad una stima sull’hashrate consuma energia, ma dividere per transazione non ha assolutamente senso. Allora cosa facciamo, banniamo Tesla perchè le sue auto elettriche consumano elettricità?
Lo statement di Tesla è completamente sbagliato, ma la cosa strana è che Tesla non vende Bitcoin dalla propria tesoreria, smette semplicemente di accettarli per il pagamento delle Tesla. Ci sono varie ipotesi sulle motivazioni dietro questa scelta. Una delle più gettonate (ma non confermata, sono solo illazioni) è che secondo alcune fonti c’era stata dall’annuncio di Tesla dell'8 febbraio in poi tantissima gente che aveva comprato Tesla perchè in America per com’è strutturata l’impostazione fiscale, se vendi bitcoin in cambio di fiat devi pagare il capital gain, se invece compri un oggetto non paghi capital gain. Quindi il trucco che tanta gente ha utilizzato per uscire in dollari era acquistare Tesla (no tasse) e rivenderla in dollari, eludendo così la tassa sul capital gain.
Lo statement climatico potrebbe aver celato questa dietrologia, ripeto, non confermata. Anche perchè un miner Bitcoin non produce Co2, funziona ad elettricita..e qualcuno potrebbe obiettare “ok, ma quella elettricità è stata fatta bruciando petrolio e quindi bruciando e rilasciano Co2 nell’atmosfera”. Bene, ma anche la batteria di Tesla non producono Co2 (lo scopo è smettere di usare i motori a scoppio) ma utilizzano l’elettricità, che da qualche fonde dovrà pur arrivare. Se Tesla è green e ambientalista, dire che Bitcoin non lo è risulta quantomeno imbarazzante.
Ban, guerra e Covenants #
Il 21 maggio 2021 arriva l’ennesimo ban della Cina che imperterrita banna Bitcoin fin dal 2014. Tutti i miner devono smettere di operare in territorio cinese e andare via, il fatto interessante è che il 30% dell’hashpower viene fatto in Cina illegalmente, ottimo esempio di proibizionismo fallito. L’altra cosa interessante è che il prezzo (che aveva reagito in modo imbarazzante per Musk) non viene modificato dal ban cinese.
Il 31 maggio 2021 Marathon fa un dietro front totale, appare in video Fred Thiel, CEO di Marathon che annuncia di voler aderire ai principi della community Bitcon e che confermeranno qualunque transazione Bitcoin valida secondo il protocollo. Non ci saranno blacklist e inoltre segnalano l’adozione dello speedy trial di taproot.
Il 5 giugno c’è la Bitcoin conference di Miami in cui Jack Mallers annuncia (in modo molto emozionale, mentre piange) che El Salvador adotterà Bitcoin come valuta a corso legale:
Pochi giorni dopo la legge in El Salvador viene votata e succede una cosa abbastanza ambigua poichè il presidente di El Salvador, Nayib Bukele, apre un twitter spaces parlando con bitcoiner da pari a pari, facendo battute tipiche da meme twitter. Si capisce anche che Bukele fa come se fosse a casa propria, mentre parlano su spaces si scusa dicendo di andare a votare la sua legge sul Bitcoin. C’è una grande ondata di voti favorevoli e la legge passa; legge che in sostanza dice:
- “Tutti i cittadini Salvadoregni sono obbligati -quando ricevono un pagamento- ad accettare anche Bitcoin se il cliente vuole pagare in Bitcoin.” Questo crea in molti un conflitto interno perchè da un lato è bella l’idea di poter pagare in bitcoin, dall’altra eticamente non non è bello che se un venditore non accetta bitcoin deve arrivare “la polizia di turno” ad imporgli di accettare questa valuta;
- Se il merchant ha difficoltà tecniche ad accettare Bitcoin, può essere esonerato dall’obbligo;
- Lo stato metterà in mano a tutti i merchant delle infrastrutture in cui cambiare Bitcoin per dollari in tempo reale e senza fees.
È un legal tender tollerabile, perchè non è una vera e propria imposizione da parte dello stato. Il 7 settembre la legge Bitcoin viene implementata in El Salvador.
Novembre 2021 c’è la conferenza Adopting Bitcoin in El Salvador e durante questi giorni taproot -che era andato in lock in a giugno- viene attivato.
Siamo arrivati al 2022.
Il 24 febbraio le truppe Russe invadono l’Ucraina; tanti ragazzi decidono di scappare dall’Ucraina perchè -nonostante sia uno stato nazionale (invaso e non invasore)- mantiene tutte le caratteristiche tipiche degli stati nazionali e fa subito una mobilitazione che impedisce con la legge marziale ai giovani ucrainini di uscire dal territorio nazionale.
Molta gente, che magari ha altre priorità piuttosto che spararsi addosso con altra gente che non ha mai conosciuto in vita sua, decide di scappare e diventano famose su Internet le prime storie di ucraini con conti correnti e bancomat bloccati che non possono assolutamente passare la frontiera con il cash ma che riescono a scappare grazie a Bitcoin.
Non solo c’è gente che scappa dall’Ucraina ma c’è una situazione simmetrica di gente che scappa dalla Russia perchè c’era puzza di mobilitazione generale anche nell’invasore. Bitcoin torna alla ribalta con queste storie ma, in più, lo stato Ucraino fa una raccolta fondi in criptovalute (sia Bitcoin che shitcoin) per sostenere l’esercito, raccolta fondi che va anche molto bene.
Il 19 aprile scatta un nuovo drama. Jeremy Rubin (sviluppatore non particolamente amato che propose assieme a Mike Hearn delle blacklist su Bitcoin) due anni prima propose per primo una versione molto completa dei famosi covenants
(regole da mettere sull’output che condizionano quale output dovrai mettere quando spenderai questo output come input) con la BIP 119 – CHECKTEMPLATEVERIFY. Improvvisamente Jeremy pubblica un blog post (in stile Gavin Andresen) in cui annuncia che il dibattito sulla BIP 119 sta andando avanti da troppo tempo e nessuno sta prendendo una posizione.
Propone quindi uno speedy trial anche sulla sua idea. Dopo taproot c’era gente ancora arrabbiata per lo speedy trial, perchè sostenevano (a ragion veduta) che farlo anche un argomento tecnicamente non controverso come taproot avrebbe creato un precedente negativo che avrebbe incentivato tutti ad usare lo speedy trial per proporre qualsiasi cosa.
Altri avevano paura dei covenants data la vecchia proprosta delle blacklist di Jeremy e ad altri Jeremy stava semplicemente antipatico perchè adottava lo stile saccente di Gavin, usando un blog post e non seguendo il consenso. Altri ancora sostenevano che covenants fosse una buona idea, ma chi ha decide che sono più imortante da implementare rispetto a CISA o di APO che abilita ad eltoo?
Pare l’ennesimo drama con relativa reazione tossica sia su twitter che su varie mailing list e alla fine il 2 maggio Jeremy pubblica un post e un messaggio in cui annuncia che avrebbe aspettato, che si sarebbero fatte le cose con consenso, sempre se prima non avesse cambiato idea e fosse andato a lavorare per Ethereum (eh..vai.)
Il 28 giugno arriva una nuova ondata in stile post-maximalism
, questa volta aperta da Nick Carter. Nick era famoso per essere uno dei co-fondatori di Castle Island Ventures, una società di venture capital specializzata in investimenti in progetti basati sulla blockchain. Diciamo anche che questo fondo investe anche in shitcoin e in società ambigue, una di quelle in cui ha investito faceva chain-analisys e KYC automatizzato su Ethereum.
Poco dopo Nick parteciperà in un podcast su Ethereum ad affermare quanto è bello Ethereum e quanto sono cattivi i bitcoiner. Questo da inizio ad una danza di circa una quarantina di articoli tutti uguali sulla morte del massimalismo. Il concetto principale in questi articoli è associare il massimalismo (in modo casuale) al modello di previsione stock-to-flow di plan B (che dava come certi i 150k dollari e molti massimalisti erano d’accordo sulla previsione). In raltà, molti avevano ridicolizzato la previsione del prezzo basata su quel modello perchè ovviamente i prezzi del mercato non sono mai prevedibili. Altrimenti tutto questo circo sarebbe banale da affrontare.
L’ultima data di questa lunga epopea non è su Bitcoin, ma su una shitcoin e l’arresto dello sviluppatore Alexey Pertsev creatore di Tornado Cash. La questione è caldissima perchè innazitutto la shitcoin in questione è Ethereum ed è diventa completamente censurata perchè il 51% dei blocchi è effettivamente OFAC compliant. Ma la cosa più incredibile è invece l’arresto di uno sviluppatore open source, che a differenza di Ross Ulbrich (che era anche il gestore di un sito centralizzato e un business o di Assange che comunque era il presidente di una organizzazione) gli sviluppatori puri si pensava fossero protetti. Invece non è così e l’escalation -purtroppo- sembra destinata ad aumentare.
Nuove tecnologie e ossificazione #
CISA (cross input signature aggregation)
: abbiamo già detto che la firma Schnorr è molto più bella della firma ECDSA perchè è aggregabile, ovvero se Alice e Bob firmano un testo con la loro chiave privata e poi si sommano le loro firme, il numero che risulta è una firma valida per la chiave pubblica che è la somma delle chiavi pubbliche di Alice e Bob. Questa firma è già presente in taproot, perchè usiamo una chiave pubbliche che è figlia (ad esempio) delle chiavi pubbliche di Alice e Bob ed è chiaro per far la firma serve la somma delle firme. Questa aggregazione si trova dentro l’input, quando devo spendere dentro l’input aggrego le due firme di Alice e Bob e pubblico solo la firma aggregata.
Molte delle firme di una transazione firmano tutta la transazione, perchè dobbiamo avere per ogni input una firma? Potremmo avere come unica firma la somma di tutte le firme per quella chiave pubblica che è la somma di tutte le chiavi pubbliche necessarie all’interno di tutti gli input. Esaminiamo i vantaggi: - Salva spazio sulla timechain; - Il CoinJoin di base aumenta la privacy ma costa (perchè si scrive di più onchain e bisogna coordinarsi con altri partecipanti). Con CISA, supponiamo Alice deve pagare un input e un output, quindi deve pagare una firma intera. Ma se Alice si unisce a Bob, che deve pagare anche lui una firma intera, con CISA inseriamo una firma sola invece che due. Quindi il costo di una firma viene diviso per due. Aumenterebbe la privacy e si farebbe CoinJoin per risparmiare.
Il vero grosso problema è che SegWit ha aumentato il blocco esattamente dando uno sconto alle firme, la parte che CISA avrebbe fatto risparmiare incentivando la privacy è già ridotta al minimo come costo perchè è 1/4 del costo. CISA e lo sconto Witness si sposano malissimo, purtroppo.
L’idea potrebbe essere eliminare lo sconto Witness ed introdurre CISA, in questo modo con almeno 6 partecipanti (più di 4 perchè c’è un minimo di overhead) si avrebbe lo stesso sconto con il vantaggio di CISA che anche da un punto di vista architetturale risulta molto più snello e pulito rispetto allo sconto Witness che è oggettivamente brutto.
Ci sono poi degli sviluppatori che sono contro CISA ma come idea, ma perchè sono già pronti all’ossificazione del procollo base di Bitcoin.
Prima o poi dovremo fermarci. È vero che CISA è un’ottima idea ma dove ci fermiamo? Dopo CISA troveremo un’altra idea buona ma l’ossificazione è necessaria per un procollo base. La stabilità diventa più importante della bellezza proprio come è accaduto per TCP/IP che cambia dal 1981, cambiamo i protocolli on top.
– John Carvalho
Simplicity
(appena entrato in produzione sulla side chain Liquid): è un linguaggio di scripting Bitcoin generico ad altissimo livello, su cui si può fare quasi tutto, compreso ricostruire quasi tutti i possibili soft fork immaginabili, quindi trasformare il soft fork in parte della definizione dello script invece che in regole di consenso. Il nodo prima di far girare uno script Simplicity sa già quante risorse computazionali userà e quanto tempo utilizzerà e quindi chiaramente è diverso perchè generalizza in modo molto buono. Simplicity è creato da Blockstream e Adam Back sostiene che:
Simplicity è il soft fork che potrebbe portare l’ossificazione, perchè se andasse in produzione come soft fork non dovrà più essere necessario farne altri, tutti quelli che vorrai fare li potrai replicare con Simplicity.
– Adam Back
APO (ANYPREVOUT)
: inizialmenteAPO
è stato presentato dal paper di eltoo come SIGHASH_NOINPUT ed è qualcosa di molto simile ai covenants; dice in sostanza che puoi spendere un input in cui la firma non pre-firma qual’è l’UTXO che vai a spendere, si inizia a firmare e decidi solo alcune condizioni che lo script di quello UTXO dovrà soddisfare. È interessante perchè abilita una versione di lightning network chiamataeltoo
molto più bella, perchè rende i backup molto più semplici e si possono creare canali con N persone. APO è completo ed è scritto a differenza di CISA. Quello che manca è il sostenitore che lo spinga poichè Christian Decker non vuole essere visto come l’uomo che pusha per un soft fork a tutti i costi.
Conclusioni #
Per adesso ho terminato.
Seguiranno aggiornamenti opportunamente segnalati ma intanto ti ringrazio davvero tanto se sei arrivato fin qui, perchè significa che hai non poca pazienza.
Se vuoi darmi un feedback non esitare a scrivermi su telegram, se vuoi seguirmi sono anche su twitter! 😊