Что такое смарт-контракт простыми словами: практическое применение ”умного” контракта

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

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

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

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

  • ценные активы;
  • недвижимость;
  • деньги;
  • товары.

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

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

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

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

Что собой представляет хайп на смарт-контракте?

хайпы на смарт-контрактах

  • Админ не управляет проектом на смарт-контракте, он лишь создает алгоритм и делает открытым код, чтобы независимые аудиторы могли провести его проверку. Если аудит кода прошел успешно, то хайп признается честным.
  • Инвесторы могут наблюдать за наполнением кассы. У хайпа на смарт-контракте имеется только один эфириум-кошелек и, как любой адрес в системе, его можно просматривать в обозревателе.
  • Администрация заранее прописывает распределение средств. Как правило, около 80% уходит на выплаты инвесторам, остальное же используется на рекламу, вознаграждение админу и прочие плюшки.
  • Хайп на смарт-контракте работает до полного завершения средств на счету (в идеале). Ситуации, когда админ забрал деньги и скрылся, быть не может.

Хайп-проекты на смарт-контрактах: плюсы и минусы

Хайпы на смарт-контракте

  • Неподконтрольность админу. Бесспорный плюс, который и отличает хайп-проект на смарт-контракте от обычного проекта. Админ отказывается от владения контрактом и не может как–то влиять на его работу. Ну и, конечно же, он не может соскамить хайп, присвоив себе кассу. В итоге проект народный, а управу остается лишь его раскручивать, тем самым увеличивая свой заработок от вознаграждения.
  • Надежность системы. Блокчейн Эфириума защищен лучше, чем штаб–квартира Пентагона, а значит, и смарт-контракт, который на нем работает, не поддается взломам и провокациям. Криптографически защищенной системе не страшен никто.
  • Полная прозрачность. Если в традиционном хайпе нам не остается ничего, как верить той статистике, которую любезно «рисует» для нас админ, то с хайпом на смарт-контракте дела обстоят иначе. Все транзакции в блокчейне просматриваются и, используя etherscan.io, каждый желающий может наблюдать, как наполняется (или опустошается) кошелек проекта. Это позволит не только видеть, как обстоят дела у конкретного хайпа, но и сделать вывод – стоит сунуться туда со своим депозитом или нет.
  • Распределение средств. В коде смарт-контракта заранее прописывается, сколько и куда пойдет – ситуации, когда админ начнет тратить на рекламу бешенные бюджеты, просто быть не может. С одной стороны, действия админа не приведут к закидону, с другой – у хайпа будет плавное и грамотное развитие.
  • Хайп на смарт-контракте полностью стабилен. Если вы входите в проект с процентной ставкой 3% бессрочно, то не стоит бояться того, что в одно прекрасное утро админу вздумается изменить эти условия.

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

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

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

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

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

Работы

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

Самый популярный блокчейн для запуска смарт-контрактов — Ethereum . В Ethereum смарт-контракты обычно пишутся на полном по Тьюрингу языке программирования под названием Solidity и компилируются в байт — код низкого уровня для выполнения . Из-за проблемы с остановкой и других проблем безопасности полнота по Тьюрингу считается риском, и такие языки, как сознательно избегают . Некоторые из других языков программирования смарт-контрактов, в которых отсутствует полнота по Тьюрингу, — это Simplicity, Scilla, Ivy и Bitcoin Script. Однако измерения с использованием регулярных выражений показали, что только 35,3% из 53 757 смарт-контрактов Ethereum включают рекурсии и циклы — конструкции, связанные с проблемой остановки.

Несколько языков предназначены для обеспечения формальной проверки : Bamboo, IELE, Simplicity, Michelson (можно проверить с помощью Coq ), Liquidity (компилируется в Michelson), Scilla, DAML и Pact.

Известные примеры платформ блокчейн, поддерживающих смарт-контракты, включают следующее:
Имя Описание
Биткойн Предоставляет неполный по Тьюрингу язык сценариев, который позволяет создавать настраиваемые смарт-контракты поверх Биткойна, такие как учетные записи с несколькими подписями , каналы оплаты, условные депонирования, временные блокировки, атомарная кросс-цепная торговля, оракулы или многосторонняя лотерея без оператора.
Кардано Платформа блокчейн для смарт-контрактов, использующая доказательство доли
Ethereum Реализует полный по Тьюрингу язык в своей цепочке блоков, известную структуру смарт-контрактов.
EOS.IO Платформа блокчейн для смарт-контрактов
Тезос Платформа блокчейна, изменяющая свой собственный набор правил с минимальным нарушением работы сети с помощью модели управления в цепочке.

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

Умные контракты

Как и в случае с биткоином, пользоваться умными контрактами можно и без знания мельчайших подробностей технологии. Фактически это означает, что код хранится в блокчейне (то есть реестре, фиксирующем информацию о всех транзакциях с криптовалютой), который гарантирует соблюдение договора между сторонами. В основе кода – законы логики (например, простые конструкции if…then, знакомые многим из программирования), условия (которые могут взаимодействовать с автономными устройствами, такими как датчики интернета вещей) и инструменты криптографии, такие как публичные и частные ключи (это немного сложнее, но по функциям аналогично телефонным номерам и паролям).

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

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

16.03.2018: Транзакции биткоина без блокчейна? Пилотный проект нового ПО Lightning Network

Пользователи смогут проводить биткоин-транзакции, не используя блокчейн. Команда разработчиков из США Lightning Labs создала новое программное обеспечение LND и запустила первую бета-версию продукта.

Данный протокол подключается к сети биткоина и позволяет решить основные проблемы с транзакциями: низкую скорость и высокие комиссии. Над разработкой проекта трудилось несколько команд, было привлечено $2,5 млн инвестиций. В проект вложились создатель лайткоина Чарли Ли, главный технический директор Twitter Джек Дорси, экс-советник PayPal Дэвид Сакс.

