Обзор Klaytn

Последнее обновление —

Klaytn – хорошо оптимизированный публичный блокчейн на основе BFT, стремящийся соответствовать уровню надёжности, которого требуют корпорации.

Ключевыми целями проекта являются

  • Мгновенное завершение транзакций.
  • Высокий уровень TPS, подходящий для реальных сценариев использования.
  • Низкая стоимость запуска блокчейн-приложений.
  • Низкие барьеры для входа конечных пользователей.
  • Лёгкий процесс внедрения технологий для индустриального применения.

Команда Klaytn запустила свою основную сеть Cypress 27 июня 2019 года.

Со следующими спецификациями

  • Время генерации и подтверждения блоков – 1 секунда.
  • 4000 транзакций в секунду.
  • Низкая цена за газ, почти 1/10 от цены в сети Ethereum.
  • Позволяет использовать EVM (Ethereum Virtual Machine) и поддерживает выполнение контрактов на языке Solidity.
  • Девятнадцать авторитетных корпораций по всему миру сформировали Совет управления (Klaytn Governance Council) для контроля за консенсусными нодами. Текущее количество консенсусных нод можно посмотреть в сервисе Klaytnscope.
  • Более пятидесяти ранних партнёров подтвердили решение о запуске блокчейн-приложений на Klaytn.

Обзор Klaytn: общая картина

Блокчейн-сеть Klaytn можно разделить на три логические подсети по их ролям и назначениям. На рисунке ниже показан общий вид экосистемы Klaytn.

Экосистема Klaytn и её логические подсети (CCN, ENN, SCN).

Core Cell Network (CCN)

Сеть базовых ячеек (Core Cell Network, CCN) состоит из базовых ячеек (Core Cell, CC), которые проверяют и исполняют транзакции, представленные через конечные ноды (Endpoint Nodes, EN). CCN отвечает за создание блоков и их распространение по всей сети.

Endpoint Node Network (ENN)

Сеть конечных нод (Endpoint Node Network, ENN) состоит из конечных нод (Endpoint Nodes, EN), которые создают транзакции, обрабатывают запросы RPC API, а также обрабатывают запросы данных от сервисных цепочек.

Service Chain Network (SCN)

Сети сервисных цепочек (Service Chain Network, SCN) – это подсети Klaytn, состоящие из вспомогательных блокчейнов, которые независимо управляются разными блокчейн-приложениями (BApps). Сервисные цепочки подключены к главному блокчейну через EN.

Сеть базовых ячеек (Core Cell Network) и сеть конечных нод (Endpoint Node Network) образуют главную цепочку или «mainnet» Klaytn. Блокчейн-приложения могут работать на главной цепочке Klaytn, которая называется Cypress, или на своих собственных блокчейнах, называемых «Сервисными цепочками» (Service Chains).

Если вы хотите иметь выделенную среду исполнения для своего приложения, которая гарантирует высокий уровень TPS и позволяет настраивать сетевые политики, мы рекомендуем использовать сервисные цепочки.

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

Топология сети Klaytn

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

Типы нод с конкретными ролями

Прежде чем мы перейдём к изучению топологии основной цепочки Klaytn, нам нужно ознакомиться с различными типами нод на этом блокчейне.

Core Cell (CC): Consensus Node (CN) + Proxy Node (PN)

Базовая ячейка (Core Cell, CC) состоит из одной консенсусной ноды (Consensus Node, CN) и двух прокси-нод (Proxy Node, PN). Консенсусные ноды участвуют в процессе генерации блоков, в то время как прокси-ноды обеспечивают интерфейс связи с сетью. Прокси-ноды передают запросы на транзакции консенсусным нодам и распространяют блоки среди конечных нод.

Если вас интересует возможность стать оператором базовой ячейки, прочтите руководство по их настройке и эксплуатации.

Endpoint Node (EN)

EN являются конечными точками сети Klaytn, обрабатывающей запросы RPC API и данные, отправляемые в сервисные цепочки и получаемые из них.

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

Загрузочная нода

