Почему у Биткойна больше нет контрольных точек?

Я читал, что контрольные точки в биткойнах были удалены, потому что они не предотвращали каких-либо значимых атак.

Почему обычный контрольно-пропускной пункт не должен предотвращать атаки большинства? Например, если контрольная точка создается через каждые N блоков и (например) 3/4 хэш-мощности согласуются, нельзя ли использовать это в качестве механизма для создания постоянного подтверждения транзакций перед контрольной точкой? Предполагая, конечно, что клиенты будут проверять эти контрольные точки и обеспечивать их включение в действующую цепочку.

Если N велико, то это не сильно помогает, потому что большинство атак могут быть очень разрушительными, даже если они откатываются всего на несколько блоков. Если N мало, то тот, кто устанавливает контрольные точки, имеет непропорциональную власть в определении того, какая ветвь является «правильной» ветвью блокчейна, что нарушает цель децентрализации.
Разве правая ветвь блокчейна не может быть той, у которой больше PoW на момент контрольной точки?
@ confused00 Да, это было бы, если бы N было шестью блоками. В случае разделения сети (скажем, кто-то перерезал подводные кабели, ведущие в Новую Зеландию), то как решить эту проблему при воссоединении сети?

Ответы (1)

Проблема в том, что вы предполагаете, что атака большинства — это атака, которую можно предотвратить. Это не. Это фундаментальное нарушение предположений о безопасности.

Доказательство работы (PoW) предполагает, что большая часть хешрейта будет кооперироваться и сходиться в одной цепочке, потому что это наиболее выгодно с финансовой точки зрения. Когда это больше не так, PoW сломан, и мы должны просто перейти к чему-то другому, а не пытаться это исправить.

Вы можете подумать, что добавление контрольных точек помогает улучшить эту ситуацию, но учтите следующее:

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

  • Или контрольные точки создаются для последних блоков (возможно, дней или часов), и в этом случае они действительно могут влиять на то, какая цепочка принимается в сети при определенных обстоятельствах, но в то же время они эффективно заменяют консенсус на основе PoW на «разработчики-решают». "консенсус... что-то, что вообще не требует сложного однорангового протокола, так как эффективно разработчикам нужно запускать системы, чтобы держать систему под контролем.

Итак, либо контрольные точки имеют эффект — и изменяют предположения безопасности на неинтересные, либо нет — и это не имеет значения.

Чтобы ответить на ваш вопрос: основная причина удаления контрольных точек связана с путаницей, которую они создают. Они заставляют людей думать, что они являются частью модели безопасности системы (как показывает ваш вопрос). Это не относится к делу. Это было введено как необходимость для реализации оптимизации (пропуск проверки скрипта) и несвязанной атаки типа «отказ в обслуживании» (диск нового узла заполняется блоками низкой сложности во время синхронизации). После некоторых изменений в протоколе P2P (синхронизация на основе заголовков) нам больше не нужны контрольные точки для безопасного выполнения этих действий.

В этом ответе отсутствует временной аспект атак. Большинство монет, кроме биткойнов, могут иметь 51%
@ user239558 Тогда они сломаны.
Есть один вид атаки большинства, который вы не упомянули, какие контрольные точки аккуратно решают. Построение более длинной, но недействительной цепочки. Если злоумышленник создает цепочку только с одной недействительной транзакцией, то остальная часть цепочки навсегда соответствует консенсусу биткойнов, контрольные точки избавляют новые узлы от необходимости проверять обе цепочки на всем пути до этого недопустимого блока. Атака может нарушить работу новых узлов, задерживая их вход в сеть, возможно, на долгое время. Мы не можем предполагать, что Биткойн всегда будет иметь наибольшую вычислительную мощность.
@BTI не понимаю. Если есть другая мажоритарная цепочка (что, как мне кажется, по своей сути делает меньшую цепочку небезопасной, но это нормально), форк произойдет в первом блоке, который недействителен для Биткойна. Это максимум один блок, который необходимо проверить и отклонить. Его преемники даже не будут загружены.
Вы правы в том, что другая мажоритарная цепочка подвергает риску цепочку меньшинства. Я вижу вашу точку зрения там. Однако вы сказали, что «есть не более одного блока, который необходимо проверить», но как узнать, какой это блок? Я полагаю... вы могли бы спросить у других узлов подсказки, которые, вероятно, помогут вам понять, где происходит разделение. Я думаю, что это достаточно решает проблему. Спасибо за продолжение! Мне придется немного подумать над этим и, возможно, пересмотреть свою позицию.
Вы проверяете блоки один за другим, от родителя к дочернему. Если в какой-то момент вы обнаружите недопустимый блок, вы пометите его и всех его потомков как недействительные. Если вы никогда не замечаете блок, вызывающий разветвление, просто означает, что вы не видели разветвления.
«Когда это больше не так, PoW не работает, и мы должны просто перейти к чему-то другому». Я думаю, что функция PoW будет нарушена , а не нарушена. Вынужденный выбирать между двумя альтернативными цепочками (или их небольшим числом) со значительным объемом PoW по-прежнему позволяет добиться более эффективного сближения к консенсусу, чем полное отсутствие честного сигнала для координации.