Как работает атака искажения времени?

Я более или менее понимаю, как злоумышленник (с менее чем 50% + 1 мощностью хеширования) может искусственно снизить сложность блока, возясь с временными метками. Я также понимаю, как такой злоумышленник может в своей собственной цепочке в какой-то момент «увеличить» сложность своих последних блоков, чтобы она соответствовала сложности текущей цепочки (я читал другие вопросы, содержащие тег time-warp-attack ) . Чего я не понимаю, так это того, как в какой-то момент его цепочка с менее полной цепочкой может быть принята сетью.

Допустим, мы находимся в 100-м блоке честной цепочки, и злоумышленник создал поддельную цепочку, начиная с 50-го блока. Теперь он в 105-м блоке, и его 105-й блок имеет ту же сложность (которую он увеличил), что и честная цепочка со 100-м блоком. , Он решает транслировать свою цепочку и «побеждает», потому что ему удалось провести атаку с искажением времени (вопрос здесь не в возможности с точки зрения бюджета провести такую ​​атаку сегодня в сети Биткойн: речь идет о техническом аспекте). нападения).

Чего я не понимаю, так это того, что честная цепочка имеет больше общей цепочки от блока 50 до 100, чем общая цепочка в цепочке злоумышленника от блока 50 до 105. У злоумышленника, в случае атаки деформации времени, меньше 50 %+1 от хешрейта. Таким образом, он не может придумать x блоков с большим PoW, чем y блоков, добытых за это время честным большинством (даже если у него больше блоков, без 50%+1 у него просто не может быть больше цепной работы, чем у честного большинства). ).

Так как же получается, что эта реорганизация принимается клиентами? Когда происходит реорганизация цепочки из нескольких блоков, разве не сравнивается общая цепочка обеих цепочек?

Ответы (1)

Когда происходит реорганизация цепочки из нескольких блоков, разве не сравнивается общая цепочка обеих цепочек?

Да, это правда. По сути, именно так считается реорганизация любого размера . Однако так было не всегда. В первой версии Биткойн клиент сравнивался исключительно по высоте цепочки. В версии 0.3.3 (выпущена в июле 2010 г.) мы перешли на сравнение по цепочке. Сегодня вы не можете провести атаку искажения времени без большей части хэш-мощности.

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