Консенсус (информатика) - Consensus (computer science)

Основная проблема в распределенных вычислений и мультиагентные системы заключается в достижении общей надежности системы при наличии ряда неисправных процессов. Это часто требует координации процессов для достижения консенсус, или договоритесь о некотором значении данных, которое необходимо во время вычисления. Примеры применения консенсуса включают соглашение о том, какие транзакции и в каком порядке фиксировать в базе данных, репликация конечного автомата, и атомные радиопередачи. Реальные приложения, часто требующие консенсуса, включают: облачные вычисления, синхронизация часов, PageRank, формирование мнения, умные электросети, оценка состояния, управление БПЛА (и несколько роботов / агентов в целом), Балансировка нагрузки, блокчейн, и другие.

Описание проблемы

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

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

Протоколы, которые решают проблемы консенсуса, предназначены для работы с ограниченным количеством неисправных процессы. Чтобы эти протоколы были полезными, они должны удовлетворять ряду требований. Например, в тривиальном протоколе все процессы могут выводить двоичное значение 1. Это бесполезно, и поэтому требование изменяется таким образом, что вывод должен каким-то образом зависеть от ввода. То есть выходное значение протокола консенсуса должно быть входным значением некоторого процесса. Другое требование состоит в том, что процесс может принять решение о выходном значении только один раз, и это решение не может быть отменено. Процесс называется правильным при выполнении, если он не дает сбоев. Протокол консенсуса, допускающий сбои при остановке, должен удовлетворять следующим свойствам.[1]

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

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

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

При оценке эффективности протоколов консенсуса представляют интерес два фактора: Продолжительность и сложность сообщения. Время работы указано в Обозначение Big O в количестве раундов обмена сообщениями в зависимости от некоторых входных параметров (обычно количества процессов и / или размера входной области). Сложность сообщения относится к объему трафика сообщений, генерируемого протоколом. Другие факторы могут включать использование памяти и размер сообщений.

Модели вычислений

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

Каналы связи с прямой или переносимой аутентификацией

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

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

Входы и выходы консенсуса

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

Частный случай единственной проблемы консенсуса, называемый бинарный консенсус, ограничивает ввод и, следовательно, область вывода одной двоичной цифрой {0,1}. Хотя сами по себе они не очень полезны, протоколы бинарного консенсуса часто полезны в качестве строительных блоков в более общих протоколах консенсуса, особенно для асинхронного консенсуса.

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

Катастрофа и византийские неудачи

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

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

Более сильная версия консенсуса, допускающего византийские неудачи, дается путем усиления ограничения целостности:

Честность
Если правильный процесс решит , тогда должно быть, было предложено каким-то правильным процессом.

Асинхронные и синхронные системы

Проблема консенсуса может быть рассмотрена в случае асинхронных или синхронных систем. Хотя обмен данными в реальном мире часто по своей природе асинхронен, более практично и часто проще моделировать синхронные системы,[4] учитывая, что асинхронные системы естественно связаны с большим количеством проблем, чем синхронные.

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

Результат невозможности FLP для асинхронного детерминированного консенсуса

В полностью асинхронной распределенной системе передачи сообщений, в которой хотя бы один процесс может иметь авария, это было доказано в знаменитых Результат невозможности ФЛП который детерминированный алгоритм для достижения консенсуса невозможно.[5] Такой результат невозможности проистекает из наихудших сценариев планирования, которые маловероятны на практике, за исключением враждебных ситуаций, таких как интеллектуальный злоумышленник с отказом в обслуживании в сети. В большинстве обычных ситуаций планирование процессов имеет степень естественной случайности.[4]

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

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

Разрешенный консенсус против несанкционированного

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

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

Эквивалентность проблем согласования

Представляют интерес три проблемы согласования.

Прекращение надежной трансляции

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

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

Он также известен как проблема генерала.

Консенсус

Формальные требования к протоколу консенсуса могут включать:

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

Слабая интерактивная согласованность

За п процессов в частично синхронной системе (система чередует хорошие и плохие периоды синхронизации), каждый процесс выбирает частное значение. Процессы взаимодействуют друг с другом раундами для определения общедоступной ценности и генерации вектора консенсуса со следующими требованиями:[7]

  1. если правильный процесс отправляет , то все правильные процессы получают либо или ничего (свойство целостности)
  2. все сообщения, отправленные в раунде правильным процессом, принимаются в одном раунде всеми правильными процессами (свойство согласованности).

Можно показать, что варианты этих проблем эквивалентны в том смысле, что решение проблемы в модели одного типа может быть решением другой проблемы в модели другого типа. Например, решение проблемы Weak Byzantine General в модели передачи сообщений с синхронной аутентификацией приводит к решению проблемы Weak Interactive Consistency.[8] Алгоритм интерактивной согласованности может решить проблему консенсуса, если каждый процесс выбирает значение большинства в своем векторе консенсуса в качестве своего согласованного значения.[9]

Результаты разрешимости некоторых проблем согласования

Существует t-устойчивый анонимный синхронный протокол, который решает Проблема византийских генералов,[10][11] если и дело Слабых Византийских Генералов[8] куда это количество отказов и количество процессов.

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

В полностью асинхронной системе нет консенсусного решения, которое могло бы выдержать один или несколько аварийных отказов, даже когда требуется только свойство нетривиальности.[5] Этот результат иногда называют доказательством невозможности ФЛП по имени авторов. Майкл Дж. Фишер, Нэнси Линч, и Майк Патерсон кто был награжден Премия Дейкстры за эту значительную работу. Результат FLP был механически подтвержден на предмет соответствия даже при предположения о справедливости.[13] Тем не менее, FLP не утверждает, что консенсус никогда не может быть достигнут: просто, согласно предположениям модели, ни один алгоритм не может всегда достичь консенсуса за ограниченное время. На практике это маловероятно.

Некоторые протоколы консенсуса

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

Примером протокола бинарного консенсуса с полиномиальным временем, допускающего византийские сбои, является алгоритм Phase King.[14] Гарая и Бермана. Алгоритм решает консенсус в модели синхронной передачи сообщений с п процессы и до ж отказы, при условии п > 4ж.В алгоритме царя фаз есть ж + 1 фаз, по 2 цикла на фазу. Каждый процесс отслеживает свой предпочтительный выход (изначально равный собственному входному значению процесса). В первом раунде каждой фазы каждый процесс передает свое предпочтительное значение всем другим процессам. Затем он получает значения от всех процессов и определяет, какое значение является основным значением, и его количество. Во втором раунде фазы процесс, идентификатор которого совпадает с номером текущей фазы, назначается королем фазы. Король транслирует значение большинства, которое он наблюдал в первом раунде, и служит решающим фактором. Затем каждый процесс обновляет свое предпочтительное значение следующим образом. Если подсчет большинства значений, процесс, наблюдаемый в первом раунде, больше, чем п/2 + ж, процесс меняет свое предпочтение на это значение большинства; в противном случае используется значение царя фазы. В конце ж + 1 фазы процессы выводят свои предпочтительные значения.

Google внедрил распределенная служба блокировки библиотека называется Круглолицый.[15] Chubby хранит информацию о блокировках в небольших файлах, которые хранятся в реплицируемой базе данных, чтобы обеспечить высокую доступность в случае сбоев. База данных реализована поверх уровня отказоустойчивого журнала, основанного на Алгоритм консенсуса Paxos. В этой схеме клиенты Chubby общаются с Paxos. владелец для доступа / обновления реплицированного журнала; т.е. чтение / запись в файлы.[16]

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

Другой хорошо известный подход, называемый алгоритмами типа MSR, широко используется от информатики до теории управления.[17][18][19]

ИсточникСинхронностьАутентификацияПорогРаундовПримечания
Пиз-Шостак-Лампорт [10]СинхронныйУстныйполное общение
Пиз-Шостак-Лампорт [10]СинхронныйНаписанополное общение
Бен-Ор [20]АсинхронныйУстный (ожидал)ожидал раундов, когда
Dolev et al. [21]СинхронныйУстныйполное общение
Долев-Стронг [2]СинхронныйНаписанополное общение
Долев-Стронг [2]СинхронныйНаписанополное общение
Фельдман-Микали [22]СинхронныйУстный (ожидал)
Кац-Ку [23]СинхронныйНаписано (ожидал)Требуется PKI
PBFT [24]Асинхронный (безопасность) - Синхронный (живучесть)Устный
HoneyBadger [25]АсинхронныйУстный (ожидал)за tx-связь - требует шифрования с открытым ключом
Abraham et al. [26]СинхронныйНаписано
Византийское соглашение стало тривиальным [27] [28]СинхронныйПодписи (ожидал)Требуется цифровая подпись

Протоколы консенсуса без разрешения

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

