Смарт-контракты: создание, возможности, перспективы

6 лет назад
Смарт-контракты

В 2008 году человек под псевдонимом Сатоши Накамото выложил в публичный доступ концепцию виртуальной цифровой валюты Bitcoin. Казалось бы, что может быть еще более удивительным, чем деньги, работающие в виртуальной среде, не эмитируемые и не управляемые одной личностью или компанией?

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

Что такое смарт-контракт

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

Создатель первой платформы для исполнения смарт-контрактов Ethereum, Виталик Бутерин, описывает работу умных контрактов так:

«Актив вводится в программу, и она сама следит за выполнением условий договора» 

Виталик Бутерин

История возникновения и развития смарт-контрактов

История возникновения смарт контракта

В 1994 году американский разработчик и ученый в области информатики Ник Сцабо предложил использовать программные алгоритмы для заключения прямых договоров между покупателем и продавцом в сфере электронной коммерции. А в 1998 году он оформил свои наработки в  в работу под названием «Bitgold». Однако на практике работу смарт-контрактов в то время не удалось реализовать, так как не было основного —  среды для их функционирования, т.е. блокчейна.

Ник Сцабо — «прародитель» смарт-контрактов 

Впервые это стало возможным в 2008 году, когда Сатоши Накамото представил свой проект Bitcoin. Мало кто знает, что у Bitcoin есть возможность реализации смарт-контрактов. Однако эта функция развита достаточно слабо, так как биткоин, прежде всего, является платежной системой.

Последний факт подтолкнул молодого, но очень амбициозного разработчика Виталика Бутерина в 2013 году создать «с нуля» уникальную платформу, которая была бы максимально удобной для реализации смарт-контрактов. Так родилась криптовалюта Ethereum. А затем эту идею стали использовать EOS, криптовалюта NEO, криптовалюта Cardano и другие блокчейн-проекты.

Объекты умных контрактов и условия для работы

Любой смарт-контракт должен обладать следующими атрибутами:

  • Подписанты — стороны умного контракта (как минимум два участника), которые участвуют в процессе подписания контракта или отказа от прописанных условий путем использования цифровых подписей;
  • Предмет контракта — предметом смарт-контракта может выступать только объект, который находится в самой децентрализованной сети или на других источниках, к которым программа может получить доступ без привлечения человека. Именно отсутствие этого атрибута не позволяло реализовать смарт-контракты в 1998 году, так как в то время еще не была сформирована и разработана концепция блокчейна как виртуальной децентрализованной среды;
  • Условия контракта — условия выглядят в виде математического описания, которое должно быть запрограммировано в рабочей среде самого смарт-контракта. Прописываются согласно алгоритму «если….то»;
  • Децентрализованная платформа — данные о каждом смарт-контракте должны записываться и храниться в распределенном реестре.

Смарт-контракты смогут выполняться, только если будут созданы определенные условия:

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

Как работают смарт-контракты   

Технология блокчейн

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

Схема работы «умных» подобна работе автомата с тем отличием, что они выполняются в виртуальной среде:

  1. Пользователь А создает транзакцию (сделку), в коде которой прописано, что пользователь В получит набор конфет, если отправит пользователю А 10 монет.
  2. Транзакция отправляется в децентрализованную сеть, которую обслуживают узлы. После того как она подтверждена участниками смарт-контракта, она не поддается редактированию или удалению.  
  3. После выполнения условий контракта пользователем В (перевод пользователю А 10 монет), к пользователю В приезжает коробка с конфетами, при этом пользователь А пока что не получил оплату за товар, она находится в «замороженном» состоянии.
  4. Если же ноды (узлы) не подтвердят перевод 10 монет пользователем В, то коробка конфет к нему так и не приедет и, более того, он должен будет понести наказание, если это прописано в условиях смарт-контракта. Те же санкции могут применяться и к пользователю А, если он, например, пришлет не те конфеты, которые были прописаны в условиях контракта.
  5. Вся информация об успешно/неудачно проведенной транзакции записывается в распределенном реестре.

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

Еще лучше разобраться с тем, как работают смарт-контракты, вы сможете, посмотрев наше видео:

Принцип работы смарт-контрактов

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

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

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

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

  • Пересылку монет между кошельками называют переводами;
  • Транзакции, которые активируют смарт-контракты — сообщениями.

Создавать «умные контракты» Эфириума может любой участник сети, у которого достаточно баланса на оплату этой операции (до 0,3 ETH). Для этого в блокчейн отправляется транзакция без указания адресата, но обязательно с комиссией и скомпилированным кодом будущего контракта.

За отправку сообщения смарт-контракту Ethereum и вызов записанной в нем функции тоже взимаются комиссионные. Если же в транзакции была указана слишком низкая комиссия, выполнение «умного» контракта будет аннулировано.

Основная область использования смарт-контрактов Эфириума — организация работы тысяч dApps, а также сборов средств в рамках ICO блокчейн-проектов.

Вот так, например, выглядит код смарт-контракта, с помощью которого проводится первичное предложение условных токенов EasyCoin со стартом 90-дневной распродажи 10 октября 2019 (дата в UNIX-формате):

contract Crowdsale { address owner; EasyCoin public token = new EasyCoin (); uint start = 1570669200; uint period = 90; function Crowdsale() { owner = msg.sender; } function() external payable { require(now > start && now < start + period*24*60*60); owner.transfer(msg.value); token.mint(msg.sender, msg.value); } }

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

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

Платформы для создания смарт-контрактов

Платформы для разработки смарт-контрактов

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

Ethereum

Виталик Бутерин, создатель Ethereum

Первая и на сегодняшний день самая используемая блокчейн-платформа, полноценно поддерживающая возможность создания «умных» контрактов. Благодаря гибкости системы и использованию Тьюринг-полного языка программирования Solidity, можно создавать смарт-контракты любого уровня сложности.

Пропускная способность, необходимая для работы всех существующих на базе «умных» контрактов Эфириума dApps, обеспечивается оборудованием огромного количества участников сети.

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

EOS

EOS

На сегодняшний день является второй платформой для смарт-контрактов по количеству созданных dApps и первой по числу активных запросов к ним. Запущена в 2018 году компанией Block.one. Основными преимуществами являются высокая пропускная способность, масштабируемость, параллельные вычисления, поддержка привычного для многих программистов языка C++ и отсутствие комиссий для пользователей приложений.

Но для разработчиков смарт-контракты EOS обходятся недешево, поскольку они обязаны покупать у системы вычислительные ресурсы — сетевой трафик (NET), процессорные мощности (CPU) и оперативную память (RAM). Они тратятся на развертывание контрактов и создание новых аккаунтов пользователей, взаимодействующих с ними.

TRON

Создатель TRON

Платформа, в своей основе похожая на блокчейн Эфириума, но существенно усовершенствованная, в частности в области разработки и использования смарт-контрактов. Запущена в 2017 году китайским блокчейн-предпринимателем Джастином Саном.

Как и в случае с Ethereum «умные контракты» пишутся на языке Solidity, а их исполнение происходит в виртуальной машине (TVM).

☝️
Основное отличие — нулевые комиссии, изначальная ориентация на развлекательный контент и пропускная способность до 2 тыс. транзакций в секунду.

Важная особенность — возможность переноса уже существующих dApps из сети Эфириума на платформу TRON.

Hyperledger Fabric

Запущенный в 2015 году проект компании Linux Foundation, ориентированный на разработку смарт-контрактов для бизнеса. Основной язык программирования — Go (отличается высокой скоростью компиляций), но также имеется возможность использования Java и JavaScript.

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

Платформа характеризуется наличием повышающих безопасность приватных каналов и высокой пропускной способностью.

Stellar

Stellar

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

Основные преимущества Stellar состоят в практически бесплатных транзакциях ($0,01/ 100000 шт.) и быстрой скорости их подтверждения (~5 сек.). Еще одна особенность — возможность участия в сделке на базе «умного» контракта более двух сторон, которые подтверждают свои действия транзакциями.

Небольшие недостатки также присутствуют —ограниченность функционала и довольно сложная инструкция для разработчиков смарт-контрактов.

NEO

Китайская платформа, изначально разрабатываемая в качестве альтернативы Ethereum. Поддерживает написание смарт-контрактов на многих языках программирования. Как и у Эфириума, средой для их выполнения является виртуальная машина (NVM), а за развертывание смарт-контрактов и взаимодействие с ними взимается плата. Но при этом газ (GAS) является отдельной криптовалютой, которая выплачивается пользователям в качестве вознаграждения за холд криптовалюты NEO.

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

Кроме перечисленных платформ, интерес сообщества разработчиков смарт-контрактов пытаются привлекать проекты Next, NEM, Qtum и Cardano. Однако, пока что количество реальных dApps в этих сетях ничтожно мало по сравнению с Ethereum, Tron и EOS.

Отличия смарт-контрактов от обычных договоров

Смарт-контракты и обычные договора

