становится нерациональное решение. Подобная ситуация в какой-то степени
отражает сложность проблематики, которую изучает теория игр, когда один
участник пытается максимизировать собственный интерес в ущерб общей
выгоде. В блокчейн-системах подобная практика реализуется на следующем
наглядном примере.
Допустим, что в децентрализованной системе, хранящей цифровые активы, имеющие эквивалент денежной стоимости (например, криптовалюты), нашелся
некий узел, который при помощи различных недобросовестных практик сумел
навязать всей сети искусственную транзакцию, в результате которой стал
обладателем огромного количества цифровых монет. Вопрос: кто выиграет от
этой акции? Кто-то, возможно, подумает, что выигрывает злоумышленник, поскольку результатом его действий явилось прямое личное обогащение.
Проиграли, безусловно, бывшие владельцы активов, которые потеряли их в
результате атаки на сеть и на свои персональные счета. Остальные же
участники системы не пострадали, оставшись при своих активах, до которых
вредоносный узел не добрался. Однако это лишь поверхностные выводы.
Своей атакой на сеть злоумышленник на самом деле совершил непоправимое
— подорвал общее доверие к сети в целом. К ее концепции безопасности, криптографической неуязвимости, а также к протоколу формирования
консенсуса. А это означает, что все ценностные активы, принадлежащие
данной сети и имеющие монетарную или даже биржевую оценку, мгновенно
утратят свою стоимость. Это касается в том числе и неправедно полученных
активов самого злоумышленника. Что фактически превращает его действия из
лично эффективных в общественно бесполезные. Сеть разрушается и
прекращает свое существование. Победителей в данной ситуации нет, есть
одни только проигравшие.
Этот пример очень хорошо показывает, насколько важен протокол общего
согласия в децентрализованных системах. Он играет не менее существенную
роль, чем криптостойкость используемых в системе алгоритмов шифрования
данных. Какие же методы достижения консенсуса могут использоваться в
блокчейн-проектах? Одним из наиболее популярных является консенсус на
базе «Задачи о византийских генералах». Перенесемся в период позднего
Средневековья, когда Византийская империя уже переживала упадок.
Представим, что Византия находится в состоянии войны и император послал
на захват одного из вражеских городов некоторое количество армий, во главе
каждой из которых стоит генерал. Казалось бы, генералы — люди военные, не
чуждые понятию верности и чести, однако в Византии того периода дела с
этими личными качествами военачальников обстояли довольно скверно. В
силу этого обстоятельства каждый из генералов с некоторой долей
вероятности мог оказаться подкуплен противником, иначе говоря — стать
предателем. В зависимости от степени своей лояльности каждый отдельный
генерал мог напрямую последовать поступающему свыше приказу, а мог и
осуществить прямо противоположные действия, тем самым способствуя
поражению империи в войне. Возвращаясь к математике, рассмотрим
варианты возможных исходов.
•
Лояльные генералы, согласно приказу, вместе ведут свои армии в атаку
на город — город взят, война выиграна. Очевидно, что это наилучший
исход для Византии.
•
Лояльные генералы, согласно приказу, одновременно отступают — город
не взят, но все армии сохранены для будущих сражений. Данный исход
можно считать промежуточным.
•
Лояльные генералы атакуют, как и было приказано, однако генералы-
предатели вместо атаки начинают отступать — в результате все армии
уничтожены противником, а сама война Византией проиграна. Это
наихудший из возможных вариантов.
Иногда задачу дополнительно усложняют присутствием главнокомандующего, который имеет право отдавать приказы нижестоящим генералам. Суть
усложнения состоит в том, что сам главнокомандующий тоже может быть
предателем. И тогда он будет отдавать разным генералам противоположные
по смыслу приказы, чтобы гарантированно добиться наихудшего исхода для
Византии. В этом случае наиболее эффективным поведением для всех
генералов была бы стратегия полного игнорирования приказов
главнокомандующего. Оставим в стороне вопросы военной дисциплины и
сосредоточимся на том, каким образом можно было бы добиться наилучшего
исхода в подобной ситуации. Очевидно, что если каждый генерал будет
действовать по собственному разумению (скажем, равновероятно в отношении
решения атаковать или отступать), вероятность благоприятного и даже
промежуточного исхода для Византии крайне мала. Единственное оптимальное
решение в данной ситуации — это прямой обмен информацией генералами
между собой.
Информация, которой обмениваются генералы, может носить различный
характер. Это могут быть сведения о численности каждой из армий либо
просто обозначение своего намерения — атаки или отступления. Важно то, что
каждый из генералов (допустим, что их число равно n) передает всем
остальным генералам свою информацию и получает от них назад n-1 наборов
подобных же сведений. Но это еще не все. Получается, что каждый генерал
обладает неким объемом информации, полученным от всех остальных
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии