CVE-2023-50428 und der fragwürdige Versuch einen "Bug" im Bitcoin-Netzwerk zu beheben!

Luke Dashjr erstellt einen offiziellen CVE-Eintrag für die angebliche Schwachstelle, die von großen Inscriptions und OP_RETURN Feldern ausgeht.

1 „Gefällt mir“

Bin anderer Ansicht. Luke Dashjr hat vollkommen Recht, dass die Inscriptions Spam sind und es eine technische Schwachstelle des Blockchain-Konzeptes als solches ist. Die Argumentation des Artikels, dass Kritik daran unangebracht sei, weil es kreativ und ohnehin nicht zu verhindern sei, ist ungefähr, als würde man gegen die Verwendung von E-Mail-Spamfiltern argumentieren, da diese ja auch ohnehin mit kreativen Tricks umgangen werden können.

Inscriptions sind nichts anderes als ein fortgesetzter DDoS-Spamangriff mit Social-Engineering-Methoden gegen die Nutzer, die Bitcoin für den Zweck nutzen wollen, für den dieser konzipiert worden war, nämlich als dezentrales, digitales Geldsystem. Richtig, verhindern kann man dies nicht, weder mit einem Soft Fork noch sonst irgendwie auf Basis der Blockchain-Technik – gerade darum ist es ja eine technische Schwachstelle. Darum ist es auch mehr als angemessen, dies so zu benennen.

1 „Gefällt mir“

Aber ehrlich gesagt hat ja jeder Nodebetreiber die Wahl, ob er Inscriptions als gültig einstufen möchte oder nicht bzw. Miner diese annehmen möchten oder nicht oder siehst du das anders?

Ich könnte mir vorstellen, dass sich dieses Problem mit der Zeit von ganz alleine löst.

Je dicker die zukünftige Blockkette ist, desto mehr werden die Inscription User blechen müssen.
Und wie du schon sagst… einen tiefergehenden Sinn hat das alles einfach nicht. Von daher denke ich, dass es sich wie gesagt von selbst lösen wird früher oder später.

4 „Gefällt mir“

Und wo ziehst du da genau die Grenze? Wenn ich einfach nur extrem viele „normale“ Bitcoin-Transaktionen im Netzwerk veröffentliche, die alle nur an mich selbst gehen und keinen ökonomischen Zweck haben, ist das dann auch ein Spam-Angriff? Woher sollen die anderen Nutzer wissen, dass es sich um „Spam“ oder um „legitime“ Transaktionen handelt? Gibt es überhaupt einen Unterschied?

Hier spricht man generell schließlich auch wohl kaum von einer technischen Schwachstelle, sondern von einem offenen Design. Der Markt regelt, welche Transaktionen „Spam“ sind und welche nicht, nämlich solche, die mit tatsächlich ökonomisch relevanten Transaktionen Gebühren technisch nicht mithalten können. Das ist doch nicht Neues.

Das CoinJoin-Beispiel zeigt dabei erst recht, warum es praktisch unmöglich ist, eine solche Grenze überhaupt zu ziehen.

Inscriptions sind im Grunde nur eine auf die spitze getriebene Version von genau diesem Grundprinzip. Es ist meiner Meinung nach Irrsinn, gültige Transaktionen als technische Schwachstelle bezeichnen zu wollen, nur weil man selbst der Meinung ist, dass es sich nicht um eine legitime Nutzungsweise von Bitcoin handelt. Bitcoin existiert doch unter anderem, um solch eine Bevormundung zu verhindern.

8 „Gefällt mir“

Ich würde auch nicht sagen, dass es sich um Spam handelt weil in diesem Fall ja der Spam-Ersteller für den Spam bezahlt hat und nicht der Spam-Bekommer.

Im Gegensatz zu einer Email oder ein einfacher Chat, wo ein Spammer ungehindert 100000 Nachrichten raushauen kann ist das in der Blockchain eben unmöglich weil es zunehmend Geld kostet diese Nachrichten zu veröffentlichen. Ich würde deswegen nicht von Spam reden denn sollten das wirklich nur Spam-Nachrichten sein, dann hätte sich der Aufwand es in die Blockchain zu schreiben nicht gelohnt. Lohnt es sich hingegen, warum auch immer dann hat die Nachtricht ja seinen Sinn erfüllt und seinen Nutzen gebracht auch wenn wir ihn nicht erkennen können. :woman_shrugging:

6 „Gefällt mir“

