Проблема византийских генералов

В децентрализованной одноранговой системе, такой как публичный блокчейн, необходимо достичь консенсуса. Отдельным частям системы необходимо согласовать историю блокчейна до настоящего момента, а также определить дальнейшие действия, поскольку нет центральной власти, которая могла бы взять на себя ответственность за нее.

Это легче сказать, чем сделать. Всегда существует риск дезинформации или недопонимания между пользователями, будь то случайно или преднамеренно. Проблема византийских генералов — это способ объяснить проблему несогласованности между пользователями децентрализованной системы и ее решение, без которого децентрализованная технология распределенных регистров и несколько других типов компьютерных сетей не смогут нормально функционировать.

Например, возьмем публичный блокчейн. Чтобы он работал, достаточное количество участников блокчейн должны договориться об истории валидации и постоянной регистрации транзакций в блочкчейн до этого момента. Если бы мы могли полагаться на честность каждого — было бы намного меньше проблем, а то и вовсе не было бы, но увы. Искушение регистрировать мошеннические транзакции или незаконно отменять подлинные транзакции, получая нечестную выгоду просто слишком большое для некоторых пользователей, чтобы сопротивляться.

Публичные блокчейн протоколы должны решать эту проблему автономно. Ни один участник не может вступать и односторонне объявлять транзакции действительными или недействительными. Это сделало бы бессмыслицей принцип децентрализации. Но чтобы понять, как блокчейн протокол может справиться с такой сложной задачей, нам сначала нужно больше узнать о проблеме.

Давайте позволим византийским генералам идти вперед и расскажем все о них. Проблема Византийских генералов получила свое имя от Лесли Лампорт, одного из трех авторов основной статьи по этому вопросу в 1982 году. Он считал, что «лучший способ привлечь внимание к проблеме — представить ее в терминах истории», то есть у византийских генералов фактически не было проблемы с достижением децентрализованного консенсуса — это просто эффективный способ помочь людям понять проблему.

Представьте себе военную операцию в Восточной Римской империи (она же Византия), более 1000 лет назад. Несколько византийских генералов и их армии расположены вокруг повстанческого города. Каждый генерал и армия находятся в отдельном лагере. Общение между генералами возможно только с помощью посланников, которые должны пересечь открытую местность из одного лагеря в другой.

Чтобы генералы и их армии успешно атаковали город или отступили от него, они должны действовать вместе. Неспособность координировать свои действия даже одного из генералов будет означать, что все армии будут уничтожены силами вооруженных сил повстанческого города. Чтобы действовать вместе и захватить повстанческий город, они должны договориться о том, когда нужно атаковать и в какое время — но вот проблемка:

  • Они могли послать гонцов верхом, но что, если кого-то схватили или убили, прежде чем тот доставил сообщение?
  • Им нужно будет ответить друг другу, чтобы подтвердить, что они получили и согласны с этим сообщением, но это повлечет за собой отправку другого верхового гонца, который также может быть захвачен или убит.
  • Что, если посланник будет перехвачен врагом, и сообщение будет изменено, чтобы запутать генералов?
  • Как любой из генералов знает, что сообщения, которые они получили, являются подлинными?
  • Что делать, если один или несколько генералов являются предателями и намеренно посылают неверное сообщение другим генералам?

Эту проблему решить конечно сложно, однако Сатоши Накамото удалось с ней справиться с помощью блокчейн биткоина.

Говорят, что распределенные системы с механизмами для преодоления этой проблемы имеют византийскую ошибку или BFT. Биткоин имеет BFT, встроенный в его протокол. Механизм достижение консенсуса разработан для создания новых блоков каждые 10 минут с использованием общей доступной вычислительной мощности в сети Bitcoin и награждения первого узла для того, чтобы соединить следующий допустимый блок.

Все остальные биткоин-узлы в сети могут легко и индивидуально проверить, правильно ли запущен новый блок транзакций, предложенный одним из узлов. Таким образом, они могут договориться о том, добавлять ли новый блок к существующему блокчейну.

И так, в отличие от византийских генералов, которые, по слухам, все еще размещены вокруг повстанческого города и по сей день — пользователи публичных блокчейн систем могут безопасно и благополучно выполнять свои операции.

Перевод текста: https://medium.com/nakamo-to/the-byzantine-generals-problem-1ae994eaba7e

Поделиться новостью