Переписать всю цепочку блоков: можно ли подделать временные метки блоков в частной цепочке майнинга?

Согласно fork.lol и bitcoin.sipa Питера , в настоящее время злоумышленнику со 100% текущей хеш-мощностью потребуется около 200 дней, чтобы переписать всю цепочку биткойнов. Мой вопрос касается того, как такая атака может на самом деле разыграться:

Предположим, что 100% хешрейта находится в руках злоумышленников, а цепочка btc остановилась. Злоумышленник направляет 100% вычислительной мощности на майнинг генезисного блока, поэтому он сгенерирует первые 2016 блоков СУПЕР быстро, а затем сложность увеличится в 4 раза. Это будет продолжаться до тех пор, пока сложность не достигнет текущего уровня, и примерно через 200 дней цепочка злоумышленника будет иметь более высокую совокупную сложность, несмотря на гораздо меньшую высоту блока.

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

Так как же возможна более скрытная атака? Может ли злоумышленник со скромным количеством хэш-мощности майнить частную цепочку и подделывать временные метки, чтобы сложность была ниже, чем должна быть? Таким образом, позволяя создать цепочку «реплика» с несколькими измененными транзакциями в интересах злоумышленников?

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

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

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

Ваш точный вопрос немного неясен для меня. Да, злоумышленник может майнить частную цепочку с меньшей сложностью. Но тогда никто не примет ее, потому что она имеет меньшую сложность.
Чтобы уточнить: работает ли таким образом подмена временных меток, и если да, то насколько это может позволить им снизить «дни, эквивалентные доказательству работы», необходимые для перезаписи всей цепочки? (при условии, что злоумышленник имеет доступ к большей части вычислительной мощности)
Ждем ответа Питера Вуилле .......
Я думаю, вы, возможно, запутались в том, как Биткойн вычисляет «лучшую» цепочку. «Лучшая» цепочка содержит больше всего работы и не обязательно самая длинная. Если вы возитесь с отметкой времени, чтобы снизить сложность, вы фактически сделали свою цепочку «короче». См.: bitcoin.stackexchange.com/questions/29742/…
@kaykurokawa Я понимаю разницу между «высотой блока» и «большинством работы», я думаю, вы немного неправильно поняли мой вопрос. Перефразируя: если злоумышленник с современным ASIC захочет переписать всю цепочку, но в конечном итоге получит ту же высоту блока/кумулятивную сложность, что и текущая цепочка, сможет ли подмена временной метки цепочки, добытой привилегией, позволить ему сделать это быстро? Например. Блок 150 000 в честной цепочке имеет сложность 52, блок 150 000 в цепочке атаки также имеет сложность 52, хотя у злоумышленника должно быть «1000 сложностей вычислительной мощности». Цифры, очевидно, вымышлены, но должны отражать суть
я считаю, что именно поэтому у нас есть контрольные точки в исходном коде, поэтому пользователя, выполняющего IBD, нельзя легко обмануть, чтобы проверить альтернативную цепочку с таким же объемом работы, когда история блоков все еще находилась в низком дифференциале. В относительно более высоких diff-блоках это не проблема, поскольку подделывать эти блоки нетривиально.

Ответы (1)

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

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

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