Развилка для блокчейна: как сообщество Ethereum решит проблему утечки
Кошмар участника любой централизованной системы — злоумышленные действия центрального игрока. Стоит ему захотеть, и депозиты утекут в офшоры, на выборах победит тот, за кого никто не голосовал, а данные о доходах поступят в продажу на Митинском рынке.
Дао сети
Непримиримые борцы с централизацией власти и денег, программисты-анархисты придумали децентрализованные системы — системы, где нет центрального игрока, а все записи о событиях хранятся в распределенной базе данных, поддерживаемой и хранящейся на компьютерах всех участников системы. Невозможно подделать книгу регистрации собственности, если все ее страницы хранятся у всех регистрантов, невозможна эмиссия денег без консенсуса общества, если главная книга банка-эмитента распределена по компьютерам всех граждан. Механизм распределенной записи — блокчейн, изобретен загадочным Сатоши Накамото 7 лет назад. Сатоши же придумал валюту (биткоин), записи о которой хранятся в блокчейн, и установил правила ее работы. Последователи Сатоши создали иные основанные на блокчейне системы, регистрирующие собственность, авторские права, заверенные документы и многое другое.
Простой русский парень из Торонто по имени Виталик Бутерин в конце 2013 года предложил хранить в распределенной базе (в блокчейне) не данные, а программы, работающие с ними, и назвал такую сеть Ethereum. Она дает безграничные возможности по созданию умных децентрализованных контрактов, децентрализованных организаций, децентрализованных хранилищ файлов, децентрализованной социальной сети — более-менее любой децентрализованной конструкции, которую ее создатель может запрограммировать. Идея Ethereum была с энтузиазмом встречена в программистском сообществе, краудсейл принес $18 млн. В августе 2015 года система заработала, и с этого момента различные инициативные группы создают новые и новые проекты на ее основе. Один из наиболее интересных проектов в Ethereum — так называемые децентрализованные автономные организации (decentralized autonomous organizations, DAO). Безусловно, это никакие не организации, а программный код, позволяющий имитировать простые и сложные акционерные отношения среди участников, сложивших свою криптовалюту в единый кошелек, выступающий аналогом расчетного счета. Самая необычная и самая успешная децентрализованная организация скромно называется The DAO и являет собой децентрализованный аналог венчурного инвестиционного фонда, участники которого голосованием принимают решение об инвестировании в тот или иной проект.
Любая децентрализованная система предполагает, что множество компьютеров ее участников постоянно обрабатывают ее операции, верифицируя и пополняя блокчейн. Эта работа именуется «майнинг» (от английского mining — добыча), и существует механизм взимания вознаграждения за нее (Виталик в случае с Ethereum именует это вознаграждение «платой за вычисления»). Оплата идет виртуальными деньгами, которые сама система и эмитирует. Таким образом те участники сети, которые хотят, чтобы их информация хранилась и обрабатывалась в распределенной базе данных, оплачивают эту работу в этерах (так называется криптовалюта в системе Ethereum), а те участники, которые исполняют эту обработку, зарабатывают этеры. Получить этеры также можно, купив их в обменных пунктах за другую виртуальную или обычную валюту. Покупают этеры не только активные участники сети, но инвесторы, уверенные в том, что они будут дорожать и дорожать. В обращении находится ~81 миллион этеров, что по текущему курсу составляет ~$1.1 млрд.
Дыра в защите
Созданный меньше месяца назад венчурный фонд The DAO привлек ~12 миллионов этеров (~$170 млн), что стало очередным ярким достижением Ethereum и прекрасным поводом для десятков статей о победоносном распространении идеологии децентрализации. Но, как это нередко бывает с программным кодом, код The DAO содержал ошибку, позволявшую злоумышленнику похищать средства из единого кошелька децентрализованной организации. И, как это почти всегда бывает с ошибками в защите, нашелся злоумышленник, который воспользовался возможностью хищения. В течение нескольких часов в его кошелек из общего кошелька перекочевала почти треть всех денег The DAO. Обнаружившая происходящий грабеж команда программистов The DAO смогла остановить хищение и не допустить перекачку всех денег инвесторов в кошелек злоумышленника.
Это ЧП случилось 17 июня, и сразу стало новостью планетарного масштаба, о которой написали даже в The New York Times. Рынок криптовалют забился в истерике, курс этер/доллар упал в два раза, пошли слухи о неминуемом закрытии The DAO и провале системы Ethereum (фундамент которой, если вдуматься, вообще не затронут произошедшим). Использованный анонимным злоумышленником механизм позволил ему завладеть 3.5 миллионов этеров (текущая стоимость ~$50 млн), но средства находятся в системе на счете, с которого не могут быть выведены до 14 июля. Мир децентрализованных систем не похож на привычную нам финансовую и социальную инфраструктуру: с одной стороны, он полностью прозрачен — ведь все операции записаны в распределенной базе данных, к которой имеет равноправный доступ каждый участник системы, и поэтому точный адрес кошелка злоумышленника в системе был установлен одновременно с фактом хищения, но, с другой стороны, все участники системы анонимны, и нет никакой возможности узнать, как зовется и где находится человек, владеющий кошельком с $50 млн.
По оценке Виталика Бутерина, с момента запуска Ethereum было не менее десяти проблемных случаев, вызванных ошибками в программировании приложений. Ошибка The DAO была, пусть и наиболее масштабной, но не первой. Но практически все эксперты уверены в том, что сейчас сообщество Ethereum и его неформальный лидер, 22-летний Виталик, стоят перед развилкой, которая на века может определить судьбу децентрализованных систем. Вот эта развилка.
Свобода или собственность
Первый вариант реакции на события (условно «либертарианский»): раз все процедуры при создании и запуске The DAO были исполнены, то сообщество Ethereum не может препятствовать естественному ходу событий и обязано молча смотреть на то, как хитрец переведет 3.5 миллиона этеров в кошелек обменника виртуальной валюты, а потом обналичит. Урок для развивающегося блокчейн-мира будет жесток и прост: как и в «настоящем», невиртуальном мире, каждый отвечает за себя и свои действия, а вкладчикам неверно запрограммированного инвестиционного фонда стоит винить в своих бедах только себя и фонд.
Второй вариант реакции (условно «диктаторский») — одномоментно, решением и действием Виталика, не дожидаясь консенсусной поддержки всех участников системы, изменить код Ethereum таким образом, чтобы вернуть каждый потерянный этер законным владельцам. Это действие (технический термин — hard fork) приведет к тому, что возникнет две версии блокчейна, и участники, которые не согласны с решением Виталика и не будут использовать обновленный код системы, не смогут обрабатывать новый блокчейн и де-факто окажутся «изгнанными» из системы. Единственный очевидный плюс в «диктаторском» варианте — скорость принятия и реализации решения, все остальные аспекты очевидно негативны.
Третий («компромиссный») вариант, который поддерживает Виталик и многие участники Ethereum, — инициировать обсуждение и голосование об изменении кода максимально корректным с точки правил системы способом (soft fork). Цель изменения остается той же, что и в предыдущем сценарии — не допустить вывода этеров из системы и вернуть деньги законным владельцам — меняется исключительно процедура введения этих изменений.
Есть некоторая ирония в том, что в бинарном компьютерном мире важнейшая развилка в развитии наиболее перспективного направления цифровой цивилизации не двойная, а тройная. «Либертарианский» вариант, отрицающий вторжение центральной силы (что единоличной, что коллективной) в виртуальный мир Ethereum, в наибольшей степени соответствует анархическому духу самой идеи децентрализованной системы. Это, конечно понимают администраторы Ethereum, потому потеря нескольких тысяч этеров у пользователей мало популярного приложения Ethereum раньше становилась причиной анализа выявленной структурной слабости платформы и внесения исправлений в код и документацию, но никогда не вела к «спецоперации» с целью возврата похищенных средств законным владельцам.
Но речь идет не о нескольких тысячах, а о трех миллионах этеров, и о самом популярном приложении, «горнисте» Ethereum-революции. Дэн Ариели в книге «Предсказуемая иррациональность» говорит об выборе между слабой постоянной болью (в рассматриваемом случае — постепенная потеря интереса к системе, в которой так легко потерять активы) и сильной кратковременной болью (массовое порицание идеологически сомнительного решения). Ариели подчеркивает, что интуитивное решение — предпочтение слабой постоянной боли — нерационально. Невозможно сомневаться в рациональности Виталика Бутерина, потому неудивительно его решение вернуть пострадавшим деньги. Из двух механизмов внесения изменений в код Ethereum вариант Виталик выбирает вариант корректного, демократичного (голосованием участников) изменения, потому что он верен тем самым ценностям децентрализованного сообщества, в нарушении которых его обвиняют оппоненты.
P.S. Хочу поблагодарить Дмитрия Бутерина за помощь в подготовке материала.
© РБК