Zum Inhalt springen
buybitcoinsmart

Glossar / Protokoll und Upgrades

Covenant

Was ist ein Covenant?
Ein Covenant ist eine Ausgaberegel, die begrenzt, wohin der Bitcoin als Nächstes gehen kann, nicht nur, wer ihn bewegen darf, und heute kann kein Opcode im Bitcoin-Script eine solche Regel durchsetzen.

Jedes Script auf der Chain beantwortet eine Frage: Ist diese Ausgabe autorisiert? Ein Covenant würde das Script eine zweite Frage zur Transaktion stellen lassen, die den Bitcoin ausgibt, und die Vorschläge, die das erlauben sollen (BIP-119, BIP-118, BIP-345, BIP-347), sind alle seit Jahren unaktiviert. Nichts, was Sie heute halten, ist betroffen, doch die Vault- und Vererbungsprodukte, nach denen ständig gefragt wird, warten darauf.

Wie es funktioniert

Status: Auf dem Bitcoin-Mainnet ist kein Covenant-Opcode aktiv. Jedes der folgenden Designs ist ein Vorschlag, und keiner hat Aktivierungsparameter, die in Bitcoin Core übernommen wurden.

Die fehlende Fähigkeit hat einen präzisen Namen: Introspektion. Wenn ein Node ein Script ausführt, kann das Script Signaturen, Hashes, Timelocks und den Stack prüfen, doch es kann die Outputs der Transaktion, die die Coins ausgibt, nicht lesen. Dieser einzige blinde Fleck ist der Grund, warum Bitcoin „zwei dieser drei Personen müssen zustimmen“ ausdrücken kann und „dieses Geld darf sich nur an diese Adresse bewegen“ nicht.

Die Vorschläge schließen die Lücke auf zwei verschiedene Arten, und der Unterschied zwischen ihnen ist der Kern der Debatte.

Der Template-Ansatz legt vorab einen Hash der gesamten ausgebenden Transaktion fest. OP_CHECKTEMPLATEVERIFY funktioniert so: Der Output enthält einen 32-Byte-Hash, und die Ausgabe schlägt fehl, wenn die Transaktion nicht denselben Hashwert ergibt. Er ist eng begrenzt, er ist günstig zu verifizieren, und weil die Festlegung keine andere Festlegung beschreiben kann, kann sich die Einschränkung nicht unbegrenzt wiederholen.

Der Introspektionsansatz gibt dem Script die Bestandteile und lässt es rechnen. OP_CAT mit einer Signaturprüfung zu kombinieren oder OP_CHECKSIGFROMSTACK hinzuzufügen, erlaubt einem Script, den Signatur-Hash der Transaktion aus Teilen auf dem Stack neu zusammenzusetzen und zu verifizieren, woraufhin das Script alles verlangen kann, was es über die Outputs will. Das ist allgemein und es ist rekursiv: Ein Covenant kann darauf bestehen, dass der nächste Output denselben Covenant trägt.

Die Rekursion ist der Einwand, der alles verlangsamt hat. Coins, die in einer sich selbst fortpflanzenden Regel gesperrt sind, könnten grundsätzlich dauerhaft belastet bleiben, was Fragen zur Fungibilität aufwirft und zu Emittenten, die die Regel vorschreiben könnten. Das Gegenargument lautet, dass eine Gruppe von Personen ein Covenant bereits vortäuschen kann, indem sie die einzig erlaubte Ausgabe vorab signiert und den Schlüssel zerstört, die Fähigkeit also in der Praxis existiert und die Durchsetzung durch den Konsens vor allem die Notwendigkeit beseitigt, darauf zu vertrauen, dass der Schlüssel wirklich zerstört wurde.

Wo Sie es sehen

Covenants sind bereits auf Chains im Einsatz, die die Script-Engine von Bitcoin kopieren, was der günstigste Weg ist, ihre Wirkung zu sehen.

Liquid, die auf Elements basierende Sidechain, führt ein Tapscript mit Introspektions-Opcodes aus, die die Outputs der ausgebenden Transaktion direkt lesen, und ihre Föderation nutzt sie für ihren Peg. Jeder kann die vorgeschlagenen Bitcoin-Opcodes zudem auf eigenen Signets testen, bevor er entscheidet, ob er sie auf dem Mainnet haben möchte.

Auf dem Mainnet ist der Ersatz eine vorab signierte Transaktion mit einem gelöschten Schlüssel. Ein Vault-Anbieter erzeugt den Einzahlungsschlüssel, signiert die einzige Auszahlung, die er jemals erlauben wird, und zerstört dann den Schlüssel, damit keine andere Ausgabe erstellt werden kann. Das ist ein Covenant, der durch ein Versprechen durchgesetzt wird statt durch das Netzwerk, und das Versprechen ist genau das, was ein echter Covenant-Opcode überflüssig machen würde. Wissenswert, wenn Ihnen ein Dienst einen Vault verkauft: Fragen Sie, welches der beiden es ist.

Covenant vs. Treuhandvertrag

Ein Covenant beschränkt das Ziel; ein Treuhandvertrag beschränkt die Unterzeichner. Sie lösen verschiedene Hälften derselben Sorge und nur eine von beiden ist verfügbar.

Ein Treuhandvertrag ist gewöhnliches Multisig mit einem Dritten im Quorum, meist zwei von drei, und er funktioniert heute auf Bitcoin: Ein Marktplatz hält einen Schlüssel, und Käufer und Verkäufer können ohne ihn abrechnen oder ihn hinzuziehen, um einen Streit zu entscheiden. Was Treuhand nicht kann, ist das Ergebnis einschränken. Sobald sich ein Ausgabe-Quorum bildet, können die Coins überallhin gehen, auch an den Schlichter. Ein Covenant würde das Ziel im Voraus festlegen und das Ermessen des Schlichters vollständig aus dem Design entfernen.

Nicht zu verwechseln mit

Häufig gestellte Fragen

Kann ich ein Covenant heute auf Bitcoin nutzen?

Nein. Auf dem Mainnet ist kein Covenant-Opcode aktiv. Produkte, die heute mit Vault-Verhalten werben, stützen sich auf vorab signierte Transaktionen und einen gelöschten Schlüssel, was ein Versprechen ist und keine Regel, die das Netzwerk durchsetzt.

Warum sind Covenants umstritten?

Weil die allgemeinen Versionen rekursiv sind, das heißt, eine Coin könnte eine Einschränkung tragen, die sich an jede künftige Ausgabe erneut anheftet. Kritiker sorgen sich um dauerhaft belastete Coins; Befürworter weisen darauf hin, dass vorab signierte Transaktionen diesen Effekt bereits nachahmen.

Weiterlesen

Verwandte Begriffe

Mehr zum Thema Protokoll und Upgrades

Diese Seite auf Englisch lesen