К основному содержимому

Что такое атака консенсуса?

Обновлено более 2 нед. назад

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

Стоит отметить, что атаки консенсуса могут повлиять только на будущий консенсус всего блокчейна или, в крайнем случае, на консенсус нескольких последних блоков (не более 10 блоков в прошлом). И со временем вероятность того, что весь блокчейн Биткойна будет подделан, становится все меньше и меньше. Теоретически, форк блокчейна может стать очень длинным, но на практике вычислительная мощность, необходимая для реализации очень длинного форка блокчейна, чрезвычайно велика, и по мере постепенного роста всего блокчейна Биткойна, прошлые блоки по сути можно считать не поддающимися подделке с помощью форка. Кроме того, атаки консенсуса не затрагивают приватные ключи пользователей, а также криптографические алгоритмы (ECDSA). Атака консенсуса также не может украсть биткойны из других кошельков, вывести биткойны без подписи, перераспределить биткойны, изменить прошлые транзакции или изменить записи о владении биткойнами. Единственное воздействие атаки консенсуса — это влияние на самые последние блоки (до 10) и создание отказа в обслуживании для будущей генерации блоков.

Типичным сценарием атаки консенсуса является «атака 51%». Представьте себе сценарий, где группа майнеров контролирует 51% вычислительной мощности всей сети Биткойна, и они объединяют усилия с целью атаковать всю систему Биткойна. Поскольку эта группа майнеров может генерировать большинство блоков, они могут намеренно создать форк блокчейна для «двойной траты» или блокировки определенной транзакции, или атаковать конкретный адрес кошелька посредством отказа в обслуживании. Форк блокчейна/атака двойной траты — это когда злоумышленник отказывается от недавней транзакции и перестраивает новый блок перед этой транзакцией, тем самым создавая новый форк и позволяя двойную трату. При наличии достаточной вычислительной мощности злоумышленник может одновременно подделать шесть или более недавних блоков, тем самым заставив исчезнуть транзакции, содержащиеся в этих блоках, которые иначе были бы неуязвимы для подделки. Стоит отметить, что двойная трата может быть осуществлена только в отношении транзакций, происходящих в кошельках, принадлежащих злоумышленнику, поскольку только владелец кошелька может сгенерировать законную подпись для транзакций двойной траты. Злоумышленник может выполнить атаку двойной траты только на свои собственные транзакции, но такая атака выгодна, когда транзакция соответствует безотзывной покупке.

Давайте рассмотрим реальный пример «атаки 51%». В Главе 1 мы говорили о транзакции между Алисой и Бобом за чашку кофе с использованием Биткойна. Боб, владелец кофейни, готов предоставить Алисе кофе, когда ее перевод будет подтвержден на нулевом уровне, потому что риск «атаки 51%» на такую ​​небольшую транзакцию невелик по сравнению с оперативностью покупки клиента (Алиса может получить кофе немедленно). Точно так же большинство кофеен не тратят время и усилия на запрос подписи для покупок по кредитной карте на сумму менее 25 долларов, поскольку запрос подписи для кредитной карты дороже, чем риск того, что клиент может отозвать платеж по кредитной карте. Соответственно, риск двойной траты для крупных транзакций, оплаченных с помощью Биткойна, намного выше, поскольку покупатель (злоумышленник) может отменить реальную транзакцию, транслируя поддельную транзакцию по всей сети, идентичную UTXO реальной транзакции. Двойную трату можно осуществить двумя способами: либо до подтверждения транзакции, либо злоумышленником посредством форка блокчейна. Лицо, проводящее атаку 51%, может отменить транзакцию, записанную в старом форке, а затем перегенерировать транзакцию той же суммы в новом форке, тем самым достигнув двойной траты.

Чтобы избежать такого типа атаки, продавцы товаров оптом должны подождать, пока транзакция не получит шесть подтверждений в сети, прежде чем отгружать товар. В качестве альтернативы, продавец должен использовать сторонний, мультиподписной счет для транзакции, а также дождаться получения нескольких подтверждений по счету транзакции в сети, прежде чем отгружать товар. Чем больше подтверждений у транзакции, тем труднее злоумышленнику подделать ее посредством атаки 51%. Для крупных транзакций использование платежей в Биткойнах удобно и эффективно как для покупателей, так и для продавцов, даже если товары отправляются через 24 часа после оплаты. Через 24 часа транзакция будет иметь не менее 144 подтверждений в сети (что фактически снижает вероятность атаки 51%).

Помимо атаки «двойной траты», другим сценарием атаки в атаке консенсуса является отказ в обслуживании конкретного биткойн-адреса. Злоумышленник, обладающий большинством вычислительной мощности в системе, может легко проигнорировать конкретную транзакцию. Если транзакция существует в блоке, сгенерированном другим майнером, злоумышленник может намеренно форкнуть блок, перегенерировать его и удалить из блока транзакцию, которую он хочет проигнорировать. Результатом этой атаки является то, что до тех пор, пока этот злоумышленник обладает подавляющим большинством вычислительной мощности в системе, он может постоянно мешать всем транзакциям, сгенерированным конкретным адресом кошелька или группой адресов, с целью отказа в обслуживании этих адресов.

Обратите внимание, что для проведения атаки 51% не требуется 51% вычислительной мощности злоумышленника, как следует из названия; фактически, такую ​​атаку можно попытаться провести, даже если у вас менее 51% вычислительной мощности системы. Причина, по которой она называется атакой 51%, заключается просто в том, что когда вычислительная мощность злоумышленника достигает порога в 51%, его попытка атаки почти наверняка увенчается успехом. По сути, атака консенсуса похожа на систему, где вся вычислительная мощность майнеров разделена на две группы: одна с честной вычислительной мощностью, а другая — с вычислительной мощностью злоумышленника, и обе группы соревнуются за то, чтобы первыми вычислить новые блоки в цепочке блоков, за исключением того, что вычислительная мощность злоумышленника вычисляет тщательно сконструированные блоки, которые содержат или исключают определенные транзакции. Таким образом, чем меньше вычислительной мощности у злоумышленника, тем меньше вероятность, что он выиграет дуэль. С другой стороны, чем больше вычислительной мощности у злоумышленника, тем длиннее цепочка форкнутых блоков, которые он может намеренно создать, и тем больше недавних блоков, которые он может подделать, или будущих блоков под его контролем. Некоторые группы исследователей безопасности использовали статистические модели, чтобы сделать вывод, что 30% вычислительной мощности сети было бы достаточно для проведения атаки 51%.

Резкое увеличение общесетевой вычислительной мощности сделало невозможным для системы Биткойна быть атакованной одним майнером, поскольку одному майнеру больше не под силу занимать даже 1% вычислительной мощности сети. Однако централизованные майнинговые пулы создают риск того, что оператор пула будет атаковать ради прибыли. Оператор пула контролирует генерацию кандидатных блоков, а также контролирует, какие транзакции помещаются в недавно сгенерированные блоки. Таким образом, оператор пула имеет возможность исключать определенные транзакции или осуществлять двойную трату. Если эта власть злоупотребляется оператором пула тонким и рассчитанным образом, то оператор пула может проводить атаки консенсуса и получать от них выгоду незамеченным.

Однако не все злоумышленники действуют ради прибыли. Одним из возможных сценариев является то, что злоумышленник проводит атаку просто для того, чтобы разрушить всю систему Биткойна, а не ради прибыли. Такой злоумышленник, намеревающийся разрушить систему Биткойна, потребует огромных инвестиций и тщательного планирования, поэтому можно предположить, что такая атака, скорее всего, исходит от организации, финансируемой правительством. Аналогично, такие злоумышленники могут приобретать майнинговые машины, управлять майнинговыми пулами и проводить атаки консенсуса, такие как отказ в обслуживании, злоупотребляя вышеупомянутой властью оператора пула. Однако, поскольку вычислительная мощность сети Биткойна растет геометрически и стремительно, эти теоретически осуществимые сценарии атак становятся все труднее реализовать на практике. Недавние обновления системы Биткойна, такие как протокол майнинга P2Pool, направленный на дальнейшую децентрализацию управления майнингом, также делают эти теоретически осуществимые атаки все более трудными.

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

Нашли ответ на свой вопрос?