BitcoinДецентрализация

Смарт Контракты: вся правда о них

Правда о смарт-контрактах

Смарт контракты, а также слова вроде «блокчейн», «Искусственный Интеллект», «Облачные Данные», являются такими фразочками, что собирают вокруг себя большую массу людей.

Всё таки, что может быть лучше чем возможность доверять тому, что произойдет вместо того, чтобы использовать юридическую систему? Обещания Смарт-контрактов включают:

-Исполнение контрактов в автоматическом режиме, без доверия и без перерывов

-Выпадение прочь посредников при создании контракта, его выполнении и защите

-(Как следствие) исчезновение юристов

Мне нравится сложившийся хайп. Все таки, насколько более простыми могли бы быть вещи в жизни, если б можно было избавиться от необходимости доверять третьей стороне в выполнении операций?

В любом случае, что вообще такое смарт контракт? И разве это не область применения Эфириума? Разве это не путь будущего? Зачем кому-то стоять на пути прогресса?

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

Что такое смарт контракт?

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

смарт контракты

Что отличает «смарт контракты», так это условия, в которых они исполняются и вычисляются компьютерным кодом, что делает процесс не нуждающимся в доверии. Так, если Алиса согласилась заплатить Бобу 500 баксов за доставку дивана через 3 месяца, некоторый тип кода может определять, являются ли условия правильными (заплатила ли Алиса Бобу? Прошло ли 3 месяца?) и запускать выполнение (доставка дивана путем отпуска эскроу) без наличия у какой либо из сторон возможности отступить.

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

Умные контракты достаточно тупые

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

смарт контракты

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

Другими словами, создание контракта без необходимости в доверии означает, что мы на самом деле не можем позволить себе неопределенность, что добавляет еще одну проблему.

Смарт контракты действительно сложны

Из-за огромного количества централизованного маркетинга в исполнении команды Эфириума, существует ложное верование о том, что Смарт Контракты существуют лишь в Эфириуме. Это не правда. У Биткойна, с самого начала в 2009 году, существовала поддержка таких контрактов через язык программирования Script. По факту, смарт контракты существовали задолго до Биткойна, с 1995 года. Разница в языках смарт контрактов Биткойна и Эфириума в том, что язык Эфириума Тьюринг-полный.

Таким образом, Solidity (язык смарт контрактов Эфириума) позволяет создавать более сложные контракты за счет усложнения процедуры их анализа.

смарт контракты

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

смарт контракты

Исполнение кода в Тьютринг-полном окружении полно рисков и сложно в анализе. Полная защита Тьюринг-полного контракта становится эквивалентом доказательства, что компьютерная программа полностью лишена дыр. Мы понимаем, что достичь подобного очень тяжело, так как почти каждая существующая в данный момент программа имеет в себе ненайденные дыры.

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

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

Решением Эфириума было взвалить эту ношу на авторов смарт контрактов. Именно они должны убедиться, что их контракты делают именно то, что должны.

Смарт контракты на самом деле не контракты

В то время, как ответственность за защиту контрактов авторами звучит бодренько в теории, на практике, все это вылилось в серьезные централизующие последствия.

Эфириум был запущен с идеей о том, что «код есть закон». Так и есть, контракт в Эфириуме — единственный авторитет и никто не может превозмочь его. Эфириум создал четкое послание к разработчикам контрактов, о том что они сами по себе. Если ты облажался, создавая контракт, то в каком-то смысле, ты этого заслуживаешь. Это привело к катастрофе The DAO, когда люди потеряли все токены.

DAO означает «Децентрализованная Автономная Организация», и фонд был создан Эфириумом чтобы показать, на что способна платформа. Пользователи могли класть деньги в контракт DAO, и получать проценты от инвестиций, которые совершало DAO. Решения сами по себе были бы всеобщими, и децентрализованными. Проект собрал 150 миллионов долларов в токенах ETH, в тот момент токен торговался по цене в 20 долларов. Все это хорошо звучало в теории, но на практике наличествовала одна проблема. Код не был безопасен, что позволило анониму найти способ и вытащить из DAO все деньги.

Многие называли человека, который выгребал деньги из смарт контракта The DAO, «хакером». В том смысле, что «хакер» нашел способ украсть деньги из контракта способом, не предусмотренным разработчиками, это правда. Но в более широком смысле, это был вовсе даже не хакер, просто некто, принявший во внимание трещины в смарт контрактах. Это не отличается от случая, когда изобретательный комитет по персоналу находит дыру в налоговых законах чтобы избавить своих клиентов от лишних трат на войну и деградацию.

Что произошло далее, так это то, что Эфириум решил, что код больше не является законом, и откатил блокчейн и последовательность транзакций, вернув деньги из The DAO инвесторам. Другими словами, авторы контрактов и инвесторы сделали нечто тупое, а разработчики Эфириума решили их спасти.

смарт контракты

Последствия данного инцидента хорошо задокументированы. Родился Эфириум Классик, защитив право DAO быть а также принцип «код есть закон». В дополнение к этому, разработчики начали постепенно отходить от использования Тьюринг-полных смарт-контрактов, так как они доказали, что их совсем нелегко сделать защищенными. Стандарты ERC20 и ERC721 самые часто используемые смарт контракты для создания токенов в Эфириуме, и важно отметить, что оба типа контрактов могут быть написаны без использования полноты Тьюринга.

Смарт контракты работают лишь с инструментами цифрового предъявителя

Даже без наличия полноты Тьюринга, смарт контракты смотрятся достаточно хорошо. Все таки, кому нравится необходимость ходить в суд чтобы получить нечто, законно ему принадлежащее? Разве использование смарт контрактов не намного более легкое, чем использование обычных?

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

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

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

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

смарт контракты
Белки выкупили больше половины наших акций. Белки нами владеют!

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

Еще больше, даже если государственные службы говорят о том, что токен и правда отражает дом, что тогда произойдет, если токен будет украден? Теперь дом принадлежит вору? Что, если токен потерялся? Разве теперь дом невозможно будет продать? Может ли токен дома быть пере-выпущен? Если да, то кем?

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

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

смарт контракты

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

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

Заключение

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

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

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

Автор: Джимми Сонг — предприниматель, учитель, программист Bitcoin и некоторых блокчейнов.

One thought on “Смарт Контракты: вся правда о них

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *