1. 2022-ci ilin 6 iyulunda, adi bir çərşənbə günü.

Proqramçı Kiçik Üçüncü nəhayət son müqavilə testini bitirdi, iş stulunda bir dövr vurdu, həyəcanla uzandı.

「Yaxşı, indi günün digər tapşırığı - bir Ethereum staking nodu qurmaq və yerləşdirməkdir.」

İki ay sonra, Ethereum Merge-ə yaxınlaşır, Kiçik Üçüncü-nün cüzdanında 289 ETH var, onları staking üçün istifadə etməyi planlaşdırır.

「Amma bu gün ledger cüzdanında bir az problem var? Qoy, əvvəlcə onu yerləşdirdiyim müqavilə hesabına köçürüm, nəhayət o zaman müqavilələri yayımlamaq və test etmək də bir az Gas istehlak edəcək.」

Çeviri: Transaksiya skriptini yazdıqdan sonra kiçik üçüncü tərəf bir fincan kofe alıb. Bir fincan adi latte, bu adi çərşənbə günü ilə eyni dərəcədə sadədir.

Kofeni içdikdən sonra, kiçik üçüncü tərəf içərək Etherscan-da yeniləməyə başladı, az əvvəl göndərilən əməliyyatın təsdiqlənib-təsdiqlənmədiyinə baxırdı. "Hmm? Görünür ki, alıcı hesabı düzgün deyil?"

Birdən, kiçik üçüncü tərəfin qəlbində bir titrəmə başladı, əlindəki kofe yerə düşdü, əlləri və ayaqları soyuq hiss etməyə başladı:

"Bütün işlər bitdi! Mən 289 ETH-ni Hardhat test hesabına göndərdim!"

2,

Hardhat Ethereum-un ən populyar və geniş istifadə olunan inkişaf çərçivəsidir, o, inkişaf etdiricilərə Ethereum platformasında ağıllı müqavilələrin inkişafı, sınağı və yayımı üçün bir sıra alətlər və funksiyalar təqdim edir.

İnkişaf etdiricilər üçün, Hardhat-ın ən vacib funksiyalarından biri, yerli bir Ethereum mühiti yaratmaq və ya Fork etməkdir, müqavilələrin yerli sınaqları üçün.

Siz yerli olaraq npx hardhat node əmrini icra etdikdə,

Hardhat yerli bir simulyasiya şəbəkəsi yaradacaq, eyni zamanda 20 sabit test EOA hesabı və müvafiq özəl açarları yaradacaq.

Eyni zamanda, Hardhat bu 20 EOA hesabına 10000 ETH balansı da təyin edəcək ki, inkişaf etdiricilər bu hesablarla yerli müqavilələri sınaqdan keçirə bilsinlər.

(20 "dəyəri milyardlarla" hesabı var, mən localhost-un kralıyam!)

Qeyd edək ki, bu yerli simulyasiya şəbəkəsi Ethereum əsas şəbəkəsi ilə heç bir əlaqəsi yoxdur, bu 20 EOA hesabında 10000 ETH balansı yalnız yerli mühitdədir.

Amma, yaradılan bu 20 hesab sabitdir və özəl açarları açıqdır, buna görə də Ethereum əsas şəbəkəsində, istənilən kəs bu açarları istifadə edərək bu hesabların içindəki aktivləri çıxara bilər.

Təsəvvür edin ki, bir mühəndis müqavilə sınağını bitirdikdən sonra, mühitini dəyişməyi unudub, test mühitini əsas şəbəkə mühiti kimi qəbul edir və bu 20 test hesabına ETH göndərirsə, bu dəhşət baş verir...

3,

Önceden təsvir edildiyi kimi, keçən ilin 6 iyulunda, 289 ETH bir dost tərəfindən threepvault.eth-ə göndərildi, Hardhat test hesabına.

0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266

Niyə 0xf39F bu hesabdır? O, Hardhat tərəfindən yaradılan ilk test hesabıdır, buna görə də ən çox istifadə olunur.

Belə düşünülür ki, bu bədbəxt proqramçı ilk test hesabını kopyalayaraq sınaqdan keçirib, nəticədə konfiqurasiyanı dəyişməyi unudub, əsas şəbəkədə 289 ETH-ni bu test hesabının ünvanına göndərib.

Əgər o vaxtın kriptovalyuta qiymətləri ilə hesablayarsaq, 289 ETH 34 min ABŞ dolları dəyərindədir, indiki dövrdə isə 50 min ABŞ dollarından artıqdır, 3 milyon RMB-lik dəhşət.

Sonra nə baş verdi? Gəlin zəncirdəki məlumatlara baxaq:

