Смарт-контракт — это самоисполняющаяся компьютерная программа, хранящаяся в блокчейне, которая автоматически обеспечивает исполнение и проверку условий соглашения при выполнении заранее определенных условий, без необходимости в посредниках, таких как юристы, банки или нотариусы. Этот термин был введен ученым-компьютерщиком Ником Сабо в 1994 году, который описал их как «набор обещаний, указанных в цифровой форме, включая протоколы, в рамках которых стороны выполняют эти обещания».
На блокчейне Ethereum и других платформах смарт-контрактов смарт-контракты пишутся на языках программирования, таких как Solidity (Ethereum), Rust (Solana) или Move (Sui, Aptos). После развертывания в блокчейне код контракта, как правило, неизменяем; его нельзя изменить или подделать, за исключением контрактов, специально разработанных с использованием обновляемых прокси-шаблонов. Контракт имеет собственный адрес в блокчейне, может хранить средства, отправлять транзакции и взаимодействовать с другими контрактами. Когда пользователь или другой контракт отправляет транзакцию смарт-контракту, удовлетворяющую его условиям, код выполняется автоматически, и результаты навсегда записываются в блокчейн.
Смарт-контракты являются основой всей экосистемы децентрализованных приложений (DApp). Они обеспечивают работу децентрализованных бирж (Uniswap), протоколов кредитования (Aave, Compound), децентрализованных стейблкоинов (DAI и его более новый аналог USDS, выпущенный Sky Protocol, — ребрендинг MakerDAO в 2024 году), NFT-рынков (OpenSea), децентрализованных автономных организаций (DAO) и тысяч других приложений. В совокупности смарт-контракты управляли активами на десятки миллиардов долларов в рамках DeFi, хотя эта цифра оказалась довольно нестабильной, достигнув пика около 180 миллиардов долларов в конце 2021 года, упав до примерно 38 миллиардов долларов в конце 2022 года и колебаясь в диапазоне от 70 до 140 миллиардов долларов в разные моменты 2025 и 2026 годов. Даже с учетом этой волатильности, смарт-контракты продемонстрировали трансформационный потенциал для финансов, управления, цепочек поставок, страхования и практически любого процесса, включающего условную логику и передачу ценности.
Происхождение и история
1994 год: Ник Сабо, специалист по информатике и юрист, вводит термин «смарт-контракт» и описывает концепцию встраивания договорных положений в аппаратное и программное обеспечение, чтобы сделать нарушение контракта дорогостоящим для нарушившей его стороны.
1998 год: Сабо разрабатывает «Bit Gold», концепцию децентрализованной цифровой валюты, включающую в себя идеи смарт-контрактов, предвосхитившую появление Биткоина на десятилетие.
2013 год: Виталик Бутерин публикует технический документ Ethereum, предлагая блокчейн с полным по Тьюрингу языком программирования, способным запускать произвольные смарт-контракты.
2015 год (июль): Запуск Ethereum, впервые сделавший смарт-контракты практически применимыми на практике. Язык программирования Solidity становится стандартом для написания смарт-контрактов Ethereum.
2016 год: «DAO», децентрализованный венчурный фонд, работающий на основе смарт-контрактов, привлекает около 150 миллионов долларов, но становится жертвой мошенничества из-за уязвимости повторного входа, в результате чего из его средств уходит около 60 миллионов ETH на тот момент. Этот инцидент приводит к хардфорку Ethereum и становится важным уроком в области безопасности смарт-контрактов.
2017 год: Стандарт токенов ERC-20 позволяет любому создавать взаимозаменяемые токены с помощью смарт-контрактов, что способствовало буму ICO. Были созданы тысячи новых токенов.
2018 год: Безопасность смарт-контрактов становится одним из главных приоритетов. OpenZeppelin публикует проверенные в боевых условиях библиотеки для смарт-контрактов. Появляются инструменты формальной верификации.
2020: Лето DeFi демонстрирует возможности составных смарт-контрактов. Такие протоколы, как Uniswap, Compound и Yearn Finance, создают сложные финансовые продукты исключительно посредством взаимодействия смарт-контрактов.
2021 год: популярность NFT (смарт-контрактов ERC-721) резко возросла. Смарт-контракты лежат в основе всего, от продажи цифрового произведения искусства на 69 миллионов долларов до игровых экономик, основанных на принципе «играй и зарабатывай».
2022–2023: Абстракция учетной записи (ERC-4337) позволяет создавать смарт-контрактные кошельки с улучшенными функциями пользовательского интерфейса, такими как социальное восстановление и транзакции без комиссии за транзакции.
2024 (август): MakerDAO, одна из старейших и наиболее значимых систем смарт-контрактов DeFi, меняет название на Sky Protocol в рамках своего плана «Конец игры». Одновременно с существующим DAI запускается новый стейблкоин USDS с коэффициентом обмена 1:1, а токен управления MKR становится конвертируемым в новый токен SKY с фиксированным соотношением 1:24 000. И DAI, и MKR продолжают существовать как устаревшие токены наряду со своими новыми аналогами.
С 2024 по 2026 год: платформы смарт-контрактов продолжают развиваться, ведется работа над формальной верификацией, архитектурами, основанными на намерениях, и аудитом смарт-контрактов с помощью ИИ. Улучшается межсетевая совместимость смарт-контрактов благодаря протоколам обмена сообщениями. К 2026 году USDS превзойдет DAI по объему предложения, в то время как сам DAI останется широко используемым, меньшим по размеру традиционным стейблкоином в рамках той же базовой системы Sky Protocol.
«Смарт-контракт — это компьютеризированный протокол транзакций, который исполняет условия контракта. Его общие цели заключаются в удовлетворении общих договорных условий, минимизации исключений, как злонамеренных, так и случайных, и минимизации необходимости в доверенных посредниках». Ник Сабо, 1994.
Простыми словами
Торговый автомат: смарт-контракт похож на торговый автомат. Вы вносите деньги и выбираете товар, а автомат автоматически проверяет оплату, подтверждает выбор и выдает товар. Кассир не нужен. «Правила» (прайс-лист, инвентаризация) запрограммированы заранее, и автомат выполняет их без вмешательства человека.
Робот-посредник: представьте, что вы покупаете дом. Вместо юриста, хранящего деньги на эскроу-счете, это делает робот. Робот запрограммирован так: «Когда право собственности будет передано покупателю, перечислите платеж продавцу». Он точно следует этим правилам каждый раз, без предвзятости, задержек или ошибок. Этот робот — смарт-контракт.
Непреложное соглашение: смарт-контракт подобен написанию соглашения несмываемыми чернилами внутри прозрачного, запертого стеклянного ящика. Условия видны всем, изменить их сложно, и при выполнении условий соглашение автоматически исполняется.
Принцип «если-то-иначе», но с деньгами: по сути, смарт-контракт — это последовательность правил «если-то». Если Алиса отправляет 1 ETH, то отправьте ей 100 токенов. Если цена упадет ниже 50 долларов, то продайте позицию. Если 3 из 5 подписавших одобрят, то разблокируйте средства. Простая логика, но с реальными деньгами и без возможности обмана.
Важно: надежность смарт-контрактов зависит от качества их кода. Ошибка в смарт-контракте может привести к необратимой потере средств. В строгом смысле принципа «код — это закон» в большинстве контрактов нет службы поддержки и кнопки «отменить». Всегда работайте со смарт-контрактами, прошедшими аудит и проверку в реальных условиях, и понимайте связанные с этим риски.
Основные технические характеристики
Неизменность и детерминизм
- После развертывания в блокчейне код смарт-контракта, как правило, нельзя изменить, если только он не был специально разработан с использованием шаблона обновляемого прокси.
- При одинаковых входных данных смарт-контракт всегда выдает одинаковые выходные данные на каждом узле.
- Этот детерминизм гарантирует, что все участники сети согласны с результатами исполнения.
- Неизменность обеспечивает определенную форму доверия: пользователи знают, что правила, как правило, не изменятся после внесения средств, за исключением контрактов, специально разработанных для возможности обновления.
Язык программирования Solidity
- Основной язык смарт-контрактов для Ethereum и блокчейнов, совместимых с EVM.
- Вдохновение черпалось из JavaScript, Python и C++.
- Ключевые понятия включают функции, модификаторы, события, переменные состояния, отображения и структуры.
- К вопросам безопасности относятся защита от повторного входа, защита от переполнения целочисленных значений и схемы контроля доступа.
- В качестве альтернативных языков программирования можно использовать Vyper (аналог Python для Ethereum), Rust (Solana), Move (Sui и Aptos) и Cairo (StarkNet).
Композитность («Денежные LEGO»)
- Смарт-контракты могут беспрепятственно вызывать другие смарт-контракты и взаимодействовать с ними.
- Договор займа может взаимодействовать с контрактом DEX, который, в свою очередь, взаимодействует с контрактом оракула.
- Это создает компонуемую экосистему, в которой новые приложения могут развиваться на основе существующих.
- Экспресс-кредиты демонстрируют исключительную модульность: заимствование, обмен и погашение в рамках одной транзакции.
Расходы на газ и исполнение
- Каждая операция смарт-контракта стоит газ и вычислительные единицы, цена которых выражается в собственной криптовалюте.
- Более сложные операции обходятся дороже в плане газа; операции по хранению, как правило, являются одними из самых дорогостоящих.
- Оптимизация расхода газа — важнейший навык для разработчиков смарт-контрактов.
- В рамках EIP-1559 был введен механизм базовой комиссии в сети Ethereum для более предсказуемого ценообразования на газ.
События и ведение журналов
- Смарт-контракты генерируют события, которые могут отслеживать приложения, работающие вне блокчейна.
- События хранятся в журналах транзакций, а не в хранилище контрактов, что делает их написание дешевле.
- Используется фронтенд-приложениями (интерфейсами децентрализованных приложений) для отслеживания активности контрактов практически в режиме реального времени.
- Незаменим для создания адаптивных пользовательских интерфейсов для протоколов DeFi, платформ NFT и аналогичных приложений.
Преимущества недостатки
| Преимущества | Недостатки |
|---|---|
| Исполнение без необходимости доверия: Нет необходимости доверять посреднику; правила обеспечивает сам код. | Неизменяемые ошибки: Если в коде есть ошибка, её, как правило, нелегко исправить после развертывания. |
| Прозрачность: Любой желающий может прочитать и проверить код контракта в блокчейне. | Сложность: Написание безопасных смарт-контрактов требует специальных знаний. |
| Автоматизация: Выполняется автоматически при выполнении условий, круглосуточно. | Зависимость от Oracle: Смарт-контракты не могут получить доступ к данным вне блокчейна без оракулов. |
| Снижение цены: Снижает зависимость от посредников, таких как юристы, брокеры и агенты по условному депонированию. | Расходы на газ: В перегруженных сетях комиссия за исполнение может быть высокой. |
| Совместимость: Контракты могут взаимодействовать друг с другом для построения сложных систем. | Необратимость: Ошибки в сделках или договорных отношениях, как правило, необратимы. |
| Глобальный доступ: Любой человек, имеющий доступ к интернету, может взаимодействовать со смарт-контрактами. | Масштабируемость. В блокчейнах базового уровня сложные взаимодействия по контрактам могут быть медленными и дорогостоящими. |
| Цензура сопротивление: Как правило, ни одна отдельная организация не может предотвратить выполнение действующего смарт-контракта. | Правовая неопределенность: В большинстве юрисдикций смарт-контракты еще не имеют полностью устоявшейся правовой основы. |
Управление рисками
Уязвимости смарт-контрактов:
- Реентерабельные атаки: Когда контракт вызывает внешний контракт до обновления собственного состояния, это позволяет внешнему контракту «повторно войти» и вывести средства. Взлом DAO, в результате которого было украдено ETH на сумму около 60 миллионов долларов, был вызван именно этим.
- Переполнение/недополнение целочисленных значений: Арифметические ошибки, которые чаще встречались в более старых версиях Solidity. В современных версиях Solidity (0.8 и выше) встроена защита от переполнения.
- Передний ход: Майнеры или валидаторы могут видеть ожидающие транзакции и добавлять свои собственные транзакции перед ними, извлекая прибыль (MEV).
- Ошибки контроля доступа: Забыли ограничить круг лиц, имеющих доступ к критически важным функциям, что позволяет любому растрачивать средства или изменять параметры.
Рекомендации по обеспечению безопасности:
- Всегда используйте проверенные аудиторами контракты от авторитетных проектов; проверяйте наличие нескольких аудитов от независимых фирм.
- Проанализируйте аудиторские отчеты; аудит не гарантирует безопасность, но значительно снижает риски.
- Начинайте с небольших сумм при заключении новых контрактов.
- Отмените ненужные подтверждения токенов, используя такие инструменты, как Revoke.cash или средство проверки подтверждения токенов в обозревателе блоков.
- Используйте проверенные библиотеки (например, OpenZeppelin), вместо того чтобы писать критически важный для безопасности код с нуля.
Риск управления:
- Обновляемые смарт-контракты можно изменять с помощью ключей администратора; проверьте, кто владеет этими ключами.
- Временная блокировка административных функций дает пользователям время для выхода из системы до вступления изменений в силу.
- Требование использования мультиподписи для административных действий снижает риск компрометации одного ключа.
- DAO могут голосовать за изменение параметров контракта; необходимо ознакомиться со структурой управления, прежде чем вносить средства.
Культурная значимость
Смарт-контракты представляют собой серьезный сдвиг в том, как люди создают и обеспечивают соблюдение соглашений. Девиз криптосообщества «код — это закон» отражает философию, согласно которой цифровые взаимодействия должны регулироваться правилами программного обеспечения, а не человеческим суждением. Это создает более предсказуемую, справедливую и доступную систему, но также поднимает сложные вопросы о том, что происходит, когда код приводит к непредвиденным результатам.
Взлом DAO в 2016 году остается определяющим культурным моментом для смарт-контрактов. Когда из-за уязвимости в коде было украдено около 60 миллионов долларов, сообщество Ethereum столкнулось с моральной дилеммой: код выполнился точно так, как был написан (технически «эксплойт» представлял собой допустимое взаимодействие с контрактом), но результат явно не соответствовал задуманному. Спорное решение о создании хардфорка Ethereum для отмены взлома создало прецедент, который продолжает влиять на дебаты о неизменности, управлении и пределах «кода как закона».
«Умные контракты звучат великолепно в теории, но их эффективность зависит от тех, кто их пишет». Это распространенное выражение в сообществе разработчиков.
Ежегодные хакатоны по Ethereum (ETHGlobal, ETHDenver) и соревнования по аудиту смарт-контрактов (Code4rena, Sherlock) создали активную культуру разработки, взлома и обеспечения безопасности смарт-контрактов.
Примеры из реального мира
1. Uniswap, автоматизированный маркет-мейкер
Uniswap — это протокол смарт-контрактов, позволяющий любому торговать токенами без книги ордеров или централизованной биржи. Его основной смарт-контракт использует математическую формулу (x умножить на y равно k) для автоматического определения цены сделок на основе спроса и предложения в пулах ликвидности. За всю историю Uniswap через его смарт-контракты было совершено сделок на сумму более 2 триллионов долларов, и при этом ни один сотрудник не обрабатывал ни одной отдельной сделки.
2. Sky Protocol (ранее MakerDAO), децентрализованные стейблкоины
Протокол Sky, известный как MakerDAO до ребрендинга в августе 2024 года, использует смарт-контракты для создания и управления децентрализованными стейблкоинами. Пользователи блокируют залог (например, ETH, BTC или другие одобренные активы) в «хранилищах» смарт-контрактов и выпускают DAI или его более новый аналог USDS, используя его в качестве залога. Если стоимость залога падает ниже требуемого порога, смарт-контракт автоматически запускает ликвидацию позиции для защиты системы. По состоянию на 2026 год предложение USDS превысило предложение DAI, и вместе эти два стейблкоина представляют собой более 10 миллиардов долларов в обращении, обеспеченных одной и той же базовой системой хранилищ, в то время как токен управления MKR продолжает мигрировать к своему преемнику SKY в фиксированном соотношении 1:24 000.
3. Chainlink, децентрализованные оракулы
Смарт-контракты Chainlink связывают блокчейны с реальными данными, такими как цены, погода и спортивные результаты. Когда протоколу DeFi требуется текущая цена ETH, сеть оракулов Chainlink агрегирует данные из нескольких источников и передает их запрашивающему смарт-контракту. Сообщаемые данные о стоимости, которую Chainlink обеспечивает в рамках DeFi и своей кроссчейн-инфраструктуры, значительно различаются в зависимости от методологии и от того, учитывается ли объем обмена сообщениями между блокчейнами: некоторые показатели значительно превышают 100 миллиардов долларов, а другие, узко сфокусированные на ценовых потоках DeFi, исчисляются десятками миллиардов.
Сравнительная таблица
| Характеристика | Умный договор | Традиционный контракт | API/Веб-сервис |
|---|---|---|---|
| правоприменение | Автоматический (код) | Руководство (суды/юристы) | Автоматический (сервер) |
| Модель доверия | Не требующий доверия (консенсус блокчейна) | Основанная на доверии (правовая система) | Доверьтесь поставщику услуг. |
| Прозрачность | Полностью общедоступная и поддающаяся проверке информация. | Конфиденциально между сторонами | Собственный/закрытый |
| Модификация | Неизменяемый или управляемый системой управления, если он предназначен для обновления. | Возможно внесение изменений по соглашению. | Поставщик услуг может измениться в любое время. |
| Uptime | Непрерывный (децентрализованный) | Рабочее время (судов) | Обычно около 99.9% (централизованный подход) |
| Стоимость | Комиссия за газ за каждую транзакцию | юридические издержки, судебные издержки | плата за подписку на API |
| Скорость | Секунды в минуты | Дни и годы | миллисекунды |
| Юрисдикция | Глобальный (безграничный) | специфично для конкретной юрисдикции | Регулируется условиями предоставления услуг поставщика. |
Связанные условия
- основательность
- EVM (виртуальная машина Ethereum)
- DApp (децентрализованное приложение)
- Газ
- Oracle
- Аудит
- Defi
- Стандарт токена
- Договор доверенности
- DAO
FAQ
В: На каком языке программирования пишутся смарт-контракты? Самый популярный язык — Solidity, используемый для Ethereum и блокчейнов, совместимых с EVM. Другие языки включают Vyper (аналог Python для Ethereum), Rust (используется для программ Solana), Move (используется для Sui и Aptos), Cairo (используется для StarkNet) и Clarity (используется для Stacks и Bitcoin). Solidity остается самым распространенным языком, обладающим крупнейшим сообществом разработчиков и экосистемой инструментов.
В: Можно ли изменить смарт-контракты после развертывания? Стандартные смарт-контракты неизменяемы; после развертывания код, как правило, изменить нельзя. Однако «обновляемые» смарт-контракты используют прокси-паттерн, где логика контракта может быть заменена с сохранением того же адреса и состояния. Это вводит предположение о доверии: тот, кто контролирует ключи обновления, может изменить поведение контракта. Многие протоколы DeFi используют временные блокировки и кошельки с мультиподписью для снижения этого риска.
В: Являются ли смарт-контракты юридически обязательными? Правовой статус смарт-контрактов варьируется в зависимости от юрисдикции и все еще находится в стадии развития. Некоторые штаты США, включая Аризону и Теннесси, приняли законы, признающие смарт-контракты. Комиссия по правовым вопросам Великобритании заявила, что смарт-контракты могут представлять собой юридически обязательные договоры. Однако в большинстве юрисдикций юридическая сила по-прежнему зависит от соблюдения традиционных требований договорного права (предложение, принятие, встречное предоставление, намерение), независимо от формы заключения договора.
В: Что произойдет, если в смарт-контракте обнаружится ошибка? Если в смарт-контракте обнаружена ошибка, как правило, нет способа «исправить» ее после развертывания, если только не используется шаблон обновления. Ошибки могут привести к безвозвратной потере средств. Именно поэтому аудит смарт-контрактов имеет решающее значение; профессиональные аудиторы проверяют код на наличие уязвимостей перед развертыванием. Программы вознаграждения за обнаружение ошибок стимулируют «белых хакеров» находить уязвимости, а страховые протоколы, такие как Nexus Mutual, предлагают страховое покрытие от определенных сбоев в смарт-контрактах.
В: Сколько стоит развертывание смарт-контракта? Стоимость значительно варьируется в зависимости от блокчейна и текущих условий сети. В основной сети Ethereum развертывание простого смарт-контракта может стоить от десятков до нескольких сотен долларов и более, в зависимости от цен на газ и сложности контракта. В сетях второго уровня (Arbitrum, Optimism, Base) затраты обычно составляют лишь небольшую часть этой суммы. В Solana стоимость развертывания обычно значительно ниже доллара. Более сложные контракты, такие как полноценный протокол DeFi, как правило, стоят дороже, поскольку содержат больше кода, для хранения которого в блокчейне требуется больше газа.
Источники
- Сабо, Н., «Формализация и укрепление отношений в публичных сетях», Первый понедельник, 1997 г.
- Фонд Ethereum, «Введение в смарт-контракты», ethereum.org
- OpenZeppelin, «Лучшие практики обеспечения безопасности смарт-контрактов», docs.openzeppelin.com
- Trail of Bits, «Создание безопасных смарт-контрактов», github.com/crytic
- Атцей, Н. и др., «Обзор атак на смарт-контракты Ethereum», eprint.iacr.org, 2017
- Sky Protocol (ранее MakerDAO) Документация и объявление о ребрендинге, 2024 год.