Загрузочные ноды (Bootnodes) – это ноды специального типа, которые помогают вновь присоединяющимся нодам зарегистрироваться в сети и обнаружить другие ноды для подключения. Загрузочные консенсусные ноды находятся внутри CNN и не являются общедоступными, в то время как загрузочные прокси-ноды и конечные ноды являются общедоступными.

Загрузочные прокси-ноды позволяют регистрировать имеющие все разрешения прокси-ноды, а также позволяют им соединяться с конечными нодами. Загрузочные конечные ноды предоставляют конечным нодам информацию о том, к какой прокси-ноде следует подключиться.

Многослойные сети

Консенсусные ноды, прокси-ноды и конечные ноды образуют логические сети, Сеть консенсусных нод (CNN), Сеть прокси-нод (PNN) и Сеть конечных узлов (ENN), соответственно.

На рисунке ниже показана общая топология блокчейна Klaytn, где Сеть базовых ячеек (Core Cell Network, CCN) разделена на Сеть консенсусных нод и Сеть прокси-нод. Сеть конечных нод (ENN) также показана в виде окружения, подключенного непосредственно к PNN.

Физическая топология и многоуровневая архитектура основной цепочки Klaytn (CNN, PNN и ENN).

Consensus Node Network (CNN)

Консенсусные ноды образуют между собой ячеистую сеть, называемую Сетью консенсусных нод (CNN). В CNN используется механизм BFT и обязательно нужно, чтобы каждая консенсусная нода соответствовала строгим требованиям к оборудованию и сетевым ресурсам для достижения консенсуса BFT на достаточном уровне производительности.

Proxy Node Network (PNN)

Сеть прокси-нод (PNN) состоит из прокси-нод. Как правило, каждая прокси-нода поддерживает только одно соединение с прокси-нодой в соседней базовой ячейке. Количество соединений однорангового типа может изменяться в зависимости от конфигурации сети.

Endpoint Node Network (ENN)

Самая внешняя из подсетей, Сеть конечных нод (ENN), состоит из соединённых друг с другом конечных нод, а также из нескольких прокси-нод.

Читайте также Обзор Elrond: блокчейн с поддержкой шардинга, ориентированный на масштабирование

Генерация и распространение блоков

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

Цикл генерации блоков

«Раунд» – это цикл генерации блоков в Klaytn. Каждый раунд генерирует новый блок, и сразу же начинается новый раунд. Klaytn стремится к тому, чтобы каждый раунд длился примерно одну секунду, хотя интервал генерации блоков может зависеть от трафика сети и условий работы нод.

Выбор "предлагающего" и комитета

В каждом раунде Klaytn случайным, но детерминированным образом выбирает одну консенсусную ноду (CN) в качестве «предлагающего» по созданию блока, а затем выбирает группу консенсусных нод в качестве комитета для данного раунда. Команда Klaytn не принимает непосредственного участия в выборе «предлагающего» или комитета.

Вместо этого каждая нода консенсуса использует случайное число, полученное из последнего заголовка блока, для выполнения криптографической операции, которая позволяет доказать, что нода выбрана для участия в этом раунде. Размер комитета должен быть устойчивым к «Проблеме Византийских генералов«; если размер Сети консенсусных нод невелик, все консенсусные ноды (кроме «предлагающего«) могут избираться в качестве комитета.

Предложение и проверка блоков

После выборов «предлагающий» передает всем консенсусным нодам своё подтверждение избрания для раунда (т. е. криптографическое доказательство, проверяемое открытым ключом автора предложения). После этого консенсусные ноды, избранные в качестве комитета для данного раунда, передают «предлагающему» свои собственные доказательства избрания, уведомляя его о том, кому нужно будет транслировать новый блок.

Затем «предлагающий» выбирает набор транзакций из своего пула транзакций и формирует блок, упорядочивая их. Наконец, «предлагающий» достигает консенсуса с комитетом относительно согласования и окончательной доработки вновь созданного блока. Обратите внимание, что команда Klaytn планирует постоянно совершенствовать свой консенсусный алгоритм для достижения более высокой безопасности и эффективности.

Распределение блоков

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

Публичное раскрытие информации и открытая валидация

