Надежная компьютерная система должна работать даже в случае отказа одного или нескольких ее компонентов. Неисправный компонент может демонстрировать поведение, на которое часто не обращают внимания:доставка противоречивых данных в разные разделы системы. Итак, в чем проблема византийских генералов? Проблема византийских генералов - это абстрактное выражение проблемы борьбы с этим типом неудач.
Проблема византийских генералов - это проблема теории игр, которая описывает, насколько сложно рассредоточенным сторонам достичь консенсуса без помощи доверенной центральной стороны. Как участники сети могут договориться о конкретной реальности, если никто не может проверить личности других участников?
Теория игр - это основа для размышлений о социальных событиях с конкурирующими участниками. В стратегической среде теория игр рассматривает социальные обстоятельства среди конкурирующих участников и обеспечивает оптимальное принятие решений автономными и конкурирующими агентами.
Византийские генералы основаны на аналогии теории игр. Проблема в том, что Византию осаждают несколько генералов. Они окружили город, но они должны решить, когда атаковать группой. Они победят, если все генералы нападут одновременно; однако они проиграют, если нападут.
Поскольку любые письма, которые они передают или получают, могли быть перехвачены или обманным путем отправлены защитниками Византии, у генералов нет безопасных каналов связи друг с другом. Как генералы могут координировать одновременные атаки?
Цель этой статьи - объяснить, что такое византийский сбой в блокчейне и как решить проблему византийских генералов.
«Проблема византийских генералов», исследовательская статья Лесли Лэмпорта, Роберта Шостака и Маршалла Пиза, была опубликована в 1982 году. Важность этой проблемы очевидна из первой страницы, где отмечается, что Национальный Их исследования финансировали Управление по аэронавтике и исследованию космического пространства (НАСА), Командование систем противоракетной обороны и Управление армейских исследований.
Хотя проблема византийских генералов изучалась в информатике до 1982 года, это была одна из первых попыток перевести ее в параллельные и предложенные решения. Следующая аналогия иллюстрирует проблему византийских генералов. Несколько дивизий византийской армии находятся недалеко от вражеского города и готовы к войне. Единственный способ связи различных генералов - через мессенджер. Они должны договориться о порядке действий.
Однако мы должны исходить из того, что некоторые генералы, стремящиеся удержать лояльных генералов от принятия единого решения, являются предателями. Чтобы крошечная группа предателей не могла прервать общение, необходим алгоритм.
Чтобы решить проблему византийских генералов, лояльным генералам нужны безопасные средства для согласования плана (известного как консенсус) и его выполнения (известного как координация). Хотя решение проблемы византийских генералов - трудная задача, теперь мы лучше понимаем фундаментальную проблему. Важно отметить, что, как следует из примера, концепция может быть применена к военной связи.
Однако эта проблема затрагивает все типы компьютерных систем, а не только те, которые используются в военных приложениях. Проблема византийских генералов должна быть решена, если рассредоточенная группа узлов (например, компьютеров или других физических устройств) должна обеспечить надежную связь.
Существует несколько причин, по которым распределенная компьютерная система может выйти из строя. В приведенном выше военном сценарии византийские неудачники, по сути, представляют собой попытки предателей прервать общение между лояльными генералами.
Это может быть программный дефект, аппаратный сбой или злонамеренная атака, примененная к реальным компьютерным системам. Другими словами, византийские неудачи не всегда должны быть результатом хорошо скоординированных усилий плохого актера. Могут возникнуть трудности, которые помешают узлам достичь консенсуса в распределенных сетях.
Любой сбой системы, который проявляется различными симптомами для разных наблюдателей, называется византийской ошибкой. Он не содержит ограничений и предположений о типе поведения, которое может проявлять узел (например, узел может генерировать произвольные данные, выдавая себя за честного актера).
В каждой распределенной компьютерной системе византийские сбои практически неизбежны.
Представим, что произошло отключение электроэнергии, и все узлы одновременно отключились. Теперь возникает вопрос, работает ли сеть и способна ли она поддерживать надежную связь? Или система в целом перестает работать или внезапно становится открытой для атак?
В достаточно безопасной сети даже несколько автономных узлов не оказывают заметного воздействия на сеть. Византийская отказоустойчивость - это способность защищаться от этих условий. Считается, что сети, которые могут выдержать больше византийских сбоев, имеют более высокую устойчивость, что подразумевает, что они более безопасны, чем те, которые не могут.
Фактическая частота и систематизация византийских ошибок в различных системах - обширная и сложная тема. Однако его можно указать таким образом, чтобы возникло формальное определение византийской отказоустойчивости.
Стоит отметить, что византийские недостатки являются наиболее серьезными и трудно исправляемыми. Византийская отказоустойчивость требуется на атомных электростанциях, системах авиационных двигателей и практически в любой системе, действия которой зависят от результатов большого количества датчиков.
Только децентрализованные системы подвержены проблеме византийских генералов, поскольку у них нет надежного источника информации и нет возможности подтвердить информацию, которую они получают от других пользователей сети. В централизованных системах органу доверяют распространять точную информацию, предотвращая распространение ошибочной или мошеннической информации по сети.
Например, в традиционной финансовой системе банкам доверяют предоставлять клиентам точные балансы и истории транзакций. Если банк пытается обмануть или ввести в заблуждение своих потребителей, центральный банк или правительство имеет право восстановить доверие.
Дилемма византийских генералов, которая непоследовательно требует установления истины, не решается централизованными системами. Вместо этого они предпочитают вообще не сталкиваться с проблемой, отдавая предпочтение эффективности, а не надежности. С другой стороны, централизованные системы подвержены коррупции со стороны центральной власти.
Примером проблемы византийских генералов являются деньги. Как может общество построить денежную систему, которой все члены могут доверять и соглашаться с ней? На протяжении большей части истории общества использовали драгоценные металлы или другие редкие предметы, такие как ракушки или стеклянные бусы, в качестве валюты. Золото решило проблему византийских генералов, потому что ему доверяли и признавали в децентрализованных системах, таких как международная торговля.
С другой стороны, вес и чистота золота оставались ненадежными до сих пор. Неспособность золота полностью решить проблему византийских генералов привела к учреждению и выпуску денег, которые были переданы доверенным центральным органам, в основном правительствам. Правительства монополизировали монетные дворы, чтобы внушить уверенность в весе и чистоте валюты. Таким образом, византийский провал не был решен централизованными системами.
Более того, авторитетные центральные денежные органы, правительства, обманули это доверие, изъяв, унизив или изменив его. Чтобы решить проблему византийских генералов, валюта должна быть проверяемой, устойчивой к подделкам и ненадежной. Это достижение не было достигнуто до появления Биткойна (BTC).
Проблема может быть решена путем реализации протокола, использующего отказоустойчивые механизмы. Столкнувшись с неопределенностью, принятие процедуры среди генералов - лучший способ сделать выбор.
В результате он становится вероятностным, а не детерминированным, поскольку ничто не может быть гарантировано. Это именно тот случай, когда между сверстниками меньше прямого общения, и каждый из них самодостаточен. Поскольку каждый генерал находится в разных местах, между ними существует физическое разделение.
Общую византийскую проблему можно решить с помощью блокчейна. Все дело в том, чтобы дать людям возможность безопасно и надежно общаться в непредсказуемом мире. В реальном мире большинство транзакций происходит между незнакомцами, которые не знают друг друга и не доверяют друг другу.
Каждый человек, как генерал, ждет приказа атаковать или защищать свою позицию. Нет посредников для арбитража атаки от вашего имени; вы принимаете решение самостоятельно.
Блокчейн создает уровень, которому можно доверять, без необходимости доверять каждому человеку. Это достигается за счет того, что сеть узлов собирается вместе, чтобы договориться о правде до того, как она будет записана. Если генерал не уверен в сути сообщения, другие генералы могут проверить его, используя то, что, как им известно, является правдой.
После того, как один узел записал его, копия отправляется всем другим узлам в сети, что делает информацию избыточной. Алгоритм консенсуса PoW разработан для достижения этой цели. Плохие актеры по-прежнему будут пытаться обмануть систему, потому что информация не всегда точна.
Поскольку система была разработана для использования широкой публикой, в блокчейне предусмотрены отказоустойчивые механизмы и безопасность. В этом сценарии криптография требовалась, чтобы гарантировать, что сообщения не могут быть изменены.
Система предоставляет пары ключей для цифровой подписи сообщения, чтобы подтвердить личность, как доказательство того, что оно исходит от лиц, якобы отправивших его. После того, как сообщения были аутентифицированы, они записываются для прозрачности и исторического доказательства ответственности.
Что касается денег, Биткойн был первым реализованным решением проблемы византийских генералов. Многие планы и проекты до того, как Биткойн попытались создать деньги, не зависящие от правительства, но все они так или иначе потерпели неудачу.
Биткойну как денежной системе необходимы средства, позволяющие управлять собственностью и избегать двойных расходов. Биткойн использует блокчейн или общедоступный распределенный реестр, в котором хранится история всех транзакций, чтобы сделать это надежным способом. Блокчейн, по аналогии с византийскими генералами, - это истина, с которой должны согласиться все стороны.
Если бы все узлы в сети Биткойн могли договориться о том, какие транзакции происходят, когда и в каком порядке, они могли бы подтвердить право собственности на Биткойн и создать работающую ненадежную денежную систему без необходимости в централизованном органе власти.
/ P>
Сатоши Накамото выпустил первый технический документ Биткойна в октябре 2008 года. Хотя название «проблема византийских генералов» не используется в этом документе, Накамото фактически предоставил решение, которое будет реализовано в январе 2009 года. сети Биткойн.
Сатоши разработал средство использования криптографической безопасности и шифрования с открытым ключом для решения общей византийской проблемы в цифровой электронной сети. Чтобы предотвратить подделку данных, криптографическая безопасность использует хеширование, процесс кодирования. Личность пользователя сети проверяется с помощью шифрования с открытым ключом.
Транзакция защищена в блоке, который связан с другими блоками своим хеш-значением в криптографической безопасности. Все хэши можно отследить до корня всех хэшей, который является начальным блоком. Блокчейн - это система, которая использует дерево Меркла для проверки хэшей, исходящих из блока генезиса.
Каждый блок в сети, который исходит из первого блока, также известного как блок генезиса, действителен. Майнеры проверяют блоки, которые соревнуются с другими майнерами в решении криптографических задач для создания блоков в рамках метода консенсуса PoW.
Используя механизм консенсуса Proof-of-Work, Биткойн преодолел проблему византийских генералов и установил четкую и объективную сводку правил для блокчейна. Чтобы добавить информацию в цепочку блоков, называемую блоками, участник сети должен опубликовать доказательство того, что он приложил много усилий для создания блока. Эта работа дорого обходится создателям, поскольку они побуждают их делиться точной информацией.
Не может быть никакого несогласия или подделки информации в сети Биткойн, потому что правила объективны. Система для выбора того, кто может чеканить новые биткойны, и законы, регулирующие, какие транзакции действительны или недействительны, являются обеими целями. Кроме того, невозможно удалить блок из цепочки блоков после того, как он был добавлен, что делает историю Биткойна неизменной.
Таким образом, проблема византийских генералов решается майнерами, которые похожи на генералов в версии блокчейна Сатоши. Каждый узел отвечает за проверку транзакций, которые похожи на сообщения, доставляемые генералам. Злоумышленники (например, хакеры), стремящиеся украсть сообщения или нанести вред сети, могут считаться врагами.
Хакеры (т. е. человек посередине) не могут легко атаковать блокчейн, потому что сообщения используют криптографическую безопасность. Чтобы предотвратить манипуляции, сообщения или транзакции объединяются в блоки и хешируются для дополнительной защиты. Сатоши делает вещи более вероятными, заставляя майнеров соревноваться за проверку блоков. Это делает его более децентрализованным, поскольку ни один майнер не может получить все вознаграждения за счет монополизации проверки.
Вместо этого майнеры должны соревноваться, чтобы решить загадку, используя свою вычислительную мощность, известную как скорость хеширования. Чем выше хешрейт майнера, тем больше вероятность, что он решит загадку. Когда майнер, решивший головоломку, транслирует решение в сеть, все остальные майнеры должны подтвердить или отклонить значение, если оно ошибочное. Целевое значение сложности - это значение, которое должно быть равным или меньше правильного значения.
Таким образом, участники сети Биткойн могут в любое время согласовать статус цепочки блоков и все транзакции в цепочке блоков. Каждый узел проверяет, действительны ли блоки согласно критерию Proof-of-Work и действительны ли транзакции согласно дополнительным критериям.
Если участник сети попытается передать вводящую в заблуждение информацию, все узлы в сети обнаружат ее как объективно недействительную и проигнорируют. Нет необходимости доверять другим членам сети Биткойн, потому что каждый узел может сам проверять каждую информацию в сети, что делает Биткойн системой, не требующей доверия.
Блокчейн также децентрализован, что означает, что в системе не должно быть единой точки отказа. Блоки сохраняются в распределенной базе данных, которая реплицируется по сети. Эта избыточность также способствует отказоустойчивости, гарантируя, что ни один неисправный компьютер не может вывести из строя всю систему. Это равносильно наличию множества посланников на случай, если противник устроит засаду. Сообщение не будет потеряно, потому что оно будет скопировано другими мессенджерами.
PoS - это еще один консенсусный механизм блокчейна, который пытается решить проблему византийских генералов. Впервые он был развернут в 2012 году. Сети на основе PoS, в отличие от сетей на основе PoW, не зависят от майнинга криптовалюты. Вместо этого используется техника, называемая стейкингом.
Пользователи (называемые валидаторами) вкладывают средства в эту систему. Валидаторы, которые владеют большим количеством монет в цепочке блоков, могут проверять больше блоков и получать большие вознаграждения. Пользователи, которые пытаются подтвердить неправильные транзакции, рискуют потерять свои деньги.
Пользователи могут ставить монеты, используя обычные домашние компьютеры, вместо того, чтобы нуждаться в специализированных машинах для майнинга в сети на основе PoW. Несколько сетей на основе PoS создали способы предотвращения атак с двойным расходом и других потенциальных уязвимостей безопасности, вызванных византийскими сбоями. Например, Ethereum 2.0 (Serenity) будет использовать алгоритм Casper PoS, который требует, чтобы большинство в две трети узлов согласовали блок перед его созданием.
Делегированное доказательство доли владения - это метод консенсуса в цепочке блоков, который работает аналогично доказательству доли владения и был впервые разработан в 2014 году. Оба варианта требуют, чтобы пользователи рисковали деньгами. Только несколько пользователей (известных как делегаты) могут проверять транзакции и генерировать блоки в сетях на основе DPoS.
Как правило, любой пользователь может поставить монеты блокчейна, чтобы проголосовать в поддержку кандидата в делегаты. Награды за блоки обычно распределяются пропорционально сумме денег, поставленных на выборы делегатов избранными узлами своим избирателям.
Узлы могут достичь консенсуса значительно быстрее с помощью DPoS, чем с помощью PoW или PoS. В масштабе это означает, что транзакции можно обрабатывать значительно быстрее. Поддержание высокого уровня византийской отказоустойчивости с помощью DPoS может стать проблематичным в некоторых случаях из-за компромисса.
Поскольку меньшее количество узлов отвечает за обеспечение безопасности сети, узлам потенциально легче вступить в сговор против интересов большинства. Сети на основе DPoS, с другой стороны, пытаются избежать этого сценария, регулярно проводя выборы делегатов, чтобы гарантировать, что делегаты несут ответственность за свои решения.