Открыть сервис

dBFT: консенсусный алгоритм Neo

dBFT (Delegated Byzantine Fault Tolerance, делегированный византийский отказоустойчивый консенсус) — это алгоритм достижения консенсуса в распределённых системах, применяемый в блокчейн-платформе Neo. Алгоритм является модификацией классической схемы Practical Byzantine Fault Tolerance (PBFT) и сочетает в себе элементы делегированного голосования и византийской отказоустойчивости, что обеспечивает финальность транзакций без необходимости подтверждения последующими блоками.

История и происхождение

Алгоритм dBFT был разработан командой проекта Neo (ранее Antshares) под руководством Эрика Чжана (Zhang Song) и Дахуна Фэя (Da Hongfei). Первая версия алгоритма была реализована в 2016 году в рамках запуска блокчейна Antshares. После ребрендинга проекта в Neo в 2017 году алгоритм продолжил развиваться. В 2018 году вышла версия dBFT 2.0, которая устранила ряд недостатков первой реализации, включая проблему нестабильности при смене списка консенсусных узлов. Актуальная версия, dBFT 2.0, используется в основной сети Neo N3 (Neo Legacy и Neo N3).

Принцип работы

Роли узлов

В сети Neo выделяются два типа участников:

  • Консенсусные узлы (consensus nodes) — валидаторы, которые непосредственно участвуют в подписании блоков. Их количество фиксировано и составляет 7 в основной сети Neo N3.
  • Кандидаты (candidates) — узлы, которые могут быть избраны в консенсусную группу.
  • Владельцы токенов NEO — держатели токенов, которые голосуют за кандидатов, делегируя им свои голоса.

Процесс консенсуса

Консенсус в dBFT достигается в несколько раундов:

  1. Выбор спикера (speaker): из числа консенсусных узлов псевдослучайным образом выбирается узел, который будет предлагать новый блок. Выбор происходит детерминированно на основе хэша предыдущего блока и номера раунда.
  2. Предложение блока: спикер собирает ожидающие транзакции, формирует блок и рассылает его остальным консенсусным узлам.
  3. Голосование: каждый консенсусный узел проверяет корректность предложенного блока (валидность транзакций, соответствие правилам протокола) и отправляет свою подпись (commit) в случае согласия.
  4. Подтверждение: блок считается принятым, если его подтвердили не менее 2/3 + 1 от общего числа консенсусных узлов (для 7 узлов — 5 подписей). После этого блок добавляется в цепочку и считается финальным.

Если спикер не смог предложить валидный блок в течение заданного таймаута или действует вредоносно, консенсусные узлы инициируют смену спикера (view change) и начинают новый раунд.

Византийская отказоустойчивость

Алгоритм гарантирует безопасность сети при условии, что число неисправных или вредоносных узлов не превышает 1/3 от общего числа консенсусных узлов. Для сети с 7 узлами это означает, что до 2 узлов могут вести себя произвольно (включая сговор), не нарушая работу системы. Это свойство унаследовано от PBFT.

Ключевые особенности

  • Финальность: в отличие от алгоритмов на основе доказательства работы (PoW), таких как в Bitcoin, блоки в dBFT не могут быть отменены или переписаны после подтверждения. Это обеспечивает мгновенную уверенность в совершённых транзакциях.
  • Энергоэффективность: отсутствие майнинга означает минимальное потребление электроэнергии по сравнению с PoW-сетями.
  • Высокая пропускная способность: сеть Neo N3 способна обрабатывать до 1000 транзакций в секунду, а время генерации блока составляет около 15 секунд.
  • Делегированное управление: держатели токенов NEO участвуют в выборе консенсусных узлов, что обеспечивает децентрализацию управления без необходимости прямого участия всех пользователей в валидации.

Сравнение с другими алгоритмами

В отличие от алгоритмов Proof of Stake (PoS), где валидаторы выбираются на основе размера доли, в dBFT используется фиксированная группа консенсусных узлов, избираемых голосованием. Это делает алгоритм более предсказуемым и быстрым, но предъявляет повышенные требования к надёжности валидаторов. По сравнению с классическим PBFT, dBFT добавляет механизм делегирования и экономического стимулирования через начисление GAS (внутренней валюты Neo) консенсусным узлам за их работу.

Критика и ограничения

Основной критикой dBFT является относительно небольшое число консенсусных узлов (7 в основной сети), что делает сеть более централизованной по сравнению с PoW-сетями. Также алгоритм предполагает, что консенсусные узлы действуют добросовестно в долгосрочной перспективе, а их сговор или компрометация может поставить под угрозу работу сети. Для снижения этих рисков Neo внедрила механизмы мониторинга активности узлов и возможность их замены по результатам голосования.

Применение

dBFT используется исключительно в экосистеме Neo: в основной сети Neo N3 и тестовых сетях (TestNet). На его основе функционируют смарт-контракты, выпуск токенов (NEP-5 и NEP-17) и децентрализованные приложения (dApps), развёрнутые на платформе.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →