Fides BitcoinIscriviti gratis

Protocollo · Avanzato

Tapscript: Script Bitcoin con Taproot

Tapscript (BIP342) è il nuovo linguaggio di scripting di Bitcoin introdotto con Taproot nel 2021. Non è un linguaggio completamente nuovo — estende Bitcoin Script con nuovi opcode, corregge inefficienze storiche e si integra profondamente con il Merkelized Abstract Syntax Tree (MAST) per rendere i contratti Bitcoin più efficienti, privati e flessibili.

Differenze da Bitcoin Script legacy

CaratteristicaLegacy ScriptTapscript
Firma richiestaECDSA (secp256k1)Schnorr (BIP340)
Multisig n-di-mOP_CHECKMULTISIG: O(n) verificheOP_CHECKSIGADD: O(n) ma senza bug NULLDUMMY
Complessità contrattiTutti i rami esposti nella spend transactionSolo il ramo usato rivelato — altri nascosti nel MAST
Opcode futuriOpcode sconosciuti = FAIL (rigido)OP_SUCCESS: opcode sconosciuti = SUCCESS (upgrade friendly)
Limite dimensione stack1.000 elementi, 520 byte/elementoStessi limiti ma con Schnorr più efficiente
Script leavesNon esiste conceptOgni leaf è uno script separato nel MAST tree

OP_CHECKSIGADD: multisig efficiente

Il vecchio OP_CHECKMULTISIG aveva un bug: consumava un elemento in più dallo stack (il famoso 'extra null'). Questo era un bug noto ma non correggibile senza hard fork.

OP_CHECKSIGADD risolve elegantemente: invece di verificare tutte le firme in una volta, aggiunge 1 al counter se la firma è valida. Permette script n-di-m senza il bug.

Esempio 2-di-3: '<sig_A> <sig_B> <pubkey_A> OP_CHECKSIGADD <pubkey_B> OP_CHECKSIGADD <pubkey_C> OP_CHECKSIGADD OP_2 OP_EQUAL'

Vantaggio combinato con Schnorr: per il caso cooperativo (tutti i firmatari disponibili), MuSig2 aggregato con Schnorr produce una singola firma — size e fee identici a un singolo firmatario. OP_CHECKSIGADD è usato solo per il caso non cooperativo.

MAST e Tapscript: privacy dei contratti

Problema legacy: in un contratto P2SH con multiple condizioni di spesa (es. dopo 1 anno può spendere con 1 chiave; oppure con 2 di 3 chiavi sempre; oppure con preimage hash), tutta la struttura del contratto viene rivelata quando si spende.

Soluzione MAST: ogni condizione è una leaf in un Merkle tree. Quando spendi, riveli solo la leaf usata + il Merkle proof che quella leaf è nel tree. Le altre condizioni rimangono nascoste.

Esempio: un vault con 3 condizioni di recovery → rivela solo quella usata. Un osservatore esterno non sa quante altre condizioni esistevano.

Footprint on-chain minore: paghi solo per la leaf usata, non per tutto il contratto. Contratti complessi diventano economicamente accessibili.

OP_SUCCESS: preparare Bitcoin per il futuro

Come funziona OP_SUCCESS

In Tapscript, alcuni opcode sono designati come OP_SUCCESS (80+ valori riservati).

Un nodo che incontra OP_SUCCESS valida lo script come TRUE immediatamente — senza eseguire il resto.

I vecchi nodi (pre-upgrade) vedono OP_SUCCESS e approvano. I nuovi nodi (post-upgrade) implementano la logica reale dell'opcode.

Risultato: futuri opcode possono essere aggiunti come soft fork senza richiedere che tutti i nodi aggiornino immediatamente.

Questo è il meccanismo proposto per future aggiunte come OP_CAT (concatenazione), OP_CHECKTEMPLATEVERIFY (covenant), e altri opcode che permetterebbero contratti ancora più sofisticati su Bitcoin.

Use case di Tapscript

Vault con timelock

Spesa normale: chiave singola. Se compromessa: dopo 1 settimana, chiave di recovery può spostare i fondi. Solo la condizione usata viene rivelata.

HTLC ottimizzati (Lightning)

Hash Time-Locked Contracts usati in Lightning possono essere scritti in Tapscript con il caso cooperativo come key path (Schnorr) — fee minime per chiusure collaborative.

Multisig istituzionale

5-di-7 per approvazione normale, con 2-di-7 se timeout. Ogni condizione in una leaf separata. On-chain visibile solo il path usato.

Eredità / Dead man&apos;s switch

Spesa normale: chiave primaria. Se non si spende entro 1 anno: chiave erede può accedere. Script con OP_CHECKSEQUENCEVERIFY come timelock relativo.

Protocollo e contratti ogni settimana

Il Report Fides Bitcoin analizza il protocollo, gli upgrade e l'ecosistema di sviluppo di Bitcoin — in italiano, ogni luned��.

Iscriviti gratis →