Поставщики услуг и конечные пользователи сети Klaytn могут свободно проверять результаты генерации блоков и контролировать выполнение комитетом консенсусных нод всех надлежащих процедур при генерации блоков. При этом также проверяется, содержит ли заголовок блока более двух третей подписей комитета.

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

Читайте также Обзор Terra (LUNA): программируемый денежный протокол

Раздельные каналы распространения для блоков и транзакций (многоканальное распределение)

Задержка сети сильно зависит от степени её перегруженности. Если предположить, что пропускная способность сети останется постоянной, то увеличение количества транзакций приведёт к пропорциональному увеличению задержки сети. Задержки являются критической проблемой для BApps; типичные пользователи традиционных мобильных приложений или веб-сервисов не будут терпеть время отклика более нескольких секунд, и у блокчейн-сервисов нет причин рассчитывать на более высокую терпимость пользователей.

Для решения проблем перегрузки сети Klaytn использует многоканальный подход. Назначая отдельные каналы распространения для транзакций и блоков, сеть может своевременно распределять вновь созданные блоки, даже если она сталкивается с большой перегрузкой из-за большого количества транзакций. Таким образом, Klaytn гарантирует, что BApps в этой сети будут отвечать на запросы конечных пользователей независимо от периодических всплесков трафика.

Вознаграждение за блок

После каждого раунда вознаграждение за блок (которое представляет собой сумму 9,6 новых токенов Klaytn (KLAY) и комиссии, уплаченной за обработку блока) распределяется между участниками сети в соответствии с предварительно установленными коэффициентами распределения. «Предлагающий» получит 100% вознаграждения, которое будет присуждено консенсусным нодам, в то время как комитет не получит ничего.

Обратите внимание, что на вероятность выбора «предлагающим» влияет размер ставки KLAY, то есть, консенсусная нода с большим количеством вложенных в платформу токенов получает больше всего вознаграждений. Подробную информацию о распределении вознаграждений за блоки можно найти в разделе Klaytn Token Economy.


Ещё нет комментариев


Читайте дальше:

Обзор Klaytn

Последнее обновление —

Klaytn – хорошо оптимизированный публичный блокчейн на основе BFT, стремящийся соответствовать уровню надёжности, которого требуют корпорации.

Ключевыми целями проекта являются

  • Мгновенное завершение транзакций.
  • Высокий уровень TPS, подходящий для реальных сценариев использования.
  • Низкая стоимость запуска блокчейн-приложений.
  • Низкие барьеры для входа конечных пользователей.
  • Лёгкий процесс внедрения технологий для индустриального применения.

Команда Klaytn запустила свою основную сеть Cypress 27 июня 2019 года.

Со следующими спецификациями

  • Время генерации и подтверждения блоков – 1 секунда.
  • 4000 транзакций в секунду.
  • Низкая цена за газ, почти 1/10 от цены в сети Ethereum.
  • Позволяет использовать EVM (Ethereum Virtual Machine) и поддерживает выполнение контрактов на языке Solidity.
  • Девятнадцать авторитетных корпораций по всему миру сформировали Совет управления (Klaytn Governance Council) для контроля за консенсусными нодами. Текущее количество консенсусных нод можно посмотреть в сервисе Klaytnscope.
  • Более пятидесяти ранних партнёров подтвердили решение о запуске блокчейн-приложений на Klaytn.

Обзор Klaytn: общая картина

Блокчейн-сеть Klaytn можно разделить на три логические подсети по их ролям и назначениям. На рисунке ниже показан общий вид экосистемы Klaytn.

Экосистема Klaytn и её логические подсети (CCN, ENN, SCN).

Core Cell Network (CCN)

Сеть базовых ячеек (Core Cell Network, CCN) состоит из базовых ячеек (Core Cell, CC), которые проверяют и исполняют транзакции, представленные через конечные ноды (Endpoint Nodes, EN). CCN отвечает за создание блоков и их распространение по всей сети.

Endpoint Node Network (ENN)

