Это относится к усложнению хэширования и введению рейтинга для узлов?
Да, именно.
Для начала нам требуется выявить основные аксиомы работы сети.
1. Есть общие правила работы сети, все честные узлы сети соблюдают эти правила.
2. Блоки и транзакции бывают двух типов: совместимые с правилами и несовместимые.
3. Невозможно обмануть честные узлы, нарушив правила; такие действия игнорируются.
4. Захват возможен только при соблюдении захватчиком всех общих правил сети Bitcoin.
5. Нечестный захват возможен только при переводе всех узлов на несовместимый клиент.
задача сводится к идентификации правонарушителя
Хорошо, сеть заметила нарушителя, как это может принести какую либо пользу?
В следующий раз он выйдет в сеть с другого IP, что сводит к 0 возможную пользу.
Но, конечно, не в том смысле, чтобы отслеживать
денежные потоки или IP адреса злоумышленника.
Ну, а какую еще информацию можно получить от факта идентификации нарушителя?
Цель простая - нужно определить, какая из двух
цепочек настоящая, а какая поддельная
Ну, а почему нельзя просто игнорировать блоки, которые генерит атакующий?
Сейчас это проделывает каждый узел сети для каждой транзакции и для каждого блока.
Несовместимые действия - просто игнорируются. То есть нечестный захват не пройдет.
Допустим, что появилась цепочка не имеющая переводов, а только геренацию по 50 BTC
на адрес захватчика. Допустим, данная цепочка "сильнее" старой, то есть рассмотрим
вариант честного захвата. Захватчик соединяется с честными узлами и передает новую
более сильную цепочку. Однако, тем самым он делает услугу сети, так как увеличивает
криптостойкость системы. Такая услуга должна быть оплачена, и на мой взгляд 50 BTC
за каждый более сильный блок - достойная награда. Транзакции, которые были в блоках
старой цепочки, будут сразу добавлены в новую более сильную сразу, как только некий
честный майнер сможет сгенерировать очередной новый блок для новой сильной цепочки.
Так как невероятно маловероятно, что новая цепочка будет отличаться от старой более
чем на 100 блоков, то практически ни одна транзакция из старой цепочки не пропадет.
По факту такое регулярно происходит непроизвольно при сплитах сети. Проблемы нет.
Однако, проблемы могут возникнуть, если захватчик будет обладать более 100% всей
мощности сети (причем скорее всего - значительно больше 100%) и сможет каким-то
образом вбрасывать в сеть по 100+ блоков или генерировать каждый 1-ый блок сети.
Это весьма маловероятно, и речь уже идет не о 51%, а о 100%+ мощности всей сети.
Если приходится выбирать одну цепочку из двух, то просто выбирать ту, в которой обрабатывается большинство валидных транзакций с достаточным приоритетом.
Допустим. Но кто будет выставлять приоритет? Сколько будет стоить получить приоритет?
Не будет ли такого вида атака значительно дешевле захвата 100%+ мощности всей сети?
Что помешает захватчику годами копить приоритет, а затем резко обмануть весь мир?
В любом случае, не вижу смысла оставлять дыру в безопасности, если ее можно легко заделать
Я уверен, что эта "дыра в безопасности" - лишь плод воображения неспециалистов.