За последние пару десятков лет сфера криптовалют значительно расширилась. Постоянно появляющиеся новые проекты заставляют разработчиков находить новые способы существующих в отрасли проблем. Один из достаточно распространенных термин: «Механизм консенсуса ВОУ». ВОУ расшифровывается как византийская отказоустойчивость и считается теоретической проблемой компьютерных систем, с которой разработчики столкнулись задолго до появления Биткойна.
Однако многие разработчики протоколов на основе блокчейна занимаются решением проблем связанных с византийской отказоустойчивостью, поэтому рассмотрим далее суть проблемы и последствий, с которыми приходится сталкиваться при ее наличии.
Детальнее об основных проблемах византийской отказоустойчивости
Проблема византийской отказоустойчивости-одна из наиболее обсуждаемых теоретических ситуаций при обсуждении нюансов консенсуса.
Проблему впервые признали существующей в исследовании под названием «Основные проблемы византийского сбоя» Лесли Лапмпорта, Роберта Шостака и Маршала Писа, которое опубликовали в 1982 году. В исследовании сказано:
Надежная компьютерная система должна справляться со сбоями одного или нескольких компонентов. Давший сбой компонент может вести может себя таким образом, который очень часто не берется во внимание, а именно отправлять конфликтующую между собой информацию в различные части системы. Проблема решения подобного вида сбоя абстрактно называется «Общая проблема византийской отказоустойчивости.
Название произошло из-за представленной в исследовании аналогии. Если быть более точными авторы описывают теоретическую ситуацию, где несколько частей византийской армии расположились за городом противника. У каждого подразделения был свой командир, каждое подразделение находилось в обособленном лагере. Командирам приходилось разрабатывать план совместных действий (наступать или отступать), но они могли общаться только с помощью посыльных. С другой стороны среди генералов могли быть предатели, которые могли помешать верным генералам прийти к общему знаменателю (консенсусу).
Поэтому генералам пришлось найти способ, который гарантировал, что:
- Все верные генералы действуют по одинаковому плану действий.
- Небольшая кучка предателей не сможет помешать генералам принять нужный план.
Т.е. речь идет о системе, которая может решить описанную выше проблему и называется решением византийской отказоустойчивости (ВОУ). Именно отсюда и произошел алгоритм консенсуса ВОУ.
В целом решение византийской отказоустойчивости предупреждает сбой системы в результате действий ненадежных ( неверных) участников
Решение проблемы византийских генералов
Для решения проблемы византийских генералов и принятия решения византийской отказоустойчивости(РВС) большинство генералов должны придерживаться одинаковой стратегии.
Подобное достигается различными способами в зависимости от характера системы и ее предназначения. В блокчейне оба механизма: «пруф-оф-стейк» и пруф-оф-ворк» могут достичь консенсуса по поводу решения византийского сбоя, используя разные подходы.
Большинство блокчейнов на «пруф-оф-стейк» могут работать при наличии сбоя одной трети существующих в нем нод давая свободу действия правилу «3f+1», где под F i подразумевается количество не работающих нод. Сама по себе формула просчитывает количество нод, которые должны быть в системе для ее полноценной работы.
К примеру, для соответствия правилу (3f+1) в системе, состоящей из 4-ех нод, должны полноценно работать три ноды.
В феврале 1999 года Мигель Кастро и Барбапа Лисков из Лаборатории информатики Масачусетского Института Технологий (МИТ) опубликовали исследование на тему «Практическое применение решения византийской отказоусточивости»
Как блокчейн мог бы решить проблему Византийских генералов
У технологии на основе блокчейна нашлось бы несколько способов решения проблемы Византийских генералов. Различие состоит только в необходимом алгоритме консенсуса и способе применения РВОУ. Различные решения можно найти как «на проф-оф ворк» так и на «пруф- оф-стейк»
Как биткойн решает проблему Византийских генералов?
Достаточно интересно то, что в первоначальном вайтпейпере биткойна Сатоши Накамото не упомянул «проблему византийских генералов». Но после запуска Bitcoin Network неизвестный создать первой криптовалюты предложил решение указанной проблемы с помощью аглоритма консенсуса «Пруф-оф-ворк»
Для решения указанной проблемы Сатоши создал способ использования криптографической безопасности и шифрования открытых ключей в цифровой сети. Для предотвращения любого вида утечки данных в криптографической безопасности используется хеширования, а личность пользователя сети проверяется с помощью открытого ключа.
Транзакции фиксируются в блоках, которые соединяются с остальными за счет стоимости хеширования и защищены криптографически. Также следует заметить, что в блокчейне используется Дерево Меркла для проверки хешей, поступающих из основного блока. Каждый блок, исходящий из блока генезиса, действителен. Эти блоки проверяются майнерами, которые решают криптографические головоломки в соревновании за создание блоков в рамках метода консенсуса.
Биткойн установил четкий и окончательно объективный свод правил, которому блокчейн должен следовать, чтобы преодолеть проблему византийских генералов. Участник сети должен опубликовать доказательство того, что он выполнил работу, чтобы иметь возможность добавить информацию в блокчейн (следовательно, доказательство работы). Это дорого обходится участнику и лишает его стимула делиться ложной информацией, поскольку она будет опровергнута другими участниками сети.
Все правила ясны и объективны, а это значит, что информация не может быть изменена.
Как Proof-of-Stake решает проблему византийских генералов?
Сети, управляемые алгоритмом консенсуса proof-of-stake, полагаются не на майнинг, а на стейкинг. Чтобы стать сетевым валидатором, пользователь должен сначала застейкать средства в системе. Те, кто владеет большей долей, также могут проверять больше блоков и получать большие вознаграждения. Те, кто пытается подделать информацию, рискуют потерять свою поставленную сумму.
Разные системы по-разному решают эту проблему. Например, Ethereum 2.0 использует алгоритм Casper. Требуется как минимум две трети большинства узлов для согласования конкретного блока перед его созданием и добавлением в сеть.
Существуют различные попытки решения проблемы, основанные на необходимости системы и подходе команды. Например, с делегированным доказательством доли (dPoS) достижение консенсуса происходит значительно быстрее. С другой стороны, некоторые системы применяют византийскую отказоустойчивость на практике.