Сеть конечных нод (Endpoint Node Network, ENN) состоит из конечных нод (Endpoint Nodes, EN), которые создают транзакции, обрабатывают запросы RPC API, а также обрабатывают запросы данных от сервисных цепочек.

Service Chain Network (SCN)

Сети сервисных цепочек (Service Chain Network, SCN) – это подсети Klaytn, состоящие из вспомогательных блокчейнов, которые независимо управляются разными блокчейн-приложениями (BApps). Сервисные цепочки подключены к главному блокчейну через EN.

Сеть базовых ячеек (Core Cell Network) и сеть конечных нод (Endpoint Node Network) образуют главную цепочку или «mainnet» Klaytn. Блокчейн-приложения могут работать на главной цепочке Klaytn, которая называется Cypress, или на своих собственных блокчейнах, называемых «Сервисными цепочками» (Service Chains).

Если вы хотите иметь выделенную среду исполнения для своего приложения, которая гарантирует высокий уровень TPS и позволяет настраивать сетевые политики, мы рекомендуем использовать сервисные цепочки.

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

Топология сети Klaytn

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

Типы нод с конкретными ролями

Прежде чем мы перейдём к изучению топологии основной цепочки Klaytn, нам нужно ознакомиться с различными типами нод на этом блокчейне.

Core Cell (CC): Consensus Node (CN) + Proxy Node (PN)

Базовая ячейка (Core Cell, CC) состоит из одной консенсусной ноды (Consensus Node, CN) и двух прокси-нод (Proxy Node, PN). Консенсусные ноды участвуют в процессе генерации блоков, в то время как прокси-ноды обеспечивают интерфейс связи с сетью. Прокси-ноды передают запросы на транзакции консенсусным нодам и распространяют блоки среди конечных нод.

Если вас интересует возможность стать оператором базовой ячейки, прочтите руководство по их настройке и эксплуатации.

Endpoint Node (EN)

EN являются конечными точками сети Klaytn, обрабатывающей запросы RPC API и данные, отправляемые в сервисные цепочки и получаемые из них.

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

Загрузочная нода

Загрузочные ноды (Bootnodes) – это ноды специального типа, которые помогают вновь присоединяющимся нодам зарегистрироваться в сети и обнаружить другие ноды для подключения. Загрузочные консенсусные ноды находятся внутри CNN и не являются общедоступными, в то время как загрузочные прокси-ноды и конечные ноды являются общедоступными.

Загрузочные прокси-ноды позволяют регистрировать имеющие все разрешения прокси-ноды, а также позволяют им соединяться с конечными нодами. Загрузочные конечные ноды предоставляют конечным нодам информацию о том, к какой прокси-ноде следует подключиться.

Многослойные сети

Консенсусные ноды, прокси-ноды и конечные ноды образуют логические сети, Сеть консенсусных нод (CNN), Сеть прокси-нод (PNN) и Сеть конечных узлов (ENN), соответственно.

На рисунке ниже показана общая топология блокчейна Klaytn, где Сеть базовых ячеек (Core Cell Network, CCN) разделена на Сеть консенсусных нод и Сеть прокси-нод. Сеть конечных нод (ENN) также показана в виде окружения, подключенного непосредственно к PNN.

Физическая топология и многоуровневая архитектура основной цепочки Klaytn (CNN, PNN и ENN).

Consensus Node Network (CNN)

Консенсусные ноды образуют между собой ячеистую сеть, называемую Сетью консенсусных нод (CNN). В CNN используется механизм BFT и обязательно нужно, чтобы каждая консенсусная нода соответствовала строгим требованиям к оборудованию и сетевым ресурсам для достижения консенсуса BFT на достаточном уровне производительности.

Proxy Node Network (PNN)

Сеть прокси-нод (PNN) состоит из прокси-нод. Как правило, каждая прокси-нода поддерживает только одно соединение с прокси-нодой в соседней базовой ячейке. Количество соединений однорангового типа может изменяться в зависимости от конфигурации сети.

Endpoint Node Network (ENN)

Самая внешняя из подсетей, Сеть конечных нод (ENN), состоит из соединённых друг с другом конечных нод, а также из нескольких прокси-нод.

