Algorand: Mở rộng các thỏa thuận Byzantine cho tiền điện tử
Аннотация
Публичный реестр — это защищенная от несанкционированного доступа последовательность данных, которую может прочитать и дополнить каждый. Публичные реестры имеют бесчисленное множество интересных применений. Они могут обеспечить на виду все виды транзакций — таких как права собственности, продажи и платежи — в том порядке, в котором они происходят. Публичные реестры не только сдерживают коррупцию, но и позволяют использовать очень сложные приложения, такие как криптовалюты и smart contracts. Они намерены революционизировать способ построения демократического общества. действует. Однако в нынешнем виде они плохо масштабируются и не могут реализовать свой потенциал. Algorand — это действительно демократичный и эффективный способ внедрения публичного реестра. В отличие от предыдущего реализации, основанные на доказательстве работы, требуют незначительного объема вычислений и генерирует историю транзакций, которая не будет «разветвляться» с чрезвычайно высокой вероятностью. Algorand основан на (новом и сверхбыстром) византийском соглашении о передаче сообщений. Для конкретики мы будем описывать Algorand только как денежную платформу.
Tóm tắt
Sổ cái công khai là một chuỗi dữ liệu chống giả mạo mà mọi người đều có thể đọc và bổ sung. Sổ cái công khai có vô số công dụng hấp dẫn và vô số. Họ có thể bảo đảm, một cách dễ dàng, tất cả các loại của các giao dịch—chẳng hạn như quyền sở hữu, bán hàng và thanh toán—theo đúng thứ tự chúng diễn ra. Sổ cái công khai không chỉ hạn chế tham nhũng mà còn cho phép các ứng dụng rất phức tạp - chẳng hạn như tiền điện tử và smart contracts. Họ đứng lên cách mạng hóa cách thức một xã hội dân chủ hoạt động. Tuy nhiên, như hiện đang được triển khai, chúng có quy mô kém và không thể đạt được tiềm năng của mình. Algorand là một cách thực sự dân chủ và hiệu quả để triển khai sổ cái công khai. Không giống như trước việc triển khai dựa trên bằng chứng công việc, nó đòi hỏi lượng tính toán không đáng kể và tạo ra một lịch sử giao dịch sẽ không “phân nhánh” với xác suất cực kỳ cao. Algorand dựa trên thỏa thuận Byzantine truyền tin nhắn (mới và siêu nhanh). Để cụ thể hơn, chúng tôi sẽ chỉ mô tả Algorand dưới dạng nền tảng tiền tệ.
Введение
Деньги становятся все более виртуальными. Подсчитано, что около 80% населения США долларов сегодня существуют только в виде записей в бухгалтерской книге [5]. Другие финансовые инструменты следуют этому примеру. В идеальном мире, в котором мы могли бы рассчитывать на универсальную центральную структуру, неуязвимую для Несмотря на все возможные кибератаки, деньги и другие финансовые операции могут осуществляться исключительно электронно. К сожалению, мы живем не в таком мире. Соответственно, децентрализованные криптовалюты, такие как как Bitcoin [29] и системы «smart contract», такие как Ethereum, были предложены [4]. В сердцем этих систем является общий реестр, в котором надежно фиксируется последовательность транзакций. ∗Это более формальная (и асинхронная) версия статьи ArXiv второго автора [24], статьи сам основан на версии Горбунова и Микали [18]. Технологии Algorand являются объектом следующих патентные заявки: US62/117,138, US62/120,916, US62/142,318, US62/218,817, US62/314,601, PCT/US2016/018300. US62/326,865 62/331,654 US62/333,340 US62/343,369 US62/344,667 US62/346,775 US62/351,011 US62/653,482 US62/352,195 US62/363,970 US62/369,447 US62/378,753 US62/383,299 US62/394,091 US62/400,361 US62/403,403 US62/410,721 US62/416,959 US62/422,883 US62/455,444 US62/458,746 US62/459,652 US62/460,928 US62/465,931так же разнообразны, как платежи и контракты, и защищены от несанкционированного доступа. Технология выбора, гарантией такой защиты от несанкционированного доступа является blockchain. Блокчейны лежат в основе таких приложений, как криптовалюты [29], финансовые приложения [4] и Интернет вещей [3]. Несколько техник для управления реестрами на основе blockchain были предложены: доказательство работы [29], доказательство доли [2], практическая византийская отказоустойчивость [8] или какая-то комбинация. Однако в настоящее время управление реестрами может оказаться неэффективным. Например, proof-of-work Bitcoin. подход (основанный на исходной концепции [14]) требует огромного количества вычислений и является расточительным и плохо масштабируется [1]. Кроме того, она де-факто концентрирует власть в очень немногих руках. Поэтому мы хотим предложить новый метод реализации публичного реестра, который предлагает удобство и эффективность централизованной системы, управляемой доверенным и неприкосновенным органом, без неэффективность и слабости текущих децентрализованных реализаций. Мы называем наш подход Algorand, потому что мы используем алгоритмическую случайность для выбора на основе построенного на данный момент реестра, набор проверяющих, которые отвечают за создание следующего блока действительных транзакций. Естественно, мы гарантируем, что такие выборы будут доказуемо защищены от манипуляций и непредсказуемы до тех пор, пока в последнюю минуту, но также и то, что в конечном итоге они общеизвестны. Подход Algorand вполне демократичен в том смысле, что ни в принципе, ни де-факто он создает разные классы пользователей (как «майнеры» и «обычные пользователи» в Bitcoin). В Algorand «все власть принадлежит группе всех пользователей». Одним из примечательных свойств Algorand является то, что его история транзакций может разветвляться только при очень небольших вероятность (например, один на триллион, то есть или даже 10−18). Algorand также может касаться некоторых юридических вопросов. и политические проблемы. Подход Algorand применим к blockchain и, в более общем плане, к любому методу генерации защищенная от несанкционированного доступа последовательность блоков. Мы фактически предложили новый метод — альтернативный и более эффективен, чем blockchains — это может представлять независимый интерес. 1.1 Предположение Bitcoin и технические проблемы Bitcoin — очень изобретательная система, вдохновившая на большое количество последующих исследований. Тем не менее, это также проблематично. Давайте суммируем лежащее в его основе предположение и технические проблемы, которые фактически используются практически всеми криптовалютами, которые, например Bitcoin, основаны на proof-of-work. Для этого резюме достаточно вспомнить, что в Bitcoin пользователь может владеть несколькими открытыми ключами. схемы цифровой подписи, что деньги связаны с открытыми ключами и что платеж представляет собой цифровая подпись, которая переводит некоторую сумму денег с одного открытого ключа на другой. По сути, Bitcoin организует все обработанные платежи в цепочку блоков B1, B2, . . ., каждый из которых состоит из нескольких платежи, такие, что все платежи B1, взятые в любом порядке, за которыми следуют платежи B2 в любом порядке, и т. д. представляют собой последовательность действительных платежей. Каждый блок генерируется в среднем каждые 10 минут. Эта последовательность блоков представляет собой цепочку, поскольку она построена так, чтобы гарантировать, что любое изменение, даже в одном блоке, проникает во все последующие блоки, что облегчает обнаружение любых изменений история платежей. (Как мы увидим, это достигается за счет включения в каждый блок криптографического hash предыдущего.) Такая блочная структура называется blockchain. Предположение: честное большинство вычислительной мощности Bitcoin предполагает, что никакой злонамеренный организация (а не коалиция скоординированных злоумышленников) контролирует большую часть вычислительных ресурсов. мощность, предназначенная для генерации блоков. Фактически, такой объект сможет изменить blockchain,и таким образом переписать историю платежей, как угодно. В частности, он мог совершить платеж \(\wp\), получить оплаченные льготы, а затем «стирать» любые следы \(\wp\). Техническая проблема 1: Вычислительные отходы Подход Bitcoin proof-of-work к блокированию генерация требует огромного количества вычислений. В настоящее время насчитывается всего несколько сотен тысячи открытых ключей в системе, 500 самых мощных суперкомпьютеров могут только собрать всего 12,8% от общей вычислительной мощности, требуемой от игроков Bitcoin. Это объем вычислений значительно увеличится, если к системе присоединится значительно больше пользователей. Техническая проблема 2: Концентрация власти Сегодня из-за огромного количества требуется вычисление, пользователь, пытающийся сгенерировать новый блок, используя обычный рабочий стол (не говоря уже о сотовый телефон), рассчитывает потерять деньги. Действительно, для вычисления нового блока на обычном компьютере ожидаемая стоимость электроэнергии, необходимой для питания вычислений, превышает ожидаемое вознаграждение. Только используя пулы специально созданных компьютеров (которые не делают ничего, кроме «добычи новых блоков»), один может рассчитывать на получение прибыли за счет создания новых блоков. Соответственно, сегодня де-факто существует два разрозненные классы пользователей: обычные пользователи, которые только совершают платежи, и специализированные майнинговые пулы, которые ищут только новые блоки. Поэтому неудивительно, что с недавнего времени общая вычислительная мощность для блоков поколение находится всего в пяти пулах. В таких условиях предположение о том, что большинство Честная вычислительная мощность становится менее достоверной. Техническая проблема 3: Неясность В Bitcoin blockchain не обязательно уникален. действительно его последняя часть часто разветвляется: blockchain может быть, скажем, B1, . . . , Бк, Б' к+1, Б' k+2, согласно один пользователь и B1, . . . , Бк, Б'' к+1, Б'' к+2, Б'' k+3 по словам другого пользователя. Только после того, как пройдет несколько блоков добавлены в цепочку, можно ли быть достаточно уверенным, что первые k + 3 блока будут одинаковыми? для всех пользователей. Таким образом, нельзя сразу полагаться на выплаты, содержащиеся в последнем блоке цепь. Разумнее подождать и посмотреть, станет ли блок достаточно глубоким в blockchain и, таким образом, достаточно стабилен. Отдельно были высказаны опасения со стороны правоохранительных органов и денежно-кредитной политики в отношении Bitcoin.1. 1.2 Algorand, в двух словах Настройка Algorand работает в очень жестких условиях. Вкратце, (a) Неразрешенные и разрешенные среды. Algorand работает эффективно и безопасно даже в полностью закрытой среде, где сколь угодно много пользователей могут присоединиться к системе в любое время, без какой-либо проверки или разрешения любого рода. Конечно, Algorand работает. еще лучше в разрешенной среде. 1(Псевдо) анонимность, обеспечиваемая платежами Bitcoin, может быть использована неправомерно для отмывания денег и/или финансирования. преступников или террористических организаций. Традиционные банкноты или золотые слитки, которые в принципе предлагают идеальные анонимность должна представлять собой ту же проблему, но физическая форма этих валют существенно замедляет движение денег. переводы, чтобы обеспечить определенную степень контроля со стороны правоохранительных органов. Способность «печатать деньги» является одной из основных полномочий национального государства. Поэтому в принципе массовое принятие независимо плавающей валюты может ограничить эту власть. Однако в настоящее время Bitcoin далек от представляет собой угрозу правительственной денежно-кредитной политике и из-за проблем с масштабируемостью, возможно, никогда ею не станет.(б) Очень враждебная среда. Algorand противостоит очень сильному противнику, который может (1) мгновенно испортить любого пользователя, которого он хочет, в любое время, когда он хочет, при условии, что в неразрешенная среда, 2/3 денег в системе принадлежит честному пользователю. (В разрешенная среда, независимо от денег, достаточно, чтобы 2/3 пользователей были честными.) (2) полностью контролировать и идеально координировать всех коррумпированных пользователей; и (3) запланировать доставку всех сообщений при условии, что каждое сообщение m отправлено честным пользователем. достигает 95% честных пользователей за время \(\lambda\)m, которое зависит исключительно от размера m. Основные свойства Несмотря на присутствие нашего мощного противника, в Algorand • Требуемый объем вычислений минимален. По сути, независимо от того, сколько пользователей присутствующих в системе, каждый из полутора сотен пользователей должен выполнить не более нескольких секунд расчет. • Новый блок создается менее чем за 10 минут и фактически никогда не покидает blockchain. Например, ожидаемое время генерации блока в первом варианте меньше чем Λ + 12,4\(\lambda\), где Λ — время, необходимое для распространения блока в одноранговой сплетне независимо от того, какой размер блока вы выберете, а \(\lambda\) — это время для распространения 1500 сообщений 200Blong. (Поскольку в действительно децентрализованной системе Λ по существу является внутренней задержкой, в Algorand ограничивающим фактором при генерации блоков является скорость сети.) Второй вариант осуществления имеет фактически был протестирован экспериментально (?), что указывает на то, что блок генерируется менее чем за 40 секунды. Кроме того, blockchain из Algorand может разветвляться только с пренебрежимо малой вероятностью (т. е. менее одной в триллионе), и, таким образом, пользователи могут рассчитывать на платежи, содержащиеся в новом блоке, как только появляется блок. • Вся власть принадлежит самим пользователям. Algorand — это настоящая распределенная система. В частности, нет экзогенных объектов (таких как «майнеры» в Bitcoin), которые могли бы контролировать, какие транзакции признаны. Техники Algorand. 1. Новый и быстрый протокол Византийского соглашения. Algorand генерирует новый блок через новый криптографический протокол передачи сообщений двоичного византийского соглашения (BA), BA⋆. Протокол BA⋆не только обладает некоторыми дополнительными свойствами (которые мы вскоре обсудим), но и очень быстр. Грубо говоря, его версия с двоичным вводом состоит из трехэтапного цикла, в котором игрок i отправляет одиночный сигнал. сообщение mi всем остальным игрокам. Выполняется в полной и синхронной сети с более чем 2/3 игроков честны, с вероятностью > 1/3, после каждого цикла протокол заканчивается соглашение. (Мы подчеркиваем, что протокол BA⋆ удовлетворяет первоначальному определению византийского соглашения. Пиза, Шостака и Лэмпорта [31] без каких-либо ослаблений.) Algorand использует этот двоичный протокол BA для достижения соглашения в наших различных коммуникациях. модель, на каждом новом блоке. Согласованный блок затем сертифицируется через заданное количество цифровую подпись соответствующих проверяющих лиц и распространяется по сети. 2. Криптографическая сортировка. Несмотря на то, что протокол BA⋆ очень быстрый, его дальнейшее развитие могло бы принести пользу. скорость, когда в нее играют миллионы пользователей. Соответственно, Algorand выбирает игроков BA⋆, которые будутгораздо меньшее подмножество всех пользователей. Во избежание различного рода концентрации власти проблема, каждый новый блок Br будет построен и согласован посредством нового выполнения BA⋆, отдельным набором выбранных проверяющих, SV r. В принципе, подобрать такой набор может быть так же сложно, как и выбрав Br напрямую. Мы решаем эту потенциальную проблему с помощью подхода, который мы называем проницательное предложение Мориса Херлихи — криптографическая сортировка. Сортировка – это практика выбор должностных лиц случайным образом из большого числа подходящих лиц [6]. (практиковалась сортировка на протяжении веков: например, республиками Афин, Флоренции и Венеции. В современном судебном В системах присяжных часто используется случайный отбор. Случайная выборка также была недавно за выборы выступал Дэвид Чаум [9].) В децентрализованной системе, конечно, выбор случайные монеты, необходимые для случайного выбора членов каждого набора проверяющих SV r, проблематичны. Таким образом, мы прибегаем к криптографии, чтобы выбрать каждый набор проверяющих из совокупности всех пользователей. таким образом, который гарантированно будет автоматическим (т. е. не требующим обмена сообщениями) и случайным. По сути, мы используем криптографическую функцию для автоматического определения по предыдущему блоку Br-1, пользователь, лидер, отвечающий за предложение нового блока Br, и набор верификаторов SV r, в поручить достичь согласия по предложенному лидером блоку. Поскольку злонамеренные пользователи могут повлиять состав Br−1 (например, выбрав некоторые из его платежей) мы специально строим и используем дополнительные входные данные, чтобы доказать, что лидер r-го блока и набор проверяющих SV r действительно являются выбран случайно. 3. Количество (семя) Qr. Мы используем последний блок Br-1 в blockchain, чтобы автоматически определяет следующий набор верификаторов и лидера, отвечающего за построение нового блока Бр. Проблема с этим подходом заключается в том, что, просто выбрав немного другой платеж в В предыдущем раунде наш могущественный противник получает огромный контроль над следующим лидером. Даже если он контролировал только 1/1000 игроков/денег в системе, он мог гарантировать, что все лидеры злонамеренный. (См. раздел «Интуиция» 4.1.) Эта проблема является центральной для всех подходов proof-of-stake, и, насколько нам известно, она до сих пор не решена удовлетворительно. Чтобы решить эту задачу, мы намеренно создаем и постоянно обновляем отдельный и тщательно определенную величину Qr, которая, как доказуемо, не только непредсказуема, но и не поддается влиянию с точки зрения наших мощный противник. Мы можем называть Qr r-м семенем, поскольку именно из Qr выбирает Algorand, посредством секретной криптографической сортировки все пользователи, которые будут играть особую роль в создании й блок. 4. Секретная криптографическая сортировка и секретные учетные данные. Случайным образом и однозначно используя текущий последний блок, Br-1, для выбора набора проверяющих и ответственного лидера. строительства нового блока Бр недостаточно. Поскольку Br−1 должно быть известно до генерации Br, должна быть также известна последняя независимая величина Qr−1, содержащаяся в Br−1. Соответственно, так являются проверяющими и лидером, отвечающим за вычисление блока Br. Таким образом, наш могущественный Противник могли бы немедленно развратить их всех, прежде чем они вступят в какую-либо дискуссию о Бр, чтобы получить полный контроль над блоком, который они сертифицируют. Чтобы предотвратить эту проблему, лидеры (а фактически и проверяющие тоже) тайно узнают о своей роли, но могут вычислить правильные учетные данные, способные доказать всем, кто действительно выполняет эту роль. Когда пользователь тайно осознает, что является лидером следующего блока, сначала он тайно собирает свой самостоятельно предложенный новый блок, а затем распространяет его (чтобы его можно было сертифицировать) вместе со своим собственным учетные данные. Таким образом, хотя Противник сразу поймет, кто лидер следующего блок есть, и хотя он может развратить его сразу, Противнику будет уже слишком поздно повлиять на выбор нового блока. Действительно, он больше не может «перезвонить» посланию лидера.чем могущественное правительство сможет положить обратно в бутылку сообщение, вирусно распространенное WikiLeaks. Как мы увидим, мы не можем гарантировать ни уникальность лидера, ни то, что все точно знают, кто лидер. есть, включая самого лидера! Но в Algorand однозначный прогресс будет гарантирован. 5. Заменяемость игроков. После того, как он предложит новый блок, лидер может с тем же успехом «умереть» (или быть испорчен Противником), потому что его работа выполнена. Но для проверяющих в SV r дела обстоят сложнее. простой. Действительно, отвечая за сертификацию нового блока Br с достаточным количеством подписей, они должны сначала провести византийское соглашение по предложенному вождем блоку. Проблема в том, что независимо от того, насколько он эффективен, BA⋆ требует нескольких шагов и честности > 2/3 своих игроков. Это проблема, поскольку из соображений эффективности набор игроков BA⋆ состоит из небольшого набора SV r случайно выбранный среди множества всех пользователей. Таким образом, наш могущественный Противник, хотя и неспособный испортил 1/3 всех пользователей, безусловно, может испортить всех членов SV r! К счастью, мы докажем, что протокол BA⋆, выполняющийся путем распространения сообщений в одноранговой сети, может быть заменен игроком. Это новое требование означает, что протокол правильно и эффективно достигает консенсуса, даже если каждый его шаг выполняется совершенно новым и случайным образом и независимо выбранный набор игроков. Таким образом, при миллионах пользователей каждая небольшая группа игроков связанный с шагом BA⋆, скорее всего, имеет пустое пересечение со следующим множеством. Кроме того, наборы игроков разных ступеней BA⋆, вероятно, будут иметь совершенно разные мощности. Более того, члены каждой группы не знают, кто будет следующей группой игроков. быть, и не передавать тайно никакого внутреннего состояния. Свойство сменного игрока на самом деле имеет решающее значение для победы над динамичным и очень мощным игроком. Противника мы видим. Мы считаем, что протоколы сменных игроков окажутся решающими во многих контексты и приложения. В частности, они будут иметь решающее значение для безопасного выполнения небольших подпротоколов. встроен в большую вселенную игроков с динамичным противником, который, будучи в состоянии развратить даже небольшая часть от общего числа игроков, не имеет труда развратить всех игроков в меньших субпротокол. Дополнительное свойство/техника: ленивая честность Честный пользователь следует своим предписаниям инструкции, которые включают в себя пребывание в сети и запуск протокола. Поскольку Algorand имеет лишь скромные требования к вычислениям и связи, нахождение в сети и запуск протокола «в фон» не является большой жертвой. Конечно, некоторые «отсутствия» среди честных игроков, как те, из-за внезапной потери соединения или необходимости перезагрузки автоматически допускаются (поскольку мы всегда можем считать таких немногих игроков временно злонамеренными). Отметим, однако, что Algorand можно просто адаптировать для работы в новой модели, в которой будут честные пользователи большую часть времени офлайн. Нашу новую модель можно неформально представить следующим образом. Ленивая честность. Грубо говоря, пользователь i является ленивым, но честным, если (1) он следует всем предписанным ему правилам. инструкции, когда его просят принять участие в протоколе, и (2) его просят принять участие протоколу лишь в редких случаях и с соответствующим предварительным уведомлением. При таком смягченном представлении о честности мы можем быть еще более уверены в том, что честные люди будут под рукой, когда они нам понадобятся, и Algorand гарантирует, что в этом случае Система работает безопасно, даже если в определенный момент времени большинство участвующих игроков являются злонамеренными.1.3 Тесно связанные работы Подходы Proof-of-Work (например, упомянутые [29] и [4]) вполне ортогональны нашим. Как и подходы, основанные на византийском соглашении о передаче сообщений или практической византийской отказоустойчивости (например, процитированный [8]). Действительно, эти протоколы не могут быть запущены среди множества всех пользователей и не могут, в нашей модели быть ограничены достаточно небольшим набором пользователей. Фактически, наш могущественный противник мой немедленно испортить всех пользователей, участвующих в небольшой группе, обвиненной в фактическом запуске протокола BA. Наш подход можно считать связанным с доказательством доли [2] в том смысле, что «власть» пользователей в блочном строительстве пропорциональна деньгам, которыми они владеют в системе (в отличие, скажем, от деньги, которые они положили на «эскроу»). Наиболее близкой к нашей статье является Модель сонного консенсуса Пасса и Ши [30]. Чтобы избежать тяжелые вычисления, необходимые в подходе proof-of-work, на которые опирается их статья (и любезно кредиты) секретная криптографическая сортировка Algorand. Этот решающий аспект является общим для нескольких Между нашими статьями существуют существенные различия. В частности, (1) Их установка разрешена. Напротив, Algorand также является системой без разрешений. (2) Они используют протокол в стиле Накамото, поэтому их blockchain часто разветвляется. Хотя обходясь без proof-of-work, в их протоколе тайно выбранному лидеру предлагается удлинить самый длинный действительный (в более широком смысле) blockchain. Таким образом, вилки неизбежны и приходится ждать, чтобы блок находится достаточно «глубоко» в цепи. Ведь для достижения своих целей с противником способные к адаптивным повреждениям, они требуют, чтобы блок имел глубину поли(N), где N представляет собой общее количество пользователей в системе. Обратите внимание, что даже если предположить, что блок может быть создан в минуту, если бы было N = 1M пользователей, то пришлось бы ждать около 2M лет блок станет глубиной N 2, и в течение примерно 2 лет блок станет глубиной N. Напротив, blockchain Algorand разветвляется с незначительной вероятностью, даже несмотря на то, что Противник повредил пользователи сразу и адаптивно, и на его новые блоки можно сразу же положиться. (3) Они не занимаются отдельными византийскими соглашениями. В каком-то смысле они лишь гарантируют «возможный консенсус в отношении растущей последовательности ценностей». Это протокол репликации состояния, а не чем BA, и не может использоваться для достижения византийского соглашения об индивидуальной ценности интересов. Напротив, Algorand при желании можно использовать только один раз, чтобы позволить миллионам пользователей быстро достичь византийского соглашения о конкретной стоимости процентов. (4) Они требуют слабо синхронизированных часов. То есть часы всех пользователей смещены на небольшое время. δ. Напротив, в Algorand часы должны иметь только (по сути) одинаковую «скорость». (5) Их протокол работает с ленивыми, но честными пользователями или с честным большинством онлайн-пользователей. Они выражают благодарность Algorand за то, что он поднял вопрос о массовом выходе честных пользователей из сети, а также за в ответ выдвигая модель ленивой честности. Их протокол работает не только для ленивых модель честности, но и в их состязательной сонной модели, где противник выбирает, каких пользователей находятся онлайн, а какие оффлайн, при условии, что большинство онлайн-пользователей всегда честны.2 2Первоначальная версия их статьи фактически рассматривала только безопасность в их состязательной сонной модели.
исходная версия Algorand, которая предшествует их версии, также явно предполагала, что определенное большинство онлайн-игроки всегда честны, но явно исключили это из рассмотрения в пользу модели ленивой честности. (Например, если в какой-то момент половина честных пользователей решит выйти из сети, то большинство пользователей on-line вполне может быть вредоносным. Таким образом, чтобы этого не произошло, Противник должен форсировать большую часть своих сил. испорченные игроки тоже выходят из игры, что явно противоречит его собственным интересам.) Обратите внимание, что протокол с большинством голосов ленивых, но честных игроков прекрасно работает, если большинство онлайн-пользователей всегда являются злонамеренными. Это так, потому что достаточное количество честных игроков, зная, что они будут иметь решающее значение в какой-то редкий момент времени, выберут не выходить из сети в эти моменты, и при этом Противник не может заставить их отключиться от сети, поскольку он не знает, кто решающими могут оказаться честные игроки.(6) Они требуют простого честного большинства. Напротив, текущая версия Algorand требует честное большинство в 2/3. Еще одна близкая нам статья — «Уроборос: доказуемо безопасный протокол блокчейна с доказательством доли», Киайяс, Рассел, Дэвид и Олейников [20]. И их система появилась после нашей. Это также использует криптографическую сортировку, чтобы обойтись без доказательства работы доказуемым образом. Однако их Система, опять же, представляет собой протокол в стиле Накамото, в котором разветвления неизбежны и часты. (Однако в их модели блоки не должны быть такими глубокими, как в модели сонного консенсуса.) Более того, их система опирается на следующие предположения: по словам самих авторов, «(1) сеть высокосинхронна, (2) большинство выбранных заинтересованных сторон доступны по мере необходимости участвовать в каждой эпохе, (3) заинтересованные стороны не остаются в автономном режиме в течение длительных периодов времени, (4) адаптивность коррупции подвержена небольшой задержке, которая измеряется в раундах, линейных по параметр безопасности». Напротив, Algorand с подавляющей вероятностью не имеет вилки и не опирается ни на одно из этих 4 предположений. В частности, в Algorand Противник имеет возможность мгновенно развратить пользователей, которых он хочет контролировать.
Giới thiệu
Tiền ngày càng trở nên ảo. Người ta ước tính rằng khoảng 80% dân số Hoa Kỳ đô la ngày nay chỉ tồn tại dưới dạng các mục sổ cái [5]. Các công cụ tài chính khác cũng theo sau. Trong một thế giới lý tưởng, trong đó chúng ta có thể tin tưởng vào một thực thể trung tâm được toàn thể tin cậy, miễn nhiễm. trước tất cả các cuộc tấn công mạng có thể xảy ra, tiền và các giao dịch tài chính khác có thể chỉ là điện tử. Thật không may, chúng ta không sống trong một thế giới như vậy. Theo đó, tiền điện tử phi tập trung, chẳng hạn như như Bitcoin [29] và các hệ thống “smart contract”, chẳng hạn như Ethereum, đã được đề xuất [4]. Tại trung tâm của các hệ thống này là một sổ cái chung ghi lại chuỗi giao dịch một cách đáng tin cậy, ∗Đây là phiên bản chính thức hơn (và không đồng bộ) của bài báo ArXiv của tác giả thứ hai [24], một bài báo dựa trên Gorbunov và Micali [18]. Công nghệ của Algorand là mục tiêu sau đây đơn xin cấp bằng sáng chế: US62/117.138 US62/120.916 US62/142.318 US62/218.817 US62/314.601 PCT/US2016/018300 US62/326.865 62/331.654 US62/333.340 US62/343.369 US62/344.667 US62/346.775 US62/351.011 US62/653.482 US62/352.195 US62/363.970 US62/369.447 US62/378.753 US62/383.299 US62/394.091 US62/400.361 US62/403.403 US62/410.721 US62/416.959 US62/422.883 US62/455.444 US62/458.746 US62/459.652 US62/460.928 US62/465.931đa dạng như các khoản thanh toán và hợp đồng, theo cách chống giả mạo. Công nghệ được lựa chọn để đảm bảo khả năng chống giả mạo như vậy là blockchain. Blockchains đằng sau các ứng dụng như tiền điện tử [29], ứng dụng tài chính [4] và Internet vạn vật [3]. Một số kỹ thuật để quản lý sổ cái dựa trên blockchain đã được đề xuất: bằng chứng công việc [29], bằng chứng cổ phần [2], khả năng chịu lỗi Byzantine thực tế [8] hoặc một số kết hợp. Tuy nhiên, hiện nay việc quản lý sổ cái có thể không hiệu quả. Ví dụ: proof-of-work của Bitcoin (dựa trên khái niệm ban đầu của [14]) đòi hỏi lượng tính toán khổng lồ, gây lãng phí và tỷ lệ kém [1]. Ngoài ra, trên thực tế, nó tập trung quyền lực vào rất ít tay. Do đó, chúng tôi mong muốn đưa ra một phương pháp mới để triển khai sổ cái công khai cung cấp sự thuận tiện và hiệu quả của một hệ thống tập trung được điều hành bởi một cơ quan đáng tin cậy và bất khả xâm phạm, không có sự thiếu hiệu quả và điểm yếu của việc triển khai phi tập trung hiện nay. Chúng tôi gọi cách tiếp cận của chúng tôi Algorand, vì chúng tôi sử dụng thuật toán ngẫu nhiên để chọn, dựa trên sổ cái được xây dựng cho đến nay, một tập hợp những người xác minh chịu trách nhiệm xây dựng khối giao dịch hợp lệ tiếp theo. Đương nhiên, chúng tôi đảm bảo rằng những lựa chọn như vậy chắc chắn không bị thao túng và không thể đoán trước được cho đến khi phút cuối cùng, nhưng cuối cùng thì chúng cũng rõ ràng trên toàn cầu. Cách tiếp cận của Algorand khá dân chủ, theo nghĩa là cả về nguyên tắc lẫn thực tế đều không tạo ra các lớp người dùng khác nhau (với tư cách là “thợ mỏ” và “người dùng thông thường” trong Bitcoin). Trong Algorand “tất cả quyền lực thuộc về tập hợp tất cả người dùng”. Một đặc tính đáng chú ý của Algorand là lịch sử giao dịch của nó chỉ có thể phân nhánh với rất ít xác suất (ví dụ: một phần nghìn tỷ, tức là hoặc thậm chí 10−18). Algorand cũng có thể giải quyết một số vấn đề pháp lý và những mối quan tâm chính trị. Cách tiếp cận Algorand áp dụng cho blockchains và tổng quát hơn cho bất kỳ phương pháp tạo nào một chuỗi các khối chống giả mạo. Chúng tôi thực sự đã đưa ra một phương pháp mới - thay thế và hiệu quả hơn blockchains— điều đó có thể được quan tâm độc lập. 1.1 Giả định của Bitcoin và các vấn đề kỹ thuật Bitcoin là một hệ thống rất khéo léo và đã truyền cảm hứng cho rất nhiều nghiên cứu tiếp theo. Tuy nhiên, nó cũng có vấn đề. Chúng ta hãy tóm tắt giả định cơ bản và các vấn đề kỹ thuật của nó - mà về cơ bản được chia sẻ bởi tất cả các loại tiền điện tử, như Bitcoin, đều dựa trên proof-of-work. Đối với bản tóm tắt này, cần nhớ lại rằng, trong Bitcoin, người dùng có thể sở hữu nhiều khóa chung của sơ đồ chữ ký số, số tiền đó được liên kết với khóa công khai và khoản thanh toán là một chữ ký số chuyển một số tiền từ khóa công khai này sang khóa công khai khác. Về cơ bản, Bitcoin sắp xếp tất cả các khoản thanh toán được xử lý theo chuỗi khối, B1, B2, . . ., mỗi cái bao gồm nhiều các khoản thanh toán, chẳng hạn như tất cả các khoản thanh toán B1, được thực hiện theo bất kỳ thứ tự nào, tiếp theo là các khoản thanh toán B2, theo bất kỳ thứ tự nào, v.v., tạo thành một chuỗi các khoản thanh toán hợp lệ. Trung bình mỗi khối được tạo ra cứ sau 10 phút. Chuỗi khối này là một chuỗi vì nó được cấu trúc để đảm bảo rằng bất kỳ thay đổi nào, thậm chí trong một khối duy nhất, thấm vào tất cả các khối tiếp theo, giúp dễ dàng phát hiện bất kỳ thay đổi nào của lịch sử thanh toán. (Như chúng ta sẽ thấy, điều này đạt được bằng cách đưa vào mỗi khối một mật mã hash của cái trước.) Cấu trúc khối như vậy được gọi là blockchain. Giả định: Phần lớn sức mạnh tính toán trung thực Bitcoin cho rằng không có độc hại thực thể (cũng không phải liên minh các thực thể độc hại phối hợp) kiểm soát phần lớn hoạt động tính toán sức mạnh dành cho việc tạo khối. Trên thực tế, một thực thể như vậy sẽ có thể sửa đổi blockchain,và do đó viết lại lịch sử thanh toán nếu muốn. Đặc biệt, nó có thể thực hiện thanh toán \(\wp\), nhận được những lợi ích được trả và sau đó “xóa” mọi dấu vết của \(\wp\). Vấn đề kỹ thuật 1: Chất thải tính toán Cách tiếp cận chặn proof-of-work của Bitcoin thế hệ đòi hỏi một lượng tính toán phi thường. Hiện nay chỉ với vài trăm Hàng nghìn khóa công khai trong hệ thống, top 500 siêu máy tính mạnh nhất chỉ có thể tập hợp được chỉ chiếm 12,8% tổng công suất tính toán được yêu cầu từ người chơi Bitcoin. Cái này lượng tính toán sẽ tăng lên đáng kể nếu có nhiều người dùng tham gia hệ thống hơn. Bài toán kỹ thuật 2: Tập trung quyền lực Ngày nay, do số lượng quá lớn cần tính toán, người dùng đang cố gắng tạo một khối mới bằng cách sử dụng máy tính để bàn thông thường (chưa nói đến một điện thoại di động), dự kiến sẽ mất tiền. Thật vậy, để tính toán một khối mới bằng một máy tính thông thường, chi phí dự kiến của lượng điện cần thiết để cung cấp năng lượng cho quá trình tính toán vượt quá phần thưởng dự kiến. Chỉ sử dụng nhóm máy tính được chế tạo đặc biệt (không làm gì khác ngoài việc “khai thác các khối mới”), một có thể mong đợi kiếm được lợi nhuận bằng cách tạo ra các khối mới. Theo đó, ngày nay trên thực tế có hai các lớp người dùng riêng biệt: người dùng thông thường, những người chỉ thực hiện thanh toán và các nhóm khai thác chuyên dụng, chỉ tìm kiếm các khối mới. Do đó, không có gì ngạc nhiên khi tính đến thời điểm hiện tại, tổng sức mạnh tính toán của khối thế hệ chỉ nằm trong năm nhóm. Trong những điều kiện như vậy, giả định rằng phần lớn sức mạnh tính toán trung thực sẽ trở nên kém tin cậy hơn. Vấn đề kỹ thuật 3: Sự mơ hồ Trong Bitcoin, blockchain không nhất thiết phải là duy nhất. Quả thực phần mới nhất của nó thường phân nhánh: blockchain có thể là —say— B1, . . . , Bk, B′ k+1, B′ k+2, theo một người dùng và B1, . . . , Bk, B′′ k+1, B′′ k+2, B′′ k+3 theo người dùng khác. Chỉ sau vài khối có được thêm vào chuỗi, liệu người ta có thể chắc chắn một cách hợp lý rằng k + 3 khối đầu tiên sẽ giống nhau không? cho tất cả người dùng. Vì vậy, người ta không thể dựa ngay vào các khoản thanh toán có trong khối cuối cùng của chuỗi. Sẽ khôn ngoan hơn nếu chờ xem liệu khối này có đủ sâu trong blockchain và do đó đủ ổn định. Riêng biệt, các mối lo ngại về thực thi pháp luật và chính sách tiền tệ cũng đã được nêu ra về Bitcoin.1 1.2 Algorand, Tóm tắt lại Cài đặt Algorand hoạt động trong môi trường rất khắc nghiệt. Tóm lại, (a) Môi trường không được phép và được phép. Algorand hoạt động hiệu quả và an toàn ngay cả trong một môi trường hoàn toàn không được phép, nơi nhiều người dùng được phép tham gia một cách tùy ý hệ thống bất kỳ lúc nào mà không cần kiểm tra hay cho phép dưới bất kỳ hình thức nào. Tất nhiên, Algorand hoạt động thậm chí còn tốt hơn trong môi trường được phép. 1Tính ẩn danh (giả) được cung cấp bởi các khoản thanh toán Bitcoin có thể bị lạm dụng để rửa tiền và/hoặc tài trợ của các cá nhân tội phạm hoặc các tổ chức khủng bố. Tiền giấy hoặc vàng miếng truyền thống, về nguyên tắc mang lại sự hoàn hảo tính ẩn danh, sẽ đặt ra thách thức tương tự, nhưng tính chất vật lý của các loại tiền tệ này làm chậm tiền một cách đáng kể. chuyển giao, để cho phép các cơ quan thực thi pháp luật giám sát ở một mức độ nào đó. Khả năng “in tiền” là một trong những quyền lực cơ bản của một quốc gia. Do đó, về nguyên tắc, khối lượng lớn việc áp dụng một đồng tiền thả nổi độc lập có thể hạn chế quyền lực này. Tuy nhiên, hiện tại, Bitcoin còn lâu mới trở thành hiện thực. một mối đe dọa đối với các chính sách tiền tệ của chính phủ, và do các vấn đề về khả năng mở rộng của nó, có thể không bao giờ có.(b) Môi trường rất bất lợi. Algorand chống lại một Kẻ thù rất mạnh, kẻ có thể (1) ngay lập tức làm hư hỏng bất kỳ người dùng nào anh ta muốn, vào bất kỳ lúc nào anh ta muốn, với điều kiện là, trong một môi trường không được phép, 2/3 số tiền trong hệ thống thuộc về người dùng trung thực. (Trong một môi trường được phép, bất kể tiền bạc, chỉ cần 2/3 số người dùng trung thực là đủ.) (2) hoàn toàn kiểm soát và phối hợp hoàn hảo tất cả những người dùng tham nhũng; và (3) lên lịch gửi tất cả tin nhắn, với điều kiện mỗi tin nhắn được gửi bởi người dùng trung thực tiếp cận 95% người dùng trung thực trong thời gian \(\lambda\)m, điều này chỉ phụ thuộc vào kích thước của m. Thuộc tính chính Bất chấp sự hiện diện của kẻ thù hùng mạnh của chúng ta, trong Algorand • Khối lượng tính toán cần thiết là tối thiểu. Về cơ bản, bất kể có bao nhiêu người dùng có trong hệ thống, mỗi người trong số 1500 người dùng phải thực hiện tối đa vài giây tính toán. • Khối mới được tạo trong vòng chưa đầy 10 phút và trên thực tế sẽ không bao giờ rời khỏi blockchain. Ví dụ, theo kỳ vọng, thời gian để tạo khối theo phương án đầu tiên sẽ ít hơn hơn Λ + 12,4\(\lambda\), trong đó Λ là thời gian cần thiết để truyền một khối, trong tin đồn ngang hàng thời trang, bất kể kích thước khối nào người ta có thể chọn và \(\lambda\) là thời gian để truyền 1.500 thông điệp 200Blong. (Vì trong một hệ thống phi tập trung thực sự, Λ về cơ bản là độ trễ nội tại, trong Algorand yếu tố hạn chế trong việc tạo khối là tốc độ mạng.) Phương án thứ hai có thực sự đã được thử nghiệm bằng thực nghiệm ( bởi ?), cho thấy rằng một khối được tạo ra trong vòng chưa đầy 40 giây. Ngoài ra, blockchain của Algorand chỉ có thể phân nhánh với xác suất không đáng kể (tức là ít hơn một trong một nghìn tỷ), và do đó người dùng có thể chuyển tiếp các khoản thanh toán có trong một khối mới ngay khi khối xuất hiện. • Mọi quyền lực đều thuộc về chính người sử dụng. Algorand là hệ thống truy cập phân tán. Đặc biệt, không có thực thể ngoại sinh nào (như “thợ mỏ” trong Bitcoin), có thể kiểm soát giao dịch nào được công nhận. Kỹ thuật của Algorand. 1. Nghị định thư Thỏa thuận Byzantine mới và nhanh chóng. Algorand tạo khối mới thông qua một giao thức thỏa thuận Byzantine (BA) nhị phân, truyền tin nhắn, mật mã mới, BA⋆. Giao thức BA⋆không chỉ đáp ứng một số tính chất bổ sung (mà chúng ta sẽ sớm thảo luận) mà còn rất nhanh. Nói một cách đại khái, phiên bản đầu vào nhị phân của nó bao gồm một vòng lặp 3 bước, trong đó người chơi sẽ gửi một nhắn tin cho tất cả người chơi khác. Được thực hiện trong một mạng hoàn chỉnh và đồng bộ, với nhiều hơn 2/3 số người chơi trung thực, với xác suất > 1/3, sau mỗi vòng lặp, giao thức kết thúc bằng thỏa thuận. (Chúng tôi nhấn mạnh rằng giao thức BA⋆thỏa mãn định nghĩa ban đầu của thỏa thuận Byzantine của Pease, Shostak và Lamport [31] mà không có bất kỳ sự suy yếu nào.) Algorand tận dụng giao thức BA nhị phân này để đạt được thỏa thuận trong các giao tiếp khác nhau của chúng ta mô hình, trên mỗi khối mới. Khối đã thỏa thuận sau đó được chứng nhận, thông qua một số lượng quy định chữ ký số của người xác minh thích hợp và được truyền bá qua mạng. 2. Sắp xếp bằng mật mã. Mặc dù rất nhanh nhưng giao thức BA⋆ sẽ được hưởng lợi nhiều hơn tốc độ khi được chơi bởi hàng triệu người dùng. Theo đó, Algorand chọn người chơi của BA⋆ làmmột tập hợp con nhỏ hơn nhiều của tập hợp tất cả người dùng. Để tránh một hình thức tập trung quyền lực khác vấn đề, mỗi khối Br mới sẽ được xây dựng và thống nhất, thông qua việc thực thi BA⋆ mới, bởi một bộ xác minh được chọn riêng biệt, SV r. Về nguyên tắc, việc chọn một bộ như vậy có thể khó như chọn Br trực tiếp. Chúng tôi giải quyết vấn đề tiềm ẩn này bằng cách tiếp cận mà chúng tôi gọi là, bao gồm gợi ý sâu sắc của Maurice Herlihy, phân loại bằng mật mã. Sắp xếp là việc thực hành lựa chọn các quan chức một cách ngẫu nhiên từ một nhóm lớn các cá nhân đủ điều kiện [6]. (Đã thực hành phân loại qua nhiều thế kỷ: ví dụ, bởi các nước cộng hòa Athens, Florence và Venice. Trong tư pháp hiện đại hệ thống, lựa chọn ngẫu nhiên thường được sử dụng để chọn bồi thẩm đoàn. Lấy mẫu ngẫu nhiên cũng đã được thực hiện gần đây được ủng hộ cho các cuộc bầu cử bởi David Chaum [9].) Tất nhiên, trong một hệ thống phi tập trung, việc chọn các đồng tiền ngẫu nhiên cần thiết để chọn ngẫu nhiên các thành viên của mỗi bộ xác minh SV r là vấn đề. Do đó, chúng tôi sử dụng mật mã để chọn từng bộ xác minh, từ tập hợp tất cả người dùng, theo cách được đảm bảo là tự động (tức là không yêu cầu trao đổi tin nhắn) và ngẫu nhiên. Về bản chất, chúng tôi sử dụng chức năng mật mã để tự động xác định, từ khối trước đó Br−1, người dùng, người lãnh đạo, chịu trách nhiệm đề xuất khối Br mới và bộ xác minh SV r, trong phí để thống nhất khối do người đứng đầu đề xuất. Vì người dùng độc hại có thể ảnh hưởng thành phần của Br−1 (ví dụ: bằng cách chọn một số khoản thanh toán của nó), chúng tôi đặc biệt xây dựng và sử dụng đầu vào bổ sung để chứng minh rằng khối dẫn đầu cho khối thứ r và bộ xác minh SV r thực sự là được chọn ngẫu nhiên. 3. Số lượng (Hạt giống) Qr. Chúng tôi sử dụng khối Br−1 cuối cùng trong blockchain để tự động xác định bộ xác minh tiếp theo và người lãnh đạo phụ trách xây dựng khối mới Anh. Thách thức với cách tiếp cận này là chỉ cần chọn một khoản thanh toán hơi khác một chút trong vòng trước, Đối thủ hùng mạnh của chúng ta giành được quyền kiểm soát to lớn đối với kẻ dẫn đầu tiếp theo. Kể cả nếu anh ấy chỉ kiểm soát 1/1000 người chơi/tiền trong hệ thống, anh ta có thể đảm bảo rằng tất cả các nhà lãnh đạo đều độc hại. (Xem Phần Trực giác 4.1.) Thử thách này là trọng tâm của tất cả các cách tiếp cận proof-of-stake, và theo hiểu biết tốt nhất của chúng tôi, cho đến nay, vấn đề này vẫn chưa được giải quyết thỏa đáng. Để đáp ứng thách thức này, chúng tôi cố tình xây dựng và liên tục cập nhật một hệ thống riêng biệt và cẩn thận. đại lượng xác định, Qr, được chứng minh là không những không thể đoán trước mà còn không bị ảnh hưởng bởi chúng ta Đối thủ mạnh mẽ. Chúng ta có thể coi Qr là hạt giống thứ r, vì chính từ Qr mà Algorand chọn, thông qua phân loại mật mã bí mật, tất cả người dùng sẽ đóng một vai trò đặc biệt trong việc tạo ra khối thứ r. 4. Phân loại mật mã bí mật và thông tin xác thực bí mật. Sử dụng ngẫu nhiên và rõ ràng khối cuối cùng hiện tại, Br-1, để chọn bộ xác minh và người lãnh đạo phụ trách việc xây dựng khối mới, Br, là chưa đủ. Vì Br−1 phải được biết trước khi tạo Br, đại lượng không ảnh hưởng cuối cùng Qr−1 chứa trong Br−1 cũng phải được biết. Theo đó, vì vậy là người xác minh và là người đứng đầu phụ trách tính toán khối Br. Vì vậy, Kẻ thù hùng mạnh của chúng ta có thể ngay lập tức làm hỏng tất cả chúng, trước khi họ tham gia vào bất kỳ cuộc thảo luận nào về Br, để có được toàn quyền kiểm soát khối mà họ chứng nhận. Để ngăn chặn vấn đề này, các nhà lãnh đạo (và thực tế là cả những người kiểm tra) bí mật tìm hiểu về vai trò của họ, nhưng có thể tính toán thông tin xác thực phù hợp, có khả năng chứng minh cho mọi người thấy rằng thực sự có vai trò đó. Khi nào một người dùng nhận ra một cách riêng tư rằng anh ta là người lãnh đạo khối tiếp theo, đầu tiên anh ta bí mật tập hợp khối mới được đề xuất của riêng mình, và sau đó phổ biến nó (để có thể được chứng nhận) cùng với khối của riêng mình thông tin xác thực. Bằng cách này, mặc dù Kẻ thù sẽ ngay lập tức nhận ra ai là người lãnh đạo tiếp theo chặn, và mặc dù anh ta có thể làm hỏng anh ta ngay lập tức, nhưng sẽ quá muộn để Kẻ thù có thể ảnh hưởng đến việc lựa chọn khối mới. Quả thực, anh không thể “gọi lại” lời nhắn của lãnh đạo nữahơn mức mà một chính phủ hùng mạnh có thể nhét lại vào trong chai một thông điệp được WikiLeaks lan truyền rộng rãi. Như chúng ta sẽ thấy, chúng ta không thể đảm bảo tính duy nhất của người lãnh đạo cũng như việc mọi người đều chắc chắn ai là người lãnh đạo. là, kể cả chính người lãnh đạo! Tuy nhiên, trong Algorand, tiến trình rõ ràng sẽ được đảm bảo. 5. Khả năng thay thế người chơi. Sau khi đề xuất một khối mới, người lãnh đạo cũng có thể “chết” (hoặc bị bị Kẻ thù làm hỏng), bởi vì công việc của anh ta đã hoàn thành. Tuy nhiên, đối với những người xác minh trong SV r, mọi thứ lại ít hơn đơn giản. Thật vậy, chịu trách nhiệm chứng nhận khối Br mới có đủ chữ ký, trước tiên họ phải thực hiện thỏa thuận Byzantine về khối do người lãnh đạo đề xuất. Vấn đề là ở chỗ, dù có hiệu quả đến đâu thì BA⋆ cũng yêu cầu nhiều bước và sự trung thực của > 2/3 số người chơi. Đây là một vấn đề, bởi vì, vì lý do hiệu quả, tập người chơi của BA⋆ chứa tập nhỏ SV r được chọn ngẫu nhiên trong tập hợp tất cả người dùng. Vì vậy, Kẻ thù hùng mạnh của chúng ta, mặc dù không thể làm hỏng 1/3 số người dùng, chắc chắn có thể làm hỏng tất cả thành viên của SV r! May mắn thay, chúng tôi sẽ chứng minh rằng giao thức BA⋆, được thực thi bằng cách truyền các thông báo theo kiểu ngang hàng, có thể thay thế được người chơi. Yêu cầu mới này có nghĩa là giao thức chính xác và đạt được sự đồng thuận một cách hiệu quả ngay cả khi mỗi bước của nó được thực hiện bởi một quy trình hoàn toàn mới và ngẫu nhiên và một tập hợp người chơi được lựa chọn độc lập. Do đó, với hàng triệu người dùng, mỗi nhóm nhỏ người chơi được liên kết với một bước của BA⋆có thể có phần giao trống với tập tiếp theo. Ngoài ra, các nhóm người chơi ở các bước BA⋆ khác nhau có thể sẽ có những cách chơi hoàn toàn khác nhau. hồng y. Hơn nữa, các thành viên của mỗi nhóm không biết nhóm người chơi tiếp theo sẽ là ai. được, và không bí mật vượt qua bất kỳ trạng thái nội bộ nào. Thuộc tính người chơi có thể thay thế thực sự rất quan trọng để đánh bại kẻ năng động và rất mạnh mẽ. Đối thủ mà chúng tôi dự tính. Chúng tôi tin rằng các giao thức trình phát có thể thay thế sẽ tỏ ra quan trọng trong nhiều bối cảnh và ứng dụng. Đặc biệt, chúng sẽ rất quan trọng để thực thi các giao thức con nhỏ một cách an toàn được nhúng trong một vũ trụ rộng lớn hơn gồm những người chơi với một kẻ thù năng động, kẻ có thể làm hỏng ngay cả một phần nhỏ trong tổng số người chơi, không khó khăn gì trong việc làm hư hỏng tất cả những người chơi trong những người chơi nhỏ hơn giao thức phụ. Một thuộc tính/kỹ thuật bổ sung: Sự trung thực lười biếng Một người dùng trung thực làm theo quy định của mình hướng dẫn, bao gồm cả việc trực tuyến và chạy giao thức. Vì Algorand chỉ có mức khiêm tốn yêu cầu tính toán và truyền thông, trực tuyến và chạy giao thức “trong nền” không phải là một sự hy sinh lớn lao. Tất nhiên, có một vài “sự vắng mặt” trong số những người chơi trung thực, như những do mất kết nối đột ngột hoặc cần khởi động lại, sẽ tự động được chấp nhận (vì chúng tôi luôn có thể coi số ít người chơi như vậy là có ác ý tạm thời). Tuy nhiên, chúng ta hãy chỉ ra Algorand đó có thể được điều chỉnh một cách đơn giản để hoạt động trong một mô hình mới, trong đó những người dùng trung thực sẽ trở thành hầu hết thời gian ngoại tuyến. Mô hình mới của chúng tôi có thể được giới thiệu một cách không chính thức như sau. Sự trung thực lười biếng. Nói một cách đại khái, một người dùng i lười biếng nhưng trung thực nếu (1) anh ta tuân theo mọi quy định của mình hướng dẫn, khi anh ta được yêu cầu tham gia vào giao thức, và (2) anh ta được yêu cầu tham gia hiếm khi tham gia vào giao thức và có thông báo trước phù hợp. Với quan niệm thoải mái như vậy về tính trung thực, chúng ta có thể càng tin tưởng hơn rằng những người trung thực sẽ sẵn sàng khi chúng tôi cần và Algorand đảm bảo rằng, trong trường hợp này, Hệ thống hoạt động an toàn ngay cả khi tại một thời điểm nhất định, phần lớn những người chơi tham gia đều có ác ý.1.3 Công việc liên quan chặt chẽ Các phương pháp tiếp cận bằng chứng công việc (như [29] và [4] được trích dẫn) khá trực quan với phương pháp của chúng tôi. Các các phương pháp tiếp cận dựa trên thỏa thuận Byzantine truyền thông điệp hoặc khả năng chịu lỗi Byzantine thực tế (như [8] được trích dẫn). Thật vậy, các giao thức này không thể chạy giữa một tập hợp tất cả người dùng và không thể, trong mô hình của chúng tôi, được giới hạn ở một nhóm người dùng nhỏ phù hợp. Trên thực tế, kẻ thù hùng mạnh của chúng ta ngay lập tức làm hỏng tất cả người dùng có liên quan đến một nhóm nhỏ bị buộc tội thực sự chạy giao thức BA. Cách tiếp cận của chúng tôi có thể được coi là có liên quan đến bằng chứng cổ phần [2], theo nghĩa là “quyền lực” của người dùng trong việc xây dựng khối tỷ lệ thuận với số tiền họ sở hữu trong hệ thống (ngược lại với —say— với số tiền họ đã bỏ vào “ký quỹ”). Bài báo gần nhất với chúng tôi là Mô hình đồng thuận buồn ngủ của Pass và Shi [30]. Để tránh yêu cầu tính toán nặng nề trong cách tiếp cận proof-of-work, bài viết của họ dựa vào (và vui lòng phần ghi công) Phân loại mật mã bí mật của Algorand. Với điểm chung quan trọng này, một số sự khác biệt đáng kể tồn tại giữa các bài báo của chúng tôi. Đặc biệt, (1) Cài đặt của họ chỉ được cho phép. Ngược lại, Algorand cũng là một hệ thống không được phép. (2) Họ sử dụng giao thức kiểu Nakamoto và do đó thường xuyên phân tách blockchain của họ. Mặc dù phân phối proof-of-work, trong giao thức của họ, một nhà lãnh đạo được lựa chọn bí mật sẽ được yêu cầu kéo dài thời gian hợp lệ lâu nhất (theo nghĩa phong phú hơn) blockchain. Vì vậy, việc fork là điều không thể tránh khỏi và người ta phải chờ đợi điều đó. khối này đủ “sâu” trong chuỗi. Quả thực, để đạt được mục tiêu của mình trước một đối thủ có khả năng sửa đổi thích ứng, chúng yêu cầu một khối có độ sâu poly(N), trong đó N đại diện cho tổng số người dùng trong hệ thống. Lưu ý rằng, ngay cả khi giả sử rằng một khối có thể được tạo ra trong một phút, nếu có N = 1 triệu người dùng thì người ta sẽ phải đợi khoảng 2 triệu năm để một khối có độ sâu N là 2 và trong khoảng 2 năm để một khối có độ sâu N. Ngược lại, Algorand của blockchain chỉ phân nhánh với xác suất không đáng kể, ngay cả khi Đối thủ tham nhũng người dùng ngay lập tức và thích ứng, đồng thời có thể tin cậy ngay vào các khối mới của nó. (3) Họ không xử lý các thỏa thuận Byzantine riêng lẻ. Theo một nghĩa nào đó, họ chỉ đảm bảo “sự đồng thuận cuối cùng về một chuỗi giá trị ngày càng tăng”. Của họ là một giao thức sao chép trạng thái, đúng hơn là hơn BA và không thể được sử dụng để đạt được thỏa thuận Byzantine về giá trị lợi ích riêng lẻ. Ngược lại, Algorand cũng chỉ có thể được sử dụng một lần, nếu muốn, để cho phép hàng triệu người dùng nhanh chóng đạt được thỏa thuận Byzantine về một giá trị quan tâm cụ thể. (4) Chúng yêu cầu đồng hồ được đồng bộ hóa yếu. Tức là đồng hồ của tất cả người dùng đều bị lệch một khoảng thời gian nhỏ δ. Ngược lại, trong Algorand, đồng hồ chỉ cần có (về cơ bản) cùng một “tốc độ”. (5) Giao thức của họ hoạt động với những người dùng lười biếng nhưng trung thực hoặc với phần lớn người dùng trực tuyến trung thực. Họ vui lòng ghi nhận Algorand vì đã nêu lên vấn đề người dùng trung thực ngoại tuyến hàng loạt và vì đưa ra mô hình trung thực lười biếng để đáp lại. Giao thức của họ không chỉ hoạt động ở chế độ lười biếng mô hình trung thực mà còn trong mô hình buồn ngủ đối nghịch của họ, nơi đối thủ chọn người dùng nào trực tuyến và ngoại tuyến, miễn là phần lớn người dùng trực tuyến luôn trung thực.2 2 Phiên bản gốc của bài báo của họ thực ra chỉ coi tính bảo mật trong mô hình đối lập buồn ngủ của họ. các phiên bản gốc của Algorand, trước phiên bản của họ, cũng được dự tính rõ ràng với giả định rằng phần lớn nhất định của Người chơi trực tuyến luôn trung thực, nhưng rõ ràng đã loại trừ nó khỏi việc xem xét, ủng hộ mô hình trung thực lười biếng. (Ví dụ: nếu tại một thời điểm nào đó, một nửa số người dùng trung thực chọn chuyển sang chế độ ngoại tuyến thì phần lớn người dùng sẽ trực tuyến rất có thể độc hại. Vì vậy, để ngăn chặn điều này xảy ra, Kẻ thù phải ép buộc phần lớn lực lượng của mình những người chơi bị mua chuộc cũng chuyển sang ngoại tuyến, điều này rõ ràng là đi ngược lại lợi ích của chính anh ta.) Lưu ý rằng một giao thức có đa số của những người chơi lười biếng nhưng trung thực chỉ hoạt động tốt nếu phần lớn người dùng trực tuyến luôn có ác ý. Điều này là như vậy, bởi vì một số lượng vừa đủ những người chơi trung thực, biết rằng họ sẽ đóng vai trò quan trọng vào một thời điểm hiếm hoi nào đó, sẽ bầu không được ngoại tuyến trong những thời điểm đó và họ cũng không thể bị Kẻ thù buộc phải ngoại tuyến, vì hắn không biết ai là người những người chơi trung thực quan trọng có thể là.(6) Họ yêu cầu đa số trung thực đơn giản. Ngược lại, phiên bản hiện tại của Algorand yêu cầu đa số trung thực là 2/3. Một bài báo khác gần gũi với chúng tôi là Ouroboros: Giao thức chuỗi khối bằng chứng cổ phần được chứng minh là an toàn, của Kiayias, Russell, David và Oliynykov [20]. Hệ thống của họ cũng xuất hiện sau hệ thống của chúng tôi. Nó cũng sử dụng phương pháp phân loại bằng phương pháp mật mã để loại bỏ bằng chứng công việc theo cách có thể chứng minh được. Tuy nhiên, họ một lần nữa, hệ thống là một giao thức kiểu Nakamoto, trong đó việc phân nhánh là không thể tránh khỏi và thường xuyên. (Tuy nhiên, trong mô hình của họ, các khối không cần sâu như mô hình đồng thuận buồn ngủ.) Hơn nữa, hệ thống của họ dựa trên các giả định sau: theo lời của chính các tác giả, “(1) mạng có tính đồng bộ cao, (2) phần lớn các bên liên quan được lựa chọn luôn sẵn sàng khi cần thiết để tham gia vào từng kỷ nguyên, (3) các bên liên quan không ngoại tuyến trong thời gian dài, (4) khả năng thích ứng của tham nhũng phải chịu một độ trễ nhỏ được đo bằng vòng tuyến tính theo tham số bảo mật.” Ngược lại, Algorand, với xác suất áp đảo, không phân nhánh và không dựa vào bất kỳ giả định nào trong số 4 giả định này. Đặc biệt, trong Algorand, Kẻ thù có thể ngay lập tức làm hỏng những người dùng mà anh ta muốn kiểm soát.
Предварительные сведения
2.1 Криптографические примитивы Идеальное хеширование. Мы будем полагаться на эффективно вычислимую криптографическую hash функцию H, которая отображает строки произвольной длины в двоичные строки фиксированной длины. Следуя давней традиции, мы моделируем H как случайное oracle, по существу функция, отображающая каждую возможную строку s в случайную и независимо выбранная (а затем фиксированная) двоичная строка H(s) выбранной длины. В этой статье H имеет выходные данные длиной 256 бит. Действительно, такая длина достаточно коротка, чтобы сделать эффективность системы и достаточно длительный срок, чтобы сделать систему безопасной. Например, мы хотим, чтобы H был устойчив к столкновениям. То есть должно быть сложно найти две разные строки x и y такие, что H(x) = H(y). Когда H представляет собой случайное число oracle с выходными данными длиной 256 бит, найти любую такую пару строк действительно сложно. сложно. (Для случайной попытки и использования парадокса дня рождения потребуется 2256/2 = 2128. испытания.) Цифровая подпись. Цифровые подписи позволяют пользователям удостоверять подлинность информации друг друга. не разглашая никаких секретных ключей. Схема цифровой подписи состоит из трех быстрых Алгоритмы: вероятностный генератор ключей G, алгоритм подписи S и алгоритм проверки V. Учитывая параметр безопасности k, достаточно большое целое число, пользователь i использует G для создания пары k-битные ключи (т. е. строки): «открытый» ключ pki и соответствующий «секретный» ключ подписи Ski. Крайне важно, открытый ключ не «выдает» соответствующий секретный ключ. То есть, даже учитывая знание pki, нет еще один человек, кроме меня, способен рассчитать лыжи менее чем за астрономическое время. Пользователь i использует лыжи для цифровой подписи сообщений. Для каждого возможного сообщения (двоичной строки) m я сначала hashes m, а затем запускает алгоритм S на входах H(m) и на лыжах, чтобы создать k-битную строку sigpki(м) \(\triangleq\)S(H(м), лыжи) .3 3Поскольку H устойчив к коллизиям, практически невозможно, чтобы, подписав m, кто-то «случайно подписал» другой сообщение м'.Двоичная строка sigpki(m) называется цифровой подписью i m (относительно pki) и может быть проще обозначается sigi(m), когда открытый ключ pki ясен из контекста. Каждый, кто знает pki, может использовать его для проверки цифровых подписей, созданных i. В частности, на вводит (a) открытый ключ pki игрока i, (b) сообщение m и (c) строку s, то есть предполагаемый i цифровую подпись сообщения m, алгоритм проверки V выдает либо ДА, либо НЕТ. Свойства, которые нам необходимы от схемы цифровой подписи: 1. Легитимность подписей всегда проверяется: если s = sigi(m), то V (pki, m, s) = Y ES; и 2. Цифровые подписи сложно подделать: без знания лыж время найти такую строку что V (pki, m, s) = Y ES для сообщения m, никогда не подписанного i, является астрономически длинным. (Следуя строгим требованиям безопасности Голдвассера, Микали и Ривеста [17], это правда. даже если можно получить подпись любого другого сообщения.) Соответственно, чтобы никто другой не мог подписывать сообщения от его имени, игрок i должен сохранить подписывание секретного ключа (отсюда и термин «секретный ключ») и предоставление возможности любому человеку проверять сообщения. он подписывает, и я заинтересован в обнародовании его ключа PKI (отсюда и термин «открытый ключ»). В общем, сообщение m невозможно получить по его сигнатуре sigi(m). Чтобы виртуально разобраться с цифровыми подписями, которые удовлетворяют концептуально удобному свойству «извлекаемости» (т.е. гарантировать, что подписывающее лицо и сообщение легко вычислимы по подписи, мы определяем SIGpki(m) = (i, m, sigpki(m)) и SIGi(m) = (i, m, sigi(m)), если pki ясен. Уникальная цифровая подпись. Мы также рассматриваем схемы цифровой подписи (G, S, V), удовлетворяющие следующее дополнительное имущество. 3. Уникальность. Трудно найти строки pk', m, s и s' такие, что s ̸= s′ и V (pk′,m,s) = V (pk′,m,s′) = 1. (Обратите внимание, что свойство уникальности справедливо и для строк pk', которые не были сгенерированы законным образом. открытые ключи. Однако, в частности, свойство уникальности подразумевает, что если использовать указанный генератор ключей G для вычисления открытого ключа pk вместе с соответствующим секретным ключом sk, и, таким образом, зная sk, для него было бы практически невозможно найти два разных цифровых подписи одного и того же сообщения относительно pk.) Примечания • От уникальных подписей до проверяемых случайных функций. По отношению к цифровому схеме подписи со свойством единственности отображение m \(\to\) H(sigi(m)) соответствует каждая возможная строка m, уникальная, случайно выбранная 256-битная строка, и правильность этого отображение можно доказать с помощью сигнатуры sigi(m). То есть идеальная hashing и схема цифровой подписи, по существу удовлетворяющая свойству уникальности. обеспечить элементарную реализацию проверяемой случайной функции, как это было введено и Микали, Рабин и Вадхан [27]. (Их первоначальная реализация была обязательно более сложной, поскольку они не полагались на идеальное hashing.)• Три различных потребности в цифровых подписях. В Algorand пользователь i полагается на цифровые подписи для (1) Аутентификация собственных платежей. В этом приложении ключи могут быть «долгосрочными» (т.е. использоваться для подписывать множество сообщений в течение длительного периода времени) и исходят из обычной схемы подписи. (2) Генерация учетных данных, доказывающих, что i имеет право действовать на каком-то этапе s раунда r. Здесь, ключи могут быть долгосрочными, но должны исходить из схемы, удовлетворяющей свойству уникальности. (3) Аутентификация сообщения, которое я отправляю на каждом этапе своих действий. Здесь ключи должны быть эфемерны (т. е. уничтожаются после первого использования), но могут исходить из обычной схемы подписи. • Небольшое упрощение. Для простоты мы предполагаем, что у каждого пользователя i будет один долгосрочный ключ. Соответственно, такой ключ должен исходить из схемы подписи с уникальностью собственность. Такая простота требует небольших вычислительных затрат. Обычно, по сути, уникальные цифровые Изготовление и проверка подписей немного дороже, чем обычные подписи. 2.2 Идеализированный публичный реестр Algorand пытается имитировать следующую платежную систему, основанную на идеализированном публичном реестре. 1. Исходное состояние. Деньги связаны с отдельными открытыми ключами (генерируемыми частным образом и принадлежат пользователям). Сдача pk1, . . . , pkj — начальные открытые ключи и a1, . . . , адж их соответствующие начальные суммы денежных единиц, то начальный статус S0 = (pk1, a1), . . . , (pkj, aj) , которая считается общеизвестной в системе. 2. Платежи. Пусть pk — открытый ключ, имеющий в данный момент \(\geq\)0 денежных единиц, pk’ — другой открытый ключ. ключ и a' - неотрицательное число, не превышающее a. Тогда (действительный) платеж \(\wp\) является цифровым подпись относительно pk, определяющая перевод a' денежных единиц из pk в pk' вместе с некоторой дополнительной информацией. В символах, \(\wp\)= SIGpk(pk, pk′, a′, I, H(I)), где я представляю любую дополнительную информацию, которая считается полезной, но не конфиденциальной (например, время информацию и идентификатор платежа), а также любую дополнительную информацию, которая считается конфиденциальной (например, причина платежа, возможно, личности владельцев ПК и ПК' и так далее). Мы называем pk (или его владельца) плательщиком, каждого pk' (или его владельца) - получателем платежа, а a' - сумма платежа \(\wp\). Бесплатное присоединение через платежи. Обратите внимание, что пользователи могут присоединиться к системе, когда захотят. генерация собственных пар открытого/секретного ключей. Соответственно, открытый ключ pk', который появляется в платеж \(\wp\)выше может быть недавно сгенерированным открытым ключом, который никогда не «владел» деньгами раньше. 3. Волшебная книга. В идеализированной системе все платежи действительны и отображаются в защищенном от несанкционированного доступа виде. список L наборов платежей, «размещенных на небе» на всеобщее обозрение: L = ПЛАТИТЕ 1, ПЛАТИТЕ 2, . . . ,Каждый блок PAY r+1 состоит из совокупности всех платежей, совершенных с момента появления блока ПЛАТИТЬ р. В идеальной системе новый блок появляется через фиксированное (или конечное) время. Обсуждение. • Больше общих платежей и неизрасходованных выходных транзакций. В более общем смысле, если открытый ключ pk владеет суммой a, то действительный платеж \(\wp\)pk может перевести суммы a' 1, а' 2, . . ., соответственно клавишам pk' 1, пк' 2, . . ., пока P джа' j \(\leq\)а. В Bitcoin и подобных системах деньги, принадлежащие ПК с открытым ключом, разделены на отдельные суммы, и платеж \(\wp\), произведенный pk, должен передать такую отдельную сумму a полностью. Если pk хочет передать на другой ключ только часть a' < a, то он должен также передать баланс, неизрасходованный вывод транзакции, на другой ключ, возможно, на сам ПК. Algorand также работает с ключами, имеющими отдельные суммы. Однако для того, чтобы сосредоточиться на новые аспекты Algorand, концептуально проще придерживаться наших более простых форм платежей и ключи, имеющие одну связанную с ними сумму. • Текущий статус. Идеализированная схема не предоставляет напрямую информацию о текущем состоянии. статус системы (т. е. сколько денежных единиц имеет каждый открытый ключ). Эта информация выводится из Magic Ledger. В идеальной системе активный пользователь постоянно сохраняет и обновляет самую свежую информацию о состоянии. иначе ему пришлось бы восстанавливать его либо с нуля, либо с того момента, когда он в последний раз вычислил это. (В следующей версии этой статьи мы дополним Algorand, чтобы сделать его пользователи могут эффективно восстановить текущий статус.) • Безопасность и «Конфиденциальность». Цифровые подписи гарантируют, что никто не сможет подделать платеж другой пользователь. При платеже \(\wp\) открытые ключи и сумма не скрыты, а конфиденциальные информация я есть. Действительно, в \(\wp\) появляется только H(I), и поскольку H — идеальная hash функция, H(I) — это случайное 256-битное значение, и поэтому нет способа выяснить, в чем я был лучше, чем с помощью просто догадываюсь об этом. Тем не менее, чтобы доказать, кем я был (например, доказать причину выплаты), плательщик может просто раскрыть I. Правильность раскрытого I можно проверить, вычислив H(I) и сравниваем полученное значение с последним элементом \(\wp\). Фактически, поскольку H устойчив к столкновениям, трудно найти второе значение I′ такое, что H(I) = H(I′). 2.3 Основные понятия и обозначения Ключи, пользователи и владельцы Если не указано иное, каждый открытый ключ («ключ» для краткости) является долгосрочным и относится к схеме цифровой подписи со свойством уникальности. Открытый ключ, к которому я присоединяюсь системе, когда другой открытый ключ j, уже находящийся в системе, производит платеж i. Для цвета мы персонифицируем ключи. Мы называем ключ i «он», говорим, что я честен, что я посылаю и получает сообщения и т. д. Пользователь — синоним ключа. Когда мы хотим отличить ключ от лицу, которому он принадлежит, мы соответственно используем термины «цифровой ключ» и «владелец». Безразрешительные и разрешенные системы. Система является недоступной, если цифровой ключ свободен. присоединиться в любое время, и владелец может владеть несколькими цифровыми ключами; и это разрешено, в противном случае.Уникальное представление Каждый объект в Algorand имеет уникальное представление. В частности, каждое множество {(x, y, z, . . .) : x \(\in\)X, y \(\in\)Y, z \(\in\)Z, . . .} упорядочивается заранее заданным образом: например, сначала лексикографически по x, затем по y и т. д. Односкоростные часы Глобальных часов нет: у каждого пользователя свои часы. Пользовательские часы ни в коем случае не нужно синхронизировать. Однако мы предполагаем, что все они имеют одинаковую скорость. Например, если по часам пользователя i сейчас 12:00, по часам пользователя i это может быть 14:30. часы другого пользователя j, но когда по часам i будет 12:01, по часам i будет 2:31 на часы Джей. То есть «одна минута одинакова (достаточно, по сути одинакова) для каждого пользователя». Раунды Algorand организован в логических единицах, r = 0, 1, . . ., называемые раундами. Мы постоянно используем верхние индексы для обозначения раундов. Чтобы указать, что нечисловая величина Q (например, строка, открытый ключ, набор, цифровая подпись и т. д.) относится к раунду r, мы просто пишем Qr. Только когда Q является настоящим числом (в отличие от двоичной строки, интерпретируемой как число), выполните мы пишем Q(r), так что символ r нельзя интерпретировать как показатель степени Q. В (начале a) раунда r > 0 набор всех открытых ключей равен PKr, а состояние системы равно Ср = н я, а(р) я, . . . : я €PKro , где а(г) я это сумма денег, доступная для открытого ключа i. Заметим, что PKr выводится из Sr, и что Sr может также указывать другие компоненты для каждого открытого ключа i. Для раунда 0 PK0 — это набор начальных открытых ключей, а S0 — начальный статус. И ПК0, и Предполагается, что S0 являются общеизвестными в системе. Для простоты в начале раунда r, так что ПК1, . . . , ПКр и S1, . . . , сэр. В раунде r статус системы меняется с Sr на Sr+1: символически, Раунд r: Sr −→Sr+1. Платежи В Algorand пользователи постоянно совершают платежи (и распространяют их описано в подразделе 2.7). Платеж \(\wp\) пользователя i \(\in\)PKr имеет тот же формат и семантику. как в идеальной системе. А именно, \(\wp\)= SIGi(i, i′, a, I, H(I)) . Платеж \(\wp\) индивидуально действителен в раунде r (для краткости это платеж в раунде r), если (1) его сумма a меньше или равно a(r) i , и (2) он не появляется ни в одном официальном наборе выплат PAY r' для r' < r. (Как поясняется ниже, второе условие означает, что \(\wp\) еще не вступило в силу. Набор раундов r платежей i является коллективно действительным, если сумма их сумм не превышает a(r) я. Платёжные системы Набор выплат P в раунде r — это набор платежей в раунде r, такой, что для каждого пользователя i платежи из i в P (возможно, ни одного) являются коллективно действительными. Набор всех наборов выплат раунда r равен PAY(r). Раунд-р набор выплат P является максимальным, если ни один надмножество P не является набором выплат раунда r. Фактически мы предполагаем, что платеж \(\wp\)также определяет раунд \(\rho\), \(\wp\)= SIGi(\(\rho\), i, i′, a, I, H(I)) , и не может быть действительным ни в одном раунде за пределами [\(\rho\), \(\rho\) + k] для некоторого фиксированного неотрицательного целого числа k.4 4Это упрощает проверку того, стал ли \(\wp\) «эффективным» (т. е. упрощает определение того, является ли некоторый набор выплат PAY r содержит \(\wp\). Когда k = 0, если \(\wp\)= SIGi(r, i, i′, a, I, H(I)) и \(\wp\)/\(\varepsilon\)PAY r, то я должен повторно отправить \(\wp\).Официальные платежные системы В каждом раунде r Algorand публично выбирает (способом, описанным ниже) один (возможно, пустой) набор выплат, PAY r, официальный набор выплат раунда. (По сути, PAY r представляет собой платежи раунда R, которые «на самом деле» произошли.) Как и в идеальной системе (и Bitcoin), (1) единственный способ для нового пользователя j войти в систему должен быть получателем платежа, принадлежащего официальному набору платежей PAY r данного раунда r; и (2) PAY r определяет статус следующего раунда Sr+1 на основе статуса текущего раунда Sr. Символически, ПЛАТА r : Sr −→Sr+1. В частности, 1. набор открытых ключей раунда r+1, PKr+1, состоит из объединения PKr и множества всех ключи получателя платежа, которые впервые появляются в платежах PAY r; и 2. количество денег a(r+1) я которым владеет пользователь i в раунде r + 1, представляет собой сумму ai(r) — т. е. сумма денег, которой я владел в предыдущем раунде (0, если i ̸\(\varepsilon\)PKr) — и сумма сумм выплачивается i согласно выплатам PAY р. В целом, как и в идеальной системе, каждый статус Sr+1 выводится из предыдущей истории платежей: ПЛАТИТЬ 0, . . . , ПЛАТИТЕ р. 2.4 Блоки и проверенные блоки В Algorand0 блок Br, соответствующий раунду r, определяет: сам r; набор платежей круглый r, ЗАПЛАТИТЕ r; количество Qr, которое необходимо объяснить, и hash предыдущего блока, H(Br-1). Таким образом, начиная с некоторого фиксированного блока B0, мы имеем традиционный blockchain: B1 = (1, ПЛАТИТЬ 1, Q0, H(B0)), B2 = (2, ПЛАТИТЬ 2, Q1, H(B1)), B3 = (3, ПЛАТИТЬ 3, Q2, H(B2)), . . . В Algorand подлинность блока фактически подтверждается отдельной информацией, «сертификат блока» CERT r, который превращает Br в проверенный блок, Br. Таким образом, Волшебная книга реализуется последовательностью проверенных блоков, Б1, Б2, . . . Обсуждение Как мы увидим, CERT r состоит из набора цифровых подписей для H(Br), большинства членов SV r вместе с доказательством того, что каждый из этих членов действительно принадлежит до СВ р. Мы могли бы, конечно, включить сертификаты CERT r в сами блоки, но обнаружили бы, что концептуально чище, если держать его отдельно.) В Bitcoin каждый блок должен удовлетворять специальному свойству, то есть должен «содержать решение задачи». крипто-головоломка», что делает генерацию блоков вычислительно интенсивной и форки неизбежны. и не редкость. Напротив, Algorand blockchain имеет два основных преимущества: он генерируется с помощью минимальные вычисления, и он не будет разделяться с чрезвычайно высокой вероятностью. Каждый блок Bi безопасным финалом, как только он войдет в blockchain.2,5 Приемлемая вероятность отказа Чтобы проанализировать безопасность Algorand, мы указываем вероятность F, с которой мы готовы признать, что что-то идет не так (например, что набор проверяющих SV r не имеет честного большинства). Как и в случае с выходной длиной криптографической hash функции H, F также является параметром. Но, как и в этом случае, мы считаем полезным присвоить F конкретное значение, чтобы получить более интуитивное представление. понимание того факта, что в Algorand действительно возможно одновременно наслаждаться достаточной безопасностью и достаточная эффективность. Чтобы подчеркнуть, что F — это параметр, который можно установить по желанию, в первом и второй варианты осуществления мы соответственно установили Ф = 10−12 и Ф = 10−18 . Обсуждение Обратите внимание, что 10−12 на самом деле меньше одного на триллион, и мы считаем, что такое выбор F является адекватным для нашего приложения. Подчеркнем, что 10−12 — это не вероятность с помощью которого Злоумышленник может подделать платежи честного пользователя. Все платежи в цифровом формате подписано, и, таким образом, если используются надлежащие цифровые подписи, вероятность подделки платежа намного ниже, чем 10−12, и фактически равно 0. Плохое событие, которое мы готовы терпеть с вероятностью F то, что blockchain Algorand разветвляется. Обратите внимание, что с нашими настройками F и продолжительностью в одну минуту, ожидается, что вилка будет происходить в blockchain Algorand так редко, как (примерно) раз в 1,9 миллиона лет. Напротив, в Bitcoin вилки возникают довольно часто. Более требовательный человек может установить F на более низкое значение. Для этого в нашем втором варианте мы рассматриваем установку F равным 10−18. Обратите внимание: если предположить, что блок генерируется каждую секунду, 1018 — приблизительное количество секунд, затраченное Вселенной на данный момент: от Большого взрыва до настоящего времени. время. Таким образом, при F = 10−18, если блок генерируется за секунду, следует ожидать возраста Вселенная, чтобы увидеть развилку. 2.6 Состязательная модель Algorand предназначен для обеспечения безопасности в очень состязательной модели. Давайте объясним. Честные и злонамеренные пользователи Пользователь честен, если он следует всем инструкциям протокола и прекрасно способен отправлять и получать сообщения. Пользователь является злонамеренным (т.е. византийским, в на языке распределенных вычислений), если он может произвольно отклоняться от предписанных инструкций. Противник Противник — это эффективный (технически полиномиальный) алгоритм, олицетворяемый цветом, который может немедленно сделать злонамеренным любого пользователя, которого он хочет, в любое время, когда он захочет (субъект только до верхнего предела числа пользователей, которых он может испортить). Злоумышленник полностью контролирует и прекрасно координирует всех злоумышленников. Он предпринимает все действия от их имени, включая получение и отправку всех их сообщений, и может позволить им отклоняться от предписанные им инструкции произвольным образом. Или он может просто изолировать отправку поврежденного пользователя и получение сообщений. Уточним, что никто больше автоматически не узнает, что пользователь i является злонамеренным, хотя моя злонамеренность может проявиться в действиях, которые Противник заставляет его предпринять. Однако этот могущественный противник • Не обладает неограниченной вычислительной мощностью и не может успешно создавать цифровые подпись добросовестного пользователя, за исключением случаев с незначительной вероятностью; и• Не может каким-либо образом вмешиваться в обмен сообщениями между честными пользователями. Более того, его способность атаковать честных пользователей ограничена одним из следующих предположений. Честность Большинство денег Мы рассматриваем континуум честного большинства денег (HMM). предположения: а именно, для каждого неотрицательного целого числа k и действительного h > 1/2, HHMk > h: честные пользователи в каждом раунде r владели долей, большей, чем h, от всех денег в система на раунде r −k. Обсуждение. Если предположить, что все злоумышленники прекрасно координируют свои действия (как будто контролируют одним существом, Противником) — довольно пессимистическая гипотеза. Идеальная координация между собой многим людям трудно достичь. Возможно, координация происходит только внутри отдельных групп. злонамеренных игроков. Но, поскольку нельзя быть уверенным в уровне координации злоумышленников может понравится, лучше перестраховаться, чем потом сожалеть. Предполагать, что Злоумышленник может тайно, динамически и немедленно развращать пользователей, также является неверным. пессимистичный. В конце концов, на самом деле получение полного контроля над действиями пользователя должно занять некоторое время. Предположение HMMk > h подразумевает, например, что если раунд (в среднем) реализуется в одну минуту, то большая часть денег в данном раунде останется в честных руках на не менее двух часов, если k = 120, и не менее одной недели, если k = 10 000. Обратите внимание, что предположения HMM и предыдущее «Честное большинство вычислительных мощностей» предположения связаны в том смысле, что, поскольку вычислительную мощность можно купить за деньги, если злоумышленники владеют большей частью денег, то они могут получить большую часть вычислительной мощности. 2,7 Коммуникационная модель Мы считаем, что распространение сообщений — то есть «одноранговые сплетни»5 — будет единственным средством общение. Временное предположение: своевременная доставка сообщений по всей сети. Для Большую часть этой статьи мы предполагаем, что каждое распространяемое сообщение достигает почти всех честных пользователей. своевременно. Мы устраним это предположение в разделе 10, где будем иметь дело с сетью перегородки, возникающие естественным путем или вызванные враждебностью. (Как мы увидим, мы только предполагаем своевременная доставка сообщений внутри каждого подключенного компонента сети.) Одним из конкретных способов обеспечения своевременной доставки распространяемых сообщений (во всей сети) является следующее: Для любой достижимости \(\rho\) > 95% и размера сообщения \(\mu\) \(\in\)Z+ существует \(\lambda\) \(\rho\),\(\mu\) такое, что если честный пользователь распространяет микробайтовое сообщение m в момент времени t, тогда m к моменту времени t + \(\lambda\) \(\rho\),\(\mu\) достигнет, по крайней мере, части \(\rho\) честных пользователей. 5По сути, как и в Bitcoin, когда пользователь распространяет сообщение m, каждый активный пользователь i получает m впервые, случайным образом и независимо выбирает достаточно небольшое количество активных пользователей, своих «соседей», которым он пересылает m, возможно, пока он не получит от них подтверждение. Распространение m прекращается, когда ни один пользователь не получает м впервые.Однако указанное выше свойство не может поддерживать наш протокол Algorand без явного и отдельного обеспечения механизма получения последней версии blockchain другим пользователем/хранилищем/и т. д. Фактически, чтобы построить новый блок Br, необходимо не только правильное множество верификаторов своевременно получить round-r сообщения, но и сообщения предыдущих раундов, чтобы знать Br-1 и все остальные предыдущие раунды. блоков, что необходимо для определения достоверности платежей в рублях. Следующие вместо этого достаточно предположения. Допущение о распространении сообщений (MP): Для всех \(\rho\) > 95% и \(\mu\) \(\in\)Z+ существует \(\lambda\) \(\rho\),\(\mu\) такие, что для всех моментов времени t и всех \(\mu\)-байтовых сообщений m, переданных честным пользователем до t −\(\lambda\) \(\rho\),\(\mu\), m к моменту времени t получает по крайней мере часть \(\rho\) честных пользователей. Протокол Algorand ’ фактически инструктирует каждого из небольшого числа пользователей (т. е. проверяющих заданный шаг раунда в Algorand ′, чтобы распространить отдельное сообщение (маленького) заданного размера, и нам нужно ограничить время, необходимое для выполнения этих инструкций. Мы делаем это, обогащая депутата предположение следующим образом. Для всех n, \(\rho\) > 95% и \(\mu\) \(\in\)Z+ существует \(\lambda\)n,\(\rho\),\(\mu\) такие, что для всех моментов времени t и всех \(\mu\)-байт сообщения m1, . . . , mn, каждый из которых был распространен честным пользователем до t −\(\lambda\)n,\(\rho\),\(\mu\), m1, . . . , млн получено, к моменту времени t, по крайней мере, долей \(\rho\) честных пользователей. Примечание • Вышеупомянутое предположение намеренно простое, но в то же время более сильное, чем необходимо в нашей статье.6 • Для простоты мы предполагаем \(\rho\) = 1 и поэтому оставляем упоминание \(\rho\). • Мы пессимистично предполагаем, что, если он не нарушит предположение МП, Противник полностью контролирует доставку всех сообщений. В частности, незаметно для честных пользователей, Противник может произвольно решить, какой честный игрок какое сообщение получит, когда, и произвольно ускорять доставку любого сообщения, которое он хочет.7
Kiến thức cơ bản
2.1 Mật mã nguyên thủy Băm lý tưởng. Chúng ta sẽ dựa vào hàm mật mã hash có thể tính toán hiệu quả, H, mà ánh xạ các chuỗi dài tùy ý thành chuỗi nhị phân có độ dài cố định. Theo truyền thống lâu đời, chúng tôi làm mẫu H dưới dạng ngẫu nhiên oracle, về cơ bản là một hàm ánh xạ từng chuỗi có thể thành một chuỗi ngẫu nhiên và chuỗi nhị phân được chọn độc lập (và sau đó cố định), H(s), có độ dài đã chọn. Trong bài báo này, H có đầu ra dài 256 bit. Thật vậy, độ dài như vậy đủ ngắn để làm cho hệ thống hiệu quả và đủ lâu để đảm bảo hệ thống an toàn. Chẳng hạn, chúng ta muốn H có khả năng chống va chạm. Nghĩa là, khó có thể tìm được hai chuỗi x và y khác nhau sao cho H(x) = H(y). Khi H là oracle ngẫu nhiên với đầu ra dài 256 bit, việc tìm thấy bất kỳ cặp chuỗi nào như vậy thực sự là khó khăn. (Thử ngẫu nhiên và dựa vào nghịch lý ngày sinh, sẽ cần 2256/2 = 2128 thử nghiệm.) Ký kỹ thuật số. Chữ ký số cho phép người dùng xác thực thông tin với nhau mà không chia sẻ bất kỳ khóa bí mật nào. Một sơ đồ chữ ký số bao gồm ba bước nhanh các thuật toán: bộ tạo khóa xác suất G, thuật toán ký S và thuật toán xác minh V . Cho tham số bảo mật k, một số nguyên đủ cao, người dùng i sử dụng G để tạo ra một cặp Các khóa k-bit (tức là các chuỗi): một pki khóa “công khai” và một khóa ký kết “bí mật” phù hợp. Điều quan trọng là một khóa công khai không “phản bội” khóa bí mật tương ứng của nó. Nghĩa là, ngay cả khi có kiến thức về pki, không một người khác ngoài tôi có thể tính toán trượt tuyết trong thời gian ngắn hơn thiên văn. Người dùng tôi sử dụng ski để ký điện tử các tin nhắn. Đối với mỗi thông báo có thể (chuỗi nhị phân) m, trước tiên tôi hashes m rồi chạy thuật toán S trên đầu vào H(m) và trượt để tạo ra chuỗi k-bit sigpki(m) \(\triangleq\)S(H(m), trượt tuyết) .3 3Vì H có khả năng chống va chạm nên thực tế không thể xảy ra trường hợp, bằng việc ký tên cho m một người “vô tình ký” một ký hiệu khác nhắn tin cho m′.Chuỗi nhị phân sigpki(m) được gọi là chữ ký số i của m (liên quan đến pki) và có thể là được biểu thị đơn giản hơn bằng sigi(m), khi pki khóa công khai rõ ràng trong ngữ cảnh. Mọi người biết pki đều có thể sử dụng nó để xác minh chữ ký số do i. Cụ thể, trên nhập (a) khóa công khai pki của người chơi i, (b) tin nhắn m, và (c) chuỗi s, tức là tôi được cho là chữ ký số của thông báo m, thuật toán xác minh V đưa ra CÓ hoặc KHÔNG. Các thuộc tính chúng tôi yêu cầu từ sơ đồ chữ ký số là: 1. Chữ ký hợp pháp luôn được xác minh: Nếu s = sigi(m), thì V (pki, m, s) = Y ES; và 2. Chữ ký số rất khó giả mạo: Nếu không có kiến thức về trượt tuyết thì sẽ rất khó tìm được một chuỗi như vậy. rằng V (pki, m, s) = Y ES, đối với một thông điệp m chưa bao giờ được ký bởi i, rất dài về mặt thiên văn. (Tuân theo yêu cầu bảo mật mạnh mẽ của Goldwasser, Micali và Rivest [17], điều này đúng ngay cả khi người ta có thể lấy được chữ ký của bất kỳ tin nhắn nào khác.) Theo đó, để ngăn chặn người khác ký tin nhắn thay mặt mình, người chơi phải giữ ký khóa bí mật trượt tuyết (do đó có thuật ngữ "khóa bí mật") và cho phép bất kỳ ai xác minh tin nhắn anh ấy đã ký, tôi quan tâm đến việc công khai pki khóa của anh ấy (do đó có thuật ngữ “khóa công khai”). Nói chung, một thông điệp m không thể truy xuất được từ chữ ký sigi(m) của nó. Để giải quyết hầu như với chữ ký số thỏa mãn thuộc tính “khả năng truy xuất” thuận tiện về mặt khái niệm (nghĩa là để đảm bảo rằng người ký và thông điệp có thể dễ dàng tính toán được từ chữ ký, chúng ta định nghĩa SIGpki(m) = (i, m, sigpki(m)) và SIGi(m) = (i, m, sigi(m)), nếu pki rõ ràng. Chữ ký kỹ thuật số độc đáo. Chúng tôi cũng xem xét các lược đồ chữ ký số (G, S, V ) thỏa mãn tài sản bổ sung sau. 3. Tính độc đáo. Thật khó để tìm các chuỗi pk’, m, s và s’ sao cho s ̸= s′ và V(pk′, m, s) = V(pk′, m, s′) = 1. (Lưu ý rằng thuộc tính duy nhất cũng đúng đối với các chuỗi pk′ không được tạo hợp pháp khóa công khai. Tuy nhiên, đặc biệt, tính chất duy nhất ngụ ý rằng, nếu người ta sử dụng trình tạo khóa được chỉ định G để tính toán khóa công khai pk cùng với khóa bí mật phù hợp sk, và do đó biết sk, về cơ bản anh ta không thể tìm thấy hai kỹ thuật số khác nhau chữ ký của cùng một tin nhắn liên quan đến pk.) Bình luận • Từ chữ ký duy nhất đến các hàm ngẫu nhiên có thể kiểm chứng. Liên quan đến kỹ thuật số lược đồ chữ ký với tính chất duy nhất, ánh xạ m \(\to\) H(sigi(m)) liên kết với mỗi chuỗi có thể m, một chuỗi 256 bit duy nhất, được chọn ngẫu nhiên và tính chính xác của chuỗi này ánh xạ có thể được chứng minh bằng chữ ký sigi(m). Nghĩa là, lược đồ chữ ký số và chữ ký số hash lý tưởng về cơ bản thỏa mãn tính chất duy nhất cung cấp cách triển khai cơ bản của hàm ngẫu nhiên có thể kiểm chứng được, như được giới thiệu và bởi Micali, Rabin và Vadhan [27]. (Việc triển khai ban đầu của họ nhất thiết phải phức tạp hơn, vì họ không dựa vào hashing lý tưởng.)• Ba nhu cầu khác nhau về chữ ký số. Trong Algorand, người dùng tôi tin tưởng vào kỹ thuật số chữ ký cho (1) Xác thực các khoản thanh toán của chính tôi. Trong ứng dụng này, các khóa có thể là “dài hạn” (nghĩa là được sử dụng để ký nhiều tin nhắn trong một khoảng thời gian dài) và đến từ sơ đồ chữ ký thông thường. (2) Tạo thông tin xác thực chứng minh rằng tôi có quyền hành động ở một số bước của vòng r. Ở đây, khóa có thể dài hạn nhưng phải đến từ sơ đồ thỏa mãn tính chất duy nhất. (3) Xác thực tin nhắn tôi gửi trong từng bước anh ấy hành động. Ở đây, chìa khóa phải được phù du (tức là bị phá hủy sau lần sử dụng đầu tiên), nhưng có thể đến từ sơ đồ chữ ký thông thường. • Đơn giản hóa chi phí nhỏ. Để đơn giản, chúng tôi hình dung mỗi người dùng có một khóa dài hạn duy nhất. Theo đó, khóa như vậy phải đến từ sơ đồ chữ ký có tính duy nhất tài sản. Sự đơn giản như vậy có chi phí tính toán nhỏ. Thông thường, trên thực tế, kỹ thuật số độc đáo chữ ký đắt hơn một chút để sản xuất và xác minh so với chữ ký thông thường. 2.2 Sổ cái công cộng lý tưởng hóa Algorand cố gắng bắt chước hệ thống thanh toán sau, dựa trên sổ cái công khai được lý tưởng hóa. 1. Trạng thái ban đầu. Tiền được liên kết với các khóa công khai riêng lẻ (được tạo riêng và thuộc quyền sở hữu của người dùng). Để pk1, . . . , pkj là khóa công khai ban đầu và a1, . . . , aj tương ứng của họ số lượng đơn vị tiền ban đầu thì trạng thái ban đầu là S0 = (pk1, a1), . . . , (pkj, aj) , được coi là kiến thức phổ biến trong hệ thống. 2. Thanh toán. Giả sử pk là khóa công khai hiện có \(\geq\)0 đơn vị tiền, pk′ công khai khác khóa và a′ là một số không âm không lớn hơn a. Sau đó, khoản thanh toán (hợp lệ) \(\wp\)là khoản thanh toán kỹ thuật số chữ ký, liên quan đến pk, xác định việc chuyển các đơn vị tiền tệ a' từ pk sang pk', cùng nhau với một số thông tin bổ sung. Trong các ký hiệu, \(\wp\)= SIGpk(pk, pk′, a′, I, H(I)), trong đó tôi đại diện cho bất kỳ thông tin bổ sung nào được coi là hữu ích nhưng không nhạy cảm (ví dụ: thời gian thông tin và số nhận dạng thanh toán) và bất kỳ thông tin bổ sung nào được coi là nhạy cảm (ví dụ: lý do thanh toán, có thể là danh tính của chủ sở hữu pk và pk′, v.v.). Chúng ta gọi pk (hoặc chủ sở hữu của nó) là người trả tiền, gọi mỗi pk' (hoặc chủ sở hữu của nó) là người nhận thanh toán và a' là số tiền thanh toán \(\wp\). Tham gia miễn phí qua thanh toán. Lưu ý người dùng có thể tham gia hệ thống bất cứ khi nào họ muốn bằng cách tạo ra các cặp khóa công khai/bí mật của riêng mình. Theo đó, khóa công khai pk′ xuất hiện trong khoản thanh toán \(\wp\)ở trên có thể là khóa công khai mới được tạo và chưa bao giờ “sở hữu” bất kỳ khoản tiền nào trước đây. 3. Sổ cái kỳ diệu. Trong Hệ thống lý tưởng hóa, tất cả các khoản thanh toán đều hợp lệ và xuất hiện dưới dạng chống giả mạo. danh sách L các bộ thanh toán “đăng lên trời” cho mọi người xem: L = TRẢ 1, TRẢ 2, . . . ,Mỗi khối PAY r+1 bao gồm tập hợp tất cả các khoản thanh toán được thực hiện kể từ khi khối xuất hiện TRẢ TIỀN r. Trong hệ thống lý tưởng, một khối mới xuất hiện sau một khoảng thời gian cố định (hoặc hữu hạn). Cuộc thảo luận. • Thêm các khoản thanh toán chung và đầu ra giao dịch chưa chi tiêu. Tổng quát hơn, nếu một khóa công khai pk sở hữu số tiền a, thì khoản thanh toán hợp lệ \(\wp\)của pk có thể chuyển số tiền a′ 1, a′ 2, . . ., tương ứng với các phím pk′ 1, pk′ 2, . . ., miễn là P j a′ j \(\leq\)a. Trong Bitcoin và các hệ thống tương tự, số tiền thuộc sở hữu của pk khóa công khai được tách thành các phần riêng biệt số tiền và khoản thanh toán \(\wp\)được thực hiện bởi pk phải chuyển toàn bộ số tiền riêng biệt đó a. Nếu pk chỉ muốn chuyển một phần a′ < a của a sang khóa khác thì nó cũng phải chuyển cả phần số dư, đầu ra giao dịch chưa chi tiêu, tới một khóa khác, có thể là chính pk. Algorand cũng hoạt động với các khóa có số lượng tách biệt. Tuy nhiên, để tập trung vào khía cạnh mới lạ của Algorand, về mặt khái niệm, việc tuân thủ các hình thức thanh toán đơn giản hơn của chúng tôi sẽ đơn giản hơn và các khóa có một số lượng duy nhất được liên kết với chúng. • Hiện trạng. Lược đồ lý tưởng hóa không trực tiếp cung cấp thông tin về hiện tại trạng thái của hệ thống (tức là mỗi khóa công khai có bao nhiêu đơn vị tiền). Thông tin này được khấu trừ từ Sổ cái ma thuật. Trong hệ thống lý tưởng, người dùng đang hoạt động liên tục lưu trữ và cập nhật thông tin trạng thái mới nhất, hoặc nếu không thì anh ta sẽ phải xây dựng lại nó, từ đầu, hoặc từ lần cuối cùng anh ta đã tính toán nó. (Trong phiên bản tiếp theo của bài viết này, chúng tôi sẽ tăng cường Algorand để kích hoạt nó người dùng để xây dựng lại trạng thái hiện tại một cách hiệu quả.) • Bảo mật và “Quyền riêng tư”. Chữ ký số đảm bảo rằng không ai có thể giả mạo thanh toán bằng một người dùng khác. Trong thanh toán \(\wp\), khóa công khai và số tiền không bị ẩn, nhưng thông tin nhạy cảm thông tin tôi có. Thật vậy, chỉ có H(I) xuất hiện trong \(\wp\) và vì H là hàm hash lý tưởng nên H(I) là một giá trị 256-bit ngẫu nhiên, và do đó không có cách nào để tìm ra điều gì tôi giỏi hơn chỉ đơn giản là đoán nó. Tuy nhiên, để chứng minh tôi là ai (ví dụ: để chứng minh lý do thanh toán), người trả tiền có thể chỉ tiết lộ I. Tính chính xác của I được tiết lộ có thể được xác minh bằng cách tính H(I) và so sánh giá trị kết quả với mục cuối cùng của \(\wp\). Trên thực tế, vì H có khả năng đàn hồi va chạm nên thật khó để tìm được giá trị thứ hai I′ sao cho H(I) = H(I′). 2.3 Các khái niệm và ký hiệu cơ bản Khóa, Người dùng và Chủ sở hữu Trừ khi có quy định khác, mỗi khóa công khai (gọi tắt là “khóa”) là dài hạn và liên quan đến sơ đồ chữ ký số có thuộc tính duy nhất. Khóa công khai tôi tham gia hệ thống khi một khóa công khai j khác đã có trong hệ thống thực hiện thanh toán cho i. Đối với màu sắc, chúng tôi nhân cách hóa các phím. Chúng ta gọi chìa khóa i là “anh ấy”, nói rằng tôi trung thực, rằng tôi gửi và nhận tin nhắn, v.v. Người dùng là từ đồng nghĩa với khóa. Khi chúng ta muốn phân biệt một khóa với người sở hữu nó, chúng tôi lần lượt sử dụng thuật ngữ “khóa kỹ thuật số” và “chủ sở hữu”. Hệ thống không được phép và được phép. Một hệ thống không được phép nếu khóa kỹ thuật số miễn phí tham gia bất kỳ lúc nào và chủ sở hữu có thể sở hữu nhiều khóa kỹ thuật số; và nó được cho phép, nếu không.Đại diện duy nhất Mỗi đối tượng trong Algorand có một cách thể hiện duy nhất. Đặc biệt, mỗi bộ {(x, y, z, . . . .) : x \(\in\)X, y \(\in\)Y, z \(\in\)Z, . . .} được sắp xếp theo cách được chỉ định trước: ví dụ: đầu tiên theo từ điển theo x, sau đó theo y, v.v. Đồng hồ cùng tốc độ Không có đồng hồ toàn cầu: đúng hơn là mỗi người dùng có đồng hồ riêng của mình. Đồng hồ người dùng không cần phải được đồng bộ hóa dưới bất kỳ hình thức nào. Tuy nhiên, chúng tôi giả định rằng tất cả chúng đều có cùng tốc độ. Ví dụ: khi theo đồng hồ của người dùng i là 12 giờ trưa thì có thể là 2 giờ 30 chiều theo đồng hồ của người dùng i. đồng hồ của người dùng khác j, nhưng khi nó là 12:01 theo đồng hồ của tôi thì nó sẽ là 2:31 theo đến đồng hồ của j. Nghĩa là, “một phút là như nhau (đầy đủ, về cơ bản là giống nhau) đối với mọi người dùng”. Vòng đấu Algorand được tổ chức theo đơn vị logic, r = 0, 1, . . ., gọi là vòng. Chúng tôi luôn sử dụng ký tự trên để biểu thị các vòng. Để chỉ ra rằng đại lượng không phải số Q (ví dụ: một chuỗi, khóa chung, tập hợp, chữ ký số, v.v.) đề cập đến vòng r, chúng ta chỉ cần viết Qr. Chỉ khi Q là số thực (ngược lại với chuỗi nhị phân có thể hiểu được dưới dạng số), hãy thực hiện chúng ta viết Q(r), do đó ký hiệu r không thể được hiểu là số mũ của Q. Tại (bắt đầu a) vòng r > 0, tập hợp tất cả các khóa công khai là PKr và trạng thái hệ thống là Sr = n tôi, một(r) tôi , . . . : tôi \(\in\)PKro , ở đâu một (r) tôi là số tiền có sẵn cho khóa công khai i. Lưu ý rằng PKr được khấu trừ từ Sr và Sr đó cũng có thể chỉ định các thành phần khác cho mỗi khóa chung i. Đối với vòng 0, PK0 là tập hợp khóa công khai ban đầu và S0 là trạng thái ban đầu. Cả PK0 và S0 được coi là kiến thức phổ biến trong hệ thống. Để đơn giản, khi bắt đầu vòng r, vì vậy là PK1, . . . , PKr và S1, . . . , Sr. Trong vòng r, trạng thái hệ thống chuyển từ Sr sang Sr+1: một cách tượng trưng, Vòng r: Sr −→Sr+1. Thanh toán Trong Algorand, người dùng liên tục thực hiện thanh toán (và phổ biến chúng theo cách được mô tả trong tiểu mục 2.7). Khoản thanh toán \(\wp\)của người dùng i \(\in\)PKr có cùng định dạng và ngữ nghĩa như trong Hệ thống lý tưởng. Cụ thể là, \(\wp\)= SIGi(i, i′, a, I, H(I)) . Thanh toán \(\wp\)có giá trị riêng ở vòng r (gọi tắt là thanh toán vòng r) nếu (1) số tiền của nó a nhỏ hơn hoặc bằng a(r) i , và (2) nó không xuất hiện trong bất kỳ tập hợp thanh toán chính thức nào PAY r′ cho r′ < r. (Như được giải thích bên dưới, điều kiện thứ hai có nghĩa là \(\wp\)chưa có hiệu lực. Một tập hợp các khoản thanh toán theo vòng r của i có giá trị chung nếu tổng số tiền của chúng tối đa là a(r) tôi . Bộ tiền thanh toán Tập hợp thanh toán vòng r P là tập hợp các khoản thanh toán vòng r sao cho đối với mỗi người dùng i, các khoản thanh toán của i trong P (có thể không có) đều có giá trị tập thể. Tập hợp tất cả các khoản thanh toán theo vòng r là PAY(r). Một vòng r tập trả lương P là tối đa nếu không có tập siêu nào của P là tập trả lương làm tròn r. Trên thực tế, chúng tôi đề xuất rằng khoản thanh toán \(\wp\)cũng chỉ định một vòng \(\rho\), \(\wp\)= SIGi(\(\rho\), i, i′, a, I, H(I)) , và không thể hợp lệ ở bất kỳ vòng nào ngoài [\(\rho\), \(\rho\) + k], đối với một số nguyên không âm cố định k.4 4Điều này giúp đơn giản hóa việc kiểm tra xem \(\wp\)có trở nên “hiệu quả” hay không (tức là, nó đơn giản hóa việc xác định liệu một số tập hợp thanh toán có TRẢ TIỀN r chứa \(\wp\). Khi k = 0, nếu \(\wp\)= SIGi(r, i, i′, a, I, H(I)) và \(\wp\)/\(\in\)PAY r thì tôi phải gửi lại \(\wp\).Bộ thanh toán chính thức Đối với mỗi vòng r, Algorand chọn công khai (theo cách được mô tả sau) một bộ thanh toán duy nhất (có thể trống), PAY r, bộ thanh toán chính thức của vòng. (Về cơ bản, PAY r đại diện cho các khoản thanh toán vòng r đã “thực sự” xảy ra.) Như trong Hệ thống lý tưởng (và Bitcoin), (1) cách duy nhất để người dùng mới j vào hệ thống là người nhận khoản thanh toán thuộc nhóm thanh toán chính thức TRẢ TIỀN r của vòng r nhất định; và (2) TRẢ TIỀN r xác định trạng thái của vòng tiếp theo, Sr+1, từ trạng thái của vòng hiện tại, Sr. Một cách tượng trưng, TRẢ r : Sr −→Sr+1. Cụ thể, 1. Tập khóa chung của vòng r + 1, PKr+1, bao gồm hợp của PKr và tập hợp tất cả khóa của người nhận thanh toán xuất hiện lần đầu tiên trong các khoản thanh toán PAY r; và 2. số tiền a(r+1) tôi mà người dùng tôi sở hữu ở vòng r + 1 là tổng của ai(r) —tức là, số tiền tôi sở hữu ở vòng trước (0 nếu tôi ̸\(\in\)PKr)— và tổng số tiền trả cho tôi theo các khoản thanh toán PAY r. Tóm lại, như trong Hệ thống lý tưởng, mỗi trạng thái Sr+1 có thể được khấu trừ khỏi lịch sử thanh toán trước đó: TRẢ 0, . . . , TRẢ r. 2.4 Khối và khối đã được chứng minh Trong Algorand0, khối Br tương ứng với vòng r chỉ định: chính r; tập hợp các khoản thanh toán của vòng r, TRẢ r; đại lượng Qr cần được giải thích và hash của khối trước đó, H(Br−1). Do đó, bắt đầu từ khối B0 cố định nào đó, chúng ta có blockchain truyền thống: B1 = (1, TRẢ 1, Q0, H(B0)), B2 = (2, TRẢ 2, Q1, H(B1)), B3 = (3, TRẢ 3, Q2, H(B2)), . . . Trong Algorand, tính xác thực của một khối thực sự được chứng minh bằng một phần thông tin riêng biệt, một “chứng chỉ khối” CERT r, biến Br thành một khối đã được chứng minh, Br. Sổ cái ma thuật, do đó, được thực hiện theo trình tự các khối đã được chứng minh, B1, B2, . . . Thảo luận Như chúng ta sẽ thấy, CERT r bao gồm một tập hợp các chữ ký số cho H(Br), chữ ký của một đa số thành viên của SV r, cùng với bằng chứng cho thấy mỗi thành viên đó thực sự thuộc về đến SV r. Tất nhiên, chúng ta có thể đưa các chứng chỉ CERT r vào chính các khối đó, nhưng hãy tìm nó về mặt khái niệm sạch hơn để giữ nó tách biệt.) Trong Bitcoin mỗi khối phải đáp ứng một thuộc tính đặc biệt, nghĩa là phải “chứa giải pháp của một câu đố về tiền điện tử”, điều này làm cho việc tạo khối đòi hỏi tính toán chuyên sâu và phân nhánh là điều không thể tránh khỏi và không hiếm. Ngược lại, Algorand của blockchain có hai ưu điểm chính: nó được tạo bằng tính toán tối thiểu và nó sẽ không phân nhánh với xác suất quá cao. Mỗi khối Bi là cuối cùng một cách an toàn ngay khi nó đi vào blockchain.2,5 Xác suất thất bại chấp nhận được Để phân tích tính bảo mật của Algorand, chúng tôi chỉ định xác suất F mà chúng tôi sẵn sàng thực hiện chấp nhận rằng có điều gì đó không ổn (ví dụ: tập xác minh SV r không có đa số trung thực). Như trong trường hợp độ dài đầu ra của hàm mật mã hash H, F cũng là một tham số. Tuy nhiên, như trong trường hợp đó, chúng ta thấy hữu ích khi đặt F thành một giá trị cụ thể để có được một cách nhìn trực quan hơn. nắm bắt được thực tế rằng thực sự có thể, trong Algorand, được hưởng mức độ bảo mật đầy đủ đồng thời và đủ hiệu quả. Để nhấn mạnh rằng F là tham số có thể được đặt theo ý muốn, trước tiên và phương án thứ hai mà chúng tôi lần lượt đặt F = 10−12 và F = 10−18 . Thảo luận Lưu ý rằng 10−12 thực sự nhỏ hơn một phần nghìn tỷ và chúng tôi tin rằng một con số như vậy sự lựa chọn của F là đủ trong ứng dụng của chúng tôi. Chúng ta hãy nhấn mạnh rằng 10−12 không phải là xác suất mà Đối thủ có thể giả mạo các khoản thanh toán của một người dùng trung thực. Tất cả các khoản thanh toán đều được kỹ thuật số đã ký và do đó, nếu sử dụng chữ ký số thích hợp thì xác suất giả mạo thanh toán là thấp hơn nhiều so với 10−12, và trên thực tế, về cơ bản là bằng 0. Sự kiện tồi tệ mà chúng ta sẵn sàng chịu đựng với xác suất F là các nhánh blockchain của Algorand. Lưu ý rằng, với việc thiết lập F và các vòng dài một phút, dự kiến sẽ xảy ra phân nhánh ở Algorand blockchain của blockchain với tần suất ít hơn (khoảng) một lần trong 1,9 triệu năm. Ngược lại, trong Bitcoin, việc phân nhánh xảy ra khá thường xuyên. Một người khắt khe hơn có thể đặt F ở giá trị thấp hơn. Vì mục đích này, trong phương án thứ hai của chúng tôi chúng tôi xem xét việc đặt F thành 10−18. Lưu ý rằng, giả sử rằng một khối được tạo ra mỗi giây, 1018 là số giây ước tính mà Vũ trụ đã mất cho đến nay: từ Vụ nổ lớn đến hiện tại thời gian. Do đó, với F = 10−18, nếu một khối được tạo ra trong một giây, người ta sẽ mong đợi tuổi của Vũ trụ để nhìn thấy một ngã ba. 2.6 Mô hình đối nghịch Algorand được thiết kế để bảo mật theo mô hình rất đối nghịch. Hãy để chúng tôi giải thích. Người dùng trung thực và độc hại Người dùng trung thực nếu anh ta tuân theo tất cả các hướng dẫn giao thức của mình và hoàn toàn có khả năng gửi và nhận tin nhắn. Một người dùng có ý đồ độc hại (tức là Byzantine, trong cách nói của điện toán phân tán) nếu anh ta có thể tùy ý đi chệch khỏi hướng dẫn đã quy định của mình. kẻ thù Kẻ thù là một thuật toán hiệu quả (về mặt kỹ thuật thời gian đa thức), được nhân cách hóa bằng màu sắc, kẻ có thể ngay lập tức gây ác ý cho bất kỳ người dùng nào hắn muốn, bất cứ lúc nào hắn muốn (chủ đề chỉ ở mức giới hạn trên của số lượng người dùng mà anh ta có thể tham nhũng). Đối thủ hoàn toàn kiểm soát và điều phối hoàn hảo tất cả những người dùng có ý đồ xấu. Anh ấy thực hiện mọi hành động thay mặt họ, bao gồm cả việc nhận và gửi tất cả tin nhắn của họ, đồng thời có thể khiến họ đi chệch khỏi hướng dẫn quy định của họ theo những cách tùy ý. Hoặc anh ta có thể đơn giản cô lập một người dùng bị lỗi đang gửi và nhận tin nhắn. Hãy để chúng tôi làm rõ rằng không ai khác tự động biết rằng người dùng i là độc hại, mặc dù sự ác ý của tôi có thể bộc lộ qua những hành động mà Kẻ thù bắt anh ta thực hiện. Tuy nhiên, đối thủ mạnh mẽ này • Không có sức mạnh tính toán vô hạn và không thể giả mạo thành công kỹ thuật số chữ ký của người dùng trung thực, ngoại trừ khả năng không đáng kể; Và• Không được can thiệp dưới bất kỳ hình thức nào vào việc trao đổi tin nhắn giữa những người dùng trung thực. Hơn nữa, khả năng tấn công người dùng trung thực của anh ta bị giới hạn bởi một trong những giả định sau. Sự trung thực Phần lớn tiền bạc Chúng tôi xem xét tính liên tục của Đa số tiền trung thực (HMM) giả định: cụ thể là, với mỗi số nguyên không âm k và số thực h > 1/2, HHMk > h: những người dùng trung thực ở mỗi vòng r sở hữu một phần lớn hơn h tổng số tiền trong hệ thống tại vòng r −k. Cuộc thảo luận. Giả sử rằng tất cả người dùng độc hại phối hợp hoàn hảo hành động của họ (như thể được kiểm soát bởi một thực thể duy nhất, Kẻ thù) là một giả thuyết khá bi quan. Sự phối hợp hoàn hảo giữa quá nhiều cá nhân khó đạt được. Có lẽ sự phối hợp chỉ xảy ra trong các nhóm riêng biệt của những người chơi độc hại. Tuy nhiên, vì người ta không thể chắc chắn về mức độ phối hợp của những kẻ dùng độc hại có thể tận hưởng, chúng ta thà an toàn còn hơn là tiếc nuối. Giả sử rằng Kẻ thù có thể làm hỏng người dùng một cách bí mật, linh hoạt và ngay lập tức. bi quan. Xét cho cùng, trên thực tế, việc kiểm soát hoàn toàn hoạt động của người dùng sẽ mất một thời gian. Ví dụ, giả định HMMk > h ngụ ý rằng nếu một vòng (trung bình) được thực hiện thì trong một phút, phần lớn số tiền ở một vòng nhất định sẽ nằm trong tay người trung thực ít nhất hai giờ nếu k = 120 và ít nhất một tuần nếu k = 10.000. Lưu ý rằng các giả định của HMM và Phần lớn sức mạnh tính toán trung thực trước đây các giả định có liên quan theo nghĩa là, vì sức mạnh tính toán có thể mua được bằng tiền, nếu người dùng độc hại sở hữu phần lớn số tiền thì họ có thể có được phần lớn sức mạnh tính toán. 2.7 Mô hình truyền thông Chúng tôi dự tính việc truyền bá thông điệp—tức là “tin đồn ngang hàng”5— là phương tiện duy nhất để giao tiếp. Giả định tạm thời: Gửi tin nhắn kịp thời trong toàn bộ mạng. cho Trong phần lớn bài viết này, chúng tôi giả định rằng mọi thông điệp được truyền bá đều đến được với hầu hết những người dùng trung thực. một cách kịp thời. Chúng ta sẽ loại bỏ giả định này trong Phần 10, nơi chúng ta giải quyết vấn đề mạng sự chia cắt xảy ra một cách tự nhiên hoặc do đối nghịch gây ra. (Như chúng ta sẽ thấy, chúng ta chỉ giả sử gửi tin nhắn kịp thời trong mỗi thành phần được kết nối của mạng.) Một cách cụ thể để nắm bắt kịp thời việc phân phối các tin nhắn được truyền bá (trong toàn bộ mạng) là sau đây: Đối với tất cả khả năng tiếp cận \(\rho\) > 95% và kích thước tin nhắn \(\mu\) \(\in\)Z+, tồn tại \(\lambda\) \(\rho\),\(\mu\) sao cho, nếu một người dùng trung thực truyền tin nhắn \(\mu\)-byte m tại thời điểm t, thì m đạt tới, theo thời gian t + \(\lambda\) \(\rho\),\(\mu\), ít nhất một phần \(\rho\) trong số những người dùng trung thực. 5Về cơ bản, như trong Bitcoin, khi người dùng truyền bá tin nhắn m, mọi người dùng đang hoạt động tôi sẽ nhận được m lần đầu tiên, chọn ngẫu nhiên và độc lập một số lượng nhỏ người dùng đang hoạt động phù hợp, “hàng xóm” của anh ấy, người mà anh ấy chuyển tiếp cho tôi, có thể cho đến khi anh ta nhận được sự thừa nhận từ họ. Việc truyền bá m kết thúc khi không có người dùng nào nhận được m lần đầu tiên.Tuy nhiên, thuộc tính trên không thể hỗ trợ giao thức Algorand của chúng tôi mà không hình dung rõ ràng và riêng biệt cơ chế để có được blockchain mới nhất —bởi một người dùng/kho lưu trữ/v.v. khác. Trên thực tế, để xây dựng một khối Br mới không chỉ cần có một bộ xác minh phù hợp kịp thời nhận được vòng r. tin nhắn, mà còn cả tin nhắn của các vòng trước, để biết Br−1 và tất cả các tin nhắn trước đó khối cần thiết để xác định xem các khoản thanh toán bằng Br có hợp lệ hay không. Sau đây thay vào đó giả định là đủ. Giả định về truyền tin nhắn (MP): Với mọi \(\rho\) > 95% và \(\mu\) \(\in\)Z+, tồn tại \(\lambda\) \(\rho\),\(\mu\) sao cho, với mọi thời điểm t và tất cả các tin nhắn \(\mu\)-byte m được truyền bởi một người dùng trung thực trước t −\(\lambda\) \(\rho\),\(\mu\), m được nhận, vào thời điểm t, bởi ít nhất một phần \(\rho\) người dùng trung thực. Giao thức Algorand ′ thực sự hướng dẫn từng người trong số ít người dùng (tức là người xác minh một bước nhất định của một vòng trong Algorand ′, để truyền bá một thông báo riêng biệt có kích thước quy định (nhỏ), và chúng ta cần giới hạn thời gian cần thiết để thực hiện các hướng dẫn này. Chúng tôi làm như vậy bằng cách làm phong phú thêm nghị sĩ giả định như sau. Với mọi n, \(\rho\) > 95% và \(\mu\) \(\in\)Z+, tồn tại \(\lambda\)n,\(\rho\),\(\mu\) sao cho với mọi thời điểm t và mọi \(\mu\)-byte tin nhắn m1, . . . , mn, mỗi cái được truyền bá bởi một người dùng trung thực trước t −\(\lambda\)n,\(\rho\),\(\mu\), m1, . . . , mn được nhận, vào thời điểm t, ít nhất là một phần \(\rho\) của những người dùng trung thực. Lưu ý • Giả định trên tuy đơn giản nhưng cũng mạnh mẽ hơn mức cần thiết trong bài viết của chúng tôi.6 • Để đơn giản, chúng tôi giả sử \(\rho\) = 1, và do đó không đề cập đến \(\rho\). • Chúng tôi bi quan cho rằng, miễn là anh ta không vi phạm giả định của MP, Đối thủ hoàn toàn kiểm soát việc gửi tất cả các tin nhắn. Đặc biệt, không bị người trung thực để ý người dùng, Đối thủ, anh ta có thể tùy ý quyết định người chơi trung thực nào sẽ nhận được tin nhắn nào khi, và tùy tiện đẩy nhanh việc gửi bất kỳ thông điệp nào anh ta muốn.7
Протокол BA BA⋆ в традиционной обстановке
Как уже подчеркивалось, византийское соглашение является ключевым ингредиентом Algorand. Действительно, это через использование такого протокола BA, на который Algorand не влияет вилка. Однако, чтобы быть в безопасности от наших Могущественный противник, Algorand должен полагаться на протокол BA, который удовлетворяет новой возможности замены игроков. ограничение. Кроме того, чтобы Algorand был эффективным, такой протокол BA должен быть очень эффективным. Протоколы BA были впервые определены для идеализированной модели связи, синхронной полной сети (сети SC). Такая модель позволяет упростить разработку и анализ протоколов БА. 6 Учитывая честный процент h и приемлемую вероятность отказа F, Algorand вычисляет верхнюю границу N, максимальному числу членов проверяющих на шаге. Таким образом, предположение MP должно выполняться только при n \(\leq\)N. Кроме того, как уже говорилось, предположение MP сохраняется независимо от того, сколько других сообщений может распространяться одновременно с MJ's. Однако, как мы увидим, в Algorand сообщения at распространяются практически за неперекрывающееся время. интервалы, в течение которых либо распространяется один блок, либо не более N верификаторов распространяются небольшой (например, 200B) сообщение. Таким образом, мы могли бы переформулировать предположение MP в более слабом, но и более сложном виде. 7Например, он может сразу узнать сообщения, отправленные честными игроками. Таким образом, злонамеренный пользователь i', который которого попросили распространить сообщение одновременно с честным пользователем i, всегда может выбрать свое собственное сообщение m' на основе сообщение m фактически распространяется i. Эта способность связана с спешкой, на языке распределенных вычислений. литература.Соответственно, в этом разделе мы вводим новый протокол BA, BA⋆, для сетей SC и игнорируя вообще вопрос взаимозаменяемости игроков. Протокол BA⋆ представляет собой вклад отдельной ценности. Действительно, это наиболее эффективный из известных на сегодняшний день криптографических протоколов BA для сетей SC. Чтобы использовать его в нашем протоколе Algorand, мы немного модифицируем BA⋆, чтобы учесть наши различные модель и контекст общения, но не забудьте в разделе X указать, как используется BA⋆. в рамках нашего фактического протокола Algorand ′. Начнем с напоминания о модели, в которой действует BA⋆, и о понятии византийского соглашения. 3.1 Синхронные полные сети и соответствующие противники В сети SC имеются общие часы, отсчитывающие время каждого целого числа r = 1, 2, . . . При каждом четном нажатии r каждый игрок i мгновенно и одновременно отправляет один сообщение мистеру i,j (возможно, пустое сообщение) каждому игроку j, включая себя. Каждый мистер я, j получен в момент времени щелкните r + 1 игроком j вместе с личностью отправителя i. Опять же, в протоколе связи игрок честен, если он следует всем предписанным ему правилам. инструкции и злонамеренные в противном случае. Все злонамеренные игроки полностью контролируются и прекрасно координируется Противником, который, в частности, немедленно получает все сообщения, адресованные злонамеренные игроки и выбирает сообщения, которые они отправляют. Злоумышленник может немедленно сделать злонамеренным любого честного пользователя, которого он захочет, в любое нечетное время. он хочет, с учетом только возможного верхнего предела числа злонамеренных игроков. То есть, Противник «не может вмешиваться в сообщения, уже отправленные честным пользователем i», которые будут доставили как обычно. Противник также имеет дополнительную возможность мгновенно, в каждом четном раунде, видеть сообщения, которые отправляют честные на данный момент игроки, и мгновенно использовать эту информацию для выбора сообщения, которые злоумышленники отправляют одновременно, отмечаются галочкой. Примечания • Сила противника. Вышеуказанная установка является очень враждебной. Действительно, в Византийском договоре литературе, многие параметры менее враждебны. Однако есть еще некоторые состязательные настройки. также рассматривалось, где Противник, увидев сообщения, отправленные честным игроком, в данный момент нажмите r, есть возможность стереть все эти сообщения из сети, сразу поврежденный i, выберите сообщение, которое теперь отправляет вредоносный i, нажмите r и получите его доставили как обычно. Предполагаемая сила Противника соответствует той, которую он имеет в наших условиях. • Физическая абстракция. Предполагаемая модель коммуникации абстрагирует более физическую модель, в котором каждая пара игроков (i, j) связана отдельной частной линией связи li,j. То есть никто другой не может внедрять сообщения, вмешиваться в них или получать информацию о них. Ли, Дж. Единственный способ для злоумышленника получить доступ к li,j — это повредить i или j. • Конфиденциальность и аутентификация. В сетях SC гарантируется конфиденциальность и аутентификация сообщений. по предположению. Напротив, в нашей сети связи, где распространяются сообщения между узлами аутентификация гарантируется цифровыми подписями, а конфиденциальность отсутствует. Таким образом, чтобы адаптировать протокол BA⋆ к нашим условиям, каждое обмениваемое сообщение должно быть подписано цифровой подписью. (дальнейшее определение состояния, в котором оно было отправлено). К счастью, протоколы БА, которые мы рассмотрите возможность использования в Algorand не требующих конфиденциальности сообщений.3.2 Понятие византийского соглашения Понятие византийского соглашения было введено Пизом Шостаком и Лэмпортом [31] для двоичный случай, то есть когда каждое начальное значение состоит из бита. Однако его быстро продлили. произвольным начальным значениям. (См. обзоры Фишера [16] и Чора и Дворка [10].) Бакалавр протокол, мы имеем в виду протокол произвольного значения. Определение 3.1. В синхронной сети пусть P — протокол для n игроков, набор игроков которого общий. знаний среди игроков, t — положительное целое число такое, что n \(\geq\)2t + 1. Мы говорим, что P является произвольного (соответственно двоичного) (n, t)-византийского протокола согласования с корректностью \(\sigma\) \(\in\)(0, 1) если для любого набора значений V, не содержащего специального символа \(\bot\) (соответственно, для V = {0, 1}), в исполнение, в котором не более t игроков являются злонамеренными и в котором каждый игрок i начинает с начальное значение vi \(\in\)V , каждый честный игрок j останавливается с вероятностью 1, выдавая значение outi \(\in\)V \(\cup\){\(\bot\)} так, чтобы с вероятностью не менее \(\sigma\) удовлетворить следующим двум условиям: 1. Соглашение: существует out \(\in\)V \(\cup\){\(\bot\)} такой, что outi = out для всех честных игроков i. 2. Непротиворечивость: если для некоторого значения v \(\in\)V vi = v для всех честных игроков, то out = v. Мы называем out выходом P, а каждый outi — выходом игрока i. 3.3 Обозначение BA В наших протоколах БА игрок обязан посчитать, сколько игроков отправили ему заданное сообщение в заданный шаг. Соответственно, для каждого возможного значения v, которое может быть отправлено,
с
я (в) (или просто #i(v), если s ясно) — это количество игроков j, от которых я получил v на шаге s. Вспоминая, что игрок i получает ровно одно сообщение от каждого игрока j, если число игроков равно n, то для всех i и s P в #с я(v) = п. 3.4 Бинарный протокол BA BBA⋆ В этом разделе мы представляем новый бинарный протокол BA, BBA⋆, который опирается на честность большего количества чем две трети игроков и очень быстро: что бы ни делали злонамеренные игроки, каждое выполнение основного цикла приводит игроков к соглашению с вероятностью 1/3. Каждый игрок имеет свой открытый ключ схемы цифровой подписи, удовлетворяющий требованиям уникальной подписи. собственность. Поскольку этот протокол предназначен для работы в полной синхронной сети, нет нужно, чтобы игрок подписывал каждое свое сообщение. Цифровые подписи используются для генерации достаточно распространенного случайного бита на этапе 3. (В Algorand цифровые подписи также используются для аутентификации всех остальных сообщений.) Протокол требует минимальной настройки: общая случайная строка r, независимая от игроков. ключи. (В Algorand r фактически заменяется величиной Qr.) Протокол BBA⋆ представляет собой трехэтапный цикл, в котором игроки неоднократно обмениваются логическими значениями, а разные игроки могут выйти из этого цикла в разное время. Игрок i выходит из этого цикла, распространяя на каком-то этапе либо специальное значение 0∗, либо специальное значение 1∗, тем самым инструктируя всех игроков «представьте», что они получают соответственно 0 и 1 от i на всех последующих шагах. (В качестве альтернативы: предположимчто последнее сообщение, полученное игроком j от другого игрока i, было битом b. Тогда на любом шаге в котором он не получает никакого сообщения от i, j действует так, как если бы я отправил ему бит b.) В протоколе используется счетчик \(\gamma\), показывающий, сколько раз был выполнен трехэтапный цикл. В начале BBA⋆ \(\gamma\) = 0. (Можно думать о \(\gamma\) как о глобальном счетчике, но на самом деле он увеличен каждым отдельным игроком каждый раз при выполнении цикла.) Их n \(\geq\)3t + 1, где t — максимально возможное количество злоумышленников. Бинарный файл строка x идентифицируется с целым числом, двоичное представление которого (с возможными начальными нулями) равно x; а lsb(x) обозначает младший значащий бит числа x. Протокол BBA⋆ (Связь) Шаг 1. [Шаг фиксирования монеты до 0] Каждый игрок i отправляет bi. 1.1 Если №1 i (0) \(\geq\)2t + 1, затем я устанавливает bi = 0, отправляет 0∗, выводит outi = 0, и ОСТАНАВЛИВАЕТСЯ. 1.2 Если №1 i (1) \(\geq\)2t + 1, то тогда я устанавливаю bi = 1. 1.3 В противном случае я устанавливаю bi = 0. (Связь) Шаг 2. [Шаг фиксированной монеты-1] Каждый игрок i отправляет bi. 2.1 Если №2 i (1) \(\geq\)2t + 1, то я устанавливаю bi = 1, отправляет 1∗, выходы outi = 1, и ОСТАНАВЛИВАЕТСЯ. 2.2 Если №2 i (0) \(\geq\)2t + 1, то я устанавливаю bi = 0. 2.3 В противном случае я устанавливаю bi = 1. (Общение) Шаг 3. [Шаг истинного подбрасывания монеты] Каждый игрок i отправляет bi и SIGi(r, \(\gamma\)). 3.1 Если №3 i (0) \(\geq\)2t + 1, то я устанавливаю bi = 0. 3.2 Если №3 i (1) \(\geq\)2t + 1, то я устанавливаю bi = 1. 3.3 Иначе, полагая Si = {j \(\in\)N, который отправил i правильное сообщение на этом шаге 3 }, я устанавливаю bi = c \(\triangleq\)lsb(minj\(\varepsilon\)Si H(SIGi(r, \(\gamma\)))); увеличивает \(\gamma\)i на 1; и возвращается к шагу 1. Теорема 3.1. Всякий раз, когда n \(\geq\)3t + 1, BBA⋆ является бинарным (n, t)-протоколом BA с надежностью 1. Доказательство теоремы 3.1 приведено в [26]. Его адаптация к нашим условиям и возможность замены игроков. свойства являются новыми. Историческое замечание Вероятностные бинарные протоколы БА были впервые предложены Бен-Ором в асинхронные настройки [7]. Протокол BBA⋆ — это новая адаптация к нашим условиям открытого ключа двоичный протокол BA Фельдмана и Микали [15]. Их протокол был первым, который сработал ожидаемым образом. постоянное количество шагов. Это сработало благодаря тому, что игроки сами реализовали общую монету. идея, предложенная Рабином, который реализовал ее через внешнюю доверенную сторону [32].3,5 Градуированный консенсус и Протокол GC Давайте вспомним, что касается произвольных ценностей, понятие консенсуса, гораздо более слабое, чем византийское соглашение. Определение 3.2. Пусть P — протокол, в котором множество всех игроков общеизвестно, и каждый игрок i лично знает произвольное начальное значение v' я. Мы говорим, что P является (n, t)-градуированным протоколом консенсуса, если в каждом исполнении с n игроками в большинство из которых являются вредоносными, каждый честный игрок i прекращает выводить пару ценных значений (vi, gi), где gi \(\in\){0, 1, 2}, чтобы удовлетворить следующим трем условиям: 1. Для всех честных игроков i и j |gi −gj| \(\leq\)1. 2. Для всех честных игроков i и j gi, gj > 0 ⇒vi = vj. 3. Если v' 1 = \(\cdots\) = v′ n = v для некоторого значения v, тогда vi = v и gi = 2 для всех честных игроков i. Историческая справка Понятие дифференцированного консенсуса просто вытекает из понятия дифференцированного консенсуса. трансляция, выдвинутая Фельдманом и Микали в [15], путем укрепления понятия крестоносца соглашение, представленное Долевым [12] и уточненное Терпином и Коаном [33].8 В [15] авторы также предоставили трехэтапный (n, t) протокол вещания Gradecast для n \(\geq\)3t+1. Позже был найден более сложный (n, t)-градуированный протокол вещания для n > 2t+1. Кац и Ку [19]. Следующий двухэтапный протокол GC состоит из двух последних этапов Gradecast, выраженных в нашем обозначения. Чтобы подчеркнуть этот факт и соответствовать шагам протокола Algorand ′ раздела 4.1, мы соответственно назовите 2 и 3 шаги GC. Протокол GC Шаг 2. Каждый игрок i отправляет v' я всем игрокам. Шаг 3. Каждый игрок i отправляет всем игрокам строку x тогда и только тогда, когда #2 я (х) \(\geq\)2t + 1. Определение выхода. Каждый игрок i выводит пару (vi, gi), рассчитанную следующим образом: • Если для некоторого x, #3 i (x) \(\geq\)2t + 1, тогда vi = x и gi = 2. • Если для некоторого x, #3 i (x) \(\geq\)t + 1, тогда vi = x и gi = 1. • В противном случае vi = \(\bot\) и gi = 0. Теорема 3.2. Если n \(\geq\)3t + 1, то GC является (n, t)-градуированным широковещательным протоколом. Доказательство непосредственно следует из протокола Gradecast в [15] и поэтому опускается9. 8По сути, в протоколе дифференцированного вещания (а) вклад каждого игрока представляет собой личность выдающегося игрок, отправитель, который имеет произвольное значение v в качестве дополнительных частных входных данных, и (б) выходные данные должны удовлетворять те же свойства 1 и 2 градуированного консенсуса, плюс следующее свойство 3': если отправитель честен, то vi = v и gi = 2 для всех честных игроков i. 9Действительно, в их протоколе на шаге 1 отправитель отправляет свое личное значение v всем игрокам, и каждый игрок i позволяет v' я состою из значения, которое он фактически получил от отправителя на шаге 1.3.6 Протокол BA⋆ Теперь мы опишем протокол BA с произвольными значениями BA⋆ через двоичный протокол BA BBA⋆ и протокол постепенного консенсуса GC. Ниже начальная стоимость каждого игрока i равна v' я. Протокол BA⋆ Шаги 1 и 2. Каждый игрок i выполняет GC на входе v' i, чтобы вычислить пару (vi, gi). Шаг 3, . . . Каждый игрок i выполняет BBA⋆ — с начальным вводом 0, если gi = 2, и 1 в противном случае — так что как вычислить бит outi. Определение выхода. Каждый игрок i выводит vi, если outi = 0, и \(\bot\) в противном случае. Теорема 3.3. Всякий раз, когда n \(\geq\)3t + 1, BA⋆ представляет собой (n, t)-BA-протокол с надежностью 1. Доказательство. Сначала мы доказываем непротиворечивость, а затем согласие. Доказательство согласованности. Предположим, что для некоторого значения v \(\in\)V , v′ i = v. Тогда по свойству 3 градуированный консенсус, после выполнения GC, все честные игроки выводят (v, 2). Соответственно, 0 начальный бит всех честных игроков в конце исполнения BBA⋆. Таким образом, Соглашением свойство бинарного византийского соглашения, в конце исполнения BA⋆, outi = 0 для всех честных игроки. Это означает, что результат каждого честного игрока i в BA⋆ равен vi = v. ✷ Доказательство соглашения. Поскольку BBA⋆ — это двоичный протокол BA, либо (A) outi = 1 для всех честных игроков i, или (B) outi = 0 для всех честных игроков i. В случае А все честные игроки выводят \(\bot\)в BA⋆, и, таким образом, Соглашение выполняется. Рассмотрим теперь случай Б. В в этом случае при выполнении BBA⋆ начальный бит хотя бы одного честного игрока i равен 0. (Действительно, если начальный бит всех честных игроков был равен 1, то, согласно свойству согласованности BBA⋆, мы бы имели outj = 1 для всех честных j.) Соответственно, после выполнения GC i выводит пару (v, 2) для некоторых значение v. Таким образом, по свойству 1 градуированного консенсуса gj > 0 для всех честных игроков j. Соответственно, по свойство 2 градуированного консенсуса: vj = v для всех честных игроков j. Это означает, что в конце BA⋆, каждый честный игрок j выводит v. Таким образом, Соглашение справедливо и в случае B. ✷ Поскольку соблюдаются как согласованность, так и согласованность, BA⋆ является протоколом BA с произвольным значением. Историческая справка Терпин и Коан первыми показали, что при n \(\geq\)3t+1 любой бинарный (n, t)-BA протокол может быть преобразован в протокол произвольного значения (n, t)-BA. Приведение произвольного значения Византийское соглашение к бинарному Византийское соглашение посредством ступенчатого консенсуса является более модульным и чище и упрощает анализ нашего Algorand протокола Algorand ′. Обобщающий BA⋆для использования в Algorand Algorand работает, даже если вся связь осуществляется через сплетни. Однако, несмотря на то, что они представлены в традиционной и знакомой сети связи, так как Чтобы обеспечить лучшее сравнение с предшествующим уровнем техники и облегчить понимание, работает протокол BA⋆. также в сетях сплетен. Фактически, в наших детальных вариантах реализации Algorand мы представим его непосредственно для сетей сплетен. Отметим также, что оно удовлетворяет заменимости игроков свойство, которое имеет решающее значение для безопасности Algorand в предусмотренной очень состязательной модели.
Любой заменяемый игроком BA протокол, работающий в сети сплетничающей связи, может быть надежно используется в системе Algorand изобретения. В частности, Микали и Вайкунтханатан. расширили BA⋆, чтобы он мог очень эффективно работать и с простым большинством честных игроков. Это протокол тоже можно использовать в Algorand.
Giao thức BA BA⋆trong bối cảnh truyền thống
Như đã nhấn mạnh, thỏa thuận Byzantine là thành phần chính của Algorand. Quả thực là thông qua việc sử dụng giao thức BA sao cho Algorand không bị ảnh hưởng bởi các nhánh. Tuy nhiên, để an toàn chống lại chúng ta Đối thủ mạnh mẽ, Algorand phải dựa vào giao thức BA đáp ứng khả năng thay thế người chơi mới hạn chế. Ngoài ra, để Algorand hoạt động hiệu quả, giao thức BA như vậy phải rất hiệu quả. Các giao thức BA lần đầu tiên được xác định cho một mô hình truyền thông lý tưởng, hoàn chỉnh đồng bộ mạng (mạng SC). Mô hình như vậy cho phép thiết kế và phân tích các giao thức BA đơn giản hơn. 6Với tỷ lệ phần trăm trung thực h và xác suất thất bại chấp nhận được F, Algorand tính toán giới hạn trên, N, đến số lượng thành viên tối đa của người xác minh trong một bước. Vì vậy, giả định MP chỉ cần giữ với n \(\leq\)N. Ngoài ra, như đã nêu, giả định MP vẫn đúng cho dù có bao nhiêu tin nhắn khác có thể được truyền đi cùng với của mj. Tuy nhiên, như chúng ta sẽ thấy, trong Algorand tin nhắn được truyền đi trong thời gian cơ bản không chồng chéo các khoảng thời gian trong đó một khối đơn được truyền đi hoặc nhiều nhất là N trình xác minh truyền một khối nhỏ (ví dụ: 200B) tin nhắn. Vì vậy, chúng ta có thể trình bày lại giả định MP theo cách yếu hơn nhưng cũng phức tạp hơn. 7Ví dụ, anh ta có thể ngay lập tức biết được tin nhắn được gửi bởi những người chơi trung thực. Vì vậy, một người dùng độc hại i′, là ai được yêu cầu truyền bá một tin nhắn đồng thời với một người dùng trung thực i, luôn có thể chọn tin nhắn của riêng mình m′ dựa trên thông điệp m thực sự được truyền bá bởi i. Khả năng này liên quan đến việc gấp rút, theo cách nói của tính toán phân tán. văn học.Theo đó, trong phần này, chúng tôi giới thiệu giao thức BA mới, BA⋆, cho mạng SC và bỏ qua vấn đề về khả năng thay thế cầu thủ hoàn toàn. Giao thức BA⋆ là sự đóng góp có giá trị riêng biệt. Thật vậy, nó là giao thức BA mật mã hiệu quả nhất cho các mạng SC được biết đến cho đến nay. Để sử dụng nó trong giao thức Algorand của chúng tôi, chúng tôi sửa đổi BA⋆ một chút để phù hợp với sự khác biệt của chúng tôi mô hình và bối cảnh giao tiếp, nhưng hãy đảm bảo, trong phần X, làm nổi bật cách sử dụng BA⋆ trong giao thức thực tế của chúng tôi Algorand ′. Chúng tôi bắt đầu bằng cách nhớ lại mô hình mà BA⋆ vận hành và khái niệm về thỏa thuận Byzantine. 3.1 Mạng hoàn chỉnh đồng bộ và đối thủ phù hợp Trong mạng SC có một đồng hồ chung, tích tắc ở mỗi thời điểm tích phân r = 1, 2, . . . Tại mỗi thời điểm chẵn bấm vào r, mỗi người chơi i sẽ gửi ngay lập tức và đồng thời một nhắn tin cho ông i,j (có thể là tin nhắn trống) tới mỗi người chơi j, bao gồm cả chính anh ta. Mỗi ông tôi,j được nhận tại thời điểm người chơi j bấm vào r + 1, kèm theo danh tính của người gửi i. Một lần nữa, trong giao thức giao tiếp, người chơi sẽ trung thực nếu anh ta tuân theo mọi quy định của mình. hướng dẫn, và độc hại khác. Tất cả những người chơi độc hại đều được kiểm soát hoàn toàn và hoàn hảo được phối hợp bởi Đối thủ, đặc biệt, kẻ này sẽ ngay lập tức nhận được tất cả các tin nhắn gửi tới những người chơi độc hại và chọn tin nhắn họ gửi. Kẻ thù có thể ngay lập tức gây hại cho bất kỳ người dùng trung thực nào mà hắn muốn vào bất kỳ lần nhấp chuột nào. anh ta muốn, chỉ tuân theo giới hạn có thể đạt được của số lượng người chơi độc hại. Đó là, Đối thủ “không thể can thiệp vào các tin nhắn đã được gửi bởi người dùng trung thực i”, điều này sẽ được giao như thường lệ. Đối thủ cũng có thêm khả năng để nhìn thấy ngay lập tức, ở mỗi hiệp chẵn, tin nhắn mà những người chơi trung thực hiện tại gửi và ngay lập tức sử dụng thông tin này để chọn các tin nhắn mà người chơi độc hại gửi cùng lúc đánh dấu. Bình luận • Quyền lực của đối thủ. Các thiết lập ở trên là rất bất lợi. Thật vậy, trong thỏa thuận Byzantine văn học, nhiều bối cảnh ít đối nghịch hơn. Tuy nhiên, một số cài đặt đối nghịch hơn có cũng được xem xét, trong đó Kẻ thù, sau khi nhìn thấy tin nhắn được gửi bởi một người chơi trung thực, tôi tại một thời điểm nhất định, nhấp vào r, có khả năng xóa tất cả các tin nhắn này khỏi mạng ngay lập tức tôi bị hỏng, chọn tin nhắn mà tôi hiện đang gửi độc hại, nhấp vào r và nhận chúng được giao như thường lệ. Sức mạnh dự kiến của Kẻ thù phù hợp với hắn trong bối cảnh của chúng ta. • Trừu tượng vật lý. Mô hình truyền thông dự kiến trừu tượng hóa một mô hình vật lý hơn, trong đó mỗi cặp người chơi (i, j) được liên kết bằng một đường dây liên lạc riêng và riêng li,j. Nghĩa là, không ai khác có thể tiêm nhiễm, can thiệp hoặc lấy thông tin về các tin nhắn được gửi qua lý, j. Cách duy nhất để Kẻ thù có quyền truy cập vào li,j là làm hỏng i hoặc j. • Quyền riêng tư và xác thực. Trong mạng SC, quyền riêng tư và xác thực tin nhắn được đảm bảo bằng giả định. Ngược lại, trong mạng truyền thông của chúng ta, nơi các thông điệp được truyền đi từ ngang hàng đến ngang hàng, xác thực được đảm bảo bằng chữ ký số và quyền riêng tư là không tồn tại. Do đó, để áp dụng giao thức BA⋆ vào cài đặt của chúng tôi, mỗi tin nhắn được trao đổi phải được ký điện tử (xác định thêm trạng thái mà nó được gửi). May mắn thay, các giao thức BA mà chúng tôi hãy cân nhắc việc sử dụng trong Algorand không yêu cầu quyền riêng tư về tin nhắn.3.2 Khái niệm về Hiệp định Byzantine Khái niệm về thỏa thuận Byzantine được Pease Shostak và Lamport [31] đưa ra cho trường hợp nhị phân, nghĩa là khi mỗi giá trị ban đầu bao gồm một bit. Tuy nhiên, nó đã nhanh chóng được mở rộng thành các giá trị ban đầu tùy ý. (Xem khảo sát của Fischer [16] và Chor và Dwork [10].) Bởi BA giao thức, chúng tôi muốn nói đến một giao thức có giá trị tùy ý. Định nghĩa 3.1. Trong mạng đồng bộ, giả sử P là giao thức n-player, có tập hợp trình phát chung kiến thức của người chơi, t là số nguyên dương sao cho n \(\geq\)2t + 1. Ta nói P là một giá trị tùy ý (tương ứng, nhị phân) (n, t)-Giao thức thỏa thuận Byzantine có tính đúng đắn \(\sigma\) \(\in\)(0, 1) nếu, với mọi tập hợp giá trị V không chứa ký hiệu đặc biệt \(\bot\) (tương ứng với V = {0, 1}), trong một việc thực thi trong đó tối đa t người chơi là độc hại và trong đó mọi người chơi tôi đều bắt đầu bằng một giá trị ban đầu vi \(\in\)V , mọi người chơi trung thực j dừng lại với xác suất 1, xuất ra giá trị outi \(\in\)V \(\cup\){\(\bot\)} sao cho thỏa mãn, với xác suất ít nhất là \(\sigma\), hai điều kiện sau: 1. Thỏa thuận: Tồn tại out \(\in\)V \(\cup\){\(\bot\)} sao cho outi = out đối với tất cả những người chơi trung thực i. 2. Tính nhất quán: nếu, với một giá trị v \(\in\)V nào đó, vi = v đối với tất cả những người chơi trung thực, thì out = v. Chúng ta gọi out là đầu ra của P và mỗi outi là đầu ra của người chơi i. 3.3 Ký hiệu BA # Trong giao thức BA của chúng tôi, người chơi được yêu cầu đếm số lượng người chơi đã gửi cho mình một tin nhắn nhất định trong một bước nhất định. Theo đó, với mỗi giá trị v có thể được gửi,
s
tôi (v) (hoặc chỉ #i(v) khi s rõ ràng) là số người chơi j mà tôi đã nhận được v ở bước s. Hãy nhớ rằng người chơi i nhận được chính xác một tin nhắn từ mỗi người chơi j, nếu số lượng khi đó người chơi là n với mọi i và s, P v #s tôi(v) = n. 3,4 Giao thức BA nhị phân BBA⋆ Trong phần này chúng tôi trình bày một giao thức BA nhị phân mới, BBA⋆, dựa trên tính trung thực của nhiều hơn 2/3 số người chơi và diễn ra rất nhanh: bất kể những người chơi độc hại có thể làm gì, mỗi lần thực hiện vòng lặp chính của nó sẽ khiến người chơi đồng ý với xác suất 1/3. Mỗi người chơi có khóa chung của sơ đồ chữ ký số đáp ứng chữ ký duy nhất tài sản. Vì giao thức này được thiết kế để chạy trên mạng hoàn chỉnh đồng bộ nên không có cần một người chơi ký tên vào từng tin nhắn của anh ta. Chữ ký số được sử dụng để tạo ra bit ngẫu nhiên đủ phổ biến ở Bước 3. (Trong Algorand, chữ ký số cũng được sử dụng để xác thực tất cả các tin nhắn khác.) Giao thức yêu cầu thiết lập tối thiểu: một chuỗi ngẫu nhiên chung r, độc lập với chuỗi của người chơi. phím. (Trong Algorand, r thực tế được thay thế bằng đại lượng Qr.) Giao thức BBA⋆ là một vòng lặp gồm 3 bước, trong đó người chơi liên tục trao đổi các giá trị Boolean và những người chơi khác nhau có thể thoát khỏi vòng lặp này vào những thời điểm khác nhau. Người chơi i thoát khỏi vòng lặp này bằng cách truyền bá, ở một bước nào đó, có giá trị đặc biệt 0∗ hoặc giá trị đặc biệt 1∗, từ đó hướng dẫn tất cả người chơi “giả vờ” họ lần lượt nhận được 0 và 1 từ i trong tất cả các bước trong tương lai. (Nói cách khác: giả sửrằng tin nhắn cuối cùng mà người chơi j nhận được từ người chơi khác i là hơi b. Sau đó, ở bất kỳ bước nào trong đó anh ta không nhận được tin nhắn nào từ tôi, j làm như tôi đã gửi cho anh ta một bit b.) Giao thức sử dụng bộ đếm \(\gamma\), biểu thị số lần vòng lặp 3 bước của nó được thực thi. Khi bắt đầu BBA⋆, \(\gamma\) = 0. (Người ta có thể coi \(\gamma\) là bộ đếm toàn cục, nhưng thực tế nó được tăng lên bởi mỗi người chơi mỗi khi vòng lặp được thực thi.) Có n \(\geq\)3t + 1, trong đó t là số lượng người chơi độc hại tối đa có thể. Một hệ nhị phân chuỗi x được xác định bằng số nguyên có biểu diễn nhị phân (có thể có số 0 ở đầu) là x; và lsb(x) biểu thị bit có ý nghĩa nhỏ nhất của x. Giao thức BBA⋆ (Giao tiếp) Bước 1. [Bước Coin-Fixed-To-0] Mỗi người chơi tôi gửi bi. 1.1 Nếu #1 i(0) \(\geq\)2t+1 thì i đặt bi = 0, gửi 0∗, xuất ra outi = 0, và HALTS. 1.2 Nếu #1 i(1) \(\geq\)2t+1 thì i đặt bi = 1. 1.3 Ngược lại tôi đặt bi = 0. (Giao tiếp) Bước 2. [Bước cố định bằng tiền xu thành 1] Mỗi người chơi tôi gửi bi. 2.1 Nếu #2 i(1) \(\geq\)2t+1 thì i đặt bi = 1, gửi 1∗, đầu ra outi = 1, và HALTS. 2.2 Nếu #2 i(0) \(\geq\)2t+1 thì tôi đặt bi = 0. 2.3 Ngược lại tôi đặt bi = 1. (Giao tiếp) Bước 3. [Bước lật xu thật] Mỗi người chơi tôi gửi bi và SIGi(r, \(\gamma\)). 3.1 Nếu #3 i(0) \(\geq\)2t+1 thì i đặt bi = 0. 3.2 Nếu #3 i(1) \(\geq\)2t+1 thì i đặt bi = 1. 3.3 Ngược lại, giả sử Si = {j \(\in\)N người đã gửi cho tôi một tin nhắn thích hợp ở bước 3 này }, tôi đặt bi = c \(\triangleq\)lsb(minj\(\in\)Si H(SIGi(r, \(\gamma\)))); tăng \(\gamma\)i lên 1; và quay lại Bước 1. Định lý 3.1. Bất cứ khi nào n \(\geq\)3t + 1, BBA⋆ là giao thức nhị phân (n, t)-BA có độ chính xác 1. Chứng minh Định lý 3.1 được đưa ra trong [26]. Sự thích ứng của nó với bối cảnh của chúng tôi và khả năng thay thế người chơi của nó tài sản là mới lạ. Nhận xét lịch sử Các giao thức BA nhị phân xác suất được Ben-Or đề xuất lần đầu tiên vào năm cài đặt không đồng bộ [7]. Giao thức BBA⋆ là một phiên bản chuyển thể mới, phù hợp với bối cảnh khóa công khai của chúng tôi, của giao thức giao thức BA nhị phân của Feldman và Micali [15]. Giao thức của họ là giao thức đầu tiên hoạt động theo cách được mong đợi số bước không đổi. Nó hoạt động bằng cách để người chơi tự triển khai một loại tiền chung, một ý tưởng được đề xuất bởi Rabin, người đã triển khai nó thông qua một bên đáng tin cậy bên ngoài [32].3,5 Đồng thuận được phân loại và Nghị định thư GC Chúng ta hãy nhớ lại, đối với các giá trị tùy ý, khái niệm về sự đồng thuận yếu hơn nhiều so với thỏa thuận Byzantine. Định nghĩa 3.2. Cho P là một giao thức trong đó tập hợp tất cả người chơi là kiến thức chung và mỗi người chơi tôi biết riêng một giá trị ban đầu tùy ý v′ tôi. Chúng ta nói rằng P là một giao thức đồng thuận được xếp loại (n, t) nếu, trong mỗi lần thực hiện với n người chơi, tại hầu hết trong số đó là độc hại, mọi người chơi trung thực đều dừng xuất ra một cặp cấp giá trị (vi, gi), trong đó gi \(\in\){0, 1, 2}, sao cho thỏa mãn ba điều kiện sau: 1. Đối với tất cả người chơi trung thực i và j, |gi −gj| 1.1. 2. Với mọi người chơi trung thực i và j, gi, gj > 0 ⇒vi = vj. 3. Nếu v′ 1 = \(\cdots\) = v' n = v với một số giá trị v, thì vi = v và gi = 2 đối với tất cả những người chơi trung thực i. Ghi chú lịch sử Khái niệm về sự đồng thuận được xếp loại chỉ đơn giản bắt nguồn từ sự đồng thuận được xếp loại phát sóng, được đưa ra bởi Feldman và Micali trong [15], bằng cách củng cố quan niệm về một người thập tự chinh thỏa thuận, do Dolev giới thiệu [12] và được cải tiến bởi Turpin và Coan [33].8 Trong [15], các tác giả cũng đã cung cấp giao thức phát sóng phân loại 3 bước (n, t), phân loại, cho n \(\geq\)3t+1. Một giao thức phát sóng theo cấp độ (n, t) phức tạp hơn cho n > 2t+1 sau đó đã được tìm thấy của Katz và Koo [19]. Giao thức GC hai bước sau đây bao gồm hai bước cuối cùng của việc phân loại, được thể hiện trong ký hiệu. Để nhấn mạnh thực tế này và để phù hợp với các bước của giao thức Algorand ′ của phần 4.1, chúng tôi lần lượt gọi tên 2 và 3 các bước của GC. Giao thức GC Bước 2. Mỗi người chơi tôi gửi v′ tôi gửi tới tất cả người chơi. Bước 3. Mỗi người chơi tôi gửi cho tất cả người chơi chuỗi x khi và chỉ khi #2 i(x) \(\geq\)2t+1. Xác định đầu ra. Mỗi người chơi i xuất ra cặp (vi, gi) được tính như sau: • Nếu, với một số x, #3 i(x) \(\geq\)2t+1 thì vi = x và gi = 2. • Nếu, với một số x, #3 i(x) \(\geq\)t + 1 thì vi = x và gi = 1. • Ngược lại, vi = \(\bot\) và gi = 0. Định lý 3.2. Nếu n \(\geq\)3t + 1 thì GC là giao thức quảng bá được phân loại (n, t). Bằng chứng ngay lập tức được nối tiếp từ bản phân loại giao thức trong [15] và do đó bị bỏ qua.9 8Về bản chất, trong giao thức phát sóng được phân loại, (a) đầu vào của mỗi người chơi là danh tính của một người được phân biệt người chơi, người gửi, người có giá trị v tùy ý làm đầu vào riêng tư bổ sung và (b) đầu ra phải đáp ứng cùng tính chất 1 và 2 của sự đồng thuận được xếp loại, cộng với tính chất 3′ sau: nếu người gửi trung thực thì vi = v và gi = 2 cho tất cả người chơi trung thực i. 9Thật vậy, trong giao thức của họ, ở bước 1, người gửi gửi giá trị riêng v của mình cho tất cả người chơi và mỗi người chơi tôi cho phép v′ tôi bao gồm giá trị mà anh ấy thực sự đã nhận được từ người gửi ở bước 1.3.6 Giao thức BA⋆ Bây giờ chúng ta mô tả giao thức BA có giá trị tùy ý BA⋆thông qua giao thức BA nhị phân BBA⋆ và giao thức đồng thuận xếp loại GC. Dưới đây, giá trị ban đầu của mỗi người chơi i là v′ tôi. Giao thức BA⋆ Bước 1 và 2. Mỗi người chơi i thực thi GC, với đầu vào v′ i, để tính một cặp (vi, gi). Bước 3, . . . Mỗi người chơi tôi thực hiện BBA⋆—với đầu vào ban đầu là 0, nếu gi = 2, và 1 nếu ngược lại— vậy để tính toán bit outi. Xác định đầu ra. Mỗi người chơi i xuất ra vi, nếu outi = 0, và \(\bot\) ngược lại. Định lý 3.3. Bất cứ khi nào n \(\geq\)3t + 1, BA⋆ là một giao thức (n, t)-BA có độ đúng 1. Bằng chứng. Đầu tiên chúng ta chứng minh tính nhất quán và sau đó là sự đồng ý. Bằng chứng về sự nhất quán. Giả sử rằng, với một số giá trị v \(\in\)V , v′ i = v. Khi đó, theo tính chất 3 của sự đồng thuận được phân loại, sau khi thực hiện GC, tất cả những người chơi trung thực đều xuất ra (v, 2). Theo đó, 0 là phần đầu tiên của tất cả những người chơi trung thực khi kết thúc quá trình thực hiện BBA⋆. Vì vậy, theo Hiệp định thuộc tính của thỏa thuận Byzantine nhị phân, khi kết thúc việc thực hiện BA⋆, outi = 0 cho tất cả các giá trị trung thực người chơi. Điều này ngụ ý rằng đầu ra của mỗi người chơi trung thực i trong BA⋆is vi = v. ✷ Bằng chứng về sự đồng ý. Vì BBA⋆ là giao thức BA nhị phân nên (A) outi = 1 đối với tất cả người chơi i trung thực, hoặc (B) outi = 0 đối với tất cả người chơi i trung thực. Trong trường hợp A, tất cả những người chơi trung thực đều xuất ra \(\bot\)in BA⋆ và do đó Thỏa thuận được giữ nguyên. Bây giờ hãy xem xét trường hợp B. Trong trong trường hợp này, khi thực thi BBA⋆, bit đầu tiên của ít nhất một người chơi trung thực i là 0. (Thật vậy, nếu bit ban đầu của tất cả những người chơi trung thực là 1, sau đó, theo thuộc tính Nhất quán của BBA⋆, chúng ta sẽ có outj = 1 cho tất cả j trung thực.) Theo đó, sau khi thực hiện GC, tôi xuất ra cặp (v, 2) cho một số giá trị v. Do đó, theo tính chất 1 của sự đồng thuận đã xếp loại, gj > 0 cho tất cả người chơi trung thực j. Theo đó, bởi tính chất 2 của sự đồng thuận được xếp loại, vj = v cho tất cả những người chơi trung thực j. Điều này hàm ý rằng, vào cuối BA⋆, mọi người chơi trung thực j sẽ đưa ra v. Do đó, Thỏa thuận cũng đúng trong trường hợp B. ✷ Vì cả Tính nhất quán và Thỏa thuận đều giữ nguyên nên BA⋆ là giao thức BA có giá trị tùy ý. Ghi chú lịch sử Turpin và Coan là những người đầu tiên chứng minh rằng, với n \(\geq\)3t+1, mọi hệ nhị phân (n, t)-BA giao thức có thể được chuyển đổi thành giao thức có giá trị tùy ý (n, t)-BA. Việc giảm giá trị tùy ý Thỏa thuận Byzantine với thỏa thuận Byzantine nhị phân thông qua đồng thuận được phân loại mang tính mô đun hơn và sạch hơn và đơn giản hóa việc phân tích giao thức Algorand Algorand của chúng tôi. Tổng quát hóa BA⋆để sử dụng trong Algorand Algorand hoạt động ngay cả khi tất cả giao tiếp đều thông qua buôn chuyện. Tuy nhiên, mặc dù được trình bày trong một mạng truyền thông truyền thống và quen thuộc, để cho phép so sánh tốt hơn với tình trạng kỹ thuật đã biết và dễ hiểu hơn, giao thức BA⋆ hoạt động cũng trong các mạng buôn chuyện. Trên thực tế, trong các phương án chi tiết của Algorand, chúng tôi sẽ trình bày nó trực tiếp cho các mạng buôn chuyện. Chúng ta cũng sẽ chỉ ra rằng nó thỏa mãn khả năng thay thế cầu thủ thuộc tính quan trọng để Algorand được an toàn trong mô hình rất đối nghịch được dự kiến.
Bất kỳ giao thức nào có thể thay thế được trình phát BA đang hoạt động trong mạng truyền thông tin đồn đều có thể được sử dụng một cách an toàn trong hệ thống Algorand sáng tạo. Đặc biệt, Micali và Vaikunthanatan đã mở rộng BA⋆để hoạt động rất hiệu quả với phần lớn những người chơi trung thực. Đó giao thức cũng có thể được sử dụng trong Algorand.
Два варианта реализации Algorand
Как уже говорилось, на очень высоком уровне раунд Algorand в идеале протекает следующим образом. Сначала случайно выбранный пользователь, лидер, предлагает и распространяет новый блок. (Этот процесс первоначально включает в себя выбрать несколько потенциальных лидеров, а затем убедиться, что, по крайней мере, значительную часть времени, появляется единый общий лидер.) Во-вторых, выбирается случайно выбранный комитет пользователей, и достигает византийского соглашения по предложенному вождём блоку. (Этот процесс включает в себя каждый шаг протокола БА выполняется отдельно выбранной комиссией.) Согласованный блок затем подписывается цифровой подписью заданного порогового значения (TH) членов комитета. Эти цифровые подписи распространяются так, чтобы все были уверены в том, какой блок является новым. (Это включает в себя распространение учетные данные подписывающих сторон и аутентифицируя только hash нового блока, гарантируя, что каждый гарантированно изучит блок, как только его hash станет ясным.) В следующих двух разделах мы представляем два варианта реализации Algorand, Algorand ′ 1 и Algorand ′ 2, это работает при предположении большинства честных пользователей. В разделе 8 мы покажем, как принять эти варианты реализации, работающие в предположении честного большинства денег. Algorand ′ 1 предусматривает лишь то, что > 2/3 членов комитета будут честными. Кроме того, в Algorand ′ 1, количество шагов для достижения византийского соглашения ограничено достаточно высоким число, так что соглашение гарантировано будет достигнуто с подавляющей вероятностью в течение фиксированное количество шагов (но потенциально требующее больше времени, чем шаги Algorand ′ 2). В В отдаленном случае, когда соглашение еще не достигнуто на последнем этапе, комитет согласовывает пустой блок, который всегда действителен. Algorand ′ 2 предусматривает, что число честных членов комитета всегда больше, чем или равен фиксированному порогу tH (который гарантирует, что с подавляющей вероятностью по крайней мере 2/3 членов комитета честные). Кроме того, Algorand ′ 2 позволяет византийскому соглашению быть достигнуто за произвольное количество шагов (но потенциально за более короткое время, чем Algorand ′ 1). Легко получить множество вариантов этих основных вариантов осуществления. В частности, это легко, учитывая Algorand ′ 2, чтобы изменить Algorand ′ 1, чтобы дать возможность достичь византийского соглашения в произвольном порядке. количество шагов. Оба варианта осуществления имеют следующее общее ядро, обозначения, понятия и параметры. 4.1 Общее ядро Цели В идеале для каждого раунда r Algorand должен удовлетворять следующим свойствам: 1. Совершенная корректность. Все честные пользователи согласны с тем же блоком Бр. 2. Полнота 1. С вероятностью 1 набор выплат Br, PAY r, является максимальным10. 10Поскольку наборы выплат должны содержать действительные платежи, а честные пользователи должны совершать только действительные платежи, максимальный PAY r содержит «невыплаченные на данный момент» платежи всех честных пользователей.Конечно, гарантировать абсолютную правильность само по себе тривиально: каждый всегда выбирает официальную версию. payset PAY r должен быть пустым. Но в этом случае система имела бы полноту 0. К сожалению, гарантировать как абсолютную правильность, так и полноту 1 непросто при наличии вредоносных пользователи. Таким образом, Algorand ставит более реалистичную цель. Неформально, пусть h обозначает процент честных пользователей, h > 2/3, цель Algorand — Гарантируя с подавляющей вероятностью полную правильность и полноту, близкую к h. Отдавать предпочтение правильности перед полнотой кажется разумным выбором: платежи не обрабатываются в один раунд может быть обработан в следующем, но следует по возможности избегать вилок. Под руководством Византийского соглашения Совершенную правильность можно гарантировать следующим образом. В начале раунда r каждый пользователь i создает свой собственный блок-кандидат Br i, а затем все пользователи доходят до Byzantine соглашение по одному кандидатскому блоку. Согласно нашему введению, используемый протокол BA требует честное большинство в 2/3 и возможность замены игрока. Каждый его шаг может быть выполнен маленьким и случайно выбранный набор проверяющих, которые не имеют общих внутренних переменных. К сожалению, этот подход не имеет гарантий полноты. Это так, потому что кандидат блоки честных пользователей, скорее всего, кардинально отличаются друг от друга. Таким образом, в конечном итоге согласованный блок всегда может быть блоком с немаксимальным набором выплат. На самом деле, это всегда может быть пустой блок B\(\varepsilon\), то есть блок, набор выплат которого пуст. ну, это будет пустое значение по умолчанию. Algorand ′ позволяет избежать этой проблемы полноты следующим образом. Сначала выбирается лидер раунда r, \(\ell\)r. Затем \(\ell\)r распространяет свой собственный блок кандидатов, Br \(\ell\)р. Наконец, пользователи достигают соглашения по блокировке они фактически получают от \(\ell\)r. Потому что всякий раз, когда \(\ell\)r честен, Совершенная правильность и полнота 1 оба верны, Algorand ′ гарантирует, что \(\ell\)r честен с вероятностью, близкой к h. (Когда лидер вредоносный, нас не волнует, является ли согласованный блок блоком с пустой платёжной системой. В конце концов, злонамеренный лидер \(\ell\)r всегда может злонамеренно выбрать Br \(\ell\)r быть пустым блоком, а потом честно распространять его, тем самым заставляя честных пользователей согласиться на пустой блок.) Выбор лидера В Algorand r-й блок имеет вид Br = (r, PAY r, Qr, H(Br-1). Как уже упоминалось во введении, величина Qr−1 тщательно строится так, чтобы быть по сути, нашим очень могущественным противником невозможно манипулировать. (Далее в этом разделе мы рассмотрим дайте некоторое представление о том, почему это так.) В начале раунда r все пользователи знают blockchain на данный момент, B0, . . . , Br−1, из которого они выводят набор пользователей каждого предыдущего раунда: есть, ПК1, . . . , ПКр−1. Потенциальным лидером раунда r является пользователь i такой, что .Х СИГи г, 1, Qr−1 \(\leq\)р. Давайте объясним. Обратите внимание, что, поскольку величина Qr−1 является частью блока Br−1, а лежащее в ее основе схема подписи удовлетворяет свойству уникальности SIGi г, 1, Qr−1 однозначно является двоичной строкой связанный с i и r. Таким образом, поскольку H является случайным oracle, H СИГи г, 1, Qr−1 это случайный 256-битный длинная строка, однозначно связанная с i и r. Символ «.» перед Х СИГи г, 1, Qr−1 это десятичная (в нашем случае двоичная) точка, так что ri \(\triangleq\).H СИГи г, 1, Qr−1 представляет собой двоичное разложение случайное 256-битное число от 0 до 1, однозначно связанное с i и r. Таким образом, вероятность того, что ri меньше или равно p, по существу, p. (Наш механизм отбора потенциальных лидеров был вдохновлен схемой микроплатежей Микали и Ривеста [28].) Вероятность p выбирается так, чтобы с подавляющей (т. е. 1 −F) вероятностью хотя бы один потенциальный проверяющий честен. (Если это действительно так, то p выбирается как наименьшая такая вероятность.)Обратите внимание: поскольку i — единственный, кто способен вычислить свои собственные подписи, он один может определить, является ли он потенциальным проверяющим в раунде 1. Однако, раскрыв свои собственные учетные данные, \(\sigma\)р я \(\triangleq\)SIGi г, 1, Qr−1 , я могу доказать любому, что являюсь потенциальным проверяющим раунда r. Лидером \(\ell\)r считается потенциальный лидер, чьи учетные данные hash меньше, чем у hashed учетные данные всех остальных потенциальных лидеров j: то есть H(\(\sigma\)r,s \(\ell\)r ) \(\leq\)H(\(\sigma\)r,s дж). Обратите внимание: поскольку злонамеренный \(\ell\)r может не раскрыть свои полномочия, правильный лидер раунда r может никогда не будет известно, и что, если не считать невероятных связей, \(\ell\)r действительно является единственным лидером раунда r. Давайте, наконец, коснемся последней, но важной детали: пользователь i может быть потенциальным лидером (и, следовательно, лидер) раунда r только в том случае, если он принадлежал системе не менее k раундов. Это гарантирует невозможность манипулирования Qr и всеми будущими Q-величинами. Фактически один из потенциальных лидеров фактически определит Qr. Выбор проверяющего Каждый шаг s > 1 раунда r выполняется небольшим набором проверяющих SV r,s. Опять же, каждый верификатор i \(\in\)SV r,s выбирается случайным образом среди пользователей, уже находящихся в системе k раундов. перед r и снова через специальную величину Qr−1. В частности, i \(\in\)PKr−k является верификатором в SV r,s, если .Х СИГи г, с, Qr−1 \(\leq\)p'. Опять же, только я знаю, принадлежит ли он к SV r,s, но если это так, то он мог бы доказать это, предъявляя свои полномочия \(\sigma\)r,s я \(\triangleq\)H(SIGi г, с, Qr−1 ). Верификатор i \(\in\)SV r,s отправляет сообщение mr,s я, в шаг s раунда r, и это сообщение включает его учетные данные \(\sigma\)r,s i , чтобы дать возможность верификаторам Следующий шаг, чтобы признать, что мистер, с я является законным сообщением шага. Вероятность p' выбирается так, чтобы гарантировать, что в SV r,s, пусть #good будет числом честные пользователи и #bad количество злонамеренных пользователей, с подавляющей вероятностью следующее выполняются два условия. Для варианта реализации Algorand ′ 1: (1) #хорошо > 2 \(\cdot\) #плохо и (2) #good + 4 \(\cdot\) #bad < 2n, где n — ожидаемая мощность SV r,s. Для варианта реализации Algorand ′ 2: (1) #good > tH и (2) #good + 2#bad < 2tH, где tH — заданный порог. Из этих условий следует, что с достаточно большой вероятностью: (а) на последнем шаге БА протоколу, будет как минимум заданное количество честных игроков, которые подпишут цифровой подписью новый блок Br, (б) только один блок за раунд может иметь необходимое количество подписей, и (в) используемый БА протокол имеет (на каждом этапе) необходимое честное большинство в 2/3. Уточнение генерации блоков Если лидер раунда \(\ell\)r честен, то соответствующий блок имеет форму Бр = r, PAY r, SIG\(\ell\)r Qr−1 , Ч Бр-1 , где набор выплат PAY r является максимальным. (напомним, что все наборы выплат по определению действительны коллективно.) В противном случае (т. е. если \(\ell\)r является вредоносным), Br имеет одну из следующих двух возможных форм: Бр = р, ПЛАТИТЕ р, СИГи Qr−1 , Ч Бр-1 и Бр = Бр \(\varepsilon\) \(\triangleq\) r, \(\emptyset\), Qr−1, H Бр-1 .В первой форме PAY r — это (не обязательно максимальный) набор выплат, и это может быть PAY r = \(\emptyset\); и я потенциальный лидер раунда r. (Однако я не могу быть лидером \(\ell\)r. Это действительно может случиться, если \(\ell\)r хранит в тайне свои полномочия и не раскрывает себя.) Вторая форма возникает, когда при выполнении раунда-r протокола БА все честные игроки выведите значение по умолчанию, то есть пустой блок Br \(\varepsilon\) в нашем приложении. (По определению, возможный выходные данные протокола BA включают значение по умолчанию, обычно обозначаемое \(\bot\). См. раздел 3.2.) Обратите внимание: хотя в обоих случаях платежные наборы пусты, Br = r, \(\emptyset\), СИГи Qr−1 , Ч Бр-1 и Бр \(\varepsilon\) являются синтаксически разными блоками и возникают в двух разных ситуациях: соответственно, «все в исполнении протокола БА прошло достаточно гладко», а «что-то пошло не так в протокол BA, и было выведено значение по умолчанию». Давайте теперь интуитивно опишем, как происходит генерация блока Br в раунде r Algorand ′. На первом этапе каждый подходящий игрок, то есть каждый игрок i \(\in\)PKr−k, проверяет, является ли он потенциальным игроком. лидер. Если это так, то меня спрашивают, используя все платежи, которые он видел до сих пор, и текущий blockchain, B0, . . . , Br−1, чтобы тайно подготовить максимальный набор выплат, PAY r я и тайно собирает свой блок кандидатов, Br = р, ПЛАТИТЕ р я, СИГи Qr−1 , Ч Бр-1 . То есть он не только включить в руб. i , в качестве второго компонента только что подготовленный набор выплат, но также, в качестве третьего компонента, его собственная подпись Qr−1, третьего компонента последнего блока, Br−1. Наконец, он пропагандирует свою сообщение round-r-step-1, мистер, 1 i , который включает в себя (а) его блок-кандидат Br я , (б) его собственная подпись своего блока-кандидата (т. е. его подпись hash Br i , и (c) его собственные полномочия \(\sigma\)r,1 я, доказывая что он действительно является потенциальным проверяющим раунда r. (Обратите внимание, что до тех пор, пока честный i не выдаст свое сообщение mr,1 i, Противник понятия не имеет, что я потенциальный проверяющий. Если он захочет развратить честных потенциальных лидеров, Противник также может коррумпированные случайные честные игроки. Однако, как только он увидит мистера,1 i , поскольку он содержит учетные данные i, Противник знает и может испортить меня, но не может предотвратить мистера,1 i , который распространяется вирусно, из охват всех пользователей системы.) На втором этапе каждый выбранный проверяющий j \(\in\)SV r,2 пытается определить лидера раунда. В частности, j принимает учетные данные шага 1, \(\sigma\)r,1 я1 , . . . , \(\sigma\)r,1 in , содержащийся в соответствующем сообщении шага 1 mr,1 я он получил; hashпроверяет все из них, то есть вычисляет H \(\sigma\)р,1 я1 , . . . , Ч \(\sigma\)р,1 в ; находит удостоверение, \(\sigma\)р,1 \(\ell\)j , hash которого является лексикографически минимальным; и считает \(\ell\)r j стать лидером раунда r. Напомним, что каждая рассматриваемая учетная запись представляет собой цифровую подпись Qr-1, что SIGi г, 1, Qr−1 есть однозначно определяется i и Qr−1, что H является случайным oracle и, таким образом, каждый H(SIGi г, 1, Qr−1 — это случайная 256-битная длинная строка, уникальная для каждого потенциального лидера i раунда r. Отсюда мы можем заключить, что если бы 256-битная строка Qr−1 сама была случайным и независимым выбраны, чем будут hashed полномочия всех потенциальных лидеров раунда r. Фактически, все потенциальные лидеры четко определены, как и их полномочия (будь то фактически вычисленные или нет). Далее, множество потенциальных лидеров раунда r представляет собой случайное подмножество пользователей раунда r −k, и честный потенциальный лидер i всегда правильно формирует и распространяет свое послание, мистер я, который содержит мои учетные данные. Таким образом, поскольку процент честных пользователей равен h, независимо от злонамеренные потенциальные лидеры могут сделать (например, раскрыть или скрыть свои полномочия), как минимум hashed удостоверение потенциального лидера принадлежит честному пользователю, которого все обязательно идентифицируют. быть лидером \(\ell\)r раунда r. Соответственно, если бы 256-битная строка Qr-1 сама была случайной и независимо выбираются с вероятностью ровно h (а) лидер \(\ell\)r честен и (б) \(\ell\)j = \(\ell\)r для всех честные проверяющие второго этапа j. В действительности, да, учетные данные hashed выбираются случайным образом, но зависят от Qr-1, которыйвыбраны не случайно и независимо. Однако в нашем анализе мы докажем, что Qr−1 достаточно не поддается манипулированию, чтобы гарантировать, что лидер раунда честен с вероятностью h′ достаточно близко к h: а именно h′ > h2(1 + h −h2). Например, если h = 80%, то h' > 0,7424. Определив лидера раунда (что они правильно делают, если ведущий честен), задача верификаторов шага 2 — начать выполнение БА, используя в качестве начальных значений то, что они считают быть блоком лидера. На самом деле, чтобы минимизировать объем необходимого общения, верификатор j \(\in\)SV r,2 не использует в качестве входного значения v′ j к византийскому протоколу, блок Bj, который он фактически получил от \(\ell\)j (пользователь j считает себя лидером), но лидер, но hash этого блока, то есть v' j = H(Bi). Таким образом, по завершении протокола БА верификаторы последнего шага не вычисляют желаемый блок round-r Br, а вычисляют (аутентифицируют и распространять) H(Br). Соответственно, поскольку H(Br) имеет цифровую подпись достаточного числа верификаторов последнем этапе протокола BA, пользователи системы поймут, что H(Br) — это hash нового блок. Однако они также должны получить (или дождаться, поскольку выполнение достаточно асинхронно) заблокировать сам Br, что протокол гарантирует, что он действительно доступен, независимо от того, что делает Противник может сделать. Асинхронность и время Algorand ′ 1 и Algorand ' 2 имеют значительную степень асинхронности. Это происходит потому, что Противник имеет большую свободу в планировании доставки сообщений. распространяется. Кроме того, независимо от того, ограничено ли общее количество шагов в раунде или нет, существует вклад дисперсии зависит от количества фактически предпринятых шагов. Как только он узнает сертификаты B0, . . . , Br−1, пользователь i вычисляет Qr−1 и начинает работать в раунде r, проверяя, является ли он потенциальным лидером или проверяющим на некоторых шагах s раунда r. Предполагая, что я должен действовать на шагах s, в свете обсуждаемой асинхронности я полагаюсь на различные стратегии, позволяющие гарантировать, что он располагает достаточной информацией, прежде чем действовать. Например, он может дождаться получения хотя бы заданного количества сообщений от проверяющих предыдущий шаг, или подождите достаточно времени, чтобы убедиться, что он получил сообщения достаточно многие проверяющие предыдущего шага. Начальное значение Qr и параметр обратного анализа k Напомним, что в идеале величины Qr должны случайны и независимы, хотя для того, чтобы ими было достаточно не поддаваться манипулированию со стороны Противник. На первый взгляд, мы могли бы выбрать Qr−1 таким, чтобы он совпадал с H ПЛАТИТЬ r−1 и, таким образом, избежать задайте Qr−1 явно в Br−1. Однако элементарный анализ показывает, что злонамеренные пользователи могут воспользоваться этим механизмом отбора.11 Некоторые дополнительные усилия показывают, что мириады других 11Мы находимся в начале раунда r−1. Таким образом, Qr−2 = PAY r−2 общеизвестно, а Противник — конфиденциально. знает, кто является потенциальными лидерами, которых он контролирует. Предположим, что Злоумышленник контролирует 10% пользователей и что с очень высокой вероятностью злонамеренный пользователь w является потенциальным лидером раунда r−1. То есть предположим, что Ч СИГв г −2, 1, Qr−2 настолько мал, что крайне маловероятно, что честный потенциальный лидер действительно окажется лидер раунда r−1. (Напомним, что, поскольку мы выбираем потенциальных лидеров с помощью секретного механизма криптографической сортировки, Противник не знает, кто такие честные потенциальные лидеры.) Противник, следовательно, находится в завидном положении. позицию выбора набора выплат PAY ′, который он хочет, и сделать его официальным набором выплат в раунде r −1. Однако, он может сделать больше. Он также может гарантировать, что с высокой вероятностью () один из его злонамеренных пользователей станет лидером. также раунда r, чтобы он мог свободно выбирать, какой будет PAY r. (И так далее. По крайней мере, надолго, т.е. до тех пор, пока эти события с высокой вероятностью действительно происходят.) Чтобы гарантировать (), Противник действует следующим образом. Пусть ПЛАТИТ' — набор выплат, который противник предпочитает для раунда r −1. Затем он вычисляет H(PAY ′) и проверяет, существует ли для некоторых уже злонамеренного игрока z, SIGz(r, 1, H(PAY ′)) особенно мал, то есть настолько мал, что с очень высоким вероятность z будет лидером раунда r. Если это так, то он дает команду w выбрать блок-кандидат на рольальтернативы, основанные на традиционном количестве блоков, легко могут быть использованы злоумышленником для обеспечения что злонамеренные лидеры встречаются очень часто. Вместо этого мы конкретно и индуктивно определяем наш бренд. новую величину Qr, чтобы иметь возможность доказать, что Противник не может манипулировать ею. А именно, Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), если Br не пустой блок, и Qr \(\triangleq\)H(Qr−1, r) в противном случае. Интуиция того, почему эта конструкция Qr работает, заключается в следующем. Предположим на мгновение, что Qr-1 действительно выбирается случайно и независимо. Тогда Qr будет таким же? Когда \(\ell\)r честен, ответ (грубо говоря) да. Это так, потому что H(SIG\(\ell\)r( \(\cdot\) ), r) : {0, 1}256 −→ {0, 1}256 является случайной функцией. Однако когда \(\ell\)r является злонамеренным, Qr больше не определяется однозначно из Qr-1. и \(\ell\)р. Существует как минимум два отдельных значения для Qr. Один продолжает оставаться Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), а другой — H(Qr−1, r). Давайте сначала покажем, что, хотя второй выбор несколько произволен, второй выбор абсолютно обязателен. Причина этого в том, что злонамеренный \(\ell\)r всегда может вызвать совершенно разные блоки-кандидаты, которые будут получены честными проверяющими на втором этапе.12 Однажды это так, легко гарантировать, что блокировка в конечном итоге будет согласована через протокол BA раунд r будет использоваться по умолчанию и, следовательно, не будет содержать ничьей цифровой подписи Qr-1. Но система должна продолжать свое существование, а для этого ей нужен лидер раунда r. Если этот лидер автоматически и открыто выбран, то Противник банально развратит его. Если он выбран предыдущим Qr−1 посредством того же процесса, тогда \(\ell\)r снова станет лидером в раунде r+1. Мы специально предлагаем использовать тот же секретный механизм криптографической сортировки, но примененный к новой величине Q: а именно, H(Qr−1, r). Поскольку эта величина является выходом H, гарантируется, что результат будет случайным, и включив r в качестве второго входа H, в то время как все другие варианты использования H имеют один или более 3 входов, «гарантирует», что такой Qr будет выбран независимо. Опять же, наш конкретный выбор альтернативы Qr не имеет значения, важно то, что у \(\ell\)r есть два варианта для Qr, и, таким образом, он может удвоить свои шансы чтобы следующим лидером стал еще один злонамеренный пользователь. Вариантов Qr может быть даже больше для Противника, который управляет злонамеренным \(\ell\)r. Например, пусть x, y и z — три потенциальных злонамеренных лидера раунда r такие, что Ч \(\sigma\)р,1 х < Ч \(\sigma\)р,1 й < Ч \(\sigma\)р,1 я и Х \(\sigma\)р,1 я особенно мал. То есть настолько мал, что есть большая вероятность, что H \(\sigma\)р,1 я есть меньший из __PH_0004__ed удостоверений каждого честного потенциального лидера. Затем, попросив x скрыть свое Если у вас есть полномочия, Противник имеет хорошие шансы на то, что y станет лидером раунда r −1. Это подразумевает, что у него есть другой вариант для Qr: а именно SIGy Qr−1 . Аналогично, Противник может попросить x и y скрыть свои полномочия, чтобы z стал лидером раунда r −1. и получаем еще один вариант для Qr: а именно SIGz Qr−1 . Однако, конечно, каждый из этих и других вариантов имеет ненулевой шанс потерпеть неудачу, поскольку Злоумышленник не может предсказать hash цифровых подписей честных потенциальных пользователей. Бр-1 я = (r −1, PAY ′, H(Br−2). В противном случае у него есть еще два злоумышленника x и y, которые продолжат генерировать новый платеж. \(\wp\)', от одного к другому, пока для какого-нибудь злонамеренного пользователя z (или даже для какого-то фиксированного пользователя z) H (SIGz (PAY ′ \(\cup\){\(\wp\)})) не станет особенно маленький. Этот эксперимент прекратится довольно быстро. И когда это произойдет, Противник попросит нас предложить блок-кандидат Br−1 я = (r−1, PAY ′ \(\cup\){\(\wp\)}, H(Br−2). 12Например, для простоты (но экстремальности): «когда время второго шага подходит к концу», \(\ell\)r мог бы напрямую отправьте по электронной почте разные блоки-кандидаты Bi каждому пользователю i. Таким образом, кем бы ни были верификаторы второго шага, они получат совершенно другие блоки.Тщательный анализ, подобный цепочке Маркова, показывает, что независимо от того, какие варианты выберет Противник сделать в раунде r-1, пока он не может ввести в систему новых пользователей, он не может уменьшить вероятность того, что честный пользователь окажется лидером раунда r + 40, намного ниже h. Это причина для чего мы требуем, чтобы потенциальными лидерами раунда r были пользователи, уже существующие в раунде r −k. Это способ гарантировать, что в раунде r −k Противник не сможет существенно изменить вероятность того, что честный пользователь станет лидером раунда r. Фактически, независимо от того, каких пользователей он может добавить в системе в раундах от r −k до r, они не имеют права стать потенциальными лидерами (и, тем более, лидер) раунда r. Таким образом, параметр обратного просмотра k в конечном итоге является параметром безопасности. (Хотя, как мы увидим в разделе 7, он также может быть своего рода «параметром удобства».) Эфемерные ключи Хотя выполнение нашего протокола не может генерировать форк, кроме как с помощью с незначительной вероятностью, злоумышленник может сгенерировать форк в r-м блоке после законного блок r был сгенерирован. Грубо говоря, как только Br был сгенерирован, Противник узнал, кто является проверяющим каждого шага. круглых r. Таким образом, он мог бы испортить их всех и обязать сертифицировать новый блок. ж Бр. Поскольку этот фальшивый блок может распространяться только после легитимного, пользователи, которые были обративший внимание не будет обманут.13 Тем не менее, f Br было бы синтаксически правильно, и мы хочу предотвратить производство. Мы делаем это посредством нового правила. По сути, члены проверяющего множества SV r,s шага s раунда r использовать эфемерные открытые ключи pkr,s я подписывать свои сообщения цифровой подписью. Эти ключи предназначены только для одноразового использования, а соответствующие им секретные ключи skr,s я уничтожаются после использования. Таким образом, если проверяющий позже испорченный, Противник не может заставить его подписать что-либо еще, что он не подписывал изначально. Естественно, мы должны гарантировать, что Противник не сможет вычислить новый ключ g пр,с я и убедить честного пользователя, что это правильный эфемерный ключ проверяющего устройства i \(\in\)SV r,s для использования на шаге s. 4.2 Общая сводка обозначений, понятий и параметров Обозначения • r \(\geq\)0: текущий номер раунда. • s \(\geq\)1: текущий номер шага в раунде r. • Br: блок, созданный в раунде r. • PKr: набор открытых ключей к концу раунда r−1 и в начале раунда r. • Sr: состояние системы к концу раунда r−1 и к началу раунда r.14. • PAY r: набор выплат, содержащийся в Br. • \(\ell\)r: лидер раунда r. \(\ell\)r выбирает набор выплат PAY r в раунде r (и определяет следующий Qr). • Qr: начальное число раунда r, величина (т. е. двоичная строка), которая генерируется в конце раунда r. и используется для выбора верификаторов для раунда r + 1. Qr не зависит от наборов выплат в блоках и им нельзя манипулировать с помощью \(\ell\)r. 13Подумайте о том, чтобы подкупить ведущего новостей крупной телесети, а сегодня создать и транслировать кинохронику. показывая, что госсекретарь Клинтон победила на последних президентских выборах. Большинство из нас признало бы это мистификацией. Но кого-то, выходящего из комы, можно обмануть. 14В несинхронной системе понятия «конец раунда r −1» и «начало раунда r» необходимо тщательно определить. Математически PKr и Sr вычисляются из исходного состояния S0 и блоков В1, . . . , Бр−1.• SV r,s: набор верификаторов, выбранных для шага s раунда r. • SV r: набор верификаторов, выбранных для раунда r, SV r = \(\cup\)s\(\geq\)1SV r,s. • MSV r,s и HSV r,s: соответственно набор злонамеренных проверяющих и набор честных проверяющих. в СВ р,с. MSV r,s \(\cup\)HSV r,s = SV r,s и MSV r,s ∩HSV r,s = \(\emptyset\). • n1 \(\in\)Z+ и n \(\in\)Z+: соответственно ожидаемое количество потенциальных лидеров в каждом СВ r,1, и ожидаемое количество проверяющих в каждом SV r,s для s > 1. Обратите внимание, что n1 << n, так как нам нужен хотя бы один честный честный член в SV r,1, но хотя бы большинство честных членов в каждом СВ r,s при s > 1. • h \(\in\)(0, 1): константа больше 2/3. h — коэффициент честности в системе. То есть доля честных пользователей или честных денег, в зависимости от использованного предположения, в каждом PKr составляет по крайней мере ч. • H: криптографическая функция hash, смоделированная как случайная oracle. • \(\bot\): специальная строка той же длины, что и выходные данные H. • F \(\in\)(0, 1): параметр, определяющий допустимую вероятность ошибки. Вероятность \(\leq\)F равна считается «незначительной», а вероятность \(\geq\)1 −F считается «подавляющей». • ph \(\in\)(0, 1): вероятность того, что лидер раунда r, \(\ell\)r, честен. В идеале ph = h. С существования Противника, значение ph будет определено в ходе анализа. • k \(\in\)Z+: параметр просмотра назад. То есть раунд r −k — это место, где проверяющими для раунда r являются выбран из — а именно SV r \(\subseteq\)PKr−k.15 • p1 \(\in\)(0, 1): на первом этапе раунда r пользователь в раунде r−k выбирается находящимся в SV r,1 с вероятность p1 \(\triangleq\) n1 |П Кр−к|. • p \(\in\)(0, 1): для каждого шага s > 1 раунда r пользователь в раунде r−k выбирается для пребывания в SV r,s с вероятность р \(\triangleq\) н |П Кр−к|. • CERT r: сертификат для Br. Это набор tH сигнатур H(Br) от собственных проверяющих в круглый р. • Br \(\triangleq\)(Br, CERT r) — проверенный блок. Пользователь i знает Br, если он владеет (и успешно верифицирует) обе части проверенного блока. Обратите внимание, что CERT r, видимый разными пользователями, может быть разным. • τ р i : (местное) время, в которое пользователь i знает Br. В протоколе Algorand каждый пользователь имеет свой собственные часы. Часы разных пользователей не обязательно должны быть синхронизированы, но должны иметь одинаковую скорость. Только в целях анализа мы рассматриваем эталонные часы и измеряем результативность игроков. связанные с ним времена. • \(\alpha\)r,s я и \(\beta\)r,s i : соответственно (локальное) время, когда пользователь i начинает и заканчивает выполнение шагов s круглый р. • Λ и \(\lambda\): по сути, верхние границы времени, необходимого для выполнения Шага 1 и Шага 1, соответственно. время, необходимое для любого другого шага протокола Algorand. Параметр Λ ограничивает время распространения одного блока размером 1 МБ. (В наших обозначениях Λ = \(\lambda\) \(\rho\),1MB. Вспоминая наши обозначения, мы установили \(\rho\) = 1 для простоты и что блоки если длина выбрана не более 1 МБ, то Λ = \(\lambda\)1,1,1MB.) 15Строго говоря, «r−k» должно быть «max{0, r−k}».Параметр \(\lambda\) ограничивает время распространения одного небольшого сообщения на одного верификатора за шаг s > 1. (При использовании, как в Bitcoin, подписей в форме эллиптической кривой с ключами длиной 32 байта, длина проверяющего сообщения составляет 200 байт. Таким образом, в наших обозначениях \(\lambda\) = \(\lambda\)n,\(\rho\),200B.) Предположим, что Λ = O(\(\lambda\)). Понятия • Выбор проверяющего. Для каждого раунда r и шага s > 1 SV r,s \(\triangleq\){i \(\in\)PKr−k : .H(SIGi(r, s, Qr−1)) \(\leq\)p}. Каждый пользователь i \(\in\)PKr-k конфиденциально вычисляет свою подпись, используя свой долгосрочный ключ, и решает, стоит ли i \(\in\)SV r,s или нет. Если i \(\in\)SV r,s, то SIGi(r, s, Qr−1) является (r, s)-удостоверением i, компактно обозначаемым по \(\sigma\)r,s я. Для первого шага раунда r SV r,1 и \(\sigma\)r,1 я определяются аналогично, с заменой p на p1. проверяющие в SV r,1 являются потенциальными лидерами. • Выбор лидера. Пользователь i \(\in\)SV r,1 является лидером раунда r, обозначается \(\ell\)r, если H(\(\sigma\)r,1 i ) \(\leq\)H(\(\sigma\)r,1 j) для всех потенциальных лидеры j \(\in\)SV r,1. Всякий раз, когда сравниваются hash учетных данных двух игроков, в маловероятном случае В случае возникновения связей протокол всегда разрывает связи лексикографически в соответствии с (долгосрочными публичными ключи) потенциальных лидеров. По определению, значение hash учетных данных игрока \(\ell\)r также является наименьшим среди всех пользователей в ПКр−к. Обратите внимание, что потенциальный лидер не может в частном порядке решить, является он лидером или нет. не видя полномочий других потенциальных лидеров. Поскольку значения hash случайны и однородны, когда SV r,1 непусто, \(\ell\)r всегда существует и честный с вероятностью не менее h. Параметр n1 достаточно велик, чтобы гарантировать, что каждый SV r,1 непусто с подавляющей вероятностью. • Блочная структура. Непустой блок имеет вид Br = (r, PAY r, SIG\(\ell\)r(Qr−1), H(Br−1)), а пустой блок имеет вид Br \(\varepsilon\) = (r, \(\emptyset\), Qr−1, H(Br−1)). Обратите внимание, что непустой блок все еще может содержать пустой набор платежей PAY r, если в в этом раунде или если лидер злонамерен. Однако непустой блок подразумевает, что тождество \(\ell\)r, его полномочия \(\sigma\)r,1 \(\ell\)r и SIG\(\ell\)r(Qr-1) были своевременно обнаружены. Протокол гарантирует что если лидер честен, то блок с подавляющей вероятностью окажется непустым. • Семена Qr. Если Br непусто, то Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), иначе Qr \(\triangleq\) H(Qr−1, r). Параметры • Отношения между различными параметрами. — Проверяющие и потенциальные лидеры раунда r выбираются из пользователей PKr−k, где k выбрано таким образом, чтобы противник не мог предсказать Qr−1 обратно в раунде r −k −1. с вероятностью лучше F: в противном случае он сможет внедрить злонамеренных пользователей для раунда r −k, все из которых будут потенциальными лидерами/проверяющими в раунде r, добившимися успеха в
наличие злонамеренного лидера или злонамеренного большинства в СВ для некоторых шагов, желаемых его. — Для шага 1 каждого раунда r n1 выбирается так, чтобы с подавляющей вероятностью SV r,1 ̸= \(\emptyset\). • Пример выбора важных параметров. — Выходные данные H имеют длину 256 бит. — h = 80%, n1 = 35. — Λ = 1 минута и \(\lambda\) = 10 секунд. • Инициализация протокола. Протокол начинается в момент 0 с r = 0. Поскольку не существует «B-1» или «CERT-1», синтаксически B-1 является общедоступным параметром, третий компонент которого определяет Q-1, и все пользователи знать B-1 в момент времени 0.
Hai phương án của Algorand
Như đã thảo luận, ở cấp độ rất cao, vòng Algorand lý tưởng nhất là tiến hành như sau. Đầu tiên, một cách ngẫu nhiên
người dùng được chọn, người lãnh đạo, đề xuất và lưu hành một khối mới.
(Quá trình này bao gồm bước đầu
lựa chọn một vài nhà lãnh đạo tiềm năng và sau đó đảm bảo rằng, ít nhất là trong một khoảng thời gian nhất định, một
người lãnh đạo chung duy nhất xuất hiện.) Thứ hai, một ủy ban người dùng được chọn ngẫu nhiên sẽ được chọn và
đạt được thỏa thuận Byzantine về khối do người lãnh đạo đề xuất. (Quá trình này bao gồm
mỗi bước của giao thức BA được điều hành bởi một ủy ban được lựa chọn riêng.) Khối đã thống nhất
sau đó được ký điện tử bởi một ngưỡng (TH) nhất định của các thành viên ủy ban. Những chữ ký số này
được lưu hành để mọi người yên tâm đâu là block mới. (Điều này bao gồm việc lưu hành các
thông tin xác thực của người ký và chỉ xác thực hash của khối mới, đảm bảo rằng mọi người
được đảm bảo tìm hiểu khối, khi hash của nó được làm rõ.)
Trong hai phần tiếp theo, chúng tôi trình bày hai phương án của Algorand, Algorand ′
1 và Algorand ′
2,
hoạt động theo giả định của đa số người dùng trung thực. Trong Phần 8, chúng tôi trình bày cách áp dụng những
các phương án để hoạt động theo giả định về phần lớn số tiền trung thực.
Algorand ′
1 chỉ dự kiến rằng > 2/3 số thành viên ủy ban là trung thực. Ngoài ra, trong
Algorand ′
1, số bước để đạt được thỏa thuận Byzantine bị giới hạn ở mức cao phù hợp
số lượng, do đó thỏa thuận đó được đảm bảo đạt được với xác suất áp đảo trong vòng một
số bước cố định (nhưng có thể yêu cầu thời gian dài hơn các bước của Algorand ′
2). trong
trường hợp xa mà chưa đạt được thỏa thuận ở bước cuối cùng, ủy ban sẽ đồng ý về
khối trống, luôn hợp lệ.
Algorand ′
2 dự tính rằng số lượng thành viên trung thực trong một ủy ban luôn lớn hơn
hoặc bằng một ngưỡng cố định tH (đảm bảo rằng, với xác suất áp đảo, ít nhất
2/3 số thành viên trong ủy ban là trung thực). Ngoài ra, Algorand ′
2 cho phép thỏa thuận Byzantine
có thể đạt được theo số bước tùy ý (nhưng có thể trong thời gian ngắn hơn Algorand ′
1).
Thật dễ dàng để rút ra nhiều biến thể của các phương án cơ bản này. Đặc biệt, nó rất dễ dàng, được đưa ra
Algorand ′
2, để sửa đổi Algorand ′
1 để có thể đạt được thỏa thuận Byzantine một cách tùy tiện
số bước.
Cả hai phương án đều có chung cốt lõi, ký hiệu, khái niệm và tham số sau đây.
4.1
Cốt lõi chung
Mục tiêu
Lý tưởng nhất là với mỗi vòng r, Algorand sẽ đáp ứng các thuộc tính sau:
1. Độ chính xác hoàn hảo. Tất cả người dùng trung thực đều đồng ý về cùng một khối Br.
2. Tính đầy đủ 1. Với xác suất 1, tập hợp thanh toán của Br, PAY r, là tối đa.10
10Bởi vì các khoản thanh toán được xác định để chứa các khoản thanh toán hợp lệ và người dùng trung thực chỉ thực hiện các khoản thanh toán hợp lệ, mức tối đa
TRẢ TIỀN r chứa các khoản thanh toán “hiện chưa thanh toán” của tất cả người dùng trung thực.Tất nhiên, việc đảm bảo tính đúng đắn hoàn hảo chỉ là chuyện nhỏ: mọi người luôn chọn phương án chính thức.
tập hợp lương PAY r để trống. Nhưng trong trường hợp này, hệ thống sẽ có độ đầy đủ bằng 0. Thật không may,
đảm bảo cả tính đúng đắn và đầy đủ hoàn hảo 1 là không dễ dàng khi có sự hiện diện của phần mềm độc hại
người dùng. Algorand do đó áp dụng mục tiêu thực tế hơn. Một cách không chính thức, gọi h là tỷ lệ phần trăm
số người dùng trung thực, h > 2/3, mục tiêu của Algorand là
Đảm bảo, với xác suất áp đảo, tính đúng đắn và đầy đủ hoàn hảo gần với h.
Ưu tiên tính chính xác hơn là tính đầy đủ có vẻ là một lựa chọn hợp lý: các khoản thanh toán không được xử lý trong
một vòng có thể được xử lý ở vòng tiếp theo, nhưng người ta nên tránh dùng nĩa, nếu có thể.
Thỏa thuận Byzantine dẫn đầu
Độ chính xác hoàn hảo có thể được đảm bảo như sau. Lúc bắt đầu
của vòng r, mỗi người dùng i xây dựng khối ứng viên Br của riêng mình
i , sau đó tất cả người dùng sẽ tiếp cận Byzantine
thỏa thuận về một khối ứng cử viên. Theo phần giới thiệu của chúng tôi, giao thức BA được sử dụng yêu cầu
đa số trung thực là 2/3 và người chơi có thể thay thế được. Mỗi bước của nó có thể được thực hiện bởi một khối nhỏ và
tập hợp những người xác minh được chọn ngẫu nhiên, những người không chia sẻ bất kỳ biến bên trong nào.
Thật không may, cách tiếp cận này không có sự đảm bảo đầy đủ. Sở dĩ như vậy là vì ứng viên
khối người dùng trung thực rất có thể hoàn toàn khác nhau. Như vậy, cuối cùng
khối được thỏa thuận có thể luôn là khối có tập hợp thanh toán không tối đa. Trên thực tế, nó có thể luôn luôn là
khối trống, B\(\varepsilon\), nghĩa là khối có tập thanh toán trống. cũng là mặc định, trống rỗng.
Algorand ′ tránh vấn đề về tính đầy đủ này như sau. Đầu tiên, người dẫn đầu cho vòng r, \(\ell\)r, được chọn.
Sau đó, \(\ell\)r truyền bá khối ứng cử viên của chính mình, Br
\(\ell\)r. Cuối cùng, người dùng đạt được thỏa thuận về khối
họ thực sự nhận được từ \(\ell\)r. Bởi vì, bất cứ khi nào \(\ell\)r trung thực, Tính đúng đắn và hoàn chỉnh hoàn hảo
1 đều giữ nguyên, Algorand ′ đảm bảo rằng \(\ell\)r trung thực với xác suất gần h. (Khi người lãnh đạo
độc hại, chúng tôi không quan tâm liệu khối đã thỏa thuận có phải là khối có tập hợp thanh toán trống hay không. Rốt cuộc, một
nhà lãnh đạo độc hại \(\ell\)r luôn có thể chọn Br một cách ác ý
\(\ell\)r là khối trống, và thành thật mà nói
truyền bá nó, do đó buộc những người dùng trung thực phải đồng ý với khối trống.)
Lựa chọn lãnh đạo
Trong Algorand's, khối thứ r có dạng Br = (r, PAY r, Qr, H(Br−1).
Như đã đề cập trong phần giới thiệu, đại lượng Qr−1 được xây dựng cẩn thận sao cho
về cơ bản là không thể bị Kẻ thù rất mạnh của chúng ta thao túng. (Phần sau của phần này chúng ta sẽ
cung cấp một số trực giác về lý do tại sao lại như vậy.) Khi bắt đầu vòng r, tất cả người dùng đều biết
blockchain cho đến nay, B0, . . . , Br−1, từ đó họ suy ra tập người dùng của mỗi vòng trước: đó
là PK1, . . . , PKr−1. Người dẫn đầu tiềm năng của vòng r là người dùng i sao cho
.H
SIGi
r, 1, Qr−1
\(\leq\)p .
Hãy để chúng tôi giải thích.
Lưu ý rằng, vì đại lượng Qr−1 là một phần của khối Br−1 và đại lượng cơ bản
lược đồ chữ ký thỏa mãn tính chất duy nhất, SIGi
r, 1, Qr−1
là một chuỗi nhị phân duy nhất
liên kết với i và r. Do đó, vì H là oracle ngẫu nhiên nên H
SIGi
r, 1, Qr−1
là 256-bit ngẫu nhiên
chuỗi dài liên kết duy nhất với i và r. Ký hiệu “.” trước H.
SIGi
r, 1, Qr−1
là
điểm thập phân (trong trường hợp của chúng ta là nhị phân), sao cho ri \(\triangleq\).H
SIGi
r, 1, Qr−1
là khai triển nhị phân của a
số 256 bit ngẫu nhiên trong khoảng từ 0 đến 1 được liên kết duy nhất với i và r. Như vậy xác suất mà
ri nhỏ hơn hoặc bằng p thực chất là p. (Cơ chế lựa chọn lãnh đạo tiềm năng của chúng tôi đã được
lấy cảm hứng từ chương trình thanh toán vi mô của Micali và Rivest [28].)
Xác suất p được chọn sao cho với xác suất áp đảo (tức là 1 −F), ít nhất một
người xác minh tiềm năng là trung thực. (Nếu thực tế, p được chọn là xác suất nhỏ nhất như vậy.)Lưu ý rằng, vì tôi là người duy nhất có khả năng tính toán chữ ký của chính anh ấy nên chỉ có anh ấy mới có thể
xác định xem anh ta có phải là người xác minh tiềm năng của vòng 1 hay không. Tuy nhiên, bằng cách tiết lộ thông tin xác thực của chính mình,
\(\sigma\)r
tôi \(\triangleq\)SIGi
r, 1, Qr−1
, tôi có thể chứng minh cho bất kỳ ai thấy mình là người có thể xác minh được vòng r.
Người lãnh đạo \(\ell\)r được xác định là người lãnh đạo tiềm năng có chứng chỉ hashed nhỏ hơn
hashed thông tin xác thực của tất cả người lãnh đạo tiềm năng khác j: nghĩa là H(\(\sigma\)r,s
\(\ell\)r ) \(\leq\)H(\(\sigma\)r,s
j ).
Lưu ý rằng, vì \(\ell\)r độc hại có thể không tiết lộ thông tin xác thực của mình nên người đứng đầu đúng của vòng r có thể
không bao giờ được biết đến, và điều đó, ngoại trừ những mối quan hệ không thể xảy ra, \(\ell\)r thực sự là người dẫn đầu duy nhất của vòng r.
Cuối cùng chúng ta hãy đưa ra một chi tiết cuối cùng nhưng quan trọng: một người dùng tôi có thể trở thành một nhà lãnh đạo tiềm năng (và do đó
người dẫn đầu) của vòng r chỉ khi anh ta thuộc về hệ thống trong ít nhất k vòng. Điều này đảm bảo
tính không thể điều khiển được của Qr và tất cả các đại lượng Q trong tương lai. Trên thực tế, một trong những nhà lãnh đạo tiềm năng
thực sự sẽ xác định Qr.
Lựa chọn người xác minh
Mỗi bước s > 1 của vòng r được thực hiện bởi một tập hợp nhỏ các trình xác minh, SV r,s.
Một lần nữa, mỗi người xác minh i \(\in\)SV r,s được chọn ngẫu nhiên trong số những người dùng đã có trong hệ thống k vòng
trước r và một lần nữa thông qua đại lượng đặc biệt Qr−1. Cụ thể, i \(\in\)PKr−k là một bộ kiểm định trong SV r,s, nếu
.H
SIGi
r, s, Qr−1
\(\leq\)p′ .
Một lần nữa, chỉ có tôi biết anh ấy có thuộc SV r,s,nhưng nếu đúng như vậy, anh ấy có thể chứng minh điều đó bằng cách
trưng bày chứng chỉ \(\sigma\)r,s của mình
tôi
\(\triangleq\)H(SIGi
r, s, Qr−1
). Người xác minh i \(\in\)SV r,s gửi tin nhắn, mr,s
tôi, ở
bước s của vòng r và thông báo này bao gồm thông tin xác thực \(\sigma\)r,s của anh ấy
i , để cho phép người xác minh
tổ bước để nhận ra rằng ông,s
tôi
là một thông điệp bước hợp pháp.
Xác suất p′ được chọn sao cho đảm bảo rằng, trong SV r,s, lấy #good là số
người dùng trung thực và #xấu số lượng người dùng độc hại, với xác suất áp đảo như sau
hai điều kiện giữ.
Đối với phương án Algorand ′
1:
(1) #tốt > 2 \(\cdot\) #xấu và
(2) #good + 4 \(\cdot\) #bad < 2n, trong đó n là số lượng bản số dự kiến của SV r,s.
Đối với phương án Algorand ′
2:
(1) #good > tH và
(2) #good + 2#bad < 2tH, trong đó tH là ngưỡng được chỉ định.
Những điều kiện này ngụ ý rằng, với xác suất đủ cao, (a) ở bước cuối cùng của BA
giao thức, sẽ có ít nhất số lượng người chơi trung thực nhất định để ký điện tử vào khối Br mới,
(b) chỉ một khối mỗi vòng có thể có đủ số chữ ký cần thiết và (c) BA được sử dụng
giao thức có (ở mỗi bước) 2/3 đa số trung thực cần thiết.
Làm rõ việc tạo khối
Nếu người dẫn đầu vòng r \(\ell\)r trung thực thì khối tương ứng
có dạng
Br =
r, TRẢ r, SIG\(\ell\)r Qr−1
, H
Br−1
,
trong đó tập hợp thanh toán PAY r là tối đa. (hãy nhớ rằng tất cả các khoản thanh toán, theo định nghĩa, đều có giá trị chung.)
Ngược lại (tức là nếu \(\ell\)r độc hại), Br có một trong hai dạng có thể xảy ra sau đây:
Br =
r, TRẢ r, SIGi
Qr−1
, H
Br−1
và
Br = Br
\(\varepsilon\) \(\triangleq\)
r, \(\emptyset\), Qr−1, H
Br−1
.Ở dạng đầu tiên, PAY r là một tập hợp thanh toán (không nhất thiết phải tối đa) và nó có thể là PAY r = \(\emptyset\); và tôi là
một nhà lãnh đạo tiềm năng của vòng r. (Tuy nhiên, tôi có thể không phải là người lãnh đạo. Điều này thực sự có thể xảy ra nếu
\(\ell\)r giữ bí mật thông tin xác thực của mình và không tiết lộ bản thân.)
Hình thức thứ hai phát sinh khi, trong quá trình thực thi vòng r của giao thức BA, tất cả những người chơi trung thực
xuất giá trị mặc định là khối trống Br
\(\varepsilon\) trong ứng dụng của chúng tôi. (Theo định nghĩa, khả năng
đầu ra của giao thức BA bao gồm giá trị mặc định, thường được ký hiệu là \(\bot\). Xem phần 3.2.)
Lưu ý rằng, mặc dù các khoản thanh toán đều trống trong cả hai trường hợp, Br =
r, \(\emptyset\), SIGi
Qr−1
, H
Br−1
và anh trai
\(\varepsilon\) là các khối khác nhau về mặt cú pháp và phát sinh trong hai tình huống khác nhau: tương ứng, “tất cả
quá trình thực thi giao thức BA diễn ra suôn sẻ” và “đã xảy ra lỗi trong
Giao thức BA và giá trị mặc định là đầu ra”.
Bây giờ chúng ta hãy mô tả trực quan cách tạo khối Br diễn ra trong vòng r của Algorand ′.
Trong bước đầu tiên, mỗi người chơi đủ điều kiện, tức là mỗi người chơi i \(\in\)PKr−k, kiểm tra xem anh ta có phải là người chơi tiềm năng hay không.
lãnh đạo. Nếu đúng như vậy thì tôi sẽ được yêu cầu sử dụng tất cả các khoản thanh toán mà anh ấy đã thấy cho đến nay và
hiện tại blockchain, B0, . . . , Br−1, để bí mật chuẩn bị một bộ thanh toán tối đa, PAY r
tôi và bí mật
tập hợp khối ứng cử viên của mình, Br =
r, TRẢ TIỀN r
tôi, SIGi
Qr−1
, H
Br−1
. Nghĩa là, anh ta không chỉ
bao gồm trong Br
i , là thành phần thứ hai của tập thanh toán vừa được chuẩn bị, nhưng cũng là thành phần thứ ba của nó,
chữ ký của chính ông là Qr−1, thành phần thứ ba của khối cuối cùng, Br−1. Cuối cùng, ông tuyên truyền
tin nhắn vòng-r-bước-1, ông,1
i , bao gồm (a) khối ứng cử viên của anh ấy Br
i , (b) chữ ký riêng của anh ấy
khối ứng cử viên của anh ấy (tức là chữ ký của anh ấy trong hash của Br
i , và (c) chứng chỉ của chính anh ấy \(\sigma\)r,1
tôi, chứng minh
rằng anh ta thực sự là người có thể xác minh được vòng r.
(Lưu ý rằng, cho đến khi tôi trung thực đưa ra tin nhắn của mình, ông1
tôi, Kẻ thù không biết rằng tôi là một
người xác minh tiềm năng Nếu anh ta muốn làm hư hỏng các nhà lãnh đạo tiềm năng trung thực, Kẻ thù cũng có thể
tham nhũng ngẫu nhiên người chơi trung thực. Tuy nhiên, khi nhìn thấy ông,1
i , vì nó chứa thông tin xác thực của tôi, nên
Đối phương biết và có thể làm hư tôi, nhưng không ngăn cản được ông,1
i , được lan truyền rộng rãi, từ
tiếp cận tất cả người dùng trong hệ thống.)
Trong bước thứ hai, mỗi người xác minh được chọn j \(\in\)SV r,2 sẽ cố gắng xác định người dẫn đầu vòng đấu.
Cụ thể, j lấy thông tin xác thực bước 1, \(\sigma\)r,1
i1, . . . , \(\sigma\)r,1
trong , có trong tin nhắn bước 1 thích hợp mr,1
tôi
anh ấy đã nhận được; hashes tất cả chúng, tức là tính H
\(\sigma\)r,1
i1
, . . . , H
\(\sigma\)r,1
trong
; tìm thấy thông tin xác thực,
\(\sigma\)r,1
\(\ell\)j , có hash là mức tối thiểu về mặt từ điển; và xem xét \(\ell\)r
j là người dẫn đầu vòng r.
Hãy nhớ lại rằng mỗi thông tin xác thực được coi là chữ ký số của Qr−1, SIGi đó
r, 1, Qr−1
là
được xác định duy nhất bởi i và Qr−1, H là ngẫu nhiên oracle, và do đó mỗi H(SIGi
r, 1, Qr−1
là một chuỗi dài 256 bit ngẫu nhiên duy nhất cho mỗi người dẫn đầu tiềm năng i của vòng r.
Từ đó chúng ta có thể kết luận rằng, nếu chuỗi 256-bit Qr−1 là ngẫu nhiên và độc lập
được chọn, thông tin đăng nhập hashed của tất cả các nhà lãnh đạo tiềm năng của vòng r sẽ như vậy. Trên thực tế, tất cả
các nhà lãnh đạo tiềm năng đều được xác định rõ ràng và bằng cấp của họ cũng vậy (dù được tính toán thực tế hay
không). Hơn nữa, tập hợp những người dẫn đầu tiềm năng của vòng r là một tập hợp con ngẫu nhiên của những người sử dụng vòng
r −k, và là một nhà lãnh đạo tiềm năng trung thực, tôi luôn xây dựng và truyền bá đúng đắn thông điệp của mình, ông
tôi,
trong đó có thông tin xác thực của tôi. Do đó, vì tỷ lệ người dùng trung thực là h nên bất kể điều gì xảy ra.
các nhà lãnh đạo tiềm năng độc hại có thể làm (ví dụ: tiết lộ hoặc che giấu thông tin xác thực của chính họ), mức tối thiểu
hashed Chứng chỉ lãnh đạo tiềm năng thuộc về người dùng trung thực, người này nhất thiết phải được mọi người nhận dạng
trở thành người dẫn đầu \(\ell\)r của vòng r. Theo đó, nếu chuỗi 256-bit Qr−1 là ngẫu nhiên và
được chọn độc lập, với xác suất chính xác là h (a) người lãnh đạo \(\ell\)r là người trung thực và (b) \(\ell\)j = \(\ell\)r cho tất cả
người xác minh bước 2 trung thực j.
Trên thực tế, thông tin xác thực hashed được chọn ngẫu nhiên, nhưng phụ thuộc vào Qr−1, tức làkhông được lựa chọn ngẫu nhiên và độc lập. Tuy nhiên, chúng ta sẽ chứng minh trong phân tích của mình rằng Qr−1 là
đủ không thể bị thao túng để đảm bảo rằng người dẫn đầu vòng chơi trung thực với xác suất
h′ đủ gần với h: cụ thể là h′ > h2(1 + h −h2). Ví dụ: nếu h = 80% thì h′ > 0,7424.
Sau khi xác định được người dẫn đầu vòng đấu (điều mà họ làm đúng khi người dẫn đầu \(\ell\)r trung thực),
Nhiệm vụ của người xác minh ở bước 2 là bắt đầu thực thi BA bằng cách sử dụng những giá trị ban đầu mà họ tin tưởng.
trở thành khối của người lãnh đạo. Trên thực tế, để giảm thiểu lượng thông tin cần thiết,
người xác minh j \(\in\)SV r,2 không sử dụng làm giá trị đầu vào v′
j sang giao thức Byzantine, khối Bj đó
anh ấy thực sự đã nhận được từ \(\ell\)j (người dùng j tin là người dẫn đầu), nhưng người dẫn đầu, nhưng
hash của khối đó, tức là v′
j = H(Bi). Do đó, khi kết thúc giao thức BA, người xác minh
của bước cuối cùng không tính toán Br khối vòng r mong muốn mà tính toán (xác thực và
lan truyền) H(Br). Theo đó, vì H(Br) được ký điện tử bởi đủ nhiều người xác minh
bước cuối cùng của giao thức BA, người dùng trong hệ thống sẽ nhận ra rằng H(Br) là hash của giao thức mới
khối. Tuy nhiên, họ cũng phải truy xuất (hoặc chờ đợi vì quá trình thực thi khá không đồng bộ)
chặn chính Br mà giao thức đảm bảo rằng thực sự có sẵn, bất kể Đối thủ có thế nào
có thể làm được.
Không đồng bộ và thời gian
Algorand ′
1 và Algorand ′
2 có mức độ không đồng bộ đáng kể.
Điều này là như vậy bởi vì Kẻ thù có quyền tự do lớn trong việc lên lịch gửi các tin nhắn đang được
được truyền bá. Ngoài ra, dù tổng số bước trong một vòng có bị giới hạn hay không thì vẫn có
sự khác biệt đóng góp bởi số bước thực sự được thực hiện.
Ngay khi học được chứng chỉ B0, . . . , Br−1, người dùng i tính Qr−1 và bắt đầu làm việc
ở vòng r, kiểm tra xem anh ta có phải là người lãnh đạo tiềm năng hay người xác minh trong một số bước của vòng r.
Giả sử rằng tôi phải hành động ở bước s, do có sự không đồng bộ đã thảo luận, tôi dựa vào nhiều
chiến lược để đảm bảo rằng anh ta có đủ thông tin trước khi hành động.
Ví dụ, anh ta có thể đợi để nhận được ít nhất một số tin nhắn nhất định từ người xác minh
bước trước đó hoặc đợi một khoảng thời gian đủ để đảm bảo rằng anh ta nhận được tin nhắn đầy đủ
nhiều người xác minh bước trước đó.
Seed Qr và Tham số Nhìn lại k
Hãy nhớ lại rằng, lý tưởng nhất, đại lượng Qr nên
ngẫu nhiên và độc lập, mặc dù điều đó đủ để chúng không thể bị thao túng bởi
Kẻ thù.
Thoạt nhìn, chúng ta có thể chọn Qr−1 trùng với H
TRẢ r−1
, và do đó tránh được
xác định rõ ràng Qr−1 trong Br−1. Tuy nhiên, một phân tích cơ bản cho thấy rằng những người dùng có ý đồ xấu có thể
tận dụng cơ chế lựa chọn này.11 Một số nỗ lực bổ sung cho thấy vô số cơ chế lựa chọn khác
11Chúng ta đang bắt đầu vòng r −1. Do đó, Qr−2 = PAY r−2 được công khai và Đối thủ được biết một cách riêng tư.
biết ai là nhà lãnh đạo tiềm năng mà ông ta kiểm soát.
Giả sử rằng Đối thủ kiểm soát 10% người dùng và
rằng, với xác suất rất cao, người dùng độc hại w là người dẫn đầu tiềm năng của vòng r −1. Nghĩa là, giả sử rằng
H
SIGw
r −2, 1, Qr−2
nhỏ đến mức khó có khả năng một nhà lãnh đạo tiềm năng trung thực sẽ thực sự là người
người đứng đầu vòng r −1. (Hãy nhớ lại rằng, vì chúng tôi chọn những nhà lãnh đạo tiềm năng thông qua cơ chế phân loại mật mã bí mật,
Kẻ thù không biết ai là nhà lãnh đạo tiềm năng trung thực.) Vì vậy, Kẻ thù là một kẻ đáng ghen tị.
vị trí chọn tập hợp lương PAY ′ anh ta muốn và biến nó trở thành tập hợp lương chính thức của vòng r −1. Tuy nhiên,
anh ấy có thể làm nhiều hơn nữa. Anh ta cũng có thể đảm bảo rằng, với khả năng cao, () một trong những người dùng ác ý của anh ta sẽ là người dẫn đầu
cũng thuộc vòng r, để anh ta có thể tự do lựa chọn PAY r sẽ là bao nhiêu. (V.v. Ít nhất là trong một thời gian dài, tức là,
miễn là những sự kiện có xác suất cao này thực sự xảy ra.) Để đảm bảo (), Đối thủ hành động như sau. Hãy TRẢ TIỀN ′
là mức trả thưởng mà Đối thủ thích cho vòng r −1. Sau đó, anh ta tính H(PAY ′) và kiểm tra xem, đối với một số
trình phát độc hại z, SIGz(r, 1, H(PAY ′)) đặc biệt nhỏ, nghĩa là đủ nhỏ để có giá trị rất cao
xác suất z sẽ dẫn đầu vòng r. Nếu đúng như vậy thì anh ta sẽ hướng dẫn w chọn khối ứng cử viên của mình làmCác lựa chọn thay thế dựa trên số lượng khối truyền thống có thể bị đối thủ dễ dàng khai thác để đảm bảo
rằng các nhà lãnh đạo độc hại là rất thường xuyên. Thay vào đó, chúng tôi xác định thương hiệu của mình một cách cụ thể và mang tính quy nạp
lượng Qr mới để có thể chứng minh rằng đối thủ không thể thao túng nó. Cụ thể là,
Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), nếu Br không phải là khối trống và Qr \(\triangleq\)H(Qr−1, r) nếu ngược lại.
Trực giác về lý do tại sao cách xây dựng Qr này hoạt động như sau. Giả sử trong giây lát rằng
Qr−1 thực sự được chọn ngẫu nhiên và độc lập. Vậy thì Qr cũng sẽ như vậy phải không? Khi \(\ell\)r trung thực
câu trả lời là (đại khái) là có. Điều này là như vậy bởi vì
H(SIG\(\ell\)r( \(\cdot\) ), r) : {0, 1}256 −→{0, 1}256
là một hàm ngẫu nhiên. Tuy nhiên, khi \(\ell\)r độc hại, Qr không còn được xác định rõ ràng từ Qr−1 nữa
và \(\ell\)r. Có ít nhất hai giá trị riêng biệt cho Qr. Một tiếp tục là Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r),
và cái còn lại là H(Qr−1, r). Đầu tiên chúng ta hãy tranh luận rằng, mặc dù lựa chọn thứ hai có phần tùy tiện,
lựa chọn thứ hai là hoàn toàn bắt buộc. Lý do cho điều này là \(\ell\)r độc hại luôn có thể gây ra
những khối ứng viên hoàn toàn khác nhau sẽ được những người xác minh trung thực của bước thứ hai nhận được.12 Một lần
Trong trường hợp này, thật dễ dàng để đảm bảo rằng khối cuối cùng đã được thống nhất thông qua giao thức BA của
vòng r sẽ là vòng mặc định và do đó sẽ không chứa chữ ký số Qr−1 của bất kỳ ai. Nhưng
hệ thống phải tiếp tục và để làm được điều này, nó cần một người dẫn đầu cho vòng r. Nếu người lãnh đạo này tự động
và được lựa chọn một cách công khai, thì Kẻ thù sẽ làm hư hỏng anh ta một cách tầm thường. Nếu nó được chọn trước đó
Qr−1 thông qua quy trình tương tự, \(\ell\)r sẽ lại dẫn đầu ở vòng r+1. Chúng tôi đặc biệt đề xuất
sử dụng cùng một cơ chế phân loại mật mã bí mật, nhưng được áp dụng cho số lượng Q mới: cụ thể là,
H(Qr−1, r). Bằng cách lấy đại lượng này làm đầu ra của H đảm bảo rằng đầu ra là ngẫu nhiên,
và bằng cách bao gồm r làm đầu vào thứ hai của H, trong khi tất cả các cách sử dụng khác của H đều có một hoặc 3 đầu vào trở lên,
“đảm bảo” rằng Qr như vậy được lựa chọn độc lập. Một lần nữa, sự lựa chọn cụ thể của chúng ta về Qr thay thế
không thành vấn đề, điều quan trọng là \(\ell\)r có hai lựa chọn cho Qr, và do đó anh ta có thể nhân đôi cơ hội của mình
để có một người dùng độc hại khác làm người lãnh đạo tiếp theo.
Các tùy chọn cho Qr thậm chí có thể có nhiều hơn đối với Kẻ thù kiểm soát \(\ell\)r độc hại.
Ví dụ: giả sử x, y và z là ba nhà lãnh đạo tiềm năng độc hại của vòng r sao cho
H
\(\sigma\)r,1
x
<H
\(\sigma\)r,1
y
có một nhà lãnh đạo độc hại hoặc đa số độc hại trong SV r,s cho một số bước theo mong muốn của anh ấy. — Đối với Bước 1 của mỗi vòng r, n1 được chọn sao cho có xác suất áp đảo SV r,1 ̸= \(\emptyset\). • Ví dụ lựa chọn các thông số quan trọng. - Đầu ra của H dài 256-bit. — h = 80%, n1 = 35. — Λ = 1 phút và \(\lambda\) = 10 giây. • Khởi tạo giao thức. Giao thức bắt đầu tại thời điểm 0 với r = 0. Vì không tồn tại “B−1” hoặc “CERT −1”, về mặt cú pháp B−1 là một tham số công khai với thành phần thứ ba chỉ định Q−1 và tất cả người dùng biết B−1 tại thời điểm 0.
Algorand ′
1 В этом разделе мы создадим версию Algorand ′, работающую при следующем предположении. Допущение о честном большинстве пользователей: более 2/3 пользователей в каждом PKr честны. В разделе 8 мы покажем, как заменить приведенное выше предположение желаемым «Честным большинством». Денежное предположение. 5.1 Дополнительные обозначения и параметры Обозначения • m \(\in\)Z+: максимальное количество шагов в бинарном протоколе BA, кратное 3. • Lr \(\leq\)m/3: случайная величина, представляющая количество испытаний Бернулли, необходимых для получения 1, когда каждое испытание равно 1 с вероятностью ph 2 и имеется не более m/3 испытаний. Если все испытания провалятся, то Lr \(\triangleq\)м/3. Lr будет использоваться для верхней границы времени, необходимого для генерации блока Br. • ТН = 2n 3 + 1: количество подписей, необходимое в конечных условиях протокола. • CERT r: сертификат для Br. Это набор tH сигнатур H(Br) от собственных проверяющих в круглый р. Параметры • Отношения между различными параметрами. — Для каждого шага s > 1 раунда r n выбирается так, чтобы с подавляющей вероятностью |HSV r,s| > 2|MSV r,s| и |HSV r,s| + 4|MSV r,s| < 2н. Чем ближе к 1 значение h, тем меньше должно быть n. В частности, мы используем (варианты из) границ Чернова, обеспечивающих выполнение желаемых условий с подавляющей вероятностью. — m выбирается таким, что Lr < m/3 с подавляющей вероятностью. • Пример выбора важных параметров. — F = 10−12. — n \(\approx\)1500, k = 40 и m = 180.5.2 Реализация эфемерных ключей в Algorand ′ 1 Как уже упоминалось, мы хотим, чтобы проверяющий i \(\in\)SV r,s подписывал свое сообщение цифровой подписью mr,s я шага s в раунде r относительно эфемерного открытого ключа pkr,s i, используя эфемерный секретный ключ skr,s я что он сразу уничтожает после использования. Таким образом, нам нужен эффективный метод, гарантирующий, что каждый пользователь сможет убедитесь, что pkr,s я это действительно ключ, который можно использовать для проверки моей подписи мистера. я. Мы делаем это (в лучшем случае насколько нам известно) новое использование схем подписи на основе идентичности. На высоком уровне в такой схеме центральный орган A генерирует открытый главный ключ PMK, и соответствующий секретный главный ключ SMK. Учитывая личность U игрока U, A вычисляет: через SMK, секретный ключ подписи skU относительно открытого ключа U, и конфиденциально передает skU U. (Действительно, в схеме цифровой подписи на основе личности открытый ключ пользователя U — это сам U!) Таким образом, если А уничтожит SMK после вычисления секретных ключей пользователей, которых он хочет разрешить создавать цифровые подписи и не хранить никакого вычисленного секретного ключа, то U — единственный, кто может подписывать сообщения цифровой подписью относительно открытого ключа U. Таким образом, любой, кто знает «имя U», автоматически знает открытый ключ U и, таким образом, может проверить подписи U (возможно, используя также открытый главный ключ ПМК). В нашем приложении авторитетом A является пользователь i, а набор всех возможных пользователей U совпадает с пара круговых шагов (r, s) в, скажем, S = {i}\(\times\){r′, . . . , r′ +106}\(\times\){1, . . . , m+3}, где r′ — заданное раунд, а m + 3 — верхняя граница количества шагов, которые могут произойти в течение раунда. Это путь, пкр, с я \(\triangleq\)(i, r, s), чтобы все видели подпись i SIGr,s пкр,с я (мистер, с я) могу, с подавляющим вероятности, немедленно проверьте ее для первого миллиона раундов r, следующих за r'. Другими словами, сначала я генерирую PMK и SMK. Затем он заявляет, что ПМК — мой хозяин. открытый ключ для любого раунда r \(\in\)[r', r' + 106] и использует SMK для частного создания и хранения секрета. ключ скр,с я для каждой тройки (i, r, s) \(\in\)S. Сделав это, он уничтожает СМК. Если он решит, что он не часть СВ р,с, тогда я могу уйти из скр,с я один (поскольку протокол не требует, чтобы он аутентифицировал любое сообщение на шаге s раунда r). В противном случае я сначала использую skr,s я поставить цифровую подпись на своем сообщении, мистер, с я и затем уничтожает скр,с я. Обратите внимание: я могу опубликовать его первый открытый мастер-ключ, когда он впервые войдет в систему. То есть, тот же самый платеж \(\wp\), который приводит i в систему (в раунде r' или в раунде, близком к r'), может также указать по запросу i, что его открытый главный ключ для любого раунда r \(\in\)[r', r' + 106] равен PMK — например, включая пару вида (ПМК, [r', r' + 106]). Также обратите внимание, что, поскольку m + 3 — максимальное количество шагов в раунде, предполагая, что раунд занимает минуту, запаса созданных таким образом эфемерных ключей хватит почти на два года. В то же время Со временем изготовление этих эфемерных секретных ключей не займет много времени. Используя эллиптическую кривую В системе с 32B ключей каждый секретный ключ вычисляется за несколько микросекунд. Таким образом, если m + 3 = 180, тогда все 180 миллионов секретных ключей можно будет вычислить менее чем за час. Когда текущий раунд приближается к r' + 106, для обработки следующего миллиона раундов i генерирует новую пару (PMK', SMK') и сообщает, какой у него следующий запас эфемерных ключей. Например, если SIGi(PMK', [r' + 106 + 1, r' + 2 \(\cdot\) 106 + 1]) вводит новый блок, либо как отдельная «транзакция» или как некоторая дополнительная информация, являющаяся частью платежа. Тем самым, я сообщаю всем, что он/она должен использовать PMK' для проверки своих эфемерных подписей в следующем миллион раундов. И так далее. (Обратите внимание, что, следуя этому базовому подходу, другие способы реализации эфемерных ключей без использование подписей на основе личности, безусловно, возможно. Например, через Merkle trees.16) 16В этом методе я генерирую пару публично-секретных ключей (pkr,s я, скр,с я ) для каждой пары шагов раунда (r, s) в —скажем—Конечно, возможны и другие способы реализации эфемерных ключей — например, через Merkle trees. 5.3 Соответствие шагам Algorand ′ 1 с таковыми у BA⋆ Как мы уже говорили, раунд в Algorand ′ 1 имеет не более m + 3 шагов. Шаг 1. На этом этапе каждый потенциальный лидер i вычисляет и распространяет свой блок-кандидат Br я, вместе с собственным удостоверением \(\sigma\)r,1 я. Напомним, что эти учетные данные явно идентифицируют i. Это так, поскольку \(\sigma\)r,1 я \(\triangleq\)SIGi(r, 1, Qr−1). Потенциальный проверяющий i также распространяет как часть своего сообщения свою собственную цифровую подпись H(Br я). Не имеющая отношения к платежу или учетным данным, эта подпись i относится к его эфемерному обществу. ключ пкр,1 i: то есть он распространяет sigpkr,1 я (H(Br я)). Учитывая наши условности, вместо того, чтобы пропагандировать Бр я и сигпкр,1 я (H(Br я )) он мог бы распространяется SIGpkr,1 я (H(Br я)). Однако в нашем анализе нам необходим явный доступ к сигпкр,1 я (H(Br я)). Шаг 2. На этом этапе каждый верификатор i устанавливает \(\ell\)r Я буду потенциальным лидером, чьи полномочия hashed самый маленький, а Br i - блок, предложенный \(\ell\)r я. Поскольку в целях эффективности мы желает договориться о H(Br), а не непосредственно о Br, я распространяю сообщение, которое он хотел бы получить распространяется на первом этапе BA⋆с начальным значением v' я = H(Br я). То есть он распространяет v' я, после эфемерного подписания, конечно. (А именно, после его подписания относительно правого эфемерного открытый ключ, в данном случае это pkr,2 я .) Конечно, я также передаю свои собственные полномочия. Поскольку первый шаг BA⋆ состоит из первого шага протокола градуированного консенсуса GC, шаг 2 из Algorand соответствует первому шагу GC. Шаг 3. На этом шаге каждый верификатор i \(\in\)SV r,2 выполняет второй шаг BA⋆. То есть он отправляет то же сообщение, которое он отправил бы на втором этапе GC. Опять же, мое сообщение эфемерно подписано и сопровождается удостоверением личности. (В дальнейшем мы не будем говорить, что верификатор эфемерно подписывает свое сообщение, а также распространяет свои полномочия.) Шаг 4. На этом этапе каждый верификатор i \(\in\)SV r,4 вычисляет выходные данные GC (vi, gi) и эфемерно подписывает и отправляет то же сообщение, которое он отправил бы на третьем этапе BA⋆, то есть на первый шаг BBA⋆, с начальным битом 0, если gi = 2, и 1 в противном случае. Шаг s = 5, . . . , m + 2. Такой шаг, если он когда-либо был достигнут, соответствует шагу s−1 BA⋆ и, следовательно, шаг s−3 BBA⋆. Поскольку наша модель распространения достаточно асинхронна, мы должны учитывать возможность что в середине такого шага s проверяющий i \(\in\)SV r,s достигает информации, доказывающей его этот блок Br уже выбран. В этом случае я прекращает собственное выполнение раунда r Algorand ′ и начинает выполнять инструкции раунда (r + 1). {р', . . . , r′ + 106} \(\times\) {1, . . . , м + 3}. Затем он упорядочивает эти публичные ключи каноническим образом, сохраняет j-й публичный вводит j-й лист Merkle tree и вычисляет корневое значение Ri, которое он публикует. Когда он хочет подписать сообщение относительно ключа pkr,s я , я предоставляю не только фактическую подпись, но и путь аутентификации для pkr,s я относительно Ри. Обратите внимание, что этот путь аутентификации также доказывает, что pkr,s я хранится в j-м листе. Остальное детали могут быть легко заполнены.Соответственно, инструкции верификатора i \(\in\)SV r,s, помимо инструкций, соответствующих до шага s−3 BBA⋆, включая проверку того, остановлено ли выполнение BBA⋆ ранее. Шаг с'. Поскольку BBA⋆can только останавливается на этапе с фиксированной монетой на 0 или на шаге с фиксированной монетой на 1, инструкции различают, A (Конечное условие 0): s′ −2 ≡0 mod 3, или B (Конечное условие 1): s′ −2 ≡1 mod 3. Действительно, в случае А блок Br непуст, и поэтому необходимы дополнительные инструкции для убедитесь, что i правильно реконструирует Br вместе с соответствующим сертификатом CERT r. В случае Б, блок Br пуст, и поэтому мне дано указание установить Br = Br \(\varepsilon\) = (r, \(\emptyset\), H(Qr−1, r), H(Br−1)), и вычислить CERT r. Если во время выполнения шага s я не увижу никаких свидетельств того, что блок Br уже был сгенерирован, то он отправляет то же сообщение, которое он отправил бы на шаге s-3 BBA⋆. Шаг m + 3. Если на шаге m + 3 i \(\in\)SV r,m+3 видит, что блок Br уже был сгенерирован в предыдущий шаг s', то он действует так же, как объяснено выше. В противном случае, вместо отправки того же сообщения, которое он отправил бы на шаге m BBA⋆, i ему было поручено на основе имеющейся у него информации вычислить Br и соответствующий ему сертификат CERT r. Напомним, что мы ограничиваем общее количество шагов раунда сверху m + 3. 5.4 Фактический протокол Напомним, что на каждом шаге s раунда r проверяющий i \(\in\)SV r,s использует свою долговременную пару публично-секретных ключей. предъявить свои полномочия, \(\sigma\)r,s я \(\triangleq\)SIGi(r, s, Qr−1), а также SIGi Qr−1 в случае s = 1. Верификатор i использует свой эфемерный секретный ключ skr,s я подписать его (r,s)-сообщение mr,s я. Для простоты, когда r и s равны ясно, мы пишем esigi(x), а не sigpkr,s i (x) для обозначения собственной эфемерной подписи значения i. x на шаге s раунда r и напишите ESIGi(x) вместо SIGpkr,s i (x) для обозначения (i, x, esigi(x)). Шаг 1. Блокируйте предложение Инструкции для каждого пользователя i \(\in\)PKr−k: Пользователь i начинает свой собственный шаг 1 раунда r, как только он знает Br−1. • Пользователь i вычисляет Qr-1 из третьего компонента Br-1 и проверяет, принадлежит ли i SV r,1 или нет. • Если i /\(\varepsilon\)SV r,1, то я немедленно прекращает выполнение шага 1. • Если i \(\in\)SV r,1, то есть если i является потенциальным лидером, то он собирает выплаты в раунде r, которые было передано ему на данный момент и вычисляет максимальный набор выплат PAY r я от них. Далее он вычисляет свой «кандидатский блок» Br i = (r, PAY r i , SIGi(Qr−1), H(Br−1)). Наконец, он вычисляет сообщение мистер 1 я = (Бр i , esigi(H(Br i ))), \(\sigma\)r,1 i ), уничтожает свой эфемерный секретный ключ skr,1 я, а потом распространяет г-на, 1 я.Замечание. На практике, чтобы сократить глобальное выполнение шага 1, важно, чтобы (r, 1)- сообщения распространяются выборочно. То есть для каждого пользователя i в системе для первого (r, 1)- сообщение, которое он когда-либо получает и успешно проверяет17, игрок i распространяет его как обычно. Для всех другие (r, 1)-сообщения, которые игрок i получает и успешно проверяет, он распространяет их только в том случае, если hash значение содержащихся в нем учетных данных является наименьшим среди hash значений содержащихся учетных данных во всех (r, 1)-сообщениях, которые он получил и успешно проверил на данный момент. Кроме того, как предложил Георгиос Влахос, полезно, чтобы каждый потенциальный лидер i также распространял свои полномочия \(\sigma\)r,1 я отдельно: эти небольшие сообщения передаются быстрее, чем блоки, что обеспечивает своевременное распространение mr,1 Джей где содержащиеся учетные данные имеют небольшие значения hash, а те, которые содержат большие значения hash быстро исчезнуть. Шаг 2: Первый шаг Протокола поэтапного консенсуса GC Инструкции для каждого пользователя i \(\in\)PKr−k: Пользователь i начинает свой собственный шаг 2 раунда r, как только он знает Br−1. • Пользователь i вычисляет Qr-1 из третьего компонента Br-1 и проверяет, принадлежит ли i SV r,2 или нет. • Если i /\(\varepsilon\)SV r,2, то я немедленно прекращает выполнение шага 2. • Если i \(\in\)SV r,2, то после ожидания времени t2 \(\triangleq\) \(\lambda\) + Λ i действует следующим образом. 1. Он находит пользователя \(\ell\) такого, что H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j ) для всех учетных данных \(\sigma\)r,1 дж которые являются частью успешно проверенные (r, 1)-сообщения, которые он получил на данный момент. 2. Если он получил от \(\ell\)действительное сообщение mr,1 \(\ell\) = (Бр \(\ell\), esig\(\ell\)(H(Br \(\ell\))) \(\sigma\)r,1 \(\ell\)),b, то я устанавливаю v' я \(\triangleq\)H(Br \(\ell\)); в противном случае я устанавливаю v' я \(\triangleq\) \(\bot\). 3. я вычисляю сообщение mr,2 я \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 i ),c уничтожает свой эфемерный секретный ключ скр, 2 i , а затем распространяет mr,2 я. aПо сути, пользователь i в частном порядке решает, что лидером раунда r является пользователь \(\ell\). bОпять же, подписи игрока \(\ell\) и hash успешно проверены, и PAY r \(\ell\)в Бр \(\ell\)действителен для round r — хотя я не проверяю, PAY ли r \(\ell\)максимальен для \(\ell\)или нет. c Сообщение г-н, 2 я сигнализирует о том, что игрок i рассматривает v' i быть hash следующего блока или считать следующий блок должен быть пустым. 17То есть все подписи верны и и блок, и его hash валидны — хотя я и не проверяю является ли включенный набор выплат максимальным для его предлагающего или нет.
Шаг 3: Второй шаг GC Инструкции для каждого пользователя i \(\in\)PKr−k: Пользователь i начинает свой собственный Шаг 3 раунда r, как только он знает Br−1. • Пользователь i вычисляет Qr-1 из третьего компонента Br-1 и проверяет, принадлежит ли i SV r,3 или нет. • Если i /\(\varepsilon\)SV r,3, то я немедленно прекращает выполнение шага 3. • Если i \(\in\)SV r,3, то после ожидания времени t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ я действую следующим образом. 1. Если существует значение v′ ̸= \(\bot\) такое, что среди всех допустимых сообщений mr,2 дж он получил, из них более 2/3 имеют вид (ESIGj(v′), \(\sigma\)r,2 j ), без всякого противоречия,a затем он вычисляет сообщение mr,3 я \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 я). В противном случае он вычисляет mr,3 я \(\triangleq\) (ESIGi(\(\bot\)), \(\sigma\)r,3 я). 2. я уничтожаю его эфемерный секретный ключ skr,3 i , а затем распространяет mr,3 я. aТо есть он не получил двух действительных сообщений, содержащих ESIGj(v') и другой ESIGj(v'') соответственно, от игрока j. Здесь и далее, за исключением Конечных условий, определенных позже, всякий раз, когда честный игрок хочет сообщений заданной формы, сообщения, противоречащие друг другу, никогда не учитываются и не считаются действительными.Шаг 4: Выходные данные GC и первый шаг BBA⋆ Инструкции для каждого пользователя i \(\in\)PKr−k: Пользователь i начинает свой собственный Шаг 4 раунда r, как только он знает Br−1. • Пользователь i вычисляет Qr-1 из третьего компонента Br-1 и проверяет, принадлежит ли i SV r,4 или нет. • Если i /\(\varepsilon\)SV r,4, то он немедленно прекращает выполнение шага 4. • Если i \(\in\)SV r,4, то после ожидания времени t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ я действую следующим образом. 1. Он вычисляет vi и gi, выходные данные GC, следующим образом. (a) Если существует значение v′ ̸= \(\bot\) такое, что среди всех допустимых сообщений mr,3 дж у него есть полученных, более 2/3 из них имеют вид (ESIGj(v′), \(\sigma\)r,3 j ), то он устанавливает vi \(\triangleq\)v′ и gi \(\triangleq\)2. (б) В противном случае, если существует значение v′ ̸= \(\bot\) такое, что среди всех допустимых сообщений мистер, 3 дж он получил, более 1/3 из них имеют вид (ESIGj(v′), \(\sigma\)r,3 j ), тогда он устанавливает vi \(\triangleq\)v′ и gi \(\triangleq\)1.a (c) В противном случае он полагает vi \(\triangleq\)H(Br \(\varepsilon\) ) и gi \(\triangleq\)0. 2. Он вычисляет bi, вход BBA⋆, следующим образом: bi \(\triangleq\)0, если gi = 2, и bi \(\triangleq\)1 в противном случае. 3. Он вычисляет сообщение mr,4 я \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 я), уничтожает его эфемерное секретный ключ скр, 4 i , а затем распространяет mr,4 я. aМожно доказать, что v′ в случае (b), если он существует, должен быть единственным.
Шаг s, 5 \(\leq\)s \(\leq\)m + 2, s−2 ≡0 mod 3: шаг BBA⋆ с фиксированной монетой до 0 Инструкции для каждого пользователя i \(\in\)PKr−k: Пользователь i начинает свои собственные шаги раунда r, как только он знает Br−1. • Пользователь i вычисляет Qr-1 из третьего компонента Br-1 и проверяет, принадлежит ли i SV r,s. • Если i /\(\varepsilon\)SV r,s, то я немедленно прекращает выполнение шага s. • Если i \(\in\)SV r,s, то он действует следующим образом. – Он ждет, пока не пройдет время ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3)\(\lambda\) + Λ. – Конечное условие 0: Если во время такого ожидания и в любой момент времени существует строка v ̸= \(\bot\) и шаг s′ такой, что (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3 — то есть шаг s′ является шагом с фиксированной монетой до 0, (б) я получил как минимум tH = 2н 3 + 1 действительных сообщений mr,s′−1 дж = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 дж ),а и (c) я получил действительное сообщение, мистер 1 дж = (Бр j , esigj(H(Br j )), \(\sigma\)r,1 j ) с v = H(Br дж), затем я немедленно прекращаю выполнение шага s (и фактически раунда r), не пропаганда чего-либо; устанавливает Br = Br Дж; и устанавливает свой собственный CERT r как набор сообщений г-н,с'-1 дж подэтапа (b).b – Конечное условие 1: Если во время такого ожидания и в любой момент времени существует шаг s′ такой, что (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3 — то есть шаг s′ является шагом с фиксированной монетой-1, и (b’) я получил как минимум tH действительных сообщений mr,s′−1 дж = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 дж ),с затем я немедленно прекращаю выполнение шага s (и фактически раунда r), не пропаганда чего-либо; устанавливает Br = Br й; и устанавливает свой собственный CERT r как набор сообщений г-н,с'-1 дж подэтапа (b’). – В противном случае в конце ожидания пользователь i выполняет следующее. Он устанавливает vi как большинство голосов vj во вторых компонентах всех действительных мистер, с-1 дж он получил. Он вычисляет bi следующим образом. Если более 2/3 всех действительных mr,s−1 дж которые он получил, имеют вид (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 дж ), то он полагает bi \(\triangleq\)0. В противном случае, если более 2/3 всех действительных mr,s−1 дж которые он получил, имеют вид (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 дж ), то он полагает bi \(\triangleq\)1. В противном случае он устанавливает bi \(\triangleq\)0. Он вычисляет сообщение mr,s я \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s я), уничтожает его эфемерное секретный ключ скр,с i , а затем распространяет mr,s я. aТакое сообщение от игрока j засчитывается, даже если игрок i также получил сообщение от j, подписавшегося за 1. Аналогично для Конечного условия 1. Как показано в анализе, это сделано для того, чтобы все честные пользователи знали Br за время \(\lambda\) друг от друга. bUser i теперь знает Br и свои собственные варианты завершения раунда r. Он по-прежнему помогает распространять сообщения как обычный пользователь, но не инициирует никакого распространения в качестве (r, s)-верификатора. В частности, он помогал распространять все сообщения в своей CERT r, чего достаточно для нашего протокола. Обратите внимание, что ему также следует установить bi \(\triangleq\)0 для бинарного протокола BA, но bi в любом случае в этом случае не нужен. Аналогичные вещи для всех будущих инструкций. cВ этом случае не имеет значения, кто такие виджеи.Шаг s, 6 \(\leq\)s \(\leq\)m + 2, s−2 ≡1 mod 3: шаг BBA⋆ с фиксированной монетой-1 Инструкции для каждого пользователя i \(\in\)PKr−k: Пользователь i начинает свои собственные шаги раунда r, как только он знает Br−1. • Пользователь i вычисляет Qr-1 из третьего компонента Br-1 и проверяет, принадлежит ли i SV r,s или нет. • Если i /\(\varepsilon\)SV r,s, то я немедленно прекращает выполнение шага s. • Если i \(\in\)SV r,s, то он делает следующее. – Он ждет, пока не пройдет время ts \(\triangleq\)(2s −3)\(\lambda\) + Λ. – Конечное условие 0: те же инструкции, что и для шагов Coin-Fixed-To-0. – Конечное условие 1: те же инструкции, что и для шагов Coin-Fixed-To-0. – В противном случае в конце ожидания пользователь i выполняет следующее. Он устанавливает vi как большинство голосов vj во вторых компонентах всех действительных мистер, с-1 дж он получил. Он вычисляет bi следующим образом. Если более 2/3 всех действительных mr,s−1 дж которые он получил, имеют вид (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 дж ), то он полагает bi \(\triangleq\)0. В противном случае, если более 2/3 всех действительных mr,s−1 дж которые он получил, имеют вид (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 дж ), то он полагает bi \(\triangleq\)1. В противном случае он устанавливает bi \(\triangleq\)1. Он вычисляет сообщение mr,s я \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s я), уничтожает его эфемерное секретный ключ скр,с i , а затем распространяет mr,s я.
Шаг s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: Шаг BBA⋆ с подбрасыванием монеты Инструкции для каждого пользователя i \(\in\)PKr−k: Пользователь i начинает свои собственные шаги раунда r, как только он знает Br−1. • Пользователь i вычисляет Qr-1 из третьего компонента Br-1 и проверяет, принадлежит ли i SV r,s или нет. • Если i /\(\varepsilon\)SV r,s, то я немедленно прекращает выполнение шага s. • Если i \(\in\)SV r,s, то он делает следующее. – Он ждет, пока не пройдет время ts \(\triangleq\)(2s −3)\(\lambda\) + Λ. – Конечное условие 0: те же инструкции, что и для шагов Coin-Fixed-To-0. – Конечное условие 1: те же инструкции, что и для шагов Coin-Fixed-To-0. – В противном случае в конце ожидания пользователь i выполняет следующее. Он устанавливает vi как большинство голосов vj во вторых компонентах всех действительных мистер, с-1 дж он получил. Он вычисляет bi следующим образом. Если более 2/3 всех действительных mr,s−1 дж которые он получил, имеют вид (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 дж ), то он полагает bi \(\triangleq\)0. В противном случае, если более 2/3 всех действительных mr,s−1 дж которые он получил, имеют вид (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 дж ), то он полагает bi \(\triangleq\)1. Иначе, пусть SV r,s−1 я — множество (r, s−1)-верификаторов, от которых он получил валидное сообщение мистер, с-1 дж . Он устанавливает bi \(\triangleq\)lsb(minj\(\varepsilon\)SV r,s−1 я H(\(\sigma\)r,s−1 дж )). Он вычисляет сообщение mr,s я \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s я), уничтожает его эфемерное секретный ключ скр,с i , а затем распространяет mr,s я.
Шаг m + 3: Последний шаг BBA⋆a Инструкции для каждого пользователя i \(\in\)PKr−k: Пользователь i начинает свой собственный шаг m + 3 раунда r, как только он знает Br−1. • Пользователь i вычисляет Qr−1 из третьего компонента Br−1 и проверяет, принадлежит ли i SV r,m+3 или нет. • Если i /\(\varepsilon\)SV r,m+3, то я немедленно прекращает выполнение шага m + 3. • Если i \(\in\)SV r,m+3, то он делает следующее. – Он ждет, пока не пройдет время tm+3 \(\triangleq\)tm+2 + 2\(\lambda\) = (2m + 3)\(\lambda\) + Λ. – Конечное условие 0: те же инструкции, что и для шагов Coin-Fixed-To-0. – Конечное условие 1: те же инструкции, что и для шагов Coin-Fixed-To-0. – В противном случае в конце ожидания пользователь i выполняет следующее. Он устанавливает outi \(\triangleq\)1 и Br \(\triangleq\)Br. й. Он вычисляет сообщение mr,m+3 я = (ESIGi(outi), ESIGi(H(Br)), \(\sigma\)r,m+3 я ), уничтожает его эфемерный секретный ключ skr,m+3 я , а затем распространяет mr,m+3 я сертифицировать Бр.б aС огромной вероятностью BBA⋆ завершился до этого шага, и мы указываем этот шаг для полноты. b Сертификат, полученный на этапе m + 3, не обязательно должен включать ESIGi(outi). Мы включили его только для единообразия: сертификаты теперь имеют единый формат независимо от того, на каком этапе они создаются.Реконструкция блока Round-r неверификаторами Инструкции для каждого пользователя i в системе: Пользователь i начинает свой собственный раунд r, как только узнает Br-1 и ожидает информацию о блоке следующим образом. – Если во время такого ожидания и в любой момент времени существует строка v и шаг s′ такие что (a) 5 \(\leq\)s′ \(\leq\)m + 3 с s′ −2 ≡0 mod 3, (b) я получил как минимум tH действительных сообщений mr,s′−1 дж = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 дж ), и (c) я получил действительное сообщение, мистер 1 дж = (Бр j , esigj(H(Br j )), \(\sigma\)r,1 j ) с v = H(Br дж), затем я немедленно останавливаю его собственное выполнение раунда r; устанавливает Br = Br дж; и устанавливает свой собственный CERT r быть набором сообщений mr,s′−1 дж подэтапа (b). – Если во время такого ожидания и в любой момент времени существует шаг s′ такой, что (a’) 6 \(\leq\)s′ \(\leq\)m + 3 с s′ −2 ≡1 mod 3, и (b’) я получил как минимум tH действительных сообщений mr,s′−1 дж = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 дж ), затем я немедленно останавливаю его собственное выполнение раунда r; устанавливает Br = Br й; и устанавливает свой собственный CERT r быть набором сообщений mr,s′−1 дж подэтапа (b’). – Если во время такого ожидания и в любой момент времени я получил хотя бы tH действительных сообщений мистер, м+3 дж = (ESIGj(1), ESIGj(H(Br ϫ )) \(\sigma\)r,m+3 дж ), затем я останавливаю его собственное выполнение раунда r сразу устанавливает Br = Br ǫ и устанавливает свой собственный CERT r как набор сообщений mr,m+3 дж за 1 и H(Br й). 5,5 Анализ Algorand ′ 1 Введем следующие обозначения для каждого раунда r \(\geq\)0, используемого в анализе. • Пусть T r — это время, когда первый честный пользователь узнает Br−1. • Пусть Ir+1 — интервал [T r+1, Tr+1 + \(\lambda\)]. Обратите внимание, что T 0 = 0 при инициализации протокола. Напомним, что для каждого s \(\geq\)1 и i \(\in\)SV r,s \(\alpha\)r,s я и \(\beta\)r,s я соответственно время начала и время окончания шага s игрока i. Более того, напомним, что ts = (2s −3)\(\lambda\) + Λ для каждого 2 ⩽ s ⩽ m + 3. Кроме того, пусть I0 \(\triangleq\){0} и t1 \(\triangleq\)0. Наконец, напомним, что Lr \(\leq\)m/3 — случайная величина, представляющая количество испытаний Бернулли. нужно увидеть 1, когда каждое испытание равно 1 с вероятностью ph 2 и имеется не более m/3 испытаний. Если все испытания терпят неудачу, тогда Lr \(\triangleq\)m/3. В анализе мы игнорируем время вычислений, поскольку оно на самом деле незначительно по сравнению с необходимым временем. для распространения сообщений. В любом случае, используя немного большие \(\lambda\) и Λ, время вычисления может включаться непосредственно в анализ. Большинство приведенных ниже утверждений справедливы «с подавляющим вероятность», и мы не можем неоднократно подчеркивать этот факт в анализе.5,6 Основная теорема Теорема 5.1. Следующие свойства с подавляющей вероятностью выполняются для каждого раунда r \(\geq\)0: 1. Все честные пользователи согласны с тем же блоком Бр. 2. Когда лидер \(\ell\)r честен, блок Br генерируется \(\ell\)r, Br содержит максимальный набор выплат. получено \(\ell\)r за время \(\alpha\)r,1 \(\ell\)r , T r+1 \(\leq\)T r + 8\(\lambda\) + Λ, и все честные пользователи знают Br за время интервал Ir+1. 3. Когда лидер \(\ell\)r злонамерен, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ и все честные пользователи знают Br в интервале времени Ir+1. 4. ph = h2(1 + h−h2) для Lr, и лидер \(\ell\)r честен с вероятностью не ниже ph. Прежде чем доказывать нашу основную теорему, сделаем два замечания. Замечания. • Генерация блоков и реальная задержка. Время генерации блока Br определяется как T r+1 -T r. То есть, это разница между первым разом, когда честный пользователь изучает Br, и когда честный пользователь впервые узнает Br-1. Когда лидер раунда R честен, Свойство 2 наше. Основная теорема гарантирует, что точное время генерации Br составляет 8\(\lambda\) + Λ времени, независимо от того, что точное значение h > 2/3 может быть. Когда лидер злонамерен, свойство 3 подразумевает, что ожидаемое время генерации Br ограничено сверху ( 12 ph + 10)\(\lambda\) + Λ, опять же независимо от точного значение h.18 Однако ожидаемое время генерации Br зависит от точного значения h. Действительно, по свойству 4 ph = h2(1 + h−h2) и лидер честен с вероятностью не менее ph, таким образом E[T r+1 −T r] \(\leq\)h2(1 + h −h2) \(\cdot\) (8\(\lambda\) + Λ) + (1 −h2(1 + h −h2))(( 12 h2(1 + h−h2) + 10)\(\lambda\) + Λ). Например, если h = 80%, то E[T r+1 −T r] \(\leq\)12,7\(\lambda\) + Λ. • \(\lambda\) против Λ. Обратите внимание, что размер сообщений, отправленных проверяющими на этапе Algorand ′, доминирует. длиной ключей цифровой подписи, которая может оставаться фиксированной, даже если число пользователей огромно. Также обратите внимание, что на любом шаге s > 1 одно и то же ожидаемое количество n проверяющих может использоваться независимо от того, составляет ли количество пользователей 100 тыс., 100 млн или 100 млн. Это так, потому что n исключительно зависит от h и F. Таким образом, в целом, если не считать внезапной необходимости увеличить длину секретного ключа, значение \(\lambda\) должно оставаться неизменным независимо от того, насколько велико количество пользователей в сети. обозримое будущее. Напротив, при любой скорости транзакций количество транзакций растет с увеличением количества пользователи. Следовательно, для своевременной обработки всех новых транзакций размер блока должен также растут вместе с числом пользователей, в результате чего Λ тоже растет. Таким образом, в долгосрочной перспективе мы должны иметь \(\lambda\) << Λ. Соответственно, правильно иметь больший коэффициент для \(\lambda\), и фактически коэффициент 1 для Λ. Доказательство теоремы 5.1. Свойства 1–3 докажем по индукции: предполагая, что они выполняются для раунда r −1 (без ограничения общности они автоматически справедливы для «раунда -1» при r = 0), докажем их для круглый р. 18Действительно, E[T r+1 −T r] \(\leq\)(6E[Lr] + 10)\(\lambda\) + Λ = (6 \(\cdot\) 2 ph + 10)\(\lambda\) + Λ = ( 12 ph + 10)\(\lambda\) + Λ.Поскольку Br−1 однозначно определяется по предположению индукции, множество SV r,s однозначно определяется для каждого шага s раунда r. По выбору n1 SV r,1 ̸= \(\emptyset\) с подавляющей вероятностью. Мы сейчас сформулируйте следующие две леммы, доказанные в разделах 5.7 и 5.8. На протяжении всей индукции и в доказательства двух лемм, анализ для раунда 0 практически аналогичен индуктивному шагу, и мы выделим различия, когда они возникнут. Лемма 5.2. [Лемма о полноте] Предполагая, что свойства 1–3 выполняются для раунда r−1, когда лидер \(\ell\)r честен, с подавляющей вероятностью, • Все честные пользователи соглашаются на один и тот же блок Br, который генерируется \(\ell\)r и содержит максимальное набор выплат, полученный \(\ell\)r к моменту времени \(\alpha\)r,1 \(\ell\)r \(\in\)Ir; и • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ и все честные пользователи знают Br в интервале времени Ir+1. Лемма 5.3. [Лемма о надежности] Предполагая, что свойства 1–3 выполняются для раунда r −1, когда лидер \(\ell\)r является вредоносным, с подавляющей вероятностью все честные пользователи согласны с одним и тем же блоком Br, T r+1 \(\leq\) T r + (6Lr + 10)\(\lambda\) + Λ и все честные пользователи знают Br на интервале времени Ir+1. Свойства 1–3 выполняются при применении лемм 5.2 и 5.3 к r = 0 и индуктивному шагу. Наконец, переформулируем свойство 4 в виде следующей леммы, доказанной в разделе 5.9. Лемма 5.4. Учитывая свойства 1–3 для каждого раунда до r, ph = h2(1 + h −h2) для Lr и лидер \(\ell\)r честен с вероятностью не менее тел. Объединив вместе предыдущие три леммы, теорема 5.1 верна. ■ В приведенной ниже лемме утверждается несколько важных свойств раунда r с учетом индуктивности. гипотезу и будет использоваться при доказательстве трех приведенных выше лемм. Лемма 5.5. Предположим, что свойства 1–3 выполняются для раунда r−1. Для каждого шага s \(\geq\)1 раунда r и каждого честного проверяющего i \(\in\)HSV r,s, мы имеем, что (а) \(\alpha\)r,s я €Ир; (б) если игрок i ждал некоторое время ts, то \(\beta\)r,s я \(\in\)[T r + ts, Tr + \(\lambda\) + ts] для r > 0 и \(\beta\)р,с я = ts для r = 0; и (c) если игрок i ждал некоторое время ts, то к времени \(\beta\)r,s я, он получил все сообщения отправлено всеми честными проверяющими j \(\in\)HSV r,s′ для всех шагов s′ < s. Более того, для каждого шага s \(\geq\)3 имеем (г) не существует двух разных игроков i, i′ \(\in\)SV r,s и двух разных значений v, v′ одного и того же такой длины, что оба игрока ждали время ts, более 2/3 всех действительные сообщения mr,s-1 дж игрок, которого я получаю, подписался на v, и более 2/3 всех действительных сообщения г-н, с-1 дж игрок i' получает, подписался на v'. Доказательство. Свойство (a) следует непосредственно из индуктивного предположения, поскольку игрок i знает Br−1 в интервал времени Ir и сразу же начинает свой собственный шаг s. Свойство (б) непосредственно следует из (а): поскольку игрок i ждал некоторое время ts, прежде чем действовать, \(\beta\)r,s я = \(\alpha\)r,s я + ц. Заметим, что \(\alpha\)r,s я = 0 для р = 0. Теперь мы докажем свойство (в). Если s = 2, то по свойству (б) для всех верификаторов j \(\in\)HSV r,1 имеем \(\beta\)р,с я = \(\alpha\)r,s я + ts \(\geq\)T r + ts = Tr + \(\lambda\) + Λ \(\geq\) \(\beta\)r,1 дж + Л.Поскольку каждый верификатор j \(\in\)HSV r,1 отправляет свое сообщение в момент времени \(\beta\)r,1 дж и сообщение дойдет до всех честных пользователей не более чем за Λ время, за время \(\beta\)r,s я Игрок i получил сообщения, отправленные всеми верификаторами в HSV r,1 по желанию. Если s > 2, то ts = ts−1 + 2\(\lambda\). По свойству (b) для всех шагов s′ < s и всех верификаторов j \(\in\)HSV r,s′ \(\beta\)р,с я = \(\alpha\)r,s я + ts \(\geq\)T r + ts = Tr + ts−1 + 2\(\lambda\) \(\geq\)T r + ts′ + 2\(\lambda\) = Tr + \(\lambda\) + ts′ + \(\lambda\) \(\geq\) \(\beta\)r,s′ дж + \(\lambda\). Поскольку каждый верификатор j \(\in\)HSV r,s′ отправляет свое сообщение в момент времени \(\beta\)r,s′ дж и сообщение дойдет до всех честных пользователей не более чем за \(\lambda\) время, за время \(\beta\)r,s я игрок i получил все сообщения, отправленные всеми честными проверяющими в HSV r,s′ для всех s′ < s. Таким образом, свойство (c) выполнено. Наконец, мы докажем свойство (d). Обратите внимание, что верификаторы j \(\in\)SV r,s−1 подписывают не более двух вещей в Шаг s-1 с использованием их эфемерных секретных ключей: значение vj той же длины, что и выходные данные hash, а также бит bj \(\in\){0, 1}, если s−1 \(\geq\)4. Поэтому в формулировке леммы мы требуем, чтобы v и v' имели одинаковую длину: многие верификаторы могли подписать оба значения hash v и бит b, таким образом, оба проходят порог 2/3. Предположим от противного, что существуют искомые верификаторы i, i' и значения v, v'. Обратите внимание, что некоторые злонамеренные проверяющие в MSV r,s-1 могли подписать как v, так и v', но каждый честный верификатор в HSV r,s−1 подписал не более одного из них. По свойству (c) и i, и i′ получили все сообщения, отправленные всеми честными проверяющими в HSV r,s-1. Пусть HSV r,s−1(v) — множество честных (r, s−1)-верификаторов, подписавших v, MSV r,s−1 я набор злонамеренных (r, s−1)-верификаторов, от которых i получил допустимое сообщение, и MSV r,s−1 я (v) подмножество MSV r,s−1 я от которого я получил действительную подпись сообщения v. По требованиям к я и в, у нас есть отношение \(\triangleq\)|HSV r,s−1(v)| + |MSV r,s−1 я (в)| |HSV r,s−1| + |MSV r,s−1 я |
2 3. (1) Мы сначала показываем |MSV r,s−1 я (в)| \(\leq\)|HSV r,s−1(v)|. (2) Если предположить обратное, то по соотношениям параметров с подавляющей вероятностью |HSV r,s−1| > 2|MSV r,s−1| \(\geq\)2|MSV r,s−1 я |, таким образом отношение < |HSV r,s−1(v)| + |MSV r,s−1 я (в)| 3|MSV r,s−1 я | < 2|MSV r,s−1 я (в)| 3|MSV r,s−1 я | \(\leq\)2 3, противоречит неравенству 1. Далее, по неравенству 1 имеем 2|HSV r,s−1| + 2|MSV r,s−1 я | < 3|HSV r,s−1(v)| + 3|MSV r,s−1 я (в)| \(\leq\) 3|HSV r,s−1(v)| + 2|MSV r,s−1 я | + |MSV r,s−1 я (в)|. В сочетании с неравенством 2, 2|HSV r,s−1| < 3|HSV r,s−1(v)| + |MSV r,s−1 я (в)| \(\leq\)4|HSV r,s−1(v)|, что подразумевает |HSV r,s−1(v)| > 1 2|HSV r,s−1|.Аналогично, согласно требованиям к i′ и v′, имеем |HSV r,s−1(v′)| > 1 2|HSV r,s−1|. Поскольку честный проверяющий j \(\in\)HSV r,s−1 уничтожает свой эфемерный секретный ключ skr,s−1 дж перед распространением свое сообщение, Противник не может подделать подпись j для значения, которое j не подписывал, после узнав, что j является проверяющим. Таким образом, из двух приведенных выше неравенств следует |HSV r,s−1| \(\geq\)|HSV r,s−1(v)| + |HSV r,s−1(v′)| > |HSV r,s−1|, противоречие. Соответственно, искомых i, i′, v, v′ не существует, и Свойство (d) выполнено. ■ 5,7 Лемма о полноте Лемма 5.2. [Лемма о полноте, переформулированная] Предполагая, что свойства 1–3 выполняются для раунда r−1, когда лидер \(\ell\)r честен, с подавляющей вероятностью, • Все честные пользователи соглашаются на один и тот же блок Br, который генерируется \(\ell\)r и содержит максимальное набор выплат, полученный \(\ell\)r к моменту времени \(\alpha\)r,1 \(\ell\)r \(\in\)Ir; и • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ и все честные пользователи знают Br в интервале времени Ir+1. Доказательство. По индуктивному предположению и лемме 5.5 для каждого шага s и верификатора i \(\in\)HSV r,s \(\alpha\)r,s я €Ир. Ниже мы шаг за шагом анализируем протокол. Шаг 1. По определению, каждый честный проверяющий i \(\in\)HSV r,1 распространяет желаемое сообщение mr,1 я в время \(\beta\)r,1 я = \(\alpha\)r,1 я, где мистер, 1 я = (Бр i , esigi(H(Br i ))), \(\sigma\)r,1 я ), Бр i = (r, PAY r i , SIGi(Qr−1), H(Br−1)), и ПЛАТИТЬ р i — максимальный набор выплат среди всех платежей, которые я видел к моменту времени \(\alpha\)r,1 я. Шаг 2. Произвольно зафиксируем честный проверяющий элемент i \(\in\)HSV r,2. По лемме 5.5, когда игрок i закончил ожидание во время \(\beta\)r,2 я = \(\alpha\)r,2 я + t2, он получил все сообщения, отправленные верификаторами в HSV r,1, включая мистер, 1 \(\ell\)р. По определению \(\ell\)r, в PKr-k не существует другого игрока, чьи полномочия hash значение меньше, чем H(\(\sigma\)r,1 \(\ell\)р). Конечно, Противник может испортить \(\ell\)r, увидев, что H(\(\sigma\)r,1 \(\ell\)р) очень мал, но к этому моменту игрок \(\ell\)r уничтожил свой эфемерный ключ и сообщение mr,1 \(\ell\)р был распространен. Таким образом, проверяющий i назначает своим лидером игрока \(\ell\)r. Соответственно, в момент времени \(\beta\)r,2 я, проверяющий i распространяет mr,2 я = (ESIGi(v′ i), \(\sigma\)r,2 i ), где v′ я = H(Br \(\ell\)р). Когда r = 0, единственная разница это \(\beta\)r,2 я = t2, а не находиться в диапазоне. То же самое можно сказать и о будущих шагах, и мы не буду подчеркивать их снова. Шаг 3. Произвольно зафиксируем честный проверяющий элемент i \(\in\)HSV r,3. По лемме 5.5, когда игрок i закончил ожидание во время \(\beta\)r,3 я = \(\alpha\)r,3 я + t3, он получил все сообщения, отправленные верификаторами в HSV r,2. По соотношениям параметров с подавляющей вероятностью |HSV r,2| > 2|МСВ г,2|. Более того, ни один честный проверяющий не стал бы подписывать противоречивые сообщения, а Противник не может подделать подпись честного проверяющего после того, как последний уничтожил свою соответствующую подпись. эфемерный секретный ключ. Таким образом, более 2/3 всех действительных (r, 2)-сообщений, которые я получил, поступили от честные проверяющие и в форме mr,2 дж = (ESIGj(H(Br \(\ell\)r)) \(\sigma\)r,2 j ), без противоречия. Соответственно, в момент времени \(\beta\)r,3 я Игрок я распространяет мистера, 3 я = (ESIGi(v′), \(\sigma\)r,3 i ), где v′ = H(Br \(\ell\)р).Шаг 4. Произвольно зафиксируем честный проверяющий элемент i \(\in\)HSV r,4. По лемме 5.5 игрок i получил все сообщения, отправленные верификаторами в HSV r,3, когда он закончил ожидание в момент времени \(\beta\)r,4 я = \(\alpha\)r,4 я + т4. Похоже на: Шаг 3: более 2/3 всех действительных (r, 3)-сообщений, которые я получил, получены от честных проверяющих и формы г-н,3 дж = (ESIGj(H(Br \(\ell\)r)) \(\sigma\)r,3 дж). Соответственно, игрок i устанавливает vi = H(Br \(\ell\)r), gi = 2 и bi = 0. В момент времени \(\beta\)r,4 я = \(\alpha\)r,4 я +t4 он размножается мистер, 4 я = (ESIGi(0), ESIGi(H(Br \(\ell\)r)) \(\sigma\)r,4 я). Шаг 5. Произвольно зафиксируем честный проверяющий элемент i \(\in\)HSV r,5. По лемме 5.5 у меня был бы игрок получил все сообщения, отправленные верификаторами в HSV r,4, если он дождался времени \(\alpha\)r,5 я + т5. Обратите внимание, что |HSV р,4| \(\geq\)tH.19 Также обратите внимание, что все верификаторы в HSV r,4 подписались за H(Br \(\ell\)р). Так как |MSV r,4| < tH, не существует v′ ̸= H(Br \(\ell\)r), который мог быть подписан tH проверяющие в SV r,4 (которые обязательно будут злонамеренными), поэтому игрок i не останавливается, пока не получил действительные сообщения г-н, 4 дж = (ESIGj(0), ESIGj(H(Br \(\ell\)r)) \(\sigma\)r,4 дж). Пусть Т — время, когда происходит последнее событие. Некоторые из этих сообщений могут исходить от злонамеренных игроков, но поскольку |МСВ р,4| < tH, хотя бы одно из них от честного верификатора в HSV r,4 и отправлено спустя время Т р +t4. Соответственно, T \(\geq\)T r +t4 > Tr +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\)r +Λ, и к моменту T игрок i также получил сообщение мистер 1 \(\ell\)р. По построению протокола игрок i останавливается в момент \(\beta\)r,5 я = Т без пропаганда чего-либо; устанавливает Br = Br \(\ell\)р; и устанавливает свой собственный CERT r как набор (r, 4)-сообщений для 0 и H(Br \(\ell\)r), что он получил. Шаг s > 5. Аналогично, для любого шага s > 5 и любого проверяющего i \(\in\)HSV r,s игрок i будет иметь получил все сообщения, отправленные верификаторами в HSV r,4, если он дождался времени \(\alpha\)r,s я + ц. По тот же анализ, игрок i останавливается, ничего не распространяя, устанавливая Br = Br \(\ell\)r (и устанавливая свой собственный CERT r правильно). Конечно, злонамеренные верификаторы могут не останавливаться и распространять произвольные сообщений, но поскольку |MSV r,s| < tH, по индукции никакое другое v' не может быть подписано проверяющими tH на любом шаге 4 \(\leq\)s' < s, таким образом, честные проверяющие останавливаются только потому, что они получили действительный результат. (r, 4)-сообщения для 0 и H(Br \(\ell\)р). Реконструкция блока «Раунд-р». Анализ шага 5 применим к общему честному пользователь i почти без каких-либо изменений. Действительно, игрок i начинает свой раунд r в интервале Ir и остановится в момент T только тогда, когда он получит tH действительных (r, 4)-сообщений для H(Br \(\ell\)р). Опять же, потому что хотя бы одно из этих сообщений отправлено честными проверяющими и отправлено через время T r + t4, игрок i имеет также получил мистер 1 \(\ell\)r на время T. Таким образом, он устанавливает Br = Br \(\ell\)r с соответствующим CERT r. Осталось только показать, что все честные пользователи завершают свой раунд r за интервал времени Ir+1. Согласно анализу шага 5, каждый честный проверяющий i \(\in\)HSV r,5 знает Br на или раньше \(\alpha\)r,5 я + t5 \(\leq\) Т r + \(\lambda\) + t5 = T r + 8\(\lambda\) + Λ. Поскольку T r+1 — это момент, когда первый честный пользователь ir узнает Br, мы имеем Т r+1 \(\leq\)T r + 8\(\lambda\) + Λ по желанию. Более того, когда игрок знает Br, он уже помогает распространять сообщения в его CERT р. Обратите внимание, что все эти сообщения будут получены всеми честными пользователями в течение времени \(\lambda\), даже если 19Строго говоря, это происходит с очень высокой вероятностью, но не обязательно ошеломляющей. Однако это вероятность незначительно влияет на время работы протокола, но не влияет на его корректность. Когда h = 80%, то |HSV р,4| \(\geq\)tH с вероятностью 1−10−8. Если это событие не произойдет, протокол продолжится еще 3 шага. Поскольку вероятность того, что это не произойдет за два шага, ничтожна, протокол завершится на шаге 8. ожидание, то количество необходимых шагов будет почти 5.игрок ir был первым игроком, который их распространил. Более того, согласно приведенному выше анализу, мы имеем Т r+1 \(\geq\)T r + t4 \(\geq\) \(\beta\)r,1 \(\ell\)r + Λ, таким образом, все честные пользователи получили mr,1 \(\ell\)r по времени T r+1 + \(\lambda\). Соответственно, все честные пользователи знают Br в интервале времени Ir+1 = [T r+1, T r+1 + \(\lambda\)]. Наконец, при r = 0 фактически имеем T 1 ⩽t4 + \(\lambda\) = 6\(\lambda\) + Λ. Соединив всё воедино, Лемма 5.2 справедлива. ■ 5,8 Лемма о разумности Лемма 5.3. [Лемма о правильности, переформулированная] Предполагая, что свойства 1–3 выполняются для раунда r −1, когда лидер \(\ell\)r является вредоносным, с подавляющей вероятностью все честные пользователи соглашаются на один и тот же блок Br, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ, и все честные пользователи знают Br на интервале времени Ir+1. Доказательство. Мы рассматриваем две части протокола, GC и BBA⋆, отдельно. ГК. По индуктивному предположению и лемме 5.5 для любого шага s \(\in\){2, 3, 4} и любого честного верификатор i \(\in\)HSV r,s, когда игрок i действует в момент времени \(\beta\)r,s я = \(\alpha\)r,s я + тс, он получил все отправленные сообщения всеми честными проверяющими на шагах s' < s. Выделим два возможных случая для шага 4. Случай 1. Ни один верификатор i \(\in\)HSV r,4 не устанавливает gi = 2. В этом случае по определению bi = 1 для всех верификаторов i \(\in\)HSV r,4. То есть они начинаются с соглашение о 1 в бинарном протоколе BA. У них может не быть согласия по поводу их VI, но это не имеет значения, как мы увидим в двоичном BA. Случай 2. Существует верификатор ˆi \(\in\)HSV r,4 такой, что gˆi = 2. В данном случае мы показываем, что (1) gi \(\geq\)1 для всех i \(\in\)HSV r,4, (2) существует значение v′ такое, что vi = v′ для всех i \(\in\)HSV r,4, и (3) существует допустимое сообщение mr,1 \(\ell\) из некоторого верификатора \(\ell\) \(\varepsilon\)SV r,1 такого, что v′ = H(Br \(\ell\)). Действительно, поскольку игрок ˆi честен и устанавливает gˆi = 2, более 2/3 всех действительных сообщений mr,3 дж он получил для того же значения v′ ̸= \(\bot\) и установил vˆi = v′. По свойству (d) леммы 5.5 для любого другого честного (r, 4)-верификатора i не может быть более чем 2/3 всех действительных сообщений mr,3 дж которые i' получил, относятся к одному и тому же значению v'' ̸= v'. Соответственно, если я устанавливаю gi = 2, должно быть так, что я также видел > 2/3 большинства для v 'и установил vi = v', по желанию. Теперь рассмотрим произвольный верификатор i \(\in\)HSV r,4 с gi < 2. Аналогично анализу свойства (d) в лемме 5.5, поскольку игрок ˆi получил большинство > 2/3 за v′, более 1 2|HSV г,3| честный (r, 3)-верификаторы имеют знак v'. Поскольку я получил все сообщения от честных (r, 3)-верификаторов время \(\beta\)r,4 я = \(\alpha\)r,4 я + t4, в частности он получил более 1 2|HSV г,3| сообщения от них для v'. Поскольку |HSV r,3| > 2|MSV r,3|, я набрал > 1/3 большинства за v'. Соответственно, игрок я устанавливаю gi = 1, и свойство (1) выполняется. Обязательно ли игрок i устанавливает vi = v′? Предположим, что существует другое значение v′′ ̸= \(\bot\) такое, что игрок i также получил большинство в > 1/3 за v''. Некоторые из этих сообщений могут быть от вредоносного верификаторов, но по крайней мере один из них принадлежит какому-то честному верификатору j \(\in\)HSV r,3: действительно, поскольку |HSV г,3| > 2|МСВ г,3| и я получил все сообщения от HSV r,3, набора вредоносных верификаторы, от которых я получил валидное (r, 3)-сообщение, составляют <1/3 всех валидных сообщений. сообщения, которые он получил.По определению, игрок j должен был видеть > 2/3 большинства для v'' среди всех действительных (r, 2)-сообщений. он получил. Однако мы уже знаем, что некоторые другие честные (r, 3)-верификаторы видели 2/3 большинства за v' (потому что они подписались v'). По свойству (г) леммы 5.5 это не может случаются, и такого значения v'' не существует. Таким образом, игрок i должен установить vi = v′ по своему желанию, и свойство (2) выполнено. Наконец, учитывая, что некоторые честные (r, 3)-верификаторы получили большинство > 2/3 для v', некоторые (фактически, более половины) честных (r, 2)-верификаторов подписались за v' и распространили свои сообщения. Согласно построению протокола, эти честные (r, 2)-верификаторы должны были получить действительный сообщение, мистер 1 \(\ell\) от некоторого игрока \(\ell\) \(\varepsilon\)SV r,1 такого, что v′ = H(Br \(\ell\)), поэтому свойство (3) выполнено. ББА⋆. Мы снова различаем два случая. Случай 1. Все верификаторы i \(\in\)HSV r,4 имеют bi = 1. Это происходит после случая 1 GC. Так как |MSV r,4| < tH, в этом случае верификатора в SV r,5 нет. мог бы собрать или сгенерировать tH действительных (r, 4)-сообщений для бита 0. Таким образом, ни один честный верификатор в HSV r,5 остановился бы, потому что знает непустой блок Бр. Более того, хотя для бита 1 существует не менее tH допустимых (r, 4)-сообщений, s′ = 5 не удовлетворяет s′ −2 ≡1 mod 3, поэтому ни один честный проверяющий в HSV r,5 не остановится, потому что он знает Br = Br й. Вместо этого каждый верификатор i \(\in\)HSV r,5 действует в момент времени \(\beta\)r,5 я = \(\alpha\)r,5 я + t5, когда он получит все сообщения, отправленные HSV r,4 согласно лемме 5.5. Таким образом, игрок i получил большинство в 2/3 за 1. и устанавливает bi = 1. На шаге 6, который представляет собой шаг с фиксированной монетой до 1, хотя s′ = 5 удовлетворяет условию s′ −2 ≡0 mod 3, существует не существует действительных (r, 4)-сообщений для бита 0, поэтому ни один верификатор в HSV r,6 не остановится, потому что он знает непустой блок Бр. Однако при s′ = 6 s′ −2 ≡1 mod 3 и существуют |HSV р,5| \(\geq\)tH действительных (r,5)-сообщений для бита 1 из HSV r,5. Для каждого верификатора i \(\in\)HSV r,6, согласно лемме 5.5, в момент времени \(\alpha\)r,6 или раньше я + игрок t6 я получил все сообщения от HSV r,5, поэтому останавливаюсь, ничего не распространяя, и устанавливаю Бр = Бр й. Его CERT r представляет собой набор действительных (r, 5)-сообщений mr,5. дж = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 к) получено им, когда он останавливается. Далее, пусть игрок i будет либо честным проверяющим на шаге s > 6, либо обычным честным пользователем (т. е. не проверяющий). Аналогично доказательству леммы 5.2, игрок i устанавливает Br = Br ǫ и устанавливает свой собственный CERT r — набор действительных (r, 5)-сообщений mr,5. дж = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 к) у него есть получил. Наконец, аналогично лемме 5.2, Т р+1 \(\leq\) мин i\(\varepsilon\)HSV r,6 \(\alpha\)r,6 я + t6 \(\leq\)T r + \(\lambda\) + t6 = T r + 10\(\lambda\) + Λ, и все честные пользователи знают Br в интервале времени Ir+1, потому что первый честный пользователь i, который знает, что Br помог распространить (r, 5)-сообщения в своем CERT r. Случай 2. Существует верификатор ˆi \(\in\)HSV r,4 такой, что bˆi = 0. Это происходит после случая 2 GC и является более сложным случаем. По анализу GC, в этом случае существует допустимое сообщение mr,1 \(\ell\) такая, что vi = H(Br \(\ell\)) для всех i \(\in\)HSV r,4. Примечание что верификаторы в HSV r,4 могут не прийти к согласию относительно своих bi. Для любого шага s \(\in\){5, . . . , m + 3} и проверяющий i \(\in\)HSV r,s, по лемме 5.5 игроку я бы получил все сообщения, отправленные всеми честными проверяющими в HSV r,4 \(\cup\) \(\cdots\) \(\cup\)HSV r,s−1, если он дождался за время ц.Теперь рассмотрим следующее событие E: существует шаг s∗\(\geq\)5 такой, что для первого время в двоичном BA, какой-то игрок i∗\(\varepsilon\)SV r,s∗ (злонамеренный или честный) должен остановиться ничего не пропагандируя. Мы используем слово «следует остановиться», чтобы подчеркнуть тот факт, что, если игрок i∗ злонамерен, то он может сделать вид, что не должен останавливаться по протоколу и распространять сообщения по выбору Противника. Более того, по построению протокола либо (E.a) i∗ способен собирать или генерировать не менее tH действительных сообщений mr,s′−1 дж = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 дж ) для тех же v и s′, при этом 5 \(\leq\)s′ \(\leq\)s∗ и s′ −2 ≡0 mod 3; или (E.b) i∗ способен собирать или генерировать не менее tH действительных сообщений mr,s′−1 дж = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 дж ) для того же s′, где 6 \(\leq\)s′ \(\leq\)s∗ и s′ −2 ≡1 mod 3. Поскольку честные (r, s′ −1)-сообщения принимаются всеми честными (r, s′)-верификаторами до того, как они закончились ожидания в Шагах s', и поскольку Противник получает все не позднее, чем честные пользователи, без ограничения общности имеем s′ = s∗ и игрок i∗ является злонамеренным. Обратите внимание, что мы не требовали, чтобы значение v в E.a было hash допустимого блока: как станет ясно при анализе v = H(Br \(\ell\)) в этом подсобытии. Ниже мы сначала анализируем случай 2, следующий за событием E, а затем показываем, что значение s∗ существенно распределяется соответственно Lr (таким образом, событие E происходит до шага m + 3 с подавляющим вероятность с учетом соотношений параметров). Начнем с того, что для любого шага 5 \(\leq\)s < s∗ каждый честный проверяющий i \(\in\)HSV r,s ждал время ts и установил vi как большинство голосов действительные (r, s−1)-сообщения, которые он получил. Поскольку игрок i получил все честные (r, s−1)-сообщения следуя лемме 5.5, поскольку все честные верификаторы в HSV r,4 имеют подпись H(Br \(\ell\)) следующий случай 2 GC, и поскольку |HSV r,s−1| > 2|MSV r,s−1| для каждого s по индукции мы имеем игрока i установил vi = H(Br \(\ell\)). То же самое справедливо для каждого честного проверяющего i \(\in\)HSV r,s∗, который не останавливается, не распространяя что угодно. Теперь рассмотрим шаг s∗ и выделим четыре подслучая. Случай 2.1.а. Событие E.a происходит и существует честный проверяющий i′ \(\in\)HSV r,s∗, который должен также остановиться, ничего не пропагандируя. В этом случае мы имеем s∗−2 ≡0 mod 3 и шаг s∗ — это шаг с фиксированной монетой до 0. Автор Согласно определению, игрок i получил не менее tH действительных (r, s∗−1)-сообщений вида (ESIGj(0), ESIGj(v), \(\sigma\)r,s∗−1 дж ). Поскольку все верификаторы в HSV r,s∗−1 имеют знак H(Br \(\ell\)) и |MSV r,s∗−1| < tH, имеем v = H(Br \(\ell\)). Поскольку хотя бы tH −|MSV r,s∗−1| \(\geq\)1 (r, s∗−1)-сообщений, полученных i′ для 0 и v отправляются верификаторами в HSV r,s∗−1 через время T r +ts∗−1 \(\geq\)T r +t4 \(\geq\)T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\) +Λ, игрок i' получил мистера, 1 \(\ell\) к тому моменту, когда он получит эти (r, s∗−1)-сообщения. Таким образом, игрок я останавливаюсь, ничего не распространяя; устанавливает Br = Br \(\ell\); и устанавливает свой CERT r в качестве набор действительных (r, s∗−1)-сообщений для 0 и v, которые он получил. Далее мы покажем, что любой другой верификатор i \(\in\)HSV r,s∗ либо остановился с Br = Br \(\ell\), или установил bi = 0 и распространил (ESIGi(0), ESIGi(H(Br \(\ell\))) \(\sigma\)r,s я). Действительно, поскольку шаг s∗ это первый раз, когда какой-то верификатор должен остановиться, ничего не распространяя, здесь нет существует шаг s′ < s∗ с s′ −2 ≡1 mod 3 такой, что tH (r, s′ −1)-верификаторы имеют знак 1. Соответственно, ни один верификатор в HSV r,s∗ не останавливается с Br = Br й.Более того, поскольку все честные проверяющие на этапах {4, 5, . . . , s∗−1} имеют знак H(Br \(\ell\)), есть не существует шага s′ \(\leq\)s∗ с s′ −2 ≡0 mod 3 такого, что tH (r, s′ −1)-верификаторы подписались некоторый v′′ ̸= H(Br \(\ell\)) — действительно, |MSV r,s′−1| < тХ. Соответственно, ни один верификатор в HSV r,s∗ не останавливает где Br ̸= Br ϫ и Br ̸= Br \(\ell\). То есть, если игрок i \(\in\)HSV r,s∗ остановился без распространяя что-либо, он, должно быть, установил Br = Br \(\ell\). Если игрок i \(\in\)HSV r,s∗ ждал время ts∗ и распространил сообщение в момент времени \(\beta\)r,s∗ я = \(\alpha\)r,s∗ я + ts∗, он получил все сообщения от HSV r,s∗−1, включая как минимум tH −|MSV r,s∗−1| из них для 0 и v. Если я видел > 2/3 большинства за 1, то он видел более 2(tH −|MSV r,s∗−1|) допустимых (r, s∗−1)-сообщений для 1, причем более чем 2tH−3|MSV r,s∗−1| из них от честных (r, s∗−1)-верификаторов. Однако это подразумевает |HSV r,s∗−1| \(\geq\)tH−|MSV r,s∗−1|+2tH−3|MSV r,s∗−1| > 2n−4|MSV r,s∗−1|, что противоречит тот факт, что |HSV r,s∗−1| + 4|MSV r,s∗−1| < 2n, который исходит из отношений для параметров. Соответственно я не вижу > 2/3 большинство за 1, и он устанавливает bi = 0, поскольку шаг s∗ — это шаг с фиксированной монетой до 0. Как у нас есть видно, vi = H(Br \(\ell\)). Таким образом, i распространяет (ESIGi(0), ESIGi(H(Br \(\ell\))) \(\sigma\)r,s я) как мы и хотели показать. Для шага s∗+ 1, поскольку игрок i′ помог распространить сообщения в своем CERT r не позднее времени \(\alpha\)r,s∗ я' + ts∗, все честные проверяющие в HSV r,s∗+1 получили как минимум tH допустимых (r, s∗−1)-сообщений для бита 0 и значения H(Br \(\ell\)) не позднее, чем они будут готовы ожидание. Более того, верификаторы в HSV r,s∗+1 не остановятся, пока не получат те (r, s∗−1)- сообщений, поскольку не существует других действительных (r, s′ −1)-сообщений для бита 1 с s′ −2 ≡1 mod 3 и 6 \(\leq\)s′ \(\leq\)s∗+ 1 по определению шага s∗. В частности, Шаг s∗+ 1 сам по себе является шагом Coin-Fixed-To-1, но ни один честный верификатор в HSV r,s∗ не распространил сообщение для 1 и |MSV r,s∗| < тХ. Таким образом, все честные верификаторы в HSV r,s∗+1 останавливаются, ничего не распространяя, и устанавливают Br = Бр \(\ell\): как и прежде, они получили г-н,1 \(\ell\) прежде чем они получат желаемые (r, s∗−1)-сообщения.20 То же самое можно сказать обо всех честных верификаторах будущих шагов и обо всех честных пользователях в целом. В частности, все они знают Br = Br \(\ell\)в интервале времени Ir+1 и Т r+1 \(\leq\) \(\alpha\)r,s∗ я' + ts∗\(\leq\)T r + \(\lambda\) + ts∗. Случай 2.1.б. Событие E.b происходит и существует честный проверяющий i′ \(\in\)HSV r,s∗, который должен также остановиться, ничего не пропагандируя. В этом случае мы имеем s∗−2 ≡1 mod 3 и шаг s∗ — это шаг с фиксированной монетой до 1. Анализ аналогичен случаю 2.1.а, но многие детали опущены. 20Если он злонамерен, он может послать господина,1 \(\ell\) поздно, надеясь, что некоторые честные пользователи/верификаторы не получили mr,1 \(\ell\) еще когда они получат за это желаемый сертификат. Однако, поскольку верификатор ˆi \(\in\)HSV r,4 установил bˆi = 0 и vˆi = H(Br \(\ell\)), как прежде чем мы увидим, что более половины честных проверяющих i \(\in\)HSV r,3 установили vi = H(Br \(\ell\)). Это далее подразумевает больше более половины честных проверяющих i \(\in\)HSV r,2 установили vi = H(Br \(\ell\)), и все эти (r, 2)-верификаторы получили mr,1 \(\ell\). Как Злоумышленник не может отличить проверяющего от непроверяющего, он не может нацелиться на распространение mr,1 \(\ell\) к (r, 2)-верификаторам так, чтобы это не увидели те, кто не проверял. На самом деле, с большой вероятностью, более половины (или хорошая постоянная доля) всех честных пользователей видели mr,1 \(\ell\) после ожидания t2 с начала своего раунда r. С этого момента время \(\lambda\)′, необходимое для mr,1 \(\ell\) чтобы охватить оставшихся честных пользователей, намного меньше Λ, и для простоты мы не напишите это в анализе. Если 4\(\lambda\) \(\geq\) \(\lambda\)′, то анализ проходит без изменений: к концу шага 4 все честные пользователи получили бы mr,1 \(\ell\). Если размер блока становится огромным и 4\(\lambda\) < \(\lambda\)′, то на шагах 3 и 4 протокол может попросить каждого проверяющего дождаться \(\lambda\)'/2, а не 2\(\lambda\), и анализ продолжится.Как и раньше, игрок i′ должен получить не менее tH действительных (r, s∗−1)-сообщений вида (ESIGj(1), ESIGj(vj), \(\sigma\)r,s∗−1 дж ). Опять же, по определению s∗, не существует шага 5 \(\leq\)s′ < s∗ с s′ −2 ≡0 mod 3, где по крайней мере tH (r, s′ −1)-верификаторов имеют знак 0 и тот же v. Таким образом, игрок i' останавливается, ничего не распространяя; устанавливает Br = Br й; и наборы его собственный CERT r — это набор действительных (r, s∗−1)-сообщений для бита 1, которые он получил. Более того, любой другой верификатор i \(\in\)HSV r,s∗ либо остановился с Br = Br ϫ или установил bi = 1 и распространяется (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ я ). Поскольку игрок i' способствовал распространению (r, s∗−1)-сообщения в его CERT r к моменту времени \(\alpha\)r,s∗ я' + ts∗, снова все честные проверяющие в HSV r,s∗+1 останавливаемся, ничего не распространяя, и устанавливаем Br = Br й. Аналогично, все честно пользователи знают Br = Br ϫ в интервале времени Ir+1 и Т r+1 \(\leq\) \(\alpha\)r,s∗ я' + ts∗\(\leq\)T r + \(\lambda\) + ts∗. Случай 2.2.а. Событие E.a происходит, и не существует честного проверяющего i′ \(\in\)HSV r,s∗, который также должен остановиться, ничего не распространяя. В этом случае обратите внимание, что игрок i∗ может иметь действительный CERT r i∗состоящий из желаемого tH (r, s∗−1)-сообщения, которые Противник может собирать или генерировать. Однако злонамеренный проверяющие могут не способствовать распространению этих сообщений, поэтому мы не можем заключить, что честный пользователи получат их за время \(\lambda\). В самом деле, |MSV r,s∗−1| из этих сообщений могут быть от злонамеренные (r, s∗−1)-верификаторы, которые вообще не распространяли свои сообщения, а только отправляли их злонамеренным проверяющим на этапе s∗. Как и в случае 2.1.a, здесь мы имеем s∗−2 ≡0 mod 3, шаг s∗ — это шаг с фиксированной монетой до 0, и (r, s∗−1)-сообщения в CERT r i∗ относятся к биту 0 и v = H(Br \(\ell\)). Действительно, все честно (r, s∗−1)-верификаторы знака v, поэтому Противник не может сгенерировать tH действительных (r, s∗−1)-сообщений для другого v'. Более того, все честные (r, s∗)-верификаторы дождались времени ts∗ и не увидели > 2/3 большинства для бита 1, опять же потому, что |HSV r,s∗−1| + 4|MSV r,s∗−1| < 2н. Таким образом, каждый честный проверяющий i \(\in\)HSV r,s∗sets bi = 0, vi = H(Br \(\ell\)) большинством голосов и распространяет mr,s∗ я = (ESIGi(0), ESIGi(H(Br \(\ell\))) \(\sigma\)r,s∗ я ) в момент времени \(\alpha\)r,s∗ я + тс∗. Теперь рассмотрим честных проверяющих на шаге s∗+ 1 (это шаг с фиксированной монетой до 1). Если Злоумышленник фактически отправляет сообщения в CERT r. i∗ к некоторым из них и заставляет их стоп, тогда аналогично случаю 2.1.а все честные пользователи знают Br = Br \(\ell\)в пределах временного интервала ИК+1 и Т r+1 \(\leq\)T r + \(\lambda\) + ts∗+1. В противном случае все честные проверяющие на шаге s∗+1 получили все (r, s∗)-сообщения для 0 и Ч(Бр \(\ell\)) от HSV r,s∗ после времени ожидания ts∗+1, что приводит к большинству > 2/3, поскольку |HSV r,s∗| > 2|MSV r,s∗|. Таким образом, все верификаторы в HSV r,s∗+1 распространяют свои сообщения для 0 и H(Br \(\ell\)) соответственно. Обратите внимание, что верификаторы в HSV r,s∗+1 не останавливаются на Br = Br. \(\ell\), потому что шаг s∗+ 1 не является шагом с фиксированной монетой до 0. Теперь рассмотрим честных проверяющих на шаге s∗+2 (который является шагом подбрасывания монеты). Если злоумышленник отправляет сообщения в CERT r i∗ к некоторым из них и заставляет их остановиться, опять же все честные пользователи знают Бр = Бр \(\ell\)в интервале времени Ir+1 и Т r+1 \(\leq\)T r + \(\lambda\) + ts∗+2.В противном случае все честные проверяющие на шаге s∗+ 2 получили все (r, s∗+ 1)-сообщения для 0 и H(Br \(\ell\)) от HSV r,s∗+1 после времени ожидания ts∗+2, что приводит к большинству > 2/3. Таким образом, все они распространяют свои сообщения для 0 и H(Br \(\ell\)) соответственно: вот они и делают в данном случае не стоит «подбрасывать монетку». Опять же, обратите внимание, что они не прекращаются, не распространяясь. потому что шаг s∗+ 2 не является шагом с фиксированной монетой до 0. Наконец, для честных проверяющих на этапе s∗+3 (который является еще одним шагом Coin-Fixed-To-0) все из них получили бы как минимум tH действительных сообщений для 0 и H(Br \(\ell\)) из HSV s∗+2, если они действительно ждут время ts∗+3. Таким образом, независимо от того, отправляет ли Противник сообщения в CERT р i∗ к любому из них, все верификаторы в HSV r,s∗+3 останавливаются с Br = Br \(\ell\), без пропагандируя что-либо. В зависимости от того, как действует Противник, некоторые из них могут иметь собственный CERT r, состоящий из этих (r, s∗−1)-сообщений в CERT r i∗, а остальные имеют свой собственный CERT r, состоящий из этих (r, s∗+ 2)-сообщений. В любом случае, все честные пользователи знать Br = Br \(\ell\)в интервале времени Ir+1 и Т r+1 \(\leq\)T r + \(\lambda\) + ts∗+3. Случай 2.2.б. Событие E.b происходит, и не существует честного проверяющего i′ \(\in\)HSV r,s∗, который также должен остановиться, ничего не распространяя. Анализ в этом случае аналогичен анализам в случае 2.1.b и случае 2.2.a, поэтому много деталей. были опущены. В частности, CERT r i∗состоит из tH искомых (r, s∗−1)-сообщений для бита 1, который противник может собрать или сгенерировать, s∗−2 ≡1 mod 3, шаг s∗ — это Шаг Coin-Fixed-To-1, и ни один честный (r, s∗)-верификатор не смог бы увидеть большинство > 2/3 для 0. Таким образом, каждый верификатор i \(\in\)HSV r,s∗ устанавливает bi = 1 и распространяет mr,s∗ я = (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ я ) в момент времени \(\alpha\)r,s∗ я + тс∗. Как и в случае 2.2.а, не более чем за 3 шага (т. е. протокол достигает шага s∗+3, что является еще одним шагом Coin-Fixed-To-1), все честные пользователи знают Br = Br ψ в интервале времени Ir+1. Более того, T r+1 может быть \(\leq\)T r+\(\lambda\)+ts∗+1 или \(\leq\)T r+\(\lambda\)+ts∗+2, или \(\leq\)T r + \(\lambda\) + ts∗+3, в зависимости от того, когда честный проверяющий впервые сможет остановить без распространения. Объединив четыре подслучая, мы получаем, что все честные пользователи знают Br в пределах временного интервала. ИК+1, с T r+1 \(\leq\)T r + \(\lambda\) + ts∗ в случаях 2.1.a и 2.1.b, и T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 в случаях 2.2.a и 2.2.b. Осталось оценить сверху s∗ и, следовательно, T r+1 для случая 2, и мы делаем это, рассматривая, как много раз этапы «Genuinely-Flipped» действительно выполняются в протоколе: то есть некоторые честные проверяющие действительно подбросили монетку. В частности, произвольно зафиксируйте шаг «подлинно подброшенной монеты» s′ (т. е. 7 \(\leq\)s′ \(\leq\)m + 2 и s′ −2 ≡2 mod 3), и пусть \(\ell\)′ \(\triangleq\)arg minj\(\in\)SV r,s′−1 H(\(\sigma\)r,s′−1 дж ). А пока предположим, что s′ < s∗, потому что в противном случае ни один честный проверяющий на самом деле не подбросит монету на шагах s', согласно предыдущему дискуссии. По определению SV r,s'-1, значение hash учетных данных \(\ell\)' также является наименьшим среди все пользователи в PKr-k. Поскольку функция hash является случайной oracle, в идеале игрок \(\ell\)′ честен с вероятность не менее h. Как мы покажем позже, даже если Противник изо всех сил старается предсказать исход событий, выведите случайный oracle и наклоните вероятность, игрок \(\ell\)' все еще честен с вероятностьюхотя бы ph = h2(1 + h−h2). Ниже мы рассмотрим случай, когда это действительно имеет место, т. е. \(\ell\)′ \(\in\)HSV r,s′−1. Обратите внимание, что каждый честный проверяющий i \(\in\)HSV r,s′ получил все сообщения от HSV r,s′−1 по время \(\alpha\)r,s′ я + ц'. Если игроку i нужно подбросить монетку (т. е. он не набрал большинства более 2/3 за тот же бит b \(\in\) {0, 1}), то он устанавливает bi = lsb(H(\(\sigma\)r,s′−1 \(\ell\)' )). Если существует еще один честный проверяющий i′ \(\in\)HSV r,s′, который набрал > 2/3 большинства для бита b \(\in\) {0, 1}, то по свойству (d) из леммы 5.5 ни один честный проверяющий в HSV r,s' какое-то время не получил бы большинства > 2/3 б′ ̸= б. Поскольку lsb(H(\(\sigma\)r,s′−1 \(\ell\)' )) = b с вероятностью 1/2 все честные проверяющие в HSV r,s′ достигают согласие по b с вероятностью 1/2. Конечно, если такого верификатора i' не существует, то все честные верификаторы в HSV r,s' согласовывают бит lsb(H(\(\sigma\)r,s'−1 \(\ell\)' )) с вероятностью 1. Объединив вероятность для \(\ell\)′ \(\in\)HSV r,s′−1, мы получаем, что честные проверяющие в HSV r,s′ достичь согласия по биту b \(\in\){0, 1} с вероятностью не менее ph 2 = h2(1+h−h2) 2 . Более того, путем индукции по большинству голосов, как и раньше, все честные проверяющие в HSV r,s' имеют набор vi быть H(Br \(\ell\)). Таким образом, как только на шаге s будет достигнуто соглашение по b, Tr+1 будет либо \(\leq\)T r + \(\lambda\) + ts′+1, либо \(\leq\)T r + \(\lambda\) + ts′+2, в зависимости от того, b = 0 или b = 1, после анализа случаев 2.1.a и 2.1.b. В В частности, дальнейший шаг Coin-Genuinely-Flipped выполняться не будет: то есть проверяющие в такие шаги по-прежнему проверяют, что они являются проверяющими, и поэтому ждут, но все они остановятся без пропагандируя что-либо. Соответственно, перед шагом s∗ количество раз выполнения шагов Coin-GenuinelyFlipped распределяется согласно случайной величине Lr. Позволяя шагу s' быть последним шагом действительно подброшенной монеты согласно Lr, согласно построению протокола у нас есть s′ = 4 + 3Lr. Когда Противнику следует сделать Шаг s∗, если он хочет задержать T r+1 настолько, насколько возможно? Можно даже предположить, что Противник заранее знает реализацию Lr. Если s∗> s′, то это бесполезно, потому что честные проверяющие уже пришли к соглашению в Шаг с'. Конечно, в этом случае s∗ будет s′ +1 или s′ +2, опять же в зависимости от того, b = 0 или b = 1. Однако на самом деле это случаи 2.1.a и 2.1.b, и результирующий T r+1 в точности соответствует так же, как и в том случае. Точнее, Т r+1 \(\leq\)T r + \(\lambda\) + ts∗\(\leq\)T r + \(\lambda\) + ts′+2. Если s∗< s′ −3, то есть s∗ находится перед предпоследним шагом «подлинного подбрасывания монеты», то по анализ случаев 2.2.а и 2.2.б, T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 < Tr + \(\lambda\) + ts′. То есть Противник фактически ускоряет достижение соглашения по Бр. Если s∗= s′ −2 или s′ −1, то есть шаг Coin-Fixed-To-0 или шаг Coin-Fixed-To-1 непосредственно перед шагом s', а затем путем анализа четырех подслучаев честные проверяющие в Шаги s' больше не могут подбрасывать монеты, потому что они либо остановились, не распространяясь, или видели > 2/3 большинства для того же бита b. Поэтому у нас есть Т r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 \(\leq\)T r + \(\lambda\) + ts′+2.В общем, как бы то ни было, мы имеем Т r+1 \(\leq\)T r + \(\lambda\) + ts′+2 = T r + \(\lambda\) + t3Lr+6 = Т r + \(\lambda\) + (2(3Lr + 6) −3)\(\lambda\) + Λ = Т г + (6Lr + 10)\(\lambda\) + Λ, как мы хотели показать. Худший случай — когда s∗= s′ −1 и имеет место случай 2.2.b. Объединяя случаи 1 и 2 бинарного протокола BA, лемма 5.3 верна. ■ 5,9 Безопасность начального Qr и вероятность честного лидера Осталось доказать лемму 5.4. Напомним, что верификаторы в раунде r берутся из PKr−k и выбираются по величине Qr−1. Причина введения параметра ретроспективного анализа k состоит в том, чтобы убедиться, что на этапе r -k, когда Противник сможет добавить новых злонамеренных пользователей относительно PKr−k, он не может предсказать величину Qr−1, кроме как с пренебрежимо малой вероятностью. Обратите внимание, что Функция hash представляет собой случайную oracle, а Qr-1 является одним из ее входных данных при выборе проверяющих для раунда r. Таким образом, сколько бы злонамеренных пользователей ни добавляли в PKr-k, с точки зрения Злоумышленника каждый один из них по-прежнему выбирается в качестве проверяющего на этапе раунда r с требуемой вероятностью p (или p1 для шага 1). Точнее, имеем следующую лемму. Лемма 5.6. При k = O(log1/2 F) в каждом раунде r с подавляющей вероятностью Противник не запрашивал Qr-1 случайному oracle еще в раунде r -k. Доказательство. Мы действуем по индукции. Предположим, что для каждого раунда \(\gamma\) < r Противник не запрашивал Q\(\gamma\)−1 случайному oracle в раунде \(\gamma\) −k.21. Рассмотрим следующую мысленную игру, в которую играет Противник на раунде r−k пытается предсказать Qr−1. На шаге 1 каждого раунда \(\gamma\) = r −k, . . . , r−1, учитывая конкретный Q\(\gamma\)−1, не запрашиваемый в случайном oracle, упорядочив игроков i \(\in\)PK\(\gamma\)−k в соответствии со значениями hash H(SIGi(\(\gamma\), 1, Q\(\gamma\)−1)) все чаще мы получаем случайную перестановку над PK\(\gamma\)−k. По определению, лидер \(\ell\) \(\gamma\) – это первый пользователь в перестановке и честен с вероятностью h. Более того, когда PK\(\gamma\)−k велико достаточно, чтобы для любого целого числа x \(\geq\)1 вероятность того, что все первые x пользователей в перестановке являются злонамеренный, но (x + 1)-й честный — это (1 −h)xh. Если \(\ell\) \(\gamma\) честный, то Q\(\gamma\) = H(SIG\(\ell\) \(\gamma\)(Q\(\gamma\)−1), \(\gamma\)). Поскольку Противник не может подделать подпись от \(\ell\) \(\gamma\), Q\(\gamma\) распределяется равномерно случайным образом с точки зрения Противника и, за исключением с экспоненциально малой вероятностью22 не был запрошен H на этапе r −k. Поскольку каждый Q\(\gamma\)+1, Q\(\gamma\)+2, . . . , Qr−1 соответственно является выходом H с Q\(\gamma\), Q\(\gamma\)+1, . . . , Qr−2 в качестве одного из входов, все они кажутся противнику случайными, и противник не мог запросить Qr-1 к H в раунд r −k. Соответственно, единственный случай, когда Противник может с хорошей вероятностью предсказать Qr-1 на раунде r−k — это когда все лидеры \(\ell\)r−k, . . . , \(\ell\)r−1 являются вредоносными. Снова рассмотрим раунд \(\gamma\) \(\in\){r−k. . . , r−1} и случайная перестановка над PK\(\gamma\)-k, вызванная соответствующими значениями hash. Если для некоторых x \(\geq\)2, все первые x−1 пользователей в перестановке являются злонамеренными, а x-й — честными, тогда У противника есть x возможных вариантов выбора Q\(\gamma\): любой из форм H(SIGi(Q\(\gamma\)−1, \(\gamma\))), где i — один из 21Поскольку k — небольшое целое число, без ограничения общности можно предположить, что первые k раундов протокола выполняются в безопасной среде, и индуктивная гипотеза справедлива для этих раундов. 22То есть экспоненциально зависит от длины вывода H. Обратите внимание, что эта вероятность намного меньше, чем F.первых x-1 злоумышленников, сделав игрока i фактическим лидером раунда \(\gamma\); или H(Q\(\gamma\)−1, \(\gamma\)), по формуле заставляя B\(\gamma\) = B\(\gamma\) й. В противном случае лидер раунда \(\gamma\) будет первым честным пользователем в перестановке. и Qr-1 становится непредсказуемым для Противника. Какой из вышеперечисленных x вариантов Q\(\gamma\) должен использовать Противник? Чтобы помочь противнику ответьте на этот вопрос, в мысленной игре мы на самом деле делаем его более могущественным, чем он есть на самом деле заключается в следующем. Прежде всего, на самом деле Злоумышленник не может вычислить hash аккаунта честного пользователя. подпись, таким образом, не может определить для каждого Q\(\gamma\) количество x(Q\(\gamma\)) злонамеренных пользователей в начале случайной перестановки в раунде \(\gamma\) + 1, индуцированной Q\(\gamma\). В мысленной игре мы даем ему числа x(Q\(\gamma\)) бесплатно. Во-вторых, на самом деле, если в перестановке есть первые x пользователей, то все злонамеренность не обязательно означает, что их всех можно сделать лидерами, потому что hash значения их сигнатур также должны быть меньше p1. Мы проигнорировали это ограничение в мысленном игре, давая Противнику еще больше преимуществ. Легко видеть, что в мысленной игре оптимальный вариант Противника, обозначаемый ˆQ\(\gamma\), тот, который создает самую длинную последовательность злонамеренных пользователей в начале случайного перестановка в раунде \(\gamma\) + 1. Действительно, при заданном Q\(\gamma\) протокол не зависит от Q\(\gamma\)−1 больше, и Противник может сосредоточиться исключительно на новой перестановке в раунде \(\gamma\) + 1, которая имеет такое же распределение по количеству злоумышленников в начале. Соответственно, в каждом раунде \(\gamma\), упомянутый выше ˆQ\(\gamma\) дает ему наибольшее количество вариантов для Q\(\gamma\)+1 и тем самым максимизирует вероятность того, что все последовательные лидеры являются злонамеренными. Таким образом, в ментальной игре Противник следует Цепи Маркова с раунда r −k. для округления r−1, при этом пространство состояний равно {0} \(\cup\){x : x \(\geq\)2}. Состояние 0 представляет собой тот факт, что первый пользователь в случайной перестановке в текущем раунде \(\gamma\) честен, таким образом, Противник терпит неудачу игра по предсказанию Qr−1; и каждое состояние x \(\geq\)2 представляет собой тот факт, что первые x −1 пользователей в перестановки вредоносны, а x-я честна, таким образом, у Противника есть x вариантов для Q\(\gamma\). вероятности перехода P(x, y) следующие. • P(0, 0) = 1 и P(0, y) = 0 для любого y \(\geq\)2. То есть Противник проигрывает игру, как только первый раз пользователь в перестановке становится честным. • P(x, 0) = hx для любого x \(\geq\)2. То есть с вероятностью hx все случайные перестановки x имеют их первые пользователи честны, поэтому Противник проигрывает игру в следующем раунде. • Для любых x \(\geq\)2 и y \(\geq\)2 P(x, y) — это вероятность того, что среди случайных перестановок x вызванный опциями x Q\(\gamma\), самой длинной последовательностью злонамеренных пользователей в начале некоторые из них равны y−1, поэтому у Противника есть y вариантов для Q\(\gamma\)+1 в следующем раунде. То есть, Р(х, у) = у-1 Х я = 0 (1 −h)ih !х − у-2 Х я = 0 (1 −h)ih !х = (1 −(1 −h)y)x −(1 −(1 −h)y−1)x. Обратите внимание, что состояние 0 является уникальным поглощающим состоянием в матрице перехода P, а любое другое состояние x имеет положительную вероятность перехода к 0. Нас интересует ограничение сверху числа k раундов, необходимых для того, чтобы цепь Маркова с подавляющей вероятностью сошлась к 0: то есть нет независимо от того, в каком состоянии начинается цепочка, с подавляющей вероятностью Противник проиграет игру и не может предсказать Qr−1 на раунде r−k. Рассмотрим матрицу перехода P (2) \(\triangleq\)P \(\cdot\) P после двух раундов. Легко видеть, что P (2)(0, 0) = 1 и P (2)(0, x) = 0 для любого x \(\geq\)2. Для любых x \(\geq\)2 и y \(\geq\)2, поскольку P(0, y) = 0, имеем P (2)(x, y) = P(x, 0)P(0, y) + Х z\(\geq\)2 P(x, z)P(z, y) = Х z\(\geq\)2 Р(х, z)Р(z, у).Полагая ¯h \(\triangleq\)1 −h, имеем P(x, y) = (1 −¯hy)x −(1 −¯hy−1)x и Р (2)(х, у) = Х z\(\geq\)2 [(1 −¯hz)x −(1 −¯hz−1)x][(1 −¯hy)z −(1 −¯hy−1)z]. Ниже мы вычисляем предел P (2)(x,y) Р (х,у) когда h стремится к 1, то есть ¯h стремится к 0. Обратите внимание, что наивысший порядок ¯h в P(x, y) равен ¯hy−1 с коэффициентом x. Соответственно, Лим ч→1 Р (2)(х, у) Р(х, у) = Лим ¯ч→0 Р (2)(х, у) Р(х, у) = Лим ¯ч→0 Р (2)(х, у) x¯hy−1 + O(¯hy) = Лим ¯ч→0 П z\(\geq\)2[x¯hz−1 + O(¯hz)][z¯hy−1 + O(¯hy)] x¯hy−1 + O(¯hy) = Лим ¯ч→0 2x¯hy + O(¯hy+1) x¯hy−1 + O(¯hy) = Лим ¯ч→0 2x¯hy x¯hy−1 = lim ¯h \(\to\) 0 2¯h = 0. Когда h достаточно близко к 1,23, мы имеем Р (2)(х, у) Р(х, у) \(\leq\)1 2 для любых x \(\geq\)2 и y \(\geq\)2. По индукции для любого k > 2 P (k) \(\triangleq\)P k таково, что • P (k)(0, 0) = 1, P (k)(0, x) = 0 для любого x \(\geq\)2 и • для любых x \(\geq\)2 и y \(\geq\)2, P (k)(x, y) = P (k−1)(x, 0)P(0, y) + Х z\(\geq\)2 P (k−1)(x, z)P(z, y) = Х z\(\geq\)2 P (k−1)(x, z)P(z, y) \(\leq\) Х z\(\geq\)2 Р(х, г) 2k−2 \(\cdot\) P(z, y) = P (2)(x, y) 2k−2 \(\leq\)Р(х, у) 2к-1. Поскольку P(x, y) \(\leq\)1, после 1−log2 F раундов вероятность перехода в любое состояние y \(\geq\)2 пренебрежимо мала, начиная с любого состояния x \(\geq\)2. Хотя таких состояний много, легко видеть, что Лим y→+∞ Р(х, у) Р(х, у + 1) = Лим y→+∞ (1 −¯hy)x −(1 −¯hy−1)x (1 −¯hy+1)x −(1 −¯hy)x = Лим y→+∞ ¯hy−1 −¯hy ¯hy −¯hy+1 = 1 ¯h = 1 1-ч. Поэтому каждая строка x матрицы перехода P убывает как геометрическая последовательность со скоростью 1 1−h > 2 когда y достаточно велико, и то же самое справедливо и для P (k). Соответственно, когда k достаточно велико, но все же порядка log1/2 F, P y\(\geq\)2 P (k)(x, y) < F для любого x \(\geq\)2. То есть с большой вероятностью Противник проигрывает игру и не может предсказать Qr−1 в раунде r −k. Для h \(\in\)(2/3, 1] более комплексный анализ показывает, что существует константа C, немного большая, чем 1/2, такая, что ее достаточно взять k = O(logC F). Таким образом, лемма 5.6 верна. ■ Лемма 5.4. (переформулировано) Учитывая свойства 1–3 для каждого раунда до r, ph = h2(1 + h −h2) для Lr, а лидер \(\ell\)r честен с вероятностью не менее тел. 23Например, h = 80%, как следует из конкретного выбора параметров.
Доказательство. Согласно лемме 5.6, противник не может предсказать Qr-1 обратно в раунде r-k, за исключением случаев, когда ничтожная вероятность. Обратите внимание, что это не означает, что вероятность честного лидера равна h для каждый раунд. Действительно, учитывая Qr-1, в зависимости от того, сколько злоумышленников было в начале случайной перестановки PKr−k, противник может иметь более одного варианта для Qr и таким образом, может увеличить вероятность злонамеренного лидера в раунде r + 1 — мы снова даем ему некоторые нереальные преимущества, как в лемме 5.6, чтобы упростить анализ. Однако для каждого Qr−1, который не был запрошен H противником в раунде r −k, для любой x \(\geq\)1, с вероятностью (1−h)x−1h первый честный пользователь встречается на позиции x в результирующем случайная перестановка PKr−k. При x = 1 вероятность честного лидера в раунде r + 1 равна действительно ч; а когда x = 2, у Противника есть два варианта Qr, и результирующая вероятность равна ч2. Только рассмотрев эти два случая, мы получаем, что вероятность честного лидера в раунде r + 1 равно как минимум h \(\cdot\) h + (1 −h)h \(\cdot\) h2 = h2(1 + h −h2), как и хотелось. Обратите внимание, что приведенная выше вероятность учитывает только случайность в протоколе из раунда r −k. округлить р. Если принять во внимание всю случайность от раунда 0 до раунда r, Qr−1 равен еще менее предсказуем для Противника и вероятность честного лидера в раунде r+1 равна минимум h2(1 + h −h2). Заменив r+1 на r и сдвигая всё назад на один раунд, лидер \(\ell\)r честно с вероятностью не менее h2(1 + h−h2), как и хотелось. Аналогично, на каждом этапе «подлинного подбрасывания монеты» «лидер» этого шага — то есть проверяющий. в SV r,s, чьи учетные данные имеют наименьшее значение hash, честны с вероятностью не менее h2(1 + ч − h2). Таким образом, ph = h2(1 + h −h2) для Lr и лемма 5.4 выполнена. ■
Algorand ′
1 Trong phần này, chúng tôi xây dựng một phiên bản Algorand ′ hoạt động theo giả định sau. Giả định của đa số người dùng trung thực: Hơn 2/3 số người dùng trong mỗi PKr là trung thực. Trong Phần 8, chúng tôi trình bày cách thay thế giả định trên bằng Đa số trung thực mong muốn của Giả định về tiền. 5.1 Ký hiệu và thông số bổ sung Ký hiệu • m \(\in\)Z+: số bước tối đa trong giao thức BA nhị phân, bội số của 3. • Lr \(\leq\)m/3: một biến ngẫu nhiên đại diện cho số phép thử Bernoulli cần để thấy số 1, khi mỗi lần thử là 1 với xác suất ph 2 và có nhiều nhất m/3 phép thử. Nếu tất cả các thử nghiệm đều thất bại thì Lr \(\triangleq\)m/3. Lr sẽ được sử dụng để giới hạn trên thời gian cần thiết để tạo khối Br. • tH = 2n 3+1: số lượng chữ ký cần thiết trong điều kiện kết thúc của giao thức. • CERT r: chứng chỉ dành cho Br. Đó là một tập hợp các chữ ký tH của H(Br) từ những người xác minh thích hợp trong vòng r. Thông số • Mối quan hệ giữa các thông số khác nhau. — Với mỗi bước s > 1 của vòng r, n được chọn sao cho với xác suất áp đảo, |HSV r,s| > 2|MSV r,s| và |HSV r,s| + 4|MSV r,s| < 2n. Giá trị của h càng gần 1 thì n càng nhỏ. Đặc biệt, chúng tôi sử dụng (các biến thể of) Giới hạn Chernoff để đảm bảo các điều kiện mong muốn được giữ vững với xác suất áp đảo. — m được chọn sao cho Lr < m/3 với xác suất áp đảo. • Ví dụ lựa chọn các thông số quan trọng. — F = 10−12. — n \(\approx\)1500, k = 40 và m = 180.5.2 Triển khai Khóa tạm thời trong Algorand ′ 1 Như đã đề cập, chúng tôi mong muốn rằng người xác minh i \(\in\)SV r,s ký điện tử vào tin nhắn của mình mr,s tôi bước s trong vòng r, liên quan đến khóa công khai phù du pkr,s i , sử dụng khóa tiết ra tạm thời skr,s tôi đó anh ta kịp thời phá hủy sau khi sử dụng. Do đó chúng ta cần một phương pháp hiệu quả để đảm bảo rằng mọi người dùng đều có thể xác minh rằng pkr,s tôi thực sự là chìa khóa để sử dụng để xác minh chữ ký của ông tôi . Chúng tôi làm như vậy bằng cách (theo cách tốt nhất theo kiến thức của chúng tôi) việc sử dụng mới các sơ đồ chữ ký dựa trên danh tính. Ở mức độ cao, trong sơ đồ như vậy, cơ quan trung ương A tạo ra khóa chính công khai, PMK, và một khóa chính bí mật tương ứng, SMK. Cho danh tính U của người chơi U, A tính toán, thông qua SMK, khóa chữ ký bí mật skU liên quan đến khóa chung U và cung cấp skU riêng cho U. (Thật vậy, trong sơ đồ chữ ký số dựa trên danh tính, khóa chung của người dùng U chính là U!) Bằng cách này, nếu A hủy SMK sau khi tính toán khóa bí mật của người dùng mà anh ta muốn kích hoạt để tạo ra chữ ký số và không giữ bất kỳ khóa bí mật nào được tính toán thì U là người duy nhất có thể ký điện tử các tin nhắn liên quan đến khóa chung U. Do đó, bất kỳ ai biết “tên U”, tự động biết khóa công khai của U và do đó có thể xác minh chữ ký của U (có thể sử dụng cả khóa chính công khai PMK). Trong ứng dụng của chúng ta, người có thẩm quyền A là người dùng i và tập hợp tất cả những người dùng có thể có U trùng với cặp bước tròn (r, s) trong —say— S = {i}\(\times\){r′, . . . , r′ +106}\(\times\){1, . . . , m+3}, trong đó r′ là một giá trị cho trước vòng và m + 3 giới hạn trên của số bước có thể xảy ra trong một vòng. Cái này cách, pkr,s tôi \(\triangleq\)(i, r, s), để mọi người nhìn thấy chữ ký SIGr,s của tôi pkr,s tôi (ông, s i ) có thể, với áp đảo xác suất, hãy xác minh ngay lập tức nó cho triệu vòng đầu tiên sau r′. Nói cách khác, trước tiên tôi tạo PMK và SMK. Sau đó, anh ta công khai rằng PMK là chủ nhân của tôi khóa chung cho bất kỳ vòng r \(\in\)[r′, r′ + 106] nào và sử dụng SMK để tạo và lưu trữ bí mật một cách riêng tư khóa skr,s tôi với mỗi bộ ba (i, r, s) \(\in\)S. Việc này hoàn thành, anh ta tiêu diệt SMK. Nếu anh ta xác định rằng anh ta không một phần của SV r,s, sau đó tôi có thể rời khỏi skr,s tôi một mình (vì giao thức không yêu cầu anh ta xác thực bất kỳ thông báo nào trong Bước s của vòng r). Mặt khác, lần đầu tiên tôi sử dụng skr,s tôi ký điện tử vào tin nhắn của anh ấy, thưa ông tôi và sau đó phá hủy skr,s tôi . Lưu ý rằng tôi có thể công khai khóa chính công khai đầu tiên của anh ấy khi anh ấy đăng nhập vào hệ thống lần đầu tiên. Đó là, cùng một khoản thanh toán \(\wp\) đưa tôi vào hệ thống (ở vòng r′ hoặc ở vòng gần r′), cũng có thể chỉ định, theo yêu cầu của tôi, rằng khóa chính công khai của tôi cho bất kỳ vòng nào r \(\in\)[r′, r′ + 106] là PMK —ví dụ: bởi trong đó có một cặp dạng (PMK, [r′, r′ + 106]). Cũng lưu ý rằng, vì m + 3 là số bước tối đa trong một vòng, giả sử rằng một vòng mất một phút, kho khóa phù du được sản xuất như vậy sẽ tồn tại trong gần hai năm. Đồng thời Theo thời gian, những chìa khóa bí mật phù du này sẽ không mất quá nhiều thời gian để tôi tạo ra. Sử dụng đường cong elip dựa trên hệ thống có khóa 32B, mỗi khóa bí mật được tính toán trong vài micro giây. Do đó, nếu m + 3 = 180, sau đó tất cả 180 triệu khóa bí mật có thể được tính toán trong vòng chưa đầy một giờ. Khi vòng hiện tại tiến gần đến r′ + 106, để xử lý một triệu vòng tiếp theo, tôi tạo ra một cặp (PMK′, SMK′) mới và thông báo kho khóa tạm thời tiếp theo của anh ấy là gì bằng cách —ví dụ— có SIGi(PMK′, [r′ + 106 + 1, r′ + 2 \(\cdot\) 106 + 1]) nhập một khối mới, dưới dạng “giao dịch” riêng biệt hoặc như một số thông tin bổ sung là một phần của khoản thanh toán. Bằng cách làm như vậy, tôi thông báo với mọi người rằng anh ấy/cô ấy nên sử dụng PMK′ để xác minh chữ ký phù du của tôi trong lần tiếp theo triệu vòng. Và vân vân. (Lưu ý rằng, theo cách tiếp cận cơ bản này, các cách khác để triển khai các khóa tạm thời mà không cần chắc chắn có thể sử dụng chữ ký dựa trên danh tính. Ví dụ: qua Merkle trees.16) 16Trong phương pháp này, tôi tạo một cặp khóa bí mật công khai (pkr,s tôi, skr,s tôi ) cho mỗi cặp bước tròn (r, s) trong —say—Chắc chắn có thể thực hiện được các cách khác để triển khai khóa tạm thời —ví dụ: thông qua Merkle trees. 5.3 Khớp các bước của Algorand ′ 1 cùng với BA⋆ Như chúng tôi đã nói, một vòng trong Algorand ′ 1 có nhiều nhất m+3 bước. Bước 1. Ở bước này, mỗi nhà lãnh đạo tiềm năng i sẽ tính toán và truyền bá khối ứng cử viên Br của mình tôi, cùng với thông tin xác thực của chính mình, \(\sigma\)r,1 tôi . Hãy nhớ rằng thông tin xác thực này xác định rõ ràng i. Điều này là như vậy, bởi vì \(\sigma\)r,1 tôi \(\triangleq\)SIGi(r, 1, Qr−1). Người xác minh tiềm năng tôi cũng tuyên truyền, như một phần trong thông điệp của mình, chữ ký số thích hợp của anh ấy là H(Br tôi ). Không giải quyết vấn đề thanh toán hoặc thông tin xác thực, chữ ký này của tôi có liên quan đến công chúng phù du của anh ấy chìa khóa pkr,1 i : tức là anh ta tuyên truyền sigpkr,1 tôi (H(Br tôi )). Dựa trên những quy ước của chúng tôi, thay vì truyền bá Br tôi và sigpkr,1 tôi (H(Br i )), anh ấy có thể có tuyên truyền SIGpkr,1 tôi (H(Br tôi )). Tuy nhiên, trong phân tích của chúng tôi, chúng tôi cần có quyền truy cập rõ ràng vào sigpkr,1 tôi (H(Br tôi )). Bước 2. Trong bước này, mỗi trình xác minh tôi đặt \(\ell\)r tôi sẽ trở thành người lãnh đạo tiềm năng có chứng chỉ hashed là nhỏ nhất và Br tôi là khối được đề xuất bởi \(\ell\)r tôi . Bởi vì, để đạt được hiệu quả, chúng ta muốn đồng ý về H(Br), thay vì trực tiếp về Br, tôi truyền bá thông điệp mà anh ấy sẽ có được truyền ở bước đầu tiên của BA⋆ với giá trị ban đầu v′ tôi = H(Br tôi ). Tức là anh ta tuyên truyền v′ tôi, tất nhiên là sau khi tạm thời ký nó. (Cụ thể là, sau khi ký tên liên quan đến phù du bên phải khóa công khai, trong trường hợp này là pkr,2 i.) Tất nhiên cũng vậy, tôi cũng truyền bằng cấp của chính mình. Vì bước đầu tiên của BA⋆bao gồm bước đầu tiên của giao thức đồng thuận được phân loại GC, nên Bước 2 của Algorand ′ tương ứng với bước đầu tiên của GC. Bước 3. Trong bước này, mỗi trình xác minh i \(\in\)SV r,2 thực hiện bước thứ hai của BA⋆. Tức là anh ta gửi cùng một thông điệp mà anh ấy đã gửi ở bước thứ hai của GC. Một lần nữa, tin nhắn của tôi chỉ là phù du được ký và kèm theo thông tin xác thực của tôi. (Từ bây giờ trở đi, chúng ta sẽ bỏ qua việc nói rằng người xác minh ký tạm thời tin nhắn của anh ấy và cũng tuyên truyền thông tin xác thực của anh ấy.) Bước 4. Trong bước này, mọi trình xác minh i \(\in\)SV r,4 tính toán đầu ra của GC, (vi, gi) và tạm thời ký và gửi cùng một tin nhắn mà lẽ ra anh ta đã gửi ở bước thứ ba của BA⋆, tức là trong Bước đầu tiên của BBA⋆, với bit ban đầu là 0 nếu gi = 2 và 1 nếu ngược lại. Bước s = 5, . . . , m + 2. Bước như vậy, nếu đạt được, sẽ tương ứng với bước s −1 của BA⋆, và do đó với bước s −3 của BBA⋆. Vì mô hình truyền bá của chúng ta đủ không đồng bộ nên chúng ta phải tính đến khả năng rằng, ở giữa bước s như vậy, người xác minh i \(\in\)SV r,s đạt được nhờ thông tin chứng minh anh ta khối Br đó đã được chọn. Trong trường hợp này, tôi dừng việc thực hiện vòng r của chính anh ấy Algorand ′ và bắt đầu thực hiện các lệnh vòng-(r + 1) của mình. {r′, . . . , r′ + 106} \(\times\) {1, . . . , m + 3}. Sau đó, anh ta sắp xếp các khóa công khai này theo cách chuẩn tắc, lưu trữ khóa công khai thứ j khóa vào lá thứ j của Merkle tree và tính giá trị gốc Ri mà anh ta công khai. Khi anh ấy muốn ký một thông báo liên quan đến khóa pkr,s tôi , tôi không chỉ cung cấp chữ ký thực mà còn cung cấp đường dẫn xác thực cho pkr,s tôi tương đối với Ri. Lưu ý rằng đường dẫn xác thực này cũng chứng minh rằng pkr,s tôi được lưu trữ trong lá thứ j. Phần còn lại của chi tiết có thể được điền dễ dàng.Theo đó, các lệnh của người xác minh i \(\in\)SV r,s, ngoài các lệnh tương ứng đến Bước s −3 của BBA⋆, bao gồm việc kiểm tra xem việc thực thi BBA⋆ có bị dừng ở lần trước hay không Bước s′. Vì BBA⋆ chỉ có thể tạm dừng ở Bước Cố định bằng xu thành 0 hoặc ở bước Cố định bằng xu thành 1, nên hướng dẫn phân biệt xem A (Điều kiện kết thúc 0): s′ −2 ≡0 mod 3, hoặc B (Điều kiện kết thúc 1): s′ −2 ≡1 mod 3. Trong thực tế, trong trường hợp A, khối Br không trống và do đó cần có các lệnh bổ sung để đảm bảo rằng tôi xây dựng lại Br đúng cách, cùng với chứng chỉ CERT r phù hợp của nó. Trong trường hợp B, khối Br trống và do đó tôi được hướng dẫn đặt Br = Br \(\varepsilon\) = (r, \(\emptyset\), H(Qr−1, r), H(Br−1)), và tính CERT r. Nếu trong quá trình thực hiện bước s, tôi không thấy bất kỳ bằng chứng nào cho thấy khối Br đã có được tạo thì anh ta sẽ gửi cùng một tin nhắn mà lẽ ra anh ta đã gửi ở bước s −3 của BBA⋆. Bước m + 3. Nếu trong bước m + 3, i \(\in\)SV r,m+3 thấy rằng khối Br đã được tạo trong bước trước s' thì anh ta sẽ tiến hành như đã giải thích ở trên. Ngược lại, thay vì gửi cùng một tin nhắn mà anh ấy đã gửi ở bước m của BBA⋆, tôi là được hướng dẫn, dựa trên thông tin anh ta có, để tính Br và giá trị tương ứng của nó chứng nhận CERT r. Trên thực tế, hãy nhớ lại rằng chúng ta tăng tổng số bước của một vòng lên trên m + 3. 5,4 Giao thức thực tế Hãy nhớ lại rằng, trong mỗi bước s của vòng r, người xác minh i \(\in\)SV r,s sử dụng cặp khóa bí mật công khai dài hạn của mình để tạo ra thông tin xác thực của anh ấy, \(\sigma\)r,s tôi \(\triangleq\)SIGi(r, s, Qr−1), cũng như SIGi Qr−1 trong trường hợp s = 1. Trình xác minh i sử dụng khóa bí mật phù du skr,s của mình tôi ký vào tin nhắn (r, s) của anh ấy mr,s tôi . Để đơn giản, khi r và s là rõ ràng, chúng ta viết esigi(x) thay vì sigpkr,s i (x) để biểu thị chữ ký phù hợp của i của một giá trị x ở bước s của vòng r và viết ESIGi(x) thay vì SIGpkr,s i (x) để biểu thị (i, x, esigi(x)). Bước 1: Chặn đề xuất Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước 1 của vòng r ngay khi anh ta biết Br−1. • Người dùng i tính Qr−1 từ thành phần thứ ba của Br−1 và kiểm tra xem i \(\in\)SV r,1 hay không. • Nếu i /\(\in\)SV r,1 thì i dừng việc thực hiện Bước 1 của chính anh ta ngay lập tức. • Nếu i \(\in\)SV r,1, tức là nếu tôi là người lãnh đạo tiềm năng thì anh ta sẽ thu các khoản thanh toán theo vòng r có đã được truyền tới anh ta cho đến nay và tính toán mức lương tối đa PAY r tôi từ họ. Tiếp theo, anh ấy tính toán “khối ứng cử viên” của mình Br i = (r, TRẢ r i , SIGi(Qr−1), H(Br−1)). Cuối cùng anh tính toán tin nhắn thưa ông, 1 tôi = (Anh i , esigi(H(Br i )), \(\sigma\)r,1 i ), phá hủy khóa bí mật phù du skr của anh ấy,1 tôi, và sau đó tuyên truyền ông, 1 tôi .Nhận xét. Trong thực tế, để rút ngắn thời gian thực hiện chung của Bước 1, điều quan trọng là (r, 1)- thông điệp được truyền bá có chọn lọc. Tức là, với mỗi người dùng i trong hệ thống, đối với (r, 1)- tin nhắn mà anh ấy từng nhận được và xác minh thành công,17 người chơi tôi sẽ truyền bá nó như thường lệ. Đối với tất cả các các tin nhắn (r, 1) khác mà người chơi tôi nhận được và xác minh thành công, anh ta chỉ truyền nó nếu hash giá trị của thông tin xác thực chứa trong đó là giá trị nhỏ nhất trong số các giá trị hash của thông tin xác thực chứa trong đó trong tất cả các tin nhắn (r, 1) mà anh ấy đã nhận được và xác minh thành công cho đến nay. Hơn nữa, theo đề xuất của Georgios Vlachos, điều hữu ích là mỗi nhà lãnh đạo tiềm năng tôi cũng tuyên truyền chứng chỉ \(\sigma\)r,1 của mình tôi riêng biệt: những tin nhắn nhỏ đó di chuyển nhanh hơn các khối, đảm bảo việc truyền bá kịp thời của mr,1 j's trong đó thông tin xác thực được chứa có giá trị hash nhỏ, trong khi tạo những giá trị có giá trị hash lớn biến mất nhanh chóng. Bước 2: Bước đầu tiên của Giao thức đồng thuận được phân loại GC Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước 2 của vòng r ngay khi anh ta biết Br−1. • Người dùng i tính Qr−1 từ thành phần thứ ba của Br−1 và kiểm tra xem i \(\in\)SV r,2 hay không. • Nếu i /\(\in\)SV r,2 thì tôi dừng việc thực hiện Bước 2 của chính anh ta ngay lập tức. • Nếu i \(\in\)SV r,2 thì sau khi đợi một khoảng thời gian t2 \(\triangleq\) \(\lambda\) + Λ, i sẽ hành động như sau. 1. Anh ta tìm người dùng \(\ell\)sao cho H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j ) cho tất cả thông tin xác thực \(\sigma\)r,1 j đó là một phần của các tin nhắn (r, 1) được xác minh thành công mà anh ấy đã nhận được cho đến nay.a 2. Nếu anh ấy đã nhận được từ \(\ell\)một tin nhắn hợp lệ, ông1 \(\ell\) = (Anh \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),b thì tôi đặt v′ tôi \(\triangleq\)H(Br \(\ell\)); ngược lại tôi đặt v′ tôi \(\triangleq\) \(\bot\). 3. tôi tính tin nhắn ông,2 tôi \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 i ),c phá hủy khóa bí mật phù du của mình skr,2 i , và sau đó truyền bá mr,2 tôi . aVề cơ bản, người dùng i quyết định riêng rằng người dẫn đầu vòng r là người dùng \(\ell\). bMột lần nữa, chữ ký của người chơi \(\ell\) và hash đều được xác minh thành công và TRẢ TIỀN r \(\ell\)ở Br \(\ell\)là một khoản thanh toán hợp lệ cho làm tròn r —mặc dù tôi không kiểm tra xem TRẢ TIỀN r \(\ell\)là tối đa cho \(\ell\)hoặc không. cTin nhắn của anh,2 tôi tín hiệu mà người chơi tôi coi là v′ tôi là hash của khối tiếp theo hoặc xem xét khối tiếp theo khối để trống. 17Nghĩa là, tất cả chữ ký đều đúng và cả khối và hash của nó đều hợp lệ —mặc dù tôi không kiểm tra liệu tập hợp thanh toán đi kèm có phải là tối đa cho người đề xuất hay không.
Bước 3: Bước thứ hai của GC Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước 3 của vòng r ngay khi anh ta biết Br−1. • Người dùng i tính Qr−1 từ thành phần thứ ba của Br−1 và kiểm tra xem i \(\in\)SV r,3 hay không. • Nếu i /\(\in\)SV r,3 thì tôi dừng việc thực hiện Bước 3 của chính anh ta ngay lập tức. • Nếu i \(\in\)SV r,3 thì sau khi đợi một khoảng thời gian t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ, tôi thực hiện như sau. 1. Nếu tồn tại một giá trị v′ ̸= \(\bot\) sao cho trong số tất cả các tin nhắn hợp lệ mr,2 j anh ấy đã nhận được, hơn 2/3 trong số chúng có dạng (ESIGj(v′), \(\sigma\)r,2 j ), không có bất kỳ mâu thuẫn nào, a sau đó anh ấy tính tin nhắn ạ,3 tôi \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 tôi ). Ngược lại, anh ta tính mr,3 tôi \(\triangleq\) (ESIGi(\(\bot\)), \(\sigma\)r,3 tôi ). 2. tôi phá hủy skr khóa bí mật phù du của anh ấy,3 i , rồi tuyên truyền mr,3 tôi . a Tức là anh ta chưa nhận được hai tin nhắn hợp lệ lần lượt chứa ESIGj(v′) và ESIGj(v′′) khác nhau, từ một người chơi j. Từ đây trở đi, ngoại trừ các Điều kiện kết thúc được xác định sau, bất cứ khi nào một người chơi trung thực muốn các tin nhắn có hình thức nhất định, các tin nhắn mâu thuẫn với nhau không bao giờ được tính hoặc coi là hợp lệ.Bước 4: Đầu ra của GC và Bước đầu tiên của BBA⋆ Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước 4 của vòng r ngay khi anh ta biết Br−1. • Người dùng i tính Qr−1 từ thành phần thứ ba của Br−1 và kiểm tra xem i \(\in\)SV r,4 hay không. • Nếu i /\(\in\)SV r,4 thì i của anh ấy sẽ dừng việc thực hiện Bước 4 của chính mình ngay lập tức. • Nếu i \(\in\)SV r,4 thì sau khi đợi một khoảng thời gian t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ, i thực hiện như sau. 1. Anh ta tính vi và gi, đầu ra của GC, như sau. (a) Nếu tồn tại một giá trị v′ ̸= \(\bot\) sao cho trong số tất cả các thông báo hợp lệ mr,3 j anh ấy có nhận được thì hơn 2/3 trong số chúng có dạng (ESIGj(v′), \(\sigma\)r,3 j ), sau đó anh ta đặt vi \(\triangleq\)v' và gi \(\triangleq\)2. (b) Ngược lại, nếu tồn tại một giá trị v′ ̸= \(\bot\) sao cho trong số tất cả các thông báo hợp lệ ông, 3 j người đó đã nhận được thì hơn 1/3 trong số đó có dạng (ESIGj(v′), \(\sigma\)r,3 j ), thì anh ấy đặt vi \(\triangleq\)v′ và gi \(\triangleq\)1.a (c) Ngược lại, anh ta đặt vi \(\triangleq\)H(Br ǫ ) và gi \(\triangleq\)0. 2. Anh ta tính bi, đầu vào của BBA⋆, như sau: bi \(\triangleq\)0 nếu gi = 2, và bi \(\triangleq\)1 nếu ngược lại. 3. Anh ấy tính tin nhắn ông,4 tôi \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), phá hủy sự phù du của anh ấy khóa bí mật skr,4 i , và sau đó truyền bá mr,4 tôi . aCó thể chứng minh rằng v’ trong trường hợp (b), nếu tồn tại thì phải là duy nhất.
Bước s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: Bước cố định bằng tiền xu của BBA⋆ Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu các Bước của riêng mình trong vòng r ngay khi anh ta biết Br−1. • Người dùng i tính Qr−1 từ thành phần thứ ba của Br−1 và kiểm tra xem i \(\in\)SV r,s. • Nếu i /\(\in\)SV r,s thì tôi dừng việc thực thi Bước s của chính anh ta ngay lập tức. • Nếu i \(\in\)SV r,s thì anh ta hành động như sau. – Anh ta đợi cho đến khi một khoảng thời gian ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3)\(\lambda\) + Λ trôi qua. – Điều kiện kết thúc 0: Nếu trong quá trình chờ đợi đó và tại bất kỳ thời điểm nào tồn tại một chuỗi v ̸= \(\bot\) và một bước s′ sao cho (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3 —nghĩa là Bước s′ là bước Coin-Fixed-To-0, (b) tôi đã nhận được ít nhất tH = 2n 3 + 1 tin nhắn hợp lệ mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ), a và (c) tôi đã nhận được một tin nhắn hợp lệ thưa ông,1 j = (Anh j , esigj(H(Br j )), \(\sigma\)r,1 j ) với v = H(Br j ), sau đó, tôi dừng việc thực hiện Bước s (và thực tế là vòng r) của chính anh ấy ngay lập tức mà không cần tuyên truyền bất cứ điều gì; đặt Br = Br j ; và đặt CERT r của riêng mình thành tập hợp các tin nhắn ông,s′−1 j của bước phụ (b).b – Điều kiện kết thúc 1: Nếu trong quá trình chờ đợi đó và tại bất kỳ thời điểm nào, tồn tại một bước s′ sao cho (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3 —nghĩa là Bước s′ là bước Cố định thành 1 xu và (b’) tôi đã nhận được ít nhất tH tin nhắn hợp lệ mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),c sau đó, tôi dừng việc thực hiện Bước s (và thực tế là vòng r) của chính anh ấy ngay lập tức mà không cần tuyên truyền bất cứ điều gì; đặt Br = Br Ă ; và đặt CERT r của riêng mình thành tập hợp các tin nhắn ông,s′−1 j của bước phụ (b'). – Ngược lại, khi kết thúc quá trình chờ đợi, người dùng i thực hiện như sau. Anh ta đặt vi là đa số phiếu bầu của vj trong các thành phần thứ hai của tất cả các thành phần hợp lệ ông,s−1 j ' anh ấy đã nhận được. Anh ta tính bi như sau. Nếu nhiều hơn 2/3 tổng số mr,s−1 hợp lệ j ’ anh ấy đã nhận được có dạng (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), thì anh ta đặt bi \(\triangleq\)0. Ngược lại, nếu nhiều hơn 2/3 tổng số mr,s−1 hợp lệ j ’ anh ấy đã nhận được có dạng (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), thì anh ta đặt bi \(\triangleq\)1. Ngược lại, anh ta đặt bi \(\triangleq\) 0. Anh ấy tính toán tin nhắn thưa ông tôi \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), phá hủy sự phù du của anh ấy khóa bí mật skr,s i , và sau đó tuyên truyền mr,s tôi . aTin nhắn như vậy từ người chơi j được tính ngay cả khi người chơi i cũng đã nhận được tin nhắn từ j ký tên 1. Những điều tương tự đối với Điều kiện kết thúc 1. Như đã trình bày trong phân tích, việc này được thực hiện để đảm bảo rằng tất cả người dùng trung thực đều biết Br trong thời gian \(\lambda\) cách nhau. bNgười dùng bây giờ tôi đã biết Br và kết thúc vòng r của chính anh ấy. Anh ấy vẫn giúp truyền bá thông điệp với tư cách là người dùng chung, nhưng không bắt đầu bất kỳ sự lan truyền nào dưới dạng trình xác minh (r, s). Đặc biệt, ông đã giúp truyền bá mọi thông điệp trong CERT r, đủ cho giao thức của chúng tôi. Lưu ý rằng anh ta cũng nên đặt bi \(\triangleq\)0 cho giao thức BA nhị phân, nhưng bi dù sao cũng không cần thiết trong trường hợp này. Những điều tương tự cho tất cả các hướng dẫn trong tương lai. cTrong trường hợp này, vj là gì không quan trọng.Bước s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: Bước cố định thành 1 xu của BBA⋆ Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu các Bước của riêng mình trong vòng r ngay khi anh ta biết Br−1. • Người dùng i tính Qr−1 từ thành phần thứ ba của Br−1 và kiểm tra xem i \(\in\)SV r,s hay không. • Nếu i /\(\in\)SV r,s thì tôi dừng việc thực thi Bước s của chính anh ta ngay lập tức. • Nếu i \(\in\)SV r,s thì anh ta làm như sau. – Anh ta đợi cho đến khi một khoảng thời gian ts \(\triangleq\)(2s −3)\(\lambda\) + Λ trôi qua. – Điều kiện kết thúc 0: Hướng dẫn tương tự như các bước Coin-Fixed-To-0. – Điều kiện kết thúc 1: Hướng dẫn tương tự như các bước Coin-Fixed-To-0. – Ngược lại, khi kết thúc quá trình chờ đợi, người dùng i thực hiện như sau. Anh ta đặt vi là đa số phiếu bầu của vj trong các thành phần thứ hai của tất cả các thành phần hợp lệ ông,s−1 j ' anh ấy đã nhận được. Anh ta tính bi như sau. Nếu nhiều hơn 2/3 tổng số mr,s−1 hợp lệ j ’ anh ấy đã nhận được có dạng (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), thì anh ta đặt bi \(\triangleq\)0. Ngược lại, nếu nhiều hơn 2/3 tổng số mr,s−1 hợp lệ j ’ anh ấy đã nhận được có dạng (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), thì anh ta đặt bi \(\triangleq\)1. Ngược lại, anh ta đặt bi \(\triangleq\)1. Anh ấy tính toán tin nhắn thưa ông tôi \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), phá hủy sự phù du của anh ấy khóa bí mật skr,s i , và sau đó tuyên truyền mr,s tôi .
Bước s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: Bước lật xu thật của BBA⋆ Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu các Bước của riêng mình trong vòng r ngay khi anh ta biết Br−1. • Người dùng i tính Qr−1 từ thành phần thứ ba của Br−1 và kiểm tra xem i \(\in\)SV r,s hay không. • Nếu i /\(\in\)SV r,s thì tôi dừng việc thực thi Bước s của chính anh ta ngay lập tức. • Nếu i \(\in\)SV r,s thì anh ta làm như sau. – Anh ta đợi cho đến khi một khoảng thời gian ts \(\triangleq\)(2s −3)\(\lambda\) + Λ trôi qua. – Điều kiện kết thúc 0: Hướng dẫn tương tự như các bước Coin-Fixed-To-0. – Điều kiện kết thúc 1: Hướng dẫn tương tự như các bước Coin-Fixed-To-0. – Ngược lại, khi kết thúc quá trình chờ đợi, người dùng i thực hiện như sau. Anh ta đặt vi là đa số phiếu bầu của vj trong các thành phần thứ hai của tất cả các thành phần hợp lệ ông,s−1 j ' anh ấy đã nhận được. Anh ta tính bi như sau. Nếu nhiều hơn 2/3 tổng số mr,s−1 hợp lệ j ’ anh ấy đã nhận được có dạng (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), thì anh ta đặt bi \(\triangleq\)0. Ngược lại, nếu nhiều hơn 2/3 tổng số mr,s−1 hợp lệ j ’ anh ấy đã nhận được có dạng (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), thì anh ta đặt bi \(\triangleq\)1. Ngược lại, đặt SV r,s−1 tôi là tập hợp các trình xác minh (r, s −1) mà từ đó anh ta đã nhận được thông tin hợp lệ nhắn tin cho ông,s−1 j . Anh ta đặt bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 tôi H(\(\sigma\)r,s−1 j )). Anh ấy tính toán tin nhắn thưa ông tôi \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), phá hủy sự phù du của anh ấy khóa bí mật skr,s i , và sau đó tuyên truyền mr,s tôi .
Bước m + 3: Bước cuối cùng của BBA⋆a Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước m + 3 của vòng r ngay khi anh ta biết Br−1. • Người dùng i tính Qr−1 từ thành phần thứ ba của Br−1 và kiểm tra xem i \(\in\)SV r,m+3 hay không. • Nếu i /\(\in\)SV r,m+3 thì tôi dừng việc thực hiện Bước m + 3 của anh ta ngay lập tức. • Nếu i \(\in\)SV r,m+3 thì anh ta làm như sau. – Anh ta đợi cho đến khi một khoảng thời gian tm+3 \(\triangleq\)tm+2 + 2\(\lambda\) = (2m + 3)\(\lambda\) + Λ trôi qua. – Điều kiện kết thúc 0: Hướng dẫn tương tự như các bước Coin-Fixed-To-0. – Điều kiện kết thúc 1: Hướng dẫn tương tự như các bước Coin-Fixed-To-0. – Ngược lại, khi kết thúc quá trình chờ đợi, người dùng i thực hiện như sau. Anh ta khởi hànhi \(\triangleq\)1 và Br \(\triangleq\)Br ừ. Anh tính tin nhắn mr,m+3 tôi = (ESIGi(outi), ESIGi(H(Br)), \(\sigma\)r,m+3 tôi ), phá hủy khóa bí mật phù du skr,m+3 tôi , rồi truyền bá mr,m+3 tôi chứng nhận Br.b aVới xác suất áp đảo BBA⋆ đã kết thúc trước bước này và chúng tôi chỉ định bước này cho đầy đủ. b Chứng chỉ từ Bước m + 3 không nhất thiết phải bao gồm ESIGi(outi). Chúng tôi đưa nó vào chỉ để thống nhất: chứng chỉ hiện có định dạng thống nhất cho dù chúng được tạo ở bước nào.Tái thiết khối Round-r bởi những người không xác minh Hướng dẫn cho mọi người dùng i trong hệ thống: Người dùng i bắt đầu vòng r của riêng mình ngay khi biết Br−1 và chờ thông tin khối như sau. – Nếu trong quá trình chờ đợi như vậy và tại bất kỳ thời điểm nào tồn tại một chuỗi v và một bước s′ như vậy đó (a) 5 ≡0 mod 3, (b) tôi đã nhận được ít nhất tH tin nhắn hợp lệ mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ) và (c) tôi đã nhận được một tin nhắn hợp lệ thưa ông,1 j = (Anh j , esigj(H(Br j )), \(\sigma\)r,1 j ) với v = H(Br j ), sau đó, tôi dừng việc thực hiện vòng r của chính anh ta ngay lập tức; đặt Br = Br j; và đặt CERT của riêng mình r là tập hợp các thông điệp mr,s′−1 j của bước phụ (b). – Nếu trong quá trình chờ đợi như vậy và tại bất kỳ thời điểm nào tồn tại một bước s′ sao cho (a’) 6 \(\leq\)s′ \(\leq\)m + 3 với s′ −2 ≡1 mod 3, và (b’) tôi đã nhận được ít nhất tH tin nhắn hợp lệ mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ), sau đó, tôi dừng việc thực hiện vòng r của chính anh ta ngay lập tức; đặt Br = Br Ă; và đặt CERT của riêng mình r là tập hợp các thông điệp mr,s′−1 j của bước phụ (b'). – Nếu trong thời gian chờ đợi đó và tại bất kỳ thời điểm nào, tôi đã nhận được ít nhất th tin nhắn hợp lệ ông,m+3 j = (ESIGj(1), ESIGj(H(Br ǫ )), \(\sigma\)r,m+3 j ), sau đó tôi dừng việc thực hiện vòng r của chính anh ấy ngay lập tức, đặt Br = Br ǫ , và đặt CERT r của riêng mình thành tập hợp các tin nhắn mr,m+3 j cho 1 và H(Br ừ ). 5,5 Phân tích Algorand ′ 1 Chúng tôi giới thiệu các ký hiệu sau cho mỗi vòng r \(\geq\)0, được sử dụng trong phân tích. • Gọi T r là thời điểm người dùng trung thực đầu tiên biết Br−1. • Gọi Ir+1 là khoảng [T r+1, T r+1 + \(\lambda\)]. Lưu ý rằng T 0 = 0 khi khởi tạo giao thức. Với mỗi s \(\geq\)1 và i \(\in\)SV r,s, nhớ lại rằng \(\alpha\)r,s tôi và \(\beta\)r,s tôi lần lượt là thời gian bắt đầu và thời gian kết thúc bước s của người chơi thứ i. Hơn nữa, nhớ lại rằng ts = (2s −3)\(\lambda\) + Λ với mỗi 2 \(\triangleq\)m + 3. Ngoài ra, đặt I0 \(\triangleq\){0} và t1 \(\triangleq\)0. Cuối cùng, hãy nhớ lại rằng Lr \(\leq\)m/3 là một biến ngẫu nhiên biểu thị số phép thử Bernoulli cần xem số 1, khi mỗi phép thử là 1 với xác suất ph 2 và có nhiều nhất m/3 phép thử. Nếu tất cả thử nghiệm thất bại thì Lr \(\triangleq\)m/3. Trong phân tích, chúng tôi bỏ qua thời gian tính toán vì trên thực tế nó không đáng kể so với thời gian cần thiết. để truyền bá thông điệp. Trong mọi trường hợp, bằng cách sử dụng \(\lambda\) và Λ lớn hơn một chút, thời gian tính toán có thể được đưa vào phân tích trực tiếp. Hầu hết các câu dưới đây đều có nội dung “với áp đảo xác suất,” và chúng ta có thể không nhấn mạnh nhiều lần thực tế này trong phân tích.5.6 Định lý chính Định lý 5.1. Các thuộc tính sau đây có xác suất áp đảo cho mỗi vòng r \(\geq\)0: 1. Tất cả người dùng trung thực đều đồng ý về cùng một khối Br. 2. Khi người dẫn đầu \(\ell\)r trung thực, khối Br được tạo bởi \(\ell\)r, Br chứa tập hợp thanh toán tối đa \(\ell\)r nhận được vào thời điểm \(\alpha\)r,1 \(\ell\)r , T r+1 \(\leq\)T r + 8\(\lambda\) + Λ và tất cả người dùng trung thực đều biết Br vào thời điểm đó khoảng Ir+1. 3. Khi người lãnh đạo \(\ell\)r độc hại, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ và tất cả người dùng trung thực đều biết Br trong khoảng thời gian Ir+1. 4. ph = h2(1 + h −h2) đối với Lr, và người dẫn đầu \(\ell\)r trung thực với xác suất ít nhất là ph. Trước khi chứng minh định lý chính, chúng ta hãy đưa ra hai nhận xét. Nhận xét. • Tạo khối và độ trễ thực sự. Thời gian để tạo khối Br được xác định là T r+1 −T r. Nghĩa là, nó được định nghĩa là sự khác biệt giữa lần đầu tiên một số người dùng trung thực học Br và lần đầu tiên một số người dùng trung thực học Br−1. Khi người dẫn đầu vòng r trung thực, Thuộc tính 2 của chúng ta định lý chính đảm bảo rằng thời gian chính xác để tạo ra Br là 8\(\lambda\) + Λ thời gian, bất kể thế nào giá trị chính xác của h > 2/3 có thể. Khi người lãnh đạo có ác ý, Thuộc tính 3 ngụ ý rằng thời gian dự kiến để tạo ra Br bị giới hạn bởi ( 12 ph + 10)\(\lambda\) + Λ, một lần nữa bất kể giá trị chính xác là bao nhiêu giá trị h.18 Tuy nhiên, thời gian dự kiến để tạo ra Br phụ thuộc vào giá trị chính xác của h. Thật vậy, theo Tính chất 4, ph = h2(1 + h −h2) và người lãnh đạo ít nhất là trung thực với xác suất ph, do đó E[T r+1 −T r] \(\leq\)h2(1 + h −h2) \(\cdot\) (8\(\lambda\) + Λ) + (1 −h2(1 + h −h2))(( 12 h2(1 + h −h2) + 10)\(\lambda\) + Λ). Ví dụ: nếu h = 80% thì E[T r+1 −T r] \(\leq\)12,7\(\lambda\) + Λ. • \(\lambda\) so với Λ. Lưu ý rằng kích thước của tin nhắn được người xác minh gửi trong bước Algorand ′ bị chi phối bằng độ dài của các phím chữ ký số, có thể được giữ cố định, ngay cả khi số lượng người dùng là rất lớn. Cũng lưu ý rằng, trong bất kỳ bước nào s > 1, số lượng người xác minh dự kiến như nhau có thể được sử dụng cho dù số lượng người dùng là 100K, 100M hay 100M. Điều này là như vậy bởi vì n chỉ phụ thuộc vào h và F. Do đó, tóm lại, để tránh nhu cầu tăng đột ngột độ dài khóa bí mật, giá trị của \(\lambda\) sẽ giữ nguyên cho dù số lượng người dùng có thể lớn đến mức nào tương lai có thể thấy trước. Ngược lại, đối với bất kỳ tỷ lệ giao dịch nào, số lượng giao dịch tăng theo số lượng người dùng. Do đó, để xử lý tất cả các giao dịch mới một cách kịp thời, kích thước của một khối phải cũng tăng theo số lượng người dùng, khiến Λ cũng tăng theo. Vì vậy, về lâu dài, chúng ta nên có \(\lambda\) << Λ. Theo đó, thật phù hợp khi có hệ số lớn hơn cho \(\lambda\), và thực tế là hệ số của 1 cho Λ. Chứng minh định lý 5.1. Chúng ta chứng minh Tính chất 1–3 bằng quy nạp: giả sử chúng đúng với vòng r −1 (không mất tính tổng quát, chúng tự động đúng với “làm tròn -1” khi r = 0), ta chứng minh chúng cho vòng r. 18Thật vậy, E[T r+1 −T r] \(\leq\)(6E[Lr] + 10)\(\lambda\) + Λ = (6 \(\cdot\) 2 ph + 10)\(\lambda\) + Λ = ( 12 ph + 10)\(\lambda\) + Λ.Vì Br−1 được xác định duy nhất theo giả thuyết quy nạp nên tập SV r,s được xác định duy nhất cho mỗi bước s của vòng r. Bằng cách chọn n1, SV r,1 ̸= \(\emptyset\)với xác suất áp đảo. Bây giờ chúng tôi phát biểu hai bổ đề sau đây, được chứng minh ở Mục 5.7 và 5.8. Trong suốt quá trình cảm ứng và trong Chứng minh hai bổ đề thì việc phân tích vòng 0 gần giống như bước quy nạp, và chúng tôi sẽ nêu bật những điểm khác biệt khi chúng xảy ra. Bổ đề 5.2. [Bổ đề đầy đủ] Giả sử Thuộc tính 1–3 đúng cho vòng r−1, khi người dẫn đầu \(\ell\)r là trung thực, với xác suất áp đảo, • Tất cả người dùng trung thực đều đồng ý về cùng một khối Br, được tạo bởi \(\ell\)r và chứa giá trị tối đa khoản thanh toán mà \(\ell\)r nhận được vào thời điểm \(\alpha\)r,1 \(\ell\)r \(\in\)Ir; và • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ và tất cả người dùng trung thực đều biết Br trong khoảng thời gian Ir+1. Bổ đề 5.3. [Bổ đề đúng đắn] Giả sử Thuộc tính 1–3 đúng cho vòng r −1, khi người dẫn đầu \(\ell\)r là độc hại, với xác suất áp đảo, tất cả người dùng trung thực đều đồng ý trên cùng một khối Br, T r+1 \(\leq\) T r + (6Lr + 10)\(\lambda\) + Λ và tất cả người dùng trung thực đều biết Br trong khoảng thời gian Ir+1. Tính chất 1–3 đúng khi áp dụng Bổ đề 5.2 và 5.3 cho r = 0 và cho bước quy nạp. Cuối cùng, chúng ta phát biểu lại Tính chất 4 như bổ đề sau, được chứng minh ở Phần 5.9. Bổ đề 5.4. Cho các Thuộc tính 1–3 cho mỗi vòng trước r, ph = h2(1 + h −h2) cho Lr, và lãnh đạo \(\ell\)r trung thực với xác suất ít nhất là ph. Kết hợp ba bổ đề trên với nhau, Định lý 5.1 đúng. ■ Bổ đề dưới đây phát biểu một số tính chất quan trọng của vòng r với biểu thức quy nạp giả thuyết và sẽ được sử dụng trong chứng minh ba bổ đề trên. Bổ đề 5.5. Giả sử Thuộc tính 1–3 giữ cho vòng r −1. Với mỗi bước s \(\geq\)1 của vòng r và mỗi người xác minh trung thực i \(\in\)HSV r,s, chúng ta có (a) \(\alpha\)r,s tôi \(\in\)Ir; (b) nếu người chơi i đã đợi một khoảng thời gian ts thì \(\beta\)r,s tôi \(\in\)[T r + ts, T r + \(\lambda\) + ts] với r > 0 và \(\beta\)r,s tôi = ts cho r = 0; và (c) nếu người chơi i đã đợi một khoảng thời gian ts thì theo thời gian \(\beta\)r,s tôi , anh ấy đã nhận được tất cả tin nhắn được gửi bởi tất cả những người xác minh trung thực j \(\in\)HSV r,s′ cho tất cả các bước s′ < s. Hơn nữa, với mỗi bước s \(\geq\)3, ta có (d) không tồn tại hai người chơi khác nhau i, i′ \(\in\)SV r,s và hai giá trị khác nhau v, v′ giống nhau dài, sao cho cả hai người chơi đã đợi một khoảng thời gian t, hơn 2/3 tổng thời gian tin nhắn hợp lệ ông,s−1 j người chơi tôi nhận được đã ký hợp đồng với v và hơn 2/3 số người chơi hợp lệ tin nhắn ông,s−1 j cầu thủ tôi′ nhận được đã ký hợp đồng với v′. Bằng chứng. Tính chất (a) suy ra trực tiếp từ giả thuyết quy nạp, vì người chơi i biết Br−1 trong khoảng thời gian Ir và bắt đầu bước đi s của chính mình ngay lập tức. Tính chất (b) suy ra trực tiếp từ (a): vì người chơi tôi đã đợi một khoảng thời gian ts trước khi hành động, \(\beta\)r,s tôi = \(\alpha\)r,s tôi +ts. Lưu ý rằng \(\alpha\)r,s tôi = 0 cho r = 0. Bây giờ chúng ta chứng minh Tính chất (c). Nếu s = 2 thì theo Tính chất (b), với mọi kiểm định j \(\in\)HSV r,1 ta có \(\beta\)r,s tôi = \(\alpha\)r,s tôi + ts \(\geq\)T r + ts = T r + \(\lambda\) + Λ \(\geq\) \(\beta\)r,1 j + Λ.Vì mỗi người xác minh j \(\in\)HSV r,1 gửi tin nhắn của mình vào thời điểm \(\beta\)r,1 j và thông điệp đến được với tất cả những người trung thực người dùng trong tối đa Λ thời gian, theo thời gian \(\beta\)r,s tôi người chơi tôi đã nhận được tin nhắn được gửi bởi tất cả người xác minh trong HSV r,1 như mong muốn. Nếu s > 2 thì ts = ts−1 + 2\(\lambda\). Theo Thuộc tính (b), với tất cả các bước s′ < s và tất cả các xác minh j \(\in\)HSV r,s′, \(\beta\)r,s tôi = \(\alpha\)r,s tôi + ts \(\geq\)T r + ts = T r + ts−1 + 2\(\lambda\) \(\geq\)T r + ts′ + 2\(\lambda\) = T r + \(\lambda\) + ts′ + \(\lambda\) \(\geq\) \(\beta\)r,s′ j + \(\lambda\). Vì mỗi người xác minh j \(\in\)HSV r,s′ gửi tin nhắn của mình vào thời điểm \(\beta\)r,s′ j và thông điệp đến được với tất cả những người trung thực người dùng trong tối đa \(\lambda\) lần, theo thời gian \(\beta\)r,s tôi người chơi tôi đã nhận được tất cả tin nhắn được gửi bởi tất cả những người xác minh trung thực trong HSV r,s′ với mọi s′ < s. Như vậy tính chất (c) đúng. Cuối cùng, chúng ta chứng minh Tính chất (d). Lưu ý rằng các bộ xác minh j \(\in\)SV r,s−1 ký nhiều nhất hai thứ trong Bước s −1 sử dụng các khóa bí mật tạm thời của chúng: giá trị vj có cùng độ dài với đầu ra của Hàm hash và cũng có một chút bj \(\in\){0, 1} nếu s −1 \(\geq\)4. Đó là lý do tại sao trong phát biểu của bổ đề chúng tôi yêu cầu v và v′ có cùng độ dài: nhiều người xác minh có thể đã ký cả hai giá trị hash v và một bit b, do đó cả hai đều vượt qua ngưỡng 2/3. Vì mục đích mâu thuẫn, giả sử tồn tại các yếu tố xác minh mong muốn i, i′ và các giá trị v, v′. Lưu ý rằng một số trình xác minh độc hại trong MSV r,s−1 có thể đã ký cả v và v′, nhưng mỗi trình xác minh trung thực người xác minh trong HSV r,s−1 đã ký nhiều nhất một trong số chúng. Theo tính chất (c), cả i và i′ đều nhận được tất cả tin nhắn được gửi bởi tất cả người xác minh trung thực trong HSV r,s−1. Giả sử HSV r,s−1(v) là tập hợp các người xác minh (r, s −1) trung thực đã ký v, MSV r,s−1 tôi bộ của các trình xác minh độc hại (r, s −1) mà tôi đã nhận được tin nhắn hợp lệ và MSV r,s−1 tôi (v) cái tập con của MSV r,s−1 tôi từ người mà tôi đã nhận được tin nhắn hợp lệ ký v. Theo yêu cầu đối với tôi và v, chúng ta có tỷ lệ \(\triangleq\)|HSV r,s−1(v)| + |MSV r,s−1 tôi (v)| |HSV r,s−1| + |MSV r,s−1 tôi |
2 3. (1) Đầu tiên chúng tôi trình bày |MSV r,s−1 tôi (v)| \(\leq\)|HSV r,s−1(v)|. (2) Giả sử ngược lại, bằng mối quan hệ giữa các tham số, với xác suất áp đảo |HSV r,s−1| > 2|MSV r,s−1| \(\geq\)2|MSV r,s−1 tôi |, do đó tỷ lệ < |HSV r,s−1(v)| + |MSV r,s−1 tôi (v)| 3|MSV r,s−1 tôi | < 2|MSV r,s−1 tôi (v)| 3|MSV r,s−1 tôi | 2 3, mâu thuẫn với Bất bình đẳng 1. Tiếp theo, theo Bất đẳng thức 1 ta có 2|HSV r,s−1| + 2|MSV r,s−1 tôi | < 3|HSV r,s−1(v)| + 3|MSV r,s−1 tôi (v)| \(\leq\) 3|HSV r,s−1(v)| + 2|MSV r,s−1 tôi | + |MSV r,s−1 tôi (v)|. Kết hợp với Bất đẳng thức 2, 2|HSV r,s−1| < 3|HSV r,s−1(v)| + |MSV r,s−1 tôi (v)| \(\leq\)4|HSV r,s−1(v)|, ngụ ý |HSV r,s−1(v)| > 1 2|HSV r,s−1|.Tương tự, theo yêu cầu của i′ và v′, ta có |HSV r,s−1(v′)| > 1 2|HSV r,s−1|. Vì người xác minh trung thực j \(\in\)HSV r,s−1 phá hủy khóa bí mật phù du skr,s−1 của mình j trước khi nhân giống thông điệp của mình, Đối thủ không thể giả mạo chữ ký của j cho một giá trị mà j không ký, sau khi biết rằng j là một người xác minh. Như vậy, hai bất đẳng thức trên suy ra |HSV r,s−1| \(\geq\)|HSV r,s−1(v)| + |HSV r,s−1(v′)| > |HSV r,s−1|, mâu thuẫn. Theo đó, i, i′, v, v′ mong muốn không tồn tại và Tính chất (d) giữ nguyên. ■ 5,7 Bổ đề đầy đủ Bổ đề 5.2. [Bổ đề đầy đủ, được trình bày lại] Giả sử Thuộc tính 1–3 đúng cho vòng r−1, khi người lãnh đạo \(\ell\)r là người trung thực, có khả năng áp đảo, • Tất cả người dùng trung thực đều đồng ý về cùng một khối Br, được tạo bởi \(\ell\)r và chứa giá trị tối đa khoản thanh toán mà \(\ell\)r nhận được vào thời điểm \(\alpha\)r,1 \(\ell\)r \(\in\)Ir; và • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ và tất cả người dùng trung thực đều biết Br trong khoảng thời gian Ir+1. Bằng chứng. Theo giả thuyết quy nạp và Bổ đề 5.5, với mỗi bước s và kiểm định i \(\in\)HSV r,s, \(\alpha\)r,s tôi \(\in\)Ir. Dưới đây chúng tôi phân tích giao thức từng bước. Bước 1. Theo định nghĩa, mọi người xác minh trung thực i \(\in\)HSV r,1 đều truyền bá thông điệp mong muốn mr,1 tôi tại thời gian \(\beta\)r,1 tôi = \(\alpha\)r,1 tôi, ông ở đâu,1 tôi = (Anh i , esigi(H(Br i )), \(\sigma\)r,1 tôi ), anh i = (r, TRẢ r i , SIGi(Qr−1), H(Br−1)), và TRẢ TIỀN r tôi là khoản thanh toán tối đa trong số tất cả các khoản thanh toán mà tôi đã thấy vào thời điểm \(\alpha\)r,1 tôi . Bước 2. Tự ý xác định người xác minh trung thực i \(\in\)HSV r,2. Theo bổ đề 5.5, khi người chơi i hoàn thành chờ đợi tại thời điểm \(\beta\)r,2 tôi = \(\alpha\)r,2 tôi + t2, anh ta đã nhận được tất cả tin nhắn được gửi bởi người xác minh trong HSV r,1, bao gồm ông, 1 \(\ell\)r . Theo định nghĩa của \(\ell\)r, không tồn tại người chơi nào khác trong PKr−k có thông tin xác thực hash giá trị nhỏ hơn H(\(\sigma\)r,1 \(\ell\)r ). Tất nhiên, Kẻ thù có thể làm hỏng \(\ell\)r sau khi thấy H(\(\sigma\)r,1 \(\ell\)r ) rất nhỏ, nhưng vào thời điểm đó người chơi \(\ell\)r đã phá hủy chìa khóa phù du của mình và tin nhắn mr,1 \(\ell\)r đã được tuyên truyền. Do đó, người xác minh tôi đặt người lãnh đạo của chính mình làm người chơi \(\ell\)r. Theo đó, tại thời điểm \(\beta\)r,2 tôi, người xác minh tôi tuyên truyền ông,2 tôi = (ESIGi(v′ i), \(\sigma\)r,2 i ), trong đó v′ tôi = H(Br \(\ell\)r). Khi r = 0, sự khác biệt duy nhất đó có phải là \(\beta\)r,2 không tôi = t2 thay vì nằm trong một phạm vi. Những điều tương tự có thể được nói cho các bước trong tương lai và chúng tôi sẽ không nhấn mạnh chúng nữa. Bước 3. Tự ý xác định người xác minh trung thực i \(\in\)HSV r,3. Theo bổ đề 5.5, khi người chơi i hoàn thành chờ đợi tại thời điểm \(\beta\)r,3 tôi = \(\alpha\)r,3 tôi + t3, anh ta đã nhận được tất cả tin nhắn được gửi bởi người xác minh trong HSV r,2. Bằng mối quan hệ giữa các tham số, với xác suất áp đảo |HSV r,2| > 2|MSV r,2|. Hơn nữa, không có người xác minh trung thực nào sẽ ký các thông điệp mâu thuẫn và Đối thủ không thể giả mạo chữ ký của người xác minh trung thực sau khi người này đã hủy chữ ký tương ứng của mình khóa bí mật phù du. Do đó, hơn 2/3 trong số tất cả các tin nhắn (r, 2) hợp lệ mà tôi nhận được là từ người xác minh trung thực và có dạng ông,2 j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,2 j ), không có gì mâu thuẫn. Theo đó, tại thời điểm \(\beta\)r,3 tôi người chơi tôi tuyên truyền ông,3 tôi = (ESIGi(v′), \(\sigma\)r,3 i ), trong đó v′ = H(Br \(\ell\)r).Bước 4. Tự ý xác định người xác minh trung thực i \(\in\)HSV r,4. Theo bổ đề 5.5, người chơi i đã nhận được tất cả tin nhắn được gửi bởi người xác minh trong HSV r,3 khi anh ta đợi xong tại thời điểm \(\beta\)r,4 tôi = \(\alpha\)r,4 tôi +t4. Tương tự như Bước 3, hơn 2/3 trong số tất cả các tin nhắn (r, 3) hợp lệ mà tôi nhận được là từ những người xác minh trung thực và có dạng ông,3 j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,3 j ). Theo đó, người chơi i đặt vi = H(Br \(\ell\)r), gi = 2 và bi = 0. Tại thời điểm \(\beta\)r,4 tôi = \(\alpha\)r,4 tôi +t4 anh ấy tuyên truyền ông, 4 tôi = (ESIGi(0), ESIGi(H(Br \(\ell\)r)), \(\sigma\)r,4 tôi ). Bước 5. Tự ý xác định người xác minh trung thực i \(\in\)HSV r,5. Theo Bổ đề 5.5, người chơi tôi sẽ có đã nhận được tất cả tin nhắn do người xác minh gửi trong HSV r,4 nếu anh ta đã đợi đến thời điểm \(\alpha\)r,5 tôi + t5. Lưu ý rằng |HSV r,4| \(\geq\)tH.19 Cũng lưu ý rằng tất cả người xác minh trong HSV r,4 đều đã ký cho H(Br \(\ell\)r). Như |MSV r,4| < tH, không tồn tại v′ ̸= H(Br \(\ell\)r) có thể được ký bởi tH người xác minh trong SV r,4 (người này nhất thiết phải có ác ý), vì vậy người chơi i không dừng lại trước khi anh ta có đã nhận được tin nhắn hợp lệ thưa ông,4 j = (ESIGj(0), ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,4 j ). Gọi T là thời điểm sự kiện sau xảy ra. Một số tin nhắn đó có thể đến từ những người chơi độc hại, nhưng vì |MSV r,4| < tH, ít nhất một trong số đó là từ người xác minh trung thực trong HSV r,4 và được gửi sau thời gian Tr +t4. Theo đó, T \(\geq\)T r +t4 > T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\)r +Λ, và đến lúc T người chơi tôi cũng đã nhận được tin nhắn thưa ông, 1 \(\ell\)r . Bằng cách xây dựng giao thức, người chơi i dừng lại ở thời điểm \(\beta\)r,5 tôi = T không có tuyên truyền bất cứ điều gì; đặt Br = Br \(\ell\)r; và đặt CERT r của riêng mình thành tập hợp các thông báo (r, 4) cho 0 và H(Br \(\ell\)r) mà anh ấy đã nhận được. Bước s > 5. Tương tự, với mọi bước s > 5 và bất kỳ trình xác minh i \(\in\)HSV r,s nào, trình phát i sẽ có đã nhận được tất cả tin nhắn do người xác minh gửi trong HSV r,4 nếu anh ta đã đợi đến thời điểm \(\alpha\)r,s tôi +ts. Bởi phân tích tương tự, trình phát i dừng mà không truyền bất cứ thứ gì, đặt Br = Br \(\ell\)r (và tự thiết lập CERT r đúng cách). Tất nhiên, trình xác minh độc hại có thể không dừng lại và có thể truyền bá một cách tùy tiện tin nhắn, nhưng vì |MSV r,s| < tH, bằng quy nạp, không có v′ nào khác có thể được ký bởi người xác minh tH ở bất kỳ bước 4 \(\leq\)s′< s nào, do đó người xác minh trung thực chỉ dừng lại vì họ đã nhận được tH hợp lệ (r, 4)-tin nhắn cho 0 và H(Br \(\ell\)r). Tái thiết khối Round-r. Phân tích của Bước 5 áp dụng cho một sự trung thực chung người dùng tôi gần như không có bất kỳ thay đổi nào. Thật vậy, người chơi i bắt đầu vòng r của mình trong khoảng thời gian Ir và sẽ chỉ dừng ở thời điểm T khi anh ta nhận được tH tin nhắn (r, 4)-hợp lệ cho H(Br \(\ell\)r). Một lần nữa bởi vì ít nhất một trong những tin nhắn đó là từ những người xác minh trung thực và được gửi sau thời gian Tr + t4, người chơi i có cũng đã nhận được thưa ông,1 \(\ell\)r theo thời gian T. Do đó anh ta đặt Br = Br \(\ell\)r với CERT r thích hợp. Điều còn lại là chỉ ra rằng tất cả người dùng trung thực đều hoàn thành vòng r của họ trong khoảng thời gian Ir+1. Bằng phân tích ở Bước 5, mọi người xác minh trung thực i \(\in\)HSV r,5 đều biết Br trên hoặc trước \(\alpha\)r,5 tôi +t5 \(\leq\) T r + \(\lambda\) + t5 = T r + 8\(\lambda\) + Λ. Vì T r+1 là thời điểm người dùng trung thực đầu tiên biết Br nên ta có T r+1 \(\leq\)T r + 8\(\lambda\) + Λ như mong muốn. Hơn nữa, khi người chơi biết Br, anh ta đã giúp truyền bá các thông điệp trong CERT của anh ấy r. Lưu ý rằng tất cả những tin nhắn đó sẽ được nhận bởi tất cả người dùng trung thực trong thời gian \(\lambda\), ngay cả khi 19Nói đúng ra, điều này xảy ra với xác suất rất cao nhưng không hẳn là quá lớn. Tuy nhiên, điều này xác suất ảnh hưởng một chút đến thời gian chạy của giao thức nhưng không ảnh hưởng đến tính đúng đắn của nó. Khi h = 80% thì |HSV r,4| \(\geq\)tH với xác suất 1 −10−8. Nếu sự kiện này không xảy ra thì giao thức sẽ tiếp tục cho sự kiện khác 3 bước. Vì xác suất điều này không xảy ra trong hai bước là không đáng kể nên giao thức sẽ kết thúc ở Bước 8. Trong thì số bước cần thiết là gần như 5.player ir là người chơi đầu tiên tuyên truyền chúng. Hơn nữa, theo phân tích ở trên ta có T r+1 \(\geq\)T r + t4 \(\geq\) \(\beta\)r,1 \(\ell\)r + Λ, như vậy tất cả người dùng trung thực đều đã nhận được mr,1 \(\ell\)r theo thời gian T r+1 + \(\lambda\). Theo đó, tất cả người dùng trung thực đều biết Br trong khoảng thời gian Ir+1 = [T r+1, T r+1 + \(\lambda\)]. Cuối cùng, với r = 0 chúng ta thực sự có T 1 \(\leq\)t4 + \(\lambda\) = 6\(\lambda\) + Λ. Kết hợp mọi thứ lại với nhau, Bổ đề 5.2 đúng. ■ 5,8 Bổ đề về tính đúng đắn Bổ đề 5.3. [Bổ đề đúng đắn, được trình bày lại] Giả sử các Thuộc tính 1–3 đúng cho vòng r −1, khi người dẫn đầu \(\ell\)r là độc hại, với xác suất áp đảo, tất cả người dùng trung thực đều đồng ý trên cùng một khối Br, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ và tất cả người dùng trung thực đều biết Br trong khoảng thời gian Ir+1. Bằng chứng. Chúng tôi xem xét riêng biệt hai phần của giao thức, GC và BBA⋆. GC. Theo giả thuyết quy nạp và theo Bổ đề 5.5, với mọi bước s \(\in\){2, 3, 4} và mọi xác minh i \(\in\)HSV r,s, khi người chơi i hành động tại thời điểm \(\beta\)r,s tôi = \(\alpha\)r,s tôi + ts, anh ấy đã nhận được tất cả tin nhắn gửi đi bởi tất cả những người xác minh trung thực ở bước s′ < s. Chúng tôi phân biệt hai trường hợp có thể xảy ra cho bước 4. Trường hợp 1. Không có người kiểm định i \(\in\)HSV r,4 bộ gi = 2. Trong trường hợp này, theo định nghĩa bi = 1 cho tất cả các kiểm định i \(\in\)HSV r,4. Tức là họ bắt đầu bằng một thỏa thuận về 1 trong giao thức BA nhị phân. Họ có thể không có thỏa thuận về vi của họ, nhưng điều này không quan trọng như chúng ta sẽ thấy trong BA nhị phân. Trường hợp 2. Tồn tại bộ kiểm định ˆi \(\in\)HSV r,4 sao cho gˆi = 2. Trong trường hợp này, chúng tôi chỉ ra rằng (1) gi \(\geq\)1 với mọi i \(\in\)HSV r,4, (2) tồn tại một giá trị v′ sao cho vi = v′ với mọi i \(\in\)HSV r,4, và (3) tồn tại một tin nhắn hợp lệ thưa ông,1 \(\ell\) từ một số người xác minh \(\ell\) \(\in\)SV r,1 sao cho v′ = H(Br \(\ell\)). Thật vậy, vì người chơi ˆi trung thực và đặt gˆi = 2, nên hơn 2/3 tổng số tin nhắn hợp lệ mr,3 j anh ta đã nhận được với cùng giá trị v′ ̸= \(\bot\), và anh ta đã đặt vˆi = v′. Theo Tính chất (d) trong Bổ đề 5.5, đối với bất kỳ trình xác minh (r, 4) i trung thực nào khác, nó không thể hơn thế nữa hơn 2/3 số tin nhắn hợp lệ ông,3 j mà tôi′ đã nhận được có cùng giá trị v′′ ̸= v′. Theo đó, nếu tôi đặt gi = 2 thì chắc chắn tôi cũng đã thấy > 2/3 đa số cho v′ và đặt vi = v', như mong muốn. Bây giờ hãy xem xét một trình xác minh tùy ý i \(\in\)HSV r,4 với gi < 2. Tương tự như phân tích Thuộc tính (d) trong Bổ đề 5.5, vì người chơi ˆi đã thấy > 2/3 đa số cho v′, lớn hơn 1 2|HSV r,3| trung thực (r, 3)-người xác minh đã ký v′. Bởi vì tôi đã nhận được tất cả tin nhắn bởi những người xác minh trung thực (r, 3) bởi thời gian \(\beta\)r,4 tôi = \(\alpha\)r,4 tôi + t4, cụ thể anh ấy đã nhận được nhiều hơn 1 2|HSV r,3| tin nhắn từ họ cho v′. Vì |HSV r,3| > 2|MSV r,3|, tôi thấy > 1/3 đa số cho v′. Theo đó, người chơi tôi đặt gi = 1 và Thuộc tính (1) giữ nguyên. Người chơi tôi có nhất thiết phải đặt vi = v′ không? Giả sử tồn tại một giá trị khác v′′ ̸= \(\bot\) sao cho người chơi tôi cũng đã thấy > 1/3 đa số cho v′′. Một số tin nhắn đó có thể đến từ phần mềm độc hại những người xác minh, nhưng ít nhất một trong số họ là từ một người xác minh trung thực nào đó j \(\in\)HSV r,3: thực sự, bởi vì |HSV r,3| > 2|MSV r,3| và tôi đã nhận được tất cả tin nhắn từ HSV r,3, tập hợp các mã độc những người xác minh mà tôi đã nhận được tin nhắn (r, 3) hợp lệ chiếm < 1/3 tổng số tin nhắn hợp lệ những tin nhắn anh đã nhận được.Theo định nghĩa, người chơi j phải nhìn thấy > 2/3 đa số cho v′′ trong số tất cả các tin nhắn (r, 2) hợp lệ anh ấy đã nhận được. Tuy nhiên, chúng ta đã biết rằng một số người xác minh (r, 3) trung thực khác đã thấy 2/3 đa số ủng hộ v′ (vì họ đã ký v′). Theo tính chất (d) của Bổ đề 5.5, điều này không thể xảy ra và giá trị v′′ như vậy không tồn tại. Vì vậy người chơi i phải đặt vi = v′ như mong muốn, và Tài sản (2) giữ nguyên. Cuối cùng, vì một số người xác minh (r, 3) trung thực đã thấy > 2/3 đa số cho v′, một số (thực ra, hơn một nửa trong số) người xác minh trung thực (r, 2) đã ký ủng hộ v′ và truyền bá thông điệp của họ. Bằng cách xây dựng giao thức, những người xác minh (r, 2) trung thực đó phải nhận được một nhắn tin cho anh 1 \(\ell\) từ người chơi nào đó \(\ell\) \(\in\)SV r,1 với v′ = H(Br \(\ell\)), do đó Tính chất (3) đúng. BBA⋆. Chúng ta lại phân biệt hai trường hợp. Trường hợp 1. Tất cả các chứng từ i \(\in\)HSV r,4 đều có bi = 1. Điều này xảy ra sau Trường hợp 1 của GC. Như |MSV r,4| < tH, trong trường hợp này không có trình xác minh nào trong SV r,5 có thể thu thập hoặc tạo ra các thông báo hợp lệ (r, 4) cho bit 0. Do đó, không có trình xác minh trung thực nào trong HSV r,5 sẽ dừng lại vì anh ta biết khối không trống Br. Hơn nữa, mặc dù có ít nhất các thông báo tH hợp lệ (r, 4) cho bit 1, nhưng s′ = 5 không thỏa mãn s′ −2 ≡1 mod 3, do đó không có người kiểm tra trung thực nào trong HSV r,5 sẽ dừng lại vì anh ta biết Br = Br ừ. Thay vào đó, mọi bộ xác minh i \(\in\)HSV r,5 đều hoạt động tại thời điểm \(\beta\)r,5 tôi = \(\alpha\)r,5 tôi + t5, khi anh ta đã nhận được tất cả thông điệp được gửi bởi HSV r,4 theo Bổ đề 5.5. Như vậy người chơi tôi đã thấy > 2/3 đa số cho 1 và đặt bi = 1. Ở Bước 6 là bước Cố định bằng tiền xu thành 1, mặc dù s′ = 5 thỏa mãn s′ −2 ≡0 mod 3, vẫn có không tồn tại các thông báo hợp lệ (r, 4) cho bit 0, do đó không có trình xác minh nào trong HSV r,6 sẽ dừng vì anh ta biết một khối không trống Br. Tuy nhiên, với s′ = 6, s′ −2 ≡1 mod 3 và tồn tại |HSV r,5| \(\geq\)tH các thông báo hợp lệ (r, 5) cho bit 1 từ HSV r,5. Với mọi bộ xác minh i \(\in\)HSV r,6, theo Bổ đề 5.5, vào hoặc trước thời điểm \(\alpha\)r,6 tôi + máy nghe nhạc t6 tôi đã nhận được tất cả tin nhắn từ HSV r,5, do đó tôi dừng lại mà không truyền bá bất cứ điều gì và đặt Br = Br ừ. CERT r của anh ta là tập hợp các thông báo-(r, 5) hợp lệ mr,5 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j ) được anh ta nhận được khi anh ta dừng lại. Tiếp theo, hãy để người chơi i là người xác minh trung thực ở bước s > 6 hoặc người dùng chung chung trung thực (tức là người không xác minh). Tương tự như chứng minh Bổ đề 5.2, người chơi i đặt Br = Br Ă và tự đặt ra CERT r là tập hợp các thông báo-(r, 5) hợp lệ mr,5 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j ) anh ấy có đã nhận được. Cuối cùng, tương tự như Bổ đề 5.2, Tr+1 \(\leq\) phút i\(\in\)HSV r,6 \(\alpha\)r,6 tôi + t6 \(\leq\)T r + \(\lambda\) + t6 = T r + 10\(\lambda\) + Λ, và tất cả người dùng trung thực đều biết Br trong khoảng thời gian Ir+1, bởi vì người dùng trung thực đầu tiên i là người biết Br đã giúp truyền bá các thông điệp-(r, 5) trong CERT r của anh ấy. Trường hợp 2. Tồn tại bộ kiểm định ˆi \(\in\)HSV r,4 với bˆi = 0. Điều này xảy ra sau Trường hợp 2 của GC và là trường hợp phức tạp hơn. Qua phân tích của GC, trong trường hợp này tồn tại một tin nhắn hợp lệ ông,1 \(\ell\) sao cho vi = H(Br \(\ell\)) với mọi i \(\in\)HSV r,4. Lưu ý rằng những người xác minh trong HSV r,4 có thể không có thỏa thuận về bi của họ. Với mọi bước s \(\in\){5, . . . , m + 3} và người xác minh i \(\in\)HSV r,s, bởi người chơi Lemma 5.5 tôi sẽ có đã nhận được tất cả tin nhắn được gửi bởi tất cả người xác minh trung thực trong HSV r,4 \(\cup\) \(\cdots\) \(\cup\)HSV r,s−1 nếu anh ta đã đợi trong thời gian ts.Bây giờ chúng ta xét sự kiện E sau: tồn tại một bước s∗ \(\geq\)5 sao cho lần đầu tiên thời gian trong BA nhị phân, một số người chơi i∗\(\in\)SV r,s∗(dù có ác tâm hay trung thực) nên dừng lại mà không tuyên truyền bất cứ điều gì. Chúng tôi sử dụng “nên dừng” để nhấn mạnh thực tế rằng, nếu người chơi i∗ là có ác ý thì anh ta có thể giả vờ rằng mình không nên dừng lại theo giao thức và truyền bá thông điệp về sự lựa chọn của Đối thủ. Hơn nữa, bằng cách xây dựng giao thức, hoặc (E.a) i∗có thể thu thập hoặc tạo ra ít nhất tH tin nhắn hợp lệ mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ) với cùng v và s′, với 5 ∗s′ ∗và s′ −2 ≡0 mod 3; hoặc (E.b) i∗có thể thu thập hoặc tạo ra ít nhất tH tin nhắn hợp lệ mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ) với cùng s′, với 6 ∗s′ ∗và s′ −2 ≡1 mod 3. Bởi vì các thông báo-(r,s′-1) trung thực được nhận bởi tất cả những người xác minh-(r, s′) trung thực trước khi chúng đã hoàn tất việc chờ đợi ở Bước s' và bởi vì Đối thủ nhận được mọi thứ không muộn hơn người dùng trung thực, không mất tính tổng quát, ta có s′ = s∗và người chơi i∗là độc hại. Lưu ý rằng chúng tôi không yêu cầu giá trị v trong E.a phải là hash của khối hợp lệ: vì nó sẽ trở nên rõ ràng trong phân tích, v = H(Br \(\ell\)) trong sự kiện phụ này. Dưới đây, trước tiên chúng tôi phân tích Trường hợp 2 theo sự kiện E và sau đó chỉ ra rằng giá trị của s∗ về cơ bản là được phân phối tương ứng cho Lr (do đó sự kiện E xảy ra trước Bước m + 3 với áp đảo xác suất cho trước các mối quan hệ của các tham số). Để bắt đầu, với bất kỳ bước 5 \(\leq\)s < s∗, mọi người xác minh trung thực i \(\in\)HSV r,s đã đợi thời gian ts và đặt vi là đa số phiếu của các tin nhắn (r, s−1) hợp lệ mà anh ta đã nhận được. Vì người chơi nên tôi đã nhận được tất cả các tin nhắn (r, s−1) trung thực theo Bổ đề 5.5, vì tất cả những người xác minh trung thực trong HSV r,4 đều có ký hiệu H(Br \(\ell\)) trường hợp sau 2 của GC, và vì |HSV r,s−1| > 2|MSV r,s−1| với mỗi s, bằng quy nạp chúng ta có người chơi i đã thiết lập vi = H(Br \(\ell\)). Điều tương tự cũng xảy ra với mọi người xác minh trung thực i \(\in\)HSV r,s∗người không dừng lại mà không lan truyền bất cứ điều gì. Bây giờ chúng ta xem xét Bước s∗và phân biệt bốn trường hợp con. Trường hợp 2.1.a. Sự kiện E.a xảy ra và tồn tại người xác minh trung thực i′ \(\in\)HSV r,s∗ai sẽ cũng dừng lại mà không tuyên truyền bất cứ điều gì. Trong trường hợp này, chúng ta có s∗−2 ≡0 mod 3 và Bước s∗là bước Coin-Fixed-To-0. Bởi định nghĩa, người chơi i' đã nhận được ít nhất tH thông báo hợp lệ (r, s∗−1) có dạng (ESIGj(0), ESIGj(v), \(\sigma\)r,s∗−1 j ). Vì tất cả người xác minh trong HSV r,s∗−1 đều có chữ ký H(Br \(\ell\)) và |MSV r,s∗−1| < tH, ta có v = H(Br \(\ell\)). Vì ít nhất tH −|MSV r,s∗−1| \(\geq\)1 trong số các tin nhắn (r, s∗−1) mà i′ nhận được cho 0 và v được gửi bởi người xác minh trong HSV r,s∗−1 sau thời gian T r +ts∗−1 \(\geq\)T r +t4 \(\geq\)T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\) +Λ, người chơi tôi′ đã nhận được ông,1 \(\ell\) vào thời điểm anh ta nhận được các tin nhắn (r, s∗−1) đó. Như vậy người chơi tôi’ dừng lại mà không truyền bá bất cứ điều gì; đặt Br = Br \(\ell\); và đặt CERT r của riêng mình thành tập hợp các thông báo (r, s∗−1) hợp lệ cho 0 và v mà anh ta đã nhận được. Tiếp theo, chúng tôi chỉ ra rằng, mọi trình xác minh i \(\in\)HSV r,s∗ đều đã dừng với Br = Br \(\ell\), hoặc đã đặt bi = 0 và được truyền (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s tôi ). Thật vậy, vì Bước s∗ đây là lần đầu tiên một số người xác minh dừng lại mà không truyền bá bất cứ điều gì, không có tồn tại một bước s′ < s∗ với s′ −2 ≡1 mod 3 sao cho tH (r, s′ −1)-người xác minh có dấu 1. Theo đó, không có trình xác minh nào trong HSV r,s∗dừng với Br = Br ừ.Hơn nữa, như tất cả những người xác minh trung thực ở bước {4, 5, . . . , s∗−1} đã ký H(Br \(\ell\)), có không tồn tại bước s′ \(\leq\)s∗với s′ −2 ≡0 mod 3 sao cho tH (r, s′ −1)-người xác minh đã ký một số v′′ ̸= H(Br \(\ell\)) —thực sự, |MSV r,s′−1| < th. Theo đó, không có trình xác minh nào trong HSV r,s∗stops với Br ̸= Br ǫ và Br ̸= Br \(\ell\). Nghĩa là, nếu người chơi i \(\in\)HSV r,s∗ đã dừng mà không truyền bá bất cứ thứ gì thì anh ta phải đặt Br = Br \(\ell\). Nếu người chơi i \(\in\)HSV r,s∗đã đợi thời gian ts∗và truyền một tin nhắn vào thời điểm đó \(\beta\)r,s∗ tôi = \(\alpha\)r,s∗ tôi + ts∗, anh ta đã nhận được tất cả tin nhắn từ HSV r,s∗−1, bao gồm ít nhất tH −|MSV r,s∗−1| của chúng cho 0 và v. Nếu tôi thấy > 2/3 đa số cho 1 thì anh ấy đã thấy hơn 2(tH −|MSV r,s∗−1|) tin nhắn hợp lệ (r, s∗−1) cho 1, với nhiều hơn hơn 2tH −3|MSV r,s∗−1| trong số chúng từ những người xác minh-(r, s∗−1) trung thực. Tuy nhiên, điều này hàm ý |HSV r,s∗−1| \(\geq\)tH−|MSV r,s∗−1|+2tH−3|MSV r,s∗−1| > 2n−4|MSV r,s∗−1|, mâu thuẫn sự thật là |HSV r,s∗−1| + 4|MSV r,s∗−1| < 2n, xuất phát từ mối quan hệ của các tham số. Theo đó, tôi không thấy > 2/3 đa số cho 1 và anh ta đặt bi = 0 vì Bước s∗ là bước Coin-Fixed-To-0. Như chúng tôi có đã thấy, vi = H(Br \(\ell\)). Do đó tôi truyền bá (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s i ) như chúng tôi muốn hiển thị. Đối với Bước s∗+ 1, vì người chơi i′ đã giúp truyền bá các thông điệp trong CERT r của mình vào hoặc trước thời điểm \(\alpha\)r,s∗ tôi′ + ts∗, tất cả người xác minh trung thực trong HSV r,s∗+1 đều đã nhận được ít nhất tH các thông báo hợp lệ (r, s∗−1) cho bit 0 và giá trị H(Br \(\ell\)) vào hoặc trước khi chúng hoàn thành đang chờ đợi. Hơn nữa, trình xác minh trong HSV r,s∗+1 sẽ không dừng trước khi nhận được (r, s∗−1)- bởi vì không tồn tại bất kỳ thông báo tH hợp lệ nào khác cho bit 1 với s′ −2 ≡1 mod 3 và 6 \(\leq\)s′ \(\leq\)s∗+ 1, theo định nghĩa của Bước s∗. Đặc biệt, Bước Bản thân s∗+ 1 là bước Coin-Fixed-To-1, nhưng không có người xác minh trung thực nào trong HSV r,s∗đã được phổ biến một tin nhắn cho 1 và |MSV r,s∗| < th. Do đó, tất cả các bộ xác minh trung thực trong HSV r,s∗+1 đều dừng mà không truyền bá bất cứ thứ gì và đặt Br = anh \(\ell\): như trước họ đã nhận được mr,1 \(\ell\) trước khi họ nhận được tin nhắn (r, s∗−1) mong muốn.20 Điều tương tự cũng có thể xảy ra với tất cả những người xác minh trung thực trong các bước tiếp theo và tất cả những người dùng trung thực nói chung. Đặc biệt họ đều biết Br = Br \(\ell\)trong khoảng thời gian Ir+1 và T r+1 \(\lambda\)r,s∗ tôi′ + ts∗<T r + \(\lambda\) + ts∗. Trường hợp 2.1.b. Sự kiện E.b xảy ra và tồn tại người xác minh trung thực i′ \(\in\)HSV r,s∗ai sẽ cũng dừng lại mà không tuyên truyền bất cứ điều gì. Trong trường hợp này, chúng ta có s∗−2 ≡1 mod 3 và Bước s∗là bước Coin-Fixed-To-1. Việc phân tích tương tự như Trường hợp 2.1.a và có nhiều chi tiết bị lược bỏ. 20Nếu \(\ell\)có ác ý, anh ta có thể cử ông,1 \(\ell\) muộn, hy vọng rằng một số người dùng/người xác minh trung thực chưa nhận được mr,1 \(\ell\) chưa khi họ nhận được chứng chỉ mong muốn cho nó. Tuy nhiên, do người kiểm tra ˆi \(\in\)HSV r,4 đã đặt bˆi = 0 và vˆi = H(Br \(\ell\)), như trước khi chúng ta có hơn một nửa số người xác minh trung thực i \(\in\)HSV r,3 đã đặt vi = H(Br \(\ell\)). Điều này càng hàm ý thêm hơn một nửa số người xác minh trung thực i \(\in\)HSV r,2 đã đặt vi = H(Br \(\ell\)), và những người xác minh (r, 2) đều đã nhận được mr,1 \(\ell\). Như Kẻ thù không thể phân biệt người xác minh với người không xác minh, anh ta không thể nhắm mục tiêu truyền bá mr,1 \(\ell\) tới (r, 2)-người xác minh mà không để những người không xác minh nhìn thấy nó. Trên thực tế, với xác suất cao, hơn một nửa (hoặc một phần không đổi tốt) trong số tất cả người dùng trung thực đã thấy mr,1 \(\ell\) sau khi chờ đợi t2 từ đầu vòng r của chính họ. Từ đây trở đi, thời gian \(\lambda\)′ cần thiết cho ông,1 \(\ell\) để tiếp cận những người dùng trung thực còn lại nhỏ hơn nhiều so với Λ và để đơn giản, chúng tôi không viết nó ra trong phân tích. Nếu 4\(\lambda\) \(\geq\) \(\lambda\)′ thì quá trình phân tích sẽ được thực hiện mà không có bất kỳ thay đổi nào: đến cuối Bước 4, tất cả người dùng trung thực sẽ nhận được mr,1 \(\ell\). Nếu kích thước của khối trở nên rất lớn và 4\(\lambda\) < \(\lambda\)′ thì ở Bước 3 và 4, giao thức có thể yêu cầu mỗi người xác minh đợi \(\lambda\)′/2 thay vì 2\(\lambda\) và phân tích tiếp tục được giữ nguyên.Như trước đây, người chơi i′ phải nhận được ít nhất tH thông báo hợp lệ (r, s∗−1) có dạng (ESIGj(1), ESIGj(vj), \(\sigma\)r,s∗−1 j ). Một lần nữa theo định nghĩa của s∗, không tồn tại bước 5 \(\leq\)s′ < s∗với s′ −2 ≡0 mod 3, trong đó ít nhất tH (r, s′ −1)-người xác minh có dấu 0 và tương tự v. Do đó, người chơi i′ dừng lại mà không truyền bá bất cứ điều gì; đặt Br = Br Ă; và bộ CERT r của chính anh ta là tập hợp các thông báo (r, s∗−1) hợp lệ cho bit 1 mà anh ta đã nhận được. Ngoài ra, bất kỳ trình xác minh nào khác i \(\in\)HSV r,s∗ đều đã dừng với Br = Br ă , hoặc đã đặt bi = 1 và được truyền bá (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ tôi ). Vì người chơi tôi′ đã giúp truyền bá các tin nhắn (r, s∗−1) trong CERT của anh ấy r theo thời gian \(\alpha\)r,s∗ tôi′ + ts∗, một lần nữa tất cả những người xác minh trung thực trong HSV r,s∗+1 dừng mà không lan truyền bất cứ thứ gì và đặt Br = Br ừ . Tương tự, tất cả đều trung thực người dùng biết Br = Br ǫ trong khoảng thời gian Ir+1 và T r+1 \(\lambda\)r,s∗ tôi′ + ts∗
2/3 đa số đối với bit 1, một lần nữa vì |HSV r,s∗−1| + 4|MSV r,s∗−1| < 2n. Do đó, mọi người xác minh trung thực i \(\in\)HSV r,s∗tập bi = 0, vi = H(Br \(\ell\)) theo đa số phiếu và tuyên truyền mr,s∗ tôi = (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s∗ tôi ) tại thời điểm \(\alpha\)r,s∗ tôi + ts∗. Bây giờ hãy xem xét những người xác minh trung thực ở Bước s∗+ 1 (là bước Coin-Fixed-To-1). Nếu Đối thủ thực sự gửi tin nhắn trong CERT r i∗với một số người trong số họ và khiến họ dừng lại thì tương tự như trường hợp 2.1.a, tất cả người dùng trung thực đều biết Br = Br \(\ell\)trong khoảng thời gian Ir+1 và T r+1 \(\leq\)T r + \(\lambda\) + ts∗+1. Mặt khác, tất cả những người xác minh trung thực ở Bước s∗+1 đã nhận được tất cả các thông báo (r, s∗)-cho 0 và H(Br \(\ell\)) từ HSV r,s∗sau thời gian chờ ts∗+1, dẫn đến > 2/3 đa số, bởi vì |HSV r,s∗| > 2|MSV r,s∗|. Do đó, tất cả các bộ xác minh trong HSV r,s∗+1 đều truyền bá thông điệp của chúng cho 0 và H(Br \(\ell\)) tương ứng. Lưu ý rằng các bộ xác minh trong HSV r,s∗+1 không dừng lại ở Br = Br \(\ell\), bởi vì Bước s∗+ 1 không phải là bước Coin-Fixed-To-0. Bây giờ hãy xem xét những người xác minh trung thực ở Bước s∗+2 (là bước Lật xu thật). Nếu Đối thủ gửi tin nhắn trong CERT r i∗với một số người trong số họ và khiến họ dừng lại, thì một lần nữa tất cả người dùng trung thực đều biết Br = Br \(\ell\)trong khoảng thời gian Ir+1 và T r+1 \(\leq\)T r + \(\lambda\) + ts∗+2.Mặt khác, tất cả những người xác minh trung thực ở Bước s∗+ 2 đều đã nhận được tất cả các thông báo (r, s∗+ 1) cho 0 và H(Br \(\ell\)) từ HSV r,s∗+1 sau thời gian chờ ts∗+2, dẫn đến > 2/3 đa số. Do đó tất cả chúng đều truyền bá thông điệp của chúng cho 0 và H(Br \(\ell\)) tương ứng: đó là họ làm không phải “tung đồng xu” trong trường hợp này. Một lần nữa, hãy lưu ý rằng chúng không dừng lại nếu không lan truyền, bởi vì Bước s∗+ 2 không phải là bước Coin-Fixed-To-0. Cuối cùng, đối với những người xác minh trung thực ở Bước s∗+3 (là một bước khác của Coin-Fixed-To-0), tất cả trong số họ sẽ nhận được ít nhất tH tin nhắn hợp lệ cho 0 và H(Br \(\ell\)) từ HSV s∗+2, nếu họ thực sự đợi thời gian ts∗+3. Do đó, dù đối thủ có gửi tin nhắn hay không trong CERT r i∗đối với bất kỳ trong số chúng, tất cả các trình xác minh trong HSV r,s∗+3 đều dừng lại với Br = Br \(\ell\), không có tuyên truyền bất cứ điều gì. Tùy thuộc vào cách hành động của Đối thủ, một số trong số họ có thể có CERT r của riêng họ bao gồm các thông báo (r, s∗−1) trong CERT r i∗, và những người khác có CERT r của riêng họ bao gồm các tin nhắn (r, s∗+ 2). Trong mọi trường hợp, tất cả người dùng trung thực biết Br = Br \(\ell\)trong khoảng thời gian Ir+1 và T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3. Trường hợp 2.2.b. Sự kiện E.b xảy ra và không tồn tại người xác minh trung thực i′ \(\in\)HSV r,s∗who cũng nên dừng lại mà không tuyên truyền bất cứ điều gì. Phân tích trong trường hợp này tương tự như trường hợp 2.1.b và trường hợp 2.2.a, do đó có nhiều chi tiết đã bị bỏ qua. Đặc biệt, CERT r i∗bao gồm các thông điệp tH mong muốn (r, s∗−1) đối với bit 1 mà Đối thủ có thể thu thập hoặc tạo ra, s∗−2 ≡1 mod 3, Bước s∗là Bước cố định bằng tiền xu thành 1 và không có người xác minh (r, s∗) trung thực nào có thể thấy > 2/3 đa số cho 0. Do đó, mọi trình xác minh i \(\in\)HSV r,s∗đặt bi = 1 và truyền mr,s∗ tôi = (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ tôi ) tại thời điểm \(\alpha\)r,s∗ tôi + ts∗. Tương tự như Trường hợp 2.2.a, trong tối đa 3 bước nữa (tức là giao thức đạt đến Bước s∗+3, đây là một bước khác được cố định bằng tiền xu thành 1), tất cả người dùng trung thực đều biết Br = Br ừ trong khoảng thời gian Ir+1. Hơn nữa, T r+1 có thể là T r+\(\lambda\)+ts∗+1, hoặcT r+\(\lambda\)+ts∗+2, hoặc \(\leq\)T r + \(\lambda\) + ts∗+3, tùy thuộc vào thời điểm lần đầu tiên người xác minh trung thực có thể dừng lại mà không lan truyền. Kết hợp bốn trường hợp con, chúng ta có tất cả người dùng trung thực đều biết Br trong khoảng thời gian Ir+1, với T r+1 \(\leq\)T r + \(\lambda\) + ts∗trong trường hợp 2.1.a và 2.1.b, và T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 trong Trường hợp 2.2.a và 2.2.b. Nó vẫn ở giới hạn trên s∗và do đó T r+1 cho Trường hợp 2, và chúng tôi làm như vậy bằng cách xem xét cách nhiều khi các bước Lật xu thực sự được thực thi trong giao thức: nghĩa là một số người xác minh trung thực thực sự đã tung đồng xu. Cụ thể, cố định tùy ý một bước Lật xu thật s′ (tức là 7 \(\leq\)s′ \(\leq\)m + 2 và s′ −2 ≡2 mod 3), và đặt \(\ell\)′ \(\triangleq\)arg minj\(\in\)SV r,s′−1 H(\(\sigma\)r,s′−1 j ). Bây giờ chúng ta hãy giả sử s′ < s∗, bởi vì nếu không thì không có người xác minh trung thực nào thực sự tung đồng xu trong Bước s′, theo quy định trước đó. các cuộc thảo luận. Theo định nghĩa của SV r,s′−1, giá trị hash của thông tin xác thực \(\ell\)′ cũng là giá trị nhỏ nhất trong số tất cả người dùng trong PKr−k. Vì hàm hash là ngẫu nhiên oracle nên lý tưởng nhất là người chơi \(\ell\)′ trung thực với xác suất ít nhất là h. Như chúng tôi sẽ trình bày sau, ngay cả khi Đối thủ cố gắng hết sức để dự đoán đầu ra ngẫu nhiên oracle và nghiêng xác suất, người chơi \(\ell\)′ vẫn trung thực với xác suấtít nhất ph = h2(1 + h −h2). Dưới đây chúng tôi xem xét trường hợp khi điều đó thực sự xảy ra: nghĩa là, \(\ell\)′ \(\in\)HSV r,s′−1. Lưu ý rằng mọi người xác minh trung thực i \(\in\)HSV r,s′ đều đã nhận được tất cả tin nhắn từ HSV r,s′−1 bởi thời gian \(\alpha\)r,s′ tôi +ts′. Nếu người chơi tôi cần tung một đồng xu (tức là anh ta chưa nhìn thấy > 2/3 đa số cho cùng bit b \(\in\){0, 1}), thì anh ta đặt bi = lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )). Nếu có tồn tại một sự trung thực khác người xác minh i′ \(\in\)HSV r,s′ người đã xem > 2/3 đa số cho một bit b \(\in\){0, 1}, sau đó theo Thuộc tính (d) trong Bổ đề 5.5, không có người xác minh trung thực nào trong HSV r,s′ sẽ thấy > 2/3 đa số trong một thời gian b′ ̸= b. Vì lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) = b với xác suất 1/2, tất cả người xác minh trung thực trong HSV r,s′ đều đạt thỏa thuận về b với xác suất 1/2. Tất nhiên, nếu một người xác minh i' như vậy không tồn tại thì tất cả những người xác minh trung thực trong HSV r,s′ đồng ý về bit lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) với xác suất 1. Kết hợp xác suất của \(\ell\)′ \(\in\)HSV r,s′−1, ta có người xác minh trung thực trong HSV r,s′ đạt được thỏa thuận về bit b \(\in\){0, 1} với xác suất ít nhất là ph 2 = h2(1+h−h2) 2 . Hơn nữa, bằng quy nạp theo đa số phiếu như trước đây, tất cả người xác minh trung thực trong HSV r,s′ đều có tập vi của họ là H(Br \(\ell\)). Do đó, khi đạt được thỏa thuận về b ở Bước s′, T r+1 là hoặcT r + \(\lambda\) + ts′+1 hoặcT r + \(\lambda\) + ts′+2, tùy thuộc vào b = 0 hay b = 1, theo phân tích Trường hợp 2.1.a và 2.1.b. trong cụ thể, sẽ không có bước Lật xu thật nào nữa được thực hiện: nghĩa là những người xác minh trong các bước như vậy vẫn kiểm tra xem chúng có phải là người xác minh hay không và do đó chờ đợi, nhưng tất cả chúng sẽ dừng mà không tuyên truyền bất cứ điều gì. Theo đó, trước Bước s∗, số lần thực hiện các bước Coin-GenuinelyFlipped được phân phối theo biến ngẫu nhiên Lr. Để Bước s′ là bước Lật xu thật cuối cùng theo Lr, bằng cách xây dựng giao thức chúng tôi có s′ = 4 + 3Lr. Khi nào Đối thủ nên thực hiện Bước s∗xảy ra nếu anh ta muốn trì hoãn T r+1 nhiều nhất có thể có thể? Chúng ta thậm chí có thể cho rằng Kẻ thù biết trước việc thực hiện Lr. Nếu s∗> s′ thì điều đó là vô ích, bởi vì những người xác minh trung thực đã đạt được thỏa thuận về Bước s′. Để chắc chắn, trong trường hợp này s∗sẽ là s′ +1 hoặc s′ +2, tùy thuộc vào việc b = 0 hoặc b = 1. Tuy nhiên, đây thực sự là Trường hợp 2.1.a và 2.1.b, và kết quả T r+1 chính xác là tương tự như trong trường hợp đó. Chính xác hơn, T r+1 \(\lambda\) + ts′+2. Nếu s∗< s′ −3 —tức là, s∗ nằm trước bước Lật xu thật cuối cùng thứ hai— thì bằng phân tích các trường hợp 2.2.a và 2.2.b, T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 < T r + \(\lambda\) + ts′. Nghĩa là, Đối thủ thực sự đang làm cho thỏa thuận về Br diễn ra nhanh hơn. Nếu s∗= s′ −2 hoặc s′ −1 —tức là bước Coin-Fixed-To-0 hoặc bước Coin-Fixed-To-1 ngay trước Bước s′— sau đó bằng cách phân tích bốn trường hợp phụ, những người xác minh trung thực trong Các bước s′ không được tung đồng xu nữa, vì chúng đã dừng mà không lan truyền, hoặc đã xem > 2/3 đa số cho cùng một bit b. Vì vậy chúng tôi có T r+1T r + \(\lambda\) + ts∗+3T r + \(\lambda\) + ts′+2.Tóm lại, bất kể là gì, chúng ta có T r+1 \(\leq\)T r + \(\lambda\) + ts′+2 = T r + \(\lambda\) + t3Lr+6 = T r + \(\lambda\) + (2(3Lr + 6) −3)\(\lambda\) + Λ = T r + (6Lr + 10)\(\lambda\) + Λ, như chúng tôi muốn thể hiện. Trường hợp xấu nhất xảy ra khi s∗= s′ −1 và Trường hợp 2.2.b xảy ra. Kết hợp Trường hợp 1 và 2 của giao thức BA nhị phân, Bổ đề 5.3 đúng. ■ 5,9 Sự an toàn của Qr hạt giống và xác suất của một nhà lãnh đạo trung thực Việc còn lại là chứng minh Bổ đề 5.4. Hãy nhớ lại rằng các bộ xác minh trong vòng r được lấy từ PKr−k và được chọn theo đại lượng Qr-1. Lý do đưa ra tham số nhìn lại k là để đảm bảo rằng, quay lại vòng r −k, khi Đối thủ có thể thêm người dùng độc hại mới đến PKr−k, anh ta không thể dự đoán đại lượng Qr−1 ngoại trừ với xác suất không đáng kể. Lưu ý rằng Hàm hash là ngẫu nhiên oracle và Qr−1 là một trong những đầu vào của nó khi chọn trình xác minh cho vòng r. Do đó, bất kể người dùng có ác ý được thêm vào PKr−k như thế nào, theo quan điểm của Đối thủ, mỗi người dùng đều có thể một trong số họ vẫn được chọn làm người xác minh ở bước của vòng r với xác suất yêu cầu p (hoặc p1 cho Bước 1). Chính xác hơn, chúng ta có bổ đề sau. Bổ đề 5.6. Với k = O(log1/2 F), với mỗi hiệp r, với xác suất áp đảo đối thủ sẽ đã không truy vấn Qr−1 tới oracle ngẫu nhiên ở vòng r −k. Bằng chứng. Chúng ta tiến hành bằng quy nạp. Giả sử rằng với mỗi vòng \(\gamma\) < r, Đối thủ không truy vấn Q\(\gamma\)−1 đến oracle ngẫu nhiên ở vòng \(\gamma\) −k.21 Hãy xem xét trò chơi tinh thần sau đây được chơi bởi Đối thủ ở vòng r −k, cố gắng dự đoán Qr−1. Ở Bước 1 của mỗi vòng \(\gamma\) = r −k, . . . , r −1, với một Q\(\gamma\)−1 cụ thể không được truy vấn ngẫu nhiên oracle, bằng cách sắp xếp người chơi i \(\in\)PK\(\gamma\)−k theo các giá trị hash H(SIGi(\(\gamma\), 1, Q\(\gamma\)−1)) ngày càng có nhiều hoán vị ngẫu nhiên trên PK\(\gamma\)−k. Theo định nghĩa, người dẫn đầu \(\ell\) \(\gamma\) là người người sử dụng đầu tiên trong hoán vị và trung thực với xác suất h. Hơn nữa, khi PK\(\gamma\)−k lớn đủ, với bất kỳ số nguyên x \(\geq\)1 nào, xác suất mà x người dùng đầu tiên trong hoán vị đều là độc hại nhưng (x + 1)st trung thực là (1 −h)xh. Nếu \(\ell\) \(\gamma\) là trung thực thì Q\(\gamma\) = H(SIG\(\ell\) \(\gamma\)(Q\(\gamma\)−1), \(\gamma\)). Vì đối thủ không thể giả mạo chữ ký của \(\ell\) \(\gamma\), Q\(\gamma\) được phân bổ đồng đều một cách ngẫu nhiên theo quan điểm của Đối thủ và, ngoại trừ với xác suất nhỏ theo cấp số nhân,22 không được truy vấn H ở vòng r −k. Vì mỗi Q\(\gamma\)+1, Q\(\gamma\)+2, . . . , Qr−1 tương ứng là đầu ra của H với Q\(\gamma\), Q\(\gamma\)+1, . . . , Qr−2 là một trong những đầu vào, tất cả đều trông ngẫu nhiên đối với Đối thủ và Đối thủ không thể truy vấn Qr−1 đến H tại tròn r −k. Theo đó, trường hợp duy nhất mà Đối thủ có thể dự đoán Qr−1 với xác suất tốt ở vòng đấu r−k là khi tất cả các nhà lãnh đạo \(\ell\)r−k, . . . , \(\ell\)r−1 là độc hại. Một lần nữa hãy xem xét một vòng \(\gamma\) \(\in\){r−k . . . , r−1} và hoán vị ngẫu nhiên trên PK\(\gamma\)−k được tạo ra bởi các giá trị hash tương ứng. Nếu vì một số người x \(\geq\)2, x −1 người dùng đầu tiên trong hoán vị đều độc hại và x-th là trung thực, sau đó là Đối thủ có x lựa chọn cho Q\(\gamma\): hoặc ở dạng H(SIGi(Q\(\gamma\)−1, \(\gamma\))), trong đó i là một trong 21Vì k là một số nguyên nhỏ, không mất tính tổng quát nên có thể giả sử rằng k vòng đầu tiên của giao thức được chạy trong một môi trường an toàn và giả thuyết quy nạp đúng cho các vòng đó. 22Nghĩa là, hàm mũ của độ dài đầu ra của H. Lưu ý rằng xác suất này nhỏ hơn F rất nhiều.những người dùng độc hại x−1 đầu tiên, bằng cách biến người chơi i trở thành người dẫn đầu thực sự của vòng \(\gamma\); hoặc H(Q\(\gamma\)−1, \(\gamma\)), bởi buộc B\(\gamma\) = B\(\gamma\) ừ . Ngược lại, người đứng đầu vòng \(\gamma\) sẽ là người dùng trung thực đầu tiên trong hoán vị và Qr−1 trở nên khó đoán đối với Kẻ thù. Đối thủ nên theo đuổi lựa chọn x nào ở trên của Q\(\gamma\)? Để giúp đỡ kẻ thù Trả lời câu hỏi này, trong trò chơi tinh thần, chúng ta thực sự khiến anh ta mạnh hơn anh ta thực sự là như sau. Trước hết, trên thực tế, Đối thủ không thể tính toán hash của người dùng trung thực chữ ký, do đó không thể quyết định, đối với mỗi Q\(\gamma\), số x(Q\(\gamma\)) của người dùng độc hại lúc đầu của hoán vị ngẫu nhiên trong vòng \(\gamma\) + 1 do Q\(\gamma\) gây ra. Trong trò chơi tinh thần, chúng tôi đưa cho anh ta số x(Q\(\gamma\)) miễn phí. Thứ hai, trên thực tế, có x người dùng đầu tiên trong hoán vị tất cả trở nên độc hại không nhất thiết có nghĩa là tất cả họ đều có thể trở thành người lãnh đạo, bởi vì hash giá trị chữ ký của họ cũng phải nhỏ hơn p1. Chúng tôi đã bỏ qua ràng buộc này trong tâm trí trò chơi, mang lại cho Đối thủ nhiều lợi thế hơn. Dễ dàng nhận thấy trong trò chơi trí tuệ, phương án tối ưu dành cho Đối thủ, ký hiệu là ˆQ\(\gamma\), là thứ tạo ra chuỗi người dùng độc hại dài nhất khi bắt đầu ngẫu nhiên hoán vị trong vòng \(\gamma\) + 1. Thật vậy, với một Q\(\gamma\) cụ thể, giao thức không phụ thuộc vào Q\(\gamma\)−1 nữa và Đối thủ chỉ có thể tập trung vào hoán vị mới ở vòng \(\gamma\) + 1, có phân phối tương tự cho số lượng người dùng độc hại lúc đầu. Theo đó, ở mỗi vòng \(\gamma\), ˆQ\(\gamma\) được đề cập ở trên mang lại cho anh ta số lượng tùy chọn lớn nhất cho Q\(\gamma\)+1 và do đó tối đa hóa xác suất những người dẫn đầu liên tiếp đều có ác ý. Do đó, trong trò chơi tinh thần, Đối thủ đang theo Chuỗi Markov từ vòng r −k để làm tròn r −1, với không gian trạng thái là {0} \(\cup\){x : x \(\geq\)2}. Trạng thái 0 thể hiện thực tế là Người dùng đầu tiên trong hoán vị ngẫu nhiên ở vòng hiện tại \(\gamma\) là trung thực, do đó Đối thủ không thực hiện được trò chơi dự đoán Qr−1; và mỗi trạng thái x \(\geq\)2 biểu thị thực tế là x −1 người dùng đầu tiên trong hoán vị là độc hại và thứ x là trung thực, do đó Đối thủ có x tùy chọn cho Q\(\gamma\). các xác suất chuyển tiếp P(x, y) như sau. • P(0, 0) = 1 và P(0, y) = 0 với mọi y \(\geq\)2. Nghĩa là, Đối thủ đã thất bại trong trò chơi ngay lần đầu tiên người dùng trong hoán vị trở nên trung thực. • P(x, 0) = hx với mọi x \(\geq\)2. Nghĩa là, với xác suất hx, tất cả các hoán vị ngẫu nhiên x đều có những người dùng đầu tiên của họ trung thực, do đó Đối thủ sẽ thất bại trong trò chơi ở vòng tiếp theo. • Với mọi x \(\geq\)2 và y \(\geq\)2, P(x, y) là xác suất trong số x hoán vị ngẫu nhiên gây ra bởi các tùy chọn x của Q\(\gamma\), chuỗi người dùng độc hại dài nhất ở đầu một số trong số đó là y −1, do đó Đối thủ có y lựa chọn cho Q\(\gamma\)+1 trong vòng tiếp theo. Đó là, P(x, y) = y−1 X tôi=0 (1 −h)ih !x − y−2 X tôi=0 (1 −h)ih !x = (1 −(1 −h)y)x −(1 −(1 −h)y−1)x. Lưu ý rằng trạng thái 0 là trạng thái hấp thụ duy nhất trong ma trận chuyển tiếp P và mọi trạng thái khác x có xác suất dương tiến tới 0. Chúng ta quan tâm đến giới hạn trên của số k của các vòng cần thiết để Chuỗi Markov hội tụ về 0 với xác suất áp đảo: nghĩa là không bất kể chuỗi bắt đầu ở trạng thái nào, với khả năng cao là Đối thủ sẽ thua trò chơi và không dự đoán được Qr−1 ở vòng r −k. Xét ma trận chuyển tiếp P (2) \(\triangleq\)P \(\cdot\) P sau hai vòng. Dễ dàng thấy rằng P(2)(0, 0) = 1 và P (2)(0, x) = 0 với mọi x \(\geq\)2. Với mọi x \(\geq\)2 và y \(\geq\)2, vì P(0, y) = 0, ta có P(2)(x, y) = P(x, 0)P(0, y) + X z \(\geq\)2 P(x, z)P(z, y) = X z \(\geq\)2 P(x, z)P(z, y).Giả sử ¯h \(\triangleq\)1 −h, ta có P(x, y) = (1 −¯hy)x −(1 −¯hy−1)x và P(2)(x, y) = X z \(\geq\)2 [(1 −¯hz)x −(1 −¯hz−1)x][(1 −¯hy)z −(1 −¯hy−1)z]. Dưới đây chúng tôi tính giới hạn của P (2)(x,y) P(x,y) khi h tiến tới 1 —tức là ¯h tiến tới 0. Lưu ý rằng giá trị cao nhất bậc của ¯h trong P(x, y) là ¯hy−1, với hệ số x. Theo đó, lim h \(\to\) 1 P (2)(x, y) P(x, y) = lim ¯h \(\to\) 0 P (2)(x, y) P(x, y) = lim ¯h \(\to\) 0 P (2)(x, y) x¯hy−1 + O(¯hy) = lim ¯h \(\to\) 0 P z \(\geq\)2[x¯hz−1 + O(¯hz)][z¯hy−1 + O(¯hy)] x¯hy−1 + O(¯hy) = lim ¯h \(\to\) 0 2x¯hy + O(¯hy+1) x¯hy−1 + O(¯hy) = lim ¯h \(\to\) 0 2x¯hy x¯hy−1 = lim ¯h \(\to\) 0 2¯h = 0. Khi h đủ gần 1,23 ta có P (2)(x, y) P(x, y) 11 2 với mọi x \(\geq\)2 và y \(\geq\)2. Bằng quy nạp, với mọi k > 2, P (k) \(\triangleq\)P k sao cho • P (k)(0, 0) = 1, P (k)(0, x) = 0 với mọi x \(\geq\)2, và • với mọi x \(\geq\)2 và y \(\geq\)2, P (k)(x, y) = P (k−1)(x, 0)P(0, y) + X z \(\geq\)2 P (k−1)(x, z)P(z, y) = X z \(\geq\)2 P (k−1)(x, z)P(z, y) \(\leq\) X z \(\geq\)2 P(x, z) 2k−2 \(\cdot\) P(z, y) = P(2)(x, y) 2k−2 \(\leq\)P(x, y) 2k−1 . Khi P(x, y) 1, sau 1−log2 F vòng, xác suất chuyển sang bất kỳ trạng thái y \(\geq\)2 nào là không đáng kể, bắt đầu với bất kỳ trạng thái x \(\geq\)2. Mặc dù có rất nhiều trạng thái như vậy, nhưng dễ dàng nhận thấy rằng lim y→+∞ P(x, y) P(x, y + 1) = lim y→+∞ (1 −¯hy)x −(1 −¯hy−1)x (1 −¯hy+1)x −(1 −¯hy)x = lim y→+∞ ¯hy−1 −¯hy ¯hy −¯hy+1 = 1 ¯h = 1 1 −h. Do đó, mỗi hàng x của ma trận chuyển tiếp P giảm dưới dạng một chuỗi hình học với tốc độ 1 1−h > 2 khi y đủ lớn và điều tương tự cũng đúng với P (k). Theo đó, khi k đủ lớn nhưng vẫn theo thứ tự log1/2 F, P y \(\geq\)2 P (k)(x, y) < F với mọi x \(\geq\)2. Nghĩa là, với xác suất áp đảo Đối thủ thua trò chơi và không dự đoán được Qr−1 ở hiệp r −k. Với h \(\in\)(2/3, 1], thêm phân tích phức tạp cho thấy tồn tại một hằng số C lớn hơn 1/2 một chút, sao cho đủ lấy k = O(logC F). Do đó Bổ đề 5.6 đúng. ■ Bổ đề 5.4. (trình bày lại) Cho các thuộc tính 1–3 cho mỗi vòng trước r, ph = h2(1 + h −h2) cho Lr, và người đứng đầu \(\ell\)r là người trung thực với xác suất ít nhất là ph. 23Ví dụ: h = 80% như được đề xuất bởi các lựa chọn tham số cụ thể.
Bằng chứng. Theo Bổ đề 5.6, Đối thủ không thể dự đoán Qr−1 ở vòng r −k ngoại trừ với xác suất không đáng kể. Lưu ý rằng điều này không có nghĩa là xác suất của một nhà lãnh đạo trung thực là h cho mỗi vòng. Thật vậy, với Qr−1, tùy thuộc vào số lượng người dùng độc hại lúc bắt đầu hoán vị ngẫu nhiên của PKr−k, Đối thủ có thể có nhiều lựa chọn cho Qr và do đó có thể làm tăng xác suất xuất hiện một người lãnh đạo ác ý trong vòng r + 1 — một lần nữa chúng ta đang cho anh ta một số ưu điểm không thực tế như trong Bổ đề 5.6, nhằm đơn giản hóa việc phân tích. Tuy nhiên, đối với mỗi Qr−1 mà Đối thủ không truy vấn H ở vòng r −k, đối với bất kỳ x \(\geq\)1 nào, với xác suất (1 −h)x−1h người dùng trung thực đầu tiên xuất hiện ở vị trí x trong kết quả hoán vị ngẫu nhiên của PKr−k. Khi x = 1 thì xác suất người dẫn đầu trung thực ở vòng r + 1 là quả thực là h; trong khi khi x = 2, Đối thủ có hai lựa chọn cho Qr và xác suất đạt được là h2. Chỉ bằng cách xem xét hai trường hợp này, chúng ta có xác suất để có một người dẫn đầu trung thực trong vòng r + 1 ít nhất là h \(\cdot\) h + (1 −h)h \(\cdot\) h2 = h2(1 + h −h2) như mong muốn. Lưu ý rằng xác suất trên chỉ xem xét tính ngẫu nhiên trong giao thức từ vòng r −k để làm tròn r. Khi tất cả tính ngẫu nhiên từ vòng 0 đến vòng r được xem xét, Qr−1 là Đối thủ thậm chí còn khó dự đoán hơn và xác suất có được người dẫn đầu trung thực ở vòng r + 1 là ít nhất h2(1 + h −h2). Thay r + 1 bằng r và dịch chuyển mọi thứ lùi lại một vòng, người dẫn đầu \(\ell\)r trung thực với xác suất ít nhất là h2(1 + h −h2), như mong muốn. Tương tự, trong mỗi bước Lật xu thật, “người dẫn đầu” của bước đó - tức là người xác minh. trong SV r,s có thông tin xác thực có giá trị hash nhỏ nhất, trung thực với xác suất ít nhất là h2(1 + h −h2). Do đó ph = h2(1 + h −h2) đối với Lr và Bổ đề 5.4 đúng. ■
Algorand ′
2 В этом разделе мы создадим версию Algorand ′, работающую при следующем предположении. Допущение о честном большинстве пользователей: более 2/3 пользователей в каждом PKr честны. В разделе 8 мы покажем, как заменить приведенное выше предположение желаемым «Честным большинством». Денежное предположение. 6.1 Дополнительные обозначения и параметры для Algorand ′ 2 Обозначения • \(\mu\) \(\in\)Z+: прагматическая верхняя граница числа шагов, которые с подавляющей вероятностью фактически будет принято за один раунд. (Как мы увидим, параметр \(\mu\) контролирует количество эфемерных ключи, которые пользователь готовит заранее для каждого раунда.) • Lr: случайная величина, представляющая количество испытаний Бернулли, необходимых для получения 1, когда каждое испытание равно 1 с вероятностью ph 2 . Lr будет использоваться для верхней границы времени, необходимого для генерации блок Бр. • tH: нижняя граница числа честных проверяющих на этапе s > 1 раунда r, такая, что при с подавляющей вероятностью (при n и p), в SV r,s имеется > tH честных проверяющих. Параметры • Отношения между различными параметрами. — Для каждого шага s > 1 раунда r n выбирается так, чтобы с подавляющей вероятностью
|HSV r,s| > ТХ и |HSV r,s| + 2|МСВ г,с| < 2tH. Обратите внимание, что из двух приведенных выше неравенств вместе следует |HSV r,s| > 2|MSV r,s|: т.е. составляет 2/3 честного большинства среди выбранных проверяющих. Чем ближе к 1 значение h, тем меньше должно быть n. В частности, мы используем (варианты из) границ Чернова, обеспечивающих выполнение желаемых условий с подавляющей вероятностью. • Пример выбора важных параметров. — F = 10−18. — n \(\approx\)4000, tH \(\approx\)0,69n, k = 70. 6.2 Реализация эфемерных ключей в Algorand ′ 2 Напомним, что верификатор i \(\in\)SV r,s подписывает свое сообщение mr,s цифровой подписью. я шага s в раунде r относительно эфемерный открытый ключ pkr,s i, используя эфемерный секретный ключ skr,s я что он тут же уничтожает после использования. Когда количество возможных шагов, которые может сделать раунд, ограничено заданным целое число \(\mu\), мы уже видели, как практически обрабатывать эфемерные ключи. Например, как мы объяснили в Algorand ′ 1 (где \(\mu\) = m + 3), чтобы обрабатывать все возможные эфемерные ключи, начиная с от раунда r' до раунда r' + 106, я генерирует пару (PMK, SMK), где публичный мастер PMK ключ схемы подписи на основе идентичности, а SMK — соответствующий секретный главный ключ. Пользователь я публикует PMK и использует SMK для генерации секретного ключа каждого возможного эфемерного открытого ключа (и после этого уничтожает SMK). Набор эфемерных открытых ключей i для соответствующих раундов составляет S = {i} \(\times\) {r′, . . . , r′ + 106} \(\times\) {1, . . . , \(\mu\)}. (Как уже говорилось, по мере приближения раунда r' + 106 «обновляю» его пару (ПМК, СМК).) На практике, если \(\mu\) достаточно велико, раунд Algorand ′ 2 не займет более \(\mu\) шагов. В Однако в принципе существует отдаленная вероятность того, что для некоторого раунда r число шагов фактически принятое значение будет превышать \(\mu\). Когда это произойдет, я не смогу подписать его сообщение, мистер С. я для любой шаг s > \(\mu\), поскольку он заранее подготовил только \(\mu\) секретных ключей для раунда r. Более того, он не смог подготовить и опубликовать новый запас эфемерных ключей, как обсуждалось ранее. На самом деле, чтобы сделать поэтому ему нужно будет вставить новый открытый главный ключ PMK' в новый блок. Но если вокруг r делать все больше и больше шагов, новые блоки не будут генерироваться. Однако решения существуют. Например, я могу использовать последний эфемерный ключ раунда r, pkr,\(\mu\) я , следующим образом. Он генерирует еще один запас пар ключей для раунда r — например, с помощью (1) создания еще одного пара мастер-ключей (ПМК, СМК); (2) использование этой пары для генерации еще, скажем, 106 эфемерных ключей, ск г, \(\mu\)+1 я , . . . , ск г, \(\mu\)+106 я , соответствующий шагам \(\mu\)+1, ..., \(\mu\)+106 раунда r; (3) используя skr,\(\mu\) я в цифровом формате подпишите PMK (и любое (r, \(\mu\))-сообщение, если i \(\in\)SV r,\(\mu\)) относительно pkr,\(\mu\) я ; и (4) стирание SMK и skr,\(\mu\) я . Должен ли я стать проверяющим на шаге \(\mu\) + s с s \(\in\) {1, . . . , 106}, то я подписываю его цифровую подпись (r, \(\mu\) + s)- сообщение г-н,\(\mu\)+s я относительно его нового ключа ПК r,\(\mu\)+s я = (i, r, \(\mu\) + s). Разумеется, для проверки этой подписи из i другие должны быть уверены, что этот открытый ключ соответствует новому открытому главному ключу PMK i. Таким образом, в дополнение к этой подписи i передает свою цифровую подпись ПМК относительно pkr,\(\mu\) я . Конечно, этот подход можно повторять столько раз, сколько необходимо, если раунд r продолжится. для все большего и большего количества шагов! Последний эфемерный секретный ключ используется для аутентификации нового главного публичного ключа. ключ и, таким образом, еще один запас эфемерных ключей для раунда r. И так далее.6.3 Фактический протокол Algorand ′ 2 Напомним еще раз, что на каждом шаге s раунда r проверяющий i \(\in\)SV r,s использует свою долгосрочную общедоступную тайну. пара ключей для получения его учетных данных, \(\sigma\)r,s я \(\triangleq\)SIGi(r, s, Qr−1), а также SIGi Qr−1 в случае s = 1. Верификатор i использует свою пару эфемерных ключей (pkr,s я, скр,с i ), чтобы подписать любое другое сообщение m, которое может быть требуется. Для простоты будем писать esigi(m), а не sigpkr,s. i (m), чтобы обозначить собственное эфемерное значение i подпись m на этом этапе и напишите ESIGi(m) вместо SIGpkr,s i (m) \(\triangleq\) (i, m, esigi(m)). Шаг 1. Блокируйте предложение Инструкции для каждого пользователя i \(\in\)PKr−k: Пользователь i начинает свой собственный шаг 1 раунда r, как только он CERT r−1, который позволяет i однозначно вычислить H(Br−1) и Qr−1. • Пользователь i использует Qr-1, чтобы проверить, принадлежит ли i SV r,1 или нет. Если i /\(\varepsilon\)SV r,1, он ничего не делает на шаге 1. • Если i \(\in\)SV r,1, то есть если я потенциальный лидер, то он делает следующее. (a) Если я увидел B0, . . . , сам Br−1 (любой Bj = Bj ǫ можно легко получить из его значения hash в CERT j и, таким образом, считается «просмотренным»), то он получает платежи раунда r, которые было передано ему на данный момент и вычисляет максимальный набор выплат PAY r я от них. (b) Если я не видел все B0, . . . , Br−1, то он устанавливает PAY r я = \(\emptyset\). (c) Далее я вычисляю его «блок кандидатов» Br i = (r, PAY r i , SIGi(Qr−1), H(Br−1)). (c) Наконец, я вычисляю сообщение mr,1 я = (Бр i , esigi(H(Br i ))), \(\sigma\)r,1 я), уничтожает его эфемерное секретный ключ скр,1 i , а затем распространяет два сообщения, mr,1 я и (SIGi(Qr−1), \(\sigma\)r,1 я), отдельно, но одновременно. aКогда i является лидером, SIGi(Qr-1) позволяет другим вычислить Qr = H(SIGi(Qr-1), r).
Выборочное распространение Чтобы сократить глобальное выполнение шага 1 и всего раунда, важно, чтобы (r, 1)- сообщения распространяются выборочно. То есть для каждого пользователя j в системе • Для первого (r, 1)-сообщения, которое он когда-либо получает и успешно проверяет, содержит ли оно блок или является просто учетными данными и подписью Qr-1, игрок j распространяет его как обычно. • Для всех остальных (r, 1)-сообщений, которые игрок j получает и успешно проверяет, он распространяет это только в том случае, если значение hash содержащихся в нем учетных данных является наименьшим среди значений hash учетных данных, содержащихся во всех (r, 1)-сообщениях, которые он получил и успешно проверил, далеко. • Однако, если j получает два разных сообщения вида mr,1 я от того же игрока я,б он отбрасывает второй независимо от значения hash учетных данных i. Обратите внимание, что при избирательном распространении полезно, чтобы каждый потенциальный лидер i распространял свой учетные данные \(\sigma\)r,1 я отдельно от мистера 1 i :c эти маленькие сообщения передаются быстрее, чем блоки, убедитесь, что своевременное распространение г-на,1 Здесь содержащиеся учетные данные имеют небольшие значения hash, а заставьте те, у кого большие значения hash, быстро исчезнуть. aТо есть все подписи верны и, если она имеет вид mr,1 i, и блок, и его hash действительны — хотя j не проверяет, является ли включенный набор выплат максимальным для i или нет. bЭто означает, что я злонамерен. cМы благодарим Георгиоса Влахоса за это предложение.Шаг 2: Первый шаг Протокола поэтапного консенсуса GC Инструкции для каждого пользователя i \(\in\)PKr−k: Пользователь i начинает свой собственный шаг 2 раунда r, как только он CERT r-1. • Пользователь i ожидает максимальное время t2 \(\triangleq\) \(\lambda\) + Λ. Во время ожидания я действую следующим образом. 1. Подождав время 2\(\lambda\), он находит пользователя \(\ell\) такого, что H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 к) для всех учетные данные \(\sigma\)r,1 дж которые являются частью успешно проверенных (r, 1)-сообщений, которые он получил пока.а 2. Если он имеет получил а блокировать Бр−1, который спички тот hash ценность Н(Бр-1) содержится в CERT r-1,b, и если он получил от \(\ell\) действительное сообщение mr,1 \(\ell\) = (Бр \(\ell\), esig\(\ell\)(H(Br \(\ell\))) \(\sigma\)r,1 \(\ell\)),c, то я перестаю ждать и устанавливаю v′ я \(\triangleq\)(H(Br \(\ell\)), \(\ell\)). 3. В противном случае, когда время t2 истечет, я устанавливаю v' я \(\triangleq\) \(\bot\). 4. Когда значение v' i был установлен, я вычисляет Qr-1 из CERT r-1 и проверяет, i \(\in\)SV r,2 или нет. 5. Если i \(\in\)SV r,2, i вычисляет сообщение mr,2 я \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 я ),д уничтожает его эфемерное секретный ключ скр,2 i , а затем распространяет mr,2 я. В противном случае я останавливаюсь, не распространяя что угодно. aПо сути, пользователь i в частном порядке решает, что лидером раунда r является пользователь \(\ell\). bКонечно, если CERT r−1 указывает, что Br−1 = Br−1 ψ , то я уже «получил» Br−1 в тот момент, когда он CERT r-1. cОпять же, подписи игрока \(\ell\) и hash успешно проверены, и PAY r \(\ell\)в Бр \(\ell\)действителен для round r — хотя я не проверяю, PAY ли r \(\ell\)максимальен для \(\ell\)или нет. Если Бр \(\ell\)содержит пустой набор выплат, тогда на самом деле мне нет необходимости видеть Br−1, прежде чем проверять, является ли Br \(\ell\)действителен или нет. d Сообщение мистера, 2 я сигнализирует о том, что игрок i рассматривает первый компонент v' i быть hash следующего блока, или считает следующий блок пустым.
Шаг 3: Второй шаг GC Инструкции для каждого пользователя i \(\in\)PKr−k: Пользователь i начинает свой собственный Шаг 3 раунда r, как только он CERT r-1. • Пользователь i ожидает максимальное время t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ. Во время ожидания я действую как следует. 1. Если существует значение v такое, что он получил как минимум tH действительных сообщений mr,2 дж из вид (ESIGj(v), \(\sigma\)r,2 j ), без всякого противоречия,a тогда он перестает ждать и устанавливает v' = v. 2. В противном случае, когда время t3 истечет, он установит v′ = \(\bot\). 3. Когда значение v' установлено, я вычисляет Qr-1 из CERT r-1 и проверяет, i \(\in\)SV r,3 или нет. 4. Если i \(\in\)SV r,3, то я вычисляет сообщение mr,3 я \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 я), уничтожает его эфемерный секретный ключ skr,3 i , а затем распространяет mr,3 я. В противном случае я остановлюсь без пропагандируя что-либо. aТо есть он не получил двух действительных сообщений, содержащих ESIGj(v) и другой ESIGj(ˆv) соответственно, от игрока j. Здесь и далее, за исключением Конечных условий, определенных позже, всякий раз, когда честный игрок хочет сообщений заданной формы, сообщения, противоречащие друг другу, никогда не учитываются и не считаются действительными.
Шаг 4: Выходные данные GC и первый шаг BBA⋆ Инструкции для каждого пользователя i \(\in\)PKr−k: Пользователь i начинает свой собственный Шаг 4 раунда r, как только он завершает свой Шаг 3. • Пользователь i ожидает максимальное время 2\(\lambda\).a. Во время ожидания я действует следующим образом. 1. Он вычисляет vi и gi, выходные данные GC, следующим образом. (a) Если существует значение v′ ̸= \(\bot\) такое, что он получил как минимум tH действительных сообщений мистер, 3 дж = (ESIGj(v′), \(\sigma\)r,3 j ), затем он перестает ждать и устанавливает vi \(\triangleq\)v′ и gi \(\triangleq\)2. (b) Если он получил хотя бы tH действительных сообщений mr,3 дж = (ESIGj(\(\bot\)), \(\sigma\)r,3 j ), затем он останавливается ждет и устанавливает vi \(\triangleq\) \(\bot\) и gi \(\triangleq\)0.b (c) В противном случае, когда время 2\(\lambda\) истечет, если существует значение v′ ̸= \(\bot\) такое, что он имеет получил не менее ⌈tH 2 ⌉действительные сообщения mr,j дж = (ESIGj(v′), \(\sigma\)r,3 j ), то он устанавливает vi \(\triangleq\)v′ и gi \(\triangleq\)1.c (d) В противном случае, когда время 2\(\lambda\) истечет, он установит vi \(\triangleq\) \(\bot\) и gi \(\triangleq\)0. 2. Когда значения vi и gi установлены, я вычисляет bi, вход BBA⋆, следующим образом: bi \(\triangleq\)0, если gi = 2, и bi \(\triangleq\)1 в противном случае. 3. i вычисляет Qr−1 из CERT r−1 и проверяет, принадлежит ли i SV r,4 или нет. 4. Если i \(\in\)SV r,4, он вычисляет сообщение mr,4 я \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 я), уничтожает его эфемерный секретный ключ skr,4 i и распространяет mr,4 я. В противном случае я останавливаюсь, не распространяя что угодно. aТаким образом, максимальное общее количество времени с момента начала первого шага раунда r может составлять t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ. bОтсутствие шага (b) в протоколе не влияет на его правильность. Однако наличие этапа (b) позволяет шагу 4 завершиться менее чем за 2\(\lambda\), если достаточное количество верификаторов шага 3 имеют «подпись \(\bot\)». cМожно доказать, что v′ в этом случае, если он существует, должен быть единственным.Шаг s, 5 \(\leq\)s \(\leq\)m + 2, s−2 ≡0 mod 3: шаг BBA⋆ с фиксированной монетой до 0 Инструкции для каждого пользователя i \(\in\)PKr−k: Пользователь i начинает свои собственные шаги раунда r, как только он завершает свой шаг s−1. • Пользователь i ожидает максимальное время 2\(\lambda\).a. Во время ожидания я действует следующим образом. – Конечное условие 0: если в любой точке существует строка v ̸= \(\bot\) и шаг s′ такие, что (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3 — то есть шаг s′ является шагом с фиксированной монетой до 0, (b) я получил как минимум tH действительных сообщений mr,s′−1 дж = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 дж ),б и (c) я получил действительное сообщение (SIGj(Qr-1), \(\sigma\)r,1 j), где j является вторым компонент v, затем я перестаю ждать и заканчиваю выполнение шага s (и фактически раунда r) сразу, ничего не выдавая в качестве (r,s)-верификатора; устанавливает H(Br) в качестве первого компонент v; и устанавливает свой собственный CERT r как набор сообщений mr,s′−1 дж шага (б) вместе с (SIGj(Qr−1), \(\sigma\)r,1 j ).c – Конечное условие 1: Если в какой-либо точке существует шаг s′ такой, что (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3 — то есть шаг s′ является шагом с фиксированной монетой-1, и (b’) я получил как минимум tH действительных сообщений mr,s′−1 дж = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 дж ),д затем я перестаю ждать и заканчиваю выполнение шага s (и фактически раунда r) правильно прочь, не распространяя ничего в качестве (r, s)-верификатора; устанавливает Br = Br й; и устанавливает свой собственный CERT r — набор сообщений mr,s′−1 дж подэтапа (b’). – Если в любой точка он имеет получил в минимум тХ действительный мистер, с-1 дж х из тот форма (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 дж ), то он перестает ждать и устанавливает bi \(\triangleq\)1. – Если в любой точка он имеет получил в минимум тХ действительный мистер, с-1 дж х из тот форма (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 дж ), но они не соглашаются на одно и то же v, тогда он останавливается ждет и устанавливает bi \(\triangleq\)0. – В противном случае, когда время 2\(\lambda\) истечет, я устанавливаю bi \(\triangleq\)0. – Когда значение bi установлено, i вычисляет Qr-1 из CERT r-1 и проверяет, i \(\in\)SV r,s. – Если i \(\in\)SV r,s, i вычисляет сообщение mr,s я \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i) с vi, являющимся значение, которое он вычислил на шаге 4, уничтожает его эфемерный секретный ключ skr,s я, а потом пропагандирует мистера, с я. В противном случае я останавливаюсь, ничего не распространяя. aТаким образом, максимальное общее количество времени с момента начала первого шага раунда r может составлять ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s−3)\(\lambda\) + Λ. bТакое сообщение от игрока j засчитывается, даже если игрок i также получил сообщение от j, подписавшегося за 1. Аналогично для конечного условия 1. Как показано в анализе, это сделано для того, чтобы все честные пользователи знали CERT r в пределах времени \(\lambda\) друг от друга. cПользователь i теперь знает H(Br) и результаты своего раунда r. Ему просто нужно дождаться, пока собственно блок Br не будет передается ему, что может занять некоторое дополнительное время. Он по-прежнему помогает распространять сообщения как обычный пользователь. но не инициирует никакого распространения в качестве (r, s)-верификатора. В частности, он помогал распространять все сообщения в его CERT r, которого достаточно для нашего протокола. Обратите внимание, что ему также следует установить bi \(\triangleq\)0 для бинарного протокола BA, но bi в этом случае в любом случае не нужен. Аналогичные вещи для всех будущих инструкций. dВ этом случае не имеет значения, кто такие виджеи. 65Шаг s, 6 \(\leq\)s \(\leq\)m + 2, s−2 ≡1 mod 3: шаг BBA⋆ с фиксированной монетой-1 Инструкции для каждого пользователя i \(\in\)PKr−k: Пользователь i начинает свои собственные шаги раунда r, как только он завершает свой шаг s−1. • Пользователь i ожидает максимальное время 2\(\lambda\). Во время ожидания я действую следующим образом. – Конечное условие 0: те же инструкции, что и на этапе Coin-Fixed-To-0. – Конечное условие 1: те же инструкции, что и на этапе Coin-Fixed-To-0. – Если в любой точка он имеет получил в минимум тХ действительный мистер, с-1 дж х из тот форма (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 дж ), затем он перестает ждать и устанавливает bi \(\triangleq\)0.a – В противном случае, когда время 2\(\lambda\) истечет, я устанавливаю bi \(\triangleq\)1. – Когда значение bi установлено, i вычисляет Qr-1 из CERT r-1 и проверяет, i \(\in\)SV r,s. – Если i \(\in\)SV r,s, i вычисляет сообщение mr,s я \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i) с vi, являющимся значение, которое он вычислил на шаге 4, уничтожает его эфемерный секретный ключ skr,s я, а потом пропагандирует мистера, с я. В противном случае я останавливаюсь, ничего не распространяя. aОбратите внимание, что получение tH действительных (r, s −1)-сообщений, подписанных за 1, будет означать конечное условие 1. Шаг s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: Шаг BBA⋆ с подбрасыванием монеты Инструкции для каждого пользователя i \(\in\)PKr−k: Пользователь i начинает свои собственные шаги раунда r, как только он завершает свой шаг s−1. • Пользователь i ожидает максимальное время 2\(\lambda\). Во время ожидания я действую следующим образом. – Конечное условие 0: те же инструкции, что и на этапе Coin-Fixed-To-0. – Конечное условие 1: те же инструкции, что и на этапе Coin-Fixed-To-0. – Если в любой точка он имеет получил в минимум тХ действительный мистер, с-1 дж х из тот форма (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 дж ), то он перестает ждать и устанавливает bi \(\triangleq\)0. – Если в любой точка он имеет получил в минимум тХ действительный мистер, с-1 дж х из тот форма (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 дж ), то он перестает ждать и устанавливает bi \(\triangleq\)1. – В противном случае, когда время 2\(\lambda\) истечет, позволяя SV r,s−1 я — множество (r, s−1)-верификаторов из которому он получил действительное сообщение mr,s−1 дж , я устанавливаю bi \(\triangleq\)lsb(minj\(\varepsilon\)SV r,s−1 я H(\(\sigma\)r,s−1 дж )). – Когда значение bi установлено, i вычисляет Qr-1 из CERT r-1 и проверяет, i \(\in\)SV r,s. – Если i \(\in\)SV r,s, i вычисляет сообщение mr,s я \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i) с vi, являющимся значение, которое он вычислил на шаге 4, уничтожает его эфемерный секретный ключ skr,s я, а потом пропагандирует мистера, с я. В противном случае я останавливаюсь, ничего не распространяя. Замечание. В принципе, как указано в подразделе 6.2, протокол может занимать сколь угодно много шаги в каком-то раунде. Если это произойдет, как обсуждалось, пользователь i \(\in\)SV r,s с s > \(\mu\) исчерпал
его запас заранее сгенерированных эфемерных ключей и должен подтвердить подлинность своего (r, s)-сообщения mr,s я по «каскад» эфемерных ключей. Таким образом, мое сообщение становится немного длиннее, и его передача длиннее. сообщения займут немного больше времени. Соответственно, после стольких шагов данного раунда значение параметр \(\lambda\) автоматически немного увеличится. (Но он возвращается к исходному \(\lambda\) при каждом новом блок создается и начинается новый раунд.) Реконструкция блока Round-r неверификаторами Инструкции для каждого пользователя i в системе: Пользователь i начинает свой собственный раунд r, как только он CERT r-1. • я следую инструкциям каждого шага протокола, участвует в распространении всех сообщений, но не инициирует никакого распространения на шаге, если он не является на нем проверяющим. • я заканчиваю свой раунд r, введя либо Конечное условие 0, либо Конечное условие 1 в каком-либо шаг, с соответствующим CERT r. • С этого момента он начинает свой раунд r + 1, ожидая получения фактического блока Br (если только он уже получил его), чей hash H(Br) был зафиксирован CERT r. Опять же, если CERT r указывает, что Br = Br ϫ, я узнает Бр в тот момент, когда у него есть CERT r. 6.4 Анализ Algorand ′ 2 Анализ Algorand ′ 2 легко получить из Algorand ′ 1. По сути, в Algorand ′ 2, с подавляющая вероятность, (а) все честные пользователи согласны на один и тот же блок Br; лидер нового блок честен с вероятностью не менее ph = h2(1 + h −h2).
Algorand ′
2 Trong phần này, chúng tôi xây dựng một phiên bản Algorand ′ hoạt động theo giả định sau. Giả định của đa số người dùng trung thực: Hơn 2/3 số người dùng trong mỗi PKr là trung thực. Trong Phần 8, chúng tôi trình bày cách thay thế giả định trên bằng Đa số trung thực mong muốn của Giả định về tiền. 6.1 Ký hiệu và thông số bổ sung cho Algorand ′ 2 Ký hiệu • \(\mu\) \(\in\)Z+: giới hạn trên thực dụng của số bước mà với xác suất áp đảo, thực sự sẽ được thực hiện trong một vòng. (Như chúng ta sẽ thấy, tham số \(\mu\) kiểm soát số lượng tạm thời phím mà người dùng chuẩn bị trước cho mỗi vòng.) • Lr: một biến ngẫu nhiên biểu thị số phép thử Bernoulli cần để thấy số 1, khi mỗi phép thử thử nghiệm là 1 với xác suất ph 2 . Lr sẽ được sử dụng để giới hạn trên thời gian cần thiết để tạo chặn Br. • tH: giới hạn dưới của số lượng người xác minh trung thực ở bước s > 1 của vòng r, sao cho với xác suất áp đảo (cho n và p), có > tH người xác minh trung thực trong SV r,s. Thông số • Mối quan hệ giữa các thông số khác nhau. — Với mỗi bước s > 1 của vòng r, n được chọn sao cho với xác suất áp đảo,
|HSV r,s| > th và |HSV r,s| + 2|MSV r,s| < 2tH. Lưu ý rằng hai bất đẳng thức trên cùng suy ra |HSV r,s| > 2|MSV r,s|: tức là có là 2/3 đa số trung thực trong số những người xác minh được chọn. Giá trị của h càng gần 1 thì n càng nhỏ. Đặc biệt, chúng tôi sử dụng (các biến thể of) Giới hạn Chernoff để đảm bảo các điều kiện mong muốn được giữ vững với xác suất áp đảo. • Ví dụ lựa chọn các thông số quan trọng. — F = 10−18. — n \(\approx\)4000, tH \(\approx\)0,69n, k = 70. 6.2 Triển khai Khóa tạm thời trong Algorand ′ 2 Hãy nhớ lại rằng người xác minh i \(\in\)SV r,s ký điện tử vào tin nhắn của mình mr,s tôi của bước s trong vòng r, liên quan đến một khóa công khai phù du pkr,s i , sử dụng khóa tiết ra tạm thời skr,s tôi rằng anh ta nhanh chóng phá hủy sau khi sử dụng. Khi số bước có thể thực hiện của một vòng bị giới hạn bởi một giới hạn nhất định số nguyên \(\mu\), chúng ta đã biết cách xử lý các khóa tạm thời trên thực tế. Ví dụ, như chúng tôi đã giải thích trong Algorand ′ 1 (trong đó \(\mu\) = m + 3), để xử lý tất cả các khóa phù du có thể có của anh ta, từ một vòng r′ đến một vòng r′ + 106, tôi tạo ra một cặp (PMK, SMK), trong đó PMK public master khóa của sơ đồ chữ ký dựa trên nhận dạng và SMK khóa chính bí mật tương ứng của nó. Người dùng tôi công khai PMK và sử dụng SMK để tạo khóa bí mật của từng khóa chung có thể tạm thời (và phá hủy SMK sau khi làm như vậy). Tập hợp các khóa công khai tạm thời của i cho các khóa có liên quan vòng là S = {i} \(\times\) {r′, . . . , r′ + 106} \(\times\) {1, . . . , \(\mu\)}. (Như đã thảo luận, khi vòng r′ + 106 đến gần, tôi “làm mới” cặp của anh ấy (PMK, SMK).) Trong thực tế, nếu \(\mu\) đủ lớn, một vòng Algorand ′ 2 sẽ không mất nhiều hơn \(\mu\) bước. trong Tuy nhiên, về nguyên tắc, có một khả năng rất nhỏ là, đối với một số vòng r, số bước thực tế lấy sẽ vượt quá \(\mu\). Khi điều này xảy ra, tôi sẽ không thể ký vào tin nhắn của anh ấy, ông ạ. tôi cho bất kỳ bước nào s > \(\mu\), bởi vì anh ta chỉ chuẩn bị trước \(\mu\) khóa bí mật cho vòng r. Hơn nữa, anh ấy không thể chuẩn bị và công khai một kho khóa tạm thời mới, như đã thảo luận trước đó. Trên thực tế, để làm vì vậy, anh ta sẽ cần chèn một khóa chính công khai PMK′ mới vào một khối mới. Nhưng, nên làm tròn r thực hiện ngày càng nhiều bước, sẽ không có khối mới nào được tạo ra. Tuy nhiên, các giải pháp vẫn tồn tại. Ví dụ: tôi có thể sử dụng khóa tạm thời cuối cùng của vòng r, pkr,\(\mu\) tôi , như sau. Anh ta tạo ra một kho cặp khóa khác cho vòng r — ví dụ: bằng cách (1) tạo ra một kho khóa khác cặp khóa chính (PMK, SMK); (2) sử dụng cặp này để tạo ra một khóa khác, chẳng hạn như 106 khóa tạm thời, sk r,\(\mu\)+1 tôi , . . . , sk r,\(\mu\)+106 tôi , tương ứng với các bước \(\mu\)+1, ..., \(\mu\)+106 của vòng r; (3) sử dụng skr,\(\mu\) tôi kỹ thuật số ký PMK (và bất kỳ thông điệp (r, \(\mu\)) nào nếu i \(\in\)SV r,\(\mu\)), liên quan đến pkr,\(\mu\) tôi ; và (4) xóa SMK và skr,\(\mu\) tôi . Tôi có nên trở thành người xác minh ở bước \(\mu\) + s với s \(\in\){1, . . . , 106}, sau đó tôi ký điện tử (r, \(\mu\) + s)- của anh ấy nhắn tin cho ông,\(\mu\)+s tôi liên quan đến pk khóa mới của anh ấy r,\(\mu\)+s tôi = (i, r, \(\mu\) + s). Tất nhiên, để xác minh chữ ký này của i, những người khác cần chắc chắn rằng khóa công khai này tương ứng với khóa công khai mới PMK của tôi. Vì vậy, ngoài chữ ký này, tôi còn truyền chữ ký số PMK của anh ấy tương ứng với pkr,\(\mu\) tôi . Tất nhiên, cách tiếp cận này có thể được lặp lại nhiều lần nếu cần thiết, nếu vòng r tiếp tục để biết thêm nhiều bước hơn nữa! Khóa bí mật tạm thời cuối cùng được sử dụng để xác thực một khóa công khai chính mới khóa, và do đó, một kho khóa tạm thời khác cho vòng r. Và vân vân.6.3 Giao thức thực tế Algorand ′ 2 Hãy nhớ lại rằng, trong mỗi bước s của vòng r, người xác minh i \(\in\)SV r,s sử dụng bí mật công cộng dài hạn của mình cặp khóa để tạo thông tin xác thực của anh ấy, \(\sigma\)r,s tôi \(\triangleq\)SIGi(r, s, Qr−1), cũng như SIGi Qr−1 trong trường hợp s = 1. Người xác minh tôi sử dụng cặp khóa phù du của anh ấy, (pkr,s tôi, skr,s i ), để ký bất kỳ tin nhắn nào khác m có thể được yêu cầu. Để đơn giản, chúng ta viết esigi(m), thay vì sigpkr,s i (m), để biểu thị sự phù du đúng nghĩa của i chữ ký của m ở bước này và viết ESIGi(m) thay vì SIGpkr,s tôi (m) \(\triangleq\)(i, m, esigi(m)). Bước 1: Chặn đề xuất Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước 1 của vòng r ngay khi anh ta có CERT r−1, cho phép tôi tính toán rõ ràng H(Br−1) và Qr−1. • Người dùng i sử dụng Qr−1 để kiểm tra xem i \(\in\)SV r,1 hay không. Nếu i /\(\in\)SV r,1, anh ta không làm gì ở Bước 1. • Nếu tôi \(\in\)SV r,1, tức là nếu tôi là một nhà lãnh đạo tiềm năng thì anh ta sẽ làm như sau. (a) Nếu tôi đã nhìn thấy B0, . . . , chính Br−1 (bất kỳ Bj = Bj ǫ có thể dễ dàng suy ra từ giá trị hash của nó trong CERT j và do đó được giả định là “đã nhìn thấy”), sau đó anh ta sẽ thu các khoản thanh toán vòng r có đã được truyền tới anh ta cho đến nay và tính toán mức lương tối đa PAY r tôi từ họ. (b) Nếu tôi chưa thấy hết B0, . . . , Br−1 chưa, sau đó anh ta đặt PAY r tôi = \(\emptyset\). (c) Tiếp theo, tôi tính “khối ứng viên” Br của anh ấy i = (r, TRẢ r i , SIGi(Qr−1), H(Br−1)). (c) Cuối cùng, tôi tính toán thông điệp mr,1 tôi = (Anh i , esigi(H(Br i )), \(\sigma\)r,1 i ), phá hủy sự phù du của anh ấy khóa bí mật skr,1 i , sau đó truyền hai tin nhắn, mr,1 tôi và (SIGi(Qr−1), \(\sigma\)r,1 tôi ), riêng biệt nhưng đồng thời.a aKhi tôi là người dẫn đầu, SIGi(Qr−1) cho phép người khác tính Qr = H(SIGi(Qr−1), r).
Nhân giống chọn lọc Để rút ngắn thời gian thực hiện chung của Bước 1 và toàn bộ vòng, điều quan trọng là (r, 1)- thông điệp được truyền bá có chọn lọc. Nghĩa là, với mỗi người dùng j trong hệ thống, • Đối với tin nhắn (r, 1) đầu tiên mà anh ta nhận được và xác minh thành công, liệu nó có chứa một khối hoặc chỉ là thông tin xác thực và chữ ký của Qr−1, người chơi j sẽ truyền nó như bình thường. • Đối với tất cả các tin nhắn (r, 1) khác mà người chơi j nhận được và xác minh thành công, anh ta sẽ truyền chỉ khi giá trị hash của thông tin xác thực chứa trong đó là giá trị nhỏ nhất trong số các giá trị hash thông tin xác thực có trong tất cả các tin nhắn (r, 1) mà anh ấy đã nhận được và đã xác minh thành công xa. • Tuy nhiên, nếu j nhận được hai tin nhắn khác nhau có dạng mr,1 tôi từ cùng một người chơi i,b anh ấy loại bỏ cái thứ hai bất kể giá trị hash của thông tin xác thực của tôi là bao nhiêu. Lưu ý rằng, dưới sự lan truyền có chọn lọc, điều hữu ích là mỗi nhà lãnh đạo tiềm năng tôi sẽ tuyên truyền thông tin xác thực \(\sigma\)r,1 tôi tách biệt với ông, 1 i :c những tin nhắn nhỏ đó di chuyển nhanh hơn các khối, đảm bảo tuyên truyền kịp thời của mr,1 i là nơi thông tin xác thực được chứa có giá trị hash nhỏ, trong khi làm cho những giá trị có giá trị hash lớn biến mất nhanh chóng. aNghĩa là tất cả các chữ ký đều đúng và nếu nó có dạng ông1 i , cả khối và hash của nó đều hợp lệ —mặc dù j không kiểm tra xem tập thanh toán đi kèm có tối đa cho i hay không. bĐiều đó có nghĩa là tôi có ác ý. cChúng tôi cảm ơn Georgios Vlachos vì đã gợi ý điều này.Bước 2: Bước đầu tiên của Giao thức đồng thuận được phân loại GC Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước 2 của vòng r ngay khi anh ta có CERT r-1. • Người dùng i đợi trong khoảng thời gian tối đa t2 \(\triangleq\) \(\lambda\) + Λ. Trong khi chờ đợi tôi làm như sau. 1. Sau khi đợi thời gian 2\(\lambda\), anh ta tìm được người dùng \(\ell\)sao cho H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j ) với mọi thông tin xác thực \(\sigma\)r,1 j đó là một phần của các tin nhắn được xác minh thành công (r, 1) mà anh ấy đã nhận được cho đến nay.a 2. Nếu anh ấy có đã nhận được một khối Br−1, cái nào trận đấu cái hash giá trị H(Br−1) chứa trong CERT r−1,b và nếu anh ta đã nhận được từ \(\ell\)một tin nhắn hợp lệ mr,1 \(\ell\) = (Anh \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),c thì tôi dừng chờ và đặt v′ tôi \(\triangleq\)(H(Br \(\ell\)), \(\ell\)). 3. Ngược lại, khi hết thời gian t2, tôi đặt v′ tôi \(\triangleq\) \(\bot\). 4. Khi giá trị của v′ tôi đã được thiết lập, tôi tính Qr−1 từ CERT r−1 và kiểm tra xem i \(\in\)SV r,2 hoặc không. 5. Nếu tôi \(\in\)SV r,2 thì tôi tính thông điệp mr,2 tôi \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 i ),d phá hủy phù du của mình khóa bí mật skr,2 i , và sau đó truyền bá mr,2 tôi . Nếu không, tôi dừng lại mà không lan truyền bất cứ điều gì. aVề cơ bản, người dùng i quyết định riêng rằng người dẫn đầu vòng r là người dùng \(\ell\). b Tất nhiên, nếu CERT r−1 chỉ ra rằng Br−1 = Br−1 ừ , thì tôi đã “nhận được” Br−1 ngay khi anh ấy có CERT r-1. cMột lần nữa, chữ ký của người chơi \(\ell\) và hash đều được xác minh thành công và TRẢ TIỀN r \(\ell\)ở Br \(\ell\)là một khoản thanh toán hợp lệ cho làm tròn r —mặc dù tôi không kiểm tra xem TRẢ TIỀN r \(\ell\)là tối đa cho \(\ell\)hoặc không. Nếu anh \(\ell\)chứa một tập thanh toán trống thì thực ra tôi không cần phải xem Br−1 trước khi xác minh xem Br \(\ell\)có hợp lệ hay không. dLời nhắn của ông,2 tôi tín hiệu mà người chơi i coi là thành phần đầu tiên của v′ tôi là hash của khối tiếp theo, hoặc coi khối tiếp theo là trống.
Bước 3: Bước thứ hai của GC Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước 3 của vòng r ngay khi anh ta có CERT r-1. • Người dùng i đợi trong khoảng thời gian tối đa t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ. Trong khi chờ đợi, tôi đóng vai theo sau. 1. Nếu tồn tại một giá trị v sao cho anh ta đã nhận được ít nhất tH tin nhắn hợp lệ mr,2 j của dạng (ESIGj(v), \(\sigma\)r,2 j ), không có bất kỳ mâu thuẫn nào, a sau đó anh ta ngừng chờ đợi và đặt v′ = v. 2. Ngược lại, khi hết thời gian t3, anh ta đặt v′ = \(\bot\). 3. Khi giá trị của v′ đã được đặt, tôi tính Qr−1 từ CERT r−1 và kiểm tra xem i \(\in\)SV r,3 hoặc không. 4. Nếu tôi \(\in\)SV r,3 thì tôi tính thông điệp mr,3 tôi \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 i ), phá hủy của anh ấy khóa bí mật phù du skr,3 i , rồi tuyên truyền mr,3 tôi . Nếu không, tôi dừng lại mà không tuyên truyền bất cứ điều gì. a Tức là anh ta chưa nhận được hai tin nhắn hợp lệ lần lượt chứa ESIGj(v) và ESIGj(ˆv) khác nhau, từ một người chơi j. Từ đây trở đi, ngoại trừ các Điều kiện kết thúc được xác định sau, bất cứ khi nào một người chơi trung thực muốn các tin nhắn có hình thức nhất định, các tin nhắn mâu thuẫn với nhau không bao giờ được tính hoặc coi là hợp lệ.
Bước 4: Đầu ra của GC và Bước đầu tiên của BBA⋆ Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước 4 của vòng r ngay khi anh ta hoàn thành Bước 3 của riêng mình. • Người dùng i đợi một khoảng thời gian tối đa 2\(\lambda\).a Trong khi chờ đợi, i thực hiện như sau. 1. Anh ta tính vi và gi, đầu ra của GC, như sau. (a) Nếu tồn tại một giá trị v′ ̸= \(\bot\) sao cho anh ta đã nhận được ít nhất tH tin nhắn hợp lệ ông, 3 j = (ESIGj(v′), \(\sigma\)r,3 j ), sau đó anh ta ngừng chờ đợi và đặt vi \(\triangleq\)v′ và gi \(\triangleq\)2. (b) Nếu anh ta đã nhận được ít nhất th tin nhắn hợp lệ mr,3 j = (ESIGj(\(\bot\)), \(\sigma\)r,3 j ), sau đó anh ấy dừng lại chờ đợi và đặt vi \(\triangleq\) \(\bot\)và gi \(\triangleq\)0.b (c) Ngược lại, khi hết thời gian 2\(\lambda\), nếu tồn tại một giá trị v′ ̸= \(\bot\) sao cho anh ta có nhận được ít nhất ⌈tH 2 ⌉tin nhắn hợp lệ mr,j j = (ESIGj(v′), \(\sigma\)r,3 j ), thì anh ta đặt vi \(\triangleq\)v′ và gi \(\triangleq\)1.c (d) Ngược lại, khi hết thời gian 2\(\lambda\), anh ta đặt vi \(\triangleq\) \(\bot\) và gi \(\triangleq\)0. 2. Khi các giá trị vi và gi đã được đặt, i tính bi, đầu vào của BBA⋆, như sau: bi \(\triangleq\)0 nếu gi = 2, và bi \(\triangleq\)1 nếu ngược lại. 3. i tính Qr−1 từ CERT r−1 và kiểm tra xem i \(\in\)SV r,4 hay không. 4. Nếu i \(\in\)SV r,4, anh ta tính thông điệp mr,4 tôi \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), phá hủy của anh ấy khóa bí mật phù du skr,4 i , và tuyên truyền ông,4 tôi . Nếu không, tôi dừng lại mà không lan truyền bất cứ điều gì. aDo đó, tổng thời gian tối đa kể từ khi tôi bắt đầu Bước 1 của vòng r có thể là t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ. bCho dù Bước (b) có trong quy trình hay không không ảnh hưởng đến tính chính xác của nó. Tuy nhiên, sự hiện diện của Bước (b) cho phép Bước 4 kết thúc trong thời gian ít hơn 2\(\lambda\) nếu có đủ nhiều người xác minh Bước 3 đã “ký \(\bot\)”. cCó thể chứng minh rằng v’ trong trường hợp này, nếu tồn tại, phải là duy nhất.Bước s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: Bước cố định bằng tiền xu của BBA⋆ Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu các Bước của riêng mình trong vòng r ngay khi anh ta hoàn thành Bước s −1 của riêng mình. • Người dùng i đợi một khoảng thời gian tối đa 2\(\lambda\).a Trong khi chờ đợi, i thực hiện như sau. – Điều kiện kết thúc 0: Nếu tại một điểm bất kỳ tồn tại chuỗi v ̸= \(\bot\) và bước s′ sao cho (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3 —nghĩa là Bước s′ là bước Coin-Fixed-To-0, (b) tôi đã nhận được ít nhất tH tin nhắn hợp lệ mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),b và (c) tôi đã nhận được một tin nhắn hợp lệ (SIGj(Qr−1), \(\sigma\)r,1 j ) với j là số thứ hai thành phần của v, sau đó, tôi ngừng chờ đợi và kết thúc việc thực hiện Bước s của chính anh ấy (và trên thực tế là vòng r) ngay lập tức mà không cần truyền bá bất cứ thứ gì dưới dạng trình xác minh (r, s); đặt H(Br) là đầu tiên thành phần của v; và đặt CERT r của riêng mình thành tập hợp các tin nhắn mr,s′−1 j của bước (b) cùng với (SIGj(Qr−1), \(\sigma\)r,1 j ).c – Điều kiện kết thúc 1: Nếu tại bất kỳ điểm nào tồn tại bước s′ sao cho (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3 —nghĩa là Bước s′ là bước Cố định thành 1 xu và (b’) tôi đã nhận được ít nhất tH tin nhắn hợp lệ mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),d sau đó, tôi ngừng chờ đợi và kết thúc việc thực hiện Bước s của chính anh ấy (và trên thực tế là vòng r) phải không đi mà không truyền bá bất cứ thứ gì dưới dạng trình xác minh (r, s); đặt Br = Br Ă ; và tự đặt ra CERT r là tập hợp các thông điệp mr,s′−1 j của bước phụ (b'). – Nếu tại bất kỳ điểm anh ấy có đã nhận được tại ít nhất th hợp lệ ông,s−1 j ' là của cái hình thức (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), sau đó anh ta ngừng chờ đợi và đặt bi \(\triangleq\)1. – Nếu tại bất kỳ điểm anh ấy có đã nhận được tại ít nhất th hợp lệ ông,s−1 j ' là của cái hình thức (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), nhưng họ không đồng ý về cùng v thì anh ta dừng lại chờ đợi và đặt bi \(\triangleq\)0. – Ngược lại, khi hết thời gian 2\(\lambda\), tôi đặt bi \(\triangleq\)0. – Khi giá trị bi đã được đặt, tôi tính Qr−1 từ CERT r−1 và kiểm tra xem i \(\in\)SV r,s. – Nếu i \(\in\)SV r,s thì tôi tính thông điệp mr,s tôi \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) với vi là giá trị mà anh ấy đã tính toán ở Bước 4, phá hủy khóa bí mật phù du của anh ấy skr,s tôi, và sau đó tuyên truyền ông tôi . Nếu không, tôi dừng lại mà không truyền bá bất cứ điều gì. aDo đó, tổng thời gian tối đa kể từ khi tôi bắt đầu Bước 1 của vòng r có thể là ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3)\(\lambda\) + Λ. bTin nhắn như vậy từ người chơi j được tính ngay cả khi người chơi i cũng đã nhận được tin nhắn từ j ký tên 1. Những điều tương tự đối với Điều kiện kết thúc 1. Như đã trình bày trong phân tích, điều này nhằm đảm bảo rằng tất cả người dùng trung thực đều biết CERT r trong khoảng thời gian \(\lambda\) cách nhau. cNgười dùng bây giờ tôi đã biết H(Br) và kết thúc vòng r của chính anh ta. Anh ta chỉ cần đợi cho đến khi khối Br thực sự được được truyền bá cho anh ta, việc này có thể mất thêm thời gian. Anh ấy vẫn giúp truyền bá thông điệp với tư cách là một người dùng chung, nhưng không bắt đầu bất kỳ sự lan truyền nào dưới dạng trình xác minh (r, s). Đặc biệt, ông đã giúp truyền bá mọi thông điệp trong CERT r của anh ấy, đủ cho giao thức của chúng tôi. Lưu ý rằng anh ta cũng nên đặt bi \(\triangleq\)0 cho giao thức BA nhị phân, nhưng bi dù sao cũng không cần thiết trong trường hợp này. Những điều tương tự cho tất cả các hướng dẫn trong tương lai. dTrong trường hợp này, vj là gì không quan trọng. 65Bước s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: Bước cố định thành 1 xu của BBA⋆ Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu các Bước của riêng mình trong vòng r ngay khi anh ta hoàn thành Bước s −1 của riêng mình. • Người dùng i đợi trong thời gian tối đa 2\(\lambda\). Trong khi chờ đợi tôi làm như sau. – Điều kiện kết thúc 0: Hướng dẫn tương tự như ở bước Coin-Fixed-To-0. – Điều kiện kết thúc 1: Hướng dẫn tương tự như ở bước Coin-Fixed-To-0. – Nếu tại bất kỳ điểm anh ấy có đã nhận được tại ít nhất th hợp lệ ông,s−1 j ' là của cái hình thức (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), thì anh ta ngừng chờ đợi và đặt bi \(\triangleq\)0.a – Ngược lại, khi hết thời gian 2\(\lambda\), tôi đặt bi \(\triangleq\)1. – Khi giá trị bi đã được đặt, tôi tính Qr−1 từ CERT r−1 và kiểm tra xem i \(\in\)SV r,s. – Nếu i \(\in\)SV r,s thì tôi tính thông điệp mr,s tôi \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) với vi là giá trị mà anh ấy đã tính toán ở Bước 4, phá hủy khóa bí mật phù du của anh ấy skr,s tôi, và sau đó tuyên truyền ông tôi . Nếu không, tôi dừng lại mà không truyền bá bất cứ điều gì. aLưu ý rằng việc nhận được các thông báo tH hợp lệ (r, s −1) ký cho 1 có nghĩa là Điều kiện kết thúc 1. Bước s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: Bước lật xu thật của BBA⋆ Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu các Bước của riêng mình trong vòng r ngay khi anh ta hoàn thành bước s −1 của chính mình. • Người dùng i đợi trong thời gian tối đa 2\(\lambda\). Trong khi chờ đợi tôi làm như sau. – Điều kiện kết thúc 0: Hướng dẫn tương tự như ở bước Coin-Fixed-To-0. – Điều kiện kết thúc 1: Hướng dẫn tương tự như ở bước Coin-Fixed-To-0. – Nếu tại bất kỳ điểm anh ấy có đã nhận được tại ít nhất th hợp lệ ông,s−1 j ' là của cái hình thức (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), sau đó anh ta ngừng chờ đợi và đặt bi \(\triangleq\)0. – Nếu tại bất kỳ điểm anh ấy có đã nhận được tại ít nhất th hợp lệ ông,s−1 j ' là của cái hình thức (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), sau đó anh ta ngừng chờ đợi và đặt bi \(\triangleq\)1. – Ngược lại, khi hết thời gian 2\(\lambda\), cho SV r,s−1 tôi là tập hợp các bộ xác minh (r, s −1) từ người mà anh ấy đã nhận được một tin nhắn hợp lệ mr,s−1 j , tôi đặt bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 tôi H(\(\sigma\)r,s−1 j )). – Khi giá trị bi đã được đặt, tôi tính Qr−1 từ CERT r−1 và kiểm tra xem i \(\in\)SV r,s. – Nếu i \(\in\)SV r,s thì tôi tính thông điệp mr,s tôi \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) với vi là giá trị mà anh ấy đã tính toán ở Bước 4, phá hủy khóa bí mật phù du của anh ấy skr,s tôi, và sau đó tuyên truyền ông tôi . Nếu không, tôi dừng lại mà không truyền bá bất cứ điều gì. Nhận xét. Về nguyên tắc, như được xem xét trong tiểu mục 6.2, giao thức có thể thực hiện nhiều tùy ý bước trong một số vòng. Nếu điều này xảy ra, như đã thảo luận, người dùng i \(\in\)SV r,s với s > \(\mu\) đã cạn kiệt
kho khóa tạm thời được tạo trước của anh ấy và phải xác thực tin nhắn (r, s) của anh ấy, mr,s tôi bởi một “thác” của những chìa khóa phù du. Do đó tin nhắn của tôi sẽ dài hơn một chút và truyền đi lâu hơn tin nhắn sẽ mất nhiều thời gian hơn một chút. Theo đó, sau rất nhiều bước của một vòng nhất định, giá trị của tham số \(\lambda\) sẽ tự động tăng nhẹ. (Nhưng nó trở lại bản gốc \(\lambda\) một lần khối được tạo ra và một vòng mới bắt đầu.) Tái thiết khối Round-r bởi những người không xác minh Hướng dẫn cho mọi người dùng i trong hệ thống: Người dùng i bắt đầu vòng r của riêng mình ngay khi anh ta có CERT r-1. • tôi làm theo hướng dẫn của từng bước của giao thức, tham gia tuyên truyền tất cả tin nhắn, nhưng không bắt đầu bất kỳ việc truyền bá nào trong một bước nếu anh ta không phải là người xác minh trong bước đó. • i kết thúc vòng r của chính anh ấy bằng cách nhập Điều kiện kết thúc 0 hoặc Điều kiện kết thúc 1 trong một số trường hợp bước, với CERT tương ứng r. • Từ đó trở đi, anh ta bắt đầu vòng r + 1 trong khi chờ nhận khối Br thực tế (trừ khi anh ấy đã nhận được nó), người có hash H(Br) đã bị CERT r ghim xuống. Một lần nữa, nếu CERT r chỉ ra rằng Br = Br ǫ, cái tôi biết Br ngay lúc anh ấy có CERT r. 6,4 Phân tích Algorand ′ 2 Phân tích Algorand ′ 2 dễ dàng được suy ra từ Algorand ′ 1. Về cơ bản, trong Algorand ′ 2, với xác suất áp đảo, (a) tất cả người dùng trung thực đều đồng ý trên cùng một khối Br; người lãnh đạo của một cái mới khối trung thực với xác suất ít nhất là ph = h2(1 + h −h2).
Обращение с честными пользователями в режиме оффлайн
Как мы уже говорили, честный пользователь следует всем предписанным ему инструкциям, в том числе и по нахождению в сети. и запускаем протокол. Это не является большой нагрузкой в Algorand, поскольку вычисления и Требуемая пропускная способность от честного пользователя весьма скромна. Тем не менее, отметим, что Algorand может легко модифицировать для работы в двух моделях, в которых честным пользователям разрешено находиться в автономном режиме отличные цифры. Прежде чем обсуждать эти две модели, отметим, что если процент честных игроков составляли 95 %, Algorand все равно можно было запустить, задав все параметры, предполагая, что вместо этого h = 80 %. Соответственно, Algorand продолжит работать корректно, даже если не более половины честных игроков решил уйти в офлайн (действительно, это серьезный случай «прогулов»). Фактически, в любой момент времени, по крайней мере, 80% игроков онлайн будут честными. От постоянного участия к ленивой честности Как мы видели, Algorand ′ 1 и Algorand ′ 2 выбрать параметр ретроспективного просмотра k. Покажем теперь, что выбор k должным образом большим позволяет удалить требование постоянного участия. Это требование обеспечивает важнейшее свойство: а именно: что базовый протокол BA BBA⋆ имеет надлежащее честное большинство. Давайте теперь объясним, насколько ленивы честность обеспечивает альтернативный и привлекательный способ удовлетворить это свойство.
Напомним, что пользователь i является ленивым, но честным, если (1) он следует всем предписанным инструкциям, когда его просят участвовать в протоколе, и (2) его просят участвовать только в протоколе очень редко — например, раз в неделю — с соответствующим предварительным уведомлением и потенциально получая значительные награды, когда он участвует. Чтобы Algorand мог работать с такими плеерами, достаточно «выбрать верификаторы текущий раунд среди пользователей, уже находящихся в системе в гораздо более раннем раунде». Действительно, напомним, что проверяющие для раунда r выбираются из пользователей в раунде r -k, и выбор делается на основе от величины Qr−1. Обратите внимание, что неделя состоит примерно из 10 000 минут, и предположим, что раунд занимает примерно (например, в среднем) 5 минут, поэтому в неделе около 2000 раундов. Предположим что в какой-то момент пользователь хочет спланировать свое время и знать, будет ли он проверяющий на следующей неделе. Протокол теперь выбирает проверяющих для раунда r из пользователей в раунд r-k-2000, а выбор основан на Qr-2001. В раунде R игрок, которого я уже знаю значения Qr−2000, . . . , Qr-1, поскольку они фактически являются частью blockchain. Тогда для каждого М между 1 и 2000, i является проверяющим на шаге s раунда r + M тогда и только тогда, когда .Х СИГи г + М, с, Qr+M−2,001 \(\leq\)р. Таким образом, чтобы проверить, будет ли он вызван для выполнения функций проверяющего в следующих 2000 раундах, я должен вычислить \(\sigma\)M,s я = СИГи г + М, с, Qr+M−2,001 для M = от 1 до 2000 и для каждого шага s и проверьте является ли .H(\(\sigma\)M,s я ) \(\leq\)p для некоторых из них. Если вычисление цифровой подписи занимает миллисекунду, то вся эта операция займет у него около 1 минуты вычислений. Если он не выбран в качестве проверяющего в любом из этих раундов он может выйти из игры с «чистой совестью». Если бы он постоянно участвовал, то в любом случае он, по сути, сделал бы 0 шагов в следующих 2000 раундах! Если вместо этого его выбирают в качестве проверяющего в одном из этих раундов, затем он готовится (например, получая все необходимую информацию), чтобы выступать в качестве честного проверяющего на соответствующем раунде. Действуя таким образом, ленивый, но честный потенциальный проверяющий только упускает возможность участвовать в распространении информации. сообщений. Но распространение сообщений обычно является надежным. При этом плательщики и получатели ожидается, что недавно распространенные платежи будут онлайн, чтобы наблюдать, что происходит с их платежами, и, таким образом, они будут участвовать в распространении сообщений, если они честны.
Xử lý người dùng trung thực ngoại tuyến
Như chúng tôi đã nói, một người dùng trung thực tuân theo tất cả các hướng dẫn được quy định của mình, bao gồm cả việc trực tuyến. và chạy giao thức. Đây không phải là gánh nặng lớn trong Algorand, vì việc tính toán và băng thông yêu cầu từ một người dùng trung thực là khá khiêm tốn. Tuy nhiên, chúng ta hãy chỉ ra rằng Algorand có thể có thể dễ dàng sửa đổi để hoạt động theo hai mô hình, trong đó người dùng trung thực được phép ngoại tuyến những con số tuyệt vời. Trước khi thảo luận về hai mô hình này, chúng ta hãy chỉ ra rằng, nếu tỷ lệ người chơi trung thực là 95%, Algorand vẫn có thể chạy khi thiết lập tất cả các tham số giả sử thay vào đó h = 80%. Theo đó, Algorand sẽ tiếp tục hoạt động bình thường ngay cả khi có nhiều nhất một nửa số người chơi trung thực đã chọn ngoại tuyến (thực sự là một trường hợp chính của “vắng mặt”). Trên thực tế, tại bất kỳ thời điểm nào, ít nhất 80% người chơi trực tuyến sẽ trung thực. Từ sự tham gia liên tục đến sự trung thực lười biếng Như chúng ta đã thấy, Algorand ′ 1 và Algorand ′ 2 chọn tham số nhìn lại k. Bây giờ chúng ta hãy chỉ ra rằng việc chọn k lớn đúng cách sẽ cho phép loại bỏ yêu cầu tham gia liên tục. Yêu cầu này đảm bảo một tính chất quan trọng: cụ thể là, rằng giao thức BA cơ bản BBA⋆ có đa số trung thực phù hợp. Bây giờ chúng ta hãy giải thích lười biếng như thế nào sự trung thực cung cấp một cách thay thế và hấp dẫn để đáp ứng đặc tính này.
Hãy nhớ lại rằng người dùng i lười biếng nhưng trung thực nếu (1) anh ta làm theo tất cả các hướng dẫn được chỉ định của mình, khi anh ta được yêu cầu tham gia vào giao thức và (2) anh ta chỉ được yêu cầu tham gia vào giao thức rất hiếm khi—ví dụ, mỗi tuần một lần—với thông báo trước phù hợp và có khả năng nhận được lợi ích đáng kể phần thưởng khi tham gia. Để cho phép Algorand làm việc với những người chơi như vậy, chỉ cần “chọn người xác minh của vòng hiện tại giữa những người dùng đã có trong hệ thống ở vòng trước đó nhiều.” Quả thực, hãy nhớ lại rằng những người xác minh cho vòng r được chọn từ những người dùng trong vòng r −k và các lựa chọn được thực hiện dựa trên về đại lượng Qr-1. Lưu ý rằng một tuần bao gồm khoảng 10.000 phút và giả sử rằng một một vòng mất khoảng (ví dụ: trung bình) 5 phút, vì vậy một tuần có khoảng 2.000 vòng. Giả sử rằng, tại một thời điểm nào đó, người dùng tôi muốn lập kế hoạch cho thời gian của mình và biết liệu anh ta có định làm như vậy không một người xác minh trong tuần tới. Giao thức hiện chọn người xác minh cho vòng r từ người dùng trong làm tròn r −k −2.000 và các lựa chọn dựa trên Qr−2.001. Ở vòng r, người chơi tôi đã biết các giá trị Qr−2.000, . . . , Qr−1, vì chúng thực sự là một phần của blockchain. Khi đó, với mỗi M trong khoảng từ 1 đến 2.000, i là người xác minh ở bước s của vòng r + M khi và chỉ khi .H SIGi r + M, s, Qr+M−2,001 \(\leq\)p . Vì vậy, để kiểm tra xem liệu anh ta có được gọi làm người xác minh trong 2.000 vòng tiếp theo hay không, tôi phải tính \(\sigma\)M,s tôi = SIGi r + M, s, Qr+M−2,001 với M = 1 đến 2.000 và với mỗi bước s, đồng thời kiểm tra cho dù .H(\(\sigma\)M,s tôi ) \(\leq\)p đối với một số trong số chúng. Nếu việc tính toán chữ ký số mất một phần nghìn giây thì toàn bộ thao tác này sẽ khiến anh ta mất khoảng 1 phút tính toán. Nếu anh ta không được chọn làm người xác minh trong bất kỳ vòng nào trong số này, thì anh ta có thể ngoại tuyến với “lương tâm lương thiện”. Liệu anh ấy có liên tục đã tham gia, dù sao thì về cơ bản anh ấy cũng đã tiến được 0 bước trong 2.000 vòng tiếp theo! Nếu thay vào đó, anh ta được chọn làm người xác minh ở một trong những vòng này, sau đó anh ta chuẩn bị sẵn sàng (ví dụ: bằng cách thu thập tất cả thông tin cần thiết) để đóng vai trò là người xác minh trung thực ở vòng thích hợp. Bằng cách hành động như vậy, một người xác minh tiềm năng lười biếng nhưng trung thực chỉ bỏ lỡ việc tham gia tuyên truyền của các tin nhắn. Nhưng việc truyền bá thông điệp thường mạnh mẽ. Hơn nữa, người trả tiền và người được trả tiền của các khoản thanh toán được truyền gần đây dự kiến sẽ trực tuyến để xem điều gì xảy ra với các khoản thanh toán của họ, và do đó họ sẽ tham gia truyền bá thông điệp nếu họ trung thực.
Протокол Algorand ′ с честным большинством денег
Теперь мы, наконец, покажем, как заменить предположение о честном большинстве пользователей гораздо более значимое предположение о честном большинстве денег. Основная идея такова (в варианте proof-of-stake) «выбрать пользователя i \(\in\)PKr−k, принадлежащего SV r,s, с весом (т. е. способностью решения), пропорциональным количество денег, принадлежащих i»24. Согласно нашему предположению HMM, мы можем выбрать, будет ли эта сумма принадлежать в раунде r -k. или в (начале) раунда r. Предполагая, что мы не против постоянного участия, мы выбираем последний выбор. (Чтобы исключить постоянное участие, мы бы выбрали первый вариант. Проще говоря, для суммы денег, имевшейся в раунде r −k −2 000.) Есть много способов реализовать эту идею. Самый простой способ - удержать каждую клавишу не более 1 денежной единицы, а затем случайным образом выберите n пользователей i из PKr−k таких, что a(r) я = 1. 24Мы должны сказать PKr-k-2000, чтобы заменить постоянное участие. Для простоты, поскольку можно пожелать потребовать В любом случае постоянное участие мы используем PKr-k, как и раньше, чтобы нести на один параметр меньше.
Следующая простейшая реализация Следующей простейшей реализацией может быть требование, чтобы каждый открытый ключ владел максимальным количеством ключей. денег М при некоторой фиксированной величине М. Стоимость М достаточно мала по сравнению с общей суммой денег М. денег в системе, так что вероятность того, что ключ принадлежит набору проверяющих, состоящему из более чем одного шаг за, скажем, k раундов пренебрежимо мал. Тогда ключ i \(\in\)PKr−k, владеющий суммой денег a(r) я в раунде r выбирается принадлежащим SV r,s, если .Х СИГи г, с, Qr−1 \(\leq\)p \(\cdot\) а(г) я М . И все идет по-прежнему. Более сложная реализация Последняя реализация «заставила богатого участника системы владеть множеством ключей». Альтернативная реализация, описанная ниже, обобщает понятие статуса и рассматривает каждый пользователь i должен состоять из K + 1 копий (i, v), каждая из которых независимо выбирается в качестве проверяющего, и будет владеть собственным эфемерным ключом (pkr,s я,в,скр,с i,v) на шаге s раунда r. Значение K зависит от суммы денег a(r) я принадлежит мне в раунде r. Давайте теперь посмотрим, как работает такая система более подробно. Количество копий Пусть n — целевая ожидаемая мощность каждого набора проверяющих, и пусть a(r) я быть суммой денег, принадлежащей пользователю i в раунде r. Пусть Ar — общая сумма денег, принадлежащих пользователями в PKr−k в раунде r, то есть Ар = Х i\(\varepsilon\)P Кр−k а (р) я. Если я — пользователь в PKr-k, то его копиями будут (i, 1), . . . , (i, K + 1), где К = $ п \(\cdot\) а(г) я Ар % . Пример. Пусть n = 1000, Ar = 109 и a(r) я = 3,7 миллиона. Тогда, К = 103 \(\cdot\) (3,7 \(\cdot\) 106) 109 = ⌊3,7⌋= 3 . Подтверждающие лица и учетные данные Пусть я пользователь в PKr−k с K + 1 копией. Для каждого v = 1, . . . , K, копия (i, v) автоматически принадлежит SV r,s. То есть мои учетные данные \(\sigma\)r,s i,v \(\triangleq\)SIGi((i, v), r, s, Qr−1), но соответствующее условие принимает вид .H(\(\sigma\)r,s i,v) \(\leq\)1, что всегда правда. Для копии (i, K + 1) для каждого шага s раунда r я проверяю, .Х СИГи (i, K + 1), r, s, Qr−1 \(\leq\)а(г) я н Ар-К.
Если да, то копия (i, K + 1) принадлежит SV r,s. Чтобы доказать это, я распространяю учетные данные \(\sigma\)р,1 i,K+1 = SIGi (i, K + 1), r, s, Qr−1 . Пример. Как и в предыдущем примере, пусть n = 1K, a(r) я = 3,7M, Ar = 1B, а у меня 4 копии: (i, 1), . . . , (я, 4). Тогда первые три копии автоматически принадлежат SV r,s. Для 4-го, концептуально Algorand ′ независимо бросает смещенную монету, вероятность выпадения орла которой равна 0,7. Копировать (i, 4) выбирается тогда и только тогда, когда монета подбрасывается орлом. (Конечно, это предвзятое подбрасывание монеты реализуется путем hash подписания, подписи и сравнения — поскольку мы все это сделал в этой статье, чтобы иметь возможность доказать свой результат.) Бизнес как обычно Объяснив, как отбираются проверяющие и как проверяются их полномочия вычисляется на каждом шаге раунда r, выполнение раунда аналогично уже объясненному.
Giao thức Algorand ′ với số tiền trung thực
Bây giờ, cuối cùng, chúng tôi trình bày cách thay thế giả định Đa số người dùng trung thực bằng nhiều hơn nữa. giả định Phần lớn tiền trung thực có ý nghĩa. Ý tưởng cơ bản là (theo hương vị proof-of-stake) “để chọn một người dùng i \(\in\)PKr−k thuộc về SV r,s với trọng số (tức là quyền quyết định) tỷ lệ với số tiền mà tôi sở hữu.”24 Theo giả định HMM của chúng tôi, chúng tôi có thể chọn xem số tiền đó có nên được sở hữu ở vòng r −k hay không hoặc tại (bắt đầu) vòng r. Giả sử rằng chúng tôi không bận tâm đến việc tham gia liên tục, chúng tôi lựa chọn sự lựa chọn sau này. (Để loại bỏ sự tham gia liên tục, chúng tôi đã chọn lựa chọn trước đây. Nói đúng hơn là với số tiền sở hữu ở vòng r −k −2.000.) Có nhiều cách để thực hiện ý tưởng này. Cách đơn giản nhất là giữ từng phím nhiều nhất là 1 đơn vị tiền và sau đó chọn ngẫu nhiên n người dùng i từ PKr−k sao cho a(r) tôi = 1. 24Chúng ta nên nói PKr−k−2.000 để thay thế việc tham gia liên tục. Để đơn giản, vì người ta có thể muốn yêu cầu dù sao đi nữa, chúng tôi vẫn sử dụng PKr−k để mang ít tham số hơn.
Cách thực hiện đơn giản nhất tiếp theo Việc triển khai đơn giản nhất tiếp theo có thể là yêu cầu mỗi khóa công khai sở hữu số lượng tối đa của tiền M, đối với một số M cố định. Giá trị M đủ nhỏ so với tổng số tiền tiền trong hệ thống, sao cho xác suất một khóa thuộc về bộ xác minh gồm nhiều hơn một bước vào —nói— k vòng là không đáng kể. Khi đó, khóa i \(\in\)PKr−k, sở hữu số tiền a(r) tôi ở vòng r, được chọn thuộc SV r,s nếu .H SIGi r, s, Qr−1 \(\leq\)p \(\cdot\) a(r) tôi M . Và tất cả tiến hành như trước đây. Triển khai phức tạp hơn Việc thực hiện cuối cùng “buộc một người giàu có tham gia hệ thống phải sở hữu nhiều chìa khóa”. Một cách triển khai thay thế, được mô tả dưới đây, khái quát hóa khái niệm trạng thái và xem xét mỗi người dùng i bao gồm K + 1 bản sao (i, v), mỗi bản được chọn độc lập để làm người xác minh, và sẽ sở hữu chìa khóa phù du của riêng mình (pkr,s tôi,v,skr,s i,v) trong bước s của vòng r. Giá trị K phụ thuộc về số tiền a(r) tôi thuộc sở hữu của tôi ở vòng r. Bây giờ chúng ta hãy xem một hệ thống như vậy hoạt động chi tiết hơn như thế nào. Số lượng bản sao Đặt n là số lượng phần tử dự kiến mục tiêu của mỗi bộ xác minh và đặt a(r) tôi là số tiền thuộc sở hữu của người dùng i ở vòng r. Gọi Ar là tổng số tiền sở hữu bởi người dùng trong PKr−k ở vòng r, nghĩa là, Ar = X i\(\in\)P Kr−k một(r) tôi . Nếu tôi là người dùng trong PKr−k thì các bản sao của tôi là (i, 1), . . . , (i, K + 1), ở đâu K = $ n \(\cdot\) một(r) tôi Ar % . Ví dụ. Đặt n = 1.000, Ar = 109 và a(r) tôi = 3,7 triệu. Sau đó, K = 103 \(\cdot\) (3,7 \(\cdot\) 106) 109 = ⌊3.7⌋= 3 . Người xác minh và thông tin xác thực Hãy để tôi là người dùng trong PKr−k với K + 1 bản sao. Với mỗi v = 1, . . . , K, copy (i, v) tự động thuộc SV r,s. Nghĩa là, thông tin xác thực của tôi là \(\sigma\)r,s i,v \(\triangleq\)SIGi((i, v), r, s, Qr−1), nhưng điều kiện tương ứng trở thành .H(\(\sigma\)r,s i,v) 1, tức là luôn đúng. Đối với bản sao (i, K + 1), với mỗi Bước s của vòng r, tôi kiểm tra xem .H SIGi (i, K + 1), r, s, Qr−1 \(\leq\)a(r) tôi n Ar −K .
Nếu vậy thì bản sao (i, K+1) thuộc SV r,s. Để chứng minh điều đó, tôi tuyên truyền bằng chứng xác thực \(\sigma\)r,1 i,K+1 = SIGi (i, K + 1), r, s, Qr−1 . Ví dụ. Như trong ví dụ trước, cho n = 1K, a(r) tôi = 3,7M, Ar = 1B, và tôi có 4 bản sao: (i, 1), . . . , (tôi, 4). Sau đó, 3 bản sao đầu tiên sẽ tự động thuộc về SV r,s. Đối với cái thứ 4, về mặt khái niệm, Algorand ′ tung một đồng xu thiên vị một cách độc lập, có xác suất xuất hiện Mặt ngửa là 0,7. Sao chép (i, 4) được chọn khi và chỉ nếu lần tung đồng xu là Ngửa. (Tất nhiên, việc lật xu thiên vị này được thực hiện bằng cách hashing, ký tên và so sánh —như chúng ta đã làm suốt bài viết này—để giúp tôi chứng minh kết quả của mình.) Kinh doanh như bình thường Đã giải thích cách chọn người xác minh và thông tin xác thực của họ như thế nào được tính toán ở mỗi bước của vòng r, việc thực hiện vòng này tương tự như đã được giải thích.
Обработка форков
Уменьшив вероятность вилок до 10−12 или 10−18, обрабатывать их в малой вероятности того, что они произойдут. Однако Algorand также может использовать различные вилки. процедуры урегулирования, с подтверждением работы или без него. Один из возможных способов проинструктировать пользователей о разрешении вилок заключается в следующем: • Следуйте самой длинной цепочке, если пользователь видит несколько цепочек. • Если существует более одной самой длинной цепочки, следует следовать той, у которой в конце есть непустой блок. Если все они имеют пустые блоки в конце, считайте их предпоследними блоками. • Если существует более одной самой длинной цепочки с непустыми блоками на конце, скажем, что цепочки длины r, следуйте за тем, чей лидер блока r имеет наименьшие полномочия. Если есть связи, следовать за тем, чей блок r имеет наименьшее значение hash. Если связи еще остались, следуйте тот, чей блок r лексикографически упорядочен первым.
Xử lý Fork
Đã giảm xác suất của các nhánh xuống 10−12 hoặc 10−18, thực tế không cần thiết phải xử lý chúng trong khả năng rất xa là chúng sẽ xảy ra. Tuy nhiên, Algorand cũng có thể sử dụng nhiều nhánh khác nhau thủ tục giải quyết, có hoặc không có bằng chứng về công việc. Một cách có thể hướng dẫn người dùng giải quyết các nhánh như sau: • Theo chuỗi dài nhất nếu người dùng nhìn thấy nhiều chuỗi. • Nếu có nhiều hơn một chuỗi dài nhất, hãy làm theo chuỗi có khối không trống ở cuối. Nếu tất cả chúng đều có các khối trống ở cuối, hãy xem xét các khối cuối cùng thứ hai của chúng. • Nếu có nhiều hơn một chuỗi dài nhất với các khối không trống ở cuối, giả sử các chuỗi đó là có độ dài r, theo sau khối có trưởng khối r có thông tin xác thực nhỏ nhất. Nếu có ràng buộc, làm theo khối có khối r có giá trị hash nhỏ nhất. Nếu vẫn còn mối quan hệ, hãy làm theo khối có khối r được sắp xếp theo thứ tự từ điển đầu tiên.
Обработка сетевых разделов
Как уже говорилось, мы предполагаем, что время распространения сообщений среди всех пользователей в сети ограничено сверху значениями \(\lambda\) и Λ. Это не слишком сильное предположение, поскольку современный Интернет является быстрым и надежным, и фактические значения этих параметров вполне разумны. Здесь отметим, что Algorand ′ 2 продолжает работать, даже если Интернет иногда разделяется на две части. Тот случай, когда Интернет разделен более чем на две части аналогично. 10.1 Физические разделы Прежде всего, перегородка может быть вызвана физическими причинами. Например, сильное землетрясение может в конечном итоге полностью разорвёт связь между Европой и Америкой. В этом случае злонамеренные пользователи также разделены, и между двумя частями нет связи. Таким образом
будет два Противника: один для части 1, другой для части 2. Каждый Противник по-прежнему пытается нарушить протокол в своей части. Предположим, что раздел происходит в середине раунда r. Тогда каждый пользователь по-прежнему выбирается в качестве верификатор на основе PKr−k с той же вероятностью, что и раньше. Пусть HSV r,s я и MSV r,s я соответственно — множество честных и злонамеренных проверяющих на шаге s в части i \(\in\) {1, 2}. У нас есть |HSV r,s 1 | + |MSV r,s 1 | + |HSV r,s 2 | + |MSV r,s 2 | = |HSV r,s| + |MSV r,s|. Обратите внимание, что |HSV r,s| + |MSV r,s| < |HSV r,s| + 2|МСВ г,с| < 2tH с подавляющей вероятностью. Если какая-то часть i имеет |HSV r,s я | + |MSV r,s я | \(\geq\)tH с немалой вероятностью, например, 1%, то вероятность того, что |HSV r,s 3−i| + |MSV r,s 3−i| \(\geq\)tH очень низкое, например, 10–16, когда F = 10–18. В этом случае мы можем с таким же успехом рассматривать меньшую часть как отключенную, потому что в ней не будет достаточного количества верификаторов. эта часть предназначена для генерации подписей для сертификации блока. Рассмотрим большую часть, скажем, часть 1, не ограничивая общности. Хотя |HSV r,s| < tH с пренебрежимо малой вероятностью на каждом шаге s, когда сеть разделена, |HSV r,s 1 | может быть меньше, чем tH с некоторой немалой вероятностью. В этом случае Противник может с некоторым другая, немалая вероятность, приведет к разветвлению двоичного протокола BA в раунде r с непустым блоком Br и пустым блоком Br. ƫ оба имеют действительные подписи.25 Например, в Шаги Coin-Fixed-To-0 s, все верификаторы в HSV r,s 1 подписались для бита 0 и H(Br) и распространили их сообщения. Все верификаторы в MSV r,s 1 также подписали 0 и H(Br), но свои сообщения воздержали. Потому что |HSV r,s 1 | + |MSV r,s 1 | \(\geq\)tH, в системе достаточно подписей для сертификации Br. Однако, поскольку злонамеренные верификаторы скрыли свои подписи, пользователи вводят шаг s + 1, который является шагом Coin-Fixed-To1. Поскольку |HSV r,s 1 | < tH из-за разделения, верификаторы в HSV r,s+1 1 не видел этого подписи для бита 0, и все они подписаны для бита 1. Все верификаторы в MSV r,s+1 1 сделал то же самое. Потому что |HSV r,s+1 1 | + |MSV r,s+1 1 | \(\geq\)tH, в системе достаточно подписей для сертификации Br й. Противник затем создает форк, освобождая подписи MSV r,s 1 для 0 и H(Br). Соответственно, будет два Qr, определяемых соответствующими блоками раунда r. Однако, вилка не будет продолжаться, и в раунде r + 1 может вырасти только одна из двух ветвей. Дополнительные инструкции для Algorand ′ 2. При виде непустого блока Br и пустого блок Бр ϫ , следует за непустым номером (и определяемым им Qr). Действительно, поручив пользователям использовать непустой блок в протоколе, если большой количество честных пользователей в PKr+1−k понимают, что в начале раунда r +1 происходит разветвление, тогда у пустого блока не будет достаточно подписчиков, и он не будет расти. Предположим, что противнику удастся разделите честных пользователей так, чтобы некоторые честные пользователи видели Br (и, возможно, Br ǫ), а некоторые видят только Бр й. Потому что Противник не может сказать, какой из них будет проверяющим после Br, а какой будет проверяющим после Br ϫ, честные пользователи распределяются случайным образом, и каждый из них по-прежнему становится проверяющим (либо по отношению к Br, либо по отношению к Br ϫ) на шаге s > 1 с вероятностью п. У злоумышленников каждый из них может иметь два шанса стать проверяющим, один с Бр и другой с Бр ϫ, каждый с вероятностью p независимо. Пусть HSV r+1,s 1;Бр — множество честных проверяющих на шагах s раунда r+1 после Br. Другие обозначения например HSV r+1,s 1;Br , MSV r+1,s 1;Бр и MSV r+1,s 1; Брю определяются аналогично. По Чернову легко 25Иметь вилку с двумя непустыми блоками невозможно ни с перегородками, ни без них, кроме как с пренебрежимо малыми вероятность.увидеть это с подавляющей вероятностью, |HSV r+1,s 1;Бр | + |HSV r+1,s 1;Бру | + |MSV r+1,s 1;Бр | + |MSV r+1,s 1;Бру | < 2tH. Соответственно, две ветви не могут обе иметь правильные подписи, удостоверяющие блок для раунда. r + 1 на том же шаге s. Более того, поскольку вероятности выбора для двух шагов s и s′ равны то же самое, и выборы независимы, также с подавляющей вероятностью |HSV r+1,s 1;Бр | + |MSV r+1,s 1;Бр | + |HSV r+1,s' 1; Брю | + |MSV r+1,s' 1; Брю | < 2tH, для любых двух шагов s и s'. Когда F = 10−18, по объединению, пока Противник не может разделять честных пользователей на длительное время (скажем, 104 шага, это более 55 часов при \(\lambda\) = 10 секунд26), с высокой вероятностью (скажем, 1−10−10) не более одной ветки будет иметь tH правильных сигнатур. для подтверждения блока в раунде r + 1. Наконец, если в физическом разделе созданы две части примерно одинакового размера, то вероятность того, что |HSV r,s я | + |MSV r,s я | \(\geq\)tH мало для каждой части i. После аналогичного анализа даже если Противнику удастся создать форк с некоторой немалой вероятностью в каждой части в раунде r не более одной из четырех ветвей может вырасти в раунде r + 1. 10.2 Состязательный раздел Во-вторых, перегородка может быть вызвана Противником, поэтому сообщения распространялись честными пользователями в одной части, не дойдет напрямую до честных пользователей в другой части, но Противник может пересылать сообщения между двумя частями. И все же однажды сообщение от одного часть доходит до честного пользователя в другой части, в последней она будет распространяться как обычно. Если Злоумышленник готов потратить много денег, вполне возможно, что он сможет взломать Интернет и разделите его на некоторое время вот так. Анализ аналогичен анализу большей части физического раздела выше (меньшая часть часть можно рассматривать как имеющую население 0): Противник может создать вилку и каждый честный пользователь видит только одну из ветвей, но может вырасти не более одной ветки. 10.3 Сетевые разделы в сумме Несмотря на то, что сетевые разделы могут возникнуть, а под разделами может произойти ветвление за один раунд, Нет никакой затяжной двусмысленности: вилка очень недолговечна и фактически длится не более одного раунда. В все части раздела, кроме не более чем одной, пользователи не могут создать новый блок и, следовательно, (а) понимать, что в сети есть раздел, и (б) никогда не полагаться на блоки, которые «исчезнут». Благодарности Прежде всего мы хотели бы выразить признательность Сергею Горбунову, соавтору упомянутой системы Democoin. Самая искренняя благодарность Морису Херлихи за множество поучительных обсуждений и за указание что конвейеризация улучшит производительность Algorand, а также значительно улучшит 26Обратите внимание, что пользователь завершает шаг s, не дожидаясь времени 2\(\lambda\), только если он увидел хотя бы tH подписей для то же сообщение. Если подписей недостаточно, каждый шаг будет длиться 2\(\lambda\).
изложение более ранней версии этой статьи. Большое спасибо Серджио Райсбауму за его комментарии по поводу более ранняя версия этой статьи. Большое спасибо Виноду Вайкунтанатану за несколько глубоких обсуждений. и идеи. Большое спасибо Йосси Гиладу, Ротему Хамо, Георгиосу Влахосу и Николаю Зельдовичу. за начало проверки этих идей, а также за множество полезных комментариев и обсуждений. Сильвио Микали хотел бы лично поблагодарить Рона Ривеста за бесчисленные обсуждения и рекомендации. в криптографических исследованиях на протяжении более трех десятилетий за соавторство упомянутой системы микроплатежей. это послужило вдохновением для создания одного из механизмов выбора верификатора Algorand. Мы надеемся вывести эту технологию на новый уровень. Тем временем путешествие и общение это очень весело, за что мы очень благодарны.
Xử lý phân vùng mạng
Như đã nói, chúng tôi giả sử thời gian truyền tin nhắn giữa tất cả người dùng trong mạng bị giới hạn bởi \(\lambda\) và Λ. Đây không phải là một giả định chắc chắn vì Internet ngày nay rất nhanh và mạnh mẽ, và giá trị thực tế của các tham số này là khá hợp lý. Ở đây, chúng ta hãy chỉ ra rằng Algorand ′ 2 tiếp tục hoạt động ngay cả khi Internet thỉnh thoảng bị phân chia thành hai phần. Trường hợp khi Internet được phân chia thành nhiều hơn hai phần là tương tự nhau. 10.1 Phân vùng vật lý Trước hết, việc phân vùng có thể do nguyên nhân vật lý. Ví dụ, một trận động đất lớn có thể cuối cùng đã phá vỡ hoàn toàn mối liên hệ giữa Châu Âu và Châu Mỹ. Trong trường hợp này, những người dùng độc hại cũng bị phân vùng và không có liên lạc giữa hai phần. Như vậy
sẽ có hai Đối thủ, một cho phần 1 và một cho phần 2. Mỗi Đối thủ vẫn cố gắng phá vỡ giao thức trong phần riêng của nó. Giả sử việc phân vùng xảy ra ở giữa vòng r. Sau đó mỗi người dùng vẫn được chọn là một trình xác minh dựa trên PKr-k, với cùng xác suất như trước. Đặt HSV r,s tôi và MSV r,s tôi tương ứng là tập hợp các trình xác minh trung thực và độc hại trong bước s của phần i \(\in\){1, 2}. Chúng tôi có |HSV r,s 1 | + |MSV r,s 1 | + |HSV r,s 2 | + |MSV r,s 2 | = |HSV r,s| + |MSV r,s|. Lưu ý rằng |HSV r,s| + |MSV r,s| < |HSV r,s| + 2|MSV r,s| < 2tH với xác suất áp đảo. Nếu phần nào đó tôi có |HSV r,s tôi | + |MSV r,s tôi | \(\geq\)tH với xác suất không thể bỏ qua, ví dụ 1% thì xác suất |HSV r,s 3−i| + |MSV r,s 3−i| \(\geq\)tH là rất thấp, ví dụ: 10−16 khi F = 10−18. Trong trường hợp này, chúng ta cũng có thể coi phần nhỏ hơn là ngoại tuyến, bởi vì sẽ không có đủ người xác minh trong phần này để tạo chữ ký tH để chứng nhận một khối. Chúng ta hãy xem xét phần lớn hơn, ví dụ phần 1 mà không mất tính tổng quát. Mặc dù |HSV r,s| < tH với xác suất không đáng kể ở mỗi bước s, khi mạng được phân vùng, |HSV r,s 1 | có thể nhỏ hơn tH với xác suất không thể bỏ qua. Trong trường hợp này, Đối phương có thể, với một số xác suất không đáng kể khác, buộc giao thức BA nhị phân vào một ngã ba trong vòng r, với khối Br khác trống và khối trống Br ǫ cả hai đều có chữ ký hợp lệ.25 Ví dụ, trong một Bước Coin-Fixed-To-0 s, tất cả các trình xác minh trong HSV r,s 1 đã ký cho bit 0 và H(Br), và truyền bá chúng tin nhắn. Tất cả các trình xác minh trong MSV r,s 1 cũng đã ký 0 và H(Br), nhưng giữ lại tin nhắn của họ. Bởi vì |HSV r,s 1 | + |MSV r,s 1 | \(\geq\)tH, hệ thống có đủ chữ ký chứng nhận Br. Tuy nhiên, kể từ khi những người xác minh độc hại đã giữ lại chữ ký của họ, người dùng sẽ nhập bước s + 1, đây là bước Coin-Fixed-To1. Vì |HSV r,s 1 | < tH do phân vùng, các bộ xác minh trong HSV r,s+1 1 không thấy tH chữ ký cho bit 0 và tất cả chúng đều ký cho bit 1. Tất cả các trình xác minh trong MSV r,s+1 1 cũng làm như vậy. Bởi vì |HSV r,s+1 1 | + |MSV r,s+1 1 | \(\geq\)tH, hệ thống có đủ chữ ký chứng nhận Br ừ. kẻ thù sau đó tạo một nhánh bằng cách giải phóng chữ ký của MSV r,s 1 cho 0 và H(Br). Theo đó, sẽ có hai Qr, được xác định bởi các khối tương ứng của vòng r. Tuy nhiên, ngã ba sẽ không tiếp tục và chỉ một trong hai nhánh có thể phát triển ở vòng r + 1. Hướng dẫn bổ sung cho Algorand ′ 2. Khi nhìn thấy khối không trống Br và khối trống khối Br ǫ , theo sau cái không trống (và Qr được xác định bởi nó). Thật vậy, bằng cách hướng dẫn người dùng sử dụng khối không trống trong giao thức, nếu một khối lớn số lượng người dùng trung thực trong PKr+1−k nhận ra rằng có một ngã ba ở đầu vòng r +1, sau đó khối trống sẽ không có đủ người theo dõi và sẽ không phát triển. Giả sử đối thủ có thể phân vùng những người dùng trung thực để một số người dùng trung thực nhìn thấy Br (và có lẽ Br ǫ), và một số chỉ nhìn thấy anh ừ. Bởi vì Đối thủ không thể biết ai trong số họ sẽ là người xác minh theo sau Br và ai sẽ là người xác minh. sẽ là người xác minh theo sau Br ǫ , những người dùng trung thực được phân vùng ngẫu nhiên và mỗi người trong số họ vẫn trở thành người xác minh (đối với Br hoặc đối với Br ǫ) ở bước s > 1 với xác suất trang. Đối với những người dùng có ý đồ xấu, mỗi người trong số họ có thể có hai cơ hội để trở thành người xác minh, một cơ hội có Br và người kia với Br ǫ, mỗi cái có xác suất p độc lập. Đặt HSV r+1,s 1;Anh là tập hợp những người xác minh trung thực ở bước s của vòng r+1 theo sau Br. Các ký hiệu khác chẳng hạn như HSV r+1,s 1;Brǫ , MSV r+1,s 1;Anh và MSV r+1,s 1;Brū được xác định tương tự. Bởi Chernoffbound, thật dễ dàng 25Không thể có một nhánh với hai khối không trống có hoặc không có phân vùng, ngoại trừ không đáng kể xác suất.để thấy điều đó với xác suất áp đảo, |HSV r+1,s 1;Anh | + |HSV r+1,s 1;Brū | + |MSV r+1,s 1;Anh | + |MSV r+1,s 1;Brū | < 2tH. Theo đó, hai nhánh không thể cùng có chữ ký phù hợp xác nhận một khối cho vòng r + 1 trong cùng bước s. Hơn nữa, vì xác suất lựa chọn cho hai bước s và s′ là giống nhau và các lựa chọn là độc lập, cũng có xác suất áp đảo |HSV r+1,s 1;Anh | + |MSV r+1,s 1;Anh | + |HSV r+1,s′ 1;Brū | + |MSV r+1,s′ 1;Brū | < 2tH, với hai bước bất kỳ s và s′. Khi F = 10−18, bởi liên minh bị ràng buộc, miễn là Đối thủ không thể phân vùng những người dùng trung thực trong một thời gian dài (ví dụ 104 bước, tức là hơn 55 giờ với \(\lambda\) = 10 giây26), với xác suất cao (ví dụ 1−10−10) nhiều nhất một nhánh sẽ có chữ ký phù hợp tH để chứng nhận một khối ở vòng r + 1. Cuối cùng, nếu phân vùng vật lý đã tạo ra hai phần có kích thước gần giống nhau thì xác suất |HSV r,s tôi | + |MSV r,s tôi | \(\geq\)tH nhỏ đối với mỗi phần i. Sau một phân tích tương tự, ngay cả khi Đối thủ cố gắng tạo ra một ngã ba với xác suất không thể bỏ qua ở mỗi phần đối với vòng r, nhiều nhất một trong bốn nhánh có thể mọc ở vòng r + 1. 10.2 Phân vùng đối nghịch Thứ hai, việc phân vùng có thể do Kẻ thù gây ra nên thông điệp được truyền đi bởi những người dùng trung thực ở một phần sẽ không tiếp cận trực tiếp với những người dùng trung thực ở phần khác, nhưng Đối thủ có thể chuyển tiếp tin nhắn giữa hai phần. Tuy nhiên, một khi một tin nhắn từ một phần này đến được với người dùng trung thực ở phần kia thì nó sẽ được phổ biến ở phần sau như bình thường. Nếu Đối thủ sẵn sàng chi rất nhiều tiền, có thể tưởng tượng rằng anh ta có thể hack được Internet và phân vùng nó như thế này một thời gian. Phân tích tương tự như phân tích đối với phần lớn hơn trong phân vùng vật lý ở trên (phần nhỏ hơn một phần có thể được coi là có dân số 0): Đối thủ có thể tạo một nhánh và mỗi người dùng trung thực chỉ nhìn thấy một trong các nhánh, nhưng nhiều nhất một nhánh có thể phát triển. 10.3 Tổng phân vùng mạng Mặc dù việc phân vùng mạng có thể xảy ra và việc phân nhánh trong một vòng có thể xảy ra dưới các phân vùng, nhưng vẫn có không có gì mơ hồ kéo dài: một đợt fork tồn tại rất ngắn và trên thực tế chỉ kéo dài tối đa một vòng duy nhất. trong tất cả các phần của phân vùng ngoại trừ tối đa một phần, người dùng không thể tạo khối mới và do đó (a) nhận ra rằng có một phân vùng trong mạng và (b) không bao giờ dựa vào các khối sẽ “biến mất”. Lời cảm ơn Trước tiên chúng tôi xin cảm ơn Sergey Gorbunov, đồng tác giả của hệ thống Democoin được trích dẫn. Lời cảm ơn chân thành nhất xin gửi đến Maurice Herlihy, vì nhiều cuộc thảo luận mang tính khai sáng, vì đã chỉ ra chỉ ra rằng đường ống sẽ cải thiện hiệu suất thông lượng của Algorand và cải thiện đáng kể 26Lưu ý rằng người dùng hoàn thành một bước s mà không phải đợi 2\(\lambda\) thời gian chỉ khi anh ta đã nhìn thấy ít nhất tH chữ ký cho bước đó. cùng một tin nhắn. Khi không đủ chữ ký, mỗi bước sẽ kéo dài trong thời gian 2\(\lambda\).
trình bày của một phiên bản trước đó của bài viết này. Rất cám ơn Sergio Rajsbaum vì những nhận xét của ông về phiên bản trước của bài viết này. Cảm ơn Vinod Vaikuntanathan rất nhiều vì nhiều cuộc thảo luận sâu sắc và hiểu biết sâu sắc. Xin gửi lời cảm ơn chân thành đến Yossi Gilad, Rotem Hamo, Georgios Vlachos và Nickolai Zeldovich vì đã bắt đầu thử nghiệm những ý tưởng này cũng như có nhiều nhận xét và thảo luận hữu ích. Silvio Micali xin đích thân cảm ơn Ron Rivest vì vô số cuộc thảo luận và hướng dẫn trong nghiên cứu mật mã trong hơn 3 thập kỷ, vì đã đồng tác giả hệ thống thanh toán vi mô được trích dẫn điều đó đã truyền cảm hứng cho một trong những cơ chế lựa chọn người xác minh của Algorand. Chúng tôi hy vọng sẽ đưa công nghệ này lên một tầm cao mới. Trong khi đó việc đi lại và đồng hành là niềm vui lớn, mà chúng tôi rất biết ơn.