Консенсус лежит в основе распределенной системы. Хороший алгоритм консенсуса приносит большую пользу распределенной системе. В сфере блокчейнов вы, возможно, слышали о многих консенсусных алгоритмах, таких как PoW, PoS, DPoS, BFT и других улучшенных алгоритмах на их основе. TRON, как и многие другие публичные блокчейны, провел огромные исследования и практику для улучшения своего консенсуса. механизм. В соответствии со своим собственным позиционированием сеть TRON сначала внедрила механизм консенсуса DPoS, а затем объединила его с механизмом консенсуса PBFT, и эти два механизма постепенно превратились в новый механизм консенсуса TPoS.
Обзор
В системе блокчейн бухгалтеры обычно выбираются таким образом, чтобы разные узлы выполняли один и тот же консенсус. Алгоритм консенсуса PoW (Proof of Work) определяет бухгалтеров, решая сложные вопросы PoW. Типичные системы блокчейнов, такие как Биткойн и Эфириум, используют консенсус PoW. В идеале консенсус PoW - это сильно децентрализованный алгоритм, обеспечивающий безопасность распределенных реестров. Однако, поскольку решение вопросов чрезвычайно сложно, большинство узлов на самом деле предпочитают сотрудничать с пулами майнинга для совместной добычи. Это приводит к концентрации и монополии на ведение бухгалтерского учета в нескольких крупных майнинговых пулах. Таким образом, децентрализация, за которую выступает PoW, оказывается под угрозой. Тем временем, проведение бессмысленных вычислений за счет огромного количества электроэнергии - еще одна проблема PoW, которую сильно критикуют многие люди. С другой стороны, неэффективность алгоритма консенсуса PoW также ставит под угрозу пропускную способность системы.
PoS (Proof of Stake) прокладывает новый путь и выпускает доли (токены) в системе блокчейн, давая возможность узлам, которые имеют больше ставок, участвовать в бухгалтерском учете. Такой новый консенсус помогает решить проблему бесполезной траты вычислительной мощности на решение сложных вопросов. Кроме того, только майнеры, владеющие долями, могут участвовать в майнинге, что обеспечивает соответствие интересов майнеров и заинтересованных сторон, защищая безопасность систем блокчейн. Конечно, у PoS также есть свои проблемы, которые включают сложную коммуникацию и негативное влияние на систему, когда люди подкупают избирателей или голосуют несколько раз.
В DPoS консенсус развился из консенсуса PoS, несколько представителей выбираются из всех узлов, владеющих долями, и получают права ведения бухгалтерского учета. В этом случае решается вопрос сложной коммуникации. Кроме того, права на ведение бухгалтерского учета предоставляются до производства блоков. Голоса подаются за бухгалтеров, а не за блоки, что помогает предотвратить возможность подавать несколько голосов. В отличие от PoS, консенсус DPoS существенно сокращает количество узлов, участвующих в проверке и бухгалтерском учете, обеспечивая эффективную модель достижения консенсуса. Бухгалтеры проверяют и упаковывают транзакции в блоки, а также транслируют новые блоки другим узлам в системе. Затем другие узлы распознают новые блоки.
Типичная реализация алгоритма консенсуса DPoS выглядит следующим образом:
При первом развертывании системы блокчейн система выдает определенное количество токенов и распределяет их по узлам в системе. Имея определенное количество токенов, узлы могут подавать заявки, чтобы стать кандидатами на роль бухгалтера в системе блокчейн. Все узлы, владеющие токенами, могут голосовать за этих кандидатов, а бухгалтеры (производители блоков) выбираются на основе количества голосов, полученных каждым узлом. Через некоторое время (T) система пересчитает голоса, полученные каждым кандидатом, и выберет бухгалтеров для следующего цикла. И этот процесс повторяется. Бухгалтеры производят блоки в период времени T и получают соответствующие вознаграждения, предусмотренные в механизме стимулирования системы.
Практика консенсуса DPoS
Публичный блокчейн TRON использует алгоритм консенсуса DPoS. На практике система устанавливает роль суперпредставителей, и 27 кандидатов, получивших наибольшее количество голосов, избираются СР (суперпредставителями). Кандидаты с рейтингом от 28 до 127 называются SRP (Суперпредставительные партнеры). Система пересчитывает голоса, полученные каждым кандидатом, и принимает решение о следующей партии СР. SR имеет право производить блоки и получать соответствующие вознаграждения за создание блоков. Кроме того, SR и SRP получат награды за голосование за каждый новый произведенный блок.
Раунд и слот генерации блока
Сеть TRON определяет каждые шесть часов как один раунд и каждые три секунды как один слот. Таким образом, каждый раунд содержит 7200 слотов. Взаимосвязь между раундом и слотом проиллюстрирована на рисунке 1. Последние два слота в каждом раунде являются периодом обслуживания, в течение которого блоки не будут создаваться, и принимаются новые SR, а также порядок их создания блоков.
Рисунок 1: Связь между раундом и слотом
Генерация блоков и консенсус
SR по очереди, как было решено в период обслуживания, производить новые блоки и только в соответствующих им слотах. На рисунке 2 показано, как SR производит блоки.
Рисунок 2: SR производят блоки по очереди
На рисунке 3 показана ситуация, когда в системе происходит форк во время одного из слотов. Все S3, S4 и S5 сохранили блоки B1 и B2, созданные S1 и S2, в своих регистрах. Однако из-за временного раздела сети S4 и S5 не получили блок B3, созданный S3. Когда это слот для S4 для создания блока, S4 считает, что S3 мог дать сбой, и поэтому создает блок B3 'поверх B2. Затем S5 создает блок B4 на основе блока B3 ', потому что он не получил B3. Теперь есть два разных блока, B3 и B3 ', на одной высоте блока (= 3) во всей системе цепочки блоков. Такая ситуация называется временной развилкой.
Рисунок 3 Форк, вызванный разделом сети
Поскольку разделение сети неизбежно в децентрализованной системе в сочетании со случайными временными вилками, TRON позволяет создавать временные вилки, чтобы улучшить свою пропускную способность. TRON не переоценивает согласованность системы в реальном времени и вместо этого обеспечивает достижение максимальной согласованности. Это компромисс, сделанный при соблюдении принципа CAP. Для обеспечения согласованного состояния системы используются следующие два подхода:
1. Использование самой длинной цепи, чтобы максимально быстро свести к минимуму вилку.
Всякий раз, когда происходит временное разветвление, узлы всегда отдают приоритет самой длинной цепочке, где SR хранят каждую отдельную вилку и создают блоки поверх самой длинной цепочки, когда приходит их слот для производства блоков. Как показано на рисунке 4, S6 принимает как блок B3, созданный S3, так и B3 ', созданный S4, а также B4, который S5 сгенерировал на основе блока B3'. В локальной книге S6 есть две цепочки, а именно B1-B2-B3 и B1-B2-B3'-B4. Согласно принципу самой длинной цепочки, S6 затем продолжит создание блока B5 на основе B1-B2-B3'-B4. Следующие SR по такому же принципу будут генерировать блоки. При плохом разделе сети в системе блокчейна может быть несколько цепочек разветвления. Тем не менее, пока СР принимают самую длинную цепочку,
Рисунок 4 SR производят блоки на основе самой длинной цепочки.
2. Блокировать консенсус с механизмом затвердевания.
Консенсус предназначен для обеспечения того, чтобы завершенный блок не откатился. Для консенсуса блоков требуется справедливый механизм, поскольку блоки в исходной цепочке, вероятно, будут откатываться, когда узлы склонны переключать цепочки при временном разветвлении.
В приведенном выше примере узел S6 создает блоки в соответствии с состоянием своего локального реестра, не зная состояния реестра для других узлов. Доработан блок, который производил S6. Только когда большинство СР признают этот блок, можно будет достичь консенсуса по нему. SR распознают блок, когда они создают последующие блоки (т. Е. Хэш блока этого блока будет использоваться как хэш родительского блока для последующего блока) поверх него. Сеть TRON, принимая самую длинную цепочку, устанавливает порог для консенсуса блоков на уровне 19. Это означает, что помимо SR, производящего блок, еще 18 различных SR должны создавать свои последующие блоки поверх этого блока, чтобы достичь консенсуса для блока. . Когда этот блок распознается большинством SR и откат невозможен,
На рисунке 5 показан процесс затвердевания блока: после того, как S6 произвел B5, B3 'был подтвержден тремя SR, включая S4, который сам произвел B3', и S5 и S6, которые произвели B4 и B5 соответственно на основе B3 '. продолжать производить блоки в цепочке B1-B2-B3'-B4-B5, тогда B1 станет твердым блоком в то время, когда производится B19, и то же самое для B2 и B3 ', когда производятся B20 и B21. Следует отметить, что реальное значение «различных SR» заключается в том, что они гарантируют, что рост любой другой вилки не будет превышать высоту текущей цепи, что означает, что блоки прочности были подтверждены большинством SR.
Рисунок 5 Подтвердите блоки как блоки твердости
Ротация СР и поощрение
Ротация SR - важная особенность консенсуса DPoS. Рассмотрим такой сценарий: один единственный SR отключен, и пропускная способность всей системы блокчейна будет скомпрометирована. При наличии механизма ротации SR эту роль будут выполнять и другие доступные суперпредставители. Старый СР, который не может создавать блоки и распределять вознаграждения за блоки среди своих избирателей, будет заменен другими Суперпредставителями-партнерами. СР для производства блоков для следующего раунда будут определены в период обслуживания. Таким образом, SR по очереди будут выполнять свои задачи.
В децентрализованной системе, такой как блокчейн, где роль администратора отсутствует, надежная модель стимулирования и механизм обратной связи незаменимы для эффективного управления системой. Подобно консенсусу PoW, который награждает узлы, производящие блоки токенами, консенсус DPoS также предлагает вознаграждения производителям блоков, чтобы стимулировать их проверять транзакции и производить блоки при распределении вознаграждений среди избирателей, что помогает поддерживать нормальную работу сети блокчейнов и поощрять больше избирателей будут участвовать в управлении сетью. В предыдущих статьях эта модель стимулирования подробно описывалась, пожалуйста, проверьте ссылку: Механизм стимулирования сети TRON.
Преимущества и ограничения
Механизм консенсуса DPoS, используемый TRON, может гарантировать доступность системы в случае разделения сети. После восстановления сетевого соединения после разделения цепочки узлы будут следовать принципу самой длинной цепочки, чтобы быстро перейти к самой длинной цепочке и завершить блоки, которые были подтверждены большинством SR. Таким образом, сеть TRON гарантирует доступность системы блокчейн на верхнем уровне. и очень удобен для приложений с меньшими требованиями к согласованности. С другой стороны, механизм затвердевания TRON обеспечивает согласованный статус для затвердевающих блоков, что в определенной степени обеспечивает высокую согласованность сети.
В нашей текущей реализации консенсуса DPoS для завершения блока требуется 18 слотов (54 секунды) подтверждения. Хотя мы можем изменить порог подтверждения на 14 (блок будет закреплен через 13 слотов, а именно 39 секунд) на основе правила большинства, это поставит под угрозу безопасность. В результате эффективность блочного консенсуса в рамках текущего алгоритма DPoS еще предстоит повысить. В следующих статьях мы подробнее рассмотрим этот вопрос и обсудим возможные решения.
Резюме
В качестве первого выпуска серии, эта статья сначала кратко представляет некоторые общие алгоритмы консенсуса в системе блокчейн, затем объясняет основы алгоритма консенсуса DPoS, принятого в настоящее время в TRON MainNet, и, наконец, обсуждает его преимущества и ограничения. Эта статья закладывает основу для наших будущих обсуждений технической философии и реализации механизма консенсуса TPoS.
Рекомендации
https://bitcoin.org/bitcoin.pdf
https://www.sciencedirect.com/science/article/pii/S240595951930164X
https://en.bitcoinwiki.org/wiki/DPoS
Для дополнительной информации
Github: https://github.com/tronprotocol.