Ключевые выводы
Византийская отказоустойчивость (BFT) — это свойство, позволяющее распределённым системам, включая блокчейны, продолжать работать, даже если некоторые узлы выходят из строя или ведут себя нечестно.
Идея берёт начало из задачи о византийских генералах — мысленного эксперимента о том, как независимые участники могут прийти к соглашению, когда некоторые из них могут быть ненадёжными.
Большинство блокчейнов используют алгоритм консенсуса, например proof-of-work или proof-of-stake, чтобы достичь BFT и сохранить безопасность сети.
Как правило, для того чтобы BFT работала, сети нужно, чтобы как минимум две трети её участников были честными.
Введение
С момента запуска Bitcoin в 2008 году как одноранговой системы электронных денег блокчейны опираются на одно ключевое свойство: способность достигать соглашения между многими независимыми участниками без доверия кому-либо одному из них. Это сложнее, чем может казаться, особенно когда некоторые участники могут вести себя непредсказуемо или нечестно.
Проблему, которая описывает это, называют византийской отказоустойчивостью. Понимание её помогает объяснить, почему блокчейн-сети могут работать безопасно даже при наличии недобросовестных участников или сбоев оборудования.
В чём заключается задача о византийских генералах?
Задача о византийских генералах была впервые описана в 1982 году. Она использует военный мысленный эксперимент, чтобы показать сложность достижения согласия в распределённой системе, когда некоторым участникам нельзя доверять.
Представьте группу генералов, каждый из которых командует отдельной армией и окружает город. Им нужно согласовать план: атаковать вместе или отступить вместе. Если они действуют независимо — они проиграют. Проблема в том, что они могут общаться только через посыльных, и некоторые генералы могут быть предателями, отправляющими противоречивые или ложные сообщения.
Главный вопрос: как верные генералы могут согласовать план, если они не могут определить, кто лжёт? В контексте блокчейна каждый генерал соответствует узлу сети, а решение «атаковать или отступить» заменяется согласованием того, какие транзакции являются действительными.
Вывод из исходного исследования состоит в том, что BFT-система требует, чтобы как минимум две трети участников были честными. Если одна треть или более являются неисправными или злонамеренными, достижение надёжного консенсуса становится невозможным.
Византийская отказоустойчивость (BFT)
Византийская отказоустойчивость — это свойство системы продолжать корректно работать даже тогда, когда некоторые компоненты выходят из строя или ведут себя злонамеренно. BFT-система может выдерживать определённое количество ошибочных узлов, не ставя под угрозу целостность всей сети.
На практике это означает, что BFT-блокчейн может справляться со сценариями, когда узлы падают, теряют соединение, отправляют дублирующие сообщения или намеренно пытаются манипулировать сетью. Система приходит к правильному результату, пока доля ошибочных узлов остаётся ниже допустимого порога.
Существует несколько способов построить BFT-систему. Подход, который использует блокчейн, зависит от приоритетов его проектирования, таких как скорость, децентрализация и безопасность. Это приводит к появлению различных алгоритмов консенсуса.
Алгоритмы консенсуса блокчейна
Алгоритм консенсуса — это механизм, который блокчейн использует, чтобы согласовать состояние реестра. Наиболее распространённые подходы — proof-of-work (PoW) и proof-of-stake (PoS).
Bitcoin использует PoW, который Сатоши Накамото адаптировал в то, что известно как консенсус Накамото. В этой модели узлы конкурируют за решение вычислительно дорогой задачи, чтобы добавить новый блок. Стоимость этой работы делает экономически нецелесообразным для злоумышленника переписать цепочку без контроля более половины суммарной вычислительной мощности. Такой тип атаки называется атакой «51%».
PoW не является на 100% устойчивым к византийским сбоям, но стоимость майнинга и криптографическая безопасность цепочки сделали его в реальной практике весьма надёжным.
PoS достигает схожих целей по-другому. Вместо вычислительной работы валидаторы размещают криптовалюту в качестве залога. Нечестное поведение может привести к потере этого залога, что создаёт сильный экономический стимул участвовать честно.
В 2022 году Ethereum перешёл на PoS, а механизм финальности опирается на принципы BFT, используемые в протоколах вроде Tendermint. Эти протоколы позволяют сети подтверждать блоки как окончательные, когда достаточное число валидаторов поставит подписи, улучшая и скорость, и безопасность по сравнению с вероятностной финальностью в PoW-цепочках.
Часто задаваемые вопросы
Что такое византийская отказоустойчивость?
Византийская отказоустойчивость означает, что система может продолжать работать корректно, даже если некоторые из её компонентов ведут себя непредсказуемо или нечестно. В блокчейне это означает, что сеть может прийти к консенсусу по корректным транзакциям, даже если некоторые узлы отправляют ложную или противоречивую информацию.
Почему это называется византийской отказоустойчивостью?
Название происходит от задачи о византийских генералах (Byzantine Generals' Problem) — мысленного эксперимента 1982 года, в котором для описания трудности достижения согласия, когда некоторым участникам нельзя доверять, использовалась история о военных генералах. Термин «византийские» в вычислениях относится к произвольным или злонамеренным сбоям в противоположность простым отказам (падениям).
Сколько из сети должно быть честным, чтобы BFT работала?
В целом для работы BFT-системе требуется, чтобы как минимум две трети участников вели себя честно. Если треть или более участников действуют злонамеренно или терпят неудачу, большинство протоколов BFT уже не могут гарантировать корректный результат. Этот порог немного меняется в зависимости от конкретного протокола консенсуса.
Обеспечивает ли proof-of-work византийскую отказоустойчивость?
Proof-of-work не является идеальной византийской отказоустойчивостью, но достигает практической устойчивости за счёт высокой стоимости майнинга. Злоумышленнику нужно контролировать более 50% суммарной вычислительной мощности сети, чтобы постоянно манипулировать цепочкой, поэтому такие атаки оказываются дорогими и их трудно поддерживать.
Итоговые мысли
Византийская отказоустойчивость — базовое понятие в дизайне блокчейна. Она объясняет, почему сети вроде Bitcoin и Ethereum могут работать надёжно даже в среде, где участники анонимны и некоторые могут пытаться обмануть. Независимо от того, используются ли proof-of-work, proof-of-stake или более новые протоколы BFT в современных цепочках, цель одна и та же: дать независимым узлам возможность согласовать истину без необходимости доверять друг другу по отдельности.
Дополнительное чтение
Что такое алгоритм консенсуса блокчейна?
Что такое proof-of-work (PoW)?
Что такое proof-of-stake (PoS)?
Что такое атака «51%»?
Отказ от ответственности: эта информация предоставляется вам «как есть» только для общей осведомлённости и в образовательных целях, без каких-либо заявлений или гарантий любого рода. Это не следует воспринимать как финансовую, юридическую или иную профессиональную консультацию, и это не подразумевает рекомендацию покупки каких-либо конкретных товаров или услуг. Вы должны обратиться за собственной консультацией к соответствующим профессиональным консультантам. Если материал подготовлен сторонним автором, обратите внимание, что выраженные в нём взгляды принадлежат этому стороннему автору и не обязательно отражают позицию Binance Academy. Цены цифровых активов могут быть волатильными. Стоимость ваших инвестиций может как снижаться, так и расти, и вы можете не вернуть сумму, которую инвестировали. Вы несёте единоличную ответственность за свои инвестиционные решения, а Binance Academy не несёт ответственности за любые убытки, которые вы можете понести. Для получения дополнительной информации см. наши Условия использования, Предупреждение о рисках и Условия Binance Academy.
