Как работает атака 51% для Proof of Work Bitcoin?

Рейтинг: -2Ответов: 1Опубликовано: 11.07.2023

Разбираюсь в устройстве Биткоина и застрял на моменте атаки 51%. Я понимаю, что цепочка должна быть длиннее, тогда блокчейн примет её, но хотелось бы конкретики, каким образом 51% майнеров отправляет узлам более длинную цепочку? Первое: Разве узлы могут принимать более одного блока? Спасибо!

Ответы

▲ 2
  1. Узлы могут принимать неограниченное число блоков. В сетях с небольшим числом узлов при нарушении взаимодействия узлов, например, из-за фрагментации сети могут возникнуть форки в тысячи блоков.
  2. Поведение любого узла строится следующим образом - из всех полученных цепочек дерева он выбирает наидлиннейшую и майнит следующих блок-кандидат к ее последнему блоку. Таким образом обеспечивается наибольшая вероятность попадание блока в основную цепочку и, следовательно, получение награды за блок. По мере получения новых блоков дерево цепочек непрерывно перестраивается и появляется новый кандидат на "длиннейшую" цепочку. В принципе, при желании узел может строить цепочку вообще откуда хочет (что и делает атакующий), но тогда его блоки будут просто проигнорированы и он не получит вознаграждения.
  3. Каждый узел сам определяет "свою" длиннейшую цепочку исходя из полученных им блоков и на конкретный момент времени цепочки на разных узлах могу различаться в пределах некоторго статистического хвоста: для Bitcoin это до 6 блоков, для Ethereum-1 - 3-4 блока.
  4. Сложность задачи расчета "счастливого" хеша автоматически подбирается таким образом, чтобы выдержать некоторое среднее время цикла генерации блоков. Поэтому чтобы построить и внедрить свою цепочку как основную, атакующий должен иметь возможность рассчитывать "счастливый" хэш быстрее, чем все остальные узлы в сумме, иначе его цепочка всегда будет перебиваться цепочками других узлов. А для этого у атакующего должны быть вычислительные мощности более 50% от хэшрейта всей сети. По простому говорят "51%".

Где-то так.