5. Технические основы децентрализованной кооперации
5.1 Предварительные замечания
В 1678 году, через тридцать лет после Вестфальского мира, немецкий философ Готфрид Вильгельм Лейбниц написал герцогу Ганноверскому и предложил создать постоянный архив документов для нужд управления. Предложение осталось без ответа, и в 1680 году Лейбниц повторил его преемнику герцога. И снова впустую. Но кто такой Лейбниц? Что именно он предлагал? И при чём здесь будущее управления?
Помимо трудов по метафизике (например, о монадах) Лейбниц известен спорами о природе пространства и движения с Сэмюэлом Кларком, соратником Исаака Ньютона, а также работами по философии религии и теории познания. Больше же всего он знаменит, пожалуй, тем, что независимо изобрёл дифференциальное и интегральное исчисление (и, между прочим, придумал вариант той самой нотации, которой мы пользуемся по сей день). Хотя эта часть его наследия не самая известная, Лейбниц чрезвычайно много писал о политической философии, праве и правительстве. Именно эти сочинения нас здесь и занимают — прежде всего там, где речь идёт о правительственных архивах.
В письмах герцогам Ганноверским Лейбниц описывал свой архивный проект как «место, где полезные для правительства бумаги хранятся так, что остаются целыми и неизменными для будущего сведения и при случае могут выступать заверенными доказательствами в суде». Современный бразильский философ Улиссес Пиньейро удачно резюмировал замысел: идея состояла в том, чтобы создать «инструмент, в основе которого — забота о будущих действиях государя. Его эпистемическая ценность — ценность виртуального механизма, направляющего действия государя».
Идея архива, судя по всему, захватила Лейбница целиком. В предложении герцогам Ганноверским он в мельчайших подробностях расписал, как охранять документы. Здание, где хранятся записи, он предлагал защитить так, чтобы бумагам не грозили ни плесень, ни мыши, ни черви, ни пожар, ни вражеское нападение. Внутренние хранилища, добавлял он, следует укрепить, а двери сделать железными. Самые же важные подлинники — держать в сейфе, спрятанном в стене.1
Одного Лейбниц, при всей своей гениальности (и притом что сам он был самым настоящим децентрализатором), похоже, не предвидел: эти записи можно децентрализовать — и тем самым защитить ещё надёжнее. Но откуда берётся эта надёжность?
Как мы увидим, централизованные хранилища записей создают в управлении точки отказа. Они открывают векторы атаки для внутренних и внешних врагов, притягивают коррупцию и беззащитны перед естественными напастями (например, перед плесенью, мышами, червями и огнём). Мы будем доказывать: чтобы архивы стали защищёнными, необходима децентрализация. Неудивительно, что Лейбниц этого не разглядел, хотя был децентрализатором и в вопросах политического суверенитета, и даже в метафизике (его монады — по-своему децентрализаторский проект). В конце концов, своё предложение он выдвинул более чем за три века до белой книги Сатоши, а безошибочным даром предвидения не наделён никто.
В этой и следующей главах мы разовьём некоторые идеи Лейбница — так, что, будь он жив сегодня, ему бы, думаем, понравилось. В этой главе мы поговорим о неизменяемых записях и о том, почему их делают возможными лишь децентрализованные протоколы, а затем изложим теорию защищённых децентрализованных протоколов. В следующей главе мы покажем, как некоторые неизменяемые записи — а именно ончейн-смарт-контракты — превращаются в «виртуальные механизмы», которые уже не просто «направляют действия государя», а исполняют эти действия автоматически.
5.2 Неизменяемые записи
В мае 1747 года дон Джузеппе Рапаччоли, приходской священник итальянской деревни Мачинессо, наблюдал за обустройством поля близ своей церкви — и наткнулся на большую бронзовую плиту с латинскими надписями. Сегодня её называют Tabula Alimentaria Traiana — алиментарная таблица Траяна; в ней 1,38 метра в высоту и 2,86 метра в длину. По сей день это крупнейшая бронзовая надпись античности из всех найденных. Дальнейшее изучение позволило датировать Таблицу 112 годом н. э. — временем правления римского императора Траяна (слово Traiana как раз и указывает на связь с ним).2
В начале II века н. э. Траян учредил в городах по всему Апеннинскому полуострову алиментарную программу. Она побуждала землевладельцев брать займы у правительства под залог своих владений. Проценты по этим займам выплачивались в виде продовольственного содержания для детей соответствующей округи. Иначе говоря, землевладелец мог занять у правительства деньги под залог земли — при условии, что проценты пойдут на помощь местной бедной детворе. Так император Траян сиюминутным подкупом побуждал землевладельцев долгие годы заботиться о местных детях.3
В нашем случае бронзовая Таблица закрепляла подробности алиментарного проекта Траяна в Велейе — сельском городке на севере Италии, неподалёку от римской колонии Плацентии (ныне Пьяченца). На плите записаны имена должников, расположение и стоимость их владений, а также суммы займов, полученных под эту заложенную землю (как правило, чуть больше 8 % от её оценочной стоимости).
У этой бронзовой плиты были свойства, которые нас особенно интересуют. Во-первых, она была публичной: её видел каждый в городе, и все знали, кто сколько должен и сколько землевладельцам положено платить на детей. Во-вторых, она была, по сути, неизменяемой. Как-никак, её отлили в бронзе. С тех пор как Таблица была утрачена, и до того дня, когда в 1747 году её нашёл отец Рапаччоли, в ней не изменилось ни единой детали.4
Информация на Таблице была не только публичной и практически неизменяемой — она давала ещё и «кибернетический» эффект (в исходном древнегреческом смысле слова). Делая обязательства публичными, плита помогала добиваться их исполнения. Каждый знал, чего от него ждут. Иначе говоря, перед нами не просто информация, а информация с управляющей функцией. Разумеется, гарантировать, что политика Траяна будет исполнена, записанные сведения не могли. И всё же создатель Таблицы, надо думать, рассчитывал, что она подтолкнёт людей выполнять свои обязательства — или хотя бы устыдиться, если они их не выполнят.
Можно вообразить и сценарий, где записанная информация играет прямую причинную роль: она закодирована в компьютерной программе, которая способна надёжно действовать на её основе. Эту мысль мы разовьём в следующей главе, а пока сосредоточимся на важности защищённой информации и посмотрим, что происходит, когда надёжных записей нет.
Подробные записи были жизненно важны для управления людскими сообществами с самых первых цивилизаций, о которых сохранились свидетельства. Древние шумеры оставили после себя обстоятельные записи — клинопись на глиняных табличках. Последующие цивилизации Ближнего Востока (вавилоняне, ассирийцы, эламиты, хурриты, касситы и хетты) тоже широко пользовались клинописными записями, расширяя с их помощью охват государственного контроля, — настолько широко, что их правовое ведение записей мы сегодня называем клинописным правом. Самый знаменитый памятник этого правового ведения записей — Законы Хаммурапи, по сей день один из лучше всего сохранившихся юридических текстов той эпохи. Клинописное право не только упорядочило отправление правосудия — оно скрепило управление, возможно, первой в мире империей и помогло проецировать её силу по всей Месопотамии.5
Стоит особо подчеркнуть роль исправного ведения записей в отправлении правосудия — мы ведь редко задумываемся о том, насколько важны надёжные записи. Прочувствовать это поможет пример посовременнее.
В 2008 году группа студентов юридической школы Карузо Университета Пеппердайна (Pepperdine Caruso School of Law) отправилась в Уганду — участвовать в проекте по модернизации угандийской правовой системы. Больше всего студентам бросилось в глаза плачевное состояние судебных архивов. Университетская газета так передала их впечатления: «Архив задуман как место, где судебные прецеденты бережно хранятся, индексируются и всегда под рукой у судей. Этот же архив ютился в глубине подвала здания Высокого суда: сотни неразобранных папок с делами, сваленных в тёмный грязный чулан».6
Первое, что здесь важно: если надёжных записей о судебных решениях нет, то нет и осмысленного понятия судебного прецедента. Каждое дело приходится разбирать заново — опираясь не на прецедент, а на те доводы, какие сочтёт нужными местный судья. Это не только плодит разнобой в судебных решениях: когда каждое дело нужно обосновывать с нуля, процесс сильно замедляется.
Отсюда — смежное соображение, которое едва ли придёт в голову жителю первого мира: ведение записей стоит денег. В западном мире судьи и суды располагают почти неограниченным доступом к секретарям, стенографистам и другим способам фиксировать прения и решения. Но в таких странах, как Уганда, это совсем не данность. Газета Пеппердайна отмечает и это: «У этой восточноафриканской страны не хватает средств, чтобы дать судьям помощников или секретарей: искать материалы, готовить и писать решения им приходится самим. Вдобавок в Высоких судах нет стенографистов, ведущих протокол заседания, — судьям остаётся записывать всё от руки». Как выразился студент-юрист из Пеппердайна Грир Иллингворт, «дело движется ровно с той скоростью, с какой судья успевает вести записи».7
Подобные ситуации не просто затягивают процессы — они бросают тысячи людей в опасную правовую неопределённость. Как выяснили студенты, немало несовершеннолетних, ожидающих суда под стражей, жили в убогих условиях — без сколько-нибудь надёжных записей об их делах, включая сами предъявленные обвинения, и без всякой надежды на скорое разрешение. Развал ведения записей загнал их в опасную правовую неопределённость.
Провалы в ведении записей ведут и к тому, что мы упускаем из виду злодеяния властей. В этом студенты убедились, обследуя мрачный подвал, служивший хранилищем угандийской правовой системы: «Среди груд судебных бумаг студенты наткнулись на бирюзовую книгу с грифом „Секретно“. Любопытство взяло верх, и вскоре они поняли, что нашли сотни приказов о казнях, отданных Иди Амином — военным диктатором и президентом Уганды в 1971–1979 годах».8
Может показаться неожиданным, насколько хрупким было ведение записей на протяжении веков. Скажем, в революционные эпохи одна из первых и главных целей восставших — найти и уничтожить архивы действующего режима. Помимо прочего, в записях хранятся досье на диссидентов, подробности их арестов и деятельности. Уничтожив такие записи, можно уберечь диссидентов от расправы со стороны правительства.
Другой мишенью становились записи о правах собственности. Ещё в русскую революцию 1905 года — Ленин называл её «генеральной репетицией» революции 1917-го — крестьяне громили помещичьи усадьбы, уничтожая и само имущество, и — что особенно показательно — долговые записи.9 Точно так же в Мексиканскую революцию повстанцы Эмилиано Сапаты уничтожали записи прежнего режима о владении землёй.
Пример Мексиканской революции особенно показателен: записи — и их отсутствие — сыграли роль по обе стороны конфликта. Возможно, толчком к революции стали действия асьенд — крупных поместий, отбиравших у бедных крестьян их исконные земли; это преступление стало возможным лишь потому, что постоянных записей о собственности не существовало. Когда люди Сапаты нападали на асьенды, среди их главных целей были только что заведённые записи о собственности. В увлекательном сборнике статей, составленном Карлосом Агирре и Хавьером Вилья-Флоресом, собрано множество примеров подобных архивных конфликтов в Латинской Америке. Эта традиция начинается с уничтожения записей майя конкистадорами в 1530 году, а в 1566-м Диего де Ланда, епископ Юкатана, уничтожил 27 кодексов майя.10 Сам де Ланда, описывая содеянное, замечал: «Мы нашли множество этих книг, и, поскольку не было в них ничего, кроме суеверий и дьявольской лжи, мы сожгли их все, о чём они скорбели с удивительной силой и от чего терпели великую муку».11
История архивных войн шла дальше: от уничтожения записей испанской инквизиции до разгрома муниципальных архивов во время восстания в Мехико в 1630 году. Она тянулась через весь XX век, на всём протяжении которого уничтожение архивов оставалось прочной традицией времён политических потрясений. Мы уже упоминали, как люди Сапаты уничтожали записи о собственности на землю; ту же стратегию повторили в Сальвадоре в 1932 году, когда «красные командиры» уничтожали записи о собственности в каждом занятом городе.12
Разумеется, хозяйственные записи — о собственности, о долгах — не единственная мишень архивных погромов: под удар то и дело попадают и культурные записи. Именно такой была цель сожжения кодексов майя в XVI веке. И, как подчёркивают Агирре и Вилья-Флорес, беда не только в намеренных попытках уничтожить записи: архивы гибнут и от простого небрежения, и от стихийных бедствий, и так далее.
Выше мы говорили о запущенных судебных архивах Уганды. Но подобных примеров хватает и в Латинской Америке — от землетрясения 1746 года в Лиме и Кальяо до недавнего трагического пожара 2015 года в Национальном музее Бразилии, уничтожившего 92,5 % собрания из 20 миллионов предметов, включая архив языков коренных народов. Сотрудник Федерального университета Рио-де-Жанейро сообщил о трагедии сетевому сообществу лингвистов:
Друзья, от отдела лингвистики не осталось ничего. Мы потеряли всю коллекцию языков коренных народов: записи, которые велись с 1958 года; песнопения на всех тех языках, носителей которых уже нет в живых; архивы Курта Нимуендажу — бумаги, фотографии, негативы, оригинал этно-историко-лингвистической карты с расположением всех этнических групп Бразилии, единственный экземпляр, сохранившийся у нас с 1945 года. Этнологические и археологические материалы по всем народам Бразилии начиная с XVI века… Невосполнимая утрата нашей исторической памяти. Невыносимо больно видеть всё это в пепле.13
Какое отношение утрата культурной информации имеет к управлению? Что ж, культура помогает сплачивать людей вокруг общего дела. Хорошие правительства часто берут на себя заботу о сохранении культурных записей — не только потому, что это благое дело, но и потому, что от этих культурных архивов нередко зависят сама идентичность и само существование правительства (вспомните, что Лувр содержит и поддерживает французское правительство, а галерею Уффици — итальянское). И даже если мы считаем, что сохранение национальной культуры — вообще не правительственная забота, охранять культурное наследие всё равно будет поручено каким-то институтам — а этим институтам тоже нужно должное управление, пусть даже самоуправление.
Важно понимать: гибель архивов — не единственная болевая точка. Похожего эффекта можно добиться, ограничив доступ к архивам. Иначе говоря, архив незачем уничтожать, если его можно сделать недоступным. А недоступных информационных архивов в мире предостаточно: одни засекречены, другие находятся в частных руках, третьи спрятаны за пейволом. Эту мысль ясно выразил Аарон Шварц в «Манифесте партизанского открытого доступа» (Guerilla Open Access Manifesto).14
Почему всё это важно? Потому что архивы — и доступ к содержащейся в них информации — жизненно необходимы для свободы, для демократии и, конечно, для того, чтобы мы могли знать, работает ли наше правительство так, как обещало (избрано оно демократически или нет). Жак Деррида так подытожил значение архивов для управления: «Нет политической власти без контроля над архивом, а то и над самой памятью. Действительную демократизацию всегда можно измерить этим существенным критерием: участием в архиве и доступом к нему, к его созданию и его истолкованию».15
Разбирая лейбницевский проект архива в связке со взглядами философа на национальный суверенитет, Пиньейро утверждал: само существование государства — в известной мере производная от архивов, которые оно ведёт.16 Если это кажется неправдоподобным, то зря. Ведь если в архивах хранятся свидетельства о договорах, о собственности на землю, о гражданстве, о хозяйственных контрактах, то по архиву, который ведут как следует, можно как минимум восстановить государство — его границы и его интересы. Исчезни архив после взрыва «архивной бомбы» — совсем не очевидно, что государство сумеет сохраниться в прежнем, добомбовом виде. Больше того, по здравом размышлении «архивная бомба» оказалась бы по меньшей мере столь же разрушительной, как «правовая бомба» Тома У. Белла, — ведь право держится на работающих архивах.
Если уподобить правительство живому телу, то информационные архивы — его ДНК: та записанная в клетках организации информация, что подсказывает, какие органы растить, где их размещать и как их регулировать. Так и архивы — не просто то, что государства у себя хранят. От архивов зависит сама идентичность государства. И это, убеждены мы, верно на любом уровне управления.
А теперь мы подходим к настоящему вызову. Архивам угрожают не только конкистадоры, революционеры, пожары и землетрясения. Архивы находятся под централизованным контролем — а значит, уязвимы ещё и перед коррупцией и нерадивостью тех, кто ведёт записи. Можно ли децентрализовать ведение записей и тем самым обезопасить их? Это один из главных векселей, выданных нам технологией блокчейна.
5.3 Децентрализованная кооперация
Один из самых печально известных случаев уничтожения записей произошёл 7 декабря 1985 года, когда Пабло Эскобар заплатил левой партизанской группировке М-19 («Движение 19 апреля») за то, чтобы та ворвалась в здание Верховного суда Колумбии в Боготе и уничтожила материалы уголовных дел, которые готовились против Эскобара и других narcotraficantes. Если верить сыну Пабло, обошлось это в скромный миллион долларов — сущие гроши для международного наркоторговца.17 Ущерб не ограничился документами по делу самого Эскобара. Как пишет Марк Боуден в книге «Убить Пабло» (Killing Pablo), нападение уничтожило материалы 6000 незакрытых уголовных дел и «искалечило колумбийскую правовую систему».18
Можно, конечно, попытаться одеть наши центральные точки отказа в броню (как и предлагал Лейбниц герцогам Ганноверским), но, увы, любые такие попытки по самой своей природе уязвимы для атак всех мастей. Пабло Эскобар выбрал грубый способ — партизанскую военную операцию, — однако нередко ничуть не хуже срабатывают и куда более мягкие методы.
Агентство DARPA (Управление перспективных исследовательских проектов Минобороны США) не случайно финансировало интернет на ранних этапах его развития. Децентрализованная — или хотя бы более децентрализованная — сеть менее уязвима для атак. В теории она должна пережить даже ядерную войну. Точно так же, если мы хотим, чтобы наши ценные документы и записи пережили атаку, стоит присмотреться к децентрализованным сетям. Впрочем, если отвлечься от лозунгов о децентрализации, выясняется: это легче сказать, чем сделать.
Если централизованное хранилище записей — точка отказа, то естественно предположить, что децентрализованная сеть — это множество точек отказа. Однако разница в том, что децентрализованная сеть может быть отказоустойчивой. Узлы сети выходят из строя, а сеть продолжает работать. Это видно на примере интернета: если падает один интернет-узел, весь интернет не рушится. Как мы увидим в следующем разделе, там, где дело касается денег и контроля, отказоустойчивость обретает совершенно новое измерение.
Большинство институтов доверия, с которыми мы имеем дело сегодня, централизованы. Скажем, национальные правительства — это, как правило, центральные органы власти, заседающие в столице страны. Большинство стран выпускает собственную валюту, и распоряжается ею центральный банк. Централизованы и наши разнообразные институты финансового доверия. Мы доверяем крупным банкам точно вести учёт того, сколько денег у нас на счетах и какие операции мы совершаем. Если мы переводим со своего счёта 100 долларов на ваш, наш банк списывает с нашего счёта 100 долларов. Если у нас с вами один банк, он просто зачисляет 100 долларов на ваш счёт — ни монеты, ни долларовые купюры, ни слитки золота при этом никуда не движутся. Меняется лишь запись в реестре, который ведёт банк. Если же банки разные, наш банк зачислит деньги на счёт вашего банка-получателя, и эту операцию зафиксирует централизованный межбанковский протокол вроде SWIFT.
Похожим образом устроена и покупка земли: право собственности на неё фиксирует какой-то один официальный регистратор. В Соединённых Штатах это титульная компания (title company). В Мексике (до 2016 года) эту роль играла бы местная notaría — нотариальная контора. Возможно, вы опасаетесь, что ваша американская титульная компания что-то напутает в бумагах или проглядит спор о том, кому принадлежит ваша недвижимость. На этот случай существует страхование титула. Однако записи о страховании титула, как и всё прочее, ведёт централизованная организация.
Беда централизации в том, что для любой системы — государственной ли, финансовой ли — она означает огромную точку отказа. Пабло Эскобар показал нам, как точкой отказа становятся централизованные судебные записи, но это верно для ведения записей любого рода. Если «официальные» финансовые записи хранятся в одном централизованном месте, их можно уничтожить, ударив по этому единственному месту. Централизованные записи — ещё и мишень для коррупции. Если записи о собственности на землю контролирует одна-единственная notaría, она превращается в мишень для подкупа и вымогательства — и тем самым в точку отказа всей системы прав собственности. А если официальную копию записей передать в центральное государственное ведомство, мишенью для коррупции станет уже это ведомство.
То же можно сказать о национальных валютах, государственной политике и других общественных институтах. Там, где есть центральный орган власти, этот орган становится вектором атаки для врагов — и лазейкой для тех, кто хочет обыграть систему в свою пользу. Причём в конечном счёте коррупция может оказаться самой банальной. В конце концов, у руководителей центральных банков есть друзья, а сами они обычно принадлежат к классу людей состоятельных. А значит, взгляды своего узкого дружеского круга банкиры, скорее всего, усвоят. Делает ли это их продажными или злодеями? Да не в том дело; куда важнее другое: должны ли такие решения оставаться в руках немногих центральных органов власти — органов, которым слишком легко попасть под влияние горстки людей? И неважно, на чём это влияние держится — на силе, на подкупе или просто на интересах близких друзей. Итог один и тот же.
Все мы знаем, что коррупция и более безобидные формы влияния существуют; знаем и то, что есть страны и институты, где коррупция и игра политическим влиянием цветут особенно буйно. Но вместо того чтобы критиковать сами инструменты, которыми мы пользуемся для управления, мы чаще виним нравы отдельных людей — продажных или попавших под недолжное влияние. Спору нет, на свете хватает морально нечистоплотных личностей, замешанных во всевозможной коррупции. Однако коррупция сопровождает управление сообществами всю его историю. Клеймить тех, кто попался в этой игре — на коррупции и торговле влиянием, — может быть, и приятно, но куда действеннее отказаться от таких архитектур управления, которые сами приглашают к коррупции и торговле влиянием.
Стоит заметить: многие ввязывались в коррупционную игру потому, что выбора у них не было. Как убедились колумбийские чиновники во времена Пабло Эскобара, ультиматум нередко звучал так: plata или plombo (серебро или свинец) — «возьми взятку и сделай, что мы требуем, — иначе ты и твоя семья можете поплатиться здоровьем». Можно, если угодно, винить тех, кто уступил такому давлению, но куда разумнее бить в корень проблемы — а корень этот в централизованных структурах управления.
Вы можете подумать, что иным, кроме централизованного, управление сообществами и быть не может: должен же кто-то вести все эти записи. Если каждый станет вести собственную запись, споров наверняка не миновать. Да и как их разрешать, если не через некий центральный орган, у которого есть доступ к правильной, официальной записи о собственности?
Одно дело — сказать, что централизованные записи вам не по душе; совсем другое — придумать, какой могла бы быть децентрализованная альтернатива. Первая мысль: можно просто наделать копий записи и раздать их всем участникам сети. Но тогда встаёт вопрос: что делать, когда возникнут споры? Что, если наши записи разойдутся? Велик соблазн решить, что нужна некая централизованная официальная запись, с которой всё можно сверять, — но так мы снова возвращаемся к централизованному ведению записей, то есть ровно к тому, от чего пытаемся уйти.
Централизованное ведение записей изобилует слабыми местами, но, как мы сейчас увидим, у децентрализованных сетей есть свои проблемы, и решать их придётся нам. Одна из них — так называемая проблема двойной траты. Предположим, мы предлагаем купить у вас штуковину за 100 долларов. Вы сверяетесь с общим распределённым реестром и убеждаетесь: на нашем счёте есть 101 доллар, так что заплатить мы в состоянии. Вы отправляете нам штуковину и списываете с нашего счёта 100 долларов. Но вот чего вы не знали: ровно в тот момент, когда мы покупали штуковину у вас, мы покупали и шестерёнку за 100 долларов у Смита. Смит тоже заглянул в свою копию реестра, увидел на нашем счёте 101 доллар и отправил нам шестерёнку. Очевидно, что получить деньги и вы, и Смит разом не можете. Кто же прав?
В этом и беда: когда в сети много узлов, злоумышленники могут оказаться на любом из них. Не выходит ли, что децентрализация лишь прибавляет нам головной боли — и со сбоями, и с коррупцией?
5.4 Византийские генералы, децентрализация и Сатоши
Проблема двойной траты — лишь один пример из целого класса задач, с которыми приходится иметь дело любой децентрализованной сети. В 1982 году Лесли Лэмпорт, Роберт Шостак и Маршалл Пиз опубликовали научную статью «Задача византийских генералов» (The Byzantine Generals Problem),19 которая и дала этому классу задач имя, под которым мы знаем его сегодня.
Вот одна из версий задачи: несколько византийских генералов, каждый во главе своей армии, должны согласованно атаковать город. Принципиально важно, что атака должна быть именно согласованной: если армий нападёт слишком мало, их разобьют. Но тут нас поджидает сразу несколько трудностей. Одна из них в том, что генералам нужно обмениваться сообщениями, находясь, по сути, во враждебном окружении. Что, если гонца перехватят? Ну, можно дождаться ответного сообщения о том, что ваше первое послание получено. Но откуда другому генералу знать, что его ответ дошёл до вас? Придётся отвечать, что вы получили подтверждение? Для согласованной атаки мало, чтобы приказ о наступлении получил каждый; нужно, чтобы каждый знал, что его получили все, и знал, что все знают, что все его получили, — и так далее.
Но трудности на этом не кончаются. Согласованная атака может сорваться и по вине генералов-предателей. А то и вовсе из-за нерадивых генералов, которые отсыпаются с похмелья. Значит, план атаки должен быть «отказоустойчивым»: атака обязана удаться, даже если среди наших генералов есть слабые звенья. Это и есть «византийская отказоустойчивость».
Эта проблема с нами ровно столько, сколько мы проектируем распределённые системы. Исследования византийской отказоустойчивости (хотя такого названия ещё не было) начались в 1950-е годы и вращались главным образом вокруг авиации. Чтобы понять почему, представьте самолёт с несколькими бортовыми компьютерами, любой из которых может отказать. Вы не хотите, чтобы один-единственный сбой обрушил всю систему, — но как заложить эти неизбежные отказы в саму конструкцию?
В 1970-е годы исследователи из Лаборатории Дрейпера выпустили технический отчёт об отказоустойчивом мультипроцессоре FTMP — многопроцессорной машине, избавляющей авиационные модули от уязвимости к одиночному отказу. В том же десятилетии Honeywell разработала мультимикропроцессорную систему управления полётом MMFCS, сосредоточенную на обнаружении византийских отказов. А в 1981 году SRI International выпустила технический отчёт о компьютерах управления самолётом — «Подход SIFT к отказоустойчивым вычислениям» (The software-implemented fault tolerance /SIFT/ approach to fault tolerant computing; SIFT — software-implemented fault tolerance, «программная отказоустойчивость»).
Как мы уже отметили, все эти работы были связаны с аэрокосмической отраслью: распределённых систем там в избытке, какие-то отказы неизбежны, но отказ не того рода может обернуться катастрофой. Недаром исследования, стоявшие за статьёй Лэмпорта, Шостака и Пиза «Задача византийских генералов», финансировали НАСА, Командование систем противоракетной обороны Армии США и Управление армейских исследований США.
В 1998 году Лэмпорт написал ещё одну важную статью, где предложил решение задачи византийских генералов — протокол Paxos. Отправная точка у Лэмпорта — эгейский остров Паксос, которым в древности (если верить рассказам) правил парламент, работавший «на полставки». На полставки — потому что торговля заботила правящих граждан больше, чем управление: никто на Паксосе не мог позволить себе заседать в парламенте острова постоянно, всем надо было странствовать и торговать. А значит, правительству нужно было как-то работать даже тогда, когда его голосующие руководители и рядовые члены то приезжали, то уезжали, — и каждому в странствиях требовалась собственная запись парламентских решений.
Аналогия с распределёнными системами и задачей византийской отказоустойчивости, надо думать, очевидна. Члены парламента голосовали бы по важным вопросам в разное время. Доступа к централизованному реестру у многих не было бы; больше того, если позволить людям голосовать в пути, даже центральный реестр в столице всё равно отставал бы от событий.
Как Паксос ухитрялся всё это проделывать, не знает никто, поэтому Лэмпорт сплёл историю о воображаемом протоколе, где записи о голосованиях копируются и раздаются участникам. У каждого члена парламента была бы собственная версия полной записи всех поданных к этому времени голосов — иначе говоря, описание состояния протокола. Свой голос каждый вносил бы в собственную копию записи несмываемыми чернилами. Когда реестры расходились бы и вспыхивал спор, устраивалось бы голосование: какое из изменённых описаний состояния считать официальным. Официальным становилось бы то, которое в итоге собирало большинство голосов (по понятным причинам такое голосование могло тянуться долго). По сути, вы голосовали бы не только по самим решениям, но и по официальной записи дополнений к реестру голосов и решений.20
Заметьте: для некоторых разновидностей задачи византийских генералов это совсем неплохое решение. Если у вас есть способ отслеживать, какие решения собрали большинство голосов, и запись об этом хранится у каждого, то — при условии, что большинства армий хватает для успешной атаки, — вы в выгодном положении. Решение отказывает лишь в одном случае: когда продажна большая часть генералов.
Протокол Paxos снял часть проблем распределённых сетей, но не все, и одну из оставшихся мы уже упоминали — проблему двойной траты. Напомним: это случай, когда у нас есть 101 доллар, и мы покупаем у вас штуковину за 100 долларов, а у Смита — шестерёнку за те же 100; ни один из вас не подозревает о мошенничестве, потому что оба сверяетесь с записями (описаниями состояния), а по ним у нас достаточно денег, чтобы расплатиться за товар.
Так мы подходим к 2008 году — публикации белой книги Bitcoin за подписью Сатоши Накамото — и к запуску Bitcoin в 2009-м. Многие — что вполне понятно — представляют себе Bitcoin чем-то вроде виртуальной монеты (слово «coin», в конце концов, прямо в названии), но метафора эта очень слабая. Если вы так называемый whole coiner — обладатель целого биткоина (BTC), — то никакой монеты, лежащей где-то в хранилище, нет. Куда вернее видеть в протоколе Bitcoin децентрализованную запись, реестр, в котором учтено, у кого что хранится, — реестр неизменяемый (как Tabula Alimentaria Traiana), открытый всем (какой была и Таблица), но, в отличие от Таблицы, децентрализованный. Он не лежит в одном месте: контроль над записью распределён по всей сети. Отсюда преимущество: единой точки атаки у него нет. Но с задачей византийских генералов — и прежде всего с проблемой двойной траты, которую до тех пор никто не решил, — ему всё равно приходится иметь дело. В этом и заключена монументальная гениальность белой книги Сатоши.
Вместо единственной централизованной власти, которая определяла бы официальную версию блокчейна, эту обязанность можно сделать переходящей. Более того, можно доказать, официальная ли перед нами версия блокчейна. Успешно воплотить эту общую стратегию можно по-разному. Но начать стоит с подхода Сатоши, которым Bitcoin пользуется по сей день, — с «доказательства работы» (proof-of-work).
Распределённый реестр должен ответить на три фундаментальных вопроса. Первый: как выбрать, какая версия реестра считается официальной? Второй: как доказать, что предъявленная версия реестра — та самая, официально выбранная? Третий: как протокол защищается от злоумышленников? Предложение Сатоши решает все три задачи одной идеей — уже упомянутым протоколом доказательства работы.
Право объявить официальную версию реестра получает тот, кто первым решит определённую криптографическую головоломку. Сложность головоломки подобрана так, чтобы новый блок (новая официальная версия реестра) появлялся примерно раз в десять минут. Плод этих усилий отвечает и на второй вопрос: это «криптографический хеш», по которому можно быстро понять, действительно ли предъявленная версия реестра — новая официальная.21 Изменись в реестре хоть одна цифра (одна цифра за всю его историю) — хеш выйдет совершенно другим. Считайте хеш безупречно надёжным свидетельством того, что блокчейн перед вами — официальная версия по состоянию на конкретную дату и время. А тех, кто разворачивает компьютерное оборудование, чтобы решать головоломку и создавать блоки (и получать за это награду), называют «майнерами».22
Итак, теперь у нас есть способ выбрать «официальный» блок — и способ доказать, что перед нами именно он. Но как быть со злоумышленниками? Тем, кто участвует в работе сети, протокол сам создаёт стимулы поддерживать целостность реестра: за созданные блоки положена награда, и выплачивается она в BTC. Злоумышленника же можно наказать — оставить без награды за блок. Учитывая огромные счета за электричество и вложения в оборудование, рациональный участник с конечными ресурсами счёл бы такую стратегию слишком дорогой: ведь те же самые ресурсы можно пустить в дело по правилам сети — и получать прибыль.
Проблема возникла бы и в том случае, если бы злоумышленники ухитрялись большую часть времени создавать официальные блоки сами. Но добиться этого можно лишь одним способом: накопить столько хеширующей мощности, чтобы решать криптографические головоломки чаще, чем все остальные участники, вместе взятые. А для этого понадобилось бы собрать вычислительную мощность больше половины суммарной мощности всех прочих компьютеров сети. Строго говоря, ничего невозможного тут нет, но раздобыть столько хеширующей мощности — и оплатить энергию на решение головоломок — стоило бы умопомрачительных денег. По оценкам 2021 года, Bitcoin потребляет энергии примерно столько же, сколько Финляндия,23 так что желающий подделать блокчейн должен быть готов потратить больше половины этого объёма на одно только электричество. Прибавьте к этому и цену контроля над всем необходимым майнинговым оборудованием.
В этом, пожалуй, и состояло самое глубокое прозрение Сатоши. Не нужно делать атаки невозможными — довольно сделать их невыгодными. Взломать Bitcoin можно — просто игра не стоит свеч. Как уже говорилось, доказательство работы — лишь один из способов добиться византийской отказоустойчивости и решить проблему двойной траты. Сегодня есть немало альтернативных протоколов, но об одном важном классе стратегий стоит сказать прямо здесь — о протоколах «доказательства доли» (proof-of-stake).
Замысел доказательства работы был в том, чтобы обезопасить сеть, сделав роль злоумышленника запретительно дорогой: понадобилось бы заполучить больше половины всей хеширующей мощности сети. До сих пор эта стратегия себя оправдывала, но она же навлекла на себя критику за расход энергии. Создаёт ли она, если смотреть шире, настоящую экологическую проблему — вопрос спорный (есть веские доводы за то, что она помогает сделать возобновляемую энергетику рентабельной).24 Но вопрос о других вариантах всё же встаёт. Один из них — доказательство доли (PoS).
В случае PoS сеть защищают сами узлы, создающие блоки: они блокируют криптовалюту (например, ETH) в стейкинге — вносят долю как своего рода залог того, что будут честно поддерживать целостность системы. Право создать блок здесь даёт не решение криптографической головоломки, а размер внесённой доли актива. Чем больше ваша доля, тем выше шанс, что блок доверят создать именно вашему узлу. Без вычислений не обходится и тут, но их ровно столько, сколько нужно, чтобы собрать блок и вычислить его криптографический хеш. К тонкостям мы ещё вернёмся — в том числе к вопросам, насколько PoS в самом деле децентрализован и как эту систему можно обыграть, — а пока нам важна общая идея и то, почему её можно считать разновидностью децентрализованного управления.
Есть, конечно, и другие протоколы, но их мы пока отложим: есть дело поважнее. Мы уже видели, как важны неизменяемые публичные архивы — и как важно для их безопасности, чтобы они были децентрализованы. Видели мы и то, что за последние несколько десятилетий мы выработали общие стратегии децентрализованных вычислений — их венцом стали протоколы доказательства работы и доказательства доли. Но это лишь первый проблеск того, что способны дать нам новые технологии. Впереди не только децентрализованные реестры: как мы увидим в следующей главе, децентрализованные смарт-контракты откроют для управления сообществами целый мир новых возможностей.
Примечания
- Ulysses Pinheiro, ‘Leibniz on the Concepts of Archive, Memory, and Sovereignty’, Für Unser Glück Oder Das Glück Anderer, 3 (2016), 309–21 <https://www.academia.edu/39198781/Leibniz_on_the_Concepts_of_Archive_Memory_and_Sovereignty> [дата обращения: 16 апреля 2023 г.]. ↩
- Gianluca Bottazzi, ‘Varsi E La Tabula Alimentaria Di Veleia’, ValcenoStoria, 2020 <https://www.valcenostoria.it/2021/08/21/varsi-e-la-tabula-alimentaria-di-veleia-by-g-bottazzi-r/> [дата обращения: 24 января 2024 г.]. ↩
- Здесь мы оставляем в стороне вопрос о том, сколь благородна была программа Траяна: скорее всего, ею двигало опасение, что сельские области империи обезлюдеют. ↩
- Строго говоря, абсолютно неизменяемой она не была. В бронзовую доску, разумеется, можно вносить правки — и их действительно вносили: Таблицу обновляли ещё не один год, пока она не была утрачена. Больше того, о разнобое в её орфографии до сих пор спорят: ошибка это — или след перемен в самой латыни за те годы, что Таблица оставалась в ходу. ↩
- Encyclopedia Britannica, ‘Cuneiform Law’, Britannica <https://www.britannica.com/topic/cuneiform-law> [дата обращения: 28 октября 2024 г.]. ↩
- Joy Lynn Cole McMillon, ‘Law Students Leave Lasting Mark on Uganda’s Court System’, 2008 <https://law.pepperdine.edu/surf-report/posts/law-students-leave-lasting-mark-on-ugandas-court-system.htm> [дата обращения: 16 апреля 2023 г.]. ↩
- Там же. ↩
- Там же. ↩
- Mark D. Steinberg, The Russian Revolution, 1905-1921, 1st ed. (Oxford, 2017). ↩
- Carlos Aguirre and Javier Villa-Flores, From the Ashes of History: Loss and Recovery of Archives and Libraries in Modern Latin America (Chapel Hill, NC, 2015). ↩
- Inga Clendinnen, Ambivalent Conquests: Maya and Spaniard in Yucatan, 1517-1570 (Cambridge, 1987), 70. ↩
- Aguirre and Villa-Flores, From the Ashes of History. ↩
- <https://m.facebook.com/story.php?story_fbid=10107422574817418&id=5740086> [дата обращения: 28 октября 2024 г.]. ↩
- Peter Ludlow, ‘Aaron Swartz Was Right’, The Chronicle of Higher Education, 2013 <https://www.chronicle.com/article/aaron-swartz-was-right/> [дата обращения: 2 января 2024 г.]. ↩
- Derrida, Archive Fever. ↩
- Pinheiro, ‘Leibniz on the Concepts of Archive, Memory, and Sovereignty’, 309–21. ↩
- Другой вопрос, можно ли верить сыну Эскобара. В том же интервью 2014 года он утверждал, что Пабло не убили — тот покончил с собой. Но какова бы ни была настоящая цена, важно другое: централизованное хранилище записей создаёт уязвимое место. Интервью на испанском можно найти онлайн: <https://www.wradio.com.co/noticias/actualidad/pablo-escobar-se-suicido-no-lo-mataron-su-hijo/20141106/nota/2495321.aspx> [дата обращения: 30 октября 2024 г.]. ↩
- Боуден — журналист, известный, пожалуй, прежде всего книгой «Падение „Чёрного ястреба“». ↩
- Leslie Lamport, Robert Shostak and Marshall Pease, ‘The Byzantine Generals Problem’, ACM Transactions on Programming Languages and Systems, 4/3 (1982). ↩
- Lamport, ‘The Part-Time Parliament’. ↩
- Криптографический хеш можно представить себе как подобие электронной подписи, которая подтверждает целостность файла — в нашем случае реестра. Стоит изменить в файле хотя бы один элемент, и правильный хеш (та самая подпись) уже не получится. Тем самым подпись служит доказательством, что реестр не искажён. ↩
- «Майнерами» называют и сами компьютеры, которые выполняют хеширование. ↩
- Jon Huang, Claire O’Neill and Hiroko Tabuchi, ‘Bitcoin Uses More Electricity Than Many Countries: How Is That Possible?’, New York Times, 9 March 2021 <https://www.nytimes.com/interactive/2021/09/03/climate/bitcoin-carbon-footprint-electricity.html> [дата обращения: 28 октября 2024 г.]. ↩
- Смысл в том, что у многих возобновляемых источников энергии — например, у ветра — значительная часть выработки пропадает впустую; энергию же, произведённую во внепиковые часы, можно пустить на майнинг Bitcoin — и тогда рентабельность такого способа генерации резко растёт. ↩