Być może przegapiłeś świetną okazję, aby zostać milionerem Ethereum!
Poważny błąd, zgłoszony pod tytułem „Manipulowanie saldem konta Ethereum”, umożliwiał dostęp do nieograniczonej ilości eterów w twoim portfelu, wykonując szereg kroków obejmujących inteligentne wykonanie umowy z wadliwą transakcją lub wadliwy portfel adresowy. Ale szansa zniknęła, ponieważ błąd został już naprawiony.
Jak powstał dramat?
Holenderska firma fintech o nazwie VI Company zidentyfikowała i zgłosiła lukę w zabezpieczeniach Coinbase w grudniu ubiegłego roku. Największa giełda kryptowalut w USA natychmiast podjęła działania, ale naprawienie błędu zajęło prawie miesiąc do końca stycznia. (Zobacz także Coinbase: Co to jest i jak z niego korzystasz?)
Firma VI została nagrodzona przez giełdę Coinbase kwotą 10 000 USD za rzetelne zgłoszenie problemu, a sprawa została publicznie ujawniona.
W jaki sposób błąd pozwolił na nieograniczoną podaż ETH?
Ethereum wykorzystuje inteligentne kontrakty jako integralną część swojej sieci. Luka występowała podczas transferu środków za pośrednictwem inteligentnych umów w następującym scenariuszu.
Powiedzmy, że użytkownik wykorzystał inteligentne umowy do dystrybucji eterów w zestawie wielu portfeli. To standardowe ćwiczenie spowodowałoby wiele transakcji w sieci Ethereum. Jeśli jedna taka transakcja pośrednia zawiedzie, wszystkie pozostałe transakcje przed nią również zostaną cofnięte z powodu mechanizmu działania inteligentnych umów. (Zobacz także: Inteligentne kontrakty Ethereum podatne na ataki hakerskie: 4 miliony USD w eterze zagrożonym.)
Problem występuje jednak na koncie Coinbase, na którym transakcje te nie zostaną cofnięte. Pozwoliło to na dodanie nieskończonej liczby eterów do ich równowagi. Chociaż wyszukiwanie adresu portfela Coinbase ujawni, że nie jest przypisany do żadnych eterów, portfel osoby Coinbase wyświetli tokeny.
Zasadniczo użytkownik może skorzystać z inteligentnej umowy, aby zainicjować transfer środków podzielony na setki transakcji. Jeśli użytkownik celowo ustawi wadliwą transakcję na końcu, wszystkie wcześniejsze zostaną odwrócone, zasilając swój portfel skumulowaną liczbą tokenów.
HackerOne wymienia następujące kroki firmy VI Company w celu odtworzenia problemu:
- Skonfiguruj inteligentny kontrakt z kilkoma ważnymi portfelami Coinbase i jednym ostatnim wadliwym portfelem, który zawsze rzuca wyjątek podczas otrzymywania inteligentnego kontraktu Przekaż odpowiednie fundusze do inteligentnego kontraktu Bez opuszczania inteligentnego portfela kontraktowego zacznij realizować inteligentny kontrakt. Dodanie ustawionej ilości eteru do portfeli Coinbase. Ponieważ cała transakcja zakończy się niepowodzeniem na ostatnim portfelu, wszystkie wcześniejsze transakcje zostaną cofnięte, ale nie zostaną cofnięte na koncie Coinbase. Osoba wykonująca tę procedurę może teraz wypłacić gotówkę lub przenieść żądane etery do innego portfela
Chociaż nie ma jeszcze doniesień o poważnych naruszeniach lub niewłaściwym użyciu z powodu tego błędu, Coinbase potwierdził „przypadkową utratę”. W notatce podsumowującej Coinbase wspomina: „Problem został rozwiązany przez zmianę logiki obsługi kontraktu. Analiza problemu wykazała tylko przypadkową utratę Coinbase i brak prób wykorzystania. ”(Zobacz także, czy Bitcoin może zostać zhakowany?)