Технический справочник

Консенсус и валидаторы

Как Kaz Smart Chain достигает согласия по QBFT и как устроен набор валидаторов.

QBFT#

Сеть использует консенсус QBFT (QBFT — Byzantine Fault Tolerant) — алгоритм класса Proof-of-Authority, в котором блоки создаёт и валидирует заранее известный набор валидаторов. QBFT обеспечивает немедленную финальность: блок, добавленный в цепочку, не откатывается (нет вероятностного финала, как в PoW).

Почему PoA/QBFT
Для суверенной, пермиссионной сети важны предсказуемость, отсутствие форков и контроль над набором узлов. QBFT даёт детерминированную финальность и высокую пропускную способность при низких комиссиях.

Параметры консенсуса#

ПараметрЗначениеИсточник
АлгоритмQBFTgenesis · config.qbft
Период блока3 секундыblockperiodseconds
Длина эпохи30 000 блоковepochlength
Таймаут запроса10 секундrequesttimeoutseconds

Эти значения зашиты в genesis обеих сетей и идентичны для mainnet и testnet.

Валидаторы#

Набор валидаторов задаётся в genesis (поле extraData) и может изменяться голосованием существующих валидаторов через QBFT API. Текущий активный список всегда можно получить on-chain методом qbft_getValidatorsByBlockNumber.

  • Валидаторы — доверенные узлы операторов сети, а не произвольные участники.
  • Новые валидаторы добавляются/удаляются по правилам QBFT (голосование набора).
  • Обычные пользователи и разработчики не запускают валидаторы — они работают через портал.
Не полагайтесь на хардкод списка узлов
Презентационные карточки узлов в UI могут отличаться от актуального on-chain набора. Источник истины — qbft_getValidatorsByBlockNumber на ноде.

Финальность#

Благодаря QBFT блок финален сразу после включения в цепочку — реорганизаций нет. На практике это значит, что транзакция считается окончательной через один блок (~3 секунды), и вам не нужно ждать «N подтверждений», как в вероятностных сетях.