Перейти к содержанию

Фатальная атака на Биткоин


Alexvp

Рекомендуемые сообщения

Маньяк создает фейковую цепочку с числом блоков, равным текущему числу блоков главной цепи. Это он делает, чтобы удалить результаты всех транзакций за эти годы. Так как сложность он берет минимальную, то на создание цепи ему потребуется немного времени. Далее, маньяку требуется осуществить замену честной цепочки на свою.

 

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

 

Вам это так видится, как на этом рисунке? Или я не правильно понял?

 

post-25143-0-04966400-1505033481_thumb.png

 

Зелёные - блоки основной цепочки. Синие - блоки альтернативной цепочки.

Последние блоки обеих цепочек образуют коллизию - у них одинаковыхй хеш заголовка блока (жёлтые блоки).

 

Если нода уже имеет блок 6, то получив блок 6а с тем же хешем - этот блок будет отброшен, как дубликат.

 

Итак, у ноды есть две цепочки:

основная 0 - 6

альтернативная 0 - 5a

 

Из этих двух цепочек в качестве основной будет выбрана та, у которой совокупная сложность будет выше. Будут просуммированы сложности блоков с 0 по 6 и с 0 по 5а. 

 

Если блоки 2a, 3a, 4a, 5а имею сложность ниже чем 2, 3, 4, 5, то и сумма сложностей для цепочки 0 - 5a будет ниже, и эта цепочка будет отброшена.

 

Ну, и в конце концов, если уж в одних руках сосредоточена мощность 80%, то скомпрометировать сеть можно и без всяких коллизий и фокусов со сложностью. Это получится, если начинать строить свою цепочку не глубоко в прошлом, а недалеко от текущего блока.

 

Какая разница в каком месте удалять транзакции: с мая по август 2017 года или с сентября по декабрь 2017 года, если эффект от компрометации будет один и тот же? (Исходя из предположения, что 80% мощности оказались сосредоточены в одних руках в сентябре 2017 года).

Изменено пользователем Old Miner
Ссылка на комментарий
Поделиться на другие сайты

Вам это так видится, как на этом рисунке? Или я не правильно понял?

 

attachicon.gifsplit.png

 

Зелёные - блоки основной цепочки. Синие - блоки альтернативной цепочки.

Последние блоки обеих цепочек образуют коллизию - у них одинаковыхй хеш заголовка блока (жёлтые блоки).

 

Если нода уже имеет блок 6, то получив блок 6а с тем же хешем - этот блок будет отброшен, как дубликат.

 

Итак, у ноды есть две цепочки:

основная 0 - 6

альтернативная 0 - 5a

 

Из этих двух цепочек в качестве основной будет выбрана та, у которой совокупная сложность будет выше. Будут просуммированы сложности блоков с 0 по 6 и с 0 по 5а. 

 

Если блоки 2a, 3a, 4a, 5а имею сложность ниже чем 2, 3, 4, 5, то и сумма сложностей для цепочки 0 - 5a будет ниже, и эта цепочка будет отброшена.

 

Это, действительно примерно то, о чем я пытался рассказать. Но, каюсь, порой бываю косноязычен :) Но небольшое дополнение к вашему рисунку и описанию. 

Так как альтернативная цепочка формируется в "особых" условиях, то ничто не мешает маньяку подменить параметр сложность в заголовке каждого блока на нужное и высокое значение, но при формировании блока не учитывать это значение, поставив в качестве константы 1. Как понимаете. эта уловка требует всего пары минут на правку кода. Поэтому можно подобрать значения так, что отброшенными окажутся блоки 2, 3, 4, 5 и 6

 

 

 

Ну, и в конце концов, если уж в одних руках сосредоточена мощность 80%, то скомпрометировать сеть можно и без всяких коллизий и фокусов со сложностью. Это получится, если начинать строить свою цепочку не глубоко в прошлом, а недалеко от текущего блока.

 

Какая разница в каком месте удалять транзакции: с мая по август 2017 года или с сентября по декабрь 2017 года, если эффект от компрометации будет один и тот же? (Исходя из предположения, что 80% мощности оказались сосредоточены в одних руках в сентябре 2017 года).

 

Не исключено. Это как раз и описывает вариант 2. Можно и как вы написали, но вариант удаления старых транзакций усилит хаос и недоверие к системе. 

В истории России, тогда еще СССР, был очень схожий случай, денежная реформа в январе 1991 года, получившая название павловской. Когда за 3 дня у людей спалили все их накопления, хранившиеся на руках. Менее чем через год СССР развалился.

 

Вот по этой ссылке есть показательная диаграмма распределения по странам хэшрэйта

www.buybitcoinworldwide.com/mining/pools/

Ссылка на комментарий
Поделиться на другие сайты

 

 

Так как альтернативная цепочка формируется в "особых" условиях, то ничто не мешает маньяку подменить параметр сложность в заголовке каждого блока на нужное и высокое значение, но при формировании блока не учитывать это значение, поставив в качестве константы 1.

 

Ну, не будет принята остальными нодами цепочка блоков, нарушающая консенсунс.

Консенсус - это набор проверок, которые выполняет каждая нода по отношению к каждому принятому блоку и каждой транзакции.

 

