amaclin ты не прав.
1. В коде битка есть чекпоинты. Последний датируется 9 апреля 2014 года. Транзакции которые были раньше уже никогда не пропадут из блокчейна.
1) Для успешной и профитной атаки-51 не нужно переписывать блокчейн с 2014 года.
Надо переписать за несколько часов, ну максимум за несколько дней.
2) Чекпойнты не для этого в коде битка. Биткойн не проверяет транзакции (я сейчас точно не могу сказать, не помню)
до последнего чекпойнта при начальной синхронизации блокчейна, чтобы не заниматься пустой работой и сэкономить
время пользователю.
Гипотетически построить альтернативную цепочку можно и от генезис-блока и при большей
сложности клиент её схавает.
2. Синхронизированные пиры принимают только те блоки, внутри которых есть правильный хэш предыдущего блока. Если кто-то упорно начнет присылать неправильные блоки (из альтернативной цепочки), то его пошлют нахуй и вдобавок забанят по IP.
В альтернативной цепочке это правило будет выполняться.
Вы про орфан-блоки знаете? Орфан-блок - это альтернативная цепочка из одного блока.
А атака-51 - это публикация альтернативной цепочки из N блоков причем сложность этой альтернативной
ветки должна быть больше, чтобы произошел переход.
Так что у построившего альтернативную цепочку одна надежда - на то, что его цепочку примут новые пиры когда начнут синхронизацию причем среди таких пиров должна оказаться нужная ему биржа ))
Нет-нет. Тут вы ошибаетесь.
Вспомните, почему сервисы требуют 3 или 6 подтверждений, а не одно?
Потому что любая глубина цепи может быть переписана.
Формально блоки с вашего диска никуда не денутся, просто клиент перейдет на альтернативную цепь.
А если серьезно, то единственный реальный сценарий атаки 51 это строить альтернативную цепочку СРАЗУ после своей транзакции и при этом не держать свои блоки в тайне, а отдавать их в сеть. Тогда НЕКОТОРЫЕ пиры тоже будут строить одновременно две цепочки до тех пор, пока ветка атакующего не станет длиннее.
Бред. Никто не строит одновременно две цепочки. Это крипто-шизофрения какая-то.
Правильный сценарий атаки я описал.
При этом опять же, те пиры которые успели сделать хоть одно подтверждение транзакции атакующего, будут считать блоки атакующего неправильными со всеми вытекающими из этого последствиями.
В этом ваша ошибка.
Я повторюсь - клиент принимает все валидные блоки, сравнивает общую сложность цепочек и выбирает ту, в которой больше сложность вне зависимости от того, на какую глубину придется реорганизовать цепь.
Иначе представьте себе - какой-нибудь Кипр или Исландия отваливаются от интернета на 1 час.
Исландская нода за это время майнит 2 блока, а весь остальной мир шесть.
Исландские блоки расходятся по всем исландским клиентам.
Потом связь восстанавливается.
Все исландские ноды обязаны перейти на более длинную цепочку из 6 блоков, а свою из двух блоков заорфанить