Смарт-контракт
Смарт-контракт — это компьютерная программа или протокол транзакций, предназначенные для автоматического исполнения, контроля или документирования событий и действий в соответствии с условиями контракта или соглашения[1][2][3][4]. Целями использования смарт-контрактов являются снижение необходимости в доверенных посредниках, уменьшение издержек на арбитраж и потерь от мошенничества, а также снижение числа злонамеренных и непреднамеренных исключений[2]. Смарт-контракты широко ассоциируются с криптовалютами, а смарт-контракты, внедрённые в Ethereum, считаются фундаментальным элементом для приложений децентрализованных финансов (DeFi) и NFT[5].
В оригинальном белой книге Ethereum, опубликованной Виталиком Бутериным в 2014 году[6], протокол Биткойна рассматривался как слабая версия концепции смарт-контрактов по определению Ника Сабо, а на её основе предлагалась более совершенная версия на языке Solidity, обладающем Тьюринг-полнотой. С тех пор различные криптовалюты поддерживают языки программирования, позволяющие реализовывать более сложные смарт-контракты между недоверенными сторонами[7].
Смарт-контракты не следует путать со смарт-легальными контрактами, которые представляют собой традиционные, юридически обязывающие соглашения, некоторые условия которых выполняются и выражены в машинно-исполняемом коде[8][9][10].
Этимология
К 1996 году Ник Сабо употреблял термин «смарт-контракт» применительно к контрактам, исполнение которых обеспечивалось физическим имуществом (например, аппаратурой или программным обеспечением), а не юридическими механизмами. Сабо приводил в качестве примера торговые автоматы[11][12]. В 1998 году термин использовался для описания объектов в слое управления цифровыми правами системы The Stanford Infobus, входившей в состав проекта Stanford Digital Library Project[1].
История и развитие
В 2023 году экосистема смарт-контрактов показала значительный рост, несмотря на общие негативные тенденции на криптовалютном рынке. Во втором квартале 2023 года наблюдался рост числа верифицированных (проверенных) смарт-контрактов, что свидетельствовало о продолжающейся активности разработчиков и спросе на решения на основе блокчейна[13]. Лидирующие позиции по количеству развернутых верифицированных смарт-контрактов заняли BNB Chain со средней долей рынка 46,5 % и Ethereum с долей 31,3 %[13].
Тенденция роста продолжилась и в 2024 году. По данным DappRadar, к 2024 году объём транзакций, проходящих через смарт-контракты, превысил 178 миллиардов долларов, в то время как в 2020 году этот показатель составлял 21 миллиард долларов. Этот рост отражает всё более широкое внедрение технологии в различных секторах, включая финансы, управление цепочками поставок и игровую индустрию (GameFi)[14].
Ключевыми технологическими трендами периода 2023—2024 годов стали развитие решений для масштабирования и интеграция с новыми технологиями. Для решения проблемы масштабируемости сетей, таких как Ethereum, широкое распространение получили решения второго уровня (Layer 2), в частности zkSync, Optimism и Arbitrum[15]. Это позволило сделать транзакции быстрее и дешевле, что способствовало росту их количества[15]. Одновременно наметилась тенденция к интеграции смарт-контрактов с искусственным интеллектом (ИИ). Разработчики начали исследовать применение ИИ для повышения безопасности, оптимизации обработки данных и упрощения операций в блокчейне[16][17], хотя эксперты отмечали, что объединение этих технологий является дорогостоящим из-за высоких вычислительных затрат[18].
В области языков программирования Solidity сохранил доминирующее положение для EVM-совместимых блокчейнов, в то время как Rust укрепил свои позиции в качестве второго по популярности языка, используемого на платформах Solana и NEAR Protocol[19]. Также некоторые платформы анонсировали планы по переходу на WebAssembly (Wasm) для расширения возможностей разработчиков[20].
Юридический статус смарт-контрактов
Смарт-контракт обычно не считается юридически обязывающим соглашением согласно законам государства или иной юрисдикции[21]. Существуют предложения по регулированию смарт-контрактов[8][9][10].
Смарт-контракты не являются юридическими соглашениями, а представляют собой транзакции, которые исполняются автоматически посредством компьютерной программы или протокола транзакций[21], применяемых, в частности, для автоматизации платежных обязательств посредством перевода криптовалюты или других токенов[22]. Некоторые исследователи утверждают, что императивный или декларативный стиль языков программирования может влиять на юридическую валидность смарт-контрактов[23].
В отдельных странах обсуждаются вопросы взаимодействия жёстко заданных смарт-контрактов с традиционными концепциями гражданского права, например с теорией непредвиденных обстоятельств. Так, в колумбийской юридической науке предложено модифицировать эту теорию для учёта высоких экономических и системных издержек при обратимости смарт-контрактов посредством судебного вмешательства[24].
С момента запуска блокчейна Ethereum в 2015 году термин «смарт-контракт» применяется к вычислениям общего назначения на основе блокчейна. Национальный институт стандартов и технологий США определяет смарт-контракт как «набор кода и данных (иногда называемых функциями и состоянием), размещённых посредством криптографически подписанных транзакций в блокчейн-сети»[25]. В таком понимании смарт-контрактом может называться любая программа, использующая блокчейн. Смарт-контракт можно рассматривать и как защищённую хранимую процедуру, исполнение которой и запрограммированные последствия (например, пересылка токенов между сторонами) невозможно изменить без изменения самой цепочки блоков[26][27].
В 2018 году доклад Сената США отмечал: «Хотя смарт-контракты могут показаться новой идеей, они основаны на базовых принципах договорного права. Как правило, судебная система урегулирует споры по контрактам и обеспечивает их исполнение, однако часто используется и альтернативный арбитраж, особенно в международных отношениях. В случае смарт-контрактов контракт исполняет программа, встроенная в код»[28]. Законы об использовании смарт-контрактов приняты в таких штатах США, как Аризона[29], Айова[30], Невада[31], Теннесси[32] и Вайоминг[33].
В апреле 2021 года в Великобритании рабочая группа UK Jurisdiction Taskforce опубликовала «Правила разрешения цифровых споров», предназначенные для быстрого урегулирования правовых вопросов, связанных с блокчейном и крипто-спорами[34].
В 2021 году Комиссия по праву Англии и Уэльса рекомендовала признавать и обеспечивать исполнение смарт-легальных контрактов в рамках существующего права Англии и Уэльса[35].
В России отсутствует чёткое юридическое определение понятия «смарт-контракт»[36][37]. Вместо этого законодательство легализовало сам механизм их работы. Поправками в Гражданский кодекс РФ, внесёнными в 2019 году, было установлено, что условиями сделки может быть предусмотрено автоматическое исполнение обязательств при наступлении определённых обстоятельств (статья 309 ГК РФ)[38][39]. Также была признана возможность заключения договора в письменной форме с помощью электронных или иных технических средств (статья 160 ГК РФ)[40]. Федеральный закон «О цифровых финансовых активах» (№ 259-ФЗ) упоминает смарт-контракты в контексте сделок с ЦФА[41].
На уровне Европейского союза в 2023 году был принят «Закон о данных» (Data Act), который вступил в силу в январе 2024 года и начнёт применяться с сентября 2025 года[42]. Этот акт устанавливает требования к смарт-контрактам, используемым для обмена данными, в частности, они должны включать механизмы безопасного прекращения или прерывания исполнения[43].
В июле 2024 года Комиссия ООН по праву международной торговли (ЮНСИТРАЛ) приняла Типовой закон об автоматизированном заключении договоров. Документ направлен на снижение правовой неопределённости и создание основы для признания сделок, совершаемых с помощью автоматизированных систем, включая смарт-контракты и искусственный интеллект[44].
Работа смарт-контрактов
Аналогично переводу стоимости в блокчейне, развертывание смарт-контракта происходит посредством отправки транзакции с кошелька в сеть блокчейн[45]. Транзакция включает скомпилированный код смарт-контракта и специальный адрес получателя[45]. Эта транзакция должна быть включена в блок сети блокчейн, после чего код смарт-контракта выполнится для установления его первоначального состояния[45]. Безопасность смарт-контракта обеспечивается в децентрализованной среде через византийские алгоритмы отказоустойчивости. После размещения смарт-контракт не может быть изменён[46]. Смарт-контракты могут хранить произвольное состояние и выполнять любые вычисления; взаимодействие выполняется через транзакции, которые могут вызывать другие смарт-контракты и изменять состояние или переводить токены между смарт-контрактами или между счетами[46].
Наиболее популярным блокчейном для запуска смарт-контрактов является Ethereum[47].. В Ethereum смарт-контракты обычно разрабатываются на языке Solidity с поддержкой Тьюринг-полноты[48], компилируются в байт-код, который исполняет Виртуальная машина Ethereum[49]. Solidity сохраняет доминирующее положение для EVM-совместимых блокчейнов, в то время как Rust укрепил свои позиции в качестве второго по популярности языка, используемого на платформах Solana и NEAR Protocol. Тьюринг-полнота считается рискованной с точки зрения безопасности и по этой причине избегается в некоторых языках, таких как Vyper[50][51], который ориентирован на повышенную безопасность[52]. К другим языкам смарт-контрактов, не имеющим тьюринг-полноты, относятся Simplicity, Scilla, Ivy и Bitcoin Script[51]. По замерам 2020 года при анализе 53 757 смарт-контрактов Ethereum только 35,3 % содержали рекурсии и циклы — конструкции, связанные с проблемой остановки[53].
Ряд языков разрабатываются с целью обеспечения формальной верификации, среди которых Bamboo, IELE, Simplicity, Michelson (может быть верифицирован с помощью Rocq)[51], Liquidity (компилируется в Michelson), Scilla, DAML и Pact[50].
Для решения проблемы масштабируемости сетей, таких как Ethereum, и снижения стоимости транзакций широкое распространение получили решения второго уровня (Layer 2), в частности zkSync, Optimism и Arbitrum. Они позволяют обрабатывать транзакции вне основной цепи, делая их быстрее и дешевле. Одновременно усилился тренд на создание гибридных смарт-контрактов, которые объединяют исполняемый код в блокчейне (on-chain) с внешними данными и вычислениями (off-chain)[54]. В этом ключевую роль играют оракулы — сервисы, поставляющие смарт-контрактам проверенную информацию из реального мира. Развитие сетей оракулов, таких как Chainlink, делает смарт-контракты более функциональными[55].
Среди новейших тенденций выделяется интеграция смарт-контрактов с искусственным интеллектом (ИИ). Разработчики исследуют применение ИИ для повышения безопасности, оптимизации обработки данных и упрощения операций в блокчейне. Однако объединение этих технологий остаётся дорогостоящим из-за высоких вычислительных затрат. Другим направлением развития стала поддержка WebAssembly (Wasm), которая позволяет запускать код, написанный на различных языках программирования, что расширяет возможности для разработчиков.
| Название | Описание |
|---|---|
| Ethereum | Реализует тьюринг-полный язык в собственном блокчейне; служит одной из основных платформ для смарт-контрактов |
| Bitcoin | Предоставляет тьюринг-неполный язык сценариев, позволяющий создавать пользовательские смарт-контракты, такие как мультиподписные счета, платёжные каналы, эскроу, замки по времени, атомарный обмен между цепочками, оракулы и беспосреднические многопользовательские лотереи. |
| Cardano | Блокчейн-платформа для смарт-контрактов |
| Solana | Блокчейн-платформа для смарт-контрактов |
| Tron | Блокчейн-платформа для смарт-контрактов |
| Tezos | Блокчейн-платформа для смарт-контрактов |
| Avalanche | Блокчейн-платформа для смарт-контрактов |
Процессы в блокчейне обычно детерминированы для обеспечения устойчивости к византийским ошибкам[56]. Однако в реальных приложениях смарт-контрактов, например в лотереях или онлайн-казино, для функционирования необходима защищённая случайность[57]. Случайность в блокчейне может реализовываться через хэши блоков, метки времени, оракулы, схемы с обязательством, специальные смарт-контракты (например, RANDAO[58][59] и Quanta), а также последовательности, полученные из смешанных стратегий равновесия по Нэшу[56].
Применение
В 1998 году Сабо предложил реализовать инфраструктуру смарт-контрактов на основе реплицируемых реестров активов и исполнения контрактов с применением криптографических хэш-цепочек и византийско-устойчивой репликации[60]. Этот подход был реализован в проекте Askemos в 2002 году[61][62] с использованием языка Scheme и (позднее) SQLite[63][64] в качестве языка написания контрактов[65].
Одним из предложений по использованию Биткойна для replicated asset registration и исполнения контрактов является проект Colored Coins[66]. Возможность реплицируемых титулов на любые виды собственности реализуется в разных проектах.
К 2015 году UBS проводил эксперименты с «смарт-облигациями», использующими блокчейн биткойна; в таких инструментах поток платежей мог быть полностью автоматизирован, превратив бумагу в «самооплачивающийся» инструмент[67][68].
Завещания на случай смерти могут, теоретически, реализовываться автоматически после регистрации свидетельства о смерти с помощью смарт-контрактов[69][70]. Также с помощью смарт-контрактов могут сочетаться свидетельства о рождении[71][72].
Крис Снук (Inc.com) и другие эксперты отмечают, что смарт-контракты могут применяться для оформления сделок с недвижимостью, учета имущественных прав и работы в публичных реестрах[73][74][75][76][77].
Сет Оранбург и Лия Палагашвили отмечали, что смарт-контракты могут использоваться в сфере трудовых договоров, особенно временных контрактов[78][79].
Одним из ключевых направлений применения смарт-контрактов в 2020-х годах стала токенизация реальных активов (Real-World Assets, RWA). Этот процесс представляет собой преобразование прав на физические или традиционные финансовые активы (недвижимость, акции, облигации) в цифровые токены на блокчейне. Смарт-контракты используются для автоматизации управления этими токенами, включая передачу прав собственности и выплату дивидендов, что повышает ликвидность традиционных активов и открывает новые рынки[80][81].
Технология находит всё более широкое применение в различных секторах, включая финансы, управление цепочками поставок и игровую индустрию (GameFi). В России крупные компании начали внедрять смарт-контракты в свою деятельность. Например, Сбербанк использовал технологию для автоматизации сделок с коммерческой недвижимостью и в торговом финансировании, а ВТБ в 2023 году представил сценарии использования смарт-контрактов на платформе цифрового рубля.
Вопросы безопасности
Данные транзакций смарт-контракта на базе блокчейна видны всем пользователям сети. Это обеспечивает криптографическую проверяемость операций, однако делает уязвимости и баги очевидными для всех, в то время как их исправление может быть затруднено[82]. Так, в июне 2016 года была реализована атака на The DAO, приведшая к хищению около 50 миллионов долларов в эфире, пока разработчики пытались договориться о способе возврата средств[83]. Эта программа имела временную задержку, позволявшую заблокировать вывод средств, и был проведён хардфорк Ethereum с возвратом средств до истечения временного лимита[84]. К другим крупным атакам относятся взломы мультиподписных кошельков Parity и атака через переполнение целого числа (2018), общий ущерб превысил 184 млн долларов[85].
Проблема уязвимостей остаётся актуальной. В 2023 году из-за ошибок в смарт-контрактах различных DeFi-протоколов было похищено более 500 млн долларов, а в 2024 году атаки на смарт-контракты составили более половины всех украденных средств в секторе Web3[86]. Одним из показательных примеров стала атака на игровое блокчейн-приложение PlayDapp в феврале 2024 года, когда из-за уязвимости в контроле доступа злоумышленник смог выпустить токенов на сумму около 290 миллионов долларов[86].
Основные проблемы смарт-контрактов Ethereum включают неточности и неочевидные конструкции в языке Solidity, ошибки компилятора и виртуальной машины, атаки на сеть, неизменяемость багов и отсутствие единого реестра известных уязвимостей и атак.
Отличие от смарт-легальных контрактов
Смарт-легальные контракты отличаются от смарт-контрактов: смарт-контракт по своей сути не обязательно юридически обязывающий. Смарт-легальный контракт включает все признаки контракта, признанные в соответствующей юрисдикции, и может быть исполнен судом или арбитражем. Таким образом, каждый смарт-легальный контракт содержит элементы смарт-контракта, но не каждый смарт-контракт является смарт-легальным контрактом[87].
В отрасли не существует формального и общепризнанного определения смарт-легального контракта[87].
Концептуальной основой для смарт-легальных контрактов служат рикардианские контракты[88]. Предложенная Иэном Григгом модель представляет собой документ, который одновременно является юридически обязывающим текстом для человека и машиночитаемым кодом для компьютера[89]. В отличие от чистого смарт-контракта, который является лишь кодом исполнения, рикардианский контракт фиксирует намерения сторон в понятной для юристов и суда форме[90]. Хотя в 2023—2024 годах не наблюдалось массового внедрения рикардианских контрактов, их принципы оказали влияние на развитие гибридных моделей[91][88].
Современной реализацией этого подхода стали гибридные смарт-контракты, объединяющие исполняемый код в блокчейне (on-chain) с внешними данными и вычислениями (off-chain). Ключевую роль в их функционировании играют оракулы — сервисы, которые поставляют в блокчейн проверенную информацию из реального мира (например, курсы валют, погодные условия, статусы поставок), делая исполнение контракта зависимым от внешних, юридически значимых событий. Таким образом, идея криптографической связи юридического текста с исполняемым кодом, заложенная в рикардианских контрактах, находит практическое применение в современных смарт-легальных контрактах[88].