Attivato a novembre 2021, Taproot è il primo soft fork avvenuto dopo l’implementazione di SegWit.
L’aggiornamento Taproot è stata proposto nel 2018 da Gregory Maxwell, sviluppatore di Bitcoin Core. È stato attivato al blocco 709632, minato alle ore 5:15 UTC del 14 novembre.
Miglioramenti introdotti da Taproot
Il soft fork Taproot comprende tre proposte di miglioramento: BIP 340 (firme di Schnorr), BIP 341 (Taproot) e BIP 342 (Tapscript):
- BIP 340 – Le firme di Schnorr, uno schema di firma crittografico sviluppato da Claus Schnorr, sono un metodo più rapido, sicuro e meno costoso per effettuare la firma di una transazione. Il vantaggio più importante delle firme di Schnorr è la capacità di aggregare diverse chiavi all’interno di una transazione e produrre una singola firma unica, offrendo vantaggi non solo di risparmio sulle fee, ma anche in privacy. Ad esempio, un wallet multi-sig ha bisogno di più firme per poter effettuare una transazione. Tutte le firme sono visibili sulla blockchain, perciò, prima del soft fork Taproot, tutti i wallet multi-sig erano facilmente identificabili. Per esempio un’azienda che usa un wallet multi-sig 5 di 7 per la gestione della tesoreria si troverebbe a far parte di un insieme molto ristretto di utenti che usano lo stesso schema di firma, rendendo molto semplice identificare tutte le transazioni ad essa relative.
Le firme di Schnorr vanno a offrire un’alternativa alla firma digitale chiamata Elliptic Curve Digital Signature Algorithm (ECDSA), utilizzata fin dalla creazione di Bitcoin.
- BIP 341 – Taproot utilizza una tecnica chiamata MAST (Merklized Alternative Script Trees) per scrivere meno dati di transazioni di smart contract sulla blockchain, consentendo di nascondere l’esecuzione di uno script Bitcoin e altre funzionalità più complesse. In questo modo lo script di esecuzione dello smart contract può rimanere nascosto, pubblicando sulla blockchain solo le parti necessarie per l’enforcement del contratto. Così facendo inoltre nei casi di esecuzione di una transazione cooperativa tra le parti, la transazione risulterebbe addirittura indistinguibile da un pagamento semplice. Anche una transazione di chiusura di un canale Lightning Network sarà indistinguibile dalle altre, garantendo quindi ancora una volta vantaggi sia in termini di fee, che di privacy.
- BIP 342 – Tapscript implementa un nuovo linguaggio di programmazione delle transazioni che sfrutta le firme di Schnorr e Taproot. Con questa modifica vengono aggiunti dei nuovi Opcode, cioè le istruzioni utilizzate in Bitcoin. Ad esempio, gli operatori OP_CHECKMULTISIG e OP_CHECKMULTISIGVERIFY vengono sostituiti dall’operatore OP_CHECKSIGADD. Taproot introduce un nuovo tipo di output, chiamato P2TR (Pay to Taproot) con una nuova tipologia di indirizzi simile ma leggermente diversa da quelli SegWit.
Esempio: bc1p8denc9m4sqe9hluasrvxkkdqgkydrk5ctxre5nkk4qwdvefn0sdsc6eqxe
Attivazione Taproot e Speedy Trial
Il soft fork di Taproot è stato attivato tramite Speedy Trial, ovvero un metodo di attivazione di soft fork in cui i miner e mining pool contribuiscono al coordinamento segnalando la predisposizione a procedere con l’attivazione del soft fork con un flag all’interno dei loro blocchi.
Per essere attivato, Taproot ha dovuto ricevere il supporto da parte del 90% dei miner in un periodo di 2016 blocchi (circa due settimane). Lo Speedy Trail si contrappone infatti ad altri metodi di attivazione di soft fork usati in precedenza proprio per il periodo molto breve di coordinamento tra i miner, atto a capire rapidamente se i miner sono pronti all’upgrade del protocollo.