Vai al contenuto
buybitcoinsmart

Glossario / Indirizzi e chiavi

P2TR

Noto anche come indirizzo Taproot, Pay-to-Taproot, indirizzo bc1p.

Che cos'è P2TR?
P2TR paga a un'unica chiave pubblica modificata da 32 byte, quindi una spesa tramite percorso di chiave appare identica on-chain sia che abbia firmato una persona sia che un contratto complesso sia stato regolato in modo cooperativo.

Specificato nel BIP-341.

Pay to taproot è la witness version 1, attiva dal blocco 709.632 il 14 novembre 2021, e si scrive come un indirizzo di 62 caratteri che inizia con bc1p. Una spesa cooperativa pubblica una sola firma Schnorr di 64 byte e costa circa 57,5 vbyte per input, l'input più economico su bitcoin. Qualunque regola alternativa incorporata nell'output resta invisibile a meno che qualcuno la usi davvero.

Come funziona

Un output P2TR è OP_1 seguito da un push di 32 byte, 34 byte in totale, e quei byte sono una chiave pubblica x-only. X-only significa che la coordinata y viene scartata e dedotta, il che fa risparmiare un byte rispetto alle chiavi compresse di 33 byte usate ovunque altrove.

La chiave che vedi non è la chiave che qualcuno detiene. È una chiave interna modificata con un hash di sé stessa e della radice di Merkle di un albero di script alternativi, così il valore pubblicato impegna insieme il percorso cooperativo e ogni alternativa. La spesa segue poi una di due strade. Il percorso di chiave produce una sola firma sulla chiave modificata e non rivela altro. Il percorso di script rivela una foglia dell'albero, più gli hash del ramo che dimostrano che quella foglia ne fa parte, e lascia il resto dell'albero segreto per sempre.

Le firme Schnorr secondo il BIP-340 rendono il percorso di chiave economico e privato. Misurano 64 byte contro 71 o 72 di una firma ECDSA codificata in DER, e si sommano in modo lineare, così più firmatari possono combinare le proprie chiavi e produrre una sola firma con MuSig2. Una configurazione 2 su 2 che coopera finisce per essere indistinguibile da una persona che paga una fattura.

Poiché la witness version 1 richiede bech32m, un indirizzo bc1p usa la costante di checksum del BIP-350 anziché quella bech32 originale.

Dove lo vedi

I wallet che usano Taproot come impostazione predefinita derivano dal ramo BIP-86 in m/86'/0'/0'. Bitcoin Core ha aggiunto la codifica nella versione 22.0 e ha iniziato a generare descrittori tr() per i nuovi wallet a descrittori nella versione 23.0.

Le iscrizioni inseriscono dati arbitrari nel witness di un percorso di script Taproot, ed è per questo che gran parte dell'attività bc1p non ha nulla a che fare con i pagamenti. È un effetto collaterale dello sconto sui dati del witness, non una proprietà del tipo di indirizzo.

L'attrito sta ai margini. Alcuni exchange rifiutano ancora destinazioni di prelievo bc1p, e lo stesso fanno alcuni terminali di pagamento più vecchi. Non c'è soluzione alternativa dentro il tuo wallet: usa un indirizzo bc1q dalla stessa frase di recupero, e consolida più tardi se vuoi tutto sotto Taproot.

P2TR vs Taproot

Taproot è l'aggiornamento e P2TR è il tipo di output che ha creato. Il soft fork ha riunito tre specifiche: il BIP-340 ha definito le firme Schnorr, il BIP-341 ha definito il formato dell'output e le sue regole di spesa, e il BIP-342 ha definito tapscript, il linguaggio di script modificato usato dentro l'albero. P2TR è la parte con cui interagisci, l'indirizzo che inizia con bc1p. Dire «uso Taproot» quasi sempre significa «il mio wallet mi dà indirizzi P2TR», ma l'aggiornamento ha anche cambiato il modo in cui le firme vengono verificate dentro script che potresti non toccare mai.

Da non confondere con

Domande frequenti

Devo usare un indirizzo bc1p?

Usalo se tutto ciò con cui hai a che fare ne accetta uno. Un input Taproot costa circa 57,5 vbyte contro 68 per bc1q, quindi il risparmio è reale ma modesto, e il divario di compatibilità è il fattore decisivo per la maggior parte delle persone.

Perché il mio prelievo verso un indirizzo bc1p è stato rifiutato?

La piattaforma non ha aggiunto il supporto a bech32m, che Bitcoin Core ha introdotto nella versione 22.0. Usa un indirizzo bc1q dallo stesso wallet. I bitcoin arrivano nello stesso posto perché entrambi gli indirizzi provengono da un'unica frase di recupero.

Leggi anche

Termini correlati

Altro in Indirizzi e chiavi

Leggi questa pagina in inglese