Как проверить смарт-контракт перед использованием: пошаговая инструкция
Пошаговая проверка контракта через обозреватель блоков: адрес, верификация исходного кода, владелец и права, прокси, события и осторожность с токенами.
В этой статье
Прежде чем отправить деньги в контракт, стоит убедиться, что это тот контракт, а не подделка. Хорошая новость: в блокчейне всё публично, и проверка не требует навыков программиста. Вам понадобится обозреватель блоков нужной сети.
Шаг 1. Убедитесь, что адрес правильный
Самая частая подмена - не в коде, а в адресе. Мошенник создаёт похожий контракт и выдаёт за настоящий.
- Берите адрес только из официального источника: сайт проекта, документация, закладка.
- Сверяйте адрес полностью, а не только начало и конец (почему).
- Адрес контракта Coin-Trust во всех четырёх сетях один и тот же:
0x6462DDDc0a3D893A7C17f94410e2d27162a390aD. Это следствие CREATE2: если в какой-то сети адрес другой, это не наш контракт.
Шаг 2. Откройте адрес в обозревателе
Введите адрес в обозревателе нужной сети. Вы должны увидеть, что по адресу находится контракт (а не обычный кошелёк): появится вкладка Contract. Если вкладки нет - по адресу нет кода.
Обратите внимание на:
- дату создания и создателя (первая транзакция адреса);
- количество транзакций и объём средств: у настоящего активного контракта история не пустая;
- название и метки обозревателя (если они есть).
Шаг 3. Проверьте, что исходный код верифицирован
Блокчейн хранит только байткод, а не исходный текст. Верификация означает, что автор опубликовал исходный код, и обозреватель убедился, что при компиляции он даёт тот же байткод.
В обозревателе откройте вкладку Contract. Признак успеха - зелёная отметка «Contract Source Code Verified» и читаемый исходный код. Если код не верифицирован, то вы не можете проверить, что делает контракт. Это серьёзный повод насторожиться.
Параметры компиляции Coin-Trust: Solidity 0.8.24, EVM paris, оптимизатор 200 проходов, bytecode_hash = none. Именно эти настройки делают байткод воспроизводимым (подробнее о тестировании и сборке).
Шаг 4. Посмотрите, кто контролирует контракт
В исходном коде найдите роли и права. У Coin-Trust есть владелец (owner), и ему доступно только административное:
- разрешить или запретить токен для новых сделок;
- отметить гаранта как проверенного;
- поставить новые сделки на паузу (пауза не блокирует выплаты по текущим);
- вывести накопленные комиссии платформы;
- вывести «ничьи» токены, случайно присланные напрямую.
Владелец не может забрать средства активных сделок: контракт отслеживает зарезервированные суммы, и они недоступны для административных функций (инвариант платежеспособности). Подробнее о ролях - в статье шаблоны контроля доступа.
Проверьте также, кто сам владелец: простой адрес (риск потери ключа) или мультиподпись.
Шаг 5. Выясните, не прокси ли это
Некоторые контракты - прокси: адрес один, а логика подгружается из другого контракта, который можно заменить (как работают). Тогда владелец может подменить поведение. Признаки: обозреватель показывает «Read as Proxy», в коде есть delegatecall, implementation. Coin-Trust - не прокси: его логику изменить нельзя.
Шаг 6. Прочитайте через интерфейс обозревателя
Во вкладке «Read Contract» можно вызвать функции без подписи и без комиссии. Например, для эскроу можно:
- прочитать комиссию платформы (
PLATFORM_FEE_BPS- 100, то есть 1%); - проверить, разрешён ли токен;
- посмотреть данные конкретной сделки по номеру (
getDeal).
Так вы можете убедиться, что то, что показывает сайт, совпадает с блокчейном.
Шаг 7. Просмотрите историю и события
Во вкладке Events или Logs видны все события контракта (что это). Несколько недель нормальной активности без странных вызовов - хороший знак. И наоборот, настораживает контракт, созданный вчера, с огромными суммами и без истории.
Шаг 8. Аудиты и репутация
Поищите, проходил ли проект аудит и есть ли программа вознаграждения за уязвимости (об аудитах). Аудит не гарантирует отсутствия ошибок, но его отсутствие у проекта, где лежат большие суммы, - тревожный сигнал.
Особый случай: проверка токена
Проверяя токен перед сделкой:
- Откройте токен на официальном сайте эмитента и скопируйте адрес оттуда.
- Сравните с адресом в обозревателе.
- Проверьте число знаков (
decimals) и символ. - Посмотрите, есть ли у токена функции блокировки адресов или приостановки (особенности).
Чек-лист
| Проверка | Хороший признак |
|---|---|
| Адрес | взят из официального источника, сверен полностью |
| Исходный код | верифицирован |
| Владелец | мультиподпись, понятные права |
| Прокси | нет, либо обоснован и под таймлоком |
| История | есть, без аномалий |
| Аудит | есть отчёт |
Что почитать дальше
Закрепите навык работы с обозревателем: руководство по обозревателю. Хотите заглянуть глубже - как устроены уязвимости: каталог уязвимостей.
Читайте также
- 2 · Практика
Как читать Etherscan: проверяем контракт, транзакцию и события
Практическое руководство по обозревателям блоков (Etherscan, Basescan, Polygonscan, BscScan): как проверить адрес, транзакцию, контракт, токены и разрешения.
3 мин чтения - 3 · Под капотом
Аудиты и баг-баунти: как проверяют смарт-контракты и как читать отчёт
Как проходит аудит смарт-контракта, какие бывают уровни серьёзности, чем аудит не является, как читать отчёт, а также как устроены баг-баунти и соревнования.
3 мин чтения
Упоминается в статьях
- Токены и NFT: что это, чем отличаются и где применяются
- Словарь терминов: блокчейн, кошельки, смарт-контракты и эскроу от A до Я
- Чек-лист безопасности кошелька: 15 правил, которые защитят ваши деньги
- Фишинг и отравление адреса: как работают атаки и как от них защититься
- Как читать Etherscan: проверяем контракт, транзакцию и события
- Мультиподпись и таймлок: как управлять контрактом без единой точки отказа
- Обзор языка Solidity: типы, функции, ошибки и события на примерах
- Шаблоны контроля доступа в смарт-контрактах: owner, роли и стороны сделки
- Каталог уязвимостей смарт-контрактов: 12 классических ошибок и защита от них
- Прокси и обновляемые контракты: delegatecall, UUPS и цена гибкости
- Оптимизация газа в Solidity: 12 приёмов и когда они уместны
- Foundry для начинающих: компиляция, тесты, фаззинг и локальная сеть
- Аудиты и баг-баунти: как проверяют смарт-контракты и как читать отчёт
Готовы попробовать?
Создайте первую сделку за пару минут. Деньги блокируются в смарт-контракте и выплачиваются по правилам, которые видны заранее.

