Vai al contenuto
buybitcoinsmart

Glossario / Protocollo e aggiornamenti

Taproot

Noto anche come BIP341.

Che cos'è Taproot?
Taproot è il soft fork del 2021 che ha dato a bitcoin le firme Schnorr e un nuovo tipo di output in cui il percorso di spesa cooperativa appare identico a un normale pagamento a chiave singola.

Specificato nel BIP-341.

Tre specifiche pubblicate insieme: il BIP-340 per le firme Schnorr, il BIP-341 per il tipo di output e il BIP-342 per il linguaggio di script adeguato. L'attivazione è avvenuta al blocco 709.632 il 14 novembre 2021, quattro anni dopo l'aggiornamento precedente. L'effetto pratico è che accordi complicati, casseforti multisig, depositi a garanzia, chiusure di canale, possono regolarsi apparendo come il pagamento di chiunque altro.

Come funziona

Il progetto parte da un'osservazione su come finiscono davvero i contratti: quasi tutti finiscono con un accordo.

Un output Taproot si impegna su due cose insieme dentro un unico valore di 32 byte. Una è una chiave pubblica, detenuta da chiunque siano le parti che cooperano. L'altra è un albero di merkle le cui foglie sono script alternativi, le alternative che si applicano quando la cooperazione fallisce. La chiave pubblicata è la chiave cooperativa modificata tramite un hash di se stessa e della radice di quell'albero, il che significa che l'output si impegna su ogni alternativa senza rivelare che ne esista alcuna.

La spesa poi prende una di due strade. Il percorso della chiave produce una sola firma e non pubblica nulla sull'albero, quindi la transazione è indistinguibile dal pagamento di una sola persona. Il percorso dello script rivela esattamente una foglia più gli hash fratelli necessari a provare che appartiene alla radice impegnata, e ogni altro ramo resta segreto per sempre. Una cassaforte con un quorum di due su tre, una chiave di recupero con ritardo temporale e una clausola di emergenza espone solo la clausola usata.

Il BIP-342 ha adeguato il linguaggio di script per quelle foglie. OP_CHECKMULTISIG non è disponibile dentro una foglia Taproot e OP_CHECKSIGADD lo sostituisce, contando sullo stack le firme riuscite invece di consumare un gruppo in una volta, il che consente di scrivere controlli a soglia senza la vecchia goffaggine. Il limite di 10.000 byte per la dimensione dello script e il limite di 201 opcode non ci sono più, sostituiti da un budget di operazioni di firma che cresce con la dimensione del witness. I tipi di chiave pubblica sconosciuti e le versioni di foglia sconosciute sono definiti validi, lasciando spazio al prossimo aggiornamento senza un altro formato di indirizzo.

Poiché Taproot occupa la versione del witness 1, i suoi indirizzi usano il checksum bech32m del BIP-350 invece di quello bech32 originale. Per questo un software può accettare bc1q e comunque rifiutare bc1p.

Perché questo conta quando compri bitcoin

La questione della privacy è quella che riguarda quasi tutti, comprese le persone che non scriveranno mai uno script.

Ogni modo precedente di proteggere bitcoin si annunciava da sé. Un deposito multisig 2-su-3 era leggibile on-chain come un deposito multisig 2-su-3, il che diceva alle società di analisi della catena, e a chiunque acquistasse dati da loro, che l'indirizzo apparteneva a qualcuno che ne deteneva abbastanza da valere la pena. Una spesa Taproot cooperativa dalla stessa configurazione pubblica una firma su una chiave. La sicurezza è invariata e il segnale è sparito.

Il costo va nella stessa direzione. Un input Taproot con percorso della chiave è il tipo di input più economico su bitcoin, e il divario aumenta man mano che la configurazione si complica, perché i rami alternativi che non usi mai non costano nulla. Per chi costruisce il tipo di configurazione di eredità o multisig che descrivono le nostre recensioni di wallet hardware, questo cambia il calcolo su quante chiavi vale la pena avere.

