Монеты: ~ 1 000

Биржи: ~ 600

Рыночная капитализация: ~ 3,2 трлн $

Объём за 24 ч: ~ 62 млрд $

Доминирование: BTC: 57.3% ETH: 12.1%

ETH Gas: 0.7 Gwei

USD

Гайд по чтению смарт-контрактов для рядовых криптопользователей

Какие чувства на вас накатывают, когда в первый раз смотрите на «умный контракт»?

article title image Гайд по чтению смарт-контрактов для рядовых криптопользователей

Эта статья посвящена разбору смарт-соглашений, с которыми рядовой крипто-энтузиаст сегодня сталкивается чаще всего – децентрализованные протоколы, дропы, невзаимозаменяемые и традиционные токены.


Для многих пользователей открытие продвинутого договора на Etherscan – словно впервые в жизни поднять капот автомобиля и заглянуть внутрь. В цифровом контракте множество непонятных строчек. Создается впечатление, что столкнулся с древними магическими письменами, которые начертали шаманы-программисты.


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


Именно поэтому мы советуем приложить усилия и научиться разбираться в смарт-контрактах. Нет необходимости выводить себя на уровень разработчиков. Ваша задача – перестать быть наивным инвестором, бездумно швыряющим цифромонеты налево и направо.


Зачем нужно уметь читать «умные контракты»?


По сути своей этот инструмент представляет собой кусок кода, лежащий в блокчейне и выполняющий то, что в нем написано. В нем – только математическая логичность и никакого волшебства.


Если код запрограммирован на выдачу средств при исполнении тех либо иных условий, он их выдаст. Если в нем сказано, что деньги необходимо держать до тех пор, пока ни произойдет то-то и то-то, он выполнит задание.


Смарт-контракт является единственным посредником между вашими цифроактивами и теми, кто желает их присвоить. В своем лице он представляет и банк, и полисмена, и судью. Он работает только так, как в нем написано, а если написано неправильно, вы не сможете никому пожаловаться.


  • Вы прикладываете свой проездной к турникету в метрополитене. Вы уверены, что тот вас пропустит. Но вдруг срабатывает какая-то неприятность в электронике – деньги списываются, а проход не открывается. Вы можете злиться, но ничего не изменишь – устройство сработало, как его запрограммировали.


Смарт-контракт – это цифровой турникет. Только на кон поставлена не поездка в метро, а ваши деньги.


Основные компоненты «умных договоров»


Есть троица основных зон, о которых вам следует знать:


  • Contract. В этом секторе размещается сам код. Его неспециалисты могут пропустить.
  • Read Contract. Здесь расположены сведения о владельце, количестве криптомонет, активности контракта и его лимитах.
  • Write Contract. Эта зона выполняет задание управляющей панели. Она содержит все кнопки, необходимые для запуска, отправки, остановки и другого влияния на договор.


Смарт-контракт может казаться безобидным до тех пор, пока вы не узнаете, кто и к каким рычагам управления имеет доступ. Если вы понимаете, что и где в нем находится, это уже большой плюс.


Кто играет ключевую роль в «умном соглашении»?


Оwner. Эта функция указывает на объект, который обладает правами управления. Это может быть и человек, и мультиподпись, и другой продвинутый договор.


Адрес-владелец может наделяться возможностями заниматься:


  • снятием средств;
  • сменой параметров;
  • остановкой контракта;
  • заменой всего кода (в случае с прокси).


Что требуется проконтролировать?


Загляните в Read Contract и найдите Оwner:


  • Обычный адрес говорит о том, что управление находится в руках одной персоны.
  • 0x000…000 указывает на отключенное управление, и это – хороший знак.
  • Мультиподпись – нужно разобраться, кто стоит за этим контрактом, поскольку для его закрытия требуется нескольких подтверждений.


Что скрывается за другими функциями?


  • Mint – кому выделен карт-бланш на создание новых токенов и запуск их в обращение.
  • Withdraw/WithdrawAll – кому позволено забрать все.
  • Set... – возможность вручную производить замену контрактных настроек.
  • Pause – кому разрешено осуществлять окончательную остановку.
  • RenounceOwnership – разработчики отпустили или сделали вид, что отпустили контроль.


Если вы обнаружили функции, которые могут быть использованы, чтобы переписать, отключить или похитить, спросите себя – кто на это способен?


Прокси-контракт


Это – не сам «умный договор», а лишь обложка. Вы, словно, читаете поддельное соглашение. Смотрите на одно, а функционирует что-то другое. Дело в том, что вся логика сокрыта в другом контракте, и он может измениться, когда угодно.


Прокси распознать несложно. Увидели пометку Proxy, найдите поле Implementation, нажмите на него и откроется истинный код. Далее отыщите опцию upgradeTo, setImplementation. Она выполняет функцию ключа, заменяющего логику договора. И в этом открывшемся контракте можно обнаружить буквально все, что душе заблагорассудится, например, завуалированный вывод средств.


Что смарт-контракт делает на самом деле?


  • Transactions. Здесь указываются все происходившие действия – от того, кто и когда вызывал функции, до того, на какую сумму заключалось соглашение.
  • Internal Txns. Здесь отображаются все внутренние действия, включая автоматические переводы, скрытые денежные перемещения.


Вам необходимо обнаружить:


  • Частые выводы по одному адресу.
  • Странные суммы
  • Подозрительную активность до старта.
  • Замаскированные платежи внутри Internal Txns.


Вы, словно читаете браузерную историю. По действиям заметно намного больше, нежели по обещаниям.


Пошаговая инструкция для чтения смарт-контрактов


Верифицирован ли продвинутый договор?


Если код присутствует – все нормально, если нет – нужно уходить.


Кто выступает владельцем?


  • Если все привязано к обычному одинокому адресу, значит, Оwner может все.
  • 0x000...000 говорит об отсутствии управления.
  • Мультиподписи и децентрализованные автономные организации – лучше, чем один адрес.


Наличие опасных функций


Необходимо точно знать, кто может нажимать Mint, Withdraw, Set..., Pause.


Прокси


Чтобы прочитать настоящий контракт, найдите поле Implementation.


Есть поле? — переходи туда, читай.


Какие действия уже происходили в договоре?


  • Проверка вкладок Transactions и Internal Txns.
  • Проверка выводов средств и подозрительной активности.


Мониторинг через сторонние сервисы TokenSniffer, DEXTools, DeBank


  • Если контракт скопировали – это не всегда отрицательный момент. Нужно проверить – откуда его скопировали, изменяли ли. Он может быть копией известного скама.
  • Пытались вывести с него все средства или закрыть после старта?
  • Возможно, обнаружится заблокированная ликвидность.


Смарт-контракты пишутся не для людей. Вы не обязаны уметь читать каждую строчку. Но вам нужно распознавать кнопки, за которыми могут скрываться ловушки. Вы должны знать, как настоящий код отличается от фасада. Вам необходимо научиться разделять обещания и реальные действия.