Что такое задача о византийских генералах

Что такое блокчейн? От задачи византийских генералов до консенсуса

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

Биткойн – первое применение технологии блокчейна (как ни парадоксально, сам термин «блокчейн» появился позже Биткойна). Теперь эта технология используется также в других криптовалютных проектах и в бизнес-приложениях, таких как торговые финансы, денежные переводы и электронная коммерция. Например, транспортный и грузоперевозочный консорциум Maersk раскрыл планы о решении по оптимизации морского страхования с помощью технологии блокчейна.

Технология блокчейна всё ещё находится на стадии активных исследований и разработок, чтобы стать более полезной в повседневной жизни.

Введение в распределённые системы

Блокчейн – распределённая система. Будучи распределённой системой, он уже решает или может решить в будущем много проблем.

Распределённой называется такая система, где аппаратные или программные составляющие, находящиеся на сетевых компьютерах, контактируют и координируют свои действия, только обмениваясь сообщениями. Ключевые характеристики распределённой системы:

  • Параллельность;
  • Отсутствие глобальных часов;
  • Независимость отказов.

Параллельность

Параллельность означает, что на разных машинах одновременно происходят разные вычисления. Это может казаться очевидным, но если рассмотреть, как должны взаимодействовать разные машины, возникают сложности (см. ниже).

Отсутствие глобальных часов

В распределённой системе каждый участник, или машина, имеет равный вес в определении того, что верно, а что – нет. Машина А может считать, что сейчас 11:13, а машина Б 11:14. Сетевая задержка может ещё больше усугубить ситуацию. Даже если на обеих машинах одинаковое локальное время, они не будут знать, сколько времени сеть передавала данные, поэтому, когда машина должна подтвердить время своего соседа, всегда присутствует случайный шум. В распределённой системе нет единого источника истины.

Независимость отказов

Допустим, машине А нужны данные от машины Б, чтобы продолжать работу, поэтому ей нужно связаться с машиной Б и дождаться ответа. Однако машина Б может дать сбой (например, выключиться из-за перегрева), и сеть может произвольно создать задержку или даже оборвать связь. Проектировщик сети должен тщательно продумать обработку коммуникаций и реакции на отказы, чтобы обеспечить бесперебойную работу системы.

Задача византийских генералов

Задача византийских генералов – это состояние компьютерной системы, в частности распределённой вычислительной системы, где компоненты могут дать сбой и информация о том, дал ли компонент сбой, несовершенна.

Для иллюстрации задачи приведём следующую историю.

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

Рассмотрим следующий случай:

  • Есть три генерала: А, Б и В.
  • Генералы должны атаковать врага одновременно, иначе их может ждать неудача.
  • У генералов нет эффективного способа мгновенно общаться.
    • Поэтому им нужно послать другим гонца с посланием.
    • Им нужно подтверждение, что другие генералы будут атаковать в то же время.

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

    Проблема усложняется, если учесть, что могут присутствовать предатели. Мы не можем гарантировать, что все гонцы надёжны, и, кроме того, гонца могут захватить в плен и заставить передать фальшивое послание.

    Из этой истории можно вывести следующее:

    • Византийские генералы представляют узлы сети;
    • Каждый консенсус группы генералов представляет блок (т. е. набор действительных транзакций).
    • Точно так же как все генералы должны подтвердить решения друг друга, чтобы достичь консенсуса, прежде чем начинать скоординированную атаку, все узлы должны договориться о следующем блоке, который будет записан.
    • Следовательно, узлы дают сбой, когда:
      • один из узлов передаёт непоследовательную информацию (вредоносный узел);
      • или ответ отсутствует из-за сетевого сбоя.

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

      Что такое консенсус

      Если вы поняли задачу византийских генералов, то несложно будет понять, что такое консенсус. Согласно Википедии:

      «Консенсус требует согласия ряда процессов (или агентов) о едином значении данных. Некоторые процессы (агенты) могут дать сбой или быть ненадёжными в другом смысле, поэтому консенсусные протоколы должны быть отказоустойчивыми. Процессы должны каким-то образом представлять свои варианты значений, общаться друг с другом и договариваться о едином консенсусном значении».

      Участники децентрализованной сети делают это посредством децентрализованных серверов, известных как узлы. Для участия в сети блокчейна каждый из этих узлов должен соглашаться с предварительно заданным набором правил (называемым консенсусным механизмом). Данный механизм позволяет решить задачу византийских генералов.

      Консенсус изучался начиная с 1970-х. Вот некоторые примечательные результаты:

      • 1980 г.: точный византийский консенсус для 3f+1 узлов.
      • 1983 г.: невозможность распределённого консенсуса с одним бракованным процессом (известная как FLP-невозможность).
      • 1986 г.: приблизительный консенсус с асинхронностью и отказом.
      • 1989 г.: Paxos.

      Есть много разных вариаций консенсусных механизмов:

      Без отказов или отказы разрешены
      • Аварийный отказ: Бракованный узел в определённый момент перестаёт выполнять какие-либо шаги.
      • Византийский отказ:
        • Бракованный узел может вести себя произвольно;
        • Пропускать, изменять сообщения;
        • Отправлять непоследовательные сообщения.
        Синхронный или асинхронный
        • Синхронный: для всех операций установлены ограничения по времени.
        • Асинхронный: нет ограничений.
        Детерминистический или вероятностный
        • Детерминистический: Всегда верный результат (согласие, действительность).
        • Вероятностный: Верность только с высокой вероятностью.
        Точное или приблизительное согласие
        • Точное согласие: все узлы соглашаются о точно идентичном значении (результате).
        • Приблизительное согласие:
          • Узлы согласны с приблизительно равными значениями.
          • Тождественность в пределе, когда время → ∞.
          Лидерный или безлидерный
          • Лидерный: Существует виртуальный лидер, предлагающий конечный результат, и другие узлы за него голосуют.
          • Безлидерный: Виртуального лидера, предлагающего конечный результат, нет; любой может предложить результат, и другие узлы за него голосуют.

          Большинство исследований до Биткойна фокусировались на безопасности и предполагали фиксированное число участников. Главный прорыв блокчейна открыл новое направление исследований распределённых систем, фокусирующееся на жизнеспособности и снявшее ограничения на число участников, чтобы допустить открытую структуру. Некоторые различия между классическим консенсусом и консенсусом блокчейна:

          Классический консенсус

          Консенсус блокчейна

          Колеблется в зависимости от стимулов

          Безопасность или жизнеспособность

          Фокусируется на безопасности

          Фокусируется на жизнеспособности

          Вознаграждения в виде внутренних токенов

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

          Инклюзивные и эксклюзивные блокчейны

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

          Частные и публичные блокчейны

          Частный блокчейн – это такой, который находится в частной сети. (Например, вы запустили частную версию Эфириума на своём компьютере, чтобы изучить смарт-контракты.) Он изолирован, и другие не видят его и не могут присоединиться к вашей сети. Чтобы иметь доступ к частному блокчейну, нужно получить приглашение и одобрение от администратора сети или в соответствии с определёнными правилами и ограничениями.

          Публичный блокчейн полностью открыт, и любой может присоединиться к сети и сделать свой вклад. Примеры публичных эксклюзивных блокчейнов – Ripple и EOS, где обычные участники имеют меньше возможностей, чем привилегированные, такие как уникальные узлы (в Ripple) или создатели блоков (в EOS).

          К публичным инклюзивным блокчейнам относятся Биткойн, Эфириум и им подобные.

          Примеры частных эксклюзивных блокчейнов – это когда вы запустите собственную версию Hyperledger или Эфириума на своём компьютере или частный блокчейн внутри компании.

          Блокчейн-консорциумы

          Последний тип – блокчейн-консорциумы, когда группа участников (скорее всего, транснациональные корпорации) образуют сеть (можно представить это как своего рода «интранет») и присоединиться к ней и пользоваться ею могут только они. Примеры блокчейн-консорциумов – R3, Hyperledger от Linux Foundation и Quorum от JP Morgan.

          инфографика таблица типов блокчейнов

          Источник: crypto.com

          Централизованные, децентрализованные и распределённые системы

          Если централизованную систему понять легко, иногда сложно различить децентрализованную и распределённую систему.

          Распределённая система хранит и обрабатывает данные в разных местах или на разных компьютерах; обычно данные воспроизводятся.

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

          Децентрализованная система должна быть распределённой, тогда как распределённая система не обязательно должна быть децентрализованной. Другими словами, децентрализованная система – подвид распределённой.

          Задача Византийских Генералов: метод консенсуса Free TON

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

          Задача Византийских Генералов: удаленный консенсус

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

          Генерал отдает приказ каждому лейтенанту отдельно через гонцов. А лейтенанты обмениваются между собой таким же образом информацией о приказе. Затем каждый лейтенант на основе полученной информации от всех других лейтенантов и генерала принимает решение напасть или отступить. Нюанс задачи заключается в том, что сам генерал или любой лейтенант (или несколько) могут оказаться предателями.

          Принятие единого решения большинством лейтенантов — это достижение консенсуса. Он возможен в случае, если честные участники составляют больше 2/3 от общего их числа.

          Задача Византийских Генералов для четырех участников

          Рассмотрим частный случай: есть генерал и три лейтенанта. Генерал, Лейтенант 1 и Лейтенант 2 — на одной стороне. Лейтенант 3 — предатель. Таким образом всего четыре участника, условие 3/4 > 2/3 соблюдается.

          Как достигается консенсус в этом случае:

          Шаг 1

          Генерал отправляет приказ о наступлении (значение Y) с указанием времени всем трем лейтенантам.

          Шаг 2

          Лейтенанты обмениваются между собой приказами.

          Верные лейтенанты (Лейтенант 1 и Лейтенант 2) обмениваются с двумя другими приказом генерала — Y.

          Предатель, то есть Лейтенант 3 отправляет иное значение (некое Х) Лейтенанту 1 и Лейтенанту 2.

          Шаг 3

          Каждый Лейтенант принимает решение как большинство из полученной информации.

          Лейтенант 1 выбирает из Y от генерала, Y от Лейтенанта 2 и X от Лейтенанта 3.

          Лейтенант 2 выбирает из Y от генерала, Y от Лейтенанта 1 и X от Лейтенанта 3.

          Лейтенант 3 выбирает из Y от генерала, Y от Лейтенанта 2 и Y от Лейтенанта 3.

          Так как он предатель, то его решение может быть любым.

          Вывод

          Два лейтенанта из трех принимают одинаковое решение — Y — оно же является приказом генерала. Консенсус достигнут.

          Вышеописанный метод принятия решений на основе преобладающего большинства (больше 2/3) в полученной информации называется Византийская отказоустойчивость .

          Задача Византийских Генералов в алгоритме достижения консенсуса Free TON

          Блокчейн Free TON использует Byzantine Fault Tolerant (BFT) для достижения консенсуса по принятию или отказу в транзакциях.

          Как это происходит во Free TON, какие этапы проходят для достижения консенсуса?

          1. Выбор валидаторов на основании стейка.
          2. Запуск сеанса проверки.
          3. Несколько раундов генерации блока.

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

          В ходе раунда валидаторы:

          • обмениваются сообщениями о кандидатах в блоки;
          • проверяют кандидатов;
          • выбирают кандидатов для голосования;
          • голосуют за них, подписывая кандидата на блок своими личными ключами.

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

          Если блок получает не менее 2/3 всех весов (отсеченный вес), он автоматически побеждает в конкретном туре голосования и принимается. Если 2/3 голосов за оговоренное время не набрано — раунд пропускается и блок не формируется. Если за несколько раундов согласие так и не достигнуто, новые выборы валидаторов решат эту проблему и консенсус будет достигнут. Невозможно злонамеренное влияние недобросовестных валидаторов, если их меньше 1/3.

          Итогом достижения консенсуса является появление следующего блока в цепочке блоков. А весь описанный процесс достижения консенсуса для Free TON назван алгоритмом Catchain.

          Задача Византийских Генералов: использование в других блокчейнах

          Преимуществом такого алгоритма консенсуса является скорость формирования блока и практически полное исключение форков. Наряду с Free TON схожие механизмы консенсуса реализуются в некоторых других блокчейнах, однако имеют отличия:

          • В протоколе PBFT (Practical Byzantine Fault Tolerance) лидер слота меняется в случае неудовлетворительной работы, а в Catchain — каждый раунд.
          • Tendermint протокол наиболее близок к Catchain, но отличается тем, что время для каждого раунда засекается в нем на локальных часах. В Cathain же — глобально синхронизированные часы.
          • Algorand протокол схож с Free TON, а его отличие выражается в секретном принципе, по которому реализованы выборы валидаторов для голосования.

          Использование во Free TON метода достижения консенсуса Proof-of-stake BFT наряду с распределенной архитектурой блокчейна делают его быстрейшим и одним из самых надежных среди всех аналогов.

          Разбираемся в основах Blockchain: Задача Византийских Генералов. Часть 1

          Перевод статьи подготовлен специально для студентов курса «Архитектор высоких нагрузок», который стартует уже в этом месяце.

          Блокчейн – это децентрализованная система, состоящая из различных субъектов, которые действуют в зависимости от своих стимулов и имеющейся у них информации.

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

          Эти процессы описываются как консенсус.

          • Что происходит, когда участник решает не следовать правилам и вмешаться в состояние своего леджера?
          • Что происходит, когда таких участников в сети достаточно много, но не большинство?

          Для начала мы кратко поговорим о неразрешимой задаче двух генералов. Затем рассмотрим Задачу Византийских Генералов и обсудим Византийскую отказоустойчивость в распределенных и децентрализованных системах. А в самом конце поговорим о том, как это все относится к технологии блокчейн.

          Задача двух генералов

          Эта задача, впервые опубликованная в 1975 году и получившая свое название в 1978 году, описывает сценарий, когда два генерала атакуют общего врага. Первый генерал считается лидером, а второй – последователем. Армии каждого генерала по отдельности недостаточно, чтобы победить вражескую армию, поэтому им нужно сотрудничать и атаковать одновременно. Этот сценарий выглядит просто, но есть один нюанс:

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

          Даже если первое послание будет доставлено, второй генерал должен подтвердить (ACK (acknowledge), обратите внимание на сходство с трехсторонним рукопожатием в TCP), что он получил сообщение, поэтому он отправляет гонца обратно, тем самым воспроизводя предыдущий сценарий, где посланник может быть захвачен. Это перетекает в бесконечные ACK, и из-за этого генералы не могут достичь согласия.

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

          Было доказано, что задача двух генералов неразрешима.

          Задача Византийских Генералов

          Описанная в 1982 году Лэмпортом, Шостаком и Пизом, версия этой задачи оказалось с изюминкой. Она описывает тот же сценарий, где вместо двух генералов о времени атаки должны договориться большее количество генералов. Дополнительная сложность заключается в том, что один или несколько генералов могут быть предателями, то есть они могут солгать о своих намерениях (например, генерал говорит, что он согласен атаковать в 09:00, но не сделает этого).

          Парадигма лидера-последователя, описанная в задаче двух генералов, трансформируется в установку командир-подчиненный. Для достижения консенсуса здесь командир и каждый подчиненный должны договориться об одном и том же решении (об атаке или отступлении).

          Задача Византийских Генералов. Командующий генерал должен отправить приказ своим n-1 подчиненным, такой что:

          • Все верноподданные подчиненные генералы подчиняются одному приказу.
          • Если командующий генерал верноподданный, тогда все верные ему подчиненные подчиняются его приказам.

          В добавок ко второму пункту нужно указать на интересный факт: если командир – предатель, то консенсус все равно должен быть достигнут. В результате все лейтенанты имеют большинство голосов.

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

          Теорема: Для любого m, алгоритм OM(m) достигает консенсуса при более чем 3m генералов и максимум m предателях.

          Это означает, что алгоритм может достичь консенсуса пока 2/3 участников честны. Если предателей больше 1/3, консенсус не достигается, армии не могут скоординировать свои атаки, и враг побеждает.

          Алгоритм ОМ(0)

          1. Командир отправляет свое значение каждому из подчиненных.
          2. Каждый подчиненный использует значение, которое он получает от командира, или использует значение ОТСТУПИТЬ, если не получает никакого значения.
          1. Командир отправляет с свое значение каждому из подчиненных.
          2. Для каждого i, пусть vi будет значением, которое i-й подчиненный получает от командира, либо же будет использовано значение ОТСТУПИТЬ, если подчиненный не получает никакого значения. i-й подчиненный выступает в качестве командира в Алгоритме ОМ(m-1) и отправляет значение каждому из n-2 оставшихся подчиненных.
          3. Для каждого i, при условии, что ji, пусть vj будет значением, которое i-й подчиненный получил от j-ого подчиненного на шаге (2) (используя Алгоритм ОМ(m-1)), или использует значение ОТСТУПИТЬ, если не получает никакого значения. i-й подчиненный использует значение большинства (v1, …, vn-1).

          OM(1): Подчиненный 3 – предатель. Ситуация с точки зрения второго подчиненного.

          1. Командир отправляет v всем подчиненным.
          2. L1 посылает L2 значение v или L3 отправляет L2 значение x.
          3. L2 ← большинство(v,v,x) == v

          Важно помнить, что цель состоит в том, чтобы большинство подчиненных выбрало одно и то же решение, а не какое-то конкретное.

          Давайте посмотрим на случай, когда командир – предатель.

          OM(1): Командир – предатель.

          1. Командир посылает L1, L2, L3 значения x, y, z соответственно;
          2. L1 посылает значение x подчиненным L2, L3 | L2 посылает L1, L3 значение y | L3 посылает L1, L2 значение z;
          3. L1 ← большинство(x, y, z) | L2 ← большинство(x, y, z) | L3 ← большинство(x, y, z)

          Чтобы посмотреть на практический подход к более сложному примеру с 7 генералами и 3 предателями я предлагаю вам прочитать эту статью.

          Византийская отказоустойчивость

          Византийская отказоустойчивость является характеристикой, которая определяет систему, которая допускает класс отказов, который принадлежит Задаче Византийских Генералов. Византийский отказ – самый сложный класс видов отказов. Он не подразумевает никаких ограничений и не делает предположений о том, какое поведение может иметь узел (например, узел может генерировать любые произвольные данные, выдавая себя за честного участника).

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

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

          Как это все относится к блокчейну?

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

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

          Когда был изобретен биткоин, большим прорывом стало использование доказательства работы вероятностного решения задачи Византийских Генералов. Оно было подробно описано Сатоши Накамото в этом электронном письме.

          Задача византийских генералов

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

          Содержание

          Определение

          N «синих» генералов возглавляют армии в горах и готовятся атаковать «зелёных» в долине. Для связи атакующие используют надёжную связь (например, телефон). Однако, из n генералов m являются предателями и активно пытаются воспрепятствовать согласию лояльных генералов. Согласие состоит в том, чтобы все лояльные генералы узнали о численности всех лояльных армий и пришли к одинаковым выводам (пусть и ложным) относительно состояния предательских армий. (Последнее условие важно, если генералы на основании полученных данных планируют выработать стратегию и необходимо, чтобы все генералы выработали одинаковую стратегию.)

          Формализация

          Каждый из лояльных генералов должен получить вектор длины n, в котором i-й элемент либо обязательно содержит численность i-й армии (если её командир лоялен), либо может содержать произвольное число, если её командир не лоялен. При этом вектора у всех лояльных командиров должны быть полностью одинаковы.

          Алгоритм решения

          Рекурсивный алгоритм был предложен в 1982 г. Лесли Лампортом. Алгоритм сводит задачу для случая m предателей среди n генералов к случаю m-1 предателя.

          Для случая m=0 алгоритм тривиален, поэтому проиллюстрируем его для случая n=4 и m=1. В этом случае алгоритм осуществляется в 4 шага.

          1-й шаг. Каждый генерал посылает всем остальным сообщение, в котором указывает численность своей армии. Лояльные генералы указывают истинное количество, а предатели могут указывать различные числа в разных сообщениях. Генерал-1 указал число 1 (одна тысяча воинов), генерал-2 указал число 2, генерал-3 (предатель) указал трем остальным генералам соответственно x, y, z, а генерал-4 указал 4.

          2-й шаг. Каждый формирует свой вектор из имеющейся информации.

          3-ий шаг. Каждый посылает свой вектор всем остальным (генерал-3 посылает опять произвольные значения).

          После этого у каждого генерала есть по четыре вектора:

          g1 g2 g3 g4
          (1,2,x,4) (1,2,x,4) (1,2,x,4) (1,2,x,4)
          (1,2,y,4) (1,2,y,4) (1,2,y,4) (1,2,y,4)
          (a,b,c,d) (e,f,g,h) (1,2,3,4) (i,j,k,l)
          (1,2,z,4) (1,2,z,4) (1,2,z,4) (1,2,z,4)

          4-й шаг. Каждый генерал определяет для себя размер каждой армии. Чтобы определить размер i-ой армии, каждый генерал берет три числа — размеры этой армии, пришедшие от всех командиров, кроме командира i-ой армии. Если какое-то значение повторяется среди этих трех чисел как минимум дважды, то оно помещается в результирующий вектор, иначе соответствующий элемент результирующего вектора помечается неизвестным (или нулем и т.п.).

          Все лояльные генералы получают один вектор (1,2,f(x,y,z),4), где f(x,y,z) есть число, которое встречается как минимум два раза среди значений (x,y,z), или «неизвестность», если все три числа x,y,z различны. Поскольку значения x,y,z и функция f у всех лояльных генералов одни и те же, то согласие достигнуто.

          Результаты исследования задачи

          Лампорт доказал, что в системе с m неверно работающими процессорами можно достичь согласия только при наличии 2m+1 верно работающих процессоров (более 2/3).

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

          Применение

          См. также

          Ссылки

          • Мысленные эксперименты
          • Вычислительная техника
          • Неудачи
          • Криптография
          • Распределённые вычислительные системы
          • Теория алгоритмов

          Wikimedia Foundation . 2010 .

          Полезное

          Смотреть что такое «Задача византийских генералов» в других словарях:

          Задача двух генералов — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете … Википедия

          Парадокс Белла — Парадокс Белла один из известных релятивистских парадоксов специальной теории относительности, связанный с невозможностью определения понятия «абсолютно твёрдого тела» в пространстве времени теории относительности. В наиболее известном… … Википедия

          Ахиллес и черепаха — У этого термина существуют и другие значения, см. Ахиллес и черепаха (значения). Ахиллес и черепаха одна из апорий древнегреческого философа Зенона. Содержание 1 Содержание 2 Разрешение апории … Википедия

          Дилемма заключённого — Будут ли заключенные друг друга предавать, следуя своим эгоистическим интересам, или будут молчать, тем самым минимизируя общий срок? Дилемма заключённого (англ. Prisoner s dilemma, реже употребляется название «дилемма … Википедия

          Китайская комната — Китайская комната мысленный эксперимент, описанный Джоном Сёрлем, в котором критикуется возможность моделирования человеческого понимания, в частности естественного языка, путем создания «искусственного интеллекта». По сути является… … Википедия

          Парадокс Ньюкома — был придуман физиком Уильямом Ньюкомом (внук Саймона Ньюкомба) в 1960 году. Парадокс предполагает мысленный эксперимент, игру с двумя участниками предсказателем (который может безошибочно предсказывать будущее) и собственно игроком.… … Википедия

          Стрела Зенона — Стрела Зенона, или «Летящая стрела» одна из апорий Зенона Элейского: Летящая стрела неподвижна, так как в каждый момент времени она занимает равное себе положение, то есть покоится; поскольку она покоится в каждый момент времени, то она… … Википедия

          Парадокс близнецов — Парадокс близнецов мысленный эксперимент, при помощи которого пытаются «доказать» противоречивость специальной теории относительности. Согласно СТО, с точки зрения «неподвижных» наблюдателей все процессы у двигающихся объектов замедляются.… … Википедия

          Копенгагенская интерпретация — Квантовая механика … Википедия

          Демон Максвелла — Демон Максвелла мысленный эксперимент 1867 года, а также его главный персонаж воображаемое разумное существо микроскопического размера, придуманное британским физиком Джеймсом Клерком Максвеллом с целью проиллюстрировать кажущийся… … Википедия

          Как византийские генералы помогли создать современную криптовалюту

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

          Мысленный эксперимент о верных и неверных генералах помог программистам решить задачу безопасного взаимодействия при использовании технологии блокчейн

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

          Задача о византийских генералах

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

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

          • если все честные генералы поведут свои легионы в атаку – Византия одержит победу (благоприятный исход);
          • если все честные генералы прикажут отступать – будут сохранены жизни легионеров (промежуточный исход);
          • если одни честные генералы пойдут вперед, а другие честные генералы дадут приказ к отступлению, исход будет неблагоприятным (враг уничтожит армию).

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

          Условие задачи византийских генералов

          Византийским генералам на основе полученных данных предстоит выявить предателя в собственных рядах

          Криптографы представили математическую задачу в виде легенды о византийской армии

          Есть определенное число генералов – N. Их войска дислоцированы в горах и собираются атаковать противника в долине. M генералов из общего числа N перешли на сторону врага и хотят сорвать соглашение между верными генералами. Цель соглашения – узнать численность верных Византии легионов и легионов, возглавляемых генералами-перебежчиками. Соглашение очень важно, ведь для победы или как минимум согласованного отступления необходимо выработать общую стратегию.

          Варианты решения задачи

          Предположим, что один из четырех генералов оказался предателем (N = 4 , M = 1). Следовательно, трое верных военачальников пошлют верные сведения о количестве своих легионеров, а в сообщениях предателя цифры могут быть какими угодно. Допустим, первый генерал сообщил, что в составе его легиона есть 1 тысяча воинов, у второго – 2 тысячи, у четвертого – 4 тысячи. Третий генерал (перебежчик) указал остальным случайно выбранные цифры x, y, z.
          Из полученных данных каждый военачальник формирует свой вектор:

          • 1-й вектор — 1,2,x,4;
          • 2-й вектор — 1,2,y,4;
          • 3-й вектор — 1,2,3,4;
          • 4-й вектор — 1,2,z,4.

          Далее генералы передают векторы друг другу, при этом предатель повторно искажает информацию. В результате каждый получает четыре вектора, из которых формируется ядро:

          Участникам блокчейна необходимо выявить недобросовестное звено в цепочке распределения данных

          Составление векторов при обмене информацией между участниками блокчейна

          Затем генералы определяют количество воинов в каждом легионе. Для расчета первого легиона берется три числа: численность этого легиона, известная из сообщений всех генералов за исключением командующего самим первым легионом. Если одно из 3-х чисел повторяется дважды или трижды, оно помещается в итоговый вектор. Если совпадений нет, значение итогового вектора определяется как «неизвестное».

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

          Результат выглядит следующим образом: ( 1,2,f (x,y,z), 4 ), где f (x,y,z) – значение, встречающееся как минимум дважды среди чисел x,y,z или «неизвестное» в случае, если все 3 числа различны. Поскольку x,y,z и функция f (x,y,z) у всех верных генералов совпали, следовательно, согласие достигнуто и враг будет разбит.

          Практическое применение задачи

          Все участники блокчейна оказываются генералами из византийской задачи

          Мысленный эксперимент о византийских генералах имел практическое значение при создании биткоина

          Алгоритм решения этой задачи был использован при создании самой популярной криптовалюты – биткоина (ВТС). Так, майнинг цифровых монет и их перераспределение внутри системы происходит с участием византийских генералов, которые обмениваются между собой сводками о состоянии своих войск. Обращение bitcoin осуществляется в децентрализованной сети, построенной на технологии blockchain. Каждый блок создан в соответствии с определенным алгоритмом, содержащим записи обо всех платежных операциях (обмене сообщениями между генералами). Любая операция считается состоявшейся лишь после проверки ее формата, заверения подписью генералов и объединения в блок с остальными транзакциями. Содержимое блоков можно проверить, начиная с самой первой операции, поскольку все они выстроены в последовательную общую цепь.

          Блоки состоят из заглавий и перечня завершенных транзакций. Для передачи информации между блоками и их «компактификации» применяется хеш – преобразование вводных данных в бит-строку определенного размера. Для вычисления хеша используется специальный математический алгоритм.

          Значение хэша в технологии blockchain

          Хеширование применяется для передачи информации между блоками в системе блокчейн

          При внесении даже самых минимальных изменений в исходный текст (например, одного знака) результат хэш-функции полностью изменяется. Именно эта особенность позволяет использовать хеши для подтверждения достоверности и целостности передаваемых данных о платежных операциях. В каждом новом блоке, генерируемом в процессе майнинга ВТС, как и во всех предыдущих, есть хеш предыдущего блока, хеши платежных операций и данные для служебного использования. Все это происходит приблизительно так же, как в задаче о византийских генералах.

          Доказательство устойчивости криптовалютных систем

          Еще одно свойство биткоина было обнаружено известным американским ученым Лесли Лэмпортом. Он доказал, что согласия в штабе N генералов можно достичь лишь в случае, если количество перебежчиков не превышает N/2 минус один генерал. Это правило, работающее при генерации биткоинов, получило название «правило 51 процента». Говоря проще, если мощности предателей превышают мощности честных генералов, то последние не смогут построить корректную систему векторов по причине недостатка правильной информации. В случае с биткоинами это позволит «перебежчикам» выборочно подтверждать чужие блоки, а значит, контролировать процесс добычи криптовалюты.

          Правило 51-го процента подразумевает устойчивость системы, если более половины участников блокчейна действуют честно

          Добыча новых биткоинов происходит корректно, пока в блокчейн-сообществе преобладают добросовестные участники

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

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

          Разъяснение Задач Византийских Генералов

          С момента создания Биткойна в 2008 году, в качестве одноранговой (peer-to-peer) электронной системы денежных средств, было создано много других криптовалют, каждая из которых имеет конкретный механизм. Но единственный элемент, с которым связана почти вся криптовалюта, это блокчейн как основной элемент их архитектуры.

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

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

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

          Что такое Проблема Византийских Генералов?

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

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

          Поэтому мы можем рассмотреть следующие цели:

          Каждый генерал должен решить: атаковать или отступать (да или нет);

          После принятия решения его нельзя будет изменить;

          Все генералы должны согласится и принять одно и то же решение, и синхронно выполнить его.

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

          Кроме того, даже если сообщение успешно доставлено, один или несколько генералов могут поступить (по какой-либо причине) злонамеренно и отправить мошенническое сообщение, чтобы сбить с толку других генералов, что приведет к общему сбою.

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

          Поэтому единственным способом достижения консенсуса в этих типах распределенной системы, является наличие, по крайней мере ⅔ или более, надежных и честных сетевых узлов. Это означает, что если большая часть сети решает действовать злонамеренно, то система подвержена ошибкам и различным атакам (например, атака 51%).

          Византийская Отказоустойчивость (BFT)

          В нескольких словах Византийская Отказоустойчивость (BFT) является свойством системы, способной противостоять классу отказов, возникающих из-за Проблем Византийских Генералов. Это означает, что система BFT может продолжать работать, даже если некоторые из узлов не работают или действуют злонамеренно.

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

          Алгоритм Консенсуса Blockchain

          Мы можем определить алгоритм консенсуса, как механизм, с помощью которого блокчейн сеть достигает консенсуса. Наиболее распространенными являются Proof of Work (PoW) и Proof of Stake (PoS). Но мы рассмотрим Биткойн в качестве примера.

          В то время как протокол Bitcoin предписывает основные правила системы, алгоритм консенсуса PoW определяет, как эти правила будут соблюдаться для достижения консенсуса (например, во время проверки и подтверждения транзакций).

          Хотя концепция Proof of Work старше самой криптовалюты, Сатоши Накамото разработал модифицированную версию, как алгоритм, который позволил создать Биткойн как систему BFT.

          Обратите внимание, что алгоритм PoW не является на 100% толерантным к Византийским ошибкам, но из-за дорогостоящего процесса майнинга и основных криптографических методов, PoW зарекомендовала себя, как одна из самых безопасных и надежных для блокчейна. В этом смысле, алгоритм консенсуса Proof of Work разработанный Сатоши Накамото, многими рассматривается как одно из самых гениальных решений Византийских ошибок.

          Заключение

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

          В контексте криптовалют, эффективная сетевая коммуникация наряду с хорошим механизмом консенсуса, имеет жизненно важное значение для любой блокчейн экосистемы. Обеспечение безопасности этих систем является постоянные усилия, и существующим алгоритмам консенсуса еще предстоит преодолеть несколько барьеров (например, масштабируемость). Тем не менее, PoW и PoS — очень интересные подходы к BFT, и безусловно вдохновляет потенциально заинтересованные приложения, на внедрение широко распространенных инновационных технологий.

          Майнеры. Задача византийских генералов. Глава 1

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

          Избалованный судьбой, прославленный византийский военачальник Флавий Велизарий вряд ли мог представить, что Вторая итальянская кампания 544 года нашей эры, в ходе которой он рассчитывал вернуть контроль Константинополя над Апеннинами и вновь захватить Рим провалится, а его место займет давний соперник, евнух Нарсес, в возрасте семидесяти восьми лет разгромивший непобедимого царя Готов бесстрашного Тотилу, открыто терзающего владения императора Юстиниана.

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

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

          Ему не хватило самой малости. Единства.

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

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

          Минск, Беларусь, 2017 год

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

          Наблюдавший за ним человек из окна третьего этажа массивного здания произнес в миниатюрную рацию:

          — Объект приближается со стороны площади. В руках черный портфель. Не проверять. Проводить на третий этаж.

          — Будет сделано, шеф, — ответил невидимый голос.

          Человек поправил галстук и отошел от окна. Что ж, если при помощи странного посетителя им удастся закрыть сделку по станции… Он забарабанил пальцами по столу. Закрыть сделку… семь с половиной миллиардов долларов. Страна еще никогда не получала настолько крупных инвестиций ни от частного или государственного фонда. Даже Международный Банк, всесильная, могущественная организация не смогла предоставить подобное финансирование. Джефф Ричардз, исполнительный директор развел руками: проекты по ядерной энергетике сейчас не в моде, акционеры однозначно проголосуют против предложения, будь оно трижды выгодным.

          Кто же это такой, черт возьми?

          Альберт Константинович поморщился. Все, что удалось найти Комитету государственной безопасности — не прояснило ситуацию ни на йоту.

          Он снял трубку вертушки.

          — Совет Безопасности в сборе?

          — Да, Альберт Константинович.

          — Будет через полчаса.

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

          По его прогнозам, сюда в скором времени должны прийти самые богатые и знаменитые инвесторы со всего мира, имена и названия которых не сходят с первых полос «Уолл-стрит джорнэл» и «Файненшл Таймс». Придут не потому, что в мире некуда вкладывать деньги, — как раз наоборот. Современная мировая экономика, несмотря на периодические кризисы, дает массу возможностей выгодно пристроить капиталы, — как белые, легальные, так и серые, висящие балластом на счетах безымянных банков по всему миру. Все зависит от расторопности. И от выгоды. Деньги любят рост. Деньги любят тишину.

          «Объект вошел», — доложила рация.

          Альберт Константинович не питал чрезмерных иллюзий. Чтобы получить доступ к мировым кредитным рынкам, требовалось идти на оправданный риск.

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

          Но как? — он не мог этого понять, снова и снова просматривая папку с надписью: «Дело 303». Как школьный учитель может финансировать строительство атомной станции в Беларуси?

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

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

          К моменту, когда конструкторская документация прошла экспертизу в Международном агентстве по атомной энергии, выяснилось, что стройку никто не хочет финансировать. Евросоюз крайне нервно отреагировал на выбор места для строительства у самой границы, считая риск возведения чрезмерным. Таким образом, отпали европейские инвесторы, давшие предварительное согласие на ранних этапах. Любой банкир мечтает пристроить пару миллиардов в хороший проект, да еще и под гарантии государства, но… санкции.

          Разведка Европы работала великолепно. Малейшее подозрение в финансировании запрещенных проектов грозило конфискацией средств, анафемой, а то и тюремным сроком. Американцы рады бы помочь, но боялись новых мер против крупных интернет-гигантов, погрязших в миллиардных европейских штрафах.

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

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

          «Объект на месте», — прошипела рация.

          Альберт Константинович Рюмин закрыл папку.

          Он подумал, что во время работы в разведке такого, пожалуй, не случалось ни разу. Чтобы один, никому не известный человек переплюнул по финансовым возможностям целое государство и при этом оставался в тени. Он не основатель всемирно известной социальной сети, не китайский торговый магнат, не финансовый воротила с Уолл-Стрит и даже не ловкий мошенник, ему просто неоткуда взять настолько огромные деньги!

          Конечно, периодически на финансовом рынке случались странные вещи, разведка докладывала о подобных событиях более-менее постоянно. Например, до сих пор неизвестно, как банкир из Швейцарии Жером Кервьель смог за несколько дней потерять шесть миллиардов долларов, а его американский коллега — почти девять. Девять миллиардов долларов! Эти деньги так и не были найдены, они растворились в воздухе.

          На специальном совещании правительства, которое состоялось тремя днями ранее, обсуждали саму абсурдность создавшейся ситуации. Присутствовал глава Национального банка Симонов, глава разведки Третьяк и Альберт Рюмин, секретарь Совета Безопасности, по совместительству глава Администрации Президента.

          — По данным разведки, он абсолютно чист. На него нет ничего, кроме того, что записано в трудовой книжке. Служил в армии шифровальщиком. Некоторое время торговал на Черкизовском рынке аудиокассетами с записями зарубежных групп, неожиданно бросил бизнес, скорее всего, из-за прессинга бандитских структур и после окончания остался работать младшим научным сотрудником в Математическом институте имени Стеклова в Москве. Преподавал четыре года, но, провалив защиту кандидатской диссертации, со скандалом уволился. Работу продолжил в сорок первой, потом в двести двадцать первой средней школе Москвы. Взяток не берет. Жена, двое детей. Увлекается бегом, историей.

          Перед каждым из них лежала подтвержденная банковская гарантия Ситибанка на сумму контракта по возведению АЭС.

          — Как такое может быть? — задал вопрос Третьяк.

          Симонов развел руками.

          — Это банк номер один в США, никакого подвоха. Нацбанк сделал запрос по официальным каналам, все подтверждается.

          Рюмин вращал между пальцев перламутровую ручку с золотым пером. Пожалуй, впервые в жизни он находился в тупике. Что докладывать Президенту?

          — Диссертация… насколько я знаю, крайне редко бывают провалы на стадии защиты, должно случиться что-то сверхординарное… почему так вышло?

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

          — В деле на двенадцатой странице указана тема. Послушайте: «Математическое и программное обеспечение задач обнаружения аномалий в поведении автоматизированных систем обработки информации посредством решения задачи византийских генералов».

          В просторном кабинете повисла тишина. Каждый переваривал длинное название, понимая, что предложение звучит слишком сложно.

          — Понятно, почему его выгнали, — первым сказал Рюмин, записав на лежащем перед собой листке бумаги «просм. решение задачи виз. ген.». — Обычная математическая чушь, которую институт отказался финансировать. У нас такое сплошь и рядом.

          — Так он ее написал? — спросил Симонов. — Диссертацию? Это может быть интересно как минимум.

          — Наши источники полагают, что написал. Но не защитил. Текста нет, он кем-то изъят либо утерян, — ответил Третьяк. — В любом случае это не дает ответ на вопрос… где он взял деньги.

          — Деньги не могут быть грязными? — Рюмин был так удивлен, если не сказать, шокирован темой разговора, что никак не мог сосредоточиться. К тому же мешала муха, невесть как залетевшая в кабинет и бившаяся о стекло.

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

          — Президент в этих вопросах категоричен, — напомнил Рюмин. — И… мы должны принять решение. Через полчаса доклад.

          Они посмотрели друг на друга. Вопрос стоял ребром: верить или нет? Положиться на факты или сыграть в прятки с судьбой? Самые могущественные люди в стране, они понимали, — ситуация выглядит, мягко говоря, странно. Но факты, отпечатанные ровным черным текстом, лежали перед ними. Любой из них мог поручиться головой, за предоставленные сведения.

          — Я за, — поднял первым руку Симонов.

          — За, — сказал Третьяк.

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

          — За. — Рюмин поднял руку. — Единогласно.

          Он встал. Муха продолжала биться о стекло, пытаясь проникнуть на свободу, но теперь она абсолютно не мешала, решение было принято. Черная папка с золотым тиснением «Доклад» захлопнулась, он покинул зал совещаний с победной улыбкой.

          Роман «Майнеры. Задача византийских генералов» можно купить целиком на Литрес.

Горин Павел/ автор статьи

Павел Горин — психолог и автор популярных статей о внутреннем мире человека. Он работает с темами самооценки, отношений и личного роста. Его экспертность основана на практическом консультировании и современных психологических подходах.

Понравилась статья? Поделиться с друзьями:
psihologiya-otnosheniy.ru
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: