Представляем PoB — Как разработать более децентрализованный консенсус

Kevin Tan 5 декабря 2018 г. 

Каждая система блокчейна сама по себе является микрообществом, адаптивной организацией, состоящей из сетевых узлов.Деятельность этой организации регулируется консенсусным механизмом. Механизм консенсуса — это программируемое правило передачи выгод, которое привлекает людей, формирует защищенную сеть и действует детерминистическим образом.

В согласованном механизме IOST PoB комитет по производству блоков имеет 17 мест, которые меняются каждые 10 минут. 17 узлов с самым высоким Servi выбираются для комитета в каждом раунде, а затем по очереди производят блоки и получают награды.Каждый раз, когда узел выбирается для участия в производстве блоков, все члены комитета потребляют Servi. Поэтому у невыбранных узлов будет больше Servi, и у них будет больше шансов быть выбранными для комитета в следующем раунде. В соответствии с этим механизмом каждый день для комитета могут быть выбраны сотни различных узлов.

В механизме PoB входной барьер для того, чтобы стать кандидатом, ниже, чем в других сетях DPoS, поэтому в нем может участвовать больше членов сообщества. В то же время, у членов комитета будут увеличиваться вариации и изменения с большей частотой.Мобильность комитета очень динамична, а степень децентрализации намного выше, чем у EOS, благодаря небольшому количеству суперузлов и узлов-кандидатов, что обеспечивает лучшую автономию сообщества и одновременно гарантирует более высокую безопасность.

Кевин Тан , соучредитель и директор по развитию, IOST


Вступление

Консенсусный алгоритм IOST — PoB — включает в себя более децентрализованный процесс выборов в комитеты, чем существующие системы DPoS, при этом сохраняя преимущества масштабируемости и устойчивость к цензуре.

В первой из серии статей, в которых описывается наш алгоритм консенсуса, мы описываем механизм PoB в отношении блокирования выборов производителей и формирования комитетов, который обеспечивает децентрализованное управление производством блоков, проверку транзакций и целостность сети.

Наш проект обеспечивает процесс голосования и формирования комитета, где большинство узлов имеют право на производство блоков (а не только несколько верхних узлов) и где узлам с большим количеством голосов назначается более высокая вероятность создания блока.

Чтобы добиться этого, мы не используем результат голосования в качестве единственного фактора для выбора. Вместо этого мы вводим систему баллов (Servi) для определения и чередования членов комитета.

Стать кандидатом

Чтобы обеспечить безопасность сети, у PoB есть входной барьер для кандидатов производителей блоков. В текущей версии этот барьер был установлен на уровне 0,1% от доступных голосов в сети. Когда узел получил больше голосов, чем пороговое значение, он может отправить определенную транзакцию, чтобы стать кандидатом и участвовать в формировании комитета и блокировании производственного процесса.

Приобретение Servi и голосование

Хотя результаты голосования напрямую не определяют членов комитета, они оказывают пропорциональное влияние на коэффициент приобретения Servi. В текущей версии 17 членов комитета отбираются для производства блоков каждый раунд.

Каждый раунд состоит из трех этапов:

  1. Все кандидаты получат Servi пропорционально их голосам.
  2. Ранжированные Servi, верхние 17 узлов сформируют комитет, отвечающий за производство блоков для следующего раунда.
  3. У всех отобранных членов комитета баланс 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, которая обеспечивает высокую масштабируемость и пропускную способность.

Мы все еще проводим стресс-тестирование этой системы и работаем над улучшениями и разработкой твитов. Если у вас есть какие-либо отзывы, предложения или комментарии, пожалуйста, не стесняйтесь связаться по адресу kevin@iost.io. Вы также можете напрямую поговорить с нашей командой технических специалистов, посетив сайт charter.iost.io .


Вопрос &

Q: Кто-нибудь (даже с 1 IOST) может голосовать?

О: Да, наша сеть открыта для всех, и нет никаких препятствий для участия. Фактически, можно стать кандидатом, вступить в комитет, проверить и произвести блоки и заработать IOST, не требуя никаких инвестиций, кроме наличия стандартного домашнего ПК, при условии, что у вас достаточно людей, чтобы доверять и голосовать за вас.

Q: Сколько узлов в комитете?

Ответ: Существует 17 узлов, которые формируют комитет для производства и проверки блоков, но могут быть сотни различных узлов, выбранных для участия в комитете каждый день из-за децентрализованного и чередующегося процесса выборов.

Q: Как часто будут меняться эти узлы?

О: В текущей версии период выборов составляет 10 минут. Это означает, что комитет будет меняться каждые 10 минут в сети IOST после того, как Servi (награжденный голосами) будет очищен. Это создает гораздо более децентрализованные выборы, чем другие системы DPoS. Например, производители блоков EOS не изменятся, даже если будет изменено голосование, потому что изменения в голосовании настолько малы. Алгоритм IOST PoB гарантирует эффективность изменений.

Вопрос: Как IOST сравнивается с чем-то вроде EOS с точки зрения децентрализованного голосования и избирательного процесса?

A: IOST имеет более децентрализованный механизм для голосования, участия и избрания окончательного комитета для производства и проверки блоков. В EOS нет механизма для ротации членов комитета, если голоса не пересчитываются (у которых есть 3-дневный период ожидания после разыгрыша). Это означает, что весьма вероятно, что первые 21 BP останутся в комитете и произведут все блоки. В IOST наш избирательный процесс гарантирует, что BP постоянно меняются.

