Skip to content
Бета
Research · Обучение криптовалютам

Что произошло при взломе The DAO и почему Ethereum раскололся?

Ethereum и смарт-контракты · 7 October 2026 · 1 мин чтения · By admin

Взлом The DAO в июне 2016 года, в ходе которого было выведено около 3,6 млн ETH, привел к жесткому форку Ethereum и появлению Ethereum Classic.

What Was the DAO Hack and Why Did Ethereum Split? — OTCN Research cover

Взлом The DAO начался 17 июня 2016 года: атакующий использовал уязвимость в The DAO, инвестиционном фонде на основе смарт-контрактов, и вывел около 3,6 млн ETH, примерно 28% его средств. 20 июля 2016 года в Ethereum был проведен жесткий форк, чтобы вернуть средства. Сообщество раскололось, а неизмененная исходная цепочка продолжила существовать как Ethereum Classic.

Что представлял собой The DAO

The DAO был инвестиционным фондом, которым полностью управляли смарт-контракты. Любой мог отправить эфир и получить токены DAO, дающие право голоса при выборе проектов, которые фонд будет поддерживать. Продажа токенов началась 30 апреля 2016 года и собрала около 12,7 млн ETH, что по тогдашнему курсу составляло около 150 млн долларов, и сделала его одним из крупнейших краудфандингов того времени.

В обычном смысле у The DAO не было управляющих. Держатели токенов голосовали за предложения, а группа известных участников сообщества выступала в роли кураторов: они проверяли личность всех, кто запрашивал финансирование, и решали, какие предложения можно поставить на голосование. Эта структура впоследствии стала важна для регуляторов, поскольку указывала на то, что инвесторы полагались на усилия небольшой группы, а не управляли фондом сами.

Как работала атака

The DAO позволял держателям токенов выделиться в «дочерний DAO» и вывести свою долю эфира. Функция вывода отправляла эфир до обновления баланса держателя. Контракт атакующего использовал этот разрыв, многократно вызывая вывод до изменения баланса. Этот прием сейчас известен как атака повторного входа (reentrancy). Около 3,6 млн ETH были переведены в дочерний DAO, контролируемый атакующим.

Суть ошибки простыми словами

Представьте кассира банка, который выдает наличные до того, как записать выдачу в журнал, и который отвечает на каждый новый запрос того же клиента, не закончив предыдущий. Клиент, который достаточно быстро продолжает запрашивать деньги, может снимать один и тот же баланс снова и снова, потому что в журнале каждый раз отображается исходная сумма. Это и есть повторный вход. Код The DAO сначала отправлял эфир вызывающей стороне и только потом уменьшал ее баланс, а контракт атакующего был написан так, чтобы запрашивать очередной вывод сразу после получения каждого платежа.

Исправление просто, если его понять: сначала нужно обновить баланс, а потом отправлять деньги. Разработчики также начали добавлять блокировки, которые не позволяют повторно войти в функцию до завершения ее выполнения. Этот порядок действий, часто описываемый как «проверки, эффекты, взаимодействия», стал одним из первых правил, которым обучали каждого разработчика Ethereum.

Правила The DAO помогли выиграть время: средства в новом дочернем DAO блокировались на период ожидания перед тем, как их можно было переместить, что дало сообществу несколько недель на решение, что делать дальше.

Хронология

  • 30 апреля 2016 года: запускается продажа токенов The DAO.
  • 17 июня 2016 года: атака выводит около 3,6 млн ETH в дочерний DAO.
  • Конец июня 2016 года: предлагается мягкий форк для заморозки средств, но от него отказываются после того, как в нем находят уязвимость.
  • 15 июля 2016 года: предлагается жесткий форк для возврата средств.
  • 20 июля 2016 года: жесткий форк активируется на блоке 1 920 000. Эфир из The DAO переводится в контракт, из которого исходные инвесторы могут его вывести.
  • Несколько дней спустя: биржи начинают листинг обеих цепочек: ETH и Ethereum Classic (ETC).

Хронология взлома The DAO: продажа токенов 30 апреля 2016 года; атака 17 июня 2016 года; жесткий форк предложен 15 июля; жесткий форк на блоке 1 920 000 20 июля 2016 года, создавший Ethereum и Ethereum Classic.Рисунок: The DAO от запуска до раскола цепочки.

Как жесткий форк вернул средства

Форк не отменял атакующую транзакцию путем перезаписи старых блоков. Вместо этого на блоке 1 920 000 новые правила перевели эфир, находившийся у The DAO и его дочерних DAO, включая средства атакующего, в единый контракт восстановления. Исходные держатели токенов могли затем обменять свои токены DAO на эфир из этого контракта. В форкнутой цепочке добыча атакующего исчезла; в цепочке, отказавшейся от форка, она осталась под его контролем.

