Независимо от PoW доказательства рабочей нагрузки, PoS доказательства справедливости или DPoS делегированного доказательства справедливости, теоретически, пока существует проблема консенсуса, атак 51% невозможно избежать. Злоумышленник контролирует основную сеть через 51% обратимых блоков. , в результате чего получится двойной цветок.

жизненный опыт

Будучи децентрализованной распределенной общедоступной системой хранения данных, блокчейн не имеет центральной управляющей организации. Вместо этого он совместно поддерживается распределенными узлами с использованием криптографических протоколов, и каждый узел поддерживает всю систему. базовый протокол консенсуса. Блокчейны имеют разное практическое применение в различных сценариях реальной жизни, например, в публичных цепочках, частных цепочках и цепочках альянсов. Разные цепочки используют разные алгоритмы консенсуса, такие как консенсус PoW, используемый Биткойном, и консенсус PoW, используемый Ethereum, DPoS. консенсус, используемый EOS, и безопасность, используемая в разных алгоритмах консенсуса, различна.

В этой статье подробно описаны риски атак, присутствующие в протоколах консенсуса PoW, используемых Биткойном и Эфириумом.

Механизм консенсуса PoW

Сначала давайте посмотрим, что такое консенсусный протокол PoW.

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

Однако в децентрализованной системе кто имеет право определять исход соревнования? Системы блокчейнов Bitcoin и Ethereum реализуются посредством консенсусного механизма, называемого Proof of Work (PoW).

PoW (Proof of Work), то есть «Доказательство работы». Проще говоря, PoW — это сертификат, подтверждающий, что рабочий конец выполнил определенный объем работы. Рабочему концу необходимо проделать определенный объем сложной работы, чтобы получить результат, и проверяющий использует результаты, чтобы проверить, выполнила ли рабочий конец соответствующую работу.

При майнинге посредством консенсуса PoW необходимо соблюдать три правила:

  • Только один человек может успешно записывать учетные записи в течение определенного периода времени.

  • Соревнуйтесь за получение исключительного права ведения бухгалтерского учета, решая криптографические головоломки (т. е. доказательство работы)

  • Другие узлы проверяют и копируют результаты учета.

Например, для строки «блокчейн» требование к рабочей нагрузке состоит в том, что мы можем объединить строку целочисленного значения с именем nonce после этой строки и выполнить хэш-операцию SHA256 над объединенной строкой. Если полученный результат хеширования (выраженный в шестнадцатеричном виде. форма) начинается с нескольких нулей, тогда проверка пройдена. Чтобы достичь этой цели доказательства работы, нам необходимо постоянно увеличивать значение nonce и выполнять хэш-операцию SHA256 с новой полученной строкой.

Хэш (значение предыдущего хеша, набор информации о записи транзакции) = 29329385BNDH749 Хэш (значение предыдущего хеша, набор информации о записи транзакции, случайное число nonce) = 000029329385BNDH749

Например, хеш высоты блока 512884 в Биткойне:

000000000000000000188d44fd53064469b17c3590a0c4df8e90626d11e25a69

Доказательством работы, необходимой для создания этого блока посредством бухгалтерского учета, является 16**18 хэш-вычислений, что представляет собой очень большой объем вычислений.

51% атака

После краткого представления простых принципов упаковки блоков посредством учета и PoW, давайте вернемся к нашему вопросу: что такое атака 51% и что такое атака двойного расходования?

Атака двойного расходования просто относится к атаке, в которой токен используется несколькими способами оплаты, что означает, что одна и та же валюта тратится несколько раз. Существует множество способов запустить атаку двойного расходования, включая следующие формы:

  • 51% атака

  • Расовая атака

  • Вектор 76 атака

  • атака альтернативной истории

То есть, если злоумышленник контролирует более 50% вычислительной мощности всей сети, он может реализовать двойную трату посредством атаки 51%.

Здесь мы анализируем только процесс атаки 51%.

Атака 51%, также известная как атака большинства. Эта атака обеспечивает двойные расходы за счет контроля вычислительной мощности сети. Если злоумышленник контролирует более 50% вычислительных мощностей в сети, то за период, когда он контролирует вычислительные мощности, он может перевернуть блок, провести обратные транзакции и добиться двойных трат.