Другие криптовалюты (например, DASH, NEO, STRATIS, ...) используют доказательство ставки, в котором узлы конкурируют за добавление блоков и зарабатывают связанные вознаграждения пропорционально ставка, или выделенная и заблокированная существующая криптовалюта, или поставленный на карту в течение некоторого периода времени. Одним из преимуществ системы «доказательства доли» перед системой «доказательство работы» является высокое энергопотребление, требуемое последней, по крайней мере, при использовании современных технологий. Например, майнинг биткойнов (2018), по оценкам, потребляет невозобновляемые источники энергии в количестве, аналогичном целым странам Чешской Республики или Иордании.[29]

Некоторые криптовалюты, такие как Ripple, используют систему проверки узлов для проверки реестра. Эта система, используемая Ripple, называемая алгоритмом консенсуса протокола Ripple (RPCA), работает поэтапно: Шаг 1: каждый сервер составляет список допустимых транзакций-кандидатов; Шаг 2: каждый сервер объединяет всех кандидатов из своего списка уникальных узлов (UNL) и голосует за их достоверность; Шаг 3: транзакции, превышающие минимальный порог, переходят в следующий раунд; Шаг 4: финальный раунд требует 80% согласия[30]

Другие правила участия, используемые в протоколах консенсуса без разрешения для навязывания барьеры для входа и сопротивляться атаки Сибиллы включают доказательство полномочий, доказательство места, доказательство ожога или доказательство истекшего времени. Эти альтернативы снова в значительной степени мотивированы большим количеством вычислительной энергии, потребляемой доказательством работы.[31] Доказательство емкости используется криптовалютой, такой как Burstcoin.

В отличие от приведенных выше правил неограниченного участия, каждый из которых вознаграждает участников пропорционально сумме инвестиций в какое-либо действие или ресурс, доказательство личности Протоколы стремятся предоставить каждому реальному участнику-человеку ровно одну единицу права голоса при неразрешенном консенсусе, независимо от экономических вложений.[32][33] Предлагаемые подходы к достижению индивидуального распределения силы консенсуса для доказательства личности включают физические псевдонимы сторон,[34] социальные сети,[35] псевдонимы, выданные государством,[36] и биометрия.[37]

Протоколы консенсуса с общей памятью

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

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

Другая реализация параллельного объекта называется реализацией без ожидания, которая может гарантировать консенсус за конечное число шагов. Достаточно ли мощный объект данного типа для решения проблем консенсуса? Морис Херлихи дал «Иерархию невозможности и универсальности».[38]

Номер консенсусаОбъекты
Регистры чтения / записи
тест и установка, замена, выборка и добавление, очередь, стек
......
присвоение n-регистров
......
Перемещение и подкачка из памяти в память, расширенная очередь, сравнение и замена, выборка и минусы, липкий байт

Число консенсуса в иерархии означает максимальное количество процессов в системе, которые могут достичь консенсуса по данному объекту. Объекты с более высоким числом консенсуса не могут быть реализованы объектами с более низким числом консенсуса.

Согласно иерархии, регистры чтения / записи не могут достичь консенсуса даже в двухпроцессной системе. Структура данных, такая как стек, очередь и т. Д., Может обеспечить консенсус между двумя процессами. Почему эти объекты не могут достичь консенсуса между большим количеством процессов? Эффективный способ доказать это - воспользоваться преимуществом двойственности. Предположим, что выход является двоичным, состояние является бивалентным, если возможны оба из двух выходов, и если выход, достижимый из состояния, равен только 0/1, состояние называется 0-валентным / 1-валентным. Основная идея состоит в том, чтобы создать противоречие, выполнив некоторые операции для получения состояния, которое одновременно является 0-валентным и 1-валентным.

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

Смотрите также

