Читать книгу «Больше денег: что такое Ethereum и как блокчейн меняет мир» онлайн полностью📖 — Виталик Бутерин — MyBook.
image

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

БЛОГ ETHEREUM

24 февраля 2014 года

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

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

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

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

УМНАЯ СОБСТВЕННОСТЬ

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

if button_pressed == “Coca Cola” and money_inserted >= 1.75:

release(“Coca Cola”)

return_change(money_inserted – 1.75)

else if button_pressed == “Aquafina Water” and money_inserted >= 1.25:

release(“Aquafina Water”)

return_change(money_inserted – 1.25)

else if …

Этот контракт имеет четыре привязки к внешнему миру: входные переменные button_pressed (нажать кнопку) и money_inserted (вставить деньги) и выходные команды release (выдать) и return_change (вернуть сдачу). В разных автоматах эти функции могут быть реализованы по-разному, но на первой мы останавливаться не будем, поскольку нажатие кнопки – задача несложная. Попытка выполнить этот контракт на Android-смартфоне образца 2007 года ни к чему бы не привела: он не сможет узнать, сколько денег внес покупатель, и уж точно не выдаст сдачу и бутылку колы. А вот в вендинговом автомате этот контракт приобретает «силу» за счет запасов колы и физической защиты, которая не позволяет взять напиток просто так, без соблюдения условий контракта.

Можно представить и другое, более футуристическое воплощение умной собственности – например, в сфере аренды автомобилей. Вообразите мир, где у каждого в смартфоне есть собственный приватный ключ, и, если отправить $100 на конкретный адрес, автомобиль в течение суток будет автоматически подчиняться командам, подписанным этим ключом. Тот же принцип можно применить и к домам. Если для вас это звучит нереально, напомню, что уже сегодня некоторые офисные здания функционируют как умная собственность: для входа в них нужна карта доступа, и то, какую именно дверь сможет открыть ключ, определяет код, привязанный к базе данных. Более того, если компания использует HR-систему, которая автоматически обрабатывает трудовые контракты и активирует карты доступа новых сотрудников, это тоже своего рода смарт-контракт.

УМНЫЕ ДЕНЬГИ И ФАКТИЧЕСКОЕ ОБЩЕСТВО

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

Как же решить эту проблему? Для широкой аудитории ответ может показаться радикальным, но для тех, кто знаком с биткойном, это уже не новость: нам нужны деньги нового типа. На сегодняшний день эволюция денег прошла три этапа: товарные деньги; деньги, обеспеченные товаром; фиатные деньги. Товарные деньги устроены очень просто: они имеют ценность, потому что сами представляют собой товар с некоторой «внутренней» потребительской стоимостью. Лучшие примеры – золото и серебро, а в более традиционных обществах в этом качестве могут использовать чай, соль (минутка этимологии: отсюда произошло слово «зарплата»[11]), ракушки и прочее. Потом возникли деньги, обеспеченные товаром, – банки выпускали сертификаты, которые можно было обменять на золото. Наконец, появились фиатные деньги. Слово «fiat» в фиатных деньгах – то же, что и в библейском «fiat lux» («да будет свет»), только тут говорит не бог, а государство, и говорит оно: «да будут деньги». Ценность фиатных денег обусловлена исключительно тем, что их выпускает государство и оно же принимает их (и только их) в качестве налогов и пошлин, а также предоставляет им другие преимущества.

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

Конец ознакомительного фрагмента.

1
...