В протоколе консенсуса PoW система блокчейна позволяет одновременно существовать нескольким разветвленным цепочкам, и каждая цепочка может заявить внешнему миру, что она правильна. Однако в концепции проектирования блокчейна существует самый длинный и эффективный принцип: «Неважно, в какой момент самая длинная цепочка считается основной цепочкой с наибольшим количеством работы?»

Давайте кратко смоделируем процесс атаки 51%:

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

Далее, если следующий майнер решит продолжить учет на основе A, ветвь A будет длиннее, чем ветвь B. Согласно правилам блокчейна, самая длинная ветвь будет признана, короткая ветвь будет заброшена, а реестр все равно останется. be вернется к одному, и только одна транзакция действительна.

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

Тогда филиал B становится признанным филиалом. В это время филиал A закрывается. Транзакция в филиале A больше не устанавливается. Валюта платежа злоумышленника в филиале A снова действительна, но злоумышленник уже получил товар A. атака успешно завершена. Проблема в том, что когда ветка Б отстает, заставить ее обогнать ветку А в реальности очень сложно, и вероятность успеха очень мала. Однако если злоумышленник контролирует более 50% вычислительных мощностей ветки. всю сеть, то даже если он отстанет, Очень сильно, и это лишь вопрос времени, когда он догонит. Это и есть упомянутая выше «атака 51%».

Анализ случая атаки Bitcoin Gold 51%

В реальном мире блокчейна произошло много двойных расходов, вызванных атаками 51%.

Например, проблема двойных расходов в Bitcoin Gold (монета BTG) — это атака 51%. Процесс атаки выглядит следующим образом:

  1. Злоумышленник контролирует более 51% вычислительных мощностей в сети Bitcoin Gold. В период контроля над вычислительными мощностями он отправил на свой кошелек на бирже определенное количество BTG.

  2. При этом он отправил эти BTG на другой подконтрольный ему кошелек. Мы назвали эту ветку филиалом B.

  3. После подтверждения транзакции в филиале А злоумышленник немедленно продает BTG и получает наличные. В это время филиал А становится основной цепочкой.

  4. Затем злоумышленник майнит ветку B. Поскольку она контролирует более 51% вычислительных мощностей, у злоумышленника есть высокая вероятность получения учетных прав, поэтому вскоре длина ветки B превышает основную цепочку (т.е. длина ветки А), то ветвь Б станет основной цепочкой, а транзакции на ветке А будут откатываться, восстанавливая данные до последнего корректного состояния.

  5. Другими словами, ветвь А восстанавливается до того состояния, в котором злоумышленник инициировал первую транзакцию, и BTG, которые злоумышленник ранее конвертировал в наличные, снова оказываются в его руках.

  1. Наконец, злоумышленник отправляет эти BTG на другой свой кошелек. Таким образом, злоумышленник контролировал более 51% вычислительной мощности, чтобы добиться «двойного расходования» одного и того же токена.

Согласно отчету о данных блокчейна об этой атаке, злоумышленник успешно перевернул 22 блока. Адрес Bitcoin Gold, участвовавший в этой атаке, получил более 388 200 долларов США. Если предположить, что все эти транзакции связаны с двойными расходами, злоумышленник получит до 18,6 миллионов долларов. средства могли быть украдены с биржи

Помимо проблемы двойных расходов, возникшей в Bitcoin Gold, существует множество случаев атак двойных расходов, вызванных атаками 51%:

  • Анонимная цифровая валюта Verge однажды злонамеренно добыла более 35 миллионов #xvg всего за несколько часов на сумму около 1,75 миллиона долларов США.

  • Японская криптовалюта Monacoin, очевидно, подверглась атаке с вычетом блоков после того, как майнер получил до 57% хеш-мощности сети.

  • Официальные новости Litecoin Cash (LCC): LCC подвергся атаке 51%.

  • Цифровая валюта #zen также подверглась атаке 51%.

  • Недавно Ethereum Classic #etc подвергся атаке 51%.