Читайте также Обзор Elrond: блокчейн с поддержкой шардинга, ориентированный на масштабирование

Генерация и распространение блоков

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

Цикл генерации блоков

«Раунд» – это цикл генерации блоков в Klaytn. Каждый раунд генерирует новый блок, и сразу же начинается новый раунд. Klaytn стремится к тому, чтобы каждый раунд длился примерно одну секунду, хотя интервал генерации блоков может зависеть от трафика сети и условий работы нод.

Выбор "предлагающего" и комитета

В каждом раунде Klaytn случайным, но детерминированным образом выбирает одну консенсусную ноду (CN) в качестве «предлагающего» по созданию блока, а затем выбирает группу консенсусных нод в качестве комитета для данного раунда. Команда Klaytn не принимает непосредственного участия в выборе «предлагающего» или комитета.

Вместо этого каждая нода консенсуса использует случайное число, полученное из последнего заголовка блока, для выполнения криптографической операции, которая позволяет доказать, что нода выбрана для участия в этом раунде. Размер комитета должен быть устойчивым к «Проблеме Византийских генералов«; если размер Сети консенсусных нод невелик, все консенсусные ноды (кроме «предлагающего«) могут избираться в качестве комитета.

Предложение и проверка блоков

После выборов «предлагающий» передает всем консенсусным нодам своё подтверждение избрания для раунда (т. е. криптографическое доказательство, проверяемое открытым ключом автора предложения). После этого консенсусные ноды, избранные в качестве комитета для данного раунда, передают «предлагающему» свои собственные доказательства избрания, уведомляя его о том, кому нужно будет транслировать новый блок.

Затем «предлагающий» выбирает набор транзакций из своего пула транзакций и формирует блок, упорядочивая их. Наконец, «предлагающий» достигает консенсуса с комитетом относительно согласования и окончательной доработки вновь созданного блока. Обратите внимание, что команда Klaytn планирует постоянно совершенствовать свой консенсусный алгоритм для достижения более высокой безопасности и эффективности.

Распределение блоков

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

Публичное раскрытие информации и открытая валидация

Поставщики услуг и конечные пользователи сети Klaytn могут свободно проверять результаты генерации блоков и контролировать выполнение комитетом консенсусных нод всех надлежащих процедур при генерации блоков. При этом также проверяется, содержит ли заголовок блока более двух третей подписей комитета.

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

Читайте также Обзор Terra (LUNA): программируемый денежный протокол

Раздельные каналы распространения для блоков и транзакций (многоканальное распределение)

Задержка сети сильно зависит от степени её перегруженности. Если предположить, что пропускная способность сети останется постоянной, то увеличение количества транзакций приведёт к пропорциональному увеличению задержки сети. Задержки являются критической проблемой для BApps; типичные пользователи традиционных мобильных приложений или веб-сервисов не будут терпеть время отклика более нескольких секунд, и у блокчейн-сервисов нет причин рассчитывать на более высокую терпимость пользователей.

Для решения проблем перегрузки сети Klaytn использует многоканальный подход. Назначая отдельные каналы распространения для транзакций и блоков, сеть может своевременно распределять вновь созданные блоки, даже если она сталкивается с большой перегрузкой из-за большого количества транзакций. Таким образом, Klaytn гарантирует, что BApps в этой сети будут отвечать на запросы конечных пользователей независимо от периодических всплесков трафика.

Вознаграждение за блок

После каждого раунда вознаграждение за блок (которое представляет собой сумму 9,6 новых токенов Klaytn (KLAY) и комиссии, уплаченной за обработку блока) распределяется между участниками сети в соответствии с предварительно установленными коэффициентами распределения. «Предлагающий» получит 100% вознаграждения, которое будет присуждено консенсусным нодам, в то время как комитет не получит ничего.

Обратите внимание, что на вероятность выбора «предлагающим» влияет размер ставки KLAY, то есть, консенсусная нода с большим количеством вложенных в платформу токенов получает больше всего вознаграждений. Подробную информацию о распределении вознаграждений за блоки можно найти в разделе Klaytn Token Economy.


Ещё нет комментариев


Читайте дальше: