Атаки на механизм консенсуса

Механизм консенсуса биткойн-системы, по крайней мере теоретически, уязвим для атак майнеров (или пулов), пытающихся использовать свою вычислительную мощность в мошеннических или разрушительных целях. Как мы видели ранее, механизм консенсуса зависит от наличия в биткойн-системе большинства майнеров, честно действующих в своих же интересах. Но если майнер или группа майнеров сможет получить в свое распоряжение значительную долю общей вычислительной мощности майнинга, то у них появляется возможность атаковать механизм консенсуса, разрушая защиту и доступность всей биткойн-сети.

Важно отметить, что атаки на механизм консенсуса могут повлиять только на будущий консенсус или, в лучшем случае, на самый последний прошлый консенсус (в пределах десятка блоков). С течением времени реестр биткойна становится все более и более неуязвимым для внесения изменений вручную. Хотя теоретически разветвление можно создать на любой глубине, на практике вычислительная мощность, необходимая для принудительного разветвления на очень большой глубине, настолько огромна, что делает старые блоки практически неизменяемыми. Атаки на механизм консенсуса никак не влияют на уровень защиты секретных ключей и алгоритма подписи (ECSDA). Атака на механизм консенсуса не может похищать биткойны, расходовать биткойны без подписи, перенаправлять биткойны или как-либо по-другому изменять ранее совершенные транзакции или записи о правах владения. Атаки на механизм консенсуса могут воздействовать только на самые последние блоки и вызывать затруднения, связанные с отказом от обслуживания (denial-of-service), при создании новых блоков.

Один из сценариев атаки на механизм консенсуса называется «атака 51%». По такому сценарию группа майнеров, управляющая большей частью (51%) общей вычислительной мощности биткойн-сети, вступает в тайный сговор для атаки на биткойн-систему. Обладая возможностью выполнения майнинга большинства блоков, майнеры-злоумышленники могут создавать преднамеренные разветвления в структуре данных блокчейна и транзакции с двойным расходованием или осуществлять атаки типа DoS против конкретных транзакций и/или адресов. Атака с разветвлением/двойным расходованием — это ситуация, в которой атакующий искусственно делает ранее подтвержденные блоки некорректными, создавая разветвление ниже этих блоков и выполняя принудительный переход на альтернативную цепочку блоков. При наличии достаточной вычислительной мощности атакующий может сделать некорректными шесть и более смежных блоков, соответственно становятся некорректными и содержащиеся в них транзакции, которые до этого считались неизменяемыми (после шести подтверждений). Отметим, что двойное расходование возможно только в собственных транзакциях атакующего, для которых он способен предоставить корректную подпись. Собственные транзакции атакующего с двойным расходованием приносят пользу, если с помощью принудительного превращения транзакций в некорректные атакующий может получить невозвращаемую сдачу с некоторого платежа или товар без реальной его оплаты.