Почему решение раскололо сообщество

Сторонники форка утверждали, что атака использовала ошибку, а не задуманные правила, и что возврат средств защитил тысячи инвесторов и молодую экосистему Ethereum. Противники настаивали на принципе «код — это закон»: ценность блокчейна обеспечивается историей, которую нельзя переписать, а отмена одной кражи создает прецедент для отмены других.

Ни одна из сторон не могла навязать свою позицию другой. Узлы, которые обновились, следовали новым правилам; те, что не обновились, сохранили исходную цепочку, которая стала Ethereum Classic. В этой цепочке эфир остался у атакующего.

Вердикт регулятора

История DAO не закончилась с форком. 25 июля 2017 года Комиссия по ценным бумагам и биржам США (SEC) опубликовала отчёт расследования, в котором пришла к выводу, что токены DAO являются ценными бумагами согласно законодательству США, поскольку инвесторы вкладывали деньги в общее предприятие, ожидая прибыли от усилий других лиц, в данном случае создателей и кураторов проекта. SEC решила не предъявлять обвинений, однако отчёт стал ранним ориентиром в том, как регуляторы смотрят на продажи токенов, и на него ещё много лет ссылались в дискуссиях о том, какие токены следует считать инвестициями.

Что изменилось после

Взлом DAO повлиял на культуру и практики Ethereum:

  • Безопасность смарт-контрактов стала отдельной дисциплиной. Аудит, стандартные шаблоны, которые обновляют балансы до отправки средств, и формальные инструменты для выявления реентрантности стали обычной практикой.
  • Жёсткие форки стали известным, но спорным вариантом. С тех пор Ethereum не отменял кражи, даже после более крупных взломов.
  • Две цепочки с общей историей. Ethereum Classic продолжает работать, сохранил дизайн на основе proof-of-work и позже столкнулся с атаками 51%.

«Код — это закон» спустя десять лет

Спор, который в 2016 году расколол Ethereum, так и не исчез полностью; он просто превратился в практику. С тех пор Ethereum не отменял кражи или ошибки, несмотря на последующие потери, которые в долларовом выражении были больше, и предложения использовать форк для возврата замороженных или украденных средств. Неформальное правило, которое сложилось, заключается в том, что вмешательство всей сети было разовой реакцией на экзистенциальную угрозу в первый год существования Ethereum, а не инструментом для регулярного использования.

Такая позиция возлагает ответственность за безопасность на приложения, а не на сеть. Протоколы теперь заранее планируют сбои: используют страховые фонды, экстренные паузы и программы вознаграждения за найденные уязвимости, поскольку не могут рассчитывать на то, что сама цепочка их спасёт.

Ethereum Classic сегодня

Цепочка, отказавшаяся от форка, продолжает работать. Ethereum Classic сохранил майнинг на основе proof-of-work, в том числе после перехода самого Ethereum на proof of stake в 2022 году, а его сторонники описывают её как версию Ethereum, которая никогда не меняла свою историю. Меньший хешрейт сделал её мишенью: в 2020 году она пережила повторные атаки большинством, в ходе которых злоумышленники переписывали недавние блоки и совершали двойные траты монет на биржах. См. что такое атака 51%.

Уроки для современных DAO

Децентрализованные автономные организации сейчас распространены, как правило, для управления протоколами, а не для управления инвестиционными фондами, и уроки взлома DAO заложены в их архитектуру. Казначейские контракты проходят аудит и зачастую остаются простыми. Изменения в порядке движения средств обычно проходят через таймлок, то есть задержку, которая даёт участникам время отреагировать до вступления решения в силу. Многие протоколы сохраняют экстренную паузу, которую может активировать доверенная группа при обнаружении эксплойта, что сознательно обменивает полную децентрализацию на безопасность. Крупные казначейства всё чаще распределяются между несколькими контрактами, чтобы одна ошибка не могла опустошить всё сразу. См. что такое DAO.

О том, как в целом происходят разделения цепочек, читайте в статье что такое форк блокчейна. О программах, которые находятся в центре этой истории, см. что такое смарт-контракт, а о самой сети — что такое Ethereum.

Эта статья носит образовательный характер и не является финансовой, инвестиционной, юридической или налоговой консультацией. Цифровые активы волатильны, и вы можете потерять вложенную сумму.

Источники

Leave a Reply

Your email address will not be published. Required fields are marked *