[Из песочницы] Падение криптовалюты Ethereum и сомнительное будущее децентрализованных организаций

Децентрализованные организации (DAO: Decentralized autonomous organization) являются одной из главных инноваций, которые стали возможны благодаря блокчейну Ethereum, позволяющему хранить в себе так называемые »контракты». Каждый контракт имеет свой собственный адрес (по аналогии с адресами кошельков Bitcoin), а по сути — представляет из себя программу со сводом правил, который исполняется в случае проведения транзакции с ним. Главной особенностью DAO как организации является отсутствие посредников в лице человека — правила принятия решений, и, соответственно, распоряжения средствами организации принимаются при исполнении кода, использованного при создании этого контракта. Именно это и сыграло ключевую роль в нападении на крупнейшую децинтрализованную организацию — »The DAO» 17 июня 2016 года (подробнее об организации можно почитать в недавней статье на Geektimes).

image
Атакующий использовал уязвимость рекурсивного вызова, предупреждение о которой появилось как минимум с 12 июня, однако сооснователь The DAO Stephan Tual в своём блоге утверждал, что наличие этого бага никак не скажется на средствах организации (в совокупности — 8.26 миллионов ETH, или около 10% от всего объёма рынка) и все необходимые меры предосторожности были приняты, что не помешало 5 дней успешно вывести злоумышленнику на свой кошелёк более 44% всех средств организации. Более подробно о технических особенностях атаки можно почитать здесь, но в целом — наличие уязвимости стало возможным благодаря стечению нескольких факторов и проблем в разработке контракта.

За атакой последовала реакция основателя Ethereum Виталика Бутерина, который просил майнеров — людей, ответственных за запись транзакций в блокчейн, приостановить транзакции до выяснения причин утечки средств. Любопытно, что предложение приостановки касалась всех транзакций несмотря на наличие ошибки лишь в одном, пусть и не самом маленьком, контракте в сети. Такое поведение основных разработчиков блокчейна резко разделило настроения в сообществе Ethereum на Reddit.com на диаметрально противоположные: часть пользователей была рада быстрой реакции на проблему, другая же — указывала на преференции ко владельцам крупных аккаунтов (контрактов) в сравнении с рядовыми пользователями — ведь в случае приостановки торгов все пользователи потеряли бы возможность регистрировать транзакции независимо от их связи с организацией, которая подверглась атаке.

Дальнейшее развитие событий возможно в трёх направлениях:

  • »Soft-fork»: ограничить транзакции с кошелька злоумышленника, но не возвращать деньги в организацию The DAO
  • »Hard-fork»: отменить транзакции перевода средств на счета злоумышленника и вернуть средства владельцам токенов The DAO
  • Бездействие: оставить все средства на счету злоумышленника и предоставить ему возможность распоряжаться ими как вздумается


Моральная дилемма заключается в том, что сам факт проведения транзакций по переводу средств мошеннику в рамках запрограммированного The DAO контракта, согласно правилам этой же организации — легитимизирует их:

The terms of The DAO Creation are set forth in the smart contract code existing on the Ethereum blockchain at 0xbb9bc244d798123fde783fcc1c72d3bb8c189413. Nothing in this explanation of terms or in any other document or communication may modify or add any additional obligations or guarantees beyond those set forth in The DAO«s code. Any and all explanatory terms or descriptions are merely offered for educational purposes and do not supercede or modify the express terms of The DAO«s code set forth on the blockchain; to the extent you believe there to be any conflict or discrepancy between the descriptions offered here and the functionality of The DAO«s code at 0xbb9bc244d798123fde783fcc1c72d3bb8c189413, The DAO«s code controls and sets forth all terms of The DAO Creation.

Перевод:

Правила создания организации The DAO установлены в рамках программного кода «умного контракта» в блокчейне Ethereum по адресу 0xbb9bc244d798123fde783fcc1c72d3bb8c189413. Ничто в рамках данного объяснения правил контракта или любого другого документа или сообщения не может изменить или добавить дополнительные обязательства или гарантии в дополнение к установленным программным кодом The DAO. Любое разъяснение правил или другие описания даны лишь в образовательных целях и не заменяют или модифицируют правила установленные в коде The DAO расположенном в рамках блокчейна. В случае возникновения конфликта интересов или любых разночтений правил указанных на данной странице и кодом по адресу контракта 0xbb9bc244d798123fde783fcc1c72d3bb8c189413, программный код должен нести предопределяющее значение в определении правил создания The DAO


Таким образом, в свободной интерпретации правил, самостоятельно провозглашенных создателями системы — любые операции, дозволенные самим кодом программы должны признаваться законными (с чем могут быть не согласны традиционные юристы, но это отдельный разговор). Попытка же ограничить доступ к полученным средствам в рамках предложенных организацией soft- и hard-fork’ов является прямым противоречием идеологии организаций, управляемых исключительно машинным кодом.

Любопытно, что на главной странице организации Ethereum указаны основные свойства приложений, построенных на основе этого блокчейна:

Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference.

Перевод:

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


Создатели блокчейна так же ссылаются на строгое следование инструкциям кода и невмешательству третьих сторон в работу кода, однако, предложенные изменения говорят об обратном — в случае их принятия вопрос непредвзятости системы ставится под сомнение. Также оппоненты отмены операций указывают, что несмотря на наличие уязвимостей и во многих предыдущих контрактах — отмена операций ранее не производилась, и руководство блокчейна впервые занимается исправлением проблем на уровне отдельного контракта, а не блокчейна в целом, который действовал строго согласно своим инструкциям и в рамках нормы. Ставится под вопрос и непредвзятость создателей системы, ведь несмотря на наличие выбора для майнеров — идти по пути уже предложенного soft-fork’а или нет, запуск обновления платформы с изменениями — идёт по умолчанию, в то время как для отказа от изменений — необходимо использовать дополнительный флаг --no-dao-soft-fork.

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

Таким образом, любой вариант развития событий ведёт к негативным последствиям, откат операций и ограничение движения средств — противоречат самой концепции децентрализованных систем и DAO, отсутствие действий — может негативно сказаться на имидже Ethereum в глазах мировых финансистов. В любом случае, решение о дальнейшей судьбе украденных средств будет приниматься сообществом, ведь для принятия изменений в коде блокчейна — его должны установить не менее 51% всех майнеров системы, и вопрос будущего платформы по прежнему остаётся открытым.

Bonus: неподтверждённое письмо от злоумышленника, с требованием оставить его средства в покое.

© Geektimes