Teilweise. Ich lasse meine Full-Node auch mit Ordisrespector-Patch laufen, der die Inscriptions zumindest aus dem Mempool raushält. So kann ich zumindest meinen Arbeitsspeicher und meine Netzwerkbandbreite von meiner Ansicht nach unsinnigen Transaktionen entlasten. Aber das verhindert natürlich nicht, dass die Inscriptions weiter in die Blockchain aufgenommen werden, die Transaktionsgebühren nach oben treiben und Finanztransaktionen den Platz wegnehmen. Gegenwärtig geht der überwiegende Teil der On-Chain-Transaktionen auf die Kappe von Ordinals.

Gut möglich. Zumindest hoffe ich, dass du Recht hast. Ein dezentrales Geldsystem, das zugleich von Anfang an spamresistent ist, wäre mir aber trotzdem noch lieber.

2 „Gefällt mir“

Berechtigter Einwand, die Grenze ist sehr schwammig. Aber dass Affenbilder keine Finanztransaktionen sind und niemandes finanzielle Freiheit schützen, sondern nur unnötig Platz verschwenden, kann man m.E. kaum abstreiten.

Solange Menschen bereit sind, für Spam zu bezahlen, regelt der Gebührenmarkt das nicht von alleine. Darum spreche ich von Social Engineering: Man bringt die Menschen unter Ausnutzung von Gier oder Sammelneigung dazu, die Gebühren für Inscriptions zu bezahlen. Das scheint ziemlich gut zu funktionieren.

Eigentlich sehe ich keinen zwingenden technischen Grund, warum man für CoinJoins OP_RETURN benötigt. Zu BIP-47 gibt es mit BIP-351 bereits eine technisch überlegene Alternative, die ohne OP_RETURN auskommt. In Whirlpool stecke ich technisch nicht so tief drin und weiß nicht aus dem Stegreif wofür genau OP_RETURN dort verwendet wird, hege aber den Verdacht, dass auch hier eine bessere, alternative Koordination möglich wäre, die auf der Blockchain platzsparender ist.

Was wäre, wenn jemand in Bitcoin Core einen Inflation Bug finden und ausnutzen würde? Das ist in der Frühzeit von Bitcoin schon vorgekommen. Würdest du dann auch sagen, dass man dies nicht als technische Schwachstelle bezeichnen und verhindern darf, da es ja eine gültige Transaktion ist?

1 „Gefällt mir“

Der Spam-Ersteller muss zwar in Vorleistung gehen, aber die Inscriptions werden ja in der Regel mit dem Ziel erstellt, sie als NFTs verkaufen zu können. Die Spam-Ersteller benutzten also Social-Engineering-Techniken, z.B. Gewinnversprechen oder das Ausnutzen von Sammelneigung, um letztlich Dritte dazu zu bringen, die Kosten zu bezahlen. Außerdem bezahlen zusätzlich alle Bitcoin-Nutzer durch die gestiegenen Transaktionsgebühren und mit ihrem Speicherplatz für den Spam. Daher denke ich, dass dieses Argument falsch ist.

1 „Gefällt mir“

Das ist deine Meinung (die ich übrigens teile), aber keine Tatsache aus technischer Sicht, um die es im Kontext des CVE-Eintrags nun mal geht.

Wenn du eine „Schwachstelle“ beheben willst, brauchst du eine konkrete technische Grenze. Und die gibt es nicht. Und selbst wenn es sie gäbe und man sie umsetzen würde, dann hätte das sogar negative Konsequenzen:

Fakt ist: Die Nachfrage nach Affenbildchen ist da. Bitcoin ist zensurresistent. Auf ersteres hat man keinen Einfluss und wenn einem letzteres nicht gefällt, dann landet man schnell in einem Widerspruch.

Nicht falsch verstehen: Jeder Miner kann so viel in sein Template filtern, wie er möchte. Ich finde es extrem wichtig, dass das in Zukunft so viele Miner wie möglich individuell selbst machen. Aber deswegen ist es nicht automatisch jede Policy sinnvoll. Denn nachhaltig erreichen kann ich als einzelner Pool oder Miner nichts, wenn ich auf Krampf eine bestimmte Policy durchsetzen möchte, die gegen den eigentlichen finanziellen Anreiz des Gebührenmarktes spricht.

Spielt für die Diskussion aber auch keine Rolle. Es gibt legitime Anwendungsfälle für OP_RETURN, z.B. beweisbares Vernichten von Bitcoin, Informationen über Recovery sichern, und in Zukunft vielleicht noch irgendwas ganz Neues. Der ganze Spaß existiert doch nur, damit man eben keine viel ineffizienteren Alternativen nutzt.

