Glossar / Entwicklerreferenz
OP_RETURN
- Was ist OP_RETURN?
- OP_RETURN ist der Opcode, der eine Transaktionsausgabe nachweislich unausgebbar macht, wodurch eine kleine Menge beliebiger Daten in die Blockchain geschrieben werden kann, ohne die Menge der aktiven Coins aufzublähen.
Eine Ausgabe, deren Skript mit 0x6a beginnt, kann von niemandem jemals ausgegeben werden, deshalb entfernen Full Nodes sie aus dem UTXO-Set, das sie bereithalten müssen. Bitcoin Core 0.9.0 machte solche Ausgaben im März 2014 mit einer erlaubten Größe von 40 Bytes zum Standard, erhöht in 0.11.0 auf 80 Bytes Nutzlast. Wenn Sie Bitcoin kaufen und halten, werden Sie nie eine erstellen müssen, aber Sie bezahlen die anderer Leute über den Gebührenmarkt.
Wie es funktioniert
OP_RETURN lässt das Skript in dem Moment fehlschlagen, in dem es erreicht wird. Nichts kann eine so gesperrte Ausgabe erfüllen, und anders als bei einer Verbrennungsadresse, bei der Coins an einen Hash gesendet werden, für den niemand den Schlüssel hat, ist die Unmöglichkeit für Software sichtbar und nicht bloß wahrscheinlich. Diese Sichtbarkeit ist der entscheidende Punkt: Ein Node führt einen Index jeder ausgebbaren Ausgabe, und eine Ausgabe, die nachweislich tot ist, muss nie in ihn aufgenommen werden.
Wallets, die eine solche Ausgabe erstellen, setzen ihren Wert auf null und stellen die Nutzlast hinter den Opcode, üblicherweise als einzelnen Push. Das Ergebnis ist eine Transaktion mit einer normalen Ausgabe, die jemanden bezahlt, und einer zweiten Ausgabe, die Bytes und kein Geld trägt.
Die erste Version des Opcodes war eine Katastrophe. Im Jahr 2010 wurden ein Eingabeskript und ein Ausgabeskript verbunden ausgeführt, und OP_RETURN beendete die Auswertung mit der Meldung Erfolg, sodass ein Ausgebender es anhängen und mit Coins verschwinden konnte, die jemand anderem gehörten. Die Korrektur jenes Jahres trennte beide Hälften der Ausführung und machte den Opcode zugleich zu einem unbedingten Fehlschlag. Seine moderne Verwendung als Datenträger kam vier Jahre später, als Entwickler bereits Daten in gefälschte öffentliche Schlüssel stopften, die Nodes nie bereinigen konnten.
Danach kamen die Weiterleitungsgrenzen, und keine davon war eine Konsensregel. Bitcoin Core lieferte in Version 0.9.0 einen Standard-Datenträger mit 40 Bytes aus, verdoppelte die erlaubte Größe im Juli 2015 in 0.11.0 auf 80 Bytes und erlaubte eine solche Ausgabe pro Transaktion. Version 30.0 entfernte die voreingestellte Größenobergrenze und die Regel der einen Ausgabe nach einer langen und erbittert geführten öffentlichen Auseinandersetzung, mit der Begründung, die Grenzen ließen sich mühelos umgehen und drängten Daten an schlechtere Orte. Bitcoin Knots behielt die strengeren Voreinstellungen bei, und dieser Riss in der Node-Richtlinie ist einer der aktuellen Streitpunkte bei Bitcoin.
Warum das wichtig ist, wenn Sie Bitcoin kaufen
Sie werden nie aufgefordert werden, eine OP_RETURN-Ausgabe zu erstellen, und wenn eine Website Ihnen sagt, Sie sollen Bitcoin an eine senden, ist es ein Betrug: Es gibt nichts, wohin gesendet werden könnte. Manche Börsen und Chains verwenden Memo-Felder, aber eine Bitcoin-Auszahlung braucht nie eines.
Was Sie erreicht, ist die Gebühr. On-Chain geschriebene Daten konkurrieren mit Ihrer Auszahlung um denselben begrenzten Platz, und der Effekt ist messbar. Block 840.000, gemint am 20. April 2024, nahm rund 37,6 Bitcoin an Gebühren ein, der höchste Wert aller Blöcke bis heute, weil ein neues Token-Protokoll genau in dieser Höhe aktiviert wurde und Tausende Menschen darum wetteiferten, hineinzuschreiben. Wer an jenem Nachmittag zufällig von einer Börse abhob, zahlte für dieses Vorrecht ein Mehrfaches des üblichen Satzes.
Der Schutz liegt in der Wahl des Zeitpunkts, nicht in der Empörung. Gebühren schwanken innerhalb einer einzigen Woche um eine Größenordnung, deshalb kostet es einen Bruchteil, Ihre Bitcoin zusammenzuführen, sie von einer Börse wegzubewegen oder jede nicht dringende Übertragung an einem ruhigen Wochenende vorzunehmen, verglichen mit derselben Übertragung während eines Datenansturms. Wallets, bei denen Sie Ihren eigenen Gebührensatz festlegen können, statt dass er für Sie geraten wird, verdienen genau aus diesem Grund den Vorzug. Wenn Ihnen die Richtlinienfrage wichtig ist, ist der Betrieb von Bitcoin Knots statt Bitcoin Core der direkte Weg, sie zu äußern, da die Weiterleitungsrichtlinie von jedem Node-Betreiber einzeln gewählt wird.
Durchgerechnetes Beispiel: Was 80 Bytes kosten
Eine Legacy-Datenträgerausgabe maximaler Größe belegt 92 Bytes auf der Leitung: 8 Bytes Wert, der auf null gesetzt ist, ein Byte für die Skriptlänge, dann 83 Skript-Bytes aus dem Opcode, einer Push-Anweisung, einem Längenbyte und 80 Bytes Nutzlast. Nichts davon sind Witness-Daten, also zählt jedes Byte vier Gewichtseinheiten, was 368 Gewichtseinheiten oder 92 virtuelle Bytes ergibt. Bei 10 Satoshi pro virtuellem Byte sind das 920 Satoshi, bevor der Rest der Transaktion gezählt wird.
Zum Vergleich: Eine gewöhnliche native SegWit-Ausgabe belegt 31 Bytes oder 31 virtuelle Bytes, die Datenausgabe kostet also dreimal so viel wie die Bezahlung von jemandem. Daten waren nie kostenlos, und der Gebührenmarkt ist der einzige Rationierungsmechanismus, den Bitcoin hat.
OP_RETURN vs. Null-Data-Transaktion
OP_RETURN ist der Opcode; eine Null-Data-Transaktion ist das, was Bitcoin Core das gesamte Transaktionsmuster nennt, sobald eine dieser Ausgaben darin erscheint. Die Software meldet den Ausgabentyp als "nulldata" im dekodierten JSON, und diese Zeichenkette ist es, was Block-Explorer üblicherweise anzeigen. Der Unterschied ist klein, aber er verhindert ein häufiges Missverständnis: Eine Null-Data-Transaktion ist keine Transaktion, die kein Geld bewegt. Sie bezahlt fast immer auch jemanden, wobei die Daten in einer zweiten Ausgabe mitfahren.
OP_RETURN vs. Inscription
Inscriptions verwenden OP_RETURN überhaupt nicht, was die Quelle endloser Verwirrung über die Datenspeicherung bei Bitcoin ist. Das Ordinals-Schema, veröffentlicht im Januar 2023, versteckt Inhalte in einem Taproot-Skriptzweig, der nie ausgeführt wird, und dieser Zweig liegt im Witness, wo jedes Byte eine Gewichtseinheit statt vier kostet. Die praktische Folge ist der Umfang. Eine OP_RETURN-Nutzlast war durch die Weiterleitungsrichtlinie ein Jahrzehnt lang auf 80 Bytes begrenzt, während eine einzelne Inscription sich der Größe eines ganzen Blocks bei einem Viertel der Gewichtskosten pro Byte nähern kann. Runes, gestartet im April 2024, ging den umgekehrten Weg und kodiert seine Protokollnachrichten bewusst in OP_RETURN, weshalb die beiden Auseinandersetzungen über Daten auf Bitcoin in Wirklichkeit Auseinandersetzungen über zwei verschiedene Mechanismen sind.