Больше денег: что такое Ethereum и как блокчейн меняет мир - Виталий Дмитриевич Бутерин
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» («да будет свет»), только тут говорит не бог, а государство, и говорит оно: «да будут деньги». Ценность фиатных денег обусловлена исключительно тем, что их выпускает государство и оно же принимает их (и только их) в качестве налогов и пошлин, а также предоставляет им другие преимущества.
Но вместе с биткойном у нас появился новый вид денег: фактические деньги. Фиатные и фактические деньги различаются тем, что первые кто-то создает и поддерживает – в нашем случае государство, но теоретически это может быть и какой-то другой агент, – а фактические деньги просто существуют. Фактические деньги – это просто баланс с некоторым набором правил его обновления, и пользователи сами выбирают, пользоваться такими деньгами или нет. Первым примером фактических денег стал биткойн, но есть и другие. Например, если пользователь примет новое правило, по которому баланс будет пополняться только биткойнами из определенной «первичной транзакции», мы получим так называемые цветные монеты – еще один вид фактических денег (если только эти цветные монеты сами не будут фиатными или обеспеченными товаром).
Главный плюс фактических денег как раз в том, что они прекрасно сочетаются со смарт-контрактами. Основная проблема таких контрактов – контроль их соблюдения: если по условию контракта после события Х Боб должен получить $200 и это событие происходит, то как гарантировать, что Бобу действительно отправят причитающуюся ему сумму? С фактическими деньгами возможно очень элегантное решение: само определение денег, точнее определение текущего баланса, представляет собой результат исполнения всех контрактов. То есть если событие Х действительно происходит, то все соглашаются, что у Боба становится на $200 больше, а если Х не происходит, то все соглашаются, что Боб остается с тем, что у него было.
Эта идея на самом деле куда более революционна, чем может показаться на первый взгляд. По сути, мы получаем способ непринудительного соблюдения контрактов, а может, даже и законов. Хотите ввести штраф в $100 за мусор? Задайте валюте такое определение, что счет пользователя, который намусорит, уменьшится на $100, и убедите людей ее принять. Пусть этот пример не очень реалистичен и непрактичен без пары важных уточнений, которые мы обсудим ниже, но он иллюстрирует общий принцип. Уже сейчас есть множество более простых примеров этого принципа, которые можно воплотить в жизнь.
НАСКОЛЬКО УМНЫ СМАРТ-КОНТРАКТЫ?
Смарт-контракты очень эффективны для любых финансовых приложений – или, в более широком смысле, для любых типов обмена двумя фактическими активами. Возьмем, к примеру, продажу доменного имени. Домен вроде google.com – фактический актив, поскольку он привязан к базе данных на сервере, полномочия которого мы признаём, и деньги, разумеется, тоже могут быть фактическими. Сегодня продажа домена – сложный процесс, для которого требуются специальные сервисы. В будущем же предложение о продаже можно будет оформить в виде смарт-контракта, поместить его в блокчейн, и, если две стороны примут условия сделки, обмен произойдет автоматически, без какой-либо лазейки для обмана. Если вернуться в мир валют, можно привести в качестве примера децентрализованные биржи, а также финансовые контракты, такие как хеджирование и