Возможно, вы упустили прекрасную возможность стать миллионером Ethereum!
Основная ошибка, под названием «Управление балансом аккаунта Ethereum», позволяла получить доступ к неограниченному количеству эфиров в вашем кошельке, выполнив ряд шагов, включающих выполнение умного контракта с ошибочной транзакцией или с неверным адресным кошельком. Но возможность исчезла, так как ошибка исправлена.
Как развернулась драма?
Голландская финтех-фирма VI Company определила и сообщила об уязвимости Coinbase в декабре прошлого года. Крупнейшая криптовалютная биржа США незамедлительно приняла меры, но для исправления ошибки к концу января потребовался почти месяц. (Смотрите также, Coinbase: что это такое и как вы его используете?)
Компания VI была вознаграждена биржей Coinbase с суммой вознаграждения в 10 000 долларов за откровенное сообщение о проблеме, и проблема была публично раскрыта.
Как ошибка позволила неограниченное снабжение ETH?
Ethereum использует умные контракты как неотъемлемую часть своей сети. Уязвимость существовала во время перевода средств через смарт-контракты в следующем сценарии.
Скажем, пользователь использовал умные контракты, чтобы распространять эфиры по множеству кошельков. Это стандартное упражнение приведет к нескольким транзакциям в сети Ethereum. В случае сбоя одной такой промежуточной транзакции все остальные транзакции до нее также будут отменены из-за рабочего механизма смарт-контрактов. (См. Также, Интеллектуальные контракты Ethereum, уязвимые для хаков: 4 миллиона долларов за эфир в опасности.)
Однако проблема возникает в учетной записи Coinbase, где эти транзакции не будут отменены. Это позволило человеку добавить к своему балансу бесконечное количество простых эфиров. Хотя поиск адреса кошелька Coinbase покажет, что на него не зачислены никакие эфиры, кошелек Coinbase этого человека покажет токены.
По сути, пользователь может использовать умный контракт для инициирования перевода средств, который разделен на сотни транзакций. Если пользователь преднамеренно установит ошибочную транзакцию в конце, все предыдущие будут отменены, и на его / ее кошелек будет накоплено количество токенов.
HackerOne перечисляет следующие шаги компании VI для воспроизведения проблемы:
- Создайте смарт-контракт с несколькими действующими кошельками Coinbase и одним последним неисправным кошельком, который всегда вызывает исключение при получении средств смарт-контракта. Переведите соответствующие средства в смарт-контракт, не покидая смарт-контрактный кошелек, начните выполнять смарт-контракт. Это добавит установленное количество эфира в кошельки Coinbase. Поскольку полная транзакция завершится неудачно в последнем кошельке, все предыдущие транзакции будут отменены, но они не будут отменены на счете Coinbase. Человек, выполняющий эту процедуру, теперь может обналичить или передать нужные эфиры в другой кошелек
Хотя пока нет сообщений о каких-либо серьезных нарушениях или неправильном использовании из-за этой ошибки, Coinbase подтвердила «случайную потерю». В краткой заметке Coinbase упоминает: «Проблема была исправлена путем изменения логики обработки контракта. Анализ проблемы показал только случайную потерю Coinbase и никаких попыток эксплуатации ». (См. Также, можно ли взломать Биткойн?)