Византийская отказоустойчивость — это способность системы продолжать работать, даже когда некоторые участники лгут или допускают ошибки. Название происходит от мысленного эксперимента о византийских генералах, пытающихся скоординировать атаку, в то время как гонцы могут быть захвачены, а предатели могут отдавать ложные приказы. Генералам нужен план, который сработает, даже если некоторые из них окажутся ненадежными. В блокчейне та же проблема. Узлы могут выйти из строя. Узлы могут отправлять противоречивую информацию. Сеть все равно должна согласовать, какие транзакции являются действительными.
Практический византийский отказоустойчивый алгоритм (PBFT) — один из алгоритмов, решающих эту проблему. Он хорошо работает, когда количество неисправных узлов невелико по сравнению с общим числом. Многие блокчейны с ограниченным доступом используют варианты PBFT, поскольку они знают, кто является участниками. Доказательство работы в Биткоине использует другой подход. Оно не идентифицирует заслуживающие доверия узлы. Оно делает ложь дорогостоящей, требуя вычислительных затрат. Побеждает цепочка с самой длинной длиной, а создание цепочки длиннее, чем у честной сети, обходится непомерно дорого.
Пороги отказоустойчивости
- Отказоустойчивость к сбоям — узлы могут выходить из строя, но не лгать.
- Византийская отказоустойчивость — узлы могут выходить из строя и передавать ложную информацию.
- PBFT — обычно допускает до одной трети неисправных узлов.
Ни одна система не терпит неограниченного количества злоумышленников. Вопрос в том, сколько нарушений протокол сможет выдержать, прежде чем нарушится консенсус.
Comments
No comments yet. Be the first to share a thought.
Leave a comment