Bu səhv transfer 15086827 blokunda baş verdi, o vaxt hələ də Ethereum-un POW dövrü idi.

Bu blok bir Flashbots blokudur, bir MEV axtaran bu Backrun "şansını" yakaladı.

Bu səhv transfer bir MEV paketin içərisinə daxil oldu, arbiter ticarətinin ardınca, 4.8 ETH qaz xərci ödədikdən sonra, Hardhat test hesabındaki 0xf39F-də qalan təxminən 284 ETH-ni 0x043D hesabına köçürdü.

100 ETH-dan 10 ETH-yə, sonra 1 ETH-yə, nəticədə 0.1 ETH-yə qədər belə bir şey olmadı:

Buna görə, bu 200~300 min RMB dəyərindəki aktivlər artıq yoxa çıxmış sayılır.

4,

Dəhşət baş verdikdən 40 dəqiqə sonra, bizim qurbanımız onlayn oldu.

O, hakerə bir NFT göndərdi, bu NFT-nin adı 'Message In a Bottle' dir, bir mətn parçasını şəkil olaraq paketləyib NFT-yə çevirməyə imkan verir.

O, bu NFT-də, öz daxili yolunu təsvir etdi:

salam, mən bir doğrulayıcı düyününü stake etməyə çalışırdım.

bu gecə. Ledger bug səbəbindən ehtiyat cüzdanına ETH göndərməli oldum.

Mən onu müqavilə dağıdan cüzdanıma göndərdiyimi düşündüm.. nəticədə bunun bir ictimai Hardhat test hesabı olduğunu anladım.

Mən adətən çox diqqətli oluram (hw cüzdan, kiçik test əməliyyatları göndərmək) amma bu gecə diqqətsiz oldum. Pisləşir.

Bunu görəndə, mükafat və ya buna bənzər bir şey haqqında müzakirə aparmaq istəyirəm. Mən çox axmaq bir səhv etdim.

Tərcümə:

Salam, bu gecə bir doğrulayıcı düyününü stake etmək istəyirəm. Ledger-da bir bug səbəbindən, ETH-ni ehtiyat cüzdanına göndərməli oldum.

Mən düşündüm ki, onu müqavilə dağıdan cüzdanıma göndərdim.. (transferdən sonra) bunun bir ictimai Hardhat test hesabı olduğunu anladım.

Mən adətən çox diqqətli oluram (hard cüzdan, kiçik test əməliyyatları göndərmək) amma bu gecə diqqətsiz oldum. Pisləşir.

Əgər bunu görsəniz, mükafat və ya buna bənzər bir şey haqqında müzakirə aparmaqda məmnuniyyət duyaram. Mən çox axmaq bir səhv etdim.

5,

Amma haker qurbanı nəzərə almadı.

Dəhşət baş verdikdən 5 saat sonra, 0x043D hesabının sahibi - yəni bu MEVSearcher hakeri onlayn oldu, sərbəst şəkildə aktivləri köçürməyə başladı, bu 284 ETH-ni parçalayaraq, böyük-kiçik bir neçə dəfə Tornado-ya köçürdü.

6,

Amma, hekayə burada bitmir.

Dəhşət baş verdikdən 15 saat sonra, bizim qurbanımız yenidən onlayn oldu.

289 ETH itirdikdən sonra, bu 15 saat ərzində qurbanın necə keçdiyini bilmirəm.

İndi o, 289 ETH itirmək reallığını qəbul etməlidir, amma tam olaraq qəbul etməmişdir.

Qurban bir ENS domeni satın aldı, adı

willpay100ethiffundsarereturnedtothreepvault.eth (əgər siz mənə üçpvault-dan pul qaytarırsınızsa, mən sizə 100 ETH ödəmiş olacağam) və bu domen adını hakerə göndərdi, təklifini irəlilətdi.

Bəlkə də o, bu yolla mesaj vermək istəyir, hakerin vicdanının oyanmasını və ya mərhəmət göstərərək ona 189 ETH-ni geri qaytarmağını ümid edir.

2023-cü ilin mart ayında, dəhşət baş verdikdən altı aydan çox vaxt keçib, hakerin ünvanı hələ də heç bir hərəkət etməyib, heç bir əməliyyat göndərməyib, qurbanın hesabında da Tornado-dan heç bir gəlir yoxdur. Düşünürəm ki, bu hekayə burada bitdi, daha heç bir davamı olmayacaq. Bu, qaranlıq meşədir, heç kim sizin səhvlərinizə görə hesab verməz, hər kəsin inanacağı yeganə şey özüdür.