Что произойдет, если частная вилка, расположенная в нескольких сотнях кварталов впереди, попытается объединиться?

Предположим, что пул майнинга долгое время находился вне основной сети, так что он отстает примерно на 100 блоков, но ему удалось добыть 200 блоков за этот период (скажем, некоторая комбинация раньше имела 33%, намеренно выбирая легкие блоки для расширения, и ...).

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

Я нашел два примерно похожих вопроса, но ни один из них не кажется правильным:

Можно ли запутать атаку двойной траты, имитируя транзакции, наблюдаемые до форка?

Изоляция интернета по всей стране, неизбежный форк

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

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

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

Наконец-то я догадался, как могла бы выглядеть версия без злого умысла, и нашел следующее: Сценарий: катастрофа разбивает Интернет на десятки не связанных между собой фрагментов В принципе, плохие вещи случаются, если самая большая подключенная сеть << 50%.

@Jestin: Оказывается, мое предположение было правильным. Снижение сложности ловится.
Если они являются майнерами на 33%, то они не смогут добыть эти 200 блоков вовремя, чтобы обогнать остальную часть сети. Майнер, конечно, может попытаться снизить сложность (если какие-то из этих 200 блоков находятся в пределах перехода сложности), но тогда правило «самой тяжелой цепи» гарантирует, что его форк будет сброшен.
Я представляю что-то вроде атаки выбранного блока на сам хеш, где измеритель сложности ложен, если вы можете достаточно ограничить содержимое блока.
Я не уверен, что вы подразумеваете под «атакой выбранного блока», но обратите внимание, что вы не можете подделать ни сложность блока, ни сложность цепочки. В период корректировки сложности блоков 2016 года вы можете создать впечатление, будто вы нашли эти блоки очень-очень быстро, солгав об их отметке времени, но это увеличит вашу сложность в следующем периоде, из-за чего вы будете очень медленно добывать следующий 2016 год. блоки. Не уверен, относится ли это к вашей атаке или нет.
@Joshua: Извините, мы, должно быть, неправильно поняли ваш сценарий. Таким образом, они создали более длинную цепочку, но не снизили сложность. Не могли бы вы уточнить, как им это удалось? Какими свойствами обладает более длинная цепь? Более длинная цепочка действительных блоков вызовет реорганизацию, я думаю, до 100 блоков. Однако, если бы они обманули с какой-либо формой недопустимых блоков, сеть просто проигнорировала бы их. Итак, поясните, пожалуйста, сценарий. В частности, что вы имеете в виду под «если бы он содержал только добытые транзакции»? Что такое "это" и что вы имеете в виду под "заминировано"?
@ Джошуа, у меня такое чувство, что ты неправильно понимаешь что-то фундаментальное, хотя я не уверен, что именно. Криптография, на которой основан Биткойн, действительно должна быть защищена от определенных криптографических атак. Если бы в используемой криптографии были известные уязвимости, то был бы форк для перехода на более безопасный алгоритм. Если вы чувствуете, что можете сломать существующую криптографию, то для этого есть вознаграждение в размере 10 миллиардов долларов. Пока что не заявлено.
@Jestin: недоразумение основано на предположении о возможности атак с предварительным изображением. Однако это также полностью аннулирует майнинг, поскольку доказательство работы перестанет быть таковым. В этот момент Биткойн должен был бы переключиться на другой алгоритм pow, но, вероятно, он был бы просто мертв.

Ответы (2)

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

Я не вижу, где я намекал на это, но это определенно не сработает.

несколько часов, чтобы построить блок с заданным хэшем.

Хеши блоков — это хэши SHA-256d. Пространство 2^256 слишком велико для грубой силы в обозримом будущем. Определенно это невозможно сделать за «несколько часов».

исключительно уязвимый блок

Что это должно быть? Блоки не более или менее уязвимы.

предварительно построить длинную цепочку

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

И как уже было описано в комментариях выше:

большое количество блоков низкой сложности

Учитывается не количество блоков, а общий «вес», измеренный в суммированной сложности.

Я экстраполирую, какие ранние атаки могут появиться первыми в SHA-256, исходя из того, в каком порядке они появляются в MD5. И с MD5 это действительно произошло, когда для некоторых хэшей MD5 было намного легче построить векторы, чем для других.
MD5 был нарушен для префикса атак коллизий. Здесь нам понадобятся атаки с предварительным изображением. Даже MD5 остается безопасным для атак предварительного изображения. На самом деле, майнинг — это, по сути, попытка грубой силы атаки с предварительным изображением. Все это еще больше усложняется тем, что вам нужно использовать действительный заголовок блока в качестве входных данных. Маловероятно, что сопротивление прообразу SHA-256d будет сломлено в ближайшее время, но вырубите себя.
@ Джошуа, возможно, это отдельный вопрос. Такое ощущение, что вы спрашиваете больше о потенциальных криптографических атаках, чем о реорганизации блоков. Ваши разъяснения, похоже, не имеют ничего общего с первоначальным вопросом. Я не говорю, что это плохая линия расследования, но, возможно, это должен быть отдельный вопрос.

Наконец-то я нашел ответ (очень старый): https://bitcointalk.org/index.php?topic=823.msg9668#msg9668

knightmb: «Старые клиенты должны принимать его вплоть до последнего снапшота релиза»

Если это все еще правда, это фактически отвечает на мой вопрос.

На самом деле, до последней контрольной точки, то есть блока 295,000 . Если это был ваш вопрос, то он действительно не был понятен… Ваш заголовок был «…на 100 блоков вперед пытались слиться назад?».