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

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

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

Чтобы smart-контракт был выполнен, система должна знать:

  • Участников – стороны, заинтересованные в выполнении условий контрактов. Для их верификации используется электронная подпись либо мультиподпись (если их много).
  • Предмет договора. К примеру, покупатель заказывает в интернет-магазине товар и хочет оплатить его после получения. Тот же «наложенный платеж», но с меньшим риском для обеих сторон. Продавец согласен, но с условием, что в случае отказа будет оплачена доставка туда-обратно, то есть покупатель покроет убытки. Система фиксирует требования обеих сторон, резервирует определенную сумму средств на счету покупателя и списывает их только в случае соблюдения всех требований.
  • Условия договора. Информация об обязательствах сторон и санкциях в случае их нарушения вносится в программу, после чего она сама следит за выполнением условий. Если все в порядке: покупатель получает качественный товар, а продавец – деньги.

Важно! Система smart-контрактов позволяет не привлекать посредников (банки, государственных служащих), обеспечивая безопасность и прозрачность сделки с минимальными затратами.

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

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

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

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

Схематично процесс заключения смарт-контрактов можно изобразить так:

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

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

Основные преимущества:

  • Отсутствие посредников – вы никому не платите процент за транзакцию или предоставление услуг.
  • Отсутствие человеческого фактора – все данные хранятся в распределенном реестре, заинтересованное лицо не может их изменить.
  • Возможность получить более выгодные условия, сэкономить время – не придется идти к юристу или в банк за подтверждением сделки.
  • Вопросы решаются автоматически. Как только система посчитает пункты контракта выполненными – происходит обмен активами.
  • Это абсолютно прозрачный и безопасный способ обмена.

Недостатки системы:

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

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

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

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

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

В России криптовалюты и связанные с ними технологии пока не регулируются. Если до конца июня 2018 года закон будет принят, возможно, смарт-контрактами начнут интересоваться активнее. В частности, руководство РЖД уже сообщило о намерении внедрить в систему децентрализованный реестр и смарт-контракты, но только после того, как они будут регулироваться на государственном уровне.

Использование смарт-контрактов

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

  • Бизнес, государственные службы. Умные контракты дают возможность контролировать свои активы, вести единый реестр данных и совершать в день сотни сделок. Все транзакции легко будет отследить в блокчейне, отличная возможность сэкономить на аудите. Кстати, налоговая декларация тоже может формироваться автоматически.
  • Финансовая сфера. Начать с банального – платежи. Умные контракты позволяют обойтись без посредников, транзакции происходят автоматически, в запрограммированном объеме и с желаемой периодичностью. Международные переводы тоже значительно упрощаются.
  • Юридическая сфера. Умные контракты упрощают проведение сделки – все условия в них прописаны, как и в бумажном договоре. Только не придется обивать пороги у нотариусов и юристов. В коде можно прописать все желаемые условия: время, условия передачи средств, требования к качеству услуги или товара, штрафные санкции и прочее. Система – самый непредвзятый аудитор и судья.
  • Сфера недвижимости. Платежи за аренду, ипотеку, реестр недвижимости, оформление сделок – все просто, прозрачно и понятно. Без жульничества и накруток агентств.
  • Сфера перевозок. Блокчейн и умные контракты позволяют отслеживать перемещение товаров, рейсы транспортных средств, возможные изменения в маршруте – при этом анонимность пассажиров и заказчиков будет соблюдена.
  • Сфера страхования. В смарт-контрактах может содержаться информация по каждому транспортному средству: история вождения, дата регистрации, номер страхового полиса и прочее. Продление страховки тоже происходит автоматически, без посредников.
  • Медицинская сфера. Конфиденциальность соблюдается, но нет очередей возле кабинетов и неприятных сюрпризов вроде отсутствия специалистов. С помощью смарт-контракта можно записаться на прием, оставить свои данные, получить результаты обследований дистанционно. Клиники же смогут обмениваться информацией о пациентах и вести статистику.

Сравнение умных и обычных контрактов

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

Обычный контракт

Не нуждаются в посредниках, все этапы контролируются автоматизированной системой

Составляется при помощи посредника, не исключены ошибки из-за человеческого фактора

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

Есть несколько вариантов интерпретации сделки, возможность изменить или переписать контракт

Обе стороны обязаны выполнить условия сделки, иначе автоматически последуют санкции и штрафы

Условия контракта «на бумаге» выполняются не всегда. Претензии приходится решать в судебном порядке

Из цепочки транзакций исключены банковские структуры

Банки получают свой процент за проведение сделки

Обмен средствами, вещами, услугами происходит мгновенно

Задержка может составлять несколько банковских дней

