5 ноября TON Core переписал правила своей программы баг-баунти — вознаграждений за найденные уязвимости. Атаки на исчерпание памяти (OOM) и DDoS больше не оплачиваются никакие, вне программы оказались Toncenter API, компиляторы Fift, FunC и Tolk, DHT-нода, тестовая ветка, сайты и SDK. Потолок награды прежний: до $100 000 в Gram или USDt за уязвимость. Касается это исследователей безопасности, и в первую очередь тех, кто ищет баги языковыми моделями: строка о том, что разбор отчётов задерживает спам из сгенерированных LLM отчётов, стоит в правилах с августа. Отчёт, написанный нейросетью, теперь проверяет нейросеть исследователя, а затем нейросеть бота.

Что изменилось в правилах

Перемена прошла двумя коммитами в README репозитория: 2 ноября убран Toncenter (сообщение коммита — «Descope TonCenter»), 5 ноября файл переписан целиком: 76 строк добавлено, 104 удалено.

До 2 ноябряС 5 ноября
Узел TONValidator Node, Full Node, DHT Node, Simplex; баги тестовой ветки принималисьValidator Node, Full Node, Simplex; только ветка master и последний global_version
Что засчитываетсявсё, что приводит к падению ноды, остановке блокчейна, краже монет или неверному изменению состояниянесанкционированное изменение состояния или средств, остановка сети, остановка ноды одним запросом
OOM и DDoSотдельной строки не былоисключены все
Компиляторывне программы FunC и Fiftвне программы Fift, FunC и Tolk
ToncenterHTTP API и индексатор в спискевне программы
Сайты и фронтендпринимались через HackenProofвне программы
SDKPython SDK pytonlib в спискеSDK и инструменты разработчика вне программы
Крупные наградывыплачиваются с блокировкой на годмогут выплачиваться с блокировкой или вестингом

Ещё в исключения добавлены lite-client и RLDP первой версии, а RLDP2 стоял там и раньше. Сеть TON в течение 2026 года переходит с этих протоколов на QUIC.

Язык Tolk из программы ушёл не весь. Компилятор исключён, зато стандартные контракты, написанные на Tolk, — жетон v2.1 и NFT v1.1 из репозитория acton-contracts — в список целей, наоборот, добавлены рядом со старыми версиями на FunC. Под защитой программы остаются и кошельки v1, v3, v4r2 и v5, tg-wallet-v1 кошелька Telegram, Multisig V2, Highload V3, номинаторы, Elector, Config и TON DNS. MyTonCtrl, набор утилит валидатора, теперь засчитывается только за баги, которые ведут к потере средств или чужому доступу к серверу.

Главная перемена для ядра — строка про остановку ноды. Раньше за падение ноды платили без оговорок. Теперь засчитывается только падение от одного запроса, а исчерпание ресурсов исключено, даже если в отчёте оно названо остановкой сети или угрозой средствам: так прямо сказано в инструкции самопроверки к тем же правилам.

Что делать исследователю

  • Сверить цель со списком. Ядро — только Validator Node, Full Node и Simplex на master, контракты — только перечисленные в README версии. Всё остальное программа не рассматривает, а сторонние продукты экосистемы ведут собственные баунти.
  • Не отправлять ресурсные атаки. Нода, которую поток запросов доводит до нехватки памяти, по новым правилам в программу не проходит. Засчитывается падение от одного запроса.
  • Приложить самопроверку. Отчёт отправляется боту @ton_bugs_bot вместе с файлом self-check-report.md: его по инструкции из репозитория составляет языковая модель, сверяя находку с правилами и с текущим кодом. Отправляются оба файла сразу; если бот отклонил отчёт с вердиктом no_input, заново отправляются оба, а не самопроверка вдогонку.
  • Помнить о дублях. Из одинаковых отчётов засчитывается самый ранний; большинство отчётов разбирают за 90 дней.

Откуда взялся поток отчётов

Инструкция самопроверки появилась в репозитории 12 мая. Это не памятка для человека, а навык для LLM-агента: модель читает README, скачивает нужный репозиторий, воспроизводит находку локально и пишет отчёт строго заданного формата — статус, компонент, класс уязвимости, две оценки уверенности и вердикт. Если находка не готова, в начале краткой оценки агент обязан поставить «DO NOT SEND!!!».

Дальше отчёт попадает к боту, у которого своя автоматическая проверка: в той же инструкции перечислены её вердикты (correct, incorrect, out_of_scope, escalate, no_input) и статус ai_checked. Бот, судя по полям, которые там названы, сравнивает самопроверку исследователя со своей собственной.

За день до появления инструкции, 11 мая, история о выплате 4000 USDT за баг в блокчейне TON разошлась по каналам: по их словам, нашёл его 13-летний школьник, который попросил Claude Code поискать уязвимость. TON Core подтвердил выплату в комментариях и добавил несколько деталей. За следующие несколько часов тот же, уже исправленный баг прислали ещё несколько раз. Большинство приходящих отчётов, в том числе корректных, найдены с помощью LLM. Рабочий путь, по словам команды, — получить десяток ложных срабатываний, проверить каждое и отправить одно настоящее, а за неаккуратные отчёты авторов банят. Возраст и способ поиска, по словам команды, на выплату не влияют.

8 августа в README появилась строка о задержках из-за спама, сгенерированного LLM. В ноябрьской редакции она сократилась до «LLM-generated spam may cause delays».

Связи между потоком машинных отчётов и исключением именно OOM, DDoS и Toncenter в README не объясняет. Косвенно она видна в инструкции: там отдельно оговорено, что исчерпание ресурсов не становится допустимым, если переназвать его остановкой сети или угрозой средствам. Судя по такой оговорке, подобные отчёты уже приходили.

Тот же инструмент на другой стороне

Языковые модели ищут не только шум. Исследование, которое в октябре показали на OffensiveCon, шло около года: фаззинг библиотеки rlottie языковой моделью нашёл ошибки порчи памяти, а в итоге получилась zero-click цепочка через анимированные стикеры Telegram до исполнения кода на iOS. Находку довели от падения до работающей цепочки, прежде чем выносить на сцену.