Глоссарий

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

Сложность: высокая

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

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

Задача византийских генералов - это мыслительный эксперимент, который рассматривает ключевой вопрос компьютерной науки: возможно ли сформировать консенсус в компьютерной сети, состоящей из независимых, географически распределенных узлов?

Эта проблема была предложена в 1982 году исследователями из Международного исследовательского института SRI.

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

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

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

Эта проблема крайне актуальна для криптовалют, так как они, являются распределенными компьютерными системами: они состоят из независимых друг от друга и от любого центрального органа узлов по обработке транзакций, которые могут общаться только удаленно. Они и являются теми "генералами", которые должны достичь консенсуса о том, какие транзакции имели место и когда.
Узлы потенциально могут поставлять ошибочные данные о транзакциях, будь то намеренно, или случайно, и с этой информацией необходимо как-то разбираться. Bitcoin (BTC) и другие криптовалюты решают эту проблему с помощью технических решений, таких как алгоритмы proof-of-work и proof-of-stake.