Можливо, ви пропустили чудову можливість стати мільйонером Ethereum!
Основна помилка, подана під заголовком «Маніпуляція з балансом рахунку Ethereum», дозволила отримати доступ до необмеженої кількості ефірів у вашому гаманці, виконавши ряд кроків, пов’язаних з розумним виконанням контракту з несправною транзакцією або несправним адресним гаманцем. Але можливість пропала, оскільки помилка тепер виправлена.
Як розгорнулася драма?
Голландська фінтехнологія під назвою VI Company виявила та повідомила про вразливість Coinbase протягом грудня минулого року. Найбільша біржа криптовалют США негайно вжила заходів, але на виправлення помилки пішло майже місяць до пізньої частини січня. (Дивіться також, Coinbase: що це таке і як ним користуватися?)
Компанія VI була нагороджена біржею Coinbase з сумою винагороди у 10000 доларів за відверту звітність про випуск, і випуск був публічно оприлюднений.
Як помилка дозволила необмежену кількість ETH?
Ethereum використовує смарт-контракти як невід'ємну частину своєї мережі. Уразливість існувала під час переказу коштів за допомогою смарт-контрактів за наступним сценарієм.
Скажімо, користувач використовував смарт-контракти для розповсюдження ефірів по набору кількох гаманців. Ця стандартна вправа призведе до безлічі транзакцій в мережі Ethereum. Якщо одна з таких проміжних транзакцій завершиться невдачею, всі інші транзакції, що відбулися до неї, також будуть скасовані завдяки робочому механізму смарт-контрактів. (Дивіться також, Ethereum Smart Contracts, вразливий для хаків: 4 мільйони доларів в ефірі з ризиком.)
Однак проблема виникає на рахунку Coinbase, коли ці транзакції не будуть відмінені. Це дозволило людині додати нескінченну кількість ефірів до свого балансу. Хоча пошук адреси гаманця Coinbase виявить, що він не приписується жодним ефірам, гаманець Coinbase людини покаже ознаки.
По суті, користувач може використовувати розумний контракт для ініціювання переказу коштів, який розбивається на сотні транзакцій. Якщо користувач навмисно встановить помилкову транзакцію в кінці, всі попередні будуть відмінені, зараховуючи його / її гаманець сукупною сумою жетонів.
HackerOne перераховує наступні кроки компанії VI для відтворення проблеми:
- Складіть розумний контракт з кількома діючими гаманцями Coinbase та одним остаточним несправним гаманцем, які завжди кидають виняток при отриманні коштів смарт-контракту. Передайте відповідні кошти на смарт-контракт. Не виходячи з гаманця смарт-контракту, починайте виконувати смарт-контракт. Це додасть встановлену кількість ефіру до гаманців Coinbase. Оскільки завершення транзакції закінчиться невдалою в останньому гаманці, усі попередні транзакції будуть відмінені, але вони не будуть зворотні на рахунку Coinbase. Особа, яка виконує цю процедуру, тепер може виплатити гроші або перенести потрібні ефіри в інший гаманець
Хоча ще немає повідомлень про будь-які великі порушення чи неправильне використання через цю помилку, Coinbase підтвердила «випадкову втрату». У підсумковій записці Coinbase зазначається: «Проблема виправлена шляхом зміни логіки обробки контрактів. Аналіз випуску показав лише випадкові втрати для Coinbase, а також ніяких спроб експлуатації. "(Дивіться також: Чи можна зламати біткойн?)