Над каждым блоком выполняется проверка: хеш блока должен быть меньше целевой сложности (параметр блока target). Если это условие не выполняется - блок отбрасывается.

 

Кроме того, в отношении всей цепочки блоков выполняется проверка выполнения условия пересчёта сложности каждые 2016 блоков.

Ссылка на комментарий
Поделиться на другие сайты

В вашей теории остается очень много дыр, которые вы никак не объясняет.

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

 

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

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

Ссылка на комментарий
Поделиться на другие сайты

Ну, не будет принята остальными нодами цепочка блоков, нарушающая консенсунс.

Консенсус - это набор проверок, которые выполняет каждая нода по отношению к каждому принятому блоку и каждой транзакции.

 

Над каждым блоком выполняется проверка: хеш блока должен быть меньше целевой сложности (параметр блока target). Если это условие не выполняется - блок отбрасывается.

 

Кроме того, в отношении всей цепочки блоков выполняется проверка выполнения условия пересчёта сложности каждые 2016 блоков.

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

 

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

Остальные аспекты проверок, в том числе условия пересчета сложности, легко обмануть. Это не потребует большой вычислительной мощности.

Ссылка на комментарий
Поделиться на другие сайты

 

 

Вы не могли бы дать ссылку на кусок кода, где такие проверки производятся.

 

Стек вызова функций:

CheckBlock->CheckBlockHeader->CheckProofOfWork

Ссылка на проверку:

https://github.com/bitcoin/bitcoin/blob/ce74799a3c21355b35fed923106d13a0f8133721/src/pow.cpp#L87

 

А узнал я об этом из книги Mastering Bitcoin (глава "Валидация нового блока"):

https://www.bitcoinbook.info/translations-of-mastering-bitcoin/

Ссылка на комментарий
Поделиться на другие сайты

Стек вызова функций:

CheckBlock->CheckBlockHeader->CheckProofOfWork

Ссылка на проверку:

https://github.com/bitcoin/bitcoin/blob/ce74799a3c21355b35fed923106d13a0f8133721/src/pow.cpp#L87

 

А узнал я об этом из книги Mastering Bitcoin (глава "Валидация нового блока"):

https://www.bitcoinbook.info/translations-of-mastering-bitcoin/

Большое спасибо, вы мне очень помогли. К сожалению, не могу поставить вам плюсик в карму.

Остается только пожелать удачи и лишнего биткоина :)!

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Similar Topics

    •  Атака отравленными адресами

      Суть атаки отравленными адресами:  1. Злоумышленник с помощью vanity* утилит генерирует адрес, похожий на тот, на который юзер часто отправляет средства.  2. Злоумышленник отправляет транзакцию на кошелек юзеру  3. Юзер зачастую копируют адрес из истории последних транзакций.  Обычно люди проверяют несколько символов в начале или в конце адреса. Видят знакомую комбинацию и копируют адрес злоумышленника.  4. Юзер отправляет средства и их забирает злоумышленник.   Есть еще вариан

      в Безопасность

    • Хакерская атака на кошелек Ledger / Майнинг в России / Тестирование цифрового тенге

      Аппаратный кошелек Ledger подвергся хакерской атаке – как это отразилось на децентрализованных сервисах? Как крупные российские майнеры будут экспортировать добытую криптовалюту в промышленных масштабах? Как прошло тестирование цифрового тенге в Казахстане? Об этом и многом другом расскажем в новом выпуске Bits.media.  

      в Новости криптовалют

    • Незаметная угроза: что такое «атака криптопылью» и как с ней бороться

      Большинство владельцев BTC и другой криптовалюты наверняка не смогут сказать, сколько у них ее в наличии с точностью «до сатоши». Вот почему они могут стать жертвой мошенников. «Криптопылью» называется небольшое количество криптовалюты, которое может быть массово разослано по разным кошелькам. Цели со стороны отправителя при этом могут преследоваться совершенно разные.   В целом «пыль» представляет собой количество криптовалюты, равное или меньшее комиссии за транзакции. Так, наиме

      в Новости криптовалют

    • Хакерская атака на мост Nomad в результате которой активы компании почти на 200 млн.$ были разграблены.

      01 августа 2022 года злоумышленником были украдены средства c кросс-протокола Nomad на сумму $190 млн., в настоящее время украденные токены «отмываются» через популярный крипто-миксер Tornado.Cash. Nomad предоставляет инфраструктуру для межсетевых проектов, позволяет dApps в разных экосистемах взаимодействовать друг с другом и передавать токены между Avalanche (AVAX), Ethereum (ETH), Evmos (EVMOS), Milkomeda C1 и Moonbeam (GLMR). По состоянию на апрель 2022, года общая капитализация проекта

      в Флейм

    • Nansen: Атака на Terra произошла изнутри

      Аналитическая компания Nansen на фоне множества версий о причинах краха стейблокина UST выдвинула версию, что проект пал жертвой групповой атаки из экосистемы Terra. Исследовательская платформа разместила отчет «Демистификация TerraUSD De-Peg». Аналитики компании уточнили, что, согласно их расследованию, с 7 по 11 мая в блокчейнах Terra и Эфириум орудовала группа из семи хорошо финансируемых кошельков экосистемы Terra.   По словам авторов отчета, атака на стейблкоин началась с протоко

      в Новости криптовалют

×
×
  • Создать...