Wer arbiträre Daten auf der Bitcoin-Blockchain doof findet, sollte froh sein, dass diese im Witness stehen, wo sie weniger Blockspace beanspruchen und verworfen werden können. Auch Return-Daten kann ich bedenkenlos verwerfen, da sie zukünftig keine Rolle mehr spielen dürfen. Dagegen anzukämpfen ist ein offensichtlicher Schuss ins eigene Knie.

Ich entscheide das nicht, sondern die Nutzer von Bitcoin entscheiden das mit der Software, die sie auf ihren Rechnern installieren.

Wenn Inscriptions eine mit einem Inflationsbug vergleichbare Schwachstelle wären (LOL), dann hätte es auch eine entsprechende Reaktion darauf gegeben. Das ist in meinen Augen kein sinnvoller Vergleich.

7 „Gefällt mir“

Finanzielle Freiheit ist ja auch keine techische Frage, sondern eine Frage von Werten. Auch, dass man im Grunde froh sein muss, dass es OP_RETURN gibt, damit diese Sachen nicht noch mehr Schaden anrichten, ist völlig richtig. Das Ganze ist kein rein technisches Problem, für dass es eine einfache technische Lösung gibt. Es ist, wie schon gesagt, eine grundsätzliche, konzeptionelle Schwachstelle des Blockchain-Prinzips und das sollte man auch so benennen. Deswegen spreche ich mich nicht für die Abschaffung von OP_RETURN aus.

Der Vergleich zielt nur darauf ab, zu beweisen, dass nicht jede Transaktion, die Bitcoin Core als gültig erachtet, notwendigerweise legitim sein muss. Es ist folglich kein „Irrsinn, gültige Transaktionen als technische Schwachstelle bezeichnen zu wollen“.

1 „Gefällt mir“

Doch, denn der Markt ist der einzige der unabhängig und Bewertungsfrei regeln kann was Menschen als Wert ansehen und was nicht! Alles andere ist Zensur.
Warum ist die Transaktion von Werte so viel überbewertet gegenüber anderen Informationen?
Beide erhalten nur durch die Bewertung der Menschen ihren eigentlichen Wert.

Und ich gebe dir Recht, ich brauche auch keine Affenbilder, aber solange es Menschen gibt, die dafür bereit sind Bitcoins zu bezahlen, solange wird es auch Affenbilder in der Blockchain geben. :woman_shrugging:

Nein, das Argument ist nicht falsch aber spiegelt nicht deine Meinung wieder. Du rechtfertigst damit einen Zensurgrund, dir gefallen die Affenbilder nicht und deswegen dürfen deiner Meinung nach diese Affenbilder nicht in die Blockchain. Aber selbst wenn man die Affenbilder nicht mit Inscription da mehr oder weniger direkt in die Blockchain schreiben darf könnte man sich auch Transaktionsreihenfolgen ausdenken, die Bits und Bytes codieren und somit über geschickte Verschiebung in einer Wallet die Bilder in der Blockchain codieren, nur über deiner Meinung nach „valide“ Transaktionen. Du kannst nicht verhindern dass soetwas geschieht und wenn Menschen bereit sind dafür Geld/Werte/Macht auszugeben dann wird das auch in Bitcoin passieren. Natürlich blockieren diese Transaktionen dann andere, aber ich verstehe nicht warum man deswegen gleich die Zensurkeule auspackt. Das widerspricht meiner Meinung nach doch eigentlich alles, wofür Bitcoin steht. :woman_shrugging:

Und Social-Engineering-Techniken halte ich hier für irreführend. Allgemein kann man den Menschen auch ohne Bitcoin das Geld aus der Tasche ziehen. Im Endeffekt läuft es doch immer auf einen Machtkampf zwischen den Menschen hinaus: Wer gewinnt am besten oder wer lässt sich bei einem Handel nicht übers Ohr hauen. Und Bitcoin ist dahingehend doch keine Ausnahme. Bitcoin ist durch die Gier der Menschen entstanden nicht durch Fiat bestohlen zu werden. Aber wie man im Kryptosektor sieht ist das Stehlen oder Scammen von Werten rund um Bitcoin gang und gebe. Und das wird mit Bitcoin natürlich nicht aufhören.

Was aber mit Bitcoin passiert ist, dass die Menschen wieder mehr Eigenverantwortungen lernen (müssen) weil ihnen die Weerte nicht ersetzt werden können.
Und alleine damit wird meiner Meinung nahc diese Art der Blockchain ausnutzung irgendwann von alleine geben:
Wenn sich diese Bilder nicht mehr verkaufen weil einer ihnen mehr einen Wert zuspricht, dann wird es auch weniger Scammer geben der Geld dafür ausgibt diese Bilder zu erstellen.

