Сговор на миллиарды: что реально нужно, чтобы переписать блокчейн
После публикации материала о блокчейне как append-only базе данных читатели чаще всего спрашивали не о самой структуре хранения. Гораздо больше интереса вызвала другая проблема: что произойдет, если валидаторы договорятся между собой? Может ли большинство участников переписать историю? Почему пользователи вообще должны доверять блокчейну?
Короткий ответ звучит так: блокчейн не защищен от любого сговора магическим образом. Его задача - сделать атаку настолько дорогой, сложной и рискованной, чтобы честное участие оказалось выгоднее мошенничества.
Что именно согласует сеть
Консенсус не определяет некую философскую "истину". Узлы не выясняют, какая транзакция справедлива в мировом масштабе. Они решают гораздо более конкретную задачу: какой блок должен быть следующим.
Из последовательности блоков формируется порядок транзакций. Если все участники применяют одинаковые операции в одинаковой последовательности, они получают одно и то же состояние реестра. Поэтому договоренность о порядке блоков фактически означает согласование состояния всей сети.
Такая схема необходима из-за проблемы двойной траты. Представим, что на счете находится 10 монет, а владелец одновременно отправляет их продавцу и на биржу. В банке конфликт разрешает центральный сервер: он проверяет баланс и выбирает допустимую операцию. В децентрализованной системе единого арбитра нет, поэтому узлам приходится самостоятельно определять, какая транзакция попадет в историю первой.
Именно здесь появляется задача византийских генералов: часть участников может действовать честно, часть - ошибаться, лгать или координироваться против остальных. Математика распределенных систем показывает, что полностью исключить сговор большинства нельзя. Можно лишь выстроить такие экономические и технические барьеры, при которых нападение потеряет смысл.
Proof-of-Work: большинство вычислений
В сетях на Proof-of-Work право добавить блок определяется вычислительной мощностью. Майнеры перебирают значения хеша, а победитель получает возможность предложить следующий блок.
Если злоумышленник контролирует более половины хешрейта, он способен тайно строить альтернативную цепочку. После этого ее можно опубликовать, и сеть примет более длинную ветку согласно правилам протокола. В результате подтвержденная ранее транзакция может исчезнуть из истории.
Например, преступник вносит депозит на биржу, получает активы, выводит их, а затем публикует цепочку, в которой депозита не было. Получается двойная трата: активы уже были обменяны, но исходный перевод формально отменен.
Это не только теоретический сценарий. Ethereum Classic пережила несколько атак. В январе 2019 года произошли глубокие реорганизации цепочки, а общий объем двойных трат оценивался примерно в 1,1 млн долларов. В августе 2020 года сеть подверглась трем атакам, одна из которых затронула около 3000 блоков - более суток истории.
Bitcoin Gold в 2018 году также столкнулся с двойными тратами примерно на 18 млн долларов. При этом наиболее известные случаи происходили не с Bitcoin, а с менее крупными сетями.
Причина очевидна: безопасность PoW зависит от стоимости совокупного хешрейта. Для небольшой монеты вычислительную мощность можно арендовать на несколько часов, провести атаку и прекратить работу. В крупной сети стоимость оборудования, электричества и самой атаки может оказаться настолько высокой, что выгоднее будет честно майнить.
Главный принцип здесь таков: атака не невозможна, а экономически невыгодна. Большая цена не превращает нападение в физически невозможное - она лишает его окупаемости.
Proof-of-Stake: капитал вместо электричества
В Proof-of-Stake право участвовать в подтверждении блоков определяется не вычислительной мощностью, а размером залога. Валидатор блокирует собственные монеты и подписывает предлагаемые блоки.
Ethereum перешел на такую модель в 2022 году. Исторически минимальный депозит для валидатора составлял 32 ETH. После обновления Pectra максимальный объем средств, который может обслуживать один валидатор, увеличили до 2048 ETH, однако минимальный порог запуска остался прежним.
Для финализации блока требуется поддержка примерно двух третей всего застейканного капитала. После этого блок считается практически необратимым. В Ethereum финализация происходит примерно раз в две эпохи, то есть приблизительно каждые 13 минут.
Чтобы переписать уже финализированную историю, атакующему недостаточно просто создать альтернативную цепочку. Необходимо контролировать значительную долю стейка и согласованно подписывать конфликтующие сообщения. При этом протокол может применить slashing - уничтожить часть залога нарушителей.
Экономическая логика PoS похожа на PoW, но механизм наказания иной. Майнер рискует затратами на электричество и оборудование, а валидатор - собственным капиталом. Чем больше средств он поставил на кон, тем дороже становится намеренное нарушение правил.
Что может сделать большинство
Контроль над большинством не означает абсолютную власть. Даже обладая более чем половиной ресурсов, атакующий обычно не может:
- забрать чужие монеты без соответствующих ключей;
- создать произвольное количество новых монет;
- изменить правила протокола одним желанием;
- отменить операции, уже завершенные во внешних системах;
- заставить честные узлы принять недействительную транзакцию.
Возможности зависят от конкретного протокола. В PoW большинство хешрейта позволяет ускорить собственную цепочку, блокировать или отменять свои переводы и проводить двойные траты. В PoS крупный оператор может цензурировать транзакции, мешать финализации и подписывать противоречивые сообщения, но сталкивается с риском потери залога.
Важно различать реорганизацию и полное переписывание истории. Пока блоки не получили достаточного числа подтверждений, их можно заменить альтернативной веткой. Но чем глубже блок находится в цепочке, тем больше ресурсов требуется для его замены. Поэтому биржи устанавливают разные сроки ожидания: для крупной и дорогой сети может хватить нескольких подтверждений, а для небольшой - нужны десятки или сотни.
Long-range-атаки и проблема новичков
Proof-of-Stake имеет особый класс угроз - long-range-атаки. Если старые валидаторы уже вывели свои средства из стейкинга, они могут попытаться создать альтернативную длинную историю задним числом. Для них это дешевле, чем атаковать сеть в реальном времени: залог уже не находится под угрозой.
Наиболее уязвимы новые узлы, которые подключаются к сети без надежной контрольной точки. Если такой узел получает несколько конкурирующих версий цепочки, ему сложно самостоятельно определить, какая из них исторически настоящая.
Поэтому PoS-протоколы используют финальность, контрольные точки, правила слабой субъективности и доверенные стартовые состояния. Новому узлу иногда нужно знать не только правила сети, но и подтвержденный снимок ее состояния.
Социальный слой как последний рубеж
Технические механизмы не всегда способны разрешить крупный конфликт. Если значительная часть валидаторов нарушила правила, а злоумышленники получили контроль над ресурсами, сообщество может прибегнуть к обновлению клиента, изменению правил или ручному отказу от атакующей цепочки.
Это уже не чистая математика, а социальный консенсус. Пользователи, разработчики, биржи и операторы инфраструктуры должны решить, какую ветку считать легитимной. Такой механизм противоречит идее абсолютной автоматизации, но именно он может спасти сеть от катастрофического сценария.
При этом подобное вмешательство имеет цену: оно создает прецедент, снижает ощущение неизменности и показывает, что блокчейн зависит не только от кода, но и от людей.
Что важно проверять пользователю
Обычному участнику не нужно самостоятельно считать хешрейт или анализировать долю стейка. Гораздо полезнее учитывать несколько практических факторов:
1. Размер сети. Чем больше капитализация и ресурсы участников, тем дороже атака.
2. Глубину подтверждений. Крупные суммы не стоит считать окончательно зачисленными сразу после появления транзакции.
3. Тип финальности. В одних сетях есть вероятностная финальность, в других - криптографическая или экономическая.
4. Распределение валидаторов. Формальное большинство может находиться под контролем нескольких организаций.
5. Наличие slashing. Наказание повышает стоимость сговора, но не отменяет технические риски.
6. Зависимость от внешних сервисов. Биржа может задержать вывод даже после подтверждения транзакции в блокчейне.
Блокчейн не обещает невозможность мошенничества. Он предлагает систему стимулов, в которой подделка истории должна стоить дороже потенциальной прибыли. В Proof-of-Work эту цену формируют электричество, оборудование и конкуренция за хешрейт. В Proof-of-Stake - заблокированный капитал и риск его уничтожения.
Поэтому правильный вопрос звучит не "можно ли переписать блокчейн?", а "сколько это будет стоить, кто понесет потери и удастся ли атакующему выйти в плюс?". Для небольшой сети ответ иногда оказывается тревожным. Для крупной - стоимость атаки может измеряться миллиардами, а последствия включать потерю залога, падение цены актива и коллективный отказ пользователей признавать результат.
Консенсус не создает абсолютной истины. Он делает согласованную историю самым дешевым и практичным вариантом для большинства участников. Именно в этом, а не в мистической неуязвимости, заключается реальная безопасность блокчейна.