Если сравнивать традиционные сделки и исполняемые в виртуальной среде через смарт-контракты, почти по всем возможным параметрам выигрывают последние:

  • Безопасность. Вся история исполнения «умных» контрактов хранится в блокчейне, не может быть удалена и изменена, тогда как традиционные договора довольно часто подделываются или составляются с выгодой для одной из сторон вследствие взяточничества;
  • Посредники. Для оформления обычных документов всегда нужно обращаться за помощью к специалистам (юристам, нотариусам и т.д.). Также нужны посредники, которые будут контролировать исполнение сделки и в случае необходимости применять наказание к ее участникам (суд). Для использования смарт-контрактов не нужны сторонние гаранты — все роли на себя берет компьютерный код. Он сам отслеживает действия участников и выдает нужный результат только, если все будет четко соответствовать прописанным условиям (никаких двусмысленных трактовок);
  • Надежность. Копия однажды исполненного смарт-контракта хранится сразу на всех узлах децентрализованной сети. В свою очередь бумажный документ может быть утерян, в том числе и его электронная копия, например, из-за атаки на сервера госорганов;
  • Время и усилия. Для выполнения «умного» контракта нужно сделать всего пару кликов мышкой, в то время как обычные договора требуют посещения разных инстанций и длительной подготовки в виде сбора справок и копий документов.

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

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

Недостатки смарт контрактов

«Умные» контракты обладают неоспоримыми преимуществами:

  • Независимость — не нужно искать специалиста, который будет выступать посредником/гарантом выполнения сделки;
  • Безопасность — смарт-контракт хранится в блокчейне и не поддается изменению или удалению;
  • Надежность — копия есть у каждого узла сети, поэтому «умный» контракт невозможно потерять или повредить, как это может произойти с обычным бумажным документом;
  • Экономия средств — не нужно оплачивать дорогие услуги специалистов (юристов, страховых агентов и т.д.), за проведения участники должны будут лишь уплатить небольшую комиссию, который получают ноды, обслуживающие сеть;
  • Экономия времени — потребуется несколько минут, чтобы провести сделку, даже самую серьезную и сложную. Не нужно посещать различные инстанции, делать копии документов и получать справки — достаточно лишь произвести пару кликов мышкой.

Однако смарт-контракты не лишены и минусов:

  • Баги и ошибки — программист может допустить ошибку, прописывая код смарт-контракта, и в этом случае он не будет выполнен;
  • Недостаточный уровень блокчейн-образования — смарт-контракты — пока что достаточно новое понятие, знакомое лишь технически продвинутым людям;
  • Невозможность внесения изменений — это тот случай, когда достоинство одновременно является и недостатком. Условия смарт-контракта не подлежат корректировке, поэтому в случае изменения обстоятельств или появления устных договоренностей их нельзя будет дополнительно внести в существующий «умный» контракт, остается лишь заключать новый;
  • Сложность решения спорных ситуаций — как правило, спорные вопросы юридических сделок, оформленных на бумаге, решаются в суде. Однако смарт-контракты пока что не имеют никакой нормативной базы, поэтому суд, скорее всего, не возьмется рассматривать споры, возникшие в результате проведения сделки посредством смарт-контракта.

Сферы использования смарт контракта

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

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

Краундфандинг

Проведение ICO

Смарт-контракты Ethereum приобрели огромную популярность благодаря их массовому применению в ICO. Сегодня ежемесячно проводятся десятки ICO и большинство из них основано на стандарте ERC 20.

Финансовая сфера

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

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

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

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

В качестве «чистого» проекта в финансовой сфере, использующий технологии смарт-контрактов, можно назвать криптовалюту Ripple и его сеть RippleNet.

Страхование

Умные контракты в страхование

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

Крупная немецкая фирма Allianz применяет смарт-контракты для автоматизации страховых выплат в случае природных катастроф. А стартап Dynamis предлагает полностью децентрализованное страхование. Интересно, что решение выдачи страховых выплат принимается по результатам анализа актуального состояния профиля LinkedIn.     

Недвижимость

Смарт-контракты позволят автоматизировать типичные операции, связанные с недвижимостью: аренда, выплата ипотеки, покупка и продажа жилья. Например, при аренде может применяться прием запирания двери, в случае, если арендатель вовремя не внесет арендную плату. То же самое применимо и к жилью, купленному в ипотеку.

Аренда и покупка транспортных средств

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

Обучение

Блокчейн-образование

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

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

Кибербезопасность

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

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

Система голосования

Цифровая идентификации

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

Так, в штате Западная Вирджиния, США, местные власти в качестве эксперимента уже предоставили возможность отдать свои голоса путем применения блокчейн-приложения военным, которые не могут лично прийти на выборы.

Авторское право  

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

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

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

Читайте также:

Хешрейт сети Ethereum и ее сложность: как связаны эти понятия

Транзакции Ethereum: как работают и как проверить

Квантовый компьютер и блокчейн: возможна ли атака на биткоин