Управление через токены задумывалось как децентрализованная демократия. Оказалось, что апатия участников превращает её в уязвимость покрупнее любой дыры в смарт-контракте. 6 июля казна BonkDAO лишилась $20 млн — не из-за бага в коде, а из-за голосования, которое никто не удосужился оспорить.
Злоумышленник начал скупать BONK задолго до подачи предложения. По данным CoinDesk, к моменту голосования он контролировал около 882 млрд токенов — чуть больше минимального кворума в 879,95 млрд. За эту позицию он заплатил около $4 млн на биржах. Когда Bonk Improvement Proposal №76, озаглавленный «Sowellian BonkDAO» и призывавший установить новый совет и «восстановиться с нуля», вышел на голосование, к урнам пришли семь кошельков из более чем 18 000 зарегистрированных участников. Атакующий контролировал 99,878% этих голосов. Предложение прошло. Смарт-контракт автоматически перечислил 4,43 трлн BONK — около $20 млн — на кошельки злоумышленника.
Арифметика атаки проста до неприличия: вложил $4 млн, забрал $20 млн. Доходность 400% за несколько дней. И при этом — ни одной взломанной строки кода. Предложение прошло по правилам системы, кворум набран законно, контракт выполнил перевод в точности как должен был. Именно поэтому апелляция к «ошибке протокола» не сработает: с технической точки зрения всё прошло штатно.
BONK упал примерно на 8,5% на фоне новостей. Южнокорейская биржа Upbit немедленно приостановила депозиты и вывод токена. BonkDAO заявила, что отследила адреса атакующего через биржи и кросс-чейн мосты, работает совместно с Solana Foundation и правоохранителями. Средства пока не возвращены.
Проблема не уникальна для Bonk: хроническая низкая явка в DAO-голосованиях давно стала нормой. 18 000 зарегистрированных членов — а решение о судьбе $20 млн приняли семеро. Атакующий знал это и терпеливо воспользовался ситуацией. В криптосообществе снова обсуждают timelock — задержку между принятием предложения и его исполнением, делегирование голосов от пассивных держателей активным участникам, повышенные пороги кворума. Всё это давно применяется в Compound, Aave и других зрелых протоколах. BonkDAO узнал об этом слишком поздно.



