«Код есть закон» — это не закон. Часть 1

natsionalnaya-kiberbezopasnost-2-retina

Когда в 1999 году Лоуренс Лессиг опубликовал книгу Code and Other Laws of Cyberspace («Код и другие законы киберпространства»), она сразу стала классическим изданием о технической политике. В ряде глав описано, как технологии, или код Западного побережья, исполняли роль инструмента для регулирования поведения людей наравне с более очевидными традиционными аналогами: регулированием согласно закону, или коду Восточного побережья; экономикой (налоги и повышение цен → сдерживание потребления); историческими социальными нормами, которые навязывались давлением общественности.

Выражение «Код есть закон» стало кратким изложением этой модели. Сегодня для многих этот тезис означает, что код должен считаться законом. Совсем недавно представители Ethereum Classic использовали это выражение, оспаривая вмешательство в ситуацию со взломом DAO. И это хороший момент, чтобы вернуться к первоисточнику. В новом воплощении затерялась тонкость аргументов из книги: Лессиг не был активным сторонником постепенной замены законов на коды в области регулирования поведения общества.

Цепочки отступников: Ethereum и Ethereum Classic

Сеть Ethereum Classic появилась в результате серьезного раскола в сообществе криптовалюты, который возник из-за «контрактов». В двух словах: немецкий стартап попытался создать краудсорсинговую венчурную фирму в виде «умного контракта» под названием The DAO (децентрализованная автономная организация). Это был не обычный контракт, прописанный на английском языке или хотя бы запутанном языке профессиональных юристов. Вместо этого он был составлен на точном, формальном языке компьютерного кода. Контракт размещался в блокчейне Ethereum, его структура была публично доступна, а каждый шаг его выполнения был прозрачен для всех. Это был смелый проект, собравший более 130 млн долларов по обменному курсу Ether/USD на тот момент. Как оказалось, проект был слишком смелым: в логике контракта обнаружилась критическая ошибка, которая позволила злоумышленнику вывести 60 млн долларов из этих фондов.

В пространстве криптовалют царит либертарианская идеология. Более крайние позиции ищут заговоры в деятельности Федеральной резервной системы и снижении ценности валюты путем централизованного вмешательства. Поэтому очевидно, что решение Ethereum Foundation — ближайшего аналога правительственного органа/учреждения/Политбюро в этой предположительно децентрализованной системе — о предоставлении помощи DAO вызвало споры. В конце концов в самом протоколе Ethereum изъяна не было. Как децентрализованная платформа для исполнения «умных контрактов», описанных компьютерным кодом, система работала согласно обещаниям разработчиков. И ошибка обнаружилась в одном из тысяч контрактов, написанных для исполнения на этой платформе. Но неудобства вызывал тот факт, что этот один контракт заключал в себе почти 10 % всего существующего на то время эфира, то есть самой валюты. Этот случай можно занести в учебное пособие по поведенческой экономике в качестве отличного примера того, как спасение от банкротства, клановый капитализм и «слишком крупная фирма, чтобы рухнуть» могут естественным образом появиться даже в децентрализованных системах. И тогда было решено осуществить хард-форк, чтобы переписать историю блокчейна, отменить кражу, аннулировав те транзакции, которые использовали уязвимость контракта.

Между форком и наковальней

Блокчейн — это механизм достижения согласованности в распределенной системе, состоящей из тысяч отдельных нод. Если механизм рушится и ноды не могут сойтись во мнении относительно положения дел в мире — какие транзакции действительные, какой баланс в каждом аккаунте, кому принадлежит долг и т. д. — можно забыть о существовании единой цепочки. Вместо нее появляются две цепочки или более. Форк разделяет систему на несовместимые фрагменты или параллельные вселенные с разными состояниями: платеж был принят в одной цепочке, но так и не получен в другой, или долг оплачен только в одной цепочке. Прежде чем представители Ethereum начали осуществлять форки на регулярной основе, они боялись их и всеми силами избегали. Блокчейны спроектированы так, чтобы их можно было быстро ликвидировать и снова «наставить» на правильный путь, чтобы добиться согласованности. Краткосрочные форки осуществляются постоянно: ожидаемо, что в крупной распределенной системе не каждая удаленная нода будет вовремя синхронизироваться с остальными. В Биткойне нередко случается, что конкурирующие майнеры добывают новые блоки почти одновременно, и каждая группа направляет свои результаты по разным цепочкам. Но протокол корректирует такие расхождения в соответствии с правилами, которые позволяют определить одну цепочку как «победителя», а остальные быстро удалить, чтобы в них не попадали новые блоки. На практике это хорошо работает, потому что большинство форков осуществляются непреднамеренно. Это случайный побочный эффект децентрализации и ограничений распространения информации в распределенной системе. Иногда форки могут возникать из-за ошибок. С одной из них представители Биткойн столкнулись в 2013 году, когда ноды со старой версией ПО начали отклонять блоки, которые более новая версия рассматривала как действительные.

