2

Недавно я читал много статей о византийской отказоустойчивости. Существует общее доказательство того, что 3m + 1 компьютеров необходимы для обработки византийских ошибок. Общее доказательство идет что-то вроде этого:Почему простое трехстороннее большинство голосов не решает византийских ошибок?

Есть три «генералов»: A, B и C. Предположим, генералы общаться, как это, где С «предателем»:

A --> B "Attack", A --> C "Attack" 
B --> A "Attack", B --> C "Attack" 
C --> A "Attack", C --> B "Retreat" 

A receives "Attack" from both sources, and will attack. 
B receives "Attack" from A but "Retreat" from C and doesn't know what to do. 
C is a traitor, so his action could be anything. 

Таким образом, мы не можем гарантировать, что большинство участников достигнет консенсуса.

Я как бы понимаю это доказательство, но, похоже, не хватает главного момента. Не делайте A, B и C также свой собственный внутренний расчет, что делать? Поскольку A & B являются «лояльными» генералами здесь, кажется, что «правильное» действие - атаковать. Разве не разрешено учитывать его собственные расчеты при принятии решения о том, что делать? В этом случае он мог бы легко сломать связь между конфликтующими входами A & C и принять решение атаковать. Затем, как A & B атаки, и мы решаем проблему. Это другая проблема, чем проблема классических византийских генералов?

ответ

0

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

Вот пример:

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

Для 3 генералов, пытающихся решить, должны ли они атаковать или нет, у нас есть два возможных случая:

  • Если командир является византийский генерал, он может посылать различные команды для двух генералов. Тогда они не могут согласиться, так как они получили различную информацию от командира и в итоге получили равное количество голосов за и против.
  • Если генерал-византийский генерал не является командиром, он может лгать о том, что он получил от командира. И снова лояльный генерал получил один голос за (от командира) и один против (поскольку византийский генерал лгал).

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

+0

Ну, я всегда вижу проблему, сведенную к этим проблемам «командиров и лейтенантов», но я не вижу, как это очевидно. В исходной задаче Византийских генералов каждый генерал «наблюдает» за городом и решает, атаковать ли. Разве они не формулируют свою собственную независимую идею о том, атаковать ли? В этом случае им просто нужен еще один генерал, чтобы согласиться с ними. Сокращение до «командирской общей» проблемы для меня не имеет смысла. –

+0

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

0

Что такое "-собственный внутренний расчет"? Это означает, что если у одного генерала есть конфликтное сообщение, то он в основном имеет параметр по умолчанию (например, атака)? И что означает «(B) его собственный расчет при принятии решения о том, что делать»? В предположении B только решает, что делать, когда он получает большинство соответствующих сообщений. Возможно, при конфликте может быть опция по умолчанию. Но вариант по умолчанию не гарантирует последовательного решения среди лояльных генералов, потому что они не доверяют друг другу.

Важная вещь в византийской общей проблеме заключается в том, что они не доверяют друг другу, и они не знают, кто лоялен или нет.Любой может быть предателем, поэтому, даже если оба A и B являются лояльными генералами, они не знают, что каждый из них является истинным лояльным общим в терминах A или B. В этом случае, даже если B ведет свой собственный внутренний расчет, когда B получает сообщения конфликтов от A и C, он не может быть уверен в 100% для правильного решения (A и B выполняют одно и то же действие).

Смежные вопросы