Was bewirkt eigentlich der TheDAO-Gegenangriff durch Spamming? (empfohlen von Stephan Tual)

TheDAO wird derzeit angegriffen und ein Gegenangriff durch Spam wurde von Stephan Tual https://blog.slock.it/dao-security-advisory-live-updates-2a0a42a2d07b#.r3wg8cxlw vorgeschlagen

Was macht dieser Code eigentlich?

for (var i = 0; i < 100; i++) { 
    eth.sendTransaction({from: eth.accounts[0], gas: 2300000,
      gasPrice: web3.toWei(20, “shannon”), 
      data: “0x5b620186a05a131560135760016020526000565b600080601f600039601f565b6000f3”}) }
}

Ich dachte, dass es 100 Transaktionen von Konto 0 mit einigen Daten sendet. Aber was sind das für Daten und wie helfen sie dem DAO, nicht ausgelaugt zu werden?

Antworten (1)

Der Angriff lebt davon, dass man mit dem gleichen Guthaben auf seinem Konto eine Funktion zweimal aufrufen kann. Erst nach Ausführung des Funktionsaufrufs wird Ihr Geld abgebucht. So hilft der Spam Zeit zu gewinnen, damit das Geld nicht doppelt ausgegeben wird. Mehr hier: http://vessenes.com/deconstructing-thedao-attack-a-brief-code-tour/


Die Transaktionen erzeugen viele leere Verträge . Dadurch bekommt der Spammer Konkurrenz . Die leeren Vertragskreationen. Wofür konkurrieren sie? Für das Blockgaslimit :

Auch Blöcke haben ein Feld namens Gaslimit. Es definiert die maximale Gasmenge, die alle Transaktionen im gesamten Block zusammen verbrauchen dürfen. Ähnlich wie die maximale Blockgröße bei Bitcoin (gemessen in Bytes) dient sie dazu, die Blockausbreitung und Verarbeitungszeit gering zu halten und damit ein ausreichend dezentrales Netzwerk zu ermöglichen.

Der Angriff kann also den Reentrant-Aufruf nicht ausführen, da das Blockgaslimit durch die Vertragserstellungen erreicht wird, was den Vorteil hat, dass es sich um einen teuren Opcode handelt.

aktualisierte die Erklärung
Vielen Dank. Weiß jemand, ob das erfolgreich war?
Ich habe eine neue Frage für Ihre Frage oben erstellt - siehe ethereum.stackexchange.com/questions/6466/… .