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

0
ПОДЕЛИТЬСЯ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

этапы смарт-контракта
Если бы всё было так просто.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

молоток судьи с символом Биткойна

Рассмотрев все проблемы смарт-контрактов, перейдём к их решению. Чаще всего «смарт-контракты» считают неудачным изобретением, однако не стоит полностью отказываться от этой концепции. Все перечисленные проблемы решил Биткойн с помощью сети Lightning.

Сеть Lightning — это система одноранговых платёжных каналов, которые работают поверх протокола Биткойна. Подробнее узнать о том, как работает Lightning, можно здесь.

В общих словах Lightning работает так: две стороны решают открыть платёжный канал. Они подписывают соответствующую «транзакцию-обязательство», которая подтверждает их согласие на вступление в соглашение и записывается в блокчейн Биткойна. Обе стороны обязаны следовать правилам протокола сети Lightning, который определяет границы их сотрудничества. Через некоторое время после совершения транзакций стороны решают закрыть контракт, подписав и опубликовав последнюю совместную транзакцию. Если одна из сторон пытается нарушить правила сети и украсть средства контрагента, то пострадавшая сторона может опубликовать доказательство на блокчейне Биткойна и предотвратить кражу.

Сеть Lightning отлично соответствует понятиям стандартного контракта и решает все перечисленные выше проблемы.

  1. Условия. Правила протокола LN схожи с условиями контракта, которым обязуются следовать обе стороны.
  2. Подписание. Подписание контракта и согласие с его условиями происходит во время отправки транзакции-обязательства.
  3. Если одна из сторон нарушает условия контракта Lightning, то пострадавшая сторона может «обратиться в суд», отправив зашифрованное доказательство на основной блокчейн.
  4. Принудительное исполнение. Протокол Биткойна играет роль виртуального судьи. Он логически оценивает доказательства и переводит средства соответствующей стороне.

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

Сеть обладает высокой гибкостью, поскольку её смарт-контракты имеют одноранговую природу, как и у традиционных контрактов. Стороны самостоятельно выбирают условия контракта. Условия стандартных контрактов Lightning (например, исходной версии Eclair или LND) можно изменить под нужды сторон. Например, компания Bitrefill недавно открыла первый канал на 1 BTC, изменив стандартное ограничение на размер канала. Гибкость контрактов будет повышаться по мере усовершенствования протокола с помощью таких технологий, как подписи Шнорра или SIGHASH_NOINPUT. Один из примеров — предложение eltoo.

Возможно, самая важная часть Lightning — это социальная масштабируемость. Как уже говорилось ранее, сила контрактов в том, что судья не нужен для проведения транзакций, а только в случае нарушения условий. У таких платформ смарт-контрактов, как Ethereum и Tron, это базовое свойство полностью отсутствует. В их модели «судья» — блокчейн — следит за каждой транзакцией.

Структура сети Lightning полностью отражает концепцию контрактов. Она позволяет проводить миллионы транзакций без судей, что даёт два явных преимущества: снижение стоимости транзакций и увеличение конфиденциальности сторон. Размер и рост сети неизвестны, поскольку многие каналы конфиденциальны. Однако в случае нарушения в игру вступает судья — блокчейн, который оценивает ситуацию и разрешает спор.

В конце стоит отметить, что сеть Lightning — всего лишь первый из многих подобных примеров. POWSWAP Джереми Рубина предлагает схожий вид смарт-контрактов на деривативы на хешрейт, а Lot 49 Ричарда Майерса позволяет обмениваться сообщениями в ячеистых сетях. Инновационные смарт-контракты не появляются на других блокчейнах из-за «дороговизны» или «полноты по Тьюрингу». Дело в простоте Биткойна.

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

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

Вывод

Lightning — первая система настоящих смарт-контрактов. Она решает проблемы других сетей и является блестящим образцом возможностей Биткойна, а также обещает светлое будущее новым технологиям смарт-контрактов.

Выражаю благодарность Bitcoin Lawyer, Джереми Склароффу и Нику Сзабо за идеи, а также Институту Като за возможность провести это исследование.

Ссылки:

  1. Ник Сзабо. Money, Blockchains, and Social Scalability, 9 февраля 2017 г., unenumerated.blogspot.com/2017/02/money-blockchains-and-social-scalability.html.
  2. Джереми Скларофф. “Smart Contracts and the Cost of Inflexibility .” University of Pennsylvania Law Review , том 166, 2018 г., с. 263–303.
  3. Там же, с. 264.
  4. В ветке Эрика Уолла, где он рассказывает о геркулесовых усилиях синхронизировать полный узел Эфириума, можно найти более свежие доказательства точки зрения SAD.

Источник

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here