Главная / Крипто-термины / Умный договор

Умный договор

Смарт-контракт — это самоисполняющаяся компьютерная программа, хранящаяся в блокчейне, которая автоматически обеспечивает исполнение и проверку условий соглашения при выполнении заранее определенных условий, без необходимости в посредниках, таких как юристы, банки или нотариусы. Этот термин был введен ученым-компьютерщиком Ником Сабо в 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
СкоростьСекунды в минутыДни и годымиллисекунды
ЮрисдикцияГлобальный (безграничный)специфично для конкретной юрисдикцииРегулируется условиями предоставления услуг поставщика.

Связанные условия

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 год.

Проверьте свои собственные цифры

Бесплатный калькулятор UEEx возвращает цену ликвидации, использование маржи и комиссии для любого размера позиции.

Еженедельный дайджест UEEx

Анализ рынка и предупреждения о ценных бумагах, которые читают 10 000 трейдеров.