О блокчейне простыми словами: 3. Смарт-контракты

1_N2EdFOID_6ueIBIoKoyZew1

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

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

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

Благодаря этим свойствам, у каждого участника хранятся одинаковые копии соглашения, несмотря на то, что оно постоянно меняется.

1_N2EdFOID_6ueIBIoKoyZew1

Аналогия выше описывает набор волшебных документов (блокчейн), для которого прописан один набор правил. Для других наборов волшебных документов действуют иные правила относительно допустимых изменений. Исходный набор волшебных документов называется Биткойном. Правила для этого набора документов звучат так:

  1. в каждом волшебном документе содержится список всех счетов и остатков на них;
  2. счета принадлежат людям, которые могут отправлять биткойны со своего счёта на другие счета.

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

1_k1uQgcUxhiqCMsxK5oP9IQ2

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

  1. в каждом волшебном документе содержится список всех счетов и остатков на них;
  2. владельцы счетов могут отправлять средства со своего счёта на другие счета.

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

Ниже приведена иллюстрация одного из волшебных документов в блокчейне Эфириума. Здесь счетами B, E и G управляют инструкции, а не люди:

1_QfndFzV_95ZHBGmAkSMZ_Q3

Когда одному из этих счетов приписывается набор инструкций, он становится смарт-контрактом. Инструкции – это программный код, обычный алгоритм. Получив средства с другого счёта, смарт-контракт может:

  • выполнить вычисления;
  • сохранить информацию;
  • отправить транзакции на другие счета.

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

Многие люди критикуют название «смарт-контракт», потому что эти контракты сложно назвать умными. Это всего лишь наборы инструкций, которые способен написать любой. И люди вполне могут создавать совершенно нелепые смарт-контракты.

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

Код есть закон

При заключении обычного контракта ваш уровень доверия к тому, что вы подписываете, определяется несколькими факторами. Самый очевидный из них – это понимание содержания контракта. В контракте на языке юристов излагаются условия соглашения, которые вы обязуетесь выполнять. Поэтому важно понимать этот язык и то, как содержание контракта интерпретируется правовой системой. Вот почему вы всегда внимательно изучаете условия соглашения с Spotify/Facebook и т. д. Вы бы никогда не подписали соглашение, которое обязывает вас предоставить своего первенца в качестве оплаты за использование их услуг, как это сделали бы 98 % людей.

1_MqD7NZDnICgrMWmr1mSM1Q4

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

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

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

Наконец, даже если вы понимаете содержание контракта и правовой контекст, вам всё равно приходится полагаться на верховенство закона. Но иногда де-юре ≠ де-факто. Именно поэтому вас могут терзать сомнения при заключении соглашения с сыном президента ОАО «Коррупция». Такой контракт не будет стоить даже той бумаги, на которой он написан.

1_wChIO8URfU4_aFXbhvTLSw5

Но как эти факторы соотносятся со смарт-контрактами? Смарт-контракт в сущности состоит из двух элементов, которые вам нужно понимать и на которые следует полагаться:

  1. код и его интерпретация;
  2. неизменяемость блокчейна.

Как и в случае с обычными контрактами, имея дело со смарт-контрактом, важно понимать, что в нём написано. Но в отличие от обычного контракта, который написан на языке юристов и интерпретируется правовой системой, содержание смарт-контракта прописывается кодом и интерпретируется компьютерами. Как же на самом деле выглядит код смарт-контракта? Ниже приведён фрагмент (не беспокойтесь, я не ожидаю, что он будет вам понятен):

function payOut(address _recipient, uint _amount) returns (bool) {
if (msg.sender != owner || msg.value > 0 || (payOwnerOnly && _recipient != owner))
throw;
if (_recipient.call.value(_amount)()) {
PayOut(_recipient, _amount);
return true;
} else {
return false;
}
}

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

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

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

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

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

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

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

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

1_DUWL-7etIKfH5DUwtVw-hw6

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

Смарт-контракты можно применять так же, как и блокчейны.

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

Возможности блокчейнов с поддержкой смарт-контрактов в полной мере раскрываются во взаимодействиях между различными областями применения. Например, возьмём два смарт-контракта: один определяет и прописывает права собственности на доллары, а другой – права собственности на недвижимость. Мы можем использовать третий смарт-контракт для условного депонирования, что позволит приобретать недвижимость без посредника.

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

Программируемое соглашение

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

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

С самого зарождения цивилизации, когда деньги были только изобретены, они принадлежали людям. Со временем, разные формы организации, придуманные людьми, например, государства и компании, смогли завладеть деньгами. Теперь, впервые в истории, самостоятельно распоряжаться деньгами может машина (логика).

Последствия этого сложно представить, но можно справедливо утверждать, что впереди нас ждут интересные времена.

1_OJ9V8DOIPAisMggeI_cGIA7

Источник



Рубрики:Новичкам, Теория, смарт-контракты

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s