POB - АЛГОРИТМ КОНСЕНСУСА IOST: КАК ДОБИТЬСЯ ДЕЦЕНТРАЛИЗОВАННОГО КОНСЕНСУСА
Каждая система блокчейна сама по себе является микрообществом, адаптивной организацией, состоящей из сетевых узлов. Деятельность этой организации регулируется консенсусным механизмом. Механизм консенсуса - это программируемое правило передачи выгод, которое привлекает людей, формирует защищенную сеть и действует детерминистическим образом.
В согласованном механизме IOST PoB комитет по производству блоков имеет 17 мест, которые меняются каждые 10 минут. 17 узлов с самым высоким Servi выбираются для комитета в каждом раунде, а затем по очереди производят блоки и получают награды. Каждый раз, когда узел выбирается для участия в производстве блоков, все члены комитета потребляют Servi. Следовательно, у невыбранных узлов будет больше Servi, и у них будет больше шансов быть выбранными для комитета в следующем раунде. В соответствии с этим механизмом каждый день для комитета могут быть выбраны сотни различных узлов.
В механизме PoB входной барьер для того, чтобы стать кандидатом, ниже, чем в других сетях DPoS, поэтому в нем может участвовать больше членов сообщества. В то же время, члены комитета будут увеличиваться вариации и изменения с большей частотой. Мобильность комитета очень динамична, а степень децентрализации намного выше, чем у EOS, благодаря небольшому количеству суперузлов и узлов-кандидатов, что обеспечивает лучшую автономию сообщества и одновременно гарантирует более высокую безопасность.
Алгоритм консенсуса IOST - PoB - включает более децентрализованный процесс выборов в комитеты, чем существующие системы DPoS, при этом сохраняя преимущества масштабируемости и устойчивость к цензуре.
В первой серии статей, в которых описывается наш алгоритм консенсуса, мы описываем механизм PoB в отношении блокировки выбора производителя и формирования комитета, который обеспечивает децентрализованное управление производством блоков, проверку транзакций и целостность сети.
Наш проект обеспечивает процесс голосования и формирования комитета, где большинство узлов имеют право на производство блоков (а не только несколько верхних узлов) и где узлам с большим количеством голосов назначается более высокая вероятность создания блока.
Для этого мы не используем результат голосования в качестве единственного фактора для выбора. Вместо этого мы вводим систему баллов (Servi) для определения и чередования членов комитета.
СТАТЬ КАНДИДАТОМ
Для обеспечения безопасности сети у PoB есть входной барьер для кандидатов производителей блоков. В текущей версии этот барьер был установлен на уровне 0,1% от доступных голосов в сети. Когда узел получил больше голосов, чем пороговое значение, он может отправить определенную транзакцию, чтобы стать кандидатом и участвовать в формировании комитета и заблокировать производственный процесс.
ПРИОБРЕТЕНИЕ SERVI И ГОЛОСОВАНИЕ
Хотя результаты голосования напрямую не определяют членов комитета, они оказывают пропорциональное влияние на коэффициент приобретения Servi. В текущей версии 17 членов комитета отбираются для производства блоков каждый раунд.
Каждый раунд состоит из трех этапов:
- Все кандидаты получат Servi пропорционально их голосам.
- Ранжированные Servi, верхние 17 узлов сформируют комитет, отвечающий за производство блоков для следующего раунда.
- У всех отобранных членов комитета баланс Servi будет уменьшен на баланс 17-го узла. Другими словами, у 17-го узла будет сброшен Servi на ноль, а остальные 16 узлов потеряют ту же сумму.
В текущей версии период голосования составляет 10 минут. Это приводит к тому, что комитет вращается каждые 10 минут в сети IOST.
ПРИМЕР
Для простоты предположим, что у нас есть упрощенная версия, где для каждого комитета выбрано 3 узла, а текущий пул кандидатов равен 5.
Узлы получают 10, 8, 5, 4 и 1 Servi соответственно. Давайте назовем их A, B, C, D и E. Также давайте предположим, что голоса остаются неизменными в течение периода голосования.
В первом раунде их очки равны 10, 8, 5, 4, 1. A, B и C станут членами комитета, так как они имеют наибольшее количество Servi.
Их балансы Servi затем вычитаются на 5, столько же, сколько было у C. Баланс Servi D и E остается неизменным. Теперь у нас есть баллы Servi узлов 5, 3, 0, 4 и 1.
Во втором раунде Servi снова присуждается каждому узлу. Их остатки теперь 15, 11, 5, 8 и 2.
A, B и D теперь становятся членами комитета, и все они теряют 8 Servi (баланс Servi узла D). Их весы Servi теперь 7, 3, 5, 0 и 2.
В третьем раунде у них есть остатки 17, 11, 10, 4, 3. В этом раунде A, B и C голосуются комитетом еще раз.
Перейдем к 9 раунду. Их баланс Servi теперь равен 26, 8, 5, 12 и 9. Узел E станет членом комитета, несмотря на то, что он получает только 1 Servi каждый раунд.
ДРУГИЕ ОСОБЕННОСТИ И МЕХАНИЗМЫ
1. Когда голосование и выбор членов комитета завершены, начинается создание вращающегося блока, подобного DPOS. другими словами, для каждого сформированного комитета каждый член по очереди создает один блок, а все остальные члены комитета проверяют все блоки.
2. В большинстве случаев кандидат с наибольшим количеством Servi становится членом комитета. Чтобы ограничить это, мы установили правило, которое запрещает балансам Servi более чем в десять раз превышать общее количество поданных голосов .
3. Если есть ничья на 17-м месте, победит тот узел, который первым получил кандидатуру . На практике это будет крайне редко.
4. Узлам-кандидатам необходимо отправлять транзакцию проверки один раз каждые 6 периодов (1 час), чтобы подтвердить доступность. В противном случае этот кандидат потеряет кандидатуру и все голоса.
5. Если член комитета не производит блок в раунде, он теряет голоса и кандидатуру.
6. Жетоны, используемые для голосования, выкупаются через 7 дней, и то же самое относится к узлу, который потерял кандидатуру. Таким образом, узлы, которые потеряли кандидатуру по вышеуказанным причинам, будут иметь период «охлаждения» и не будут иметь права на выбор.
ЗАКЛЮЧЕНИЕ
Механизм консенсуса POB IOST обеспечивает более децентрализованный процесс голосования и формирования комитетов путем введения системы баллов Servi, в которой количество произведенных блоков будет пропорционально полученным ими голосам.
Хотя этот дизайн обеспечивает децентрализацию процесса производства блоков и справедливость по всей сети, он не ставит под угрозу преимущества системы DPoS, которая обеспечивает высокую масштабируемость и пропускную способность .
Мы все еще проводим стресс-тестирование этой системы и работаем над улучшениями и разработкой твитов. Если у вас есть какие-либо отзывы, предложения или комментарии.