Но что же в ней такого страшного? С точки зрения «децентрализации как отказоустойчивости» возможность крупных майнеров общаться друг с другом не несет никакого вреда. Но если посмотреть на «децентрализацию» как на барьер для вредоносного сговора, то картина становится довольно жуткой, ведь очевидно, что этот барьер не такой надежный. В реальности же прочность таких барьеров все еще далеко не нулевая; тот факт, что эти майнеры могут легко осуществлять техническую координацию и, скорее всего, сидят в одних и тех же группах WeChat, вовсе
Итак, какие еще барьеры могут препятствовать сговору? Вот несколько основных.
▓ Моральные барьеры. В книге «Лжецы и нарушители» (Liars and Outliers) Брюс Шнайер напоминает нам, что многие «системы безопасности» (замки на дверях; предупреждающие знаки, напоминающие людям о наказаниях…) также выполняют моральную функцию. Они напоминают потенциальным нарушителям, что те собираются совершить серьезный проступок и не должны этого делать, если хотят быть хорошими людьми. Децентрализация, возможно, выполняет ту же функцию.
▓ Провал внутренних переговоров. Отдельные компании могут начать требовать уступок в обмен на участие в сговоре, что может закончиться полным срывом переговоров (см. «проблему затягивания» в экономике).
▓ Контркоординация. Децентрализованность системы позволяет тем, кто не участвует в сговоре, легко создать форк, который не включает злоумышленников, и продолжить работу системы с его помощью. Барьеры для присоединения пользователей к форку невелики, а сама
▓ Риск обнаружения. Пяти компаниям по-прежнему гораздо сложнее объединиться ради чего-то, что большинство считает плохим, чем ради благой цели. К тому же пять компаний не слишком хорошо знают друг друга и не могут полноценно оценить риски того, что одна из них откажется от участия и тут же их сдаст. Отдельные сотрудники внутри компаний тоже могут оказаться доносчиками.
Все вместе эти барьеры создают весьма прочную защиту – достаточно прочную, чтобы предотвращать потенциальные атаки, при этом не мешающую тем же пяти компаниям быстро скоординироваться с благими намерениями. Например, майнеры блокчейна Ethereum вполне способны согласовать увеличение лимита газа, но это не значит, что они могут так же легко вступить в сговор с целью атаки на блокчейн.
Опыт блокчейна показывает, насколько полезна может быть разработка протоколов в форме институционально децентрализованных архитектур, даже если заранее известно, что большую часть деятельности будут осуществлять лишь несколько компаний. Эта идея не ограничивается блокчейном и может применяться в других контекстах.
Но успешно предотвратить вредоносные сговоры удается не всегда. Чтобы справляться с ситуациями, где сговор уже вступил в силу, было бы неплохо создать более устойчивые к ним системы – в которых сговор обойдется дорого и которые в случае чего будет легко восстановить.
Здесь помогут два ключевых принципа: 1) поддержка контркоординации и 2) риск собственной шкурой. Идея контркоординации заключается в следующем: мы знаем, что не можем спроектировать системы, которые были бы
В цифровых системах вроде блокчейнов (а также в более популярных системах вроде DNS[73]) основная и критически важная форма контркоординации – форкинг.
Если систему захватывает опасная коалиция, ее противники могут объединиться и создать альтернативную версию системы, работающую (практически) по тем же правилам, за исключением того, что атакующая коалиция больше не сможет ее контролировать. Форкинг очень прост в контексте программного обеспечения с открытым исходным кодом, и обычно самое сложное здесь – собрать доказательства легитимности ваших действий (в теории игр это рассматривается как форма «общего знания»), без которой сложно убедить всех несогласных с главенствующей коалицией последовать за вами.
Другой класс стратегий сопротивления сговору – идея риска собственной шкурой. В данном контексте это любой механизм, который возлагает личную ответственность за свои действия на каждого участника, способного как-то повлиять на принятие решений. Если группа принимает плохое решение, те, кто его одобрил, должны пострадать больше тех, кто пытался выразить несогласие. Это позволяет избежать «трагедии общих ресурсов», присущей системам голосования.
Именно риск собственной шкурой делает форкинг мощной формой контркоординации.