Для начала, стоит разобраться в том, по каким принципам вообще функционирует сеть криптовалют, основанная на системе блокчейн. Сделаем это на примере сети Bitcoin.
Основе биткоина лежит децентрализованная сеть, в которой работа и взаимодействие между отдельными узлами регулируется протоколом. Однако поскольку система постоянно меняется, узлы должны регулярно согласовывать между собой текущее состояние сети. Кроме того, консенсуса приходиться добиваться и в процессе майнинга, и в деле подтверждения отдельных транзакций, и даже в актуальности используемого программного обеспечения.
В ситуации майнинга, например, это выглядит следующим образом. Любой участник сети может проверить, является ли хэш нового добытого блока актуальным. Если да, майнер проделал определённую вычислительную работу, за которую ему положена награда. И данный процесс куда проще, нежели самостоятельное вычисление хэша блока, поэтому проверку можно осуществлять независимо от вычислительной мощности.
Логично предположить, что чем выше вычислительная мощность (или хэшрейт) каждого конкретного майнера, тем выше его шансы подобрать решение для добавления нового блока в цепочку. Однако узлов множество, поэтому им приходится постоянно конкурировать между собой. Или, наоборот – объединяться в общие майнинг-пулы, чтобы повысить собственную вычислительную мощность.
И возможна ситуация, когда более половины вычислительной мощности сети окажется сосредоточенной в одном месте. Чем меньше сеть – тем выше шанс подобного развития событий. И обладая «большинством голосов», недобросовестные участники могут начать нарушать нормальную работу блокчейна – это и называется «атакой 51 процента».
Результаты атаки
Возможность контролировать хэшрейт открывает перед злоумышленниками множество возможностей.
- Исключение свежих транзакций из общего пула памяти
- Полный отказ от обсаживания сети (невозможность подтверждения новых транзакций)
- Изменение порядка и приоритета транзакций
- Дублирование или «Двойное расходование»
- Майнинговая монополия
Однако некоторые вещи даже доминирующая вычислительная мощность не позволяет справиться. Так, например, шансы того, что будут дублированы или отменены более ранние транзакции – маловероятен. Как и банальное «отключение» всей сети. Да и злоумышленники не смогут «нарисовать» себе произвольное количество новых монет, как и изменить установленную величину вознаграждения.
Уже осуществлённые транзакции крайне сложно изменить, поскольку информация о них прописана во всех последующих блоках. Это, впрочем, реально, но не стоит забывать, что цепочка постоянно достраивается, так что придётся менять ещё и новые блоки, чтобы получить криптографически последовательную и связанную структуру. Так что повышенный риск изменения сохраняется разве что для транзакций, находящихся на расстоянии в пару подтверждённых блоков.
Что касается отключения системы или «разрушения сети», то это невозможно из-за быстрой адаптации программного обеспечения. Для этого будет достаточно согласия большинства оставшихся участников сети. Это может привести к созданию двух независимых цепочек – искаженной, в которой останутся только узлы-злоумышленники, работающие по старым протоколам, и новой, заметно уступающей по вычислительной мощи, но свободной от вредоносного воздействия.
Риски и вероятности, связанные с атакой
Как уже было сказано, получение более 51 процента вычислительной мощности сети – ситуация вполне реальная. Особенно высок риск для новых и малых сетей альткоинов, в которых ещё недостаточно узлов для поддержания повышенной стабильности. Кроме того, не стоит забывать, что вычислительные мощности систем постоянно растут. Так, например, даже на заре своего создания, сеть Биткоин уже была устойчивой к «перехвату управления» - чисто в силу сложности и энергозатратности процесса. А на данный момент, даже располагая ресурсами целого государства, уже невозможно добиться доминирующего хэшрейта. Современным альткоинам повезло меньше – с «атаками большинства» уже столкнулись такие сети, как Monacoin, Bitcoin Gold и ZenCash.
Кроме того, «атака большинства» не работает в ситуациях, в которых консенсус не зависит от величины вычислительной мощности. Так, например, алгоритмы Proof-of-Stack частично от него защищены. Однако у них есть свои собственные уязвимости, с которыми ещё тоже довольно сложно совладать.