Es gibt mal wieder Drama bei den Bitcoin-Entwicklern. Diesmal geht es darum, ob und auf welche Weise Daten in der Blockchain gespeichert werden sollen. Ich empfehle sehr, den Post ganz durchzulesen, denn das Drama wird oft sehr vereinfacht dargestellt. Es ist etwas komplex, aber es lohnt sich um das Problem zu verstehen.
Peter Todd (vielleicht einigen bekannt dafür, dass ein HBO-Dokumentarfilm letztes Jahr glaubte, ihn als Satoshi enttarnt zu haben, was er selbst energisch bestreitet) hat eine Pull Request in den Bitcoin-Core-Code eingestellt. Eine Pull Request ist sozusagen ein präziser Vorschlag, was geändert werden soll, mit dem gesamten dafür notwendigen (und schon getesteten) Programmcode.
Dazu erstmal etwas Kontext: OP_RETURN ist ein Befehl der Bitcoin-Skriptsprache, dass Nodes und Miner alle Daten hinter diesem Befehl ignorieren, aber erst mal als Teil der Transaktion speichern sollen. Er wurde ca. 2014 eingeführt, um eine für die Nodes schonende Möglichkeit einzuführen, Daten auf der Blockchain zu speichern. Der Platz für Daten hinter dem Befehl OP_RETURN ist derzeit durch sogenannte "Standardness"-Regeln auf 80 Bytes begrenzt. Diese Regeln sind nicht Teil des Protokolls, sondern einfach Standardwerte. Jeder kann diese Werte ändern ohne gegen das Protokoll zu verstoßen.
Wichtig: Bereits vorher gab es schon Ideen und einfache Protokolle, um Daten wie NFTs oder Tokens zu speichern. Dies wurde entweder getan, indem ungenutzte "Felder" der Transaktionen genutzt wurden (z.B. die Sequence-Nummer) oder indem falsche öffentliche Schlüssel (Public Keys) mit falschen Adressen generiert wurden, die diese Daten enthielten.
Diese Mechanismen, die auch von in jüngerer Zeit neu entwickelten Protokollen genutzt werden (z.B.
Bitcoin Stamps), haben jedoch das Problem, dass sie die Datenbank der UTXOs, der noch nicht ausgegebenen Coins (präziser: Ausgänge der Transaktionen) mit unnützen Daten vermüllen. Diese UTXO-Datenbank kann (anders als z.B. alte Blöcke) niemals gelöscht werden, da niemand sicher sein kann, dass sich darin nicht noch Coins verbergen, die man noch ausgeben könnte.
Dazu kommt seit 2022 ein von Ordinals bekannter Speichermechanismus, bei dem die Daten stattdessen in den Signaturen, also in den "Inputs" gespeichert werden.
Allgemein wird OP_RETURN als am wenigsten ressourcenhungrige Speicher-Option angesehen, weil die Daten wie gesagt ignoriert werden können. Das Ordinals-Modell ist ebenfalls noch halbwegs ressourcenfreundlich, da es die UTXO-Datenbank
nicht nur dann belastet, wenn eine Ordinals-Transaktion ineffektiv durchgeführt wurde und Coins "übrigbleiben". (Edit: präzisiert)
Todds
Pull Request hat nun zweierlei im Sinn:
1) Das 80-Byte Limit der Daten hinter OP_RETURN soll aufgehoben werden. Es könnten also theoretisch bis nahezu 100 kB Daten mit dieser Methode in eine Transaktion gespeichert werden (gleich dazu mehr)
2) Der gesamte Code, der dieses Limit ermöglicht, wird entfernt. Die Nodes haben heute (noch) beispielsweise die Option, mit
datacarriersize selbst zu bestimmen, wie hoch die erlaubte Datenmenge sein soll. Dies würde, wenn die Pull Request durchkommt, zumindest mit Bitcoin Core ohne Patches nicht mehr möglich (andere Bitcoinclients wie Knots hingegen bieten die Option weiterhin).
(Eine
alternative Pull Request,
die aber vorerst geschlossen wurde, implementiert nur den ersten Punkt, die Nodes erhalten also weiter auch in Core eine Konfigurationsmöglichkeit für die Datenmenge. Das ist die zweite Option in der obigen Umfrage. Edit: Diese Pull Request wurde inzwischen in den Code integriert.)
Wie oben bereits angesprochen wird dadurch
nicht eine Möglichkeit geschaffen, mehr Daten als bisher in Transaktionen unterzubringen. Mit der "Fake Public Keys"-Methode, die etwa Stampchain nutzt, kann man ähnlich hohe Datenmengen speichern. Mit der Ordinals/Taproot-Methode gehen sogar fast 400 kB, weil für Daten in den Signaturen seit dem 2017er Segwit Update vereinfacht gesehen viermal so viel Platz ist, da sie nur 1/4 der "gewichteten Einheiten" (Weight Units) verbrauchen. Sie ist zudem aus dem gleichen Grund billiger was die Fees angeht (wen das interessiert, der sollte sich mit Segwit befassen).
Nun zum Drama (wer in den Kaninchenbau einsteigen will, sollte genug Popcorn bereithalten, vielleicht auch Taschentücher):
Seit der Ordinals-Welle 2023 ist die Stimmung, was das Thema "Daten in der Blockchain" angeht, wegen der damals hohen Transaktionsgebühren aufgeheizt. Eine Gruppe um den Entwickler Luke Dashjr fordert, die Taproot/Ordinals-Methode zu filtern, also den Nodes zu ermöglichen diese Transaktionen einfach nicht mehr zu verarbeiten. Diese Gruppe hat sich auch vehement gegen die Pull Request von Peter Todd ausgesprochen, da dadurch noch ein weiteres Tor für mehr Daten auf der Blockchain aufgestoßen würde (siehe dazu aber oben: heute geht mit anderen Methoden wie den falschen Pubkeys und Taproot-Signaturen schon mehr).
Soweit ein typischer Entwickler-Streit, könnte man meinen. Kommt in jedem Open Source Projekt vor ...
Aber dann gab Peter Todd an, dass der Anlass ein Protokoll einer geplanten Sidechain namen
Citrea gewesen sei. Diese habe die "Falsche Pubkeys"-Methode nutzen wollen. Um zu verhindern, dass auch diese Sidechain die UTXO-Datenbank vollmüllt, sollte also laut Todd das OP_RETURN Limit wegfallen. Denn dann könnte Citrea stattdessen die weniger ressourcenhungrige OP_RETURN Methode nutzen.
Peter Todd wird jetzt vorgeworfen, mit der Pull Request nur dem Unternehmen hinter Citrea einen Gefallen tun zu wollen. Dazu kommt, dass eine andere Person 2023 Todd für eine ähnliche Pull Request, die damals zurückgezogen wurde, 1000 US-Dollar gespendet hat. Was unter anderem Samson Mow genüsslich ausgeschlachtet hat, der wohl auf der Seite der Gegner dieser Änderung steht. Todd und womöglich Core wird also Korruption vorgeworfen.
Was meint die deutschsprachige Community? Seid ihr auf dieses Drama schon gestoßen? Oder uninteressant?
>> Hier eine etwas kürzere Pro-Contra-Liste und meine eigene Meinung. <<Einen englischen Faden dazu gibt es hier.(Immerhin wissen wir nun, dass Todd wahrscheinlich nicht Satoshi ist. Würde Satoshi mit seinen Millionen BTC 1000$ für eine Pull Request brauchen?

)