16 апреля, 2024

Что такое смарт-контракты: теория со схемами и примерами

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

Что такое смарт-контракт простыми словами

Сегодня смарт-контракты (smart-контракты, умные контракты, интеллектуальные контракты) на слуху у всех, кто так или иначе интересуется блокчейном и криптовалютами

Простыми словами, смарт-контракт — алгоритм, позволяющий обмениваться активами при выполнении четко определенных условий, без посредников. 

Т.е. это программа, которая осуществляет определенные действия в ответ на выполнение заданных условий (по схеме “если…то…”).

Почему “умный”?

Вот что на это ответил автор идеи, криптограф-юрист Ник Сабо:

Я называю эти новые контракты «умными», потому что они гораздо более функциональны, чем их неодушевленные бумажные предки.

 

Умный контракт — это набор обещаний, определенных в цифровой форме, включая протоколы, в рамках которых стороны выполняют эти обещания”.

Разные взгляды на суть

С тех пор (а это были 90-е годы прошлого века) многие работают над раскрытием потенциала смарт-контрактов, как теоретически, так и на практике.

Вот еще несколько более современных определений смарт-контракта:

  • компьютерный алгоритм, предназначенный для формирования, контроля и предоставления информации о владении чем-либо. Чаще всего речь идет о применении технологии блокчейна (Википедия)
  • юридический договор или его элемент, который представлен или исполняется посредством ПО (юридическая точка зрения)
  •  это фрагмент кода, компьютерный алгоритм, созданный для выполнения конкретных задач при наступлении заблаговременно определенных условий (техническое определение).

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

Немного истории 

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

Смарт-контракты биткоина

С распространением блокчейна, эта идея обрела практический смысл. Некоторые принципы смарт-контрактов были воплощены в протоколе биткоина

Изначально протокол биткоина не предполагался как протокол смарт-контрактов — а лишь для передачи самых простых данных (входов и выходов транзакций, детально в статье). 

Однако, на блокчейне биткоина все же можно исполнять простейшие логические операции и фактически создать несколько вариантов смарт-контрактов, не обладавших полнотой по Тьюрингу (язык смарт-контрактов — Script, пример таких алгоритмов ниже). 

Полнота по Тьюрингу — важный параметр смарт-контракта в блокчейне. Это возможность смарт-контракта реализовать любую вычислимую функцию, что достигается бесконечной вложенностью одних контрактов в другие и/или специальными “вычислительными” блоками.

Примеры смарт-контрактов на блокчейне биткоина:

  • Эскроу — для использования средств нужна подпись третьего агента.
  • Мультисиг — транзакция может быть завершена только после подписи нескольких лиц из заданного количества “владельцев” контракта, количество и адреса участников заранее определены в момент создания такого кошелька.
  • Завещание — если кошелек не активен, наследники получают средства (вернее — владелец адреса тратит в любое время, а вот наследники могут потратить выходы из кошелька только после блока с определенной датой, каждая новая транзакция пересылает сдачу с продлением этого срока)
  • Сейф — к средствам нет доступа до определенной даты.
  • Атомарные свопы и скрипты создания платежных каналов — лайер 2 и децентрализованные обменники.

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

Смарт-контракты Ethereum

Потенциал смарт-контрактов и недочеты BTC оценил в свое время Виталик Бутерин. Он разработал платформу Ethereum, позволяющую создавать тьюринг-полные смарт-контракты.

Основные отличия — язык программирования Solidity и возможность хранить в блокчейне информацию о состоянии (statefulness). Т.е. сеть Ethereum воспринимает каждую транзакцию как часть системы, в то время как биткоин — как совершенно отдельную.

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

Сегодня многие проекты разрабатывают свои платформы для смарт-контрактов (Tron, NEO, EOS, Hyperledger Fabric, Aeternity, Waves, Ontology, VeChain, Stellar), которые отличаются алгоритмом консенсуса, пропускной способностью, стоимостью обработки транзакций и функциональностью. 

Однако Ethereum со стандартом ERC-20 и по сей день остается самой востребованной платформой. 

Виды смарт-контрактов 

Рассмотрим, как смарт-контракты классифицируют по нескольким критериям.

  1. Среда выполнения: 
  • централизованные смарт-контракты (действуют на централизованной платформе, с одним валидатором, реестр находится на одном сервере. Пример: контракты провайдеров мобильной связи или банков);
  • децентрализованные (созданные в блокчейн).

2. Процесс постановки задач и выполнения условий смарт-контракта:

  • произвольно программируемые (тьюринг-полные);
  • ограниченные (тьюринг-неполные);
  • предустановленные (строго типизированные).

3. Уровень приватности (касательно условий смарт-контракта):

  • полностью открытые;
  • частично открытые;
  • полностью конфиденциальные. 

Как работают смарт-контракты в блокчейне

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

Элементы смарт-контрактов:

  1. Платформа, в которой написан алгоритм (например, Ethereum).
  2. Предмет — активы, подлежащие обмену на основании смарт-контракта (товары, услуги, крипта, данные).
  3. Условия, которые необходимо выполнить для осуществления обмена.
  4. Стороны, участвующие в обмене, имеющие уникальную цифровую подпись. 
  5. Оракулы (по необходимости) — независимые источники внешней информации.

 Характерные черты смарт-контрактов:

  1. Распределенность (они реплицированы и распределены по всем узлам сети).
  2. Детерминированность (четкий алгоритм действий и всегда предсказуемый результат). 
  3. Автономность (после инициирования условия выполняются автоматически, без решения посредников). 
  4. Неизменность (обычно после создания в них нельзя внести изменения). 
  5. Настраиваемость (в процессе создания можно прописать любой вычислимый алгоритм). 
  6. Доверительность (стороны доверяют протоколу, ведется учет всех данных). 
  7. Прозрачность (в основном, исходный код открыт. Бывают и исключения — MAST — но после выполнения код все равно открывается). 

Схема работы смарт-контрактов

Часто смарт-контракт активируется лицом, которое хочет осуществить обмен. Корректное соблюдение условий смарт-контракта подтверждается узлами сети. 

Технологию смарт-контракта схематически можно изобразить так:

  1. Лицо инициирует транзакцию.
  2. Информация о ней попадает в сеть, состоящую из нод (узлов сети блокчейн).
  3. Ноды, на основании определенных алгоритмов консенсуса, подтверждают информацию о статусе инициатора и саму транзакцию.
  4.  После подтверждения транзакция попадает в состав нового формирующегося блока, который включает другие транзакции.
  5. Новый блок присоединяется к цепи блоков (блокчейну).
  6. Транзакция завершена.

Применение смарт-контрактов

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

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

Схема применения (например, приобретение электронной книги за криптовалюту):

  1. По условиям смарт-контракта, доступ к книгам открывается после оплаты определенного количества монет.
  2. Покупатель инициирует запрос на получение доступа к книге и отправляет монеты
  3. Узлы, получив информацию от сторон, проверяют соблюдение условий контракта (статус сторон, права сторон на владение активами, соответствие суммы монет) и подтверждают транзакции при соблюдении условий.
  4. Эти транзакции попадают в блок, а затем — в сеть.
  5. Транзакции завершены: продавец получает монеты, покупатель — доступ к книге.

Пока самым успешным примером применения смарт-контрактов можно назвать ICO (первичное предложение монет). Кроме того, смарт-контракты активно применяются на рынке децентрализованных финансов (DeFi), токенизации активов, обработки платежей для dApps и DEX, в играх и мобильных приложениях.

Большинство ICO используют смарт-контракты на платформе Ethereum.

Условия функционирования смарт-контрактов

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

  • Во-первых, нужна среда — блокчейн, т.е. распределенный реестр данных, на базе которого будет создаваться смарт-контракт, и прочая инфраструктура.
  • Во-вторых, важно распространение криптовалюты как платежного средства (пока никакое другое не подходит) и повышение доверия к ней. Смарт-контракты криптовалюту используют как “топливо”, расчетную единицу.
  • В-третьих, необходимо расширить круг лиц, имеющих доступ и возможности использовать смарт-контракты.
  • И в-четвертых, нужно правовое регулирование использования: смарт-контракты, криптовалюты являются предметом правового регулирования, которое только зарождается

Плюсы и минусы смарт-контрактов

Так что же делает смарт-контракты такими перспективными и востребованными?

И что, в то же время, мешает им “захватить мир”?

ПлюсыМинусы
Независимость (отсутствие посредников)Репутация (нет полноценного доверия общества)
Безопасность (вся информация надежно хранится в блокчейн в зашифрованном виде) Юридический статус (неурегулированность законом мешает внедрению в разные сферы жизни)
Безошибочность (нет человеческого фактора, высокая точность исполнения)Риск ошибок в коде, юридическая корректность оцифровки условий контракта
Скорость (автоматизированные процессы происходят практически мгновенно)Сложность реализации (интеграция высоких технологий во все сферы жизни пока слишком ресурсозатратна)
Экономия (нет операционных расходов и посредников, кроме платы за газ)Расчеты в криптовалюте (крипта не признана законным платежным средством)
Прозрачность (все условия и результаты заранее известны)Оракулы (потребность в надежных внешних источниках информации)
Неизменяемость (нельзя внести изменения в уже созданный контракт)Неизменяемость (отсутствие гибкости условий, невозможность исправления ошибки)

Создание и разработка смарт-контрактов

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

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

Для начала, исходя из целей проекта, нужно выбрать децентрализованную платформу для создания смарт-контракта (Ethereum, Tron, Lisk, Cardano, Hyperledger Fabric, Nem, Stellar, NEO, Ontology …).

Основные языки программирования для смарт-контрактов: JavaScript, Solidity, Fe, Rust, Vyper, Script, Serpent.

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

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

Итог

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

Пока применение смарт-контрактов в повседневной жизни ограничивается техническими, юридическими и социальными факторами.

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

Поделиться

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *