Введение в алгоритм консенсуса Bytom 2.0
Срок
Эпоха:
Эпоха отсчитывается с определенным количеством блоков (например, 100).
Узлы валидатора в той Эпохе зафиксированы, а вот следующая Эпоха будет генерироваться новыми валидаторами на основе голосования проведенного в предыдущей Эпохе.
Контрольная точка: алгоритм консенсуса не обрабатывает все блоки в цепочке, но использует контрольную точку как единицу для проверки. Обычно в качестве контрольной точки используется один номер блока эпохи.
Обоснованно: после того, как контрольная точка получает 2/3 подтверждения (в зависимости от количества узлов или количества обеспечения), статус является подтвержденным, однако утверждение узлов может быть опровергнуто.
Завершено: после того, как дополнительный узел утвердит контрольную точку, контрольная точка преобразуется в завершенную и завершенная контрольная точка уже не может быть отменена.
Зачем нам нужно обновлять консенсус Bytom2.0?
Vapor уже давно и успешно использует тот же алгоритм DPoS + BFT который после доработки будет применен в Bytom2.0. Этот алгоритм работает стабильно в течение длительного времени и его поддерживает множество приложений. Однако существуют следующие проблемы:
- В случае высокоскоростного производства блоков подтверждение 2/3 подписи для каждого блока снижает пропускную способность цепочки.
- Производство блоков за 0,5 секунды приводит к быстрому расширению дискового пространства, занимаемого данными в цепочке; легко вызвать форк (узел продолжает создавать блоки, не получая блок от предыдущего узла); кроме того, это также вызвало некоторые узкие места в производительности некоторых кошельков и браузеров (требуется синхронизация блока).
- Алгоритм консенсуса не прошел эффективную проверку безопасности и традиционный алгоритм BFT обычно требует двух подтверждений.
Bytom2.0 обновил консенсус для решения вышеупомянутых проблем:
- Использует Checkpoint (контрольную точку) как единицу измерения
- Значительно сокращено падение пропускной способности сети, занимаемое подтверждением, проверкой и подписью блоков
- Блок увеличен с 0,5 секунды до 6 секунд, это существенно сократит вероятность форка.
- Подтверждение каждой контрольной точки дважды, первый раз - это состояние «Обосновано», а второй раз - состояние «Завершено» после окончательного подтверждения.
После обновления Bytom2.0 его можно значительно улучшить в следующих аспектах:
- Сохранение энергии 💚
- Повышение производительности
- Лучшая экономическая безопасность
- Повышенная масштабируемость
Процесс консенсуса
1. Когда блокчейн Bytom2.0 только начинался, за создание блоков отвечал узел генезиса. В это время другие узлы собирали стейки в $BTM, чтобы стать производителями блоков, а обычные участники могут голосовать за производителей блоков.
2. Каждый тур голосования и выборов называется Эпохой. Эпоха содержит набор блоков (например, 100). На Эпоху производители блоков будут зафиксированы! Следующая Эпоха начинает переизбирать производителей блоков по количеству голосов.
3. Когда следующая Эпоха обнаруживает, что существует определенное количество законных производителей блоков, узел генезиса прекращает производство блоков, и блоки начинают создавать производители блоков.
4. Начиная с текущей Эпохи, один блок будет производиться каждые 6 секунд, и каждый производитель блоков будет производить блоки по очереди которая определяется в соответствии с количеством голосов.
5. Bytom2.0 не проверяет каждый блок, но использует контрольную точку как единицу обработки. Обычно в качестве контрольной точки используется один номер блока эпохи.
6. Bytom2.0 подтвердит каждую контрольную точку дважды, во-первых, когда статус контрольной точки является Обоснованным после получения 2/3 подтверждения (Внимание, в это время он ещё может быть отменен), и после того, как остальные узлы также подтвердили статус как Обоснованный, контрольная точка получит второе подтверждение и получение статуса «Завершено». Это будет означать, что получено окончательное подтверждение, которое не может быть отменено.
7. Чтобы стимулировать ответственность нод, в Bytom2.0 будет введена система штрафов для производителей блоков, которые одновременно подписывают два блока на одной высоте. В качестве наказания будет конфисковывается часть размещенных в узле BTM. Принимая во внимание сложность этой части Bytom2.0, механизм штрафов будет вводиться постепенно после стабилизации процесса консенсуса.
Проверка CheckPoint
Каждая Контрольная точка будет проверена и подписана производителями блоков. Когда будет получено более 2/3 подписей, Контрольная точка будет подтверждена и сразу получит статус Обосновано.
Состояния перехода
Как показано на рисунке ниже, есть путь с желтой стрелкой от исходной контрольной точки к целевой контрольной точке. Если цель получает 2/3 подписи, цель становится оправданной. Если его прямым источником является родительский узел, он будет завершен, и блок будет встроен в блокчейн согласно контрольной точке максимальной высоты блока эпохи.
Напомню:
Контрольная точка: алгоритм консенсуса не обрабатывает все блоки в цепочке, но использует контрольную точку как единицу для проверки. Обычно в качестве контрольной точки используется один номер блока эпохи.
Заключение
Алгоритм консенсуса Bytom2.0 основан на продолжительном и успешном опыте использования алгоритма консенсуса в боковой сети Vapor, в то же время включает рабочие концепции дизайна ETH Casper, оптимизировали его сложные части и запустилм консенсусную инновацию, подходящую именно для Bytom.
Алгоритм консенсуса Bytom2.0 имеет преимущества с точки зрения энергосбережения 💚, производительности, устойчивости к атакам и масштабируемости. Как наиболее важный базовый протокол в нижней части цепочки блоков, алгоритм консенсуса определенно будет играть важную роль в Bytom2.0.
Оригинал статьи:
https://medium.com/bytomofficial/introduction-to-bytom-2-0-consensus-algorithm-35d84dce6121