Practical Byzantine Fault Tolerance - Практическая византийская отказоустойчивость
Оглавление:
- Особенности
- Типы византийских сбоев
- Преимущества pBFT
- Как работает pBFT?
- Ограничения pBFT
- Платформы, использующие варианты pBFT
- Вариации pBFT
- Другие алгоритмы
1. Особенности
PBFT — алгоритм консенсуса, представленный в конце 90-х Барбарой Лисков и Мигелем Кастро. pBFT был разработан для эффективной работы в асинхронных (без верхней границы времени получения ответа на запрос) системах. Он оптимизирован для минимальных затрат времени. Его целью было решить множество проблем, связанных с уже имеющимися решениями Византийской отказоустойчивости. Области применения включают распределенные вычисления и блокчейн.
- Разработчики - Барбара Лисков, Мигель Кастро
- год - 1999
2. Типы византийских сбоев
Существует два типа сбоев.
Первый — сбой-стоп (нода дает сбой и перестает работать)
Второй — сбой произвольной ноды.
Ниже примеры непроизвольных сбоев нод:
- Невозврат результата
- Отвечать с неправильным результатом
- Отвечать намеренно вводящим в заблуждение результатом.
- Отвечать разными частями системы с разным результатом
3. Преимущества pBFT
1. Энергоэффективность:
pBFT может достигать распределенного консенсуса без выполнения сложных математических вычислений (как в PoW). Zilliqa использует pBFT в сочетании со сложными вычислениями, подобными PoW, для каждого сотого блока.
2. Завершенность транзакции:
транзакции не требуют множественных подтверждений (например, в случае механизма PoW в биткойнах, где каждый узел индивидуально проверяет все транзакции перед добавлением нового блока в блокчейн. Подтверждения могут занимать от 10 до 60 минут в зависимости от количества объектов после доработок и согласований.
3. Низкая градация вознаграждения:
каждая нода в сети принимает участие в ответе на запрос клиента, и, следовательно, каждая нода может быть поощрена. Это приводит к низкой градации в вознаграждении нод, которые помогают в принятии решений.
4. Как работает pBFT?
pBFT пытается обеспечить практическую копию византийского государственного устройства, которая может работать при наличии вредоносных нод
Ноды в распределенной системе с поддержкой pBFT упорядочены последовательно, при этом одна нода является основной (или ведущей нодой), а другие называются вторичными (или резервными нодами). Обратите внимание, что любой подходящий узел в системе может стать основным путем перехода от вторичного к первичному (обычно в случае сбоя основного узла). Цель состоит в том, чтобы все честные узлы помогли достичь консенсуса относительно состояния системы, используя правило большинства.
Практичная система византийской отказоустойчивости может функционировать при условии, что максимальное количество вредоносных нод не должно превышать или равняться одной трети всех узлов в системе. По мере увеличения количества нод система становится более безопасной.
5. Ограничения pBFT
Модель консенсуса pBFT работает эффективно только при небольшом количестве нод в распределенной сети из-за высоких коммуникационных издержек, которые экспоненциально увеличиваются с каждой дополнительной нодой в сети.
Атаки Сивиллы.
Механизмы pBFT подвержены атакам Сивиллы, когда один объект (сторона) контролирует множество идентификаций. Атаки Сивиллы становятся труднее с увеличением количества нод. Но в связи с проблемой масштабируемости механизмов pBFT его используют в сочетании с другими механизмами.
Масштабирование:
pBFT плохо масштабируется из-за проблем передачи данных (с остальными нодами на каждом этапе). По мере увеличения количества нод в сети (расчет производится по формуле O (n ^ k), где n — сообщения, а k — количество узлов), увеличивается и время, необходимое для ответа на запрос.
6. Платформы, использующие варианты pBFT
- Zilliqa – pBFT в сочетании с консенсусом PoW
- Hyperledger Fabric — защищенная версия pBFT.
- Tendermint — pBFT + DPoS (делегированное доказательство доли)
7. Вариации pBFT
Для повышения качества и производительности pBFT для конкретных случаев использования и условий существует множество вариантов, среди которых:
- RBFT – Redundant BFT
- ABsTRACTs
- Q/U
- HQ – протокол Hybrid Quorum для BFT
- Adapt
- Zyzzyva – Speculative Byzantine Fault Tolerance
- Aardvark
8. Другие алгоритмы.
Другие алгоритмы (PoW, PBFT, PoS, DPoS, PoB, PoC, PoET, PoST, ZK-proofs).