Introduzione

Il dibattito sull'aggiornamento successivo di Bitcoin continua, tuttavia, fino ad oggi (dicembre 2024), la comunità non ha ancora raggiunto un consenso su se aggiornare o quali problemi debbano essere risolti o quali funzionalità debbano essere implementate, con ogni parte che sostiene la propria posizione, simile a una certa impasse politica.

In questa situazione di stallo, sono emersi molti fenomeni interessanti:

  1. Una parte dei membri della comunità sta attivamente promuovendo l'aggiornamento; a causa dell'asimmetria informativa o degli interessi commerciali, alcuni membri fanno costantemente riferimento a certi opcode, mentre alcuni progetti dipendono da alcuni opcode che 'potrebbero apparire'.

  2. Un numero considerevole di sviluppatori pragmatici dell'ecosistema ha svolto un ampio lavoro crittografico e ingegneristico per espandere il potenziale di Bitcoin, basandosi sulla premessa di non effettuare aggiornamenti del protocollo.

  3. Ci sono anche molte voci che sostengono un aggiornamento lento o si oppongono agli aggiornamenti.

La comparsa di questi fenomeni indica che l'argomento dell'aggiornamento è piuttosto popolare nella comunità di Bitcoin, ma riflette anche che una parte considerevole dei membri della comunità non comprende il processo completo di un aggiornamento di Bitcoin e manca di consapevolezza sul ruolo degli strumenti crittografici innovativi nel liberare il potenziale di Bitcoin. L'obiettivo centrale di questo articolo è rompere questa asimmetria informativa, portando le informazioni di tutti a un livello comune, per facilitare discussioni più approfondite.

Questo articolo definirà gli aggiornamenti di Bitcoin, riassumendo alcune regole attraverso un'analisi storica, per poi analizzare le attuali proposte di aggiornamento e potenziali alternative, infine riassumendo alcuni takeaway per i lettori. L'intento di presentare queste informazioni è di far comprendere ai lettori il concetto/storia/progressi degli aggiornamenti di Bitcoin, ponendo le basi per ulteriori discussioni sull'argomento e preparando il terreno per la formazione di un consenso finale nella comunità.

Questo articolo cerca di presentare i fatti, mentre l'autore, come sviluppatore dell'ecosistema Bitcoin, si augura che Bitcoin possa avere ulteriori possibilità; pertanto, l'autore esprimerà opinioni chiare su alcuni argomenti, si prega di distinguere.

Introduzione all'aggiornamento: Cosa e Perché

Cosa sono gli aggiornamenti di Bitcoin

Il white paper di Bitcoin definisce un protocollo, composto da migliaia di nodi che seguono il protocollo Bitcoin, formando la rete blockchain di Bitcoin.

L'implementazione del protocollo (spesso chiamata client) ha molte versioni diverse, secondo

Secondo i dati di https://bitnodes.io/nodes/, il client con la maggiore quota di mercato è Bitcoin Core, quindi i manutentori del codice di Bitcoin-Core (d'ora in avanti Bitcoin-Core-Devs) esercitano un'influenza notevole su Bitcoin.

Il software del nodo Bitcoin è composto da più moduli, e le proposte di aggiornamento relative a Bitcoin sono definite dai BIP (Proposte di Miglioramento di Bitcoin). Sono stati effettuati vari tipi di classificazione per i BIP.

Di solito, quando le persone discutono degli aggiornamenti di Bitcoin, si riferiscono generalmente agli 'aggiornamenti del protocollo di consenso'. Lo stesso vale per il seguito. Poiché l'aggiornamento del protocollo di consenso richiede che la maggior parte dei nodi dell'intera rete raggiunga un consenso (altrimenti potrebbe causare una fork), è necessario procedere con particolare cautela. Come mostrato nella figura qui sotto, i moduli relativi al protocollo di consenso nel sistema Bitcoin e le proposte correlate al consenso dei BIP meritano particolare attenzione.

In realtà, secondo le statistiche del repository GitHub di Bitcoin, le modifiche sono molto attive. Poiché la maggior parte delle modifiche non riguarda il protocollo di consenso, non hanno attirato l'attenzione generale.

Tipi di aggiornamenti del protocollo di consenso

