Немного дополню одним алгоритмом Roll-DPoS - (A Randomized Delegated Proof of Stake) Рандомизированное делегированное доказательство долиКто используетНа сегодняшний день алгоритм консенсура Roll-DPoS уже больше года успешно используется проектом
IoTeX для функционирования сети Интернета Доверенных Вещей.
Чтобы иметь быстрый и эффективный механизм консенсуса с мгновенным завершением блоков в контексте IoT, разработчики объединили концепции DPoS, PBFT и VRF (Verifiable Random Functions).
Как работает алгоритмRoll-DPOS имеет четыре фазы: выбор кандидатов, формирование комитета, предложение блока и завершение блока.
Набор кандидатовВ этой фазе могут участвовать — т.е. голосовать за кандидатов комитета —все узлы сети. Чтобы мотивировать узлы на голосование, система удостоверяется, что делегаты разделяют полученные вознаграждения с голосующими. Кандидаты формируют группу минимум из 97 делегатов; в будущем это число будет увеличиваться, во избежание в дальнейшем централизации майнинг-мощностей. Выбранные кандидаты вносятся в одну эпоху, которая состоит из 47 итераций.
Формирование комитетаВ каждой итерации посредством VRF из пула кандидатов случайным образом выбирается комитет из 11 кандидатов, для создания блоков в следующих 11 раундах. Идея заключается в том, чтобы использовать хэш блока из последней итерации и личный ключ узла в качестве входных данных для VRF и создания (Boolean output) логического вывода - если некто выбран как член комитета, преимущество, указывающего на его очередь в предложении блока, и доказательства, указывающего на его квалификацию
для предложения блока в определенном раунде. Использование VRF имеет важное значение, поскольку обеспечивает не интерактивный способ сортировки всех делегатов для предложения блоков справедливым и безопасным образом. С этой целью используется эффективный VRF, так, как он используется в Algorand.
Предложение блокаВ каждом раунде (это примерно каждые 3 секунды), каждый узел в комитете предлагает новый блок и передает его всей сети, вместе с приоритетом и доказательством. Только блок, предложенный узлом с самым высоким приоритетом, еще не выносившей
предложений в той же итерации, рассматривается другими узлами и получает статус блока-кандидата.
Завершение блокаВ том же раунде все остальные узлы голосуют за/против блока-кандидата посредством PBFT. Если более 2/3 узлов комитета соглашаются о валидности блока-кандидата, он завершается и добавляется каждым в сети к блокчейну. После этого, процессы предложения и завершения блока осуществляются в следующем раунде; если текущая итерация заканчивается, перед осуществлением процессов предложения и завершения блока формируется другой случайный комитет.