
Обмен токенов без посредника, кредит под залог, выпуск NFT, голосование в DAO. За каждым из этих действий стоит смарт-контракт: программа в блокчейне, которая исполняет заданные правила. Обычной кнопки отмены подтверждённой транзакции нет, а возврат средств нельзя гарантировать.
Дальше только механика, без рекламных формулировок. За что сеть берёт комиссию и почему чтение из контракта бывает бесплатным. Чем approve отличается от swap. Почему код не может сам посмотреть цену биткоина. Как «неизменяемый» контракт обновляют через прокси.
Тема кажется абстрактной, пока вы не подпишете транзакцию, после которой деньги уйдут не туда.
Смарт-контракт - это программа, которая хранится в блокчейне по собственному адресу и выполняется узлами сети (компьютерами, которые проверяют операции), когда к ней обращаются транзакцией. У контракта есть код, хранилище (его постоянная память) и баланс. Примеры дальше взяты из Ethereum, в других сетях детали отличаются. Для Ethereum контракт - такой же аккаунт, как у обычного пользователя, только приватного ключа у него нет: им управляет записанный код.
В русскоязычных текстах встречается и буквальный перевод: «умные контракты». Ума в них нет, только автоматика. Термин smart contract придумал Ник Сабо: в 1994 году он описал идею автоматического исполнения условий. Сам по себе код ещё не означает юридический договор. Сеть исполняет то, что написано в коде, даже если написано криво.
Код контракта в скомпилированном виде открыт всем, каждую операцию перепроверяют независимые узлы. Втихую подменить правила не может даже автор: изменение возможно только там, где его допускает сам код, и видно всем. Проведённую операцию отменить нельзя. Как устроены блоки и подтверждения, разобрано в отдельной статье «Что такое блокчейн простыми словами».
Сравнение с торговым автоматом предложил тот же Ник Сабо.
Вы бросаете монету, жмёте кнопку, забираете банку. Между вами и автоматом нет продавца, кассира и переговоров. Внесли нужную сумму - получили товар. Внесли меньше - ничего не произошло. Исключений автомат не делает и передумать не может.
У аналогии есть три уточнения.
Первое. Автомат не бегает за вами по улице: пока никто не нажал кнопку, он не делает ничего. Контракт тоже не запускает себя сам. Изменение состояния в сети начинается с транзакции, которую кто-то отправил и оплатил; локальное чтение устроено иначе.
Второе. Автомат видит только монеты, которые в него бросили. Курс доллара, погоду и новости он не знает. Программа в блокчейне так же видит только то, что записано в сети.
Третье, самое неприятное. Если механизм бракованный и автомат выдаёт две банки вместо одной, чинить его некому. Очередь желающих выстроится за минуты. С контрактом так же: ошибка в коде доступна сразу всем.
Разработчик пишет код (чаще всего на Solidity), компилирует его в байт-код (инструкции для виртуальной машины) и отправляет транзакцию развёртывания. Контракт получает адрес, и с этого момента его код изменить нельзя.
Вызов функции - это такая же транзакция, как перевод ETH, только в поле data указано, какую функцию запустить и с какими параметрами. Узлы выполняют код в виртуальной машине Ethereum (EVM), и каждый получает один и тот же результат.
Газ. Вычисления в сети измеряют в единицах газа. Простой перевод ETH стоит 21 000 единиц. Вызов контракта дороже, потому что к базовым 21 000 добавляется газ за выполнение кода и запись в хранилище. Комиссия равна использованному газу, умноженному на его цену: базовая комиссия плюс чаевые. Базовую часть сеть сжигает, чаевые получает валидатор, включивший транзакцию в блок.
Условный расчёт при базовой комиссии 8 gwei и чаевых 1 gwei, то есть 9 gwei за единицу газа (1 gwei - это одна миллиардная ETH):
Расчёт показывает формулу, а не актуальный тариф. Расход газа зависит от контракта токена и протокола (приложения из контрактов), а цена газа меняется с загрузкой сети. В сетях второго уровня (L2, надстройках над Ethereum) комиссия обычно ниже, но универсального «в десять раз дешевле» не существует: всё зависит от сети и её загрузки.
Неудачная транзакция тоже стоит денег. Изменения откатываются, а комиссия за уже выполненные вычисления списывается.
Чтение: бесплатное и платное. Бесплатное чтение - это запрос eth_call. Кошелёк или сайт просит узел выполнить функцию контракта и вернуть ответ. Транзакция не создаётся, в блокчейн ничего не записывается, газ не списывается: узел считает у себя, остальная сеть в этом не участвует. Так интерфейс показывает баланс или курс обмена ещё до того, как вы что-то подписали.
Платное чтение происходит внутри транзакции. Например, в ходе обмена контракт биржи запрашивает у пула (контракта с запасом двух токенов), сколько в нём резервов. Такой запрос выполняют все узлы, и каждое обращение к хранилищу расходует газ. Он входит в комиссию той же транзакции, хотя чтение дешевле записи.
Цифра на экране получена через eth_call и к моменту исполнения вашей транзакции может устареть.
approve и swap. Первое - разрешение, второе - обмен. В классической схеме это две отдельные транзакции.
Токен стандарта ERC-20 тоже контракт, балансы всех держателей записаны в его хранилище. Сторонний контракт не заберёт ваши токены без разрешения. Функция approve записывает в контракте токена лимит: такому-то адресу (например, контракту-роутеру децентрализованной биржи) можно списать с вашего баланса до такой-то суммы. Токены при этом не двигаются.
Дальше swap: вторая транзакция, уже на адрес контракта биржи. Роутер в пределах лимита забирает ваши токены функцией transferFrom и передаёт их в пул, сумма к выдаче считается по резервам пула, и пул отправляет вам второй токен. В параметрах задана минимальная сумма к получению. Если к моменту исполнения пул готов отдать меньше этого минимума, обмен откатится, а комиссию за попытку вы всё равно заплатите.
Обмен с отдельным approve обходится дороже, ведь транзакций две (самому ETH approve не нужен: ETH не токен стандарта ERC-20). Поэтому интерфейсы часто просят разрешение на неограниченную сумму, чтобы вам не пришлось платить за approve перед каждым обменом. Такое разрешение действует и после обмена. Если контракт, которому оно выдано, взломают или он изначально был вредоносным, с вашего адреса можно списать весь остаток токена. Отключение кошелька от сайта ничего не отменяет: отзыв разрешения - отдельная транзакция с комиссией. Я бы ставил лимит под сумму конкретной сделки, даже ценой лишнего approve.
Оракулы. Контракт не может сходить на сайт биржи и посмотреть курс. Дело в детерминизме. Все узлы обязаны получить одинаковый результат, а внешний запрос мог бы вернуть каждому своё значение.
Оракул - это сервис, который доставляет внешние сведения в блокчейн. Узлы оракула получают цену вне блокчейна и транзакцией записывают её в специальный контракт, откуда её читают протоколы. Децентрализованные сети оракулов опрашивают несколько независимых узлов и сводят ответы в одно значение (например, берут медиану).
Риск остаётся. Цена может устареть, если обновление задержалось. Ещё опаснее, когда протокол читает текущую цену прямо из пула децентрализованной биржи. Атакующий получает флеш-займ (кредит без залога, который возвращают в той же транзакции), крупной покупкой сдвигает цену в пуле и тут же занимает под переоценённый залог больше положенного. Код протокола отработал без ошибок. Он просто поверил неверной цене.
Прокси и обновляемость. Запрет на изменение кода протоколы обходят через прокси. Прокси - это контракт-посредник: к нему обращаются пользователи, в его хранилище лежат балансы и настройки, а логики в нём почти нет. Каждый вызов он передаёт контракту-реализации через delegatecall. Эта инструкция берёт код из другого контракта, но выполняет его над хранилищем самого прокси. Чтобы обновить протокол, команда записывает в прокси адрес новой реализации. Адрес для пользователей и балансы остаются прежними, логика меняется.
Раз логику можно заменить, значит, у какого-то адреса есть на это право. И без прокси код нередко оставляет администратору особые права, например поставить контракт на паузу. Проверьте, можно ли обновить контракт и у кого ключ: мультисиг (кошелёк, где операцию подтверждают несколько владельцев) с таймлоком (обязательной задержкой перед вступлением изменения в силу) - один уровень риска, одиночный адрес неизвестного владельца - совсем другой.
DeFi (децентрализованные финансы) - область, где место банка и брокера занял код: обмен, кредиты и деривативы работают через контракты. Как устроена вся экосистема, читайте в отдельном материале «Что такое DeFi простыми словами».
Классическая децентрализованная биржа работает как автоматический маркет-мейкер. Два токена лежат в пуле, цену задаёт соотношение резервов (у Uniswap v2 формула x × y = k, где x и y - резервы двух токенов), обмен идёт против пула, а не против чужой лимитной заявки. Стакана заявок (списка лимитных заявок на покупку и продажу) в таких пулах нет.
Кредитные протоколы держат залог в контракте и считают показатель здоровья позиции (насколько залог покрывает долг). В Aave ликвидация (принудительное погашение долга за счёт залога) становится возможной, когда показатель падает ниже 1. Запустить её может любой участник сети. Он гасит долг заёмщика и забирает залог на ту же сумму плюс премию.
Контракты публичны и вызывают друг друга без разрешения, поэтому новый протокол собирают из готовых модулей (это называют компонуемостью). Обратная сторона: ошибка в нижнем модуле бьёт по всему, что на нём построено.
NFT (невзаимозаменяемый токен) - это запись в контракте (чаще всего стандарта ERC-721), которая связывает уникальный идентификатор с адресом владельца. Сама картинка в блокчейне обычно не хранится, потому что это слишком дорого. В контракте лежит ссылка на описание и изображение, а они размещены в IPFS (распределённой файловой сети) или на обычном сервере.
Что записано в коде:
Размер отчислений площадке сообщает стандарт ERC-2981, но платить он не заставляет: в его тексте выплата прямо названа добровольной, потому что перевод токена между кошельками ещё не означает продажу. Площадки этим пользуются. В августе 2023 года OpenSea объявила о переходе на необязательные отчисления.
Помимо картинок, так выпускают билеты и доменные имена.
DAO (децентрализованная автономная организация) - это казна и набор правил, записанных в смарт-контракте. Порядок изменения правил зависит от устройства конкретной DAO и полномочий её администраторов. Держатели токена управления выдвигают предложения и голосуют. Вес голоса обычно равен числу токенов на адресе.
В одних DAO принятое решение исполняется автоматически, транзакцией из контракта. В других голосование только фиксирует волю участников, а перевод подписывают конкретные люди из мультисига.
Токен управления продаётся на рынке, значит, влияние можно купить. При низкой явке исход решают несколько крупных держателей.
Цену ошибки в коде показала история The DAO, инвестиционного фонда под управлением кода, в 2016 году. Уязвимость повторного входа (контракт отправлял средства раньше, чем обновлял баланс) позволила вывести из него более 3,6 млн ETH. Сообщество проголосовало за хардфорк (несовместимое изменение правил сети), который вернул средства вкладчикам.
Неизменяемость кода защищает от подмены правил, но из-за неё ошибку в развёрнутом контракте не исправить задним числом, а украденное, как правило, не возвращается.
По отчёту аналитической компании TRM Labs от 1 июля 2026 года, за первое полугодие произошло 207 взломов, больше, чем за любые шесть месяцев её наблюдений. Украли при этом 972 млн долларов, меньше половины от 2,3 млрд за первое полугодие 2025 года.
Взломов через уязвимости смарт-контрактов было 125 из 207, но на них пришлась малая часть суммы. Около 76% украденного дали примерно 15% инцидентов. Это атаки на инфраструктуру и операционные процессы: на системы, доступы и ключи подписи, через которые управляют активами.
Классы уязвимостей в коде повторяются годами:
Отдельная история - вредоносная подпись. Стандарт ERC-2612 (функция permit, есть не у каждого токена) и схемы вроде Permit2 позволяют выдать разрешение на списание токенов не транзакцией, а подписью сообщения. Газ за подпись не списывается, в истории адреса она не появляется. Позже получатель подписи сам отправит её в блокчейн и спишет токены. На поддельном сайте такая подпись может выглядеть как безобидный «вход в приложение».
Типичные ошибки пользователя. Взламывать здесь ничего не приходится, пользователь всё отдаёт сам.
Аудит - это проверка кода независимой командой перед запуском или крупным обновлением. Аудиторы читают код вручную, прогоняют анализаторы, моделируют атаки и выдают отчёт с находками по степени критичности.
Риск это снижает, но гарантии не даёт. Документация Ethereum говорит прямо: аудит находит не все ошибки, и считать его «серебряной пулей» нельзя.
В отчёте проверьте три вещи. Кто проверял и какая у этой команды репутация. Какую версию кода и когда проверяли: если контракт после этого обновляли, в сети работает уже не тот код, что описан в отчёте. Исправлены ли критичные находки или только «приняты к сведению».
Показательный случай - кредитный протокол Euler Finance. По словам самой команды, он проходил аудит намного чаще, чем принято в отрасли. В марте 2023 года протокол всё равно потерял около 197 млн долларов, потому что в функции donateToReserves не хватало одной проверки состояния позиции. За следующие три недели средства удалось вернуть, но такой исход редкость.
Помимо отчёта, стоит узнать, есть ли у проекта вознаграждение за найденные уязвимости (bug bounty), как долго протокол работает с реальными деньгами и есть ли таймлок на критичные изменения.
Перед входом в любой протокол я бы выяснял, кто может изменить контракт, какие разрешения он получит и какую сумму не страшно потерять полностью.
Торговля на централизованной бирже идёт без смарт-контрактов. Когда вы открываете позицию на Binance или Bybit, код в блокчейне не исполняется. Заявки сводит внутренняя система биржи, а блокчейн участвует только при вводе и выводе средств.
На рынок контракты влияют по-другому, через события, которые видны в блокчейне.
Разблокировки токенов. График выдачи токенов команде и инвесторам (вестинг) нередко записан в контракте, и даты известны заранее. Крупная разблокировка увеличивает предложение в обращении, но продавать получатели не обязаны.
Ликвидации в кредитных протоколах. Как только позиция стала доступна для ликвидации, закрыть её может любой участник, и транзакция видна всем. При резком падении цены такие ликвидации могут усилить продажи на рынке, который и так идёт вниз.
Сюда же относятся комиссии: для арбитража между площадками газ на перевод - прямой расход, который может съесть всю разницу цен. Крупные переводы на биржевые адреса тоже видны сразу, но депозит ещё не продажа, ведь токены могли завести под залог или просто переложить.
Когда это не работает. Событие в блокчейне даёт контекст, но само по себе не сигнал на вход. О разблокировке, дата которой известна за месяцы, рынок знает заранее, и цена может отреагировать до события, не отреагировать вовсе или пойти против очевидного сценария. Открывать шорт только из-за строчки в календаре разблокировок - значит торговать чужим ожиданием.
Реакцию рынка на событие проверяют по потоку ордеров. Плотность в стакане (крупная лимитная заявка или скопление заявок на одной цене) стоит на месте или её сняли? Лента принтов (поток исполненных сделок с их размером и стороной) показывает рост рыночных продаж или тишину? Кластеры (объём, разложенный по ценам внутри свечи) подскажут, на каких уровнях прошёл оборот. Гарантий эти признаки не дают, потому что заявку могут снять в любой момент. Но точку входа и уровень стопа логичнее выбирать по ним.
Как читать стакан и кластеры вместе, показано в бесплатном уроке на YouTube-канале Secret Terminal. Он входит в полный курс по криптотрейдингу из пяти частей для новичков.
Материал образовательный и не содержит инвестиционных рекомендаций.
Это программа в блокчейне, которая автоматически исполняет заложенные в неё условия, когда к ней обращаются транзакцией. Работает как торговый автомат: условие выполнено - результат выдан, и отменить операцию нельзя. «Умные контракты» - то же самое, буквальный перевод термина.
Зависит от кода. Если в нём нет ролей владельца или администратора, контрактом после запуска не управляет никто. Часто код оставляет администратору особые права: поставить контракт на паузу, поменять параметры, а при развёртывании через прокси заменить логику. Прежде чем вносить средства, проверьте, какие права есть у администратора и у кого ключ.
Газом оплачиваются вычисления и запись в блокчейн: простой перевод ETH стоит 21 000 единиц газа, вызов контракта дороже. Чтение через eth_call бесплатно, потому что транзакция не создаётся и узел считает ответ у себя. То же чтение внутри транзакции расходует газ.
Функция approve выдаёт контракту разрешение списать ваши токены в пределах лимита, но сами токены остаются на месте. Операция swap - отдельная транзакция обмена, которая использует это разрешение. Неограниченное разрешение действует и после обмена, пока вы его не отзовёте.
Нет. Все узлы обязаны получить одинаковый результат, поэтому обращаться к внешним сайтам код не может. Цены в блокчейн доставляют оракулы. На этом строятся атаки: DeFi-протоколу подсовывают устаревшую или искусственно сдвинутую цену.
Нет. Аудит снижает вероятность ошибки, но описывает конкретную версию кода на конкретную дату и находит не всё. Euler Finance проходил аудит неоднократно и в марте 2023 года всё равно потерял около 197 млн долларов из-за одной пропущенной проверки.
Автоматически нет. Исполнение кода не равно исполнению договора: признают ли такое соглашение, зависит от юрисдикции и от того, как стороны оформили отношения вне блокчейна. Если дойдёт до спора, разбираться придётся обычным юридическим путём.
Смарт-контракты работают в блокчейне, а сделки на централизованной бирже проходят через стакан заявок. Secret Terminal собирает в одном окне стакан с картой плотностей, ленту принтов и кластерный анализ по Binance, Bybit, OKX, MEXC, WhiteBIT, Kraken и BloFin. Терминал бесплатный. Скачайте его на официальном сайте, подключите биржу и посмотрите на рынок на уровне заявок и сделок, а не свечей.

5 лет в трейдинге, 3 года был ментором и обучил более 2 000 студентов. Развивает Secret Terminal, чтобы профессиональные инструменты торговли были доступны каждому трейдеру.
Было полезно?
Ваша оценка поможет нам улучшить качество публикуемых материалов и повысить их полезность.
Публикуем обновления продукта, инструкции по настройке и практические материалы по работе с инструментами Secret Terminal

Из чего состоит работа над результатом в трейдинге: идея, условия входа и выхода, размер позиции, комиссии и дневник. Пр...

Как выбрать время для торговли криптовалютой: объемы, спред, новости и личный режим. Объясняем торговые сессии и перевод...

Кто такой скальпер на бирже и как устроена его работа: короткие сделки, стакан, лента принтов, комиссии и требования к в...