Secondo la definizione di [BIP-123](https://github.com/bitcoin/bips/blob/master/bip-0123.mediawiki), gli aggiornamenti del protocollo di consenso si dividono principalmente in soft fork e hard fork.

Inoltre, c'è un modo non così intuitivo di interpretare e confrontare, che è molto interessante:

Soft fork: aggiungere/rafforzare le regole (immagina semplicemente che è stata aggiunta una nuova funzionalità, come il supporto per gli indirizzi taproot).

Hard fork: rimuovere/allentare le regole (immagina semplicemente che è stata rimossa una restrizione, come quella sui premi per i blocchi).

Processo di BIP e soft fork

Le prime due versioni riuscite di aggiornamento del protocollo di consenso (Taproot/SegWit) sono state effettuate tramite fork morbido, senza causare una grande divisione nella comunità. Questo articolo si concentra sul soft fork, cioè l'aggiornamento compatibile con le versioni software precedenti.

Dopo la presentazione della proposta BIP, il processo che segue è all'incirca come mostrato nella figura qui sotto:

Fonte: https://river.com/learn/what-is-a-bitcoin-improvement-proposal-bip/

Di solito, una proposta di soft fork aggrega più BIP; ad esempio, taproot include 3 BIP:

  1. Schnorr Signature: BIP-340

  2. Taproot: BIP-341

  3. Tapscript: BIP-342

Rivediamo la cronologia dell'aggiornamento di Taproot:

Fonte: Kraken Intelligence, GitHub, CoinDesk, https://www.argoblockchain.com/articles/bitcoin-taproot-upgrade-explained

Le pietre miliari della fase del soft fork di Taproot includono:

  1. Il BIP corrispondente è stato proposto, e il piano di attuazione è stato esaminato.

  2. I manutentori del codice di Bitcoin-Core avviano pull request di aggiornamento su GitHub.

  3. I manutentori del codice di Bitcoin-Core rivedono e uniscono le pull request di GitHub, decidendo il metodo di attivazione.

  4. Pubblicazione della nuova versione del codice di Bitcoin-Core.

  5. Votazione da parte dei miner sulla blockchain per approvare l'altezza del blocco di attivazione del BIP.

  6. L'altezza del blocco raggiunge l'altezza concordata, completando l'aggiornamento.

È importante notare che questo processo è stato riassunto guardando alla storia; in realtà non esiste un consenso scritto su questa pietra miliare.

Durante l'intero processo, la Bitcoin Development Mailing List ha svolto un ruolo cruciale nel consolidare il consenso tra le parti.

Perché aggiornare

Come indicato all'inizio dell'articolo, attualmente ci sono tre principali punti di vista nella comunità riguardo l'aggiornamento.

  1. Fazioni pro-attivazione: hanno presentato numerose proposte, che verranno analizzate di seguito.

  2. Fazione pragmatico-costruttiva: basata sull'attuazione di Fraud Proof (BitVM e le sue estensioni), crittografia funzionale (contratti e prove zk realizzati tramite Bitcoin PIPEs) e collisioni hash (contratti realizzati tramite ColliderScript), ecc.

  3. Fazione conservatrice: ritengono che gli aggiornamenti debbano avvenire molto lentamente e con cautela (ogni 10 anni), come TeamSlowAndSteady, e che non debbano avvenire aggiornamenti a meno che non ci siano attacchi quantistici, come Ossifiers (riferimenti).

L'autore ha fatto un'analisi dei pro e contro dell'aggiornamento:

Come sviluppatore pragmatico dell'ecosistema Bitcoin, l'autore ritiene essenziale sfruttare appieno il potenziale di Bitcoin attraverso innovazioni crittografiche o ingegneristiche nell'ambito del framework del protocollo esistente. Inoltre, da una prospettiva di 'sostenibilità' e 'adattabilità', è auspicabile aggiornare continuamente in base alle necessità, dopo aver valutato l'ampiezza dell'impatto e i rischi per la sicurezza.

Aggiornamenti approfonditi

Stakeholder dell'aggiornamento

Il consenso di Hong Kong nella storia di Bitcoin (firmato nel febbraio 2016 durante un evento di tavola rotonda su Bitcoin) ha avuto come principali partecipanti:

  1. Bitcoin-Core-Devs

  2. Pool minerari

  3. Utenti e sviluppatori dell'ecosistema (principalmente scambi/fornitori di chip, ecc.)

Con l'aumento rapido dell'adozione di Bitcoin, gli stakeholder degli aggiornamenti di Bitcoin sono evoluti da una semplice separazione dei poteri a una situazione di conflitto tra i re, come descritto nel rapporto Analysing Bitcoin Consensus: Risks in Protocol Upgrades.

Alcuni di questi ruoli meritano di essere presentati con attenzione:

  1. Nodi economici: si riferisce principalmente agli scambi CEX mainstream/istituti di pagamento/fornitori di servizi di custodia, la loro posizione nei soft fork determina quale sia il Bitcoin legittimo, avendo un impatto significativo sull'adozione.

  2. Investitori: nel contesto globale in cui le strategie Bitcoin (EFT/riserve istituzionali/riserve statali, ecc.) sono in voga, il ruolo degli investitori diventa più complesso.

  3. Sviluppatori Utente e Ecosistema: dopo l'aggiornamento di Taproot, l'ecosistema di Bitcoin ha prosperato, emergendo protocolli di asset come Ordinals e un gran numero di applicazioni native/protocolli di espansione.

Per questi ruoli, ci sono alcune conclusioni interessanti:

  1. Diverse categorie di stakeholder svolgono ruoli diversi in fasi diverse: ad esempio, gli sviluppatori dell'ecosistema mostrano un forte interesse per le proposte, i programmatori del protocollo esercitano frequentemente i diritti di revisione sui BIP, mentre le pool minerarie e i nodi economici hanno un impatto significativo sull'attivazione.

  2. Diversi sviluppatori dell'ecosistema tendono a proporre e sostenere proposte legate ai propri interessi commerciali.

Storia degli aggiornamenti e sintesi

Dai documenti pubblici, sin dall'avvio della rete Bitcoin, ci sono stati diversi aggiornamenti soft fork.

Fonte dei dati:

https://blog.bitmex.com/a-complete-history-of-bitcoins-consensus-forks-2022-update/

https://www.drivechain.info/media/slides/mit-2023.pdf

Dall'immagine sopra, è possibile trarre alcune conclusioni interessanti:

  1. Il protocollo di Bitcoin ha mostrato una certa rigidità; col passare del tempo, la frequenza dei soft fork è diminuita.

  2. Il tempo necessario per raggiungere un consenso sugli aggiornamenti è aumentato.

Aspetti di attenzione del Soft Fork

Analizzando i BIP inclusi nei soft fork passati, si possono riassumere i seguenti aspetti di attenzione:

Cosa rende una buona proposta di aggiornamento.

In base ai fatti e alle analisi elencati precedentemente, cerchiamo di definire una buona proposta di aggiornamento:

  1. Sostenere Bitcoin come sistema di pagamento centrale: Bitcoin ha una posizione unica.

  2. Raggiungere un elegante equilibrio tra potenziale applicativo e rischi: rendendo la maggior parte delle persone soddisfatte, senza nessuno che si opponga fortemente.

  3. Dimensione adeguata dell'aggiornamento: non deve essere troppo semplice (non vale la pena di fare grandi cambiamenti), né troppo complessa (difficile da implementare).

  4. Momento ragionevole: è necessario un forte bisogno di risolvere problemi specifici. Ad esempio, durante la fase di aggiornamento di SegWit, l'espansione era una necessità forte.

Prospettive per l'aggiornamento

Classificazione delle proposte

L'autore ha raccolto la maggior parte delle proposte attive, cercando di etichettarle in base agli aspetti di interesse e posizionandole in quattro quadranti, per facilitare la comprensione visiva dei lettori.

È importante prestare attenzione alla necessità di classificazione:

  1. I quattro aspetti di attenzione non sono completamente isolati, ad esempio, un BIP che favorisce la programmabilità potrebbe in realtà contribuire anche alla scalabilità.

  2. Una proposta potrebbe attirare attenzione sotto diversi aspetti, ad esempio, OP_CAT è in sé un miglioramento della programmabilità, ma in realtà la maggior parte delle persone lo sostiene perché aiuta a realizzare il validity rollup.

  3. La questione di quali aspetti di una proposta attirano attenzione richiede una sorta di 'consenso' (politica in sé). È importante notare che qui non esiste una definizione unica, poiché diversi partecipanti possono avere diverse prospettive.

  4. Il secondo diagramma non è un sistema di coordinate, ma una classificazione basata su etichette. Le proprietà dei cerchi (dimensione/posizione/colore, ecc.) non hanno significato speciale.

Voce della comunità

Dall'immagine sopra, si può vedere che la comunità ha un certo consenso sui problemi da risolvere con l'aggiornamento, ovvero le funzionalità necessarie per il sistema di pagamento, che possono essere classificate in due grandi categorie:

  1. Programmabilità: conferisce una maggiore capacità di programmazione agli UTXO, come covenant/vault/riflessione delle transazioni/pagamenti condizionali/miglioramenti dello script, ecc.

  2. Scalabilità: per l'espansione del L2, l'intero piano si divide in due categorie principali: verifica on-chain e verifica off-chain, con alcune proposte positive in fase di promozione.

Il mistero del consenso

L'autore ritiene che la comunità di Bitcoin si trovi in un labirinto di consenso riguardo il prossimo aggiornamento, per i seguenti motivi:

  1. Rigidità: un sistema software con un valore di mercato di quasi 2 trilioni USD, una parte considerevole degli stakeholder tende a mantenere la stabilità, senza che nessuna parte voglia assumersi la responsabilità di eventuali incidenti.

  2. Interessi degli stakeholder molto diversificati: le richieste degli stakeholder sono diverse e il loro ruolo varia in fasi diverse; il governo è diventato anch'esso uno stakeholder.

  3. Meccanismi di governance imperfetti: Bitcoin, essendo la prima blockchain, manca di meccanismi di governance molto solidi; la comunità non riesce a raggiungere un consenso sui metodi di attivazione del soft fork.

  4. Il ruolo dello sviluppatore del protocollo è in continua evoluzione: anche se possono effettivamente rifiutare alcune proposte, non possono essere semplicemente definiti come conservatori o innovatori.

  5. Mancanza di urgenza: con lo sviluppo sempre più raffinato delle infrastrutture blockchain, non c'è una forte necessità di aggiornamenti per Bitcoin.

Sintesi e Takeaway

Questo articolo introduce i concetti di base degli aggiornamenti di Bitcoin, analizza approfonditamente gli aggiornamenti storici e infine guarda alle proposte attive per il prossimo aggiornamento, riassumendo le ragioni del mistero del consenso attuale.

Dopo aver esaminato e proiettato, si ritiene che i lettori abbiano già una certa comprensione dello stato attuale degli aggiornamenti, concludendo infine con alcuni takeaway.

  1. Costruzione pragmatica mentre si avanza con cautela nell'aggiornamento, il soft fork è preferibile.

  2. Interessi altamente diversificati, la comunità tende a essere conservatrice.

  3. È necessario discutere dell'aggiornamento mantenendo fermo il valore centrale di Bitcoin.

  4. La scalabilità è solo uno degli aspetti di interesse per l'aggiornamento.

  5. È necessaria un'occasione migliore; una buona proposta di aggiornamento otterrà rapidamente consenso.

  6. La comunità deve esplorare meccanismi di governance migliori.

Ringraziamenti

Durante il processo di ricerca/scrittura/revisione di questo articolo, ho ricevuto un grande aiuto, compreso il contributo di membri della comunità che hanno preferito rimanere anonimi. Ringrazio tutti.

È importante notare che, considerando che alcune opinioni nel testo possono essere influenzate da preferenze personali, l'elenco di ringraziamenti seguente non rappresenta necessariamente l'approvazione totale da parte loro del contenuto dell'articolo, né l'intento di coinvolgere queste persone generose della comunità in dispute.

  • Collaborazione e revisione (in ordine alfabetico)

Adrien Lacombe

Bob Bodily

Bitlayer Research Team

Domo

Jeffrey Hu

Rosso

Ren Zhang

Scott Odell

Super Testnet

Will Foxley

  • Ha fornito feedback e aiuto (in ordine alfabetico)

Ajian

Andrew Fenton

Ben77

David Tse

Eli Ben-Sasson

Mi Zeng

Lavoro futuro

Durante l'intero processo, l'autore ha scoperto che ci sono molte questioni meritevoli di approfondimento, come le soluzioni per alcune funzionalità, lo studio di alcune proposte specifiche, il supporto dati per alcune opinioni, ecc. L'autore affronterà queste questioni in articoli successivi.

Bibliografia

https://bitcoinops.org/

https://opnext.dev/

https://groups.google.com/g/bitcoindev

https://github.com/TABConf/6.tabconf.com

https://petertodd.org/2024/covenant-dependent-layer-2-review

https://blog.bitmex.com/a-complete-history-of-bitcoins-consensus-forks-2022-update/

https://blog.bitmex.com/bitcoins-consensus-forks/

https://github.com/bitcoin/bips/blob/master/bip-0123.mediawiki

https://river.com/learn/what-is-a-bitcoin-improvement-proposal-bip/

https://bitnodes.io/nodes/

https://github.com/bitcoin/bitcoin/pulse/monthly

https://river.com/learn/what-is-a-bitcoin-improvement-proposal-bip/

https://trustmachines.co/learn/bitcoin-taproot-upgrade-basic-breakdown/

https://www.argoblockchain.com/articles/bitcoin-taproot-upgrade-explained

https://medium.com/@bitcoinroundtable/bitcoin-roundtable-consensus-266d475a61ff

https://github.com/bitcoin-cap/bcap

https://newsletter.blockspacemedia.com/p/four-takeaways-from-op-next

https://blog.bitfinex.com/education/is-ossification-good-or-bad-for-bitcoin/

https://arxiv.org/abs/2305.04079

https://www.allocin.it/uploads/placeholder-bitcoin.pdf

https://eprint.iacr.org/2024/1802

https://en.bitcoin.it/wiki/Covenants_support