Was hindert einen Angreifer daran, DDOS im Bitcoin-Netzwerk auszuführen, indem er Milliarden von Transaktionen an sich selbst sendet?

Ich weiß, dass Transaktionsgebühren für Transaktionen mit niedriger Priorität zusätzliche Kosten verursachen, aber was ist, wenn ein Angreifer viele 0,100001-BTC-Transaktionen verwendet, sodass er die Gebühr nicht zahlen muss, da Transaktionen größer als 0,01 BTC sind und dies nicht tun würden mit niedriger Priorität betrachtet werden. Es würde kein Geld verloren gehen, da keine Transaktionsgebühren zu zahlen sind. Nur riesige Investition. Wie viele Bitcoins werden dafür benötigt?

Woher kommt die Idee, dass es keine Transaktionsgebühren geben würde?

Antworten (2)

Dieser Angriff würde nicht sehr gut funktionieren, egal wie viel Geld der Angreifer hatte.

Ihre Frage scheint auf der Annahme zu beruhen, dass Transaktionen größer als 0,01 BTC immer gebührenfrei versendet werden können. Dies ist nicht korrekt.

Es gibt zwei Hauptrisiken bei einem solchen Angriff:

  1. Die Transaktionen des Angreifers könnten den gesamten verfügbaren Platz in Blöcken belegen und andere Personen daran hindern, ihre Transaktionen bestätigen zu lassen.

  2. Die Knoten im Peer-to-Peer-Netzwerk verwenden möglicherweise viel Bandbreite, um die Transaktionen des Angreifers weiterzuleiten, und andere Transaktionen nicht weiterzuleiten.

Was ich hier beschreiben werde, ist, wie dieses Problem von Bergleuten und Knoten vermieden wird, die die unveränderte Bitcoin Core-Software verwenden. Die von dieser Software implementierten Regeln werden hier ausführlich erklärt , und das Folgende ist lediglich eine Zusammenfassung. Natürlich steht es den Menschen frei, andere Software zu verwenden, daher werden diese Regeln nicht allgemein befolgt. Solange jedoch ein erheblicher Teil der Miner / Benutzer etwas Ähnliches tut, wird der Angriff keine ernsthaften Probleme verursachen.

Was 1 betrifft, so werden bei der Auswahl der Transaktionen, die in einen Block aufgenommen werden sollen, Transaktionen mit Gebühren im Allgemeinen Transaktionen ohne Gebühren vorgezogen, und höhere Gebühren werden niedrigeren Gebühren vorgezogen. Die gebührenfreien Transaktionen Ihres Angreifers würden also im Allgemeinen nicht die von Benutzern verdrängen, die Gebühren bezahlt haben.

Ausnahmsweise sind 50 KByte in jedem Block für Transaktionen mit hoher Priorität reserviert, auch wenn diese keine Gebühren haben. Die Priorität wird nicht nur durch die Größe der Transaktion festgelegt, sondern auch durch das Alter ihrer Eingaben (die sogenannte „Bitcoin Days Distroyed“-Metrik). Wenn unser Angreifer viele Transaktionen durchführen möchte, muss er immer wieder dieselben Münzen senden, was bedeutet, dass das Alter der Eingaben gering ist. Andere Transaktionen, die für eine Weile unbestätigt bleiben, gewinnen langsam an Priorität und übertreffen schließlich die unseres Angreifers.

Also zusammenfassend:

  • Gebührenpflichtige Transaktionen würden nicht gestört

  • Nicht gebührenpflichtige Transaktionen könnten sich verzögern, würden aber letztendlich trotzdem durchgeführt.

Für die Weiterleitung wird eine einfachere Regel verwendet: Es gibt eine pauschale Grenze für die Anzahl der Bytes pro Minute von nicht gebührenpflichtigen Transaktionen, die weitergeleitet werden. Gebührenpflichtige Transaktionen unterliegen dieser Beschränkung nicht. So:

  • Gebührenpflichtige Transaktionen würden nach wie vor weitergeleitet

  • Knoten würden keine übermäßige Menge an Bandbreite verwenden, um die Transaktionen des Angreifers weiterzuleiten; Die meisten von ihnen würden nicht weitergegeben

  • Nicht gebührenpflichtige Transaktionen haben es möglicherweise schwerer, weitergeleitet zu werden. Benutzer könnten dies vermeiden, indem sie Transaktionsgebühren einbeziehen oder ihre Transaktionen direkt an Miner übermitteln, ohne das Peer-to-Peer-Netzwerk zu verwenden.

Dies wurde tatsächlich im BCH-Netzwerk getestet. Hier ist die Antwort: https://www.reddit.com/r/btc/comments/9d94ja/bch_stress_test_failed_to_produce_even_on_maximum/