это та самая попытка избавиться от централизованных девелоперских рассылок (а ранее в коде) отметок о гарантированно валидном блоке, который нельзя отменить, чтобы злоумышленник не смог заорфанить 100500блоков разом?
Отчасти да, но скорее предотвращение спектаклей типа устраиваемых ghash.io в BTC. Централизованные чекпоинты не играют в NVC такой роли, как в PPC. Здесь эта функция опциональна во-первых, а во-вторых рассылка делается только для достаточно старых блоков (имеющих 8-10 подтверждений возраст больше часа), давая возможность нормального reorganize. В ближайшем будущем они будут убраны полностью, независимо от того будет или не будет реализовано подписывание блоков пользователями.
кто такие stakeholders? я в том смысле, кто или что их определяет.
Сейчас подобный механизм уже используется для выборки блоков-источников энтропии stake modifier.
Суть идеи проста и похожа на жеребьевку. По детерминированному алгоритму функция принятия блока выбирает N proof-of-stake блоков из прошлого. Это делается таким образом, чтобы выборка была всегда идентичной для конкретного блока, но нельзя или сложно было бы предсказать результат выборки для блока в будущем. Далее из этих блоков берутся публичные ключи vin[0] коинстейк-транзакции. Вот это и будут те самые холдеры, которым будет предложено подписать блок-кандидат.
Если конкретный юзер, получив блок, видит в списке публичных ключей свой, то он может отправить в сеть специальное сообщение, которое доставит всем нодам его подпись для этого блока. Ну а дальше все просто - чем больше подписей от юзеров из списка собрано блоком, тем больше его приоритет над остальными при прочих равных.
Таким образом, чтобы развлекаться с selfish mining, пулу типа ghash.io придется иметь очень весомую долю proof-of-stake блоков в прошлом. Тогда у него есть шанс того, что в списке окажутся его ключи в достаточном для перевеса количестве. В противном случае у него шансов нет, потому что блок оффлайн-цепочки не сможет набрать больше подписей, чем блок, который видели все.
Нет, это попытка избежать ситуации, когда пул находит блок, но не публикует его сразу а придерживает и начинает искать следующий в цепочке (и этим получает преимущество -- больше времени для поиска).
Именно.