Aktuell leben wir aber noch in einem System, in dem man durch die Enteignung durch Inflation gezwungen ist sein Geld auf alles andere zu werfen was nicht inflationiert,
da ist es meiner Meinung nach sehr verständlich dass es auch viele Scammer gibt die Bereitwillig diese weggeworfenen Werte aufsammeln und für sich behalten wollen.
Diesen Fakt aber mit Zensur verhinder zu wollen führt meiner Meinung nach nicht in die richtige Richtung.

3 „Gefällt mir“

Du verstehst mich da ein bisschen falsch. Ich spreche mich nicht für Zensur aus. Ich sage nur, dass die Möglichkeit, die Blockchain mit Affenbildern vollzuspammen eine technische Schwachstelle ist. Das ist alles. Ich sage nicht, dass man sie zensieren sollte, was ohnehin nicht möglich ist. Ansonsten sind wir, glaube ich, im Wesentlichen einer Meinung.

2 „Gefällt mir“

Ich kann die ganze Aufregung über die hohen Gebühren und den Ordinals nicht wirklich verstehen…

Ich sehe das Ganze als eine Art Spende an die Miner.

5 „Gefällt mir“

Und die wurde in deinen Augen auch so benannt? Der CVE-Eintrag ist eigentlich nur eine Zusammenfassung von Lukes Twitter-Feed der letzten Tage und geht nur direkt auf Inscriptions ein, indem „Daten als Code verschleiert werden“.

Genau das kann ich aber überall mit Bitcoin machen, z.B. indem ich Daten einfach in Schlüsselmaterial schreibe. Man müsste diese „Schwachstelle“ streng genommen auf ganz Bitcoin anwenden, bis man dann irgendwann zur Erkenntnis gelangt, dass es sich vielleicht sogar um ein Feature und nicht um einen Bug handelt.

Dieser CVE-Eintrag wird überhaupt nichts bewirken, da müssen wir uns nichts vormachen, außer vielleicht Lukes Argumenten, vor allem bei Laien, mehr Bedeutung zu verleihen. Ich warte auch schon darauf, dass das erste Leitmedium einen tendenziösen Bericht über die neue „Schwachstelle im Bitcoin-Netzwerk“ veröffentlicht.

Apropos Luke: Passend zu unserer Diskussion über die „Grenze“:

Ihm scheint tatsächlich nicht klar zu sein, dass seine ganzen if-Abfragen, die er da implementieren möchte, rein gar nichts bringen werden. Er kann vielleicht JSON-Strukturen rausfiltern, aber nicht verhindern, dass die BRC-20 Menschen einfach eine andere Datenstruktur wählen.

:+1:

2 „Gefällt mir“

Die Implementierung von Inscriptions ist auf technischer Ebene ein lupenreiner Exploit und da gibt es nichts daran schönzuquatschen. Den Entwicklern erster Stunde (auch Satoshi) war es absolut klar, dass es eine Schwachstelle ist, dass arbiträre Daten in Transaktionen geschmuggelt werden können. Für den technischen Einstieg ist dieser Artikel gut geeignet:
https://habla.news/jb55/1701876273423

Solche Aussagen aus dem Artikel sind daher katastrophal:

Ganz allgemein ist es ohnehin ein seltsamer Schritt, eine gar nicht zu verhindernde Eigenschaft von Bitcoin, nämlich das Speichern von beliebigen Daten in Bitcoin-Transaktionen, als „Schwachstelle“ zu deklarieren und bekämpfen zu wollen.

Bitcoin Core hat seit Tag 1 nichts anderes gemacht, als bestimmte Transaktionen als Spam einzustufen und entsprechende Maßnahmen zu ergreifen, und das erfolgreich. z.B. gibt es dust-limits, eine minimal-fee von 1 sat/vB, oder Bytelimits auf OP_RETURN. Ordinals frei laufen zu lassen ist ein Bruch mit diesem Prinzip, das ist der „seltsame Schritt“.