До недавнего времени считалось странным, если форк осуществляется намеренно. Основная команда Биткойна, в частности, придерживается философии неприязни к форкам, даже если это означает отказ от возможности быстрого развития протокола путем общих принудительных обновлений с жесткими сроками. Именно таким образом представители Ethereum Foundation предложили устранить кражу средств DAO. Обновленные версии ПО Ethereum должны были проигнорировать особые транзакции, которые относились к краже, то есть переписать «историю» блокчейна, чтобы вернуть средства истинным владельцам. Представьте, что компания Intel, производитель процессоров с архитектурой x86, которые стоят в большинстве ПК, решила реконструировать свое прекрасно работающее изделие, чтобы обойти ошибку Windows, потому что Windows — самая популярная ОС, которая работала на x86. Это то же самое. (Есть и альтернативное мнение: одни критики указывали на конфликт интересов в Ethereum Foundation, так как некоторые члены фонда держали доли в DAO. В таком случае представьте, что Intel реконструирует свои микросхемы, чтобы компенсировать проблемы из-за ошибок Windows, потому что компания является инвестором Microsoft).

Не все были согласны с этой идеей. Отколовшаяся группа, которая отказалась мириться с вмешательством, взяла название Ethereum Classic. Эта группа решила поддерживать предыдущую версию ПО Ethereum, которое выстраивало блокчейн с настоящей историей, без изменений. Сначала представители Ethereum Foundation не обращали внимания на оппозицию. Предполагалось, что ситуация решится сама собой, что обычно и происходит при осуществлении форков: одна цепочка становится главной, другие удаляются, а майнеры работают на «победителя». Но в реальности все получилось не так. Если подумать, то такой исход был предсказуем, учитывая фундаментальную разницу между случайными форками, которые являются побочным эффектом децентрализации, и намеренными форками, которые осуществляются принудительно. Проект Ethereum Classic (ETC) сохранил примерно 10 % от скорости хеширования основной сети Ethereum. ETC также достигла ценности примерно в 10 % от основного оппонента и стала самостоятельной ликвидной валютой, когда биржа Poloniex внесла ее в список доступных инструментов для торговли.

После хард-форка пыль может и улеглась, но разумность спасения DAO по-прежнему вызывает споры в пространстве криптовалют. Недавно сторонники ETC ухватились за старую идею: код есть закон. Согласно такой аргументации контракт DAO был исполнен в блокчейне, как и полагалось. Все, начиная со сбора средств до момента кражи и безнадежных попыток спасения, происходило в соответствии с условиями оригинального контракта. Если система Ethereum должным образом исполняла условия контракта, чем можно оправдать внезапное вмешательство для изменения его условий? Если код — это закон, как определил Лессиг, то хард-форк DAO представляет собой «незаконное» вмешательство в финансовую систему контрактов ввиду нарушения его условий, описанных в коде:

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

Продолжение следует…

Источник: randomoracle.wordpress.com



Рубрики:DAO, Мнение, Ethereum, смарт-контракты, спорный форк

Метки: , ,

3 replies

  1. А что, это трудно было нагуглить?

    When you come to a fork in the road, take it.
    Подъехав к развилке на дороге, следуйте по ней. — Берра сказал это, объясняя как доехать до его дома. На дороге есть развилка, и какой бы путь вы не выбрали, вы приедете к его дому.

    Читается не так хорошо, как в оригинале, но вполне ОК.

    P.S. https://impgun.wordpress.com/2016/11/27/%D1%81%D0%B2%D0%B8%D1%81%D1%82%D0%B0%D1%82%D1%8C-%D0%B2%D1%81%D0%B5%D1%85-%D0%BD%D0%B0%D0%B2%D0%B5%D1%80%D1%85-d/

Trackbacks

  1. Проблемы «умных контрактов» по мнению специалистов — EthereumClassic
  2. Великое криптовалютное ограбление — EthereumClassic

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s