Коротко (TL;DR)
Rug pull — это ситуация, когда люди, контролирующие проект, забирают вложенные деньги или лишают токен возможности быть проданным: снимают ликвидность из пула, используют скрытые права контракта или просто исчезают вместе с казначейством. Большинство материалов по теме учат проверять проект до депозита. Этот разбор — про другое: деньги уже внутри, и надо понять, уходит ли команда прямо сейчас.
- Коротко (TL;DR)
- Rug pull, pump and dump и тихий уход: три разных сценария
- Права контракта: proxy-admin, отказ от прав и передача владения
- Мультисиг протокола: как прочитать подписантов и порог подписей
- Казначейство и токены: инсайдер LIBRA получил монеты за 20 минут
- GitHub и соцсети: тихий уход виден в датах последних коммитов
- Пять протоколов 2025–2026: от пика TVL до нуля — от 0 до 40 дней
- ZeroLend потерял 98% TVL — и это не rug pull
- Honeypot и checker-инструменты: что они ловят, а что нет
- Чего не покажут права, мультисиг и коммиты: остаточные риски
- Чек-лист: что проверять, пока протокол ещё работает
- FAQ
- Проверяемых точек четыре, и все читаются без доверия к блогу проекта: слот админа прокси-контракта, состав и порог мультисига, движение казначейских адресов, даты последних коммитов в репозиториях.
- Срок жизни повторяется от выборки к выборке. По пяти протоколам, которые DeFiLlama пометил
ruggedв 2025–2026 годах, от листинга до пика TVL проходило в среднем 57,4 дня (медиана — 67). У CertiK по 40 историческим инцидентам 2020–2023 средняя — 92 дня, медиана — 57. - Падение TVL как сигнал опаздывает. У трёх из пяти протоколов TVL обнулился на следующий день после пика или в тот же день. Наблюдать надо за правами и активностью, а не за графиком, где событие уже произошло.
- Просадка сама по себе ничего не доказывает. ZeroLend потерял 98,15% TVL — с $358 718 599 (8 ноября 2024 года) до $6 631 730 (17 февраля 2026 года), — и меткой
ruggedу DeFiLlama не помечен: причины объявлены публично, а коммиты во фронтенд шли ещё 27 августа 2026 года. - Слова о безопасности не равны факту. CEO SafeMoon публично называл пулы ликвидности «заблокированными», сохраняя доступ к ним; 10 февраля 2026 года он получил 100 месяцев тюрьмы и форфейт около $7,5 млн.
- Готового инструмента под эту задачу нет. Honeypot-чекеры и сканеры контрактов сами пишут, что смотрят на код в текущий момент, а не на поведение команды во времени.
Rug pull, pump and dump и тихий уход: три разных сценария
Начнём с терминов, потому что в одну кучу обычно валят три несовместимые вещи.
Этот разбор — урок блока «Риски и защита» курса «DeFi: от первой транзакции до профи-стратегий».
Rug pull (дословно «выдернуть ковёр»; о пострадавшем проекте в англоязычных обсуждениях говорят rug pulled) — это изъятие стоимости инсайдерами уже после того, как деньги привлечены. Механика бывает разной: удаление ликвидности из пула на децентрализованной бирже, из-за чего продать токен физически некому; скрытые функции контракта; блокировка вывода; просто заброшенность.
Pump and dump — другая история: скупка дешёвых токенов, искусственный ажиотаж, продажа на пике. Здесь манипулируют восприятием спроса, а сам токен обычно продолжает существовать, и продать его можно — по цене, которая рухнула. Разница практическая: после pump and dump у вас на руках подешевевший актив, после rug pull — актив, который не удаётся обменять вообще.
Тихий уход — предмет этого разбора. Формально команда ничего не крадёт в момент X: она постепенно сокращает мультисиг, переводит права контракта на один адрес, перестаёт коммитить, перестаёт отвечать. Юридически это не всегда квалифицируется как скам, а по последствиям вкладчик остаётся с деньгами в контракте, за которым больше никто не следит.
Академическая работа SoK по причинам rug pull (arXiv 2403.16082) раскладывает явление на 34 первопричины, 19 подкатегорий и 6 категорий верхнего уровня: Simple rug pull (LP Drain), Sell rug pull (Token Distribution), Smart Contract Trap Doors, LP Manipulation, Counterfeit Token и комбинации. Для нашей задачи важна одна граница внутри этой таксономии.Сценарий Когда решается судьба денег Что можно увидеть заранее Trap door в коде (honeypot, отключённая продажа) до запуска — умысел встроен в контракт да: код читается статическим анализом до первого депозита Simple rug pull / LP Drain в любой день жизни протокола, руками частично: права, позволяющие это сделать, видны всегда Pump and dump на пике интереса, действием на рынке нет: это поведение цены, а не свойство контракта Тихий уход команды растянут на недели и месяцы да: управление, мультисиг, казначейство, коммиты
Первая строка закрывается инструментами (о них — ниже). Четвёртая строка — то, чего не покрывает ни один разобранный конкурент на русском, украинском и английском: все пишут про проверку до захода и молчат про наблюдение за уже работающим протоколом.
Насколько это массово, показывает единственная найденная количественная база по срокам — отчёт CertiK по 40 «жёстким» инцидентам 2020–2023 годов. Из 31 проекта, по которому удалось установить состав команды, 24 (77,4%) были полностью анонимны, 7 (22,6%) — частично; ни одного случая полностью идентифицируемой команды в выборке нет. Там же — деталь, которая говорит о подготовке: 37,5% проектов (15 из 40) регистрировали домен через Namecheap с приватной регистрацией, а вместе с неопознаваемыми доменами это 45% выборки. Свою арифметику по срокам жизни мы посчитали независимо, по публичному API DeFiLlama — она в отдельном разделе ниже.
Анонимность при этом плохой одиночный признак: анонимных команд в DeFi много, и подавляющее большинство из них никуда не убегает. Она работает как множитель к остальным сигналам, а не как приговор.
Права контракта: proxy-admin, отказ от прав и передача владения
Большая часть DeFi работает на обновляемых контрактах. Схема такая: смарт-контракт, в котором лежат деньги, — это прокси. Он хранит состояние и адрес второго контракта, где живёт исполняемый код («реализация»). Апгрейд протокола — это замена адреса реализации. Кто может её заменить, записано в отдельной ячейке хранилища.
Стандарт EIP-1967 фиксирует, где именно эти ячейки лежат, чтобы любой эксплорер и любой кошелёк умели их читать одинаково:
- слот реализации —
0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc, то естьbytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1); - слот админа прокси —
0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103, то естьbytes32(uint256(keccak256('eip1967.proxy.admin')) - 1).
Смещение «−1» в формуле стоит намеренно: так прообраз хэша неизвестен, и компилятор не может случайно положить в тот же слот обычную переменную.
Читаются эти ячейки одним вызовом eth_getStorageAt, без газа и без подключения кошелька. Порядок действий:
- Взять адрес контракта, куда вы кладёте средства (не адрес токена — именно адрес хранилища или пула).
- Открыть его на эксплорере сети и убедиться, что это прокси: в разделе Contract будет пометка о прокси-паттерне и ссылка на реализацию.
- Прочитать слот админа:
eth_getStorageAt(<адрес прокси>, 0xb531…5d6103). Последние 20 байт результата — это адрес, который может подменить код. - Открыть этот адрес. Дальше три варианта: это мультисиг (хорошо), это контракт-таймлок (хорошо), это обычный кошелёк с одним приватным ключом (плохо).
- Повторить проверку через месяц. Изменение — это факт, который вы обнаружите только сравнением с прошлым значением.
Отдельно стоит понимать разницу двух функций из стандартной библиотеки OpenZeppelin, которые в текстах проектов часто подаются как одно и то же. renounceOwnership() описана в документации так: «Leaves the contract without owner. It will not be possible to call onlyOwner functions anymore» — контракт остаётся без владельца, и админские функции больше не вызвать никогда. transferOwnership(newOwner) — «Transfers ownership of the contract to a new account (newOwner). Can only be called by the current owner» — права просто переходят на другой адрес.Что вы видите Как это выглядит в блоге проекта Что это значит фактически вызов renounceOwnership()«мы отказались от прав, протокол децентрализован» правда, и это необратимо: чинить баги тоже больше некому вызов transferOwnership()«мы передали управление сообществу» нужно открыть новый адрес: DAO и таймлок — одно, свежий кошелёк — другое админ-слот = обычный кошелёк обычно не комментируется один ключ может заменить код контракта с вашими деньгами апгрейд реализации без анонса тишина код, который вы читали при заходе, больше не тот, что исполняется
Практический маркер — события в логах контракта, но искать нужно правильное имя, иначе проверка даст ложное «всё в порядке». Сам стандарт EIP-1967 объявляет три события: AdminChanged(address previousAdmin, address newAdmin) — сменился адрес в админ-слоте, Upgraded(address indexed implementation) — заменён адрес реализации, BeaconUpgraded(address indexed beacon) — для beacon-схемы. Событие OwnershipTransferred в этом стандарте не определено вовсе: оно принадлежит модулю Ownable и эмитится либо контрактом-администратором (в схеме OpenZeppelin это ProxyAdmin, он сам Ownable), либо обычным протокольным контрактом на Ownable.
Разница не терминологическая. Если искать OwnershipTransferred в логах прокси, при реальной смене админа вы не найдёте ничего — и сделаете вывод, что права не менялись. Правильный порядок такой:Что изменилось Где искать событие Имя события адрес в админ-слоте прокси логи самого прокси AdminChangedадрес реализации (апгрейд кода) логи самого прокси Upgradedвладелец контракта-администратора логи адреса ProxyAdminOwnershipTransferredвладелец обычного Ownable-контракта протокола логи этого контракта OwnershipTransferred
У всех четырёх строк есть поля «было» и «стало». Если новый адрес создан за несколько дней до перевода и не имеет другой истории, это ровно тот класс изменений, ради которых стоит перечитать раздел про мультисиг ниже.
Мультисиг протокола: как прочитать подписантов и порог подписей
«Управление децентрализовано» в блоге — утверждение стороны. Проверяемый эквивалент — мультиподпись: контракт, который исполняет транзакцию только при наличии нескольких подписей. Самый распространённый стандарт здесь — Safe (бывший Gnosis Safe), и он отдаёт свой состав наружу двумя бесплатными view-функциями.
getOwners()возвращает массив адресов — в документации Safe это прямо описано как «Array of Safe owners», список подписантов.getThreshold()возвращает число — минимальное количество подписей, необходимое для исполнения транзакции.
Обе читаются с любого адреса Safe без газа: через вкладку Read Contract на эксплорере или через cast call. Это занимает минуту и не требует ни доверия к интерфейсу протокола, ни разрешения команды.
Что смотреть по шагам:
- Найти адрес, который стоит в админ-слоте прокси (предыдущий раздел), и убедиться, что это Safe.
- Вызвать
getOwners()и записать список адресов — это ваш базовый снимок. - Вызвать
getThreshold()и записать число подписей. Схема «3 из 5» — этоgetOwners()длиной 5 иgetThreshold() = 3. - Проверить, сколько из подписантов публично названы командой, а сколько — просто адреса.
- Повторять раз в месяц. Смысл имеет именно динамика.
Три изменения, которые видны только при сравнении с прошлым снимком:
- число подписантов сокращается. Было 5, стало 2 — круг людей, способных остановить вывод средств, сузился;
- порог падает до единицы.
getThreshold() = 1означает, что мультисиг больше не мультисиг: любой из владельцев подписывает транзакцию в одиночку; - именные подписанты заменяются на свежие адреса без истории. Формально состав тот же, фактически — неизвестно чей.
Важная граница, чтобы не путать два разных риска. Мультисиг ломают и снаружи: подписантов обманывают социальной инженерией и получают их ключи — тогда субъект действия посторонний, а команда пострадавшая. Здесь речь о противоположном: команда меняет свои же права сама, легальным вызовом функции, и никакого взлома в этом нет. Отличить одно от другого помогает как раз коммуникация — во втором случае объяснений обычно не появляется.
Казначейство и токены: инсайдер LIBRA получил монеты за 20 минут
Третья наблюдаемая точка — движение токенов и денег на адресах, связанных с проектом. Здесь важно сразу оговорить формулировки: ончейн видно действия и суммы, а не намерения. «С адреса X 14 февраля выведено N токенов» — факт. «Команда украла» — юридическая квалификация, которую даёт суд или расследование, а не наблюдатель с эксплорером.
Два кейса показывают оба конца этой шкалы.
LIBRA, 14 февраля 2025 года. Расследование блокчейн-аналитической компании TRM Labs фиксирует: примерно за двадцать минут до публичного анонса один адрес получил миллион токенов $LIBRA. Дальше по данным того же расследования: в течение трёх часов после первого поста цена упала примерно на 89%, а от пика токен потерял более 96%; из пула Meteora адресами, потенциально связанными с командой, выведено $7,8 млн в SOL, ещё около $90 млн в SOL и USDC осело на консолидирующих адресах при пиковой капитализации около $4,5 млрд. Cointelegraph независимо оценивал обвал в 95% и потерю почти $4 млрд капитализации — расхождение в оценках честнее показать, чем сгладить.
Ключевой вывод из LIBRA для нашей темы неудобный: пре-позиционирование инсайдера физически не наблюдаемо заранее. За двадцать минут до анонса этот адрес ничем не отличался от рядового держателя, а токен на Solana существовал считаные часы. Ни мультисиг, ни коммиты, ни история TVL тут не помогли бы — потому что это не тихий уход, а умысел, встроенный до запуска. Похожая логика работает и на старте обычных проектов: то, как и кому продавался токен, — отдельный слой проверки, и он разбирается в материале про токенсейлы ICO, IDO и IEO.
SafeMoon. Здесь есть не ончейн-картина, а приговор. По официальному релизу IRS Criminal Investigation, CEO компании Braden John Karony вводил инвесторов в заблуждение, утверждая, что пулы ликвидности SafeMoon «locked» и это защищает средства от изъятия инсайдерами; фактически он и соучастники сохранили несанкционированный доступ и вывели токены более чем на $9 млн, публично отрицая владение токеном. 10 февраля 2026 года он приговорён к 100 месяцам тюрьмы с форфейтом около $7,5 млн в криптоактивах и двух объектов жилой недвижимости; виновным его признал суд присяжных ещё в мае 2025 года.
Практический смысл этого кейса ровно один: фраза «ликвидность заблокирована» — не факт, а заявление. Проверяемая версия того же утверждения выглядит иначе.Заявление проекта Что проверять вместо него Где «ликвидность заблокирована» адрес контракта-лока, сумма LP-токенов в нём и дата разблокировки эксплорер, страница контракта лока «токены команды в вестинге» контракт вестинга, график и уже разблокированный объём эксплорер, транзакции адреса вестинга «казначейство под мультисигом» getOwners() и getThreshold() этого адресаRead Contract на эксплорере «команда не продаёт» исходящие переводы с известных адресов команды на биржевые депозиты эксплорер, метки адресов
GitHub и соцсети: тихий уход виден в датах последних коммитов
Совет «посмотрите их GitHub» бесполезен, пока не сказано, что именно смотреть. Смотреть надо поле pushed_at — дату последнего пуша в каждый репозиторий организации. Оно отдаётся публичным API без авторизации:
- Найти организацию проекта на GitHub (обычно указана в документации или в футере сайта).
- Запросить
https://api.github.com/orgs/<организация>/repos?per_page=100. - Отсортировать ответ по полю
pushed_atи посмотреть на верхние 5–10 репозиториев. - Разделить их на группы: контракты, фронтенд, инфраструктура, документация.
- Сохранить даты. Через месяц повторить и сравнить.
Что показывает такая проверка на живом примере. У организации zerolend репозиторий фронтенда app.zerolend.xyz получил пуш 27 августа 2026 года — через полгода после того, как команда объявила о сворачивании протокола 17 февраля 2026 года; config.zerolend.xyz и legacy.zerolend.xyz обновлялись 28 июня 2026 года. То есть протокол публично закрывается, а код, через который люди забирают деньги, продолжают чинить.
Противоположная картина у HyperVault: 26 сентября 2025 года компания PeckShield зафиксировала около $3,6 млн аномальных оттоков — средства ушли мостом с Hyperliquid в Ethereum, из них около 752 ETH (примерно $3 млн) были задепонированы в Tornado Cash, — и в тот же день официальный аккаунт в X оказался удалён, а сайт недоступен. Здесь исчезли одновременно и деньги, и все каналы связи.
Важная оговорка про темп разработки. Пауза в коммитах сама по себе означает не так много: у зрелого протокола контракты не переписываются каждую неделю, а праздники, релиз-циклы и отпуска дают нормальные провалы. Значимым сигналом пауза становится в двух случаях: когда останавливается всё сразу — и контракты, и фронтенд, и документация, — и когда она совпадает по времени с изменениями в правах или в казначействе.
Коммуникационная часть разбирается похожим образом. Immunefi в своём гайде перечисляет восемь предупреждающих признаков: ложные заявления об аудите; большое количество централизованных функций, позволяющих владельцу двигать любые токены; сломанный сайт и мёртвые соцканалы, команда не отвечает; подозрительно высокая доходность; централизованное незалоченное распределение токена; слабый юзкейс; массовое отключение и бан пользователей, задающих неудобные вопросы; сопротивление код-ревью и баунти-программам.
Список полезный, но статичный — он описывает состояние. Для уже работающего протокола те же пункты надо читать как производную по времени: не «канал мёртвый», а «частота постов упала втрое за квартал»; не «команда не отвечает», а «на технические вопросы перестали отвечать, на маркетинговые отвечают»; не «сообщество подавляют», а «модерация начала удалять вопросы про вывод средств, чего раньше не делала».
Пять протоколов 2025–2026: от пика TVL до нуля — от 0 до 40 дней
Дальше — собственный расчёт, потому что ни один разобранный конкурент сводной арифметики по срокам не даёт: там либо пересказ отдельных исторических кейсов, либо общие советы.
Методика простая и воспроизводимая. Запрос https://api.llama.fi/protocols на 30 августа 2026 года отдаёт 8149 протоколов; фильтр по полю rugged: true оставляет 116 записей. Оба числа — снимок на дату, а не константа: реестр накопительный и пополняется каждый месяц, так что при повторе расчёта они будут больше. По каждой из свежих записей 2025–2026 годов запрашивается https://api.llama.fi/protocol/<slug> — оттуда берутся массив tvl[] (дата и значение), размеченные события hallmarks и дата листинга listedAt. Все даты и разницы посчитаны кодом по сырому JSON, а не сняты глазами с графика.Протокол Листинг Пик TVL Дата пика Дней от листинга до пика Пометка / сигнал TVL = 0 HyperVault 18.08.2025 $4 974 373 24.09.2025 37 «Rug pull», 26.09.2025 25.09.2025 (+1 день) Molecular 21.10.2025 $347 936 19.01.2026 90 «Rug Pull», 31.01.2026 (+12 дней) ~28.02.2026 (+40 дней) Quantus Lend 27.11.2025 $160 082 26.02.2026 91 rugged = true27.02.2026 (+1 день) Fisclend Finance 28.10.2024 $281 974 03.01.2025 67 «Rug Pull», 03.01.2025 (тот же день) практически сразу Madness Finance 24.11.2025 $24 236 26.11.2025 2 трекинг прекращён 28.11.2025 4 дня жизни всего
Из этой таблицы следуют два числа и один вывод.
Первое число — срок жизни до пика: 37, 90, 91, 67 и 2 дня. Среднее — 57,4 дня, медиана — 67 дней. Для сравнения, CertiK на совершенно другой выборке (40 инцидентов, 2020–2023 годы, другая методология) даёт среднюю продолжительность 92 дня и медиану 57 дней. Выборки маленькие, и метрики считаны по-разному, поэтому корректная формулировка не «57 = 57», а такая: две независимые выборки, разнесённые на пять лет, дают один и тот же порядок величины — два-три месяца от старта до конца. Устойчивость закономерности во времени важнее совпадения знаков после запятой.
Второе число — срок от пика до нуля: 1, 40, 1, 0 и 2 дня. У трёх протоколов из пяти деньги исчезли на следующий день после максимума или в тот же день.
Вывод, ради которого считалось. Классический совет «следите за динамикой TVL» на этих данных не работает как ранний сигнал: TVL — это результат события, а не его предвестник. Единственное исключение в выборке — Molecular, где между пиком и официальной пометкой прошло 12 дней, а до нуля — 40; но и это окно узкое на фоне 90 дней жизни протокола. Наблюдать нужно за тем, что меняется до пика: правами, составом мультисига, движением казначейства и активностью репозиториев.
ZeroLend потерял 98% TVL — и это не rug pull
Самая дорогая ошибка при использовании всего вышеперечисленного — принять честное закрытие за побег. Поэтому контрольный пример, посчитанный по тем же данным того же трекера.
ZeroLend достиг пика TVL $358 718 599 8 ноября 2024 года. На 17 февраля 2026 года, когда команда объявила о сворачивании, в протоколе оставалось $6 631 730. Падение — (358 718 599 − 6 631 730) / 358 718 599 × 100 = 98,15% за 466 дней. Масштаб просадки сопоставим с «жёсткими» кейсами из таблицы выше, а поле rugged у ZeroLend в API равно null — в отличие от true у всех пяти протоколов выше.
Разница не в цифрах падения, а в поведении.Признак HyperVault (помечен rugged) ZeroLend (не помечен) Объяснение произошедшего нет публичное заявление 17.02.2026: неактивные сети, взломы, низкая ликвидность, отключение оракул-сервисов Что сделали с позициями средства выведены через миксер большинство рынков переведены на LTV 0%, пользователям дано время забрать средства Официальные каналы аккаунт в X удалён, сайт недоступен в тот же день работают, закрытие анонсировано заранее Репозитории активность прекращается пуш во фронтенд 27.08.2026, спустя полгода после анонса Классификация DeFiLlama rugged: truerugged: null
Читается это так: сигнал — не падение, а молчание. Протокол может честно закрыться, потеряв почти весь TVL, и при этом до последнего чинить интерфейс, через который люди забирают деньги. И наоборот — протокол может выглядеть нормально по графику ровно до того дня, когда графика больше нет.
Отсюда практическое правило для наблюдателя: увидев резкое падение TVL, первым делом ищите объяснение, а не бегите к выводу о мошенничестве. Есть публичное заявление, названы причины, продолжается работа над выводом средств — это одна ситуация. Заявления нет, каналы молчат, репозитории замерли — другая.
Honeypot и checker-инструменты: что они ловят, а что нет
Отдельный класс — скам, который был скамом с нулевого дня. Здесь умысел встроен в код: контракт продаёт токен покупателю, но не даёт его продать обратно (honeypot), или содержит функцию неограниченной эмиссии, или комиссию на продажу в 99%. Такие вещи ловятся статическим анализом, и под них есть готовые инструменты.
Масштаб этого слоя стоит понимать до того, как обсуждать инструменты. По сводке deepstrike.io, на площадке Pump.fun из более чем 7 млн токенов, выпущенных с января 2024 по март 2025 года, 98,6% опустились ниже порога ликвидности в $1000. На Raydium около 93% из 388 000 пулов показывают признаки «soft rug». Академическая работа SoK по своему реконструированному датасету оценивает подтверждённые потери в $171 713 065, из которых крупнейшая категория — Token Distribution — даёт 35% ($60 587 545). Проще говоря, у мемкоинов (meme coin) базовое ожидание — обнуление, и это статистическая норма площадки, а не аномалия.
Теперь про инструменты и их честно заявленные границы.Инструмент (checker) Что проверяет Чего не видит honeypot.is симулирует покупку и продажу токена, показывает налоги и возможность выхода будущее: «not a foolproof method. Just because it’s not a honeypot now, does not mean it won’t change!» RugDoc по собственной формулировке — «screen for hard rug code that results in 100% theft of ALL underlying funds» всё, что не мгновенная кража 100% средств кодом: постепенный уход, смена подписантов GoPlus Security honeypot-детекция, структура владения контрактом, функция минта, подозрительные паттерны транзакций, DeepScan поведение команды во времени: коммиты, мультисиг, казначейство
Обратите внимание на формулировки: это не наша критика, а собственные оговорки сервисов. honeypot.is прямо предупреждает, что отсутствие ловушки сегодня не означает её отсутствия завтра. RugDoc сам ограничивает предмет проверки «жёстким» код-рагом.
Отсюда неприятный, но полезный вывод: готового инструмента под задачу этого разбора не существует. Все три сканера отвечают на вопрос «может ли этот код украсть деньги прямо сейчас». Ни один не отвечает на вопрос «изменилось ли что-то в правах, составе подписантов и активности команды с прошлого месяца». Второй вопрос закрывается только ручной проверкой по API и эксплореру — и повторением этой проверки во времени.
Чего не покажут права, мультисиг и коммиты: остаточные риски
Полезно понимать границы метода, иначе он превращается в ложное чувство контроля.
Права меняются легально и без вашего участия. renounceOwnership() и transferOwnership() — обычные функции стандартной библиотеки, их вызов не требует согласия вкладчиков и не сопровождается голосованием. Проверка, сделанная до депозита, не защищает от изменения, сделанного после него. Именно поэтому единственная рабочая форма — повторяемый снимок, а не разовый аудит.
Мультисиг может законно схлопнуться в один ключ. Ни один протокол не обязан поддерживать состав подписантов и порог. getThreshold() покажет значение 1, но покажет уже по факту — событие происходит раньше, чем о нём узнают вкладчики.
Наблюдение за TVL систематически опаздывает. У HyperVault, Quantus Lend и Fisclend Finance между пиком и обнулением прошло 0–1 день. Если графики — ваш единственный инструмент, вы узнаете о событии после него.
Инсайдерское пре-позиционирование в принципе не наблюдаемо заранее. Адрес, получивший 1 млн токенов LIBRA за двадцать минут до анонса, до этого момента ничем не выделялся. Против такого класса действий диагностика по правам, коммитам и казначейству бессильна — он относится к скаму с нулевого дня, а не к тихому уходу.
Заявления команды юридически не эквивалентны фактам. Дело SafeMoon подтверждает это приговором: слова «ликвидность заблокирована» произносились публично при сохранении скрытого доступа. Любое утверждение о безопасности имеет ценность только в виде адреса контракта, который можно открыть.
Готовые сканеры эту задачу не решают и сами об этом пишут: honeypot.is оговаривает, что проверка действительна только на текущий момент, RugDoc ограничивает себя «жёстким» код-рагом. Автоматизация здесь заканчивается на границе кода.
И обратная сторона, о которой забывают чаще: ложное срабатывание тоже стоит денег. Честное сворачивание протокола по графику TVL выглядит примерно так же, как побег, — случай ZeroLend это показывает количественно. Ошибка в эту сторону не так заметна, но она реальна: паника по одному признаку выводит человека из работающего протокола на комиссиях и проскальзывании.
Чек-лист: что проверять, пока протокол ещё работает
Свод всего вышеизложенного в форму, которую можно пройти за 20–30 минут и повторять раз в месяц. Смысл — не в разовом прохождении, а в наличии сохранённого снимка, с которым сравнивается следующий.# Что смотрим Где Что считать тревожным 1 адрес в admin-слоте прокси eth_getStorageAt(<прокси>, 0xb531…5d6103), события AdminChangedобычный кошелёк вместо мультисига или таймлока; смена адреса без анонса 2 адрес реализации слот 0x3608…2bbc, события Upgradedизменился с прошлой проверки, а объявления об апгрейде не было 3 состав подписантов getOwners() на адресе Safeсписок сократился; именные подписанты заменены безымянными адресами 4 порог подписей getThreshold()снизился; значение 1 при нескольких владельцах 5 контракт лока ликвидности эксплорер, адрес лока заявление о локе есть, адреса контракта нет; дата разблокировки близко 6 движение казначейства эксплорер, адреса команды исходящие переводы на биржевые депозиты без объяснения 7 даты pushed_atapi.github.com/orgs/<org>/reposостановилось всё сразу — контракты, фронтенд, документация 8 официальные каналы блог, X, Discord частота постов упала; технические вопросы игнорируются; вопросы про вывод удаляются 9 объяснение изменений там же ключевое поле: изменения есть, объяснения нет
Красный флаг здесь один и тот же по всем девяти строкам: изменение без объяснения. Одиночный пункт почти никогда не означает подготовку к уходу — у каждого есть законные причины: мультисиг сокращают при уходе сотрудника, права передают в DAO, коммиты останавливаются на праздниках, каналы затихают между релизами. Значимость даёт совпадение нескольких пунктов в одном временном окне при полном молчании со стороны команды.
Что делать при таком совпадении — вопрос личного риск-менеджмента, и решение здесь за вами. Технически важна одна вещь, не зависящая от диагноза протокола: даже после вывода средств у контракта обычно остаётся выданное вами разрешение на распоряжение токенами. Как это устроено и как разрешения отзывать, разобрано в материале про approvals и их отзыв; общая гигиена адреса, с которого вы взаимодействуете с DeFi, — в разборе рисков горячего кошелька.
Устареет в этом материале первым всё числовое: TVL, суммы и даты по конкретным протоколам пересчитываются ежедневно, а список свежих rugged-записей в DeFiLlama пополняется каждый месяц. Технический слой меняется гораздо медленнее: слоты EIP-1967 зафиксированы спецификацией, сигнатуры getOwners/getThreshold и поведение renounceOwnership/transferOwnership описаны в документации и не менялись годами.
FAQ
Означает ли схлопывание мультисига в один ключ, что протокол точно готовит rug pull?
Нет. getThreshold() = 1 — это факт о правах, а не о намерениях. Законные причины бывают: подписант ушёл из команды, ключ потерян, идёт миграция на новый Safe. Тревожным этот факт становится в связке: порог упал, объяснения нет, одновременно замерли репозитории или сменился адрес в admin-слоте прокси. Одиночный признак — повод перечитать остальные восемь пунктов чек-листа, а не вывод.
Можно ли доверять проекту, если ликвидность официально «заблокирована»? Само по себе заявление ничего не гарантирует. Дело CEO SafeMoon — юридически подтверждённый пример: он публично называл пулы «locked», сохраняя несанкционированный доступ, и 10 февраля 2026 года получил 100 месяцев тюрьмы. Проверяемая версия заявления — это адрес контракта лока, сумма LP-токенов в нём и дата разблокировки, читаемые на эксплорере. Нет адреса контракта — нет и проверки.
Чем honeypot-токен отличается от медленного ухода команды уже работающего протокола? Honeypot — это свойство кода: контракт позволяет купить токен, но не позволяет его продать, и умысел встроен до запуска. Такое ловится статическим анализом за минуту, до первого депозита. Тихий уход — это последовательность действий во времени на нормальном коде: права переводятся, подписанты сокращаются, коммиты останавливаются. Ни один сканер контрактов эту динамику не отслеживает — сервисы прямо пишут об этом ограничении.
Если коммиты в GitHub остановились на месяц — это уже повод для тревоги? Само по себе — нет. У зрелого протокола контракты неделями не трогают, и это норма. Значимыми паузы становятся в двух случаях: остановилось всё сразу — контракты, фронтенд и документация; либо пауза совпала по времени с изменением прав или движением казначейства. Полезный контрпример — ZeroLend: протокол публично сворачивался, но фронтенд получал пуш ещё 27 августа 2026 года, через полгода после анонса.
Что делать, если я заметил сразу несколько признаков ухода команды? Сначала отделить факт от догадки: выписать, что именно изменилось, с датами и адресами. Затем поискать объяснение в официальных каналах — у большинства изменений оно есть. Дальше это вопрос вашего риск-менеджмента и допустимого для вас размера потери, а не универсального ответа. Отдельно учтите, что выданные протоколу approvals продолжают действовать и после вывода средств, поэтому их отзыв — отдельное действие.



