Думаю, что алгоритм можно найти. Можно оставить старый. Брать ту цепочку, у которой
сложность выше, и количество блоков не меньше заданного N. Как альтернатива, можно
смотреть на средний размер сложности блока в цепочке.
Вы подсоединились к двум нодам.
Одна из них говорит: у меня в цепочке 100 блоков, а все что раньше - отрезано, но сложность
там охулиард. Вторая говорит: у меня в цепочке 150 блоков, а все что раньше - отрезано,
но кумулятивная сложность того что отрезали - два охулиарда.
Кому из этих нод верить и какой блокчейн вы скачаете?
Какая там была вероятность создания альтернативной цепочки из 6 блоков, если майнеров меньше 50%?
Если у меня есть возможность создать свой utxo set - я запишу его в контрольный блок,
после чего начну всеми своими тремя асиками майнить от этого блока.
И у "основной" сети биткойна будет отрезанная сложность - миллиард, а у моей - два
миллиарда. А проверить вы не сможете - она же отрезана!
Причем тут отрезанная сложность. Важна сложность в оставшейся цепочке.
И сколько блоков ты намайнишь 3-мя асиками?
Из двух цепочек берем ту, в которой средняя сложность блока выше. Количество блоков достаточно большое, например, 10000. И последние блоки в цепочке должны соответствовать текущему времени.
Какова вероятность намайнить такую цепочку?
Алгоритм для трех асиков:
Сделать начальный блок с далекой будущей датой.
Записать туда большую сложность, надеясь, что когда мы доживем до этой будущей даты, сложность в основной будет меньше.
Намайнить 10000 блоков.
Когда подойдет время, попробовать подсунуть эту цепочку кому-то.
Чтобы надуть кого-то, нужно еще найти несколько блоков с такой же скоростью, что и основная цепочка.
p/s/ Чтобы намайнить 10000 блоков с нынешней сложностью, примерный порядок цифр:
12,5btc*10000*5000$ = 625млн$
С большей сложностью, соответственно, еще больше.