Часть 1. Ошибка, которая расколола Ethereum
Весной 2016 года проект The DAO собрал около 12 млн ETH — примерно $150 млн по тогдашнему курсу. Это должен был быть инвестиционный фонд без директора: владельцы токенов коллективно решали, какие проекты финансировать.
17 июня всё пошло не по плану. В коде существовала уязвимость повторного входа: контракт сначала отправлял эфир, а уже потом обновлял баланс пользователя.
Атакующий заставил функцию вызывать саму себя снова и снова — как банкомат, который выдаёт деньги, но каждый раз забывает списать их со счёта.
В отдельную структуру ушло около 3,6 млн ETH, примерно треть всех средств The DAO. Благодаря встроенной задержке вывести добычу сразу было нельзя, поэтому у сообщества оставалось несколько недель на решение.
Но исправить код было проще, чем ответить на главный вопрос: имеет ли кто-то право отменить то, что уже записано в блокчейн?

Часть 2. Деньги или принцип «код — это закон»?
После атаки на The DAO сообщество Ethereum оказалось перед невозможным выбором.
Первый вариант: ничего не менять. Блокчейн исполнил написанный код, а значит история должна остаться неприкосновенной — даже если результатом стали украденные миллионы.
Второй: провести хардфорк и создать новую версию истории, где похищенный эфир переводился в контракт возврата средств.
20 июля 2016 года на блоке 1 920 000 большинство сети перешло на новую цепочку. Она сохранила имя Ethereum. Меньшинство отказалось принимать переписанную историю и продолжило старую цепь — так появился Ethereum Classic.
Деньги попытались вернуть, но цена решения оказалась философской: блокчейн, задуманный как неизменяемый, изменили коллективным решением.
Так один баг создал не только крупнейший кризис раннего Ethereum, но и две криптовалюты, которые существуют до сих пор.
Источники
Материал носит информационно-развлекательный характер и не является финансовой рекомендацией.