Благодаря блокчейну транзакции нельзя подделать, но можно узнать необходимую информацию

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

Смарт-контракты доступны в любой точке мира

Для подписания необходимо личное присутствие обоих сторон

Система работает на единых условиях, исключены мошеннические схемы.

Всегда есть вероятность обмана или фальсификации.

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

Смарт-контракт и криптовалюты

Первопроходцем в области смарт-контрактов стал Виталик Бутерин – программист и разработчик платформы Ethereum. Большой плюс этого проекта в том, что команда не просто продает криптовалюту, но и всячески развивает экосистему. На платформе создаются сотни децентрализованных приложений и криптовалют. Смарт-контракты – неотъемлемая часть системы. Они делятся на 2 категории:

  • Автоматизированные – готовый программный код, предложенный системой.
  • Написанные вручную – параметры и условия сделки прописываются программистом самостоятельно.

За оформление смарт-контракта пользователь платит фиксированную цену в gas – базовая криптовалюта ETH конвертируется в gas. Это сделано для того, чтобы стоимость сделки оставалась константной, а не менялась вместе с волатильностью цифрового актива.

Аналогичную услугу будет предлагать и платформа EOS – ее считают главным конкурентом Ethereum. Разработчики также дают возможность создавать уникальные смарт-контракты со множеством переменных. NEO, Cardano, Stellar также используют эту технологию.

Что касается других платформ, возможности Bitcoin, NXT, Side Chains очень ограничены. Как правило, пользователю предлагают шаблоны блокчейна с незначительными изменениями.

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

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

Программный код смарт-контракта

 

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

  • Тотализатор. Многие бывали или хотя бы видели рекламу сайтов-тотализаторов. Схема простая: делаете ставку, если она выигрывает – получаете деньги. Проблема в том, что эта сфера никем не контролируется и удачливого посетителя могут просто «кинуть». Смарт-контракты же делают исполнение сделки обязательным для обеих сторон, и мошенник не сможет изменить код и отменить транзакцию.
  • Регулярные платежи. У многих банков есть такая услуга – снятие определенной суммы для оплаты счетов, но приходится платить комиссию и зависеть от посредника. Умные контракты позволяют упростить эту схему. С помощью программы можно заключать договоры об аренде, платить ипотечные взносы, совершать покупки без риска.
  • Аутентификация личности. Если система smart-контактов будет внедрена в работу госструктур, то после подтверждения личности можно будет легко заключать договора и контракты онлайн. Дистанционно брать выписки и справки, экономить деньги, время и нервы.

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

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

  1. Полный по Тьюрингу. Такой алгоритм использует Ethereum, RootStock, планирует применять EOS. Программа позволяет задавать любые условия выполнения: функции вероятности, циклы, собственные электронные подписи и прочие.
  2. Неполный. Система использует заранее прописанные смарт-контракты. В произвольном порядке можно использовать лишь некоторые операции, но нельзя полностью изменить цикл или переписать алгоритм. Такие контракты использует Stellar, NEO, Cardano.

Разработка смарт-контракта

Пока IT-специалистов высокого уровня, которые занимаются разработкой смарт-контрактов на рынке немного. Написание смарт-контрактов – направление новое, и необходимо выбрать хорошего программиста, чтобы не потерять свои средства. Это особенно важно, если умные контракты необходимы для запуска ICO и последующей токенизации. Читайте отзывы о разработчиках и не ведитесь на лозунги «15 лет на рынке» – смарт-контракты появились всего 5 лет назад.

Языки программирования

Теоретически смарт-контракты могут быть написаны на любом языке – Python, JavaScript, Goland, PHP, C++ и прочие. Разработчики Ethereum выбрали для своей платформы программный язык Solidity – он похож на JavaScript, но сложнее. Выбор языка программирования зависит от типа блокчейна и требований системы.

Языки программирования смарт-контрактов

Как создать смарт-контракт

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

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

Составляющие смарт-контракта

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

Gas Price – фиксированная сумма оплаты за выполнение условий договора и использование ресурсов платформы.

Start Gas – это поле еще называют лимитом, в него вписывается максимальное вознаграждение, которое участник системы готов потратить на выполнение транзакции. Это сделано для того, чтобы в случае ошибки системы со счета пользователя не сняло лишних средств.

Destination. Вводится номер кошелька получателя.

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

Data. В этом поле прописываются непосредственно условия сделки, для каждой переменной есть свое название и пример кода.

Signature. Публичный ключ для проверки подписи и непосредственно электронная подпись.

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

 

Смотрите также:

Подписывайтесь на наш Телеграм-канал или группы Вконтакте и Facebook и будьте в курсе событий!