Поделиться этой статьей

Кодекс — это закон? Пока не совсем

Должен ли код быть законом? В этой Мнение Лукас Абегг утверждает, что необходимо преодолеть множество научных препятствий, прежде чем это станет возможным.

После провала эксперимента DAO разгорелись жаркие Политика дебаты о том, как дальше развивать блокчейн Ethereum.

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

STORY CONTINUES BELOW
Не пропустите другую историю.Подпишитесь на рассылку Crypto Daybook Americas сегодня. Просмотреть все рассылки

Однако совсем немного времени было уделено вопросу, что такоесмарт-контрактна самом деле способен выступать.

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

Давайте подробнее рассмотрим возможности смарт-контрактов.

Характер информации

Особенностью смарт-контракта по своей сути является обработка информации.

Хотя понятие информации различается и универсального определения не существует, полезно начать с того, кактеория информацииимеет дело с информацией, поскольку теория информации является частью ДНК современной компьютерной науки.

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

Интересная статья о сложности определения «намерения» быланедавно написаноВиталик Бутерин.

Синтаксическую информацию можно анализировать и измерять (какШеннон и Ткач сделал в "Математической теории коммуникации") и открыт для математического доказательства. Семантическая информация, однако, - это то, что Human приписывает символу. Она может представлять все, о чем способен думать Human мозг.

Нормализация семантической информации и обеспечение ее обработки — задача, мягко говоря, непростая. Информатика (в частности, исследователи искусственного интеллекта)борется очень многов попытке захватить семантическую информацию, такую как естественный язык, и представить ее значение в программном обеспечении. Что еще хуже, семантическая информация может быть любой: от довольно простой до очень сложной.

Довольно простая и формальная семантическая информация, например, патент, уже может быть обработана компьютерным языком. Представьте себе файл САПР запатентованного виджета на компьютере, который позволяет 3D-принтеру распечатать именно то, что содержит указанный файл САПР.

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

Отсутствует управление

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

Чтобы подчеркнуть, почему так важно уважать эту двустороннюю природу информации, мы можем взглянуть на The DAO. Императив «не навредить» (т. е. семантическая информация) был написан только на домашней странице The DAO, а не в его коде (который, по большей части, обрабатывал только синтаксическую информацию).

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

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

Математическое доказательство и неизменность

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

Этого нельзя было бы сделать, если бы была задействована семантическая информация. Для Шеннона математическое доказательство было важно для продвижения науки.

Кодирование смарт-контракта на самом деле не продвигает науку, и поэтому математическое доказательство не важно, ONE подумать. Однако как только вы добавляете неизменяемость через реализацию блокчейна в свой код, вы поднимаете планку правильности своего кода на невероятно высокий уровень, если не полностью недостижимый (ср.:более подробный анализ).

Поскольку ваш код неизменяем и не может быть изменен, вам нужно быть абсолютно уверенным, что в нем нет недостатков.

Поэтому математическое доказательство вашего кода внезапно стало казаться весьма важной функцией.

И все же, Solidity, используемый в Ethereum для реализации смарт-контрактов, не является языком, допускающим математическое доказательство (т.е. не является ссылочно прозрачный). Это позволило реализовать семантическую информацию или, выражаясь явно, намерение разработчиков. Рекурсивный вызов, который привел к взлому The DAO, должен был использоваться определенным образом, как и задумывали разработчики.

Очевидно, что такое намерение не было зафиксировано кодом и, следовательно, T помешало хакеру The DAO опустошить The DAO.

В заключение: неизменность и корректность кода подобны двум чашам весов. Чем больший «вес» вы кладете на неизменность, тем больше заботы вам следует проявлять относительно корректности вашего кода.

Необходимость в проверяемом коде

Если почти весь ваш смарт-контракт неизменяемо выполняется на блокчейне (как некоторые энтузиасты принципа «код — это закон», считая, что это единственный путь), вы, скорее всего, не сможете вложить достаточный «противовес» в правильность своего кода.

Все эти выводы далеко не новость.

Еще в 2002 году Ник Сабо написал статью оофициальный язык для контрактов, в котором он прямо указал, что использование процедурного компьютерного языка может быть заманчивым, но приносящим больше вреда, чем пользы. Это даже T упоминает все существующие языки программирования которые используются в финансовой отрасли или новые способы создания языков программирования, которые позволяют проводить формальные доказательства (примерыздесьи здесьhttps://legalese.com/docs).

Даже разработчик Solidity, доктор Гэвин Вуд,воображаемыйна ранней стадии разработки Solidity — языка, допускающего математическое доказательство, и новейшие исследования предполагают, чтоперевод Solidity на F* потребуется достичь проверяемого кода.

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

Заполнение технического вакуума

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

Такой обходной путь может лежать в правовой системе классического мясного пространства, в частности, в определенной области, называемойАльтернативное разрешение споров (АДР).

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

У этого также есть приятный побочный эффект, поскольку это фактически классический-мясной-юридически обязательный. Это грозное игровое поле для исследования, например:идеи футархии, такие как Рынки предсказанийили новые концепции атрибуции ценностей, такие какОбратная подачадля выбора арбитра. И даже не очень сложно реализовать такие правила арбитража в смарт-контракте.

Просто убедитесь, что каждый пользователь сервиса смарт-контрактов согласен подчиняться таким правилам арбитража, точно так же, как вы подчиняетесь частным арбитражным правилам (например, правилам ICANN).UDRP) при регистрации доменного имени.

Как может выглядеть такая LINK между смарт-контрактами и юридическими правилами мясного пространства, можно узнатьздесь. (Это не правила ADR, а правила договорного права. Однако реализация будет очень похожей).

Движение к законности

Поначалу может показаться странным использовать старые концепции для продвижения в новой области.

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

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

Использование такого инструмента управления, как правила арбитража, специфичные для смарт-контрактов, в сочетании с признанием того, что смарт-контракты не являются ни смарт-, ни контрактами, а скорее всего просто проверяемо исполняемым кодом (VEC), может предоставить способ тестирования новой Технологии менее катастрофическим способом, чем это было сделано с The DAO, а также может обеспечить определенность, необходимую для того, чтобы сделать смарт-контракты интересными для бизнеса.

По крайней мере, пока наука не придет к видению «код — это закон» и истинному положению дел.легальностьможно добраться.

Изображение гольфачерез Shutterstock

Note: The views expressed in this column are those of the author and do not necessarily reflect those of CoinDesk, Inc. or its owners and affiliates.

Picture of CoinDesk author Lukas Abegg