Все, что вы хотели знать о смарт-контрактах, их сути, видах, особенностях создания и применения на практике.
Что такое смарт-контракт простыми словами
Сегодня смарт-контракты (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 и по сей день остается самой востребованной платформой.
Виды смарт-контрактов
Рассмотрим, как смарт-контракты классифицируют по нескольким критериям.
- Среда выполнения:
- централизованные смарт-контракты (действуют на централизованной платформе, с одним валидатором, реестр находится на одном сервере. Пример: контракты провайдеров мобильной связи или банков);
- децентрализованные (созданные в блокчейн).
2. Процесс постановки задач и выполнения условий смарт-контракта:
- произвольно программируемые (тьюринг-полные);
- ограниченные (тьюринг-неполные);
- предустановленные (строго типизированные).
3. Уровень приватности (касательно условий смарт-контракта):
- полностью открытые;
- частично открытые;
- полностью конфиденциальные.
Как работают смарт-контракты в блокчейн
Смарт-контракт представляет собой приложение (или программу), созданное и работающее в блокчейн. Это цифровое соглашение, в котором соблюдение определенного условия всегда приводит к одному результату — обмену активами, правами, данными.
Элементы смарт-контрактов:
- Платформа, в которой написан алгоритм (например, Ethereum).
- Предмет — активы, подлежащие обмену на основании смарт-контракта (товары, услуги, крипта, данные).
- Условия, которые необходимо выполнить для осуществления обмена.
- Стороны, участвующие в обмене, имеющие уникальную цифровую подпись.
- Оракулы (по необходимости) — независимые источники внешней информации.
Характерные черты смарт-контрактов:
- Распределенность (они реплицированы и распределены по всем узлам сети)
- Детерминированность (четкий алгоритм действий и всегда предсказуемый результат).
- Автономность (после инициирования условия выполняются автоматически, без решения посредников).
- Неизменность (обычно после создания в них нельзя внести изменения).
- Настраиваемость (в процессе создания можно прописать любой вычислимый алгоритм).
- Доверительность (стороны доверяют протоколу, ведется учет всех данных).
- Прозрачность (в основном, исходный код — открыт. Бывают и исключения — MAST — но после выполнения код все равно открывается).
Схема работы смарт-контрактов
Часто смарт-контракт активируется лицом, которое хочет осуществить обмен. Корректное соблюдение условий смарт-контракта подтверждается узлами сети.
Технологию смарт-контракта схематически можно изобразить так:
- Лицо инициирует транзакцию
- Информация о ней попадает в сеть, состоящую из нод (узлов сети блокчейн)
- Ноды, на основании определенных алгоритмов консенсуса, подтверждают информацию о статусе инициатора и саму транзакцию.
- После подтверждения транзакция попадает в состав нового формирующегося блока (который включает другие транзакции)
- Новый блок присоединяется к цепи блоков (блокчейн)
- Транзакция завершена
Применение смарт-контрактов
Сегодня мы наблюдаем зарождение эры смарт-контрактов. Потенциал и преимущества позволяют внедрять их в сферах, где требуется четкое, прозрачное и оперативное выполнение простых рутинных задач, для которых не нужно дорогостоящее юридическое сопровождение.
Например, контроль поставок (логистика), интернет-продажи, ведение реестров (регистрация прав собственности,медицинские карты), ряд банковских услуг (например, клиринг), бухгалтерский учет, страхование, голосование, идентификация личности и проч. Т.е. сферы, где рутинную работу клерка можно успешно автоматизировать, убрав риски человеческого фактора.
Схема применения (например, приобретение электронной книги за криптовалюту):
- По условиям смарт-контракта, доступ к книгам открывается после оплаты определенного количества монет.
- Покупатель инициирует запрос на получение доступа к книге и отправляет монеты
- Узлы, получив информацию от сторон, проверяют соблюдение условий контракта (статус сторон, права сторон на владение активами, соответствие суммы монет) и подтверждают транзакции при соблюдении условий.
- Эти транзакции попадают в блок, а затем — в сеть.
- Транзакции завершены: продавец получает монеты, покупатель — доступ к книге.
Пока самым успешным примером применения смарт-контрактов можно назвать ICO (первичное предложение монет). Кроме того, смарт-контракты активно применяются на рынке децентрализованных финансов (DeFi), токенизации активов, обработки платежей для dApps и DEX, в играх и мобильных приложениях.
Большинство ICO используют смарт-контракты на платформе Ethereum.
Условия функционирования смарт-контрактов
Чтобы смарт-контракты можно было широко применять в реальной жизни, для них необходимо создать определенные условия.
- Во-первых, нужна среда — блокчейн, т.е. распределенный реестр данных, на базе которого будет создаваться смарт-контракт, и прочая инфраструктура.
- Во-вторых, важно распространение криптовалюты как платежного средства (пока никакое другое не подходит) и повышение доверия к ней. Смарт-контракты криптовалюту используют как “топливо”, расчетную единицу.
- В-третьих, необходимо расширить круг лиц, имеющих доступ и возможности использовать смарт-контракты.
- И в-четвертых, нужно правовое регулирование использования: смарт-контракты, криптовалюты являются предметом правового регулирования, которое только зарождается.
Плюсы и минусы смарт- контрактов
Так что же делает смарт-контракты такими перспективными и востребованными?
И что, в то же время, мешает им “захватить мир”?
Плюсы | Минусы |
Независимость (отсутствие посредников) | Репутация (нет полноценного доверия общества) |
Безопасность (вся информация надежно хранится в блокчейн в зашифрованном виде) | Юридический статус (неурегулированность законом мешает внедрению в разные сферы жизни) |
Безошибочность (нет человеческого фактора, высокая точность исполнения) | Риск ошибок в коде, юридическая корректность оцифровки условий контракта |
Скорость (автоматизированные процессы происходят практически мгновенно) | Сложность реализации (интеграция высоких технологий во все сферы жизни пока слишком ресурсозатратна) |
Экономия (нет операционных расходов и посредников, кроме платы за газ) | Расчеты в криптовалюте (крипта не признана законным платежным средством) |
Прозрачность (все условия и результаты заранее известны) | Оракулы (потребность в надежных внешних источниках информации) |
Неизменяемость (нельзя внести изменения в уже созданный контракт) | Неизменяемость (отсутствие гибкости условий, невозможность исправления ошибки) |
Создание и разработка смарт-контрактов
Для того, чтобы создать собственный смарт-контракт, можно либо воспользоваться услугами профессиональных программистов, либо попробовать сделать это самостоятельно.
В интернете можно найти пошаговые инструкции для разработки смарт-контракта, но без базовых знаний программирования все-таки не обойтись.
Для начала, исходя из целей проекта, нужно выбрать децентрализованную платформу для создания смарт-контракта (Ethereum, Tron, Lisk, Cardano, Hyperledger Fabric, Nem, Stellar, NEO, Ontology …).
Основные языки программирования для смарт-контрактов: JavaScript, Solidity, Fe, Rust, Vyper, Script, Serpent.
Обычно на платформах смарт-контрактов есть готовые шаблоны, т.е. не придется полностью писать программный код. Достаточно будет ввести параметры сделки в специально отведенные поля и подтвердить ее исполнение.
Прежде чем использовать написанный код, важно протестировать его для обнаружения различных багов и скрытых уязвимостей.
Итог
Итак, смарт-контракт — это гибрид соглашения и кода, алгоритм, по которому при выполнении определенного условия автоматически, без участия третьих лиц, наступают конкретные последствия.
Пока применение смарт-контрактов в повседневной жизни ограничивается техническими, юридическими и социальными факторами.
Но уже очевидно, что у смарт-контрактов есть будущее. Возможно, они станут революцией в мире управления и финансов. Или просто автоматизируют стандартные процедуры. Так или иначе, потенциал этой технологии дает пространство для новых идей.
Добавить комментарий