Перейти к содержимому
SaferICO SaferICOБезопасность смарт-контрактов
Открыто — без подписки, без платы

Прочитайте транзакцию до того, как подпишете.

Кошелёк показывает вам «0xa9059cbb…» и ждёт подтверждения. Лаборатория переводит это в понятную фразу: какая функция вызывается и с какими аргументами. Рядом — ещё шесть инструментов анализа для вопросов, на которые вручную не ответишь.

Без подпискиКод не покидает ваш браузерОткрытые APIНикого не обвиняет
//Семь инструментов

Вопросы, на которые трудно ответить вручную

Каждый инструмент здесь отвечает ровно на один вопрос — и сам говорит, на что ответить не может.

Расшифруйте данные транзакции

Вставьте calldata, четырёхбайтовый селектор или имя функции. Четыре байта могут совпасть с несколькими сигнатурами — иногда намеренно, — поэтому мы показываем не один результат, а все.

Прочитайте причину ошибки

Современные транзакции возвращают четырёхбайтовую пользовательскую ошибку, которую никто не читает. Мы переводим её в настоящее сообщение и называем panic-код по имени вместо шестнадцатеричного числа.

Что в этом контракте оригинально?

Большинство ERC-20 — это OpenZeppelin плюс несколько десятков строк. Сначала мы вычитаем отпечатки библиотек; остаётся то, что владелец проекта действительно написал сам, — а изменения прячут именно там.

Сравните два контракта

Переименование переменных и переформатирование файла ничего не скрывают — сравнение работает не по тексту, а по структуре токенов. Оно сообщает размер совпадения и никогда не говорит, кто у кого списал.

Откуда пришли эти деньги?

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

Кратчайший путь между двумя адресами

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

Просканируйте открытый репозиторий

Список файлов разбираем мы, а сами файлы забирает с GitHub и анализирует локально ваш браузер — код не проходит через наши серверы. Только открытые репозитории: никаких заголовков авторизации не отправляется.

Сами инструменты (сканер, панели, рабочее пространство SAFI) пока работают на английском языке. Эти страницы объясняют всё по-русски — до того, как вы туда перейдёте.

Дисциплина, которая его отличает

Инструменту отслеживания легко превратиться в машину обвинений. Этот построен на отказе от такого превращения.

⚖️ Близость — не преступление

Один шаг между двумя адресами описывает сеть, а не людей. Любой кошелёк, выводивший средства с крупной биржи, находится в одном шаге от десятков тысяч адресов — среди которых неизбежно есть плохие.

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

01Он говорит, что измерил, а не что предположил

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

02«Не найдено» и «не существует» — не одно и то же

Поиск пути ограничен тремя шагами и определённым числом запросов. Когда мы ничего не находим, верная фраза звучит так: мы не нашли в этих пределах.

Разница между этими двумя фразами — это разница между инструментом, которому можно доверять, и инструментом, который говорит то, что вы хотите услышать.

03Похожесть — не воровство

Сырая оценка сходства двух ERC-20 по сути измеряет, насколько распространён OpenZeppelin. Сначала мы вычитаем отпечатки библиотек, чтобы результат говорил именно о коде, написанном для этого проекта.

Но даже тогда инструмент сообщает только размер совпадения. Кто у кого списал — вопрос, на который код не отвечает; на него отвечают даты, и читаете их вы.

//Вопросы

О лаборатории

Нужна ли подписка?
Нет. Лаборатория анализа открыта бесплатно и без аккаунта; кроме того, все её инструменты доступны как открытые точки API, чтобы вы могли вызывать их из собственного кода.
Загружается ли код моего репозитория к вам?
Нет. Мы разбираем только список файлов; каждый файл забирает с GitHub и анализирует локально ваш браузер. Код ни на одном шаге не проходит через наши серверы, а приватные репозитории попросту не поддерживаются, потому что мы не отправляем никаких ключей авторизации.
Почему расшифровка выдаёт несколько результатов?
Потому что селектор функции — всего четыре байта, и несколько сигнатур могут дать один и тот же селектор: иногда случайно, иногда по замыслу. Спрятать остальные варианты и уверенно показать один — это ровно то, чем пользуется атакующий.
Если адрес появился в трассировке, значит ли это, что он замешан?
Нет, и инструмент этого не утверждает. Он показывает транзакции, связывающие адреса, и источник метки, если он есть. Вывод — ваше решение; одна лишь близость доказательством не является.

Проверьте контракт до того, как отправите деньги

Вставьте адрес контракта и посмотрите полномочия владельца, ликвидность и результат симуляции продажи — прежде чем рисковать. Небольшая плата за разовую проверку показывается до подписи, а в любой подписке проверки безлимитны.