"DDOS-Attacke" auf Bitcoin möglich?

Hallo zusammen!

Was würde passieren, wenn jetzt ein böswilliger Akteur den Mempool mit einer extrem großen Anzahl von Transaktionen überflutet?

Wie ist das System dagegen abgesichert?

Wir hatten in letzter Zeit über 500k Transaktionen im Mempool.

Was passiert, wenn jemand, z.b. ein Staat 500 Milliarden Transaktionen reinbuttert? Alle mit der geringsten Fee.

Unbestätigte Transaktionen haben ja ein Ablaufdatum, oder? wie lange ist das? 2 Wochen?
Wenn eine Transaktion dann abläuft, hat der Sender ja keinen Schaden erlitten oder? Somit kann dieser, genug Kapital vorausgesetzt, eine Art DDOS-Angriff auf das System machen, und am Ende nicht einmal Kosten damit gehabt haben.

Wie seht ihr das? Wo liegt hier das Limit bzw. wie regelt das Bitcoin-System eine extrem hohe Transaktionsmenge im Mempool?

Danke und schöne Grüße!

Günther

Was hätte der Staat aus deinem Beispiel davon?
Wenn er die mindestfee setzt ist es ein leichtes mit einer höheren fee in den nächsten Block zu kommen. Der Effekt wäre, nach meinem Wissen und Verständnis, gleich null.

Nicht viel.

Standardmäßig limitieren Bitcoin Core Nodes ihren lokalen Mempool auf eine maximale Größe von 300 MB. Sobald dieses Limit erreicht wird, fliegen Transaktionen nach Priorität raus, also nach der Gebührenrate. Jede Node kann das aber für sich selbst festlegen. Aktuell fliegen beispielsweise Transaktionen mit < 2,2 sat/vB aus einem Standard Mempool raus.

Sollte also jemand „Milliarden“ von Transaktionen mit einer geringen Gebühr veröffentlichen wollen, werden sie von den allermeisten Nodes einfach ignoriert. Das ist also ein direkter Schutz vor Spam.

Der zweite Schutz vor Spam, ist wie du selbst schon andeutest, die Gebühr selbst. Je effektiver der „Angriff“ sein soll, desto höher müssen die Gebührenraten für die Spam-Transaktionen gewählt werden, was irgendwann extrem ins Geld geht.

Außerdem: Wo ist dann der Unterschied zu normalen Bitcoin-Transaktionen? Alles, was der Angreifer hier erreichen würde, ist eine Subventionierung der Bitcoin-Miner. Langfristig kann auf diese Weise niemand das Netzwerk lahmlegen, da niemand unbegrenzt Bitcoin besitzt.

Nein, solange eine Transaktion gültig bleibt, kann man sie theoretisch auch noch nach 10 Jahren veröffentlichen. Und selbst wenn die Transaktionen auch nur kurzzeitig im Netzwerk bekannt war, kann eine Node, die „mitgeschrieben“ hat, alles wieder ins Netzwerk werfen. Das ist tatsächlich auch schon hin und wieder passiert.

Damit eine Transaktion ungültig wird, muss man z.B. die Bitcoin, die man ursprünglich ausgeben wollte, mit einer anderen Transaktion ausgeben. Bei deinem Angriffsszenario wäre das für den Angreifer also auch extrem kostspielig.

4 „Gefällt mir“

Danke für deine Erklärung!!

Eine Frage hätt ich noch:

Achso, aber nach welchen Kriterien wird dann eine Transaktion „ungültig“? (sorry, den letzten Absatz von dir hab ich nicht verstanden).

Fürs Verständnis hilft wahrscheinlich das UTXO-Modell. Ansonsten stell dir einen UTXO einfach als ein „Bitcoin-Stück“ vor.

Sagen wir, eine Transaktion möchte UTXO A ausgeben. Die Transaktion ist (unter anderem) gültig, da dieser UTXO eben noch nicht ausgegeben wurde. Solange du jetzt die Finger nicht rührst, gibt es auch keinen Grund, warum sich daran etwas ändern sollte. Die Transaktion bleibt gültig, da sich an der Ausgangslage nichts ändert.

Nehmen wir an, die Transaktion hatte eine zu niedrige Gebühr und ist „verschollen“, also liegt bei keiner Node mehr im Mempool. Theoretisch könnte man sie jetzt immer noch veröffentlichen, genau wie damals.

Stattdessen erstellst du jetzt eine neue Transaktion, die zufälligerweise auch diesen UTXO A ausgeben will. Die Transaktion hat eine ausreichende Gebühr und wird schnell bestätigt.

Die alte Transaktion ist jetzt ungültig, da sie einen Output ausgeben will, der längst von der neuen Transaktion ausgegeben wurde. Leider kann man Bitcoin nicht mehrfach ausgeben… :wink:

2 „Gefällt mir“

danke!

Aktuell haben wir 33k Transaktionen im Mempool - vor einiger Zeit waren das noch 500k!

Das heißt dann, dass praktisch all diese Transaktionen nun „abgearbeitet“ wurden, und nicht ungültig wurden. Ich dachte immer, dass die meisten ungültig wurden, da deren „Zeit“ abgelaufen sei.

Danke!

Für eine DDOS Attacke braucht man keine gültigen Transaktionen. Man kann eine Node einfach mit bestimmten Anfragen, ob nun gültige oder nicht, so sehr überfluten dass es an der Last einbricht. Aber wie viele Nodes gibt es? Mindestens 20k? Um so viele Nodes abzuschießen müsste der DDOS Angriff ziemlich massiv sein. Wobei ich mich frage wie viele davon Kleincomputer sind.