Рекомендации

  1. ^ а б c Кулурис, Джордж; Жан Доллимор; Тим Киндберг (2001), Распределенные системы: концепции и дизайн (3-е издание), Эддисон-Уэсли, стр. 452, г. ISBN  978-0201-61918-8
  2. ^ а б c d Долев, Д .; Стронг, Х.Р. (1983). «Аутентифицированные алгоритмы византийского соглашения». SIAM Журнал по вычислениям. 12 (4): 656–666. Дои:10.1137/0212045.
  3. ^ Гонг, Ли; Линкольн, Патрик; Рашби, Джон (1995). «Византийское соглашение с аутентификацией». Надежные вычисления для критически важных приложений. 10.
  4. ^ а б Агилера, М. К. (2010). «Спотыкаясь о консенсусном исследовании: недопонимание и проблемы». Репликация. Конспект лекций по информатике. 5959. С. 59–72. Дои:10.1007/978-3-642-11294-2_4. ISBN  978-3-642-11293-5.
  5. ^ а б Фишер, М. Дж.; Линч, Н.А.; Патерсон, М.С. (1985). «Невозможность распределенного консенсуса с одним ошибочным процессом» (PDF). Журнал ACM. 32 (2): 374–382. Дои:10.1145/3149.214121. S2CID  207660233.
  6. ^ Аспнес, Джеймс (май 1993 г.). «Рандомизированный консенсус, эффективный по времени и пространству». Журнал алгоритмов. 14 (3).
  7. ^ Милошевич, Зарко; Мартин Хатл; Андре Шипер (2009). Унификация византийских консенсусных алгоритмов со слабой интерактивной согласованностью. Принципы распределенных систем, Конспект лекций по информатике. Конспект лекций по информатике. 5293. стр.300–314. CiteSeerX  10.1.1.180.4229. Дои:10.1007/978-3-642-10877-8_24. ISBN  978-3-642-10876-1.
  8. ^ а б Лэмпорт, Л. (1983). «Проблема слабых византийских генералов». Журнал ACM. 30 (3): 668. Дои:10.1145/2402.322398. S2CID  1574706.
  9. ^ Фишер, Майкл Дж. «Проблема консенсуса в ненадежных распределенных системах (краткий обзор)» (PDF). Получено 21 апреля 2014.
  10. ^ а б c Лампорт, Л.; Шостак, Р .; Пиз, М. (1982). "Проблема византийских генералов" (PDF). Транзакции ACM по языкам и системам программирования. 4 (3): 382–401. CiteSeerX  10.1.1.64.2312. Дои:10.1145/357172.357176.
  11. ^ Лэмпорт, Лесли; Маршалл Пиз; Роберт Шостак (апрель 1980 г.). «Достижение соглашения при наличии недостатков» (PDF). Журнал ACM. 27 (2): 228–234. CiteSeerX  10.1.1.68.4044. Дои:10.1145/322186.322188. S2CID  6429068. Получено 2007-07-25.
  12. ^ Аттия, Хагит (2004). Распределенные вычисления, 2-е изд.. Вайли. С. 101–103. ISBN  978-0-471-45324-6.
  13. ^ Биспинг, Бенджамин; и другие. (2016), Бланшетт, Жасмин Кристиан; Мерц, Стефан (ред.), Механическая проверка конструктивного доказательства для FLP, Конспект лекций по информатике, 9807, Издательство Springer International Publishing, Дои:10.1007/978-3-319-43144-4_7, ISBN  978-3-319-43144-4
  14. ^ Берман, Петр; Хуан А. Гарай (1993). «Cloture Votes: n / 4-resilient Distributed Consensus в t + 1 раундах». Теория вычислительных систем. 2. 26: 3–19. Дои:10.1007 / BF01187072. S2CID  6102847.
  15. ^ Берроуз, М. (2006). Служба Chubby Lock для слабосвязанных распределенных систем (PDF). Труды 7-го Симпозиум по разработке и внедрению операционных систем. Ассоциация USENIX Беркли, Калифорния, США. С. 335–350.
  16. ^ С., Тушар; Griesemer, R; Редстоун Дж. (2007). Paxos Made Live - инженерная перспектива (PDF). Материалы двадцать шестой ежегодной ACM Симпозиум по принципам распределенных вычислений. Портленд, Орегон, США: ACM Press, Нью-Йорк, Нью-Йорк, США. С. 398–407. Дои:10.1145/1281100.1281103. Архивировано из оригинал (PDF) на 2014-12-12. Получено 2008-02-06.
  17. ^ ЛеБлан, Хит Дж. (Апрель 2013 г.). «Устойчивый асимптотический консенсус в надежных сетях». Журнал IEEE по избранным областям коммуникаций. 31 (4): 766–781. CiteSeerX  10.1.1.310.5354. Дои:10.1109 / JSAC.2013.130413. S2CID  11287513.
  18. ^ Дибаджи, С. М. (май 2015 г.). «Консенсус мультиагентных систем второго порядка при наличии локально ограниченных неисправностей». Письма о системах и управлении. 79: 23–29. Дои:10.1016 / j.sysconle.2015.02.005.
  19. ^ Дибаджи, С. М. (июль 2017 г.).«Устойчивый консенсус агентских сетей второго порядка: правила асинхронного обновления с задержками». Automatica. 81: 123–132. arXiv:1701.03430. Bibcode:2017arXiv170103430M. Дои:10.1016 / j.automatica.2017.03.008. S2CID  7467466.
  20. ^ Бен-Ор, Майкл (1983). «Еще одно преимущество свободного выбора (расширенная аннотация): полностью асинхронные протоколы согласования»: 27–30. Дои:10.1145/800221.806707. S2CID  38215511. Цитировать журнал требует | журнал = (помощь)
  21. ^ Долев, Дэнни; Фишер, Майкл Дж .; Фаулер, Роб; Линч, Нэнси; Сильный, Х. Раймонд (1982). «Эффективный алгоритм византийского соглашения без аутентификации». Информация и контроль. 52 (3): 257–274. Дои:10.1016 / S0019-9958 (82) 90776-8.
  22. ^ Фельдман, Песеч; Микали, Сильвио (1997). Оптимальный вероятностный протокол для синхронного византийского соглашения. SIAM Журнал по вычислениям (Технический отчет). Дои:10.1137 / S0097539790187084.
  23. ^ Кац, Джонатан; Ку, Чиу-Юэн (2006). Об ожидаемых протоколах постоянного раунда византийского соглашения. КРИПТО. Дои:10.1007/11818175_27.
  24. ^ Кастро, Мигель; Лисков, Барбара (1999). Практическая византийская отказоустойчивость (PDF). OSDI.
  25. ^ Миллер, Эндрю; Ся, Ю; Кроман, Кайл; Ши, Элейн; Песня, Рассвет (2016). Медоед протоколов BFT. CCS. Дои:10.1145/2976749.2978399.
  26. ^ Авраам, Иттай; Девадас, Шринивас; Долев, Дэнни; Наяк, Картик; Рен, Линг (2017). Эффективный синхронный византийский консенсус (Технический отчет).
  27. ^ Микали, Сильвио (2018). «Византийское соглашение стало тривиальным» (PDF).
  28. ^ Чен, Цзин; Микали, Сильвио. «АЛГОРАНД». arXiv:1607.01341v9.
  29. ^ Ирфан, Умайр (18 июня 2019 г.). «Биткойн - это энергетик. Откуда все это электричество?». Vox.
  30. ^ Schwartz D, YoungsN, Britto A. 2014 Алгоритм консенсуса протокола Ripple
  31. ^ Каковы альтернативные стратегии доказательства работы?
  32. ^ Мария Борге, Элефтериос Кокорис-Когиас, Филипп Йованович, Линус Гассер, Николас Гейли, Брайан Форд (29 апреля 2017 г.). Доказательство личности: восстановление демократии без разрешения криптовалюты. Безопасность и конфиденциальность IEEE в блокчейне (IEEE S&B).CS1 maint: использует параметр авторов (связь)
  33. ^ Дивья Сиддарт, Сергей Ивлиев, Сантьяго Сири, Паула Берман (13 октября 2020 г.). «Кто наблюдает за стражами? Обзор субъективных подходов к сопротивлению Сибиллы в протоколах подтверждения личности». arXiv:2008.05300.CS1 maint: использует параметр авторов (связь)
  34. ^ Форд, Брайан; Штраус, Якоб (1 апреля 2008 г.). Offline Foundation для онлайн-ответственных псевдонимов. 1-й семинар по системам социальных сетей - SocialNets '08. С. 31–6. Дои:10.1145/1435497.1435503. ISBN  978-1-60558-124-8.
  35. ^ Гал Шахаф, Эхуд Шапиро, Нимрод Талмон (октябрь 2020 г.). Подлинные личные идентификаторы и взаимные гарантии для устойчивого роста сообщества Sybil. Международная конференция по социальной информатике.CS1 maint: использует параметр авторов (связь)
  36. ^ Дипак Марам, Харьяслин Мальваи, Фан Чжан, Нерла Жан-Луи, Александр Фролов, Тайлер Келл, Тайрон Лоббан, Кристин Мой, Ари Джулс, Эндрю Миллер (28 сентября 2020 г.). «CanDID: децентрализованная идентификация, способная работать с унаследованной совместимостью, сопротивлением Сибилле и подотчетностью» (PDF).CS1 maint: использует параметр авторов (связь)
  37. ^ Мохаммад-Джавад Гаджалихани, Мохаммад-Махди Джаханара (20 июня 2018 г.). «UniqueID: децентрализованное доказательство уникальности человека» (PDF). arXiv:1806.07583.CS1 maint: использует параметр авторов (связь)
  38. ^ а б Херлихи, Морис. «Синхронизация без ожидания» (PDF). Получено 19 декабря 2011.

дальнейшее чтение