[Ethereum] Самоисполняемые контракты и фактические деньги -1

Запись в блоге разместил пользователь bblizard, 6 мар 2014.

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

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

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

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

Интеллектуальные контракты позволяют применять этот принцип во многих областях. Можно создавать финансовые контракты, которые автоматически перемещают деньги на основании определенных формул и условий. Например, такой контракт может автоматически продать доменное имя тому, кто первым заплатит за него $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-смартфоне, он был бы бесполезен, так как смартфон не может получить информацию о том, сколько денег внес покупатель, и конечно же не может выдать Кока-Колу или сдачу. Кроме того, контракт в торговом автомате имеет обеспечение в виде запасов Кока-Колы и физической защиты, которая не позволяет взять товар, не выполнив условия контракта.

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

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

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

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

Фактические деньги очень хорошо сочетаются с интеллектуальными контрактами. Основная проблема интеллектуальных контрактов – гарантия исполнения: если в контракте сказано, что Олегу нужно отправить $200, если произошло событие X, и событие X происходит, то как гарантировать, что $200 действительно будут отправлены Олегу? Фактические деньги позволяют применить очень элегантное решение: определение денег или, более точно, определение текущего баланса, как результата выполнения всех контрактов. Таким образом, если событие X происходит, то все соглашаются, что у Олега стало на $200 больше, а если событие X не происходит, то все соглашаются, что баланс Олега не изменился.

На самом деле это гораздо более революционный результат, чем может показаться на первый взгляд. С помощью фактических денег мы создали способ исполнения контрактов, а может даже закон, который будет действовать без каких-либо дополнительных механизмов принуждения. Хотите ввести штраф $100 за мусор? Определите такую валюту, которая будет списывать 100 единиц с баланса пользователя, если он намусорит, и убедите людей принять ее. Хотя этот пример далек от реальности и непрактичен без нескольких существенных пояснений, которые мы обсудим ниже, он показывает общий принцип. Существует множество более простых примеров применения этого принципа, которые определенно можно воплотить в жизнь.

Продолжение: http://bitalk.ru/entries/335/
bblizard

Об авторе

http://bit.ly/2bfV8DH Это хайп через telegram, 3% в день, мин.10$, +18k человек, ввод/вывод в том числе и в битках:)