L'attrito è reale e vale la pena pianificarlo. Alcuni exchange rifiutano ancora bc1p come destinazione di prelievo, e il firmware più vecchio dei wallet hardware può non derivare affatto indirizzi Taproot. La soluzione è noiosa: ricevi su un indirizzo bc1q dalla stessa frase di recupero, e passa a Taproot quando tutto il tuo stack lo gestisce. Non si perde nulla aspettando, dato che entrambi i tipi di indirizzo derivano da un unico backup.

Una nota onesta sugli effetti collaterali. I dati di witness economici di Taproot sono ciò che ha reso convenienti le iscrizioni, e la domanda che ne è seguita ha spinto le commissioni a livelli che i pagamenti ordinari non vedevano da anni. È stata una conseguenza dello sconto e non un obiettivo del progetto, ed è giusto imputarglielo.

Speedy Trial, il compromesso che ha attivato Taproot

All'inizio del 2021 il codice non era più controverso e il metodo di attivazione rischiò comunque di affondarlo.

La discussione verteva sul BIP-8 e sul suo flag lockinontimeout. Una parte voleva LOT impostato su true, forzando l'attivazione allo scadere del termine che i miner segnalassero o no, sul principio che il 2017 aveva dimostrato che i miner potevano bloccare tutto a tempo indefinito. L'altra lo voleva false, sul principio che un'attivazione forzata con scarso sostegno rischia la divisione che cerca di evitare. Nessuna delle due parti si mosse per mesi.

Speedy Trial ha posto fine allo stallo rendendo la questione più piccola. Ha mantenuto il conteggio dei bit di versione del BIP-9, abbassato la soglia a 1.815 di 2.016 blocchi, aperto una finestra di circa tre mesi e fissato un'altezza minima di attivazione fissa di 709.632, così che il lock-in e l'applicazione fossero separati da un intervallo lungo e prevedibile. Se i miner segnalavano, il fork avveniva in una data nota. Se non lo facevano, il tentativo scadeva in fretta e la discussione più dura poteva riprendere senza aver perso nulla.

Il codice è arrivato in Bitcoin Core 0.21.1 il 1º maggio 2021. I miner hanno superato la soglia nel periodo di difficoltà che è terminato il 12 giugno 2021, dando alla rete cinque mesi di preavviso prima che cambiassero le regole. Resta l'unico metodo di attivazione usato da bitcoin progettato principalmente per fallire a basso costo.

Taproot vs firme Schnorr

Taproot è il pacchetto; le firme Schnorr ne sono una parte. Il BIP-340 definisce uno schema di firma che esiste in crittografia dagli anni 1980 e che in linea di principio potrebbe essere usato ovunque, mentre il BIP-341 definisce come è fatto un output bitcoin e il BIP-342 definisce cosa viene eseguito al suo interno. Su bitcoin i tre sono inseparabili in pratica, perché una firma BIP-340 è valida solo in una spesa con versione del witness 1, ma sono documenti separati che risolvono problemi separati, e l'aggregazione delle chiavi che le persone trovano più interessante è una proprietà dello schema di firma, non di Taproot stesso.

Da non confondere con

Domande frequenti

Mi serve un indirizzo Taproot?

Non c'è urgenza. Un indirizzo bc1p è il più economico da spendere e il più privato per il multisig, ma il supporto presso gli exchange è ancora disomogeneo. Conserva un indirizzo bc1q derivato dalla stessa frase di recupero per le piattaforme che rifiutano bc1p.

Un wallet vecchio può inviare denaro a un indirizzo Taproot?

Solo se gestisce bech32m, il checksum introdotto per la versione witness 1. Il software scritto prima di Taproot rifiuterà un indirizzo bc1p come non valido, il che è un limite lato client e non qualcosa che il protocollo impedisca.

È Taproot la causa dell'aumento delle commissioni?

Indirettamente. Lo sconto sul witness ha reso economico incorporare dati arbitrari in un percorso di script Taproot, che è ciò che fanno le iscrizioni, e la domanda che ne è derivata ha gareggiato con i pagamenti per lo spazio nei blocchi. Lo sconto è precedente a Taproot ed è arrivato con SegWit.

Leggi anche

Termini correlati

Altro in Protocollo e aggiornamenti

Leggi questa pagina in inglese