Може да сте пропуснали страхотна възможност да станете милионер Ethereum!
Основна грешка, подадена под заглавието „Манипулация на баланса в акаунта на Ethereum“, позволява достъп до неограничена доставка на етери във вашия портфейл, като следвате поредица от стъпки, включващи интелигентно изпълнение на договор с грешна транзакция или невалиден адресен портфейл. Но възможността няма, тъй като бъгът вече е отстранен.
Как се разгърна драмата?
Холандска фирма за финтех, наречена VI Company, идентифицира и докладва уязвимостта на Coinbase през декември миналата година. Най-голямата борса за криптовалута в САЩ незабавно предприе действия, но отне почти месец, за да се отстрани грешката до края на януари. (Вижте също, Coinbase: Какво е това и как го използвате?)
VI компанията беше възнаградена от борсата Coinbase със сума от 10 000 долара за откровеното отчитане на емисията и емисията беше публично оповестена.
Как грешката позволи неограничена доставка на ETH?
Ethereum използва интелигентните договори като неразделна част от своята мрежа. Уязвимостта съществува по време на трансфер на средства чрез интелигентни договори при следния сценарий.
Да речем, потребител използва интелигентни договори, за да разпространява етери върху набор от множество портфейли. Това стандартно упражнение би довело до множество транзакции в мрежата Ethereum. Ако една такава междинна транзакция се провали, всички останали транзакции преди нея също ще бъдат обърнати поради работещия механизъм на смарт договорите. (Вижте също, Ethereum Smart Contracts уязвими за хакове: 4 милиона долара в етер с риск.)
Проблемът обаче възниква в акаунта на Coinbase, където тези транзакции няма да бъдат възстановени. Това позволи на човек да добави безкраен брой етери към баланса си. Въпреки че преглеждането на адреса на портфейла на Coinbase ще разкрие, че той не е кредитиран с никакви етери, портфейлът на Coinbase на лицето ще показва символите.
По същество, потребителят би могъл да използва интелигентен договор, за да започне трансфер на средства, който е разделен на стотици транзакции. Ако потребителят нарочно зададе грешна транзакция в края, всички по-ранни ще бъдат обърнати, кредитирайки портфейла му с кумулативното количество жетони.
HackerOne изброява следните стъпки от VI Company за възпроизвеждане на проблема:
- Създайте интелигентен договор с няколко валидни портфейла на Coinbase и един окончателен дефектен портфейл, който винаги хвърля изключение при получаване на средства за интелигентен договор. Той ще добави зададеното количество етер към портфейлите на Coinbase. Тъй като пълната транзакция ще се провали при последния портфейл, всички предишни транзакции ще се обърнат, но те няма да се обърнат обратно в акаунта на Coinbase. Лицето, изпълняващо тази процедура, вече може да изплати пари или да прехвърли желаните етери в друг портфейл
Въпреки че все още няма съобщения за големи нарушения или злоупотреби поради тази грешка, Coinbase потвърди „случайната загуба“. В обобщена бележка Coinbase споменава: „Проблемът беше отстранен чрез промяна на логиката на обработка на договора. Анализът на емисията показа само случайна загуба за Coinbase и никакви опити за експлоатация. “(Вижте също, Може ли биткойн да бъде хакнат?)