Die Aussage, dass man es eh nicht zu 100% verhindern kann, dass solche Transaktionen in einem Block landen, ist technisch gesehen richtig, aber ignoriert komplett die Welt der Anreize. Warum haben wir denn Gesetze, wenn sie am Ende doch jemand brechen und sogar damit durchkommen kann? Ganz einfach, weil es gesellschaftlich geachtet wird und eventuell doch Konsequenzen hat, sodass sie die meisten Leute doch einhalten. Das gleiche gilt auch für Ordinals. Wer hat denn Lust, Geld in irgendein Shitcoin/NFT Oridnalprojekt zu ballern, wenn die Chain dir klar gemacht hat, dass du nicht erwünscht bist und dir stets das Leben schwer macht? Die Bitcoin Core Entwickler haben stattdessen komplett den Kopf in den Sand gesteckt und als Konsequenz haben wir einen Shitcoin/NFT Industriekomplex an der Backe, der von alleine sicher nicht wieder verschwinden wird. Was nur hier und da ein blödes JPEG hätte sein können, ist zu einem systemischen Problem geworden und niemand will Verantwortung übernehmen. Auch die Artikel hier sind nur Apologetik.

1 „Gefällt mir“

Naja, ich hätte es vielleicht etwas anders ausgedrückt, das OP_FALSE OP_IF ist ja tatsächlich nur ein Spezialfall, wie du schon sagst.

Das läuft auf eine Art Katz-und-Maus-Spiel hinaus, wie es im Grunde immer bei Spammern und Spamfiltern ist. Ich finde es nicht schlecht, dass er das macht. Wenn ich Mining betreiben würde, würde ich auch keine Inscriptions in „meine“ Blöcke aufnehmen wollen. Das ist eine Entscheidung, die jeder Miner für sich treffen können sollte; insofern ist es nur gut, wenn Ocean die Möglichkeit dazu bietet. Man braucht sich nur nicht einzubilden, dass man damit die Inscriptions stoppen könnte.

Um das vielleicht nal klarzustellen… der Artikel ist ja von mir. Mir sind Ordinals und NFTs komplett egal. Ob es sie nun gibt, oder nicht, interessiert mich nicht die Bohne.

Was mich aber stört, ist dass manche Leute glauben, definieren zu können was Bitcoin ist/kann/darf. Selbst wenn es Satoshi himself wäre.
Das widerstrebt dem kompletten Konzept und deswegen ist imho die ganze Debatte darum auch völliger Quatsch.

Von einem technischen exploit zu sprechen halte ich für lächerlich aus den gleichen Gründen, die @sutterseba schon dargelegt hat.

7 „Gefällt mir“

@sun Deiner Ablehnung der Inscriptions kann ich nur uneingeschränkt zustimmen, aber welches technische Verfahren würdest du Anwenden, um diese zu stoppen?

Was mich aber stört, ist dass manche Leute glauben, definieren zu können was Bitcoin ist/kann/darf.

Was mich stört, ist dass manche Bitcoin zu einem lolbertären „alles geht“ Projekt deklarieren. Ich habe mich auf einen Bitcoin-Standard gesetzt, weil es funktionierendes Geld ist und jede technische Entscheidung genau darauf optimiert wurde. Das war der Schlüssel zum Erfolg. Wenn uns das verloren geht, handeln wir uns irgendwann die gleiche Shitshow wie bei Ethereum ein.

Von einem technischen exploit zu sprechen halte ich für lächerlich aus den gleichen Gründen, die @sutterseba schon dargelegt hat.

Schau dir genau an, wie Inscriptions implementiert wurden und was die Definition von einem Exploit ist. Das ist keine Frage von Meinung. Du kannst sagen, dass dir der Exploit egal ist, es eh dazu kommen muss, etc, und das kann ich sogar auf einer bestimmten Ebene respektieren. Aber einfach Wörter umzubiegen geht nicht. Deswegen rede ich auch von Apologetik.

@sypher Um bei meiner Analogie mit Gesetzen zu bleiben: du kannst es nicht „stoppen“. Du kannst nur Anreize setzen, um das Problem zu minimieren. Um es zu konkretisieren: Bitcoin Core hätte direkt im nächsten Release Noderunnern die Möglichkeit geben sollen, Ordinals über mempool policies genauso wie OP_RETURN zu behandeln. Dazu klare Aussagen, dass sich die Einfügung von arbiträren Daten und die bestehenden Abmachungen halten müssen und auch Zukunft so behandelt werden, egal wie „kreativ“ die Leute werden. Letztlich das, was Luke möchte.
Wie gesagt, das schiebt keinen technischen Riegel vor, ist aber wenigstens Schadensbegrenzung. Nochmal: welches Shitcoinprojekt wird ernsthaft so viel Geld in den Quatsch ballern wie wir es jetzt sehen, wenn man so eine Ansage bekommt?

1 „Gefällt mir“