Non-Standard-TXs nach Genesis Upgrade

Eine Standard-Transaktion meint, dass jede Transaktion in ein bestimmtes, von den Entwicklern freigegebenes Muster passen muss. Dies hat natürlich den Effekt, dass es einfacher ist, die Sicherheit von Transaktionen zu planen – allerdings begrenzt es auch die Möglichkeiten der User massiv.

Es war stets Teil der Genesis-Roadmap, diese Begrenzung aufzuheben, um es Entwicklern und Unternehmen zu erlauben, die volle Kraft der Bitcoin-Skripte zu benutzen. Dies ist nun möglich, und man kann schon die ersten Gehversuche der BSV-Entwickler mit Non-Standard-Transaktionen sehen.

Return to Genesis

Bereits in dem Block, der die Genesis-Hardfork nach der Aktivierung bestätigt hat, steckt eine Non-Standard-Transaktion. Sie wurde wohl von Steve Shadders, dem CTO von nChain, gebastelt, um die Hardfort “einzulocken”. Wenn man sich die Transaktion im Blockexplorer anschaut, sieht man im Output lediglich eine Nachricht:

“On February 4th, 2020 The Return to Genesis was activated to restore the Satoshi Vision for Bitcoin. It is locked in irrevocably by this transaction. Bitcoin can finally be Bitcoin again and the miners can continue to write the Chronicle of everything. Thank you and goodnight from team SV.”

Über der Nachricht findet man die Information, dass Whatsonchain nicht in der Lage ist, den Output zu dekodieren. Die Transaktion enthält einen Output, der das alte Datenlimit für arithmetische Inputs von 32 Bits überschreitet und damit für Pre-Genesis-Nodes nicht gültig ist. In diese Transaktion ist die Nachricht zudem zweifach eingeschrieben, einmal als OP_Return, und einmal als Output gemäß des ursprünglichen P2PK-Templates. Der Schlüssel, um den Output auszugeben, wurde vernichtet, so dass die Transaktion als historische Erinnerung an die Genesis-Hardfork für immer im UTXO-Set bleiben wird.

Das erste R-Puzzle

Ein anderer Entwickler hat die erste R-Puzzle-Transaktion veröffentlicht. Diese beruht auf einem Konzept, das Craig Wright auf der letzten CoinGeek-Konferenz vorgestellt hat.

Kurz und vereinfacht ausgedrückt wird dabei die auf elliptischen Kurven basierende Kryptographie einer Bitcoin-Transaktion aufgebrochen, um die Outputs mit einem beliebigen privaten Schlüssel ausgeben zu können, solange man einen “k” genannten Wert kennt, der Teil der kryptographischen Signatur-Operation ist.

Der Entwickler unter dem Pseudonym “tj” hat den k-Wert in einem Chat bekannt gegeben. Allerdings gab es ein Problem mit der Transaktion, weshalb er eine neue gebildet und die Outputs ausgegeben hat. Diese sieht nun aus wie eine ganz normale Transaktion.

Die erste Bitcoin-Transaktion mit einem State

Der chinesische Entwickler Xiaohui Liu beschäftigt sich schon länger mit Bitcoin-Skripten. Er ist der Macher von sCrypt, einer High-Level-Sprache für die Skripte, die man entweder in einer Dokumentation erforschen oder bei Scrypt.Studio testen kann.

Liu hat die wohl bisher komplexeste, aber auch spannendste Non-Standard-Transaktion komponiert. Sie verwendet ein langes Skript aus mehr als 100 Befehlen. Die Transaktion, die auf sie folgt, ist mit mehr als 7 Kilobyte sogar noch länger.

Was genau die beiden Transaktionen machen, ist selbst für einen Experten wie den nChain-Leitentwickler Daniel Conolly schwer zu sagen. Liu erklärt, dass er mit ihnen “States in einen Bitcoin-Smart-Contract einführt”. Die zweite Transaktion bezieht sich beim Ausgaben der Guthaben auf das Output-Skript der ersten Transaktion, was, so Liu, “bisher für unmöglich mit einem UTXO-Modell gehalten wurde.” Ethereum beispielsweise begann seine Reise mit der Feststellung der Begrenztheit der Skriptsprache von Bitcoin, worunter auch explizit die Unmöglichkeit fiel, dass eine Transaktion ein Bewusstsein für einen State der Blockchain haben kann.

Laut Liu ist dies aber erst der Anfang. “Und das ist nur EINE kleine Anwendung eines viel größeren Vertrags-Paradigmas durch sCrypt / script.” Wir sind gespannt.

Libs bildet Transaktion mit 330-Kilobyte-Bild

Der Entwickler Libs hat die erste Transaktion geschrieben, die einen Op_Return-Inhalt von mehr als 100 Kilobyte enthält. In ihr findet man einen Screenshot eines bekannten BTC-Maximalisten, der mit Photoshop bearbeitet wurde.

Wer bisher Dateien mit einer Größe von mehr als 100 Kilobyte auf die Blockchain bringen wollte, musste dafür das bcat-Protokoll verwenden, das die Datei auf mehrere Transaktionen verteilt hat. Bei entsprechend großen Dateien bedeutete das, dass man zahlreiche MoneyButtons klicken musste, wenn man die Datei etwa über bico.media hochgeladen hat. Nach Genesis kann man sich diese Arbeit nun sparen. Ganz reibungslos lief der Upload aber nicht, wie Libs erzählt: MoneyButton hat lange gebraucht, um die Transaktion zu signieren; Planaria hat sie erst einige Minuten später gesehen; und die Miner haben sie erst nach vier Blöcken an die Blockchain angehängt.

Werkzeuge und Lernhilfen

Noch sind die Nicht-Standard-Transaktionen sehr abstrakt. Hilfreich, um sie besser zu verstehen, dürfte ein Video von Gal Buuki auf Streamanity sein, sowie ein Debugger mit Beispielen auf der Seite learnonchain.com.

Schreibe einen Kommentar zu Genesis-Upgrade reibungslos aktiviert – MetaNet Weekly Antworten abbrechen