1. 6. Juli 2022, ein äußerst gewöhnlicher Mittwoch.

Programmierer Xiaosan beendete schließlich den letzten Vertragstest, drehte sich auf dem künstlichen Stuhl herum und streckte sich aufgeregt aus.

„Okay, als nächstes steht heute eine weitere Aufgabe an – der Aufbau und die Bereitstellung eines Ethereum-Absteckknotens.“

Zwei Monate später steht Ethereum kurz vor der Einleitung der Fusion. Xiaosan hat volle 289 ETH in seinem Wallet und plant, diese für das Staking-Finanzmanagement zu verwenden.

„Aber es scheint heute einen Fehler in der Ledger-Wallet zu geben? Vergessen Sie es, gehen wir zu dem Konto, auf dem ich den Vertrag bereitgestellt habe. Wie auch immer, das Veröffentlichen und Testen des Vertrags wird einiges an Benzin verbrauchen.“

Nachdem er das Transferskript eingegeben hatte, machte sich der Kellner daran, eine Tasse Kaffee zu kochen. Ein gewöhnlicher Latte, genau wie ein gewöhnlicher Mittwoch.

Nachdem er vom Kaffeekochen zurückgekommen war, begann Xiaosan, sich beim Trinken auf Etherscan zu erfrischen, um zu sehen, ob die gerade gesendete Transaktion bestätigt wurde. „Häh? Es scheint, dass das Zahlungskonto nicht korrekt ist?“

Plötzlich setzte das Herz der Herrin einen Schlag aus, der Kaffee in ihrer Hand fiel zu Boden und ein kaltes Gefühl überkam ihre Hände und Füße:

„Es ist vorbei! Ich habe 289 ETH auf das Hardhat-Testkonto geschickt!“

2.

Hardhat ist das gängigste und am häufigsten verwendete Entwicklungsframework in Ethereum. Es bietet eine Reihe von Tools und Funktionen, die Entwicklern das Entwickeln, Testen und Bereitstellen intelligenter Verträge auf der Ethereum-Plattform erleichtern.

Für Entwickler besteht eine der wichtigsten Funktionen von Hardhat darin, lokal eine Ethereum-Umgebung zum lokalen Testen von Verträgen zu erstellen oder zu forken.

Wenn Sie den Befehl npx hardhat node lokal ausführen,

Hardhat wird lokal ein simuliertes Netzwerk erstellen und 20 feste Test-EOA-Konten und entsprechende private Schlüssel generieren.

Gleichzeitig wird Hardhat auch den Restbetrag von 10.000 ETH für diese 20 EOA-Konten initialisieren, um Entwicklern die Verwendung dieser Konten zur Veröffentlichung lokaler Verträge zum Testen zu erleichtern.

(Mit 20 Konten, die „Hunderte Millionen wert“ sind, bin ich der König von localhost!)

Beachten Sie, dass dieses lokale Simulationsnetzwerk nichts mit dem Ethereum-Hauptnetzwerk zu tun hat und der Saldo von 10.000 ETH auf diesen 20 EOA-Konten nur lokal ist.

Da die 20 generierten Konten jedoch fest sind und die privaten Schlüssel öffentlich sind, kann jeder im Ethereum-Mainnet diese privaten Schlüssel verwenden, um die Vermögenswerte auf diesen Konten abzuheben.

Wenn ein Ingenieur nach Abschluss der Vertragstests vergisst, die Umgebung zu wechseln, die Testumgebung als Hauptnetzwerkumgebung behandelt und ETH an diese 20 Testkonten sendet, wird eine Tragödie passieren ...

3,

Wie bereits beschrieben, wurde am 6. Juli letzten Jahres von einem Freund threepvault.eth eine Summe von 289 ETH an das Hardhat-Testkonto gesendet.

0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266

Warum ist das Konto 0xf39F? Es ist das erste von Hardhat generierte Testkonto und wird daher am häufigsten verwendet.

Daher wird spekuliert, dass dieser unglückliche Programmierer das erste Testkonto kopiert hat, um den Test abzuschließen, aber vergessen hat, die Konfiguration zu ändern, und 289 ETH an die Adresse dieses Testkontos im Hauptnetzwerk gesendet hat.

Basierend auf dem damaligen Währungspreis war 289ETH 340.000 US-Dollar wert. Jetzt ist es mehr als 500.000 US-Dollar wert, eine Tragödie von 3 Millionen Yuan.

Was geschah als nächstes? Werfen wir einen Blick auf die On-Chain-Daten:

Diese fehlerhafte Übertragung erfolgte im Block 15086827, der noch die POW-Ära von Ethereum darstellte.

Dieser Block ist ein Flashbots-Block, und ein MEV-Sucher hat diese Backrun-„Gelegenheit“ glücklicherweise erkannt.

Diese fehlerhafte Übertragung wurde in ein MEV-Paket eingegeben, und die Arbitrage-Transaktion folgte kurz darauf. Nach Zahlung der Gasgebühr von 4,8 ETH wurden die verbleibenden ca. 284 ETH im Hardhat-Testkonto 0xf39F auf das Konto 0x043D übertragen.

Von 100 ETH über 10 ETH bis hin zu 1 ETH, und schließlich blieben nicht einmal 0,1 ETH verschont:

Zu diesem Zeitpunkt sollte dieser Vermögenswert im Wert von 2 bis 3 Millionen Yuan als verlorene Sache betrachtet werden und wird nie wieder zurückkommen.

4.

Vierzig Minuten nach der Tragödie ging unser Opfer online.

Er schickte dem Hacker einen NFT namens Message In a Bottle, der einen Text in ein Bild packen und in einen NFT umwandeln kann.

In diesem NFT beschrieb er seine mentale Reise:

hallo, ich habe versucht, einen Validator-Knoten einzusetzen

heute Abend. Musste aufgrund eines Ledger-Fehlers ETH an eine Hot Wallet senden.

Dachte, ich würde es an mein Contract-Deployer-Wallet senden … es stellte sich heraus, dass es ein öffentliches Hardhat-Testkonto war.

Normalerweise bin ich ziemlich vorsichtig (habe mein Portemonnaie im Griff, schicke kleine Testtransaktionen), aber heute Abend war ich unvorsichtig. Fühlt sich schlecht an, Mann.

Falls Sie das hier sehen, würde ich gerne versuchen, ein Kopfgeld oder etwas Ähnliches auszuhandeln. Ich habe einen wirklich dummen Fehler gemacht

übersetzen:

Hallo, ich möchte heute Abend einen Verifizierungsknoten abstecken. Aufgrund eines Fehlers im Ledger musste eth an die Hot Wallet gesendet werden.

Ich dachte, ich würde es an mein Vertrags-Deployment-Wallet senden. (Erst nachdem die Übertragung abgeschlossen war) fand ich heraus, dass es sich um ein öffentliches Hardhat-Testkonto handelte.

Normalerweise bin ich sehr vorsichtig (Hardware-Wallet, Senden kleiner Testtransaktionen usw.), war aber heute Abend nachlässig. Schlecht fühlen.

Wenn Sie das sehen, würde ich gerne versuchen, ein Kopfgeld oder etwas Ähnliches auszuhandeln. Ich habe einen sehr dummen Fehler gemacht

5.

Doch der Hacker ignorierte das Opfer.

Fünf Stunden nach der Tragödie ging der Besitzer des 0x043D-Kontos, der MEVSearcher-Hacker, online. Er begann geschickt, Vermögenswerte zu übertragen, teilte die 284 ETH auf und übertrug sie einzeln an Tornado.

6.

Die Geschichte endet hier jedoch nicht.

15 Stunden nach der Tragödie ging unser Opfer wieder online.

Nachdem ich 289 ETH verloren habe, weiß ich nicht, wie der Betroffene in den letzten 15 Stunden hierher gekommen ist.

Nun hätte er die Realität des Verlusts von 289 ETH akzeptieren sollen, aber er hat sie nicht vollständig akzeptiert.

Der Eigentümer erwarb einen ENS-Domainnamen namens

willpay100ethifffundsarereturnedto threepvault.eth (wenn Sie das Geld an threepvault zurückgeben, zahle ich Ihnen 100 ETH) und schickte diesen Domainnamen an den Hacker und machte sein Angebot.

Vielleicht wollte er die Botschaft auf diese Weise übermitteln, in der Hoffnung, dass der Hacker es mit Gewissen herausfinden oder Gnade zeigen und ihm 189 ETH zurücküberweisen würde.

Im März 2023 ist seit der Tragödie mehr als ein halbes Jahr vergangen. Es wurden keine Maßnahmen zur Adresse des Hackers ergriffen, es wurden keine Transaktionen durchgeführt und auf dem Konto des Opfers gab es keine Einträge von Tornado. Ich denke, diese Geschichte endet hier und es sollte keine Fortsetzung geben. Das ist der dunkle Wald, niemand wird für deine Fehler bezahlen, jeder kann nur an sich selbst glauben.