В EOS только 1 производитель блоков был выбран для проведения своих первоначальных выборов в условиях полной конфиденциальности, это наиболее централизованный процесс без прозрачности.

Голосование в сети EOS является очень техническим и не удобным для пользователя, что создает высокий барьер для участия, кроме того, частные ключи должны передаваться сторонним организациям, что создает серьезные проблемы безопасности. Дополнительно, с EOS, 1 голос приходится на каждый из 30 узлов, что ограничивает право голоса мелких владельцев токенов.

В сети IOST невозможно навсегда остаться в комитете, и поэтому создается очень сильный децентрализованный процесс создания комитета.

В: Что мешает сговору между узлами и голосованию друг за друга?

Ответ: Поскольку кандидаты, получившие наибольшее количество голосов, имеют наибольшие шансы на создание блоков, не имеет смысла распределять голоса и снижать шансы быть отобранными. Это особенно верно из-за избирательного процесса и механизма клиринга Servi — гораздо выгоднее иметь больший запас голосов по сравнению с другими кандидатами. С другими системами DPoS вам нужно иметь достаточно голосов, чтобы победить конкурента, что стимулирует сговор и распределение голосов.

Q: Что мешает одному объекту разместить несколько узлов?

A: Нет способа определить, принадлежат ли несколько узлов одному и тому же объекту. Это открытая и децентрализованная сеть, и нет никаких предварительных условий для размещения узла. Однако, как объяснено выше, неэффективно распределять голоса и рискует быть не выбранным в качестве кандидата или быть избранным в комитет.

В: Что произойдет, если не будет достаточно узлов выше порога 0,1%?

A: Наш протокол будет оптимизирован, чтобы этого не произошло, и входной барьер будет соответствующим образом скорректирован. Тем не менее, наш механизм консенсуса является очень гибким и устойчивым к ошибкам. В очень редкой ситуации, когда число членов комитета меньше максимального — или, например, член комитета отключается — он все еще может работать с количеством членов комитета меньше максимального и соответствующим образом настраиваться.

В: Нужно ли ставить токены в сети?

О: Да, токены IOST можно ставить для различных целей, включая голосование и использование сетевых ресурсов. Это обеспечивает справедливость выборов в комитеты, равенство доступности ресурсов и устраняет проблему «ничего не поставлено на карту», ​​чтобы избежать атак и спама в сети.

В: Чтобы стать кандидатом, кандидат должен получить 0,1% всех голосов, доступных в сети, где 1 IOST = 1 голос. Это правильно?

О: Да, это правильно, хотя на основе нашего тестирования в тестовой сети мы будем корректировать это число по мере необходимости до того, как Mainnet обеспечит не слишком высокий барьер для входа без ущерба для безопасности и защиты сети.

В: Как работает система голосования на практике?Как владелец IOST подаст и сможет изменить свой голос?

A: Технически это будет работать через отправку транзакций и умных контрактов. С точки зрения пользователя, будет интуитивно понятный пользовательский интерфейс, который сделает участие любого пользователя простым и легким.

В: Как выбирается комитет?

A:

  1. Станьте кандидатом. В текущей версии, если вы получите 0,1% голосов IOST по всей сети, вы можете отправить определенную транзакцию в сеть блокчейнов и стать кандидатом в комитет.
  2. Получить Servi и быть избранным: благодаря рекламе и продвижению по службе, поиску доверия сообщества и голосованию IOST кандидат получит определенное количество Servi. Во время выборов 17 верхних узлов по количеству Servi принимаются системой в качестве членов комитета, а затем по очереди генерируют блоки и получают вознаграждения.
  3. Обновление Servi и изменение комитета: все выбранные узлы вычитают количество Servi, полученное последним выбранным узлом (член комитета с наименьшим количеством Servi). Это количество Servi очищается от всех узлов-членов комитета, и затем выбирается новый комитет и формируется. В текущей версии, комитет будет меняться каждые 10 минут.

В: Связаны ли выборы с токенами Servi и IOST? Какова их пропорция?

Голоса соответствуют токенам IOST в сети IOST и могут быть использованы для голосования. Если у вас больше токенов, у вас будет больше прав голоса. Узел-кандидат получит определенное количество Servi в зависимости от количества поданных голосов, и в то же время после каждого успешного голосования определенное количество Servi будет вычтено, и, наконец, члены комитета будут выбраны из узлов-кандидатов. согласно Серви.

В: Почему кто-то хочет стать продюсером блока?

A: Производители блоков получают IOST для производства блоков и проверки транзакций. Эта статья о децентрализованном выборе кандидатов и комитетов, с моделью оплаты и структурой, объясненной в следующей статье.

В: Что произойдет, если узел выдаст недопустимый блок?

A: каждый блок проверяется каждым членом комитета и требует ⅔ согласия. В случае, когда создается недопустимый блок, остальная часть комитета не будет проверять этот блок, и узел, который произвел недопустимый блок, будет удален из комитета.

В: Могут ли пользователи делегировать («прокси») свои права голоса другому пользователю, который может голосовать от его имени?

Да, это возможно и уже интегрировано в протокол и основные функции голосования.

We in social media:

Добавить комментарий