Non giriamoci troppo attorno: la blockchain è una tecnologia innovativa e sarà certamente un’importante protagonista del nostro futuro. Tuttavia, come qualsiasi tecnologia, va aggiornata per rimanere costantemente al "passo coi tempi."
Ma come si fa ad aggiornare, o persino ad aggiungere nuove funzioni, a un sistema distribuito come una blockchain? Anche per questo abbiamo una soluzione!
Esistono infatti per ogni chain delle proposte di potenziali aggiornamenti, denominate "Improvement Proposal." Queste proposte possono assumere varie nomenclature, a seconda della tipologia di implementazione e della chain su cui si vuole effettuare l’aggiornamento.
Per esempio, su Ethereum gli aggiornamenti sono chiamati "Ethereum Improvement Proposal," o EIP; su Bitcoin invece "Bitcoin Improvement Proposal," o BIP. Inoltre, a seconda della tipologia di aggiornamento vengono aggiunti dei numeri:
- EIP 1559: questo aggiornamento ha introdotto un nuovo modello per le commissioni di transazione sulla rete Ethereum. Questo modello prevede una tariffa di base (Base Fee) che verrà conseguentemente bruciata, con l'aggiunta facoltativa di un incentivo (Priority Fee) che viene assegnato al validatore affinché selezioni una transazione prima delle altre, accelerandone la conferma.
- BIP 141: uno degli update più importanti nella storia di Bitcoin. Ha introdotto SegWit, risolvendo un grosso problema legato alla malleabilità delle transazioni legacy. Sono anche stati ottimizzati i costi di transazione tramite una gestione migliorata del "Witness."
In genere, queste proposte di aggiornamento riguardano l'introduzione di nuove funzionalità, la correzione di bug o la risoluzione di problemi di sicurezza. Ma trattandosi di un sistema decentralizzato, prima che una proposta possa essere implementata questa deve essere discussa e approvata dalla community.
Le procedure di attivazione di una o più Improvement Proposal variano a seconda della blockchain, e non è dunque possibile determinare un percorso unico valido per ogni singolo progetto. Proveremo tuttavia a definire degli elementi comuni.
Una volta che la proposta di aggiornamento è stata accettata, questa dovrà essere ufficialmente implementata. Per fare ciò, è necessario che tutti i nodi che portano una copia del registro (Full Node o Archive Node) si aggiornino, pronti a seguire le nuove regole.
Durante questa fase si dà origine ad un Fork, o biforcazione. In altre parole vi saranno contemporaneamente nodi non aggiornati, che rispettano ancora le regole precedenti, e nodi già aggiornati, che seguono invece il nuovo regolamento. In questo caso si avrà un Hard Fork: una netta divisione della chain in due percorsi, dove sarà la maggioranza della community a decidere quale versione adottare.
Questo è a grandi linee ciò che accade quando si parla di grossi aggiornamenti delle blockchain: vengono introdotte nuove regole, precludendo ogni possibile retrocompatibilità con le precedenti. Nella stragrande maggioranza dei casi, la community si sposta in massa sulla chain aggiornata... ma non è sempre così.
In passato è infatti accaduto che le community si scontrassero in merito a certi update, causando Hard Fork e generando blockchain/asset differenti. Ricordiamo a tal proposito Bitcoin Cash, nato nel 2017: al tempo una fetta della community di Bitcoin cercava una soluzione per migliorare la scalabilità, e propose di incrementare le dimensioni dei blocchi da 1MB a 8MB. Nacque un'accesa diatriba in ottica distribuzione e censurabilitá, che portò infine a una biforcazione: alcuni utenti preferirono adottare l'aggiornamento e spostarsi su Bitcoin Cash, mentre altre rimasero sulla vecchia blockchain. Inutile specificare chi abbia infine avuto la meglio, a sei anni dalla vicenda.
Vi è però anche la possibilità di effettuare aggiornamenti – seppur di minore entità – retrocompatibili e capaci di coesistere con le regole precedenti. È questo ad esempio il caso della BIP 141: questo update non ha dato origine a una netta biforcazione, ma a un cosiddetto "Soft Fork," dove i nodi non aggiornati partecipano regolarmente alla rete ma senza avere accesso alle funzionalità introdotte dall'update.
Per chi semplicemente detiene criptovalute, solitamente questi aggiornamenti avvengono in maniera invisibile. Ma riteniamo che non soltanto gli sviluppatori, ma anche tutti gli utilizzatori del network dovrebbero rimanere aggiornati sulle ultime migliorie apportate alla blockchain: queste modifiche potrebbero infatti influire – e non poco – sul futuro del registro distribuito e del progetto stesso.