А если у меня не синхронизирован блокчейн?
Я вечером выключил комп (последний блок был 100), включил с утра и получаю от одного
пира блок 101 (валидно оформленный), а от другого пира штрафной блок?
Кому верить?
Если временные рамки механизма согласования не вышли, то все просто, блок 101 заменяет штрафной блок.
Но, а вот, что будет, если они вышли, а я думаю Вы этот вариант предусматривали в вопросе.
Вот тут другой вариант. В каждом блоке майнер проставляет временную метку и дату в едином для всех формате, конечно он может поставить любую, но при принятии его блока если время или дата будут отличаться о общего времени наверное на 1-3 часа (как раз временное окно механизма согласования) назад , то блок принят не будет. Это если клиент работает в онлайн режиме и принимает новые блоки.
Если он с нуля качает блокчейн или согласовывает вчерашний блокчейн с сегодняшним, то нужно смотреть на время пришедшего 101 валидного блока, если время не отличается от 100 блока на 1-3 часа, то принять его и опросить дополнительно случайных 30 нод на этот блок, если там тоже самое, то принять его окончательно, ну а если время больше, то отбросить и оставить штрафной блок.
Тут конечно есть, нюанс, что если одна часть опрошенных нод покажет штрафной блок, а другая этот валидный. То да, это слабое место этого алгоритма на текущий момент, т.к. приходиться чтобы его решить прибегать к категории доверия и опрашивать как бы доверенные ноды, но это неправильный путь.
Поэтому соглашусь, что на текущий момент у меня решения нет и в этом свете POW алгоритм более безопасный и надежный.
А вот это хотелось бы понять
Вообще-то это повод для злоупотреблений - по сути дела каждой ноде становится
финансово невыгодно релеить чужие блоки, так как выгоднее считать, что блок никто
не смайнил, подождать минуту и отослать (а так же включить в собственный блокчейн)
штрафной блок. Либо система вырождается в тот же самый PoS только теперь для
эффективного майнинга надо иметь не "один созревший выход", а "много маленьких майнящих депозитов"
Почему нодам финансово невыгодно. Про маленькие депозиты это так. Ведь человек для того и создают кучу этих депозитов, что бы майнить себе деньги, если же он будет саботировать и писать штрафной блок, то он будет терять время на перестройку блокчейна и последующую синхронизацию.