В сети Lightning Network активны 1832 платежных канала и 1006 узлов. Инвесторы стартапа и команда разработчиков рассчитывают, что после запуска бета-версии количество узлов в сети будет увеличено.

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

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

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

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

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

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

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

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

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

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

Это образец кода, который написан на блокчейн-платформе Ethereum. Эфириум дает неограниченные возможности для работы с умными контрактами. Хотя есть и другие платформы, где можно написать смарт-контракт. Кто пишет коды? Любой участник сети может запустить написание кода за небольшую плату (Gas). Писать контракты можно и самостоятельно, но для этого нужно разобраться в компьютерных языках Script и Тьюринг (для Эфириума).

Где заключается смарт-контракт

Заключаются smart-контракты на различных блокчейн-платформах. К ним относятся:

  • Bitcoin — первая криптовалюта, но возможности написания умных контрактов на ней очень ограничены;
  • Side Chains — в этом блокчейне возможности для умных контрактов более расширены, чем в Биткоин;
  • NXT — открытая онлайн-платформа с ограниченным количеством смарт-контрактов, которые пишутся по шаблонам блокчейна. Создать уникальный контракт нет возможности;
  • Ethereum — открытая онлайн-платформа, в которой можно написать любой смарт-контракт, но за него нужно заплатить криптовалютой данного блокчейна;
  • Также можно заказать разработку смарт-контрактов у профессиональных программистов.

Принцип работы

Основной алгоритм работы — выполнение принципа “если… то…”

Это значит, что если соблюдены определенные условия, то программа выполняет заранее заложенные в нее действия. Функционирование определяется кодом, записанным и запущенным в распределенной системе.

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

Внутри содержатся следующие данные:

  • код с условиями,
  • публичный ключ от создателя соглашения,
  • второй публичный ключ в виде самого контракта (цифровой ID).

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

Важно! Благодаря среде Etherium разработчики создают децентрализованные приложения (dApps), которые управляются единым универсальным протоколом. Это упрощает и ускоряет использование dApps пользователями, т.к

нет необходимости постоянно переключаться между ними.

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

Схема работы умного контракта отличается от традиционной модели взаимоотношений участников финансовой сделки.

Как мы уже говорили, умный контракт исключает из процесса посредников.

Традиционный контракт предполагает участие в сделке третьего лица

Умный контракт сам все проверяет и сам себя исполняет. Он отслеживает выполнение всех условий, прописанных в нем, и на основе этого самостоятельно принимает решения.

  • Если все прописанные условия сделки выполнены, умный контракт завершает сделку, распределяя активы между участниками;
  • Если условия не выполнены, умный контракт накладывает штрафы или автоматически закрывает участникам доступ к активам.

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

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

К основными объектам смарт-контракта относят:

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

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

Блокчейн как сервис (BaaS): создавать собственный блокчейн больше не нужно

Раньше аббревиатура BaaS обычно применялась для Bank-as-a-Service и Backend-as-a-Service, но теперь под ней все чаще подразумевают Blockchain-as-a-Service. Сюда входят облачные решения для создания и размещения собственных децентрализованных приложений на базе блокчейн-инфраструктуры, разработанной сторонним поставщиком.

Изображение: investopedia.com

Подобную услугу предоставляют Amazon Web Services, IBM Blockchain Platform, Microsoft Azure, Alibaba Cloud Blockchain as a Service и другие. Их обширная инфраструктура позволяет внедрить блокчейн практически в любой продукт, причем конечные пользователи даже не догадаются, что он там есть.

Резюме

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

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

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

Особенности TON смарт-контракта «Hello World»

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

Как видно из примера нашего «Hello World», первой инструкцией мы выставляем ; это и есть обращение к API виртуальной машины TON. Таким образом мы сообщаем смарт контракту, что необходимо выполнить данную функцию даже в том случае если аккаунт не профинансировал требуемый вызов функции, а функция будет вызвана за счет средств на балансе аккаунта смарт-контракта (как и пользовательские аккаунты, у смарт-контрактов имеется похожий счет).

Так как «газ» для смарт-контрактов служит средством защиты от спам-атак, он требует финансовых затрат, выраженных в криптовалюте blockchain-сети. Cледовательно, вызов tvm.accept(); расходующий средства со счета смарт-контракта не очень-то и выгоден с точки зрения предоставления услуг (в большинстве случаев). Чтобы сбалансировать расходы и определить есть ли необходимость выполнять смарт контракт за счет баланса аккаунта самого смарт-контракта или же возложить расходы на вызывающий аккаунт, можно воспользоваться инструкцией require().

Инструкция (требование) позволяет задать условия, только при выполнении которого начнется выполнение функции смарт-контракта. Например, мы можем перед вызовом tvm.accept(); добавить требование require( == ); которое не допустит вызов функции смарт-контракта, если публичный ключ отправителя смарт-контракта не соответствует ключу аккаунта самого смарт-контракта.

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

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

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

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

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

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

Аналогичным образом эти же контракты могут гарантировать выполнение требований налоговых органов и автоматическую отправку соответствующих отчётов.

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

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

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

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

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

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

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

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

Для более глубокого понимания этой сложной темы вы можете почитать white paper Cap-Gemini.

Будущее смарт-контрактов

У смарт-контрактов есть отличные шансы стать массовым явлением в долгосрочной перспективе. Для этого они должны:

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

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

Хочешь получать самые свежие и актуальные новости о криптовалютах в Telegram? Тогда подписывайся на наш официальный канал → https://t.me/ruscoinsinfo