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

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

Обновлено сегодня

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

Стоит отметить, что атаки консенсуса могут повлиять только на будущий консенсус всего блокчейна или, в крайнем случае, на консенсус нескольких последних блоков (до 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, направленный на дальнейшую децентрализацию контроля над майнингом, также делают эти теоретически осуществимые атаки все более трудными.

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

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