Wanchain и NIGHT: мост можно сломать без взлома подписи
⠀
У Wanchain есть хороший пример, почему в мостах нельзя проверять только «подпись валидна или нет».
⠀
Wanchain 30 июля написал публичное обращение к атакующему: вернуть 90% украденных NIGHT до 6 августа 12:00 UTC и оставить 10% как white-hat bounty. Если деньги возвращены в срок, команда обещала не идти с гражданскими исками. На момент проверки я не нашла публичного подтверждения, что возврат состоялся.
⠀
Сам инцидент произошёл 20 июля на Wanchain Bridge для Cardano. По разбору BlockSec Phalcon, из bridge treasury вывели примерно 515 млн NIGHT. Дальше в источниках есть разброс по оценке в долларах: BlockSec в недельном отчёте ставит около $500k, The Crypto Times и CoinGape пишут примерно $10-13 млн. Поэтому я бы не делала вывод из суммы. Гораздо важнее механизм.
⠀
BlockSec описывает root cause как non-injective signed-message encoding в TreasuryCheck validator. Проще: 14 полей redeemer склеивались в одну строку байтов без разделителей и length-prefix. Из-за этого разные наборы полей могли дать один и тот же hash, а значит - одну и ту же валидную подпись.
⠀
В их примере легитимная подпись, которая разрешала около 3,110 NIGHT, была переиспользована на Cardano для вывода 203,001,692 NIGHT. Криптография не «сломалась». Сломалась канонизация сообщения: контракт проверял правильную подпись к неоднозначно собранным данным.
⠀
Вот что я бы здесь проверял как инвестор или интегратор мостов:
⠀
1. Как именно собирается сообщение для подписи: есть ли типизация, CBOR/ABI/SerialiseData, длины полей, доменный разделитель.
2. Можно ли одну подпись переиспользовать в другом контексте: другая сеть, другой asset, другой amount, другой recipient.
3. Есть ли лимиты на treasury withdrawal и пауза не только «после атаки», а на уровне размера/частоты вывода.
4. Кто отвечает за postmortem, компенсацию и перезапуск моста, если core-протокол токена не был взломан, а сломалась сторонняя инфраструктура.
⠀
Это не доказывает, что Midnight или Cardano были скомпрометированы. Midnight Foundation отдельно писала, что проблема относится к Wanchain bridge, а не к базовой сети. Но для держателя bridged asset это слабое утешение: риск сидит в месте, где токен переходит между мирами.
⠀
После таких историй я бы смотрела не на логотипы сетей и историю бренда моста, а на скучную механику: как кодируется сообщение, что именно подписывают валидаторы, можно ли это неоднозначно распарсить и что происходит, когда deadline по white-hat recovery уже прошёл.
Post #143
6