Что такое смарт-контракты и почему это важно
Технологии блокчейна это сначала структура данных, а затем протокол для передачи значения. Наряду с искусственным интеллектом, интернетом и блокчейном умные контракты были одной из самых «горячих» тем в мире технологий, так как они являются типом программного обеспечения в блокчейне.
Блокчейн может содержать не только простую информацию, такую как транзакции, но также и небольшие программы, называемые «умными контрактами» или «Смарт-контракты» (англ. Smart-Contracts), которые, по сути, представляют собой больше чем просто программное обеспечение, размещенное в цепочке. В широком смысле слова, смарт-контракты — это договор между двумя сторонами в цифровой форме, которое объединяет их в соглашение, выполнение которого обязательно. В этом случае «умный» относится к автоматическому выполнению этих цифровых контрактов, поскольку они состоят из серии команд написанных и применяемых кодом. Контракт исполняется автоматически, как только выполняются его условия.
Другими словами, смарт-контракты — это обещания схожие с бумажными контрактами в физическом мире. Разница лишь в том что они в цифровой форме. Смарт контракт похож на компьютерную программу, хранящуюся внутри блокчейна, и ниже мы проиллюстрируем пример смарт-контракта.
Пример использования смарт-контракта
В настоящее время существует несколько краудфандинговых платформ, и одна из самых известных — KickStarter. На этой платформе предлагаются проекты компаний, продуктов или услуг, и организаторы предлагают людям инвестировать средства, которые будут использованы для финансирования рассматриваемого проекта.
Представьте себе команду, разработавшую прототип любого продукта, допустим, летающий автомобиль. На KickStarter эта команда представляет свой проект и привлекает инвесторов к сбору средств, определяется минимальная цель, которая должна быть достигнута.
KickStarter работает в качестве стороннего партнера (посредника) между людьми, которые представляют свои проекты, и людьми, которые участвуют в сборе средств и верят в проекты. В такой системе это означает, что обе стороны должны доверять KickStarter, чтобы правильно генерировать деньги, которыми обмениваются на его краудфандинговой платформе. Если цель по сбору средств достигает своей поставленной задачи, то команда проекта ожидает получить деньги для сбора средств, если наоборот, цель по сбору средств не будет достигнута, участники предложившие деньги, ожидают их обратного возмещения.
Использование смарт-контрактов может служить для того, чтобы стороннее рассмотрение, такое как Kickstarter больше не потребуется.
Чтобы использовать предыдущий пример краудфандинга, мы можем запрограммировать умный контракт, который будет удерживать деньги участников по сбору средств до достижения цели. Участники отправляют свои деньги на умный контракт, и как только условие будет выполнено (цель по сбору средств, скажем, 1 000 000 долларов США), тогда умный договор освободит деньги и переведет их автоматически в команду проекта. Если сбор средств окажется неудачным и не достигнет своей цели, средства будут возвращены в рамках смарт-контракта сторонникам проекта.
Умные контракты хранятся внутри блокчейна, что делает их совершенно безопасными, поскольку здесь никто не контролирует деньги, что делает умные контракты надежными. И тот факт, что мы можем им доверять, заключается в том, что однажды созданные в цепочке блоков, они больше не могут быть изменены, никто не может взять под контроль договор и изменить его условия. Кроме того, будучи подписан в блокчейне, смарт-контракт проверяется всеми участниками сети, и поэтому мошенничества быть не может.
Пример краудфандинга был приведен для того, чтобы проиллюстрировать, как работает умный контракт, но этот метод может применяться ко многим вещам в повседневной жизни. Смарт-контракты могут быть использованы для страхования, для почтовых отправлений, для аренды жилья или транспортных средств, а также для денежных займов, в том числе и для сделок с недвижимостью, которые могут быть выполнены, например, без нотариуса.
Таким образом, теперь становится понятным, где и как можно использовать умные контракты, а также насколько они могут изменить мир в ближайшие годы.
Обещание умных контрактов
Смарт-контракты обещают устранить необходимость в посредниках, таких как юристы или нотариусы, чтобы сократить не только стоимость многих транзакций, но и время, необходимое для их совершения.
Теоретически, умный контракт может определять передачу цифровых активов, таких как криптовалюты, но он также может применяться к любому объекту стоимости, такому как акции, облигации или физические активы (например, недвижимость). В гипотетическом случае владелец недвижимости и арендатор могут использовать умный договор для управления договором аренды. Например, умный контракт может автоматически блокировать замки дома, если арендная плата не была выплачена вовремя.
Другое возможное использование для умных контрактов было бы своего рода децентрализованным eBay. Продавец может составить договор с датой истечения срока действия, которая определяет продолжительность аукциона и начальную сумму. Заинтересованная сторона получит свою покупку в конце аукциона в обмен на предложенные деньги. Со своей стороны, другие участники автоматически получат возмещение части умного контракта. Такая децентрализованная версия eBay будет считаться децентрализованным приложением или dApp.
dApps
Децентрализованное приложение (dApp) — ещё один серьёзный аргумент в пользу умных контрактов. Большинство приложений и веб-сайтов используют API (интерфейсы прикладного программирования) для связи со своей базой данных. Хорошо написанный API-интерфейс облегчает разработчику предлагать услуги, определяя взаимодействие между компонентами системы, такими как операционная система, база данных или библиотека программного обеспечения.
Децентрализованные приложения имеют все преимущества блокчейна. Они прозрачны, надёжны и не могут могут менять данные третьими сторонами. На основе децентрализованных приложений можно создавать аукционы, онлайн-казино, онлайн-игры и ещё кучу всего. Данные о пользовательских ставках или решениях всегда будут храниться в блокчейне, а взлом будет невозможен. Пользователи смогут больше доверять системе предлагающей свои услуги, а системы могут повысить свой статус в глазах клиентов.
DApps используют умные контракты для связи со своим блокчейном. В будущем умные контракты с шаблонами договоров могут появиться для различных целей. Это будущее уже начинает реализовываться благодаря умным контрактным платформам, таким как Ethereum.
Умные контрактные платформы
В дополнение к Ethereum существует множество платформ для интеллектуальных контрактов, пожалуй, самых популярных и широко используемых сегодня. Некоторые другие включают Lisk, NEM и Hyperledger, модифицированную версию Ethereum, разработанную для использования в бизнесе.
Также мало кто знает, что Биткойн тоже позволяет создавать умные контракты. Родной язык программирования Биткойн, Script, является базовым языком программирования, сравнимым с Solidity, языком используемым для написания умных контрактов на Ethereum. Solidity — это полный язык программирования по Тьюрингу, который делает контракты более сложными чем Script. Очевидно, что эта сложность также означает, что их сложнее писать, анализировать и защищать, но также и большую уверенность в исполнении.
В случае умных контрактов безопасность включает рассмотрение всех способов, которыми контракт может быть выполнен, а также обеспечение покрытия всех возможных последствий. Контракты Secure Bitcoin, написанные на Script, обеспечивают меньшую сложность по сравнению с контрактами, написанными в Solidity для Ethereum. Это ограничивает случаи, в которых они могут быть использованы, но упрощает составление списков, проверку и подотчетность, что упрощает заключение договоров.
Препятствие на пути
Для использования смарт-контрактов существует ещё одно препятствие на пути. Цифровая сфера действия контракта должна быть в курсе реальных событий, чтобы умные контракты могли работать. Сущность, которая вводит данные этого типа в блокчейн или умный контакт, называется оракулом. Проблема, которая возникает из-за необходимости доверять этой сущности, называется проблемой оракула.
Если существует умный контракт, управляющий платформой для ставок в среде без посредников, то оракул обязан указать результат матча, чтобы контракт мог распределить средства победителям. Поскольку оракул определяет то, что видит контракт, он также контролирует то, что он делает. Но будет ли оракул всегда честным?
Что такое оракулы в среде умных контрактов
Централизованные оракулы не считаются решением проблемы децентрализованного оракула. Независимо от практической реализации, стимулы для ввода ложных данных в систему могут в некоторых случаях перевешивать преимущества честных действий. Будь централизованным или нет, оракул всегда стоит денег. Честное поведение всегда должно быть самой прибыльной стратегией, поэтому должны быть сильные стимулы. Это еще одна проблема, которая требует оценки теории игр и разработки, которая включает стимулы, аналогичные тем, которые получают майнеры в цепочке.
Другими словами, даже те оракулы которые являются исполняемым кодом и не должны иметь в себе жажду наживы, могут обманывать людей чтобы обогатить своего разработчика. Человеческой натуре свойственен обман ради собственной наживы и найдётся не так много программистов которые захотят написать целиком открытую и справедливую систему по подсчёту каких-либо результатов без лазеек в эту систему.
До того, как будут решены проблемы создания умных контрактов с юридической силой и так называемая проблема оракула, использование этого типа документа будет ограничено экспериментальными областями, где возможные потери являются низкими. Возможным использованием будет использование вознаграждений, предоставляемых в видеоигре, где оплата будет производиться пользователю при активации объективно проверяемым достижением в игровом коде.
Итоги
Завершив урок, вы уже должны понимать что из себя представляют смарт-контракты. Выделим основные тезисы:
- Смарт-контракт — это некий исполняемый код который совершает какое-то действие в зависимости от условия. Например при окончании сбора средств контракт может переводить все средства собирающей группе или возвращать их в случае если собрать всю сумму не удалось.
- Смарт-контракты хранятся в блокчейне, а это значит что переписать или взломать их невозможно, так как информаций о блокчейне хранится у каждого пользователя сети.
- Смарт-контракты позволяют избавиться от посредников. Это позволяет сократить расходы и время на выполнение.
- Смарт-контракты могут использовать децентрализованные приложения (dApp), возможности которых практически неограничены.
- Для определения внешних результатов (вне блокчейна) необходимо использовать оракулы. Людям необходимо доверять оракулам чтобы довериться результату.
- Смарт-контракты уже сейчас активно используются в бизнесе. Дальнейший потенциал контрактов может позволить использовать их для более бытовых вещей.