Биткойн: блокчейн для настоящих смарт-контрактов

0

Смарт-контракты — тема интересная. К изучению криптовалют меня привлекла возможность избавиться от адвокатов, бесконечных бумаг и высоких расходов на юридические услуги. К сожалению, мои мечты быстро рассыпались в праъ. За хайпом скрывалась суровая действительность — у платформ для смарт-контрактов множество серьёзных проблем.

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

В статье рассказывается об основах контрактов, проблемах наивных платформ смарт-контрактов и, наконец, о том, как Биткойн превращает мечту в реальность.

Часть первая: основы контрактов

Сперва рассмотрим основы контрактов. Контракт — это подлежащий исполнению договор между соглашающимися сторонами. Пример:

Алиса договаривается в течение трёх лет покупать у Боба кофейные зёрна на сумму $1000 в месяц. Дата расчетов — первое число каждого месяца.

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

Контракт отличается от обещания тем, что третья сторона может принудительно привести его в исполнение. Это зачастую юридический работник, например судья, или же частный арбитр, общие друзья, криминальный босс и т. д. Если одна из сторон нарушает условия контракта (например, Алиса не производит выплату), то пострадавшая сторона может отнести контракт и доказательства нарушения третьему лицу, которое заставит нарушителя возместить ущерб по условиям контракта.

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

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

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

Контракты заменяют доверие исполняемыми гарантиями, что укрепляет основы экономического прогресса: распределение труда и надёжность.

Часть вторая: наивный подход на основе блокчейна

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

Если бы всё было так просто.

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

У этого подхода есть несколько серьёзных проблем.

1. Проблема оракула

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

Но это не всё. Что делать, если изменились данные о части объекта собственности, а блокчейн не обновился должным образом? Например, на блокчейне хранится информация о правах на землю. Что если земля должна перейти одному из членов семьи, но приватные ключи потерялись или были уничтожены? Есть два варианта развития событий. Если реестр неизменяемый, то право собственности навсегда перейдёт не к тому человеку, если же третье лицо (представитель исполнительной власти или сотрудник поддержки) может изменять реестр, то оно внесёт нужные изменения.

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

2. Проблема гибкости

Стороны не могут полностью отразить свою волю в контракте — часто они сталкиваются с недопониманием и приходят в замешательство. Однако ошибка в составлении смарт-контракта может дорогого стоить. Каждое слово должно быть зафиксировано в виде определяемых компьютером терминов, которые обрабатывает платформа смарт-контрактов.

Этот вопрос рассматривает Джереми Скларофф в своей фантастической работе Smart Contracts and the Cost of Inflexibility². Платформы смарт-контрактов утверждают, что отсутствие традиционного языка снижает их «неэффективность». Однако Скларофф демонстрирует, что при этом увеличивается стоимость транзакций. Контракты с неизменяемым кодом должны быть жесткими и по-настоящему автореферентными. Это означает, что обе стороны должны в полной мере и четко устанавливать все ожидаемые и возможные события по контракту, не пользуясь традиционным языком. Возможности даже простого контракта на поставку кофейных зёрен непостижимы.

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

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

3. Проблема нарушения условий контрактов

Зачастую контракты — это сложные документы со множеством условий и требований. Нередко возникают спорные ситуации, когда непонятно, нарушены ли условия соглашения. Боб может считать, что он действовал согласно условиям контракта, а у Алисы может быть другое мнение. Например, что если Боб поставил кофейные зёрна другого размера или вида? Считается ли это влекущим наказание нарушением или это незначительное отклонение от контракта? К счастью, такие моменты можно оговаривать заранее, но зачастую предвидеть все возможные проблемы нельзя.

Ситуация ухудшается тем, что не всегда стороны намеренно нарушают условия и наносят ущерб. В случае с обычными контрактами нарушившая сторона может объяснить ошибку, а пострадавшая — решить, идти в суд или не обращать внимание на нарушение. Техническое нарушение не всегда наносит ущерб.

Вернёмся к контракту Алисы и Боба. В один из месяцев Боб не может поставить нужный сорт кофейных зёрен. Он сообщает об этом заранее и предлагает сделать скидку в 25% на заказ другого сорта. Алиса соглашается. Она получает скидку и может сделать «ограниченное по времени предложение» с другими зёрнами, чтобы увеличить продажи.

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

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

4. Проблема правоприменения

Как уже говорилось выше, разница между контрактом и обещанием заключается в том, что в первом случае третья сторона может принудительно привести контракт в исполнение. Что же со смарт-контрактами? Что если Боб не поставит зёрна по контракту? Блокчейн — децентрализованная система, у неё нет полномочий или возможности влиять на физические объекты. Недобросовестное выполнение обещаний создаёт проблемы.

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

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

5. Проблема масштабируемости

Основное свойство контрактов — возможность масштабирования, когда третье лицо при необходимости отслеживает исполнение контракта. Однако такие платформы, как Ethereum, Tron и EOS решили игнорировать это свойство. Пользователи загружают контракт прямо на базовый уровень, все валидаторы сети должны подтверждать и постоянно отслеживать исполнение всех контрактов.

Результат плачевен и предсказуем. Несмотря на небольшую популярность и количество активных пользователей, основные платформы смарт-контрактов уже испытывают трудности с загрузкой, проверкой и синхронизацией. В своей невероятной работе StopAndDecrypt очень подробно разъясняет последствия создания смарт-контрактов на таких базовых уровнях, как Ethereum, Tron и EOS⁴.

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

Часть третья: лучший судья

Оставьте ответ

Ваш электронный адрес не будет опубликован.