Seltsame Transaktion, die an sich selbst gesendet wird

Sehen Sie sich einige seltsame TXs an, die Selbstadressen aufrufen, zum Beispiel die letzten 2 (der erste und zweite TX in diesem Block) Transaktionen unter https://etherscan.io/txs?block=6475251&p=2

Sehen Sie sich auch viele Selbstanruf-TXS unter dieser Adresse an: https://etherscan.io/txs?a=0xc9d81352fbdb0294b091e51d774a0652ef776d99 , der Gaspreis dieser Selbstanrufe ist ziemlich hoch (~ 100 Gwei), gibt es einen besonderen Grund, diese TXs zu machen?

Note: I don't think it's txs made by some newbie mistakes cuz I see this address (0xc533a4e3350deecaa0bf0fcba92d4a6138013b18) made a lot of self call txs too, this address arbitrage using smart contract( https://etherscan.io/tx/0x3be6f56a9a74b003c170fa7cc0736e7ae92df271e40a2f3100aeb4ee3705d8ca ) , sicher, dass es kein Neuling ist.

Ich bin mir nicht sicher, aber ich denke, diese wurden möglicherweise versehentlich von jemandem erstellt, der neu in diesem Bereich ist. Wahrscheinlich testeten sie einen Vertrag auf Remix und erkannten nicht, dass sie ihn auf dem Hauptnetz anstelle eines Testnetzes oder Ropstens einsetzten
@RD danke für deine Antwort, sieh dir meine hinzugefügten Notizen an, um zu sehen, warum ich nicht glaube, dass es ein Anfängerfehler ist.
Sie haben Recht. Und hier endet mein Wissen, sorry XD. Es scheint seltsam, dass sie nur Gas für nichts ausgeben und auch keine Ether transferiert werden.

Antworten (2)

Es geht darum, eine Transaktion zu stornieren. Genauer gesagt handelt es sich um eine Ersatztransaktion für etwas anderes, das sich im Pool für ausstehende Transaktionen befand.

Stellen Sie sich einen Fall vor, in dem eine Transaktion mit gasPriceeinem zu niedrigen Set gesendet wird, als dass ein Miner sie in einen Block aufnehmen könnte. Da Ethereum sicherstellt, dass Transaktionen aus derselben Brieftasche in der richtigen Reihenfolge abgebaut noncewerden, bleibt alles , was von diesem Konto gesendet wird, hinter der Transaktion stehen, die zu niedrig bewertet ist.

Es gibt andere Gründe für den brennenden Wunsch, eine schwebende Transaktion abzubrechen. Also, wie macht man das?

Senden Sie eine weitere Transaktion mit derselben Transaktion noncewie die unterbewertete Transaktion aus derselben Brieftasche, und bepreisen Sie sie dieses Mal hoch genug, um schnell in einen Block abgebaut zu werden.

Wie würde ein Ersatzgeschäft aussehen?

Sie könnten die ursprüngliche Nutzlast mit einem höheren wiederholen gasPrice, aber wenn Sie eine einfache allgemeine Stornierung bevorzugen ... senden Sie nichts an sich selbst und warten Sie auf die Bestätigung. Mit anderen Worten, from: me, to: me, value: 0.

Falls dies nicht klar ist, wird diese Methode geschürfte Transaktionen nicht rückgängig machen.

Ich hoffe es hilft.

Wenn ich stattdessen dasselbe noncewie die unterbewertete Transaktion verwendet habe, from: me, value: 0aber hatte to: them, gibt es funktional einen Unterschied? Es ist immer noch ein Widerrufsrecht?
Ja. Es ist der Ersatz-TXN, der auf das Original stampft, der das Original annulliert. Die Ersetzung wird ausgeführt. Es kann eine Wiederholung des ersten ("Beschleunigen Sie diese Transaktion") oder ein "Nichts tun"-Txn sein.

Ich bin mir nicht sicher, aber es scheint, als würde jemand versuchen, den Angriff zu verdoppeln. Um es zu sehen, habe ich diese beiden Transaktionen überprüft

Warum ich dachte, es ist ein Double-Spend-Angriff

  • Gleiche Nonce für beide Transaktionen
  • Der Gaspreis wird für die zweite Transaktion verdoppelt

Sie können https://medium.com/@jgm.orinoco/releasing-stuck-ethereum-transactions-1390149f297d überprüfen , um ein besseres Verständnis von gasPrice und Nonce zu erhalten.

Danke, können Sie mehr darüber erklären, warum es doppelt ausgegeben werden kann? Ich sehe keinen Wert (Ether), der in diesen beiden Transaktionen gesendet wird.
Dabei spielt es keine Rolle, ob msg.value 0 ist oder nicht. Wenn es dem Angreifer gelingt, es mit dem Wert 0 zu übermitteln, ist es auch möglich, es über n ETH zu übermitteln. Es ist nur meine Vermutung, dass es sich um einen Double-Spend-Angriff handelt. Aber ich bin mir zu 99,9% sicher, dass es experimentell ist.
Nach meinem Verständnis sind doppelte Ausgaben nur möglich, wenn die Implementierung von Ethereum einen Fehler aufweist, oder?