Glossar / Adressen und Schlüssel
P2TR
Auch bekannt als Taproot-Adresse, Pay-to-Taproot, bc1p-Adresse.
- Was ist P2TR?
- P2TR zahlt an einen einzelnen angepassten öffentlichen Schlüssel von 32 Bytes, sodass ein Key-Spend on-chain identisch aussieht, ob eine Person signiert hat oder ein komplizierter Vertrag kooperativ abgewickelt wurde.
Spezifiziert im BIP-341.
Pay to taproot ist Witness-Version 1, live seit Block 709.632 am 14. November 2021, und wird als eine 62 Zeichen lange Adresse geschrieben, die mit bc1p beginnt. Ein kooperativer Spend veröffentlicht eine einzelne Schnorr-Signatur von 64 Bytes und kostet etwa 57,5 vBytes pro Input, der günstigste Input bei Bitcoin. Welche alternativen Regeln auch immer in den Output eingebaut wurden, bleiben unsichtbar, solange sie niemand tatsächlich nutzt.
Wie es funktioniert
Ein P2TR-Output ist OP_1 gefolgt von einem Push von 32 Bytes, insgesamt 34 Bytes, und diese Bytes sind ein x-only öffentlicher Schlüssel. X-only bedeutet, dass die y-Koordinate weggelassen und abgeleitet wird, was ein Byte gegenüber den 33 Byte großen komprimierten Schlüsseln spart, die überall sonst verwendet werden.
Der Schlüssel, den Sie sehen, ist nicht der Schlüssel, den jemand besitzt. Es ist ein interner Schlüssel, der mit einem Hash aus sich selbst und dem Merkle-Root eines Baums alternativer Skripte angepasst wird, sodass der veröffentlichte Wert gleichzeitig auf den kooperativen Pfad und jeden Ausweichpfad festgelegt ist. Der Spend nimmt dann einen von zwei Wegen. Der Key-Pfad erzeugt eine einzelne Signatur über den angepassten Schlüssel und offenbart nichts weiter. Der Script-Pfad offenbart ein Blatt des Baums sowie die Branch-Hashes, die belegen, dass dieses Blatt dazugehört, und lässt den Rest des Baums für immer geheim.
Schnorr-Signaturen nach BIP-340 machen den Key-Pfad günstig und privat. Sie sind 64 Bytes groß gegenüber 71 oder 72 bei einer DER-kodierten ECDSA-Signatur, und sie addieren sich linear, sodass mehrere Unterzeichner ihre Schlüssel kombinieren und eine einzige Signatur unter MuSig2 erzeugen können. Eine 2-von-2-Regelung, die kooperiert, ist am Ende nicht von einer Person zu unterscheiden, die eine Rechnung bezahlt.
Weil Witness-Version 1 bech32m erfordert, verwendet eine bc1p-Adresse die Prüfsummenkonstante von BIP-350 statt der ursprünglichen bech32-Konstante.
Wo Sie es sehen
Wallets, die standardmäßig Taproot verwenden, leiten vom BIP-86-Zweig bei m/86'/0'/0' ab. Bitcoin Core fügte die Kodierung in Version 22.0 hinzu und begann in Version 23.0, tr()-Deskriptoren für neue Deskriptor-Wallets zu erzeugen.
Inscriptions legen beliebige Daten in einen Taproot-Script-Path-Witness, weshalb ein großer Teil der bc1p-Aktivität nichts mit Zahlungen zu tun hat. Das ist ein Artefakt des Abschlags auf Witness-Daten und keine Eigenschaft des Adresstyps.
Die Reibung liegt an den Rändern. Einige Börsen lehnen bc1p-Auszahlungsziele weiterhin ab, und einige ältere Zahlungsterminals ebenso. Es gibt keinen Ausweg innerhalb Ihrer Wallet: Verwenden Sie eine bc1q-Adresse aus derselben Seed-Phrase und konsolidieren Sie später, wenn Sie alles unter Taproot haben möchten.
P2TR vs. Taproot
Taproot ist das Upgrade, und P2TR ist der Output-Typ, den es geschaffen hat. Der Soft Fork bündelte drei Spezifikationen: BIP-340 definierte Schnorr-Signaturen, BIP-341 definierte das Output-Format und seine Ausgaberegeln, und BIP-342 definierte tapscript, die angepasste Skriptsprache, die im Baum verwendet wird. P2TR ist der Teil, mit dem Sie interagieren, die Adresse, die mit bc1p beginnt. Wenn Sie sagen „Ich verwende Taproot“, meinen Sie fast immer „meine Wallet gibt mir P2TR-Adressen“, aber das Upgrade änderte auch, wie Signaturen innerhalb von Skripten geprüft werden, die Sie vielleicht nie berühren.