초록
공개 원장은 누구나 읽고 확장할 수 있는 변조 방지된 데이터 시퀀스입니다. 공개 원장은 셀 수 없이 많고 강력한 용도로 사용됩니다. 그들은 모든 종류의 것을 눈에 띄게 확보할 수 있습니다. 소유권, 판매, 지불 등의 거래를 발생한 순서대로 정확하게 기록합니다. 공공 원장은 부패를 억제할 뿐만 아니라 다음과 같은 매우 정교한 애플리케이션을 가능하게 합니다. 암호화폐 및 smart contracts. 그들은 민주사회의 방식에 혁명을 일으키기 위해 서 있습니다. 운영합니다. 그러나 현재 구현된 대로 확장성이 부족하고 잠재력을 달성할 수 없습니다. Algorand은 공개 원장을 구현하는 진정으로 민주적이고 효율적인 방법입니다. 이전과 달리 작업 증명을 기반으로 한 구현에는 무시할 만한 양의 계산이 필요합니다. 압도적으로 높은 확률로 "포크"되지 않는 거래 내역을 생성합니다. Algorand은 (신선하고 매우 빠른) 메시지 전달 비잔틴 계약을 기반으로 합니다. 구체적으로 Algorand은 머니 플랫폼으로만 설명하겠습니다.
خلاصة
دفتر الأستاذ العام هو عبارة عن سلسلة من البيانات التي لا يمكن التلاعب بها والتي يمكن للجميع قراءتها وزيادتها. الدفاتر العامة لها استخدامات لا حصر لها ومقنعة. يمكنهم تأمين جميع أنواع الأسلحة على مرأى من الجميع المعاملات — مثل العناوين والمبيعات والمدفوعات — بالترتيب الدقيق الذي تحدث به. لا تعمل الدفاتر العامة على الحد من الفساد فحسب، بل تتيح أيضًا تطبيقات معقدة للغاية - مثل العملات المشفرة وsmart contracts. إنهم يقفون لإحداث ثورة في طريقة بناء مجتمع ديمقراطي يعمل. ولكن كما يتم تنفيذها حاليا، فإن حجمها ضعيف ولا يمكنها تحقيق إمكاناتها. Algorand هي طريقة ديمقراطية وفعالة حقًا لتنفيذ دفتر الأستاذ العام. على عكس السابقة التطبيقات بناءً على إثبات العمل، فهي تتطلب قدرًا ضئيلًا من الحساب، و ينشئ سجل المعاملات الذي لن "يفترق" باحتمالية عالية للغاية. Algorand مبني على اتفاقية بيزنطية (رواية وبسرعة فائقة) لنقل الرسائل. وللتوضيح، سنصف Algorand فقط كمنصة مالية.
소개
돈은 점점 더 가상화되고 있습니다. 미국의 약 80%가 차지하는 것으로 추산된다. 현재 달러는 원장 항목 [5]로만 존재합니다. 다른 금융수단도 이를 따르고 있다. 우리가 보편적으로 신뢰할 수 있는 중앙 실체에 의지할 수 있는 이상적인 세계에서는 가능한 모든 사이버 공격에 대비해 돈과 기타 금융 거래는 전적으로 전자적일 수 있습니다. 불행하게도 우리는 그런 세상에 살고 있지 않습니다. 따라서, 분산형 암호화폐와 같은 Bitcoin [29] 및 "smart contract" 시스템(예: Ethereum)이 [4]로 제안되었습니다. 에 이러한 시스템의 핵심은 일련의 거래를 안정적으로 기록하는 공유 원장입니다. ✽이것은 두 번째 저자인 [24]의 ArXiv 논문의 보다 공식적인(비동기적) 버전입니다. Gorbunov와 Micali [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] 또는 일부 조합. 그러나 현재 원장은 관리하기가 비효율적일 수 있습니다. 예를 들어 Bitcoin의 proof-of-work [14]의 원래 개념을 기반으로 한 접근 방식은 엄청난 양의 계산이 필요하고 낭비적입니다. 확장성이 좋지 않습니다 [1]. 게다가 사실상 극소수의 손에 권력을 집중시킨다. 따라서 우리는 다음을 제공하는 공개 원장을 구현하는 새로운 방법을 제시하고자 합니다. 신뢰할 수 있고 침해할 수 없는 기관에 의해 운영되는 중앙 집중식 시스템의 편리성과 효율성 현재 분산 구현의 비효율성과 약점. 우리는 접근 방식을 이렇게 부릅니다. Algorand, 지금까지 구성된 원장을 기반으로 알고리즘 무작위성을 사용하여 선택하기 때문에 유효한 거래의 다음 블록을 구성하는 역할을 담당하는 검증자 집합입니다. 당연히, 우리는 그러한 선택이 조작으로부터 면제되고 예측할 수 없는 것으로 증명되도록 보장합니다. 마지막 순간에 있지만 궁극적으로는 보편적으로 분명합니다. Algorand의 접근 방식은 원칙적으로도 사실상으로도 그렇지 않다는 점에서 매우 민주적입니다. 다양한 종류의 사용자를 생성합니다(Bitcoin의 "광부" 및 "일반 사용자"). Algorand에서 "모두 권력은 모든 사용자 집합에 있습니다.” Algorand의 주목할만한 속성 중 하나는 거래 내역이 매우 작은 경우에만 분기될 수 있다는 것입니다. 확률(예: 1조분의 1, 즉 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대 슈퍼컴퓨터만 소집할 수 있습니다. Bitcoin 플레이어에게 필요한 총 계산 능력의 12.8%에 불과합니다. 이 훨씬 더 많은 사용자가 시스템에 참여하면 계산량이 크게 증가합니다. 기술적 문제 2: 권력의 집중 오늘은 엄청난 물량으로 인해 일반 데스크톱을 사용하여 새 블록을 생성하려는 사용자(컴퓨터는 물론이고 계산이 필요함) 휴대폰), 돈을 잃을 것으로 예상됩니다. 실제로 일반 컴퓨터로 새로운 블록을 계산하기 위해서는, 계산에 전력을 공급하는 데 필요한 전기의 예상 비용이 예상 보상을 초과합니다. 특별히 제작된 컴퓨터 풀("새 블록 채굴" 외에는 아무 작업도 수행하지 않음)만 사용하여 새로운 블록을 생성하여 수익을 창출할 수 있을 것으로 기대할 수 있습니다. 따라서 오늘날에는 사실상 두 가지가 있습니다. 분리된 사용자 클래스: 결제만 하는 일반 사용자와 전문 채굴 풀, 새로운 블록만 검색합니다. 따라서 최근 블록의 전체 컴퓨팅 성능이 세대는 단 5개의 풀 내에 있습니다. 그러한 조건에서, 대부분의 사람들이 계산 능력이 정직하다는 것은 신뢰도가 떨어집니다. 기술적 문제 3: 모호함 Bitcoin에서 blockchain은 반드시 고유할 필요는 없습니다. 과연 최신 부분은 종종 분기됩니다. blockchain은 -예를 들어- B1, . . . , Bk, B′ k+1, B' k+2에 따르면 한 명의 사용자와 B1, . . . , Bk, B′′ k+1, B′′ k+2, B′′ 다른 사용자에 따르면 k+3입니다. 여러 블록이 완료된 후에만 체인에 추가되면 처음 k + 3개 블록이 동일할 것이라고 합리적으로 확신할 수 있습니까? 모든 사용자에게. 따라서 마지막 블록에 포함된 지불금에 즉시 의존할 수는 없습니다. 체인. 블록이 충분히 깊어지는지 기다려 보는 것이 더 현명합니다. blockchain 따라서 충분히 안정적입니다. 이와 별도로 Bitcoin.1에 대해 법 집행 및 통화 정책에 대한 우려도 제기되었습니다. 1.2 Algorand, 간단히 말해서 설정 Algorand은 매우 어려운 환경에서 작동합니다. 간략하게, (a) 허가 없는 환경과 허가된 환경. Algorand은(는) 효율적이고 안전하게 작동합니다. 완전히 허가가 없는 환경에서 임의로 많은 사용자가 가입할 수 있습니다. 어떤 종류의 심사나 허가 없이 언제든지 시스템에 접근할 수 있습니다. 물론 Algorand는 작동합니다. 허가된 환경에서는 더욱 좋습니다. 1Bitcoin 결제가 제공하는 (유사) 익명성은 자금 세탁 및/또는 자금 조달에 악용될 수 있습니다. 범죄인이나 테러리스트 조직의 원칙적으로 완벽한 기능을 제공하는 전통적인 지폐 또는 금괴 익명성은 동일한 문제를 제기해야 하지만 이러한 통화의 물리적 특성으로 인해 통화 속도가 크게 느려집니다. 법 집행 기관의 어느 정도 모니터링을 허용하기 위한 전송입니다. “돈을 인쇄하는” 능력은 국민국가의 가장 기본적인 권력 중 하나입니다. 따라서 원칙적으로 대규모 독립적으로 변동하는 통화를 채택하면 이러한 힘이 줄어들 수 있습니다. 그러나 현재 Bitcoin은(는) 존재하지 않습니다. 정부 통화 정책에 대한 위협이며, 확장성 문제로 인해 결코 위협이 되지 않을 수도 있습니다.(b) 매우 적대적인 환경. Algorand은 매우 강력한 적을 견딜 수 있습니다. (1) 원하는 사용자를 원하는 시간에 즉시 부패시킵니다. 무허가 환경에서는 시스템 자금의 2/3가 정직한 사용자에게 귀속됩니다. (한 허가된 환경에서는 돈에 관계없이 사용자의 2/3가 정직하면 충분합니다.) (2) 모든 부패한 사용자를 완전히 통제하고 완벽하게 조정합니다. 그리고 (3) 각 메시지가 정직한 사용자에 의해 전송된 경우 모든 메시지 전달을 예약합니다. m의 크기에만 의존하는 \(\lambda\)m 시간 내에 정직한 사용자의 95%에 도달합니다. 주요 속성 Algorand에 우리의 강력한 적의 존재에도 불구하고 • 필요한 계산량이 최소화됩니다. 기본적으로 사용자 수에 관계없이 시스템에 존재하는 경우, 1,500명의 사용자 각각은 최대 몇 초의 작업을 수행해야 합니다. 계산. • 새 블록은 10분 이내에 생성되며 사실상 blockchain을 떠나지 않습니다. 예를 들어, 첫 번째 실시예에서는 블록을 생성하는 데 걸리는 시간이 더 짧을 것으로 예상됩니다. 여기서 Λ는 P2P 가십에서 블록을 전파하는 데 필요한 시간입니다. 어떤 블록 크기를 선택하든 관계없이 \(\lambda\)는 1,500개의 200Blong 메시지를 전파하는 데 걸리는 시간입니다. (진정한 분산형 시스템에서 Λ는 본질적으로 본질적인 대기 시간이므로 Algorand 블록 생성의 제한 요소는 네트워크 속도입니다.) 두 번째 실시예는 실제로 실험적으로 ( ? 에 의해) 테스트되었는데, 이는 40분 이내에 블록이 생성됨을 나타냅니다. 초. 또한 Algorand의 blockchain은 무시할 수 있는 확률(예: 1 미만)로만 포크할 수 있습니다. 1조 단위), 따라서 사용자는 새 블록에 포함된 지불금을 다음과 같이 중계할 수 있습니다. 블록이 나타납니다. • 모든 권한은 사용자 자신에게 있습니다. Algorand은 진정한 분산 시스템입니다. 특히, 어떤 거래를 통제할 수 있는 외생적 실체(Bitcoin의 "채굴자")가 없습니다. 인식됩니다. Algorand의 기술. 1. 새롭고 빠른 비잔틴 합의 프로토콜. Algorand은 다음을 통해 새 블록을 생성합니다. 새로운 암호화, 메시지 전달, 바이너리 비잔틴 계약(BA) 프로토콜 BA⋆. 프로토콜 BA⋆(곧 논의할) 몇 가지 추가 속성을 충족할 뿐만 아니라 속도도 매우 빠릅니다. 대략적으로 말하면 이진 입력 버전은 3단계 루프로 구성됩니다. 여기서 플레이어 i는 단일 다른 모든 플레이어에게 mi 메시지를 보내세요. 더 많은 기능을 갖춘 완전하고 동기식 네트워크에서 실행됩니다. 플레이어의 2/3 이상이 정직하고 확률이 1/3보다 크면 각 루프 후에 프로토콜이 끝납니다. 합의. (우리는 프로토콜 BA⋆가 비잔틴 합의의 원래 정의를 충족한다는 점을 강조합니다. Pease, Shostak 및 Lamport [31]의 약화 없이.) Algorand은 이 바이너리 BA 프로토콜을 활용하여 다양한 통신에서 합의에 도달합니다. 각각의 새로운 블록에 모델을 추가합니다. 그런 다음 합의된 블록은 미리 정해진 수의 블록을 통해 인증됩니다. 적절한 검증자의 디지털 서명이 네트워크를 통해 전파됩니다. 2. 암호화 정렬. 매우 빠르지만 프로토콜 BA⋆는 더 많은 이점을 얻을 수 있습니다. 수백만 명의 사용자가 플레이할 때의 속도. 따라서 Algorand는 BA⋆의 플레이어를 선택합니다.모든 사용자 집합 중 훨씬 작은 하위 집합입니다. 다양한 종류의 권력 집중을 피하기 위해 문제가 발생하면 BA⋆의 새로운 실행을 통해 각각의 새로운 블록 Br이 구성되고 합의됩니다. 별도의 선택된 검증자 세트인 SV r에 의해. 원칙적으로 그러한 세트를 선택하는 것은 다음과 같이 어려울 수 있습니다. Br을 직접 선택합니다. 우리는 포용이라는 접근 방식을 통해 이러한 잠재적인 문제를 해결합니다. Maurice Herlihy의 통찰력 있는 제안, 암호화 분류. 정렬은 다음과 같은 관행입니다. 대규모의 적격 개인 중에서 무작위로 공무원을 선택합니다 [6]. (분류가 실행되었습니다. 수 세기에 걸쳐, 예를 들어 아테네, 피렌체, 베네치아 공화국이 그랬습니다. 현대 사법에서는 시스템에서는 배심원을 선택하는 데 종종 무작위 선택이 사용됩니다. 최근에는 무작위 샘플링도 이루어지고 있습니다. David Chaum [9]이 선거를 옹호했습니다.) 물론 분산형 시스템에서는 각 검증자 세트 SV r의 구성원을 무작위로 선택하는 데 필요한 무작위 코인은 문제가 있습니다. 따라서 우리는 모든 사용자 집단에서 각 검증자 세트를 선택하기 위해 암호화에 의존합니다. 자동(즉, 메시지 교환이 필요하지 않음)과 무작위가 보장되는 방식입니다. 본질적으로 우리는 이전 블록에서 자동으로 결정하기 위해 암호화 기능을 사용합니다. 새로운 블록 Br을 제안하는 리더인 사용자 Br-1과 검증자 세트 SV r이 존재한다. 리더가 제안한 블록에 대한 합의에 도달하는 책임. 악의적인 사용자가 영향을 미칠 수 있으므로 Br−1의 구성(예: 지불금 중 일부를 선택하여)을 특별히 구성하고 사용합니다. r번째 블록의 리더와 검증자 세트 SV r이 실제로 무작위로 선택되었습니다. 3. 수량(종자) Qr. 우리는 blockchain의 마지막 블록 Br−1을 사용하여 다음을 수행합니다. 새로운 블록 구축을 담당할 다음 검증자 세트와 리더를 자동으로 결정합니다. 브르. 이 접근 방식의 문제점은 단지 약간 다른 지불 방법을 선택함으로써 이전 라운드에서는 우리의 강력한 적이 다음 리더에 대해 엄청난 통제권을 얻습니다. 그 사람이 시스템에서 플레이어/돈의 1/1000만 통제하면 모든 리더가 악의적이다. (직관 섹션 4.1을 참조하십시오.) 이 과제는 모든 proof-of-stake 접근 방식의 핵심입니다. 그리고 우리가 아는 한, 지금까지 만족스럽게 해결되지 않았습니다. 이러한 과제를 해결하기 위해 우리는 의도적으로 별도의 신중한 솔루션을 구축하고 지속적으로 업데이트합니다. 정의된 양 Qr은 예측할 수 없을 뿐만 아니라, 우리의 방식으로 영향을 미칠 수도 없습니다. 강력한 적. Algorand이 선택한 Qr에서 나온 것이므로 Qr을 r번째 시드로 참조할 수 있습니다. 비밀 암호화 분류를 통해 생성에 특별한 역할을 할 모든 사용자 번째 블록. 4. 비밀 암호화 분류 및 비밀 자격 증명. 검증자 세트와 담당 리더를 선택하기 위해 현재 마지막 블록인 Br−1을 무작위로 명확하게 사용 새로운 블록인 Br을 만드는 것만으로는 충분하지 않습니다. Br을 생성하기 전에 Br−1을 알아야 하므로, Br−1에 포함된 마지막 비유동량 Qr−1도 알아야 합니다. 따라서 블록 Br을 계산하는 검증자이자 리더입니다. 그러므로 우리의 강력한 대적 Br에 대한 논의에 참여하기 전에 즉시 그들 모두를 부패시킬 수 있습니다. 그들이 인증하는 블록에 대한 모든 권한을 갖습니다. 이 문제를 방지하기 위해 리더(실제로 검증자도 포함)는 자신의 역할을 비밀리에 학습하지만 실제로 해당 역할을 맡은 모든 사람에게 증명할 수 있는 적절한 자격 증명을 계산합니다. 언제 사용자는 자신이 다음 블록의 리더라는 것을 개인적으로 깨닫고 먼저 비밀리에 자신의 블록을 조립합니다. 자신이 제안한 새 블록을 자신의 블록과 함께 (인증할 수 있도록) 전파합니다. 자격 증명. 이렇게 하면 대적은 다음 공격의 리더가 누구인지 즉시 깨닫게 될 것입니다. 블록은 즉시 그를 부패시킬 수 있지만 적이 그렇게 하기에는 너무 늦을 것입니다. 새로운 블록 선택에 영향을 미칩니다. 실제로 그는 지도자의 메시지를 더 이상 “회신”할 수 없습니다.강력한 정부가 WikiLeaks에 의해 바이러스로 퍼진 메시지를 다시 병에 담을 수는 없습니다. 앞으로 살펴보겠지만 리더의 고유성을 보장할 수 없으며 모든 사람이 리더가 누구인지 확신할 수도 없습니다. 리더 자신도 포함되어 있습니다! 그러나 Algorand에서는 명확한 진행이 보장됩니다. 5. 플레이어 교체 가능성. 새로운 블록을 제안한 후 리더는 "죽는" 것이 나을 수도 있습니다. 대적에 의해 부패됨) 그의 임무가 끝났기 때문입니다. 그러나 SV r의 검증자에게는 상황이 덜합니다. 간단하다. 실제로 충분히 많은 서명을 받은 새로운 블록 Br의 인증을 담당하게 되면서, 그들은 먼저 리더가 제안한 블록에 대해 비잔틴 합의를 실행해야 합니다. 문제는, 아무리 효율적이더라도 BA⋆에는 여러 단계와 2/3 이상의 플레이어의 정직성이 필요합니다. 이는 효율성상의 이유로 BA⋆의 플레이어 세트가 작은 세트 SV r로 구성되기 때문에 문제가 됩니다. 전체 사용자 집합 중에서 무작위로 선택됩니다. 그러므로 우리의 강력한 대적은 비록 할 수는 없지만 전체 사용자의 1/3을 부패시키면 SV r의 모든 구성원을 확실히 부패시킬 수 있습니다! 다행스럽게도 우리는 P2P 방식으로 메시지를 전파하여 실행되는 프로토콜 BA⋆가 플레이어 대체 가능하다는 것을 증명할 것입니다. 이 새로운 요구 사항은 프로토콜이 정확하고 각 단계가 완전히 새롭고 무작위로 실행되더라도 효율적으로 합의에 도달합니다. 독립적으로 선택된 플레이어 세트입니다. 따라서 수백만 명의 사용자가 있는 각각의 소규모 플레이어 세트는 BA⋆ 단계와 연관된 것은 아마도 다음 세트와 빈 교차점을 가질 것입니다. 게다가 BA⋆의 서로 다른 단계에 있는 플레이어 세트는 아마도 완전히 다른 단계를 가질 것입니다. 카디널리티. 게다가 각 세트의 멤버들은 다음 세트의 플레이어가 누구인지 알 수 없습니다. 내부 상태를 비밀리에 전달하지 마십시오. 교체 가능한 플레이어 속성은 실제로 역동적이고 매우 강력한 적을 물리치는 데 중요합니다. 우리가 상상하는 적. 우리는 교체 가능한 플레이어 프로토콜이 많은 분야에서 결정적인 역할을 할 것이라고 믿습니다. 컨텍스트와 애플리케이션. 특히 소규모 하위 프로토콜을 안전하게 실행하는 데 중요합니다. 역동적인 적과 함께 더 넓은 플레이어 세계에 포함되어 있습니다. 전체 플레이어의 작은 부분은 더 작은 규모의 모든 플레이어를 손상시키는 데 어려움이 없습니다. 하위 프로토콜. 추가 속성/기술: 게으른 정직함 정직한 사용자는 자신이 처방한 것을 따릅니다. 여기에는 온라인 상태 및 프로토콜 실행이 포함됩니다. 이후 Algorand에는 적당한 수준만 있습니다. 계산 및 통신 요구 사항, 온라인 상태 및 프로토콜 실행 배경”은 큰 희생이 아닙니다. 물론, 정직한 플레이어들 사이에는 몇 가지 "부재"가 있습니다. 갑작스러운 연결 끊김 또는 재부팅 필요로 인해 자동으로 허용됩니다(왜냐하면 우리는 항상 그러한 소수의 플레이어를 일시적으로 악의적인 것으로 간주할 수 있습니다. 그러나 지적하자면, Algorand은 정직한 사용자가 사용할 수 있는 새로운 모델에서 작동하도록 간단하게 조정할 수 있습니다. 대부분의 경우 오프라인 상태입니다. 우리의 새로운 모델은 다음과 같이 비공식적으로 소개될 수 있습니다. 게으른 정직. 대략적으로 말해서, 사용자 i는 (1) 자신이 규정한 모든 사항을 따르는 경우 게으르지만 정직합니다. 지침, 프로토콜에 참여하도록 요청받은 경우, 그리고 (2) 참여하도록 요청받은 경우 프로토콜에 적용하는 경우는 드물며 적절한 사전 통지가 있어야 합니다. 정직함에 대해 그렇게 여유로운 개념을 갖고 있으면, 우리는 정직한 사람들이 정직할 것이라고 더욱 확신할 수 있습니다. 필요할 때 바로 사용할 수 있으며, Algorand는 이러한 경우에 특정 시점에 시스템이 안전하게 작동하는 경우 참여하는 플레이어의 대다수는 악의적입니다.1.3 밀접하게 관련된 작품 작업 증명 접근 방식(인용된 [29] 및 [4]과 같은)은 우리의 접근 방식과 상당히 직교합니다. 그래서 메시지 전달 비잔틴 합의 또는 실제적인 비잔틴 내결함성을 기반으로 한 접근 방식 (인용된 [8]과 유사). 실제로 이러한 프로토콜은 모든 사용자 집합에서 실행될 수 없으며, 우리 모델에서는 적절하게 작은 사용자 집합으로 제한됩니다. 사실 우리의 강력한 적 실제로 BA 프로토콜을 실행하는 데 사용되는 소규모 세트에 관련된 모든 사용자를 즉시 손상시킵니다. 우리의 접근 방식은 사용자의 "권한"이 있다는 의미에서 지분 증명 [2]과 관련된 것으로 간주될 수 있습니다. 블록 구축에서 그들이 시스템에서 소유한 돈에 비례합니다. 그들이 "에스크로"에 넣은 돈). 우리 논문에 가장 가까운 논문은 Pass and Shi [30]의 Sleepy Consensus Model입니다. 피하기 위해 proof-of-work 접근 방식에는 많은 계산이 필요하기 때문에 그들의 논문은 (그리고 친절하게도) 크레딧) Algorand의 비밀 암호화 분류입니다. 이 중요한 측면의 공통점을 가지고 여러 우리 논문들 사이에는 상당한 차이가 존재합니다. 특히, (1) 해당 설정은 허가된 것뿐입니다. 이와 대조적으로 Algorand도 무허가 시스템입니다. (2) Nakamoto 스타일 프로토콜을 사용하므로 blockchain 포크가 자주 발생합니다. 비록 proof-of-work을 생략하고 프로토콜에서 비밀리에 선택된 리더에게 기간을 연장하도록 요청합니다. 가장 긴 유효 기간(더 풍부한 의미에서) blockchain. 따라서 포크는 불가피하며 이를 기다려야 합니다. 블록은 체인에서 충분히 "깊습니다". 실제로, 적과 함께 목표를 달성하기 위해 적응형 손상이 가능하려면 블록이 폴리(N) 깊이여야 합니다. 여기서 N은 시스템의 총 사용자 수입니다. 블록이 생성될 수 있다고 가정하더라도 1분 안에 N = 100만 명의 사용자가 있다면 약 200만 년을 기다려야 합니다. 블록은 N 2-deep이 되고, 블록은 N-deep이 되기까지 약 2년이 걸립니다. 대조적으로, Algorand의 blockchain은 적의 부패에도 불구하고 무시할 수 있는 확률로만 포크됩니다. 사용자는 즉시 적응할 수 있으며 새로운 블록은 즉시 신뢰할 수 있습니다. (3) 개별 비잔틴 계약을 처리하지 않습니다. 어떤 의미에서 그들은 단지 보장합니다. “가치의 증가하는 순서에 대한 최종 합의”. 그들의 프로토콜은 상태 복제 프로토콜입니다. BA보다 중요하며 개별 관심 가치에 대한 비잔틴 합의에 도달하는 데 사용할 수 없습니다. 이와 대조적으로 Algorand은 원하는 경우 한 번만 사용하여 수백만 명의 사용자가 신속하게 특정 관심 가치에 대한 비잔틴 합의에 도달합니다. (4) 약하게 동기화된 시계가 필요합니다. 즉, 모든 사용자의 시계는 약간의 시간만큼 오프셋됩니다. δ. 대조적으로, Algorand에서 시계는 (본질적으로) 동일한 "속도"만 있으면 됩니다. (5) 그들의 프로토콜은 게으르지만 정직한 사용자 또는 정직한 대다수의 온라인 사용자에게 작동합니다. 그들은 정직한 사용자가 한꺼번에 오프라인이 되는 문제를 제기한 데 대해 Algorand의 공로를 인정합니다. 이에 대응하여 게으른 정직 모델을 제시합니다. 그들의 프로토콜은 게으른 환경에서만 작동하는 것이 아닙니다. 정직 모델뿐만 아니라 적이 어떤 사용자를 선택하는지를 선택하는 적의 졸린 모델에서도 마찬가지입니다. 항상 대부분의 온라인 사용자가 정직하다면 온라인이고 오프라인입니다.2 2원본 버전의 논문에서는 실제로 적대적 졸음 모델의 보안만 고려했습니다. 는 그들의 버전보다 앞선 Algorand의 원래 버전은 또한 주어진 대다수의 온라인 플레이어는 항상 정직하지만 게으른 정직 모델을 선호하여 이를 고려 대상에서 명시적으로 제외했습니다. (예를 들어, 어느 시점에서 정직한 사용자의 절반이 오프라인으로 전환하기로 선택하면 대다수의 사용자는 온라인은 매우 악의적일 수 있습니다. 따라서 이러한 일이 발생하는 것을 방지하기 위해 대적은 자신의 대부분의 힘을 동원해야 합니다. 타락한 플레이어도 오프라인 상태가 되도록 유도합니다. 이는 명백히 그 자신의 이익에 반하는 것입니다.) 게으르지만 정직한 플레이어의 경우 온라인 사용자의 대다수가 항상 악의적인 경우에는 제대로 작동합니다. 그렇기 때문에 그렇습니다. 어느 시점에 자신이 결정적인 역할을 하게 될 것이라는 점을 알고 있는 충분한 수의 정직한 플레이어가 그 순간에 오프라인 상태가 되어서는 안 되며, 대적에 의해 강제로 오프라인 상태가 될 수도 없습니다. 왜냐하면 대적은 누가 공격을 하는지 모르기 때문입니다. 중요한 정직한 플레이어가 될 수 있습니다.(6) 단순하고 정직한 다수가 필요합니다. 대조적으로, Algorand의 현재 버전에는 다음이 필요합니다. 2/3의 정직한 다수. 우리와 가까운 또 다른 논문은 Ouroboros: 입증 가능한 보안 지분 증명 블록체인 프로토콜입니다. Kiayias, Russell, David 및 Oliynykov [20] 작성. 또한 그들의 시스템은 우리 시스템 이후에 나타났습니다. 그것은 또한 증명 가능한 방식으로 작업 증명을 생략하기 위해 암호화 분류를 사용합니다. 그러나 그들의 시스템은 다시 말해 포크가 불가피하고 빈번한 나카모토 스타일 프로토콜입니다. (그러나 그들의 모델에서는 블록이 졸린 합의 모델만큼 깊어질 필요는 없습니다.) 더욱이, 그들의 시스템은 다음과 같은 가정에 의존합니다: 저자 자신의 말에 따르면, “(1) 네트워크는 고도로 동기식입니다. (2) 선택된 이해관계자의 대부분을 필요에 따라 사용할 수 있습니다. 각 시대에 참여하기 위해, (3) 이해관계자가 오랫동안 오프라인 상태를 유지하지 않고, (4) 부패의 적응성은 선형 라운드로 측정되는 작은 지연의 영향을 받습니다. 보안 매개변수입니다.” 대조적으로 Algorand은(는) 압도적인 확률로 포크가 없으며 이 4가지 가정 중 어느 것에도 의존하지 않습니다. 특히 Algorand에서 공격자는 다음을 수행할 수 있습니다. 그가 제어하려는 사용자를 즉시 부패시킵니다.
مقدمة
أصبح المال افتراضيًا بشكل متزايد. وتشير التقديرات إلى أن حوالي 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. تقف Blockchains وراء تطبيقات مثل العملات المشفرة [29]، والتطبيقات المالية [4]، وإنترنت الأشياء [3]. عدة تقنيات لإدارة دفاتر الأستاذ المستندة إلى blockchain: إثبات العمل [29]، إثبات الحصة [2]، التسامح البيزنطي العملي مع الأخطاء [8]، أو مزيج من ذلك. ومع ذلك، في الوقت الحالي، قد تكون إدارة دفاتر الأستاذ غير فعالة. على سبيل المثال، Bitcoin proof-of-work النهج (المبني على المفهوم الأصلي لـ [14]) يتطلب قدرًا هائلاً من العمليات الحسابية، وهو أمر مهدر والمقاييس سيئة [1]. وبالإضافة إلى ذلك، فهو يركز السلطة فعلياً في أيدي عدد قليل جداً من الناس. ولذلك نرغب في طرح طريقة جديدة لتنفيذ دفتر الأستاذ العام الذي يقدم راحة وكفاءة نظام مركزي تديره سلطة موثوقة لا تنتهك حرمتها أوجه القصور والضعف في التطبيقات اللامركزية الحالية. نحن نسمي نهجنا Algorand، لأننا نستخدم العشوائية الخوارزمية للاختيار، بناءً على دفتر الأستاذ الذي تم إنشاؤه حتى الآن، مجموعة من المدققين المسؤولين عن إنشاء المجموعة التالية من المعاملات الصحيحة. بطبيعة الحال، نحن نضمن أن مثل هذه الاختيارات محصنة ضد التلاعب ولا يمكن التنبؤ بها حتى اللحظة الأخيرة، ولكن أيضًا أنها واضحة عالميًا في نهاية المطاف. يعتبر نهج Algorand ديمقراطيًا تمامًا، بمعنى أنه لا من حيث المبدأ ولا من حيث الواقع ينشئ فئات مختلفة من المستخدمين (مثل "عمال المناجم" و"المستخدمين العاديين" في Bitcoin). في Algorand "الكل القوة تكمن في مجموعة جميع المستخدمين. إحدى الخصائص البارزة لـ Algorand هي أن سجل معاملاتها قد يتفرع فقط مع عدد صغير جدًا الاحتمالية (على سبيل المثال، واحد في تريليون، أو حتى 10−18). يمكن لـ Algorand أيضًا معالجة بعض الأمور القانونية والمخاوف السياسية. ينطبق أسلوب Algorand على blockchains وبشكل أعم على أي طريقة لتوليد تسلسل من الكتل لا يمكن التلاعب به. لقد طرحنا في الواقع طريقة جديدة — بديلة لـ و أكثر كفاءة من 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، ب' ك+2، وفقًا لـ مستخدم واحد، وB1، . . . ، بك، ب '' ك +1، ب '' ك+2، ب '' ك+3 بحسب مستخدم آخر. إلا بعد عدة كتل لها إذا تمت إضافتها إلى السلسلة، فهل يمكن للمرء أن يكون متأكدًا بشكل معقول من أن الكتل الأولى k + 3 ستكون هي نفسها لجميع المستخدمين. وبالتالي، لا يمكن للمرء الاعتماد على الفور على المدفوعات الواردة في الكتلة الأخيرة من السلسلة. ومن الأفضل الانتظار ومعرفة ما إذا كانت الكتلة قد أصبحت عميقة بما فيه الكفاية في أم لا blockchain وبالتالي فهو مستقر بدرجة كافية. بشكل منفصل، أثيرت أيضًا مخاوف تتعلق بإنفاذ القانون والسياسة النقدية بشأن Bitcoin.1 1.2 Algorand باختصار الإعداد Algorand يعمل في بيئة صعبة للغاية. باختصار، (أ) البيئات المسموح بها وغير المسموح بها. Algorand يعمل بكفاءة وأمان في بيئة غير مسموح بها تمامًا، حيث يُسمح للعديد من المستخدمين بشكل تعسفي بالانضمام إلى النظام في أي وقت، دون أي تدقيق أو إذن من أي نوع. بالطبع، Algorand يعمل حتى أفضل في بيئة مسموح بها. 1قد يتم إساءة استخدام ميزة إخفاء الهوية (الزائفة) التي تقدمها مدفوعات Bitcoin لغسل الأموال و/أو التمويل من الأفراد الإجراميين أو المنظمات الإرهابية. الأوراق النقدية التقليدية أو سبائك الذهب، والتي من حيث المبدأ تقدم الكمال وينبغي أن يشكل عدم الكشف عن هويته نفس التحدي، ولكن الطبيعة المادية لهذه العملات تؤدي إلى إبطاء تدفق الأموال بشكل كبير عمليات النقل، وذلك للسماح بدرجة معينة من المراقبة من قبل وكالات إنفاذ القانون. تعد القدرة على "طباعة النقود" إحدى القوى الأساسية للدولة القومية. من حيث المبدأ، لذلك، ضخمة واعتماد عملة معومة بشكل مستقل قد يحد من هذه السلطة. ومع ذلك، في الوقت الحالي، Bitcoin أبعد ما يكون عن الوجود وهو يشكل تهديداً للسياسات النقدية الحكومية، ونظراً لمشاكل قابلية التوسع، فقد لا يكون كذلك أبداً.(ب) البيئات شديدة الخصومة. Algorand يقاوم خصمًا قويًا جدًا، من يستطيع ذلك (1) إتلاف أي مستخدم يريده على الفور، في أي وقت يريده، بشرط أن يكون ذلك في بيئة غير مسموح بها، ثلثي الأموال الموجودة في النظام مملوكة للمستخدم الصادق. (في أ بيئة مرخصة، بغض النظر عن المال، يكفي أن يكون ثلثا المستخدمين صادقين.) (2) السيطرة الكاملة والتنسيق التام على جميع المستخدمين الفاسدين؛ و (3) جدولة تسليم كافة الرسائل، على أن تكون كل رسالة مرسلة من قبل مستخدم صادق يصل إلى 95% من المستخدمين الصادقين خلال فترة زمنية μm، والتي تعتمد فقط على حجم m. الخصائص الرئيسية على الرغم من وجود خصمنا القوي، في Algorand • مقدار الحساب المطلوب هو الحد الأدنى. في الأساس، بغض النظر عن عدد المستخدمين الموجود في النظام، يجب على كل مستخدم من ألف وخمسمائة مستخدم أن يؤدي بضع ثوانٍ على الأكثر حساب. • يتم إنشاء كتلة جديدة في أقل من 10 دقائق، ولن تترك أبدًا blockchain بحكم الأمر الواقع. على سبيل المثال، في حالة التوقع، يكون الوقت اللازم لإنشاء كتلة في النموذج الأول أقل من Λ + 12.4\(\alpha\)، حيث Λ هو الوقت اللازم لنشر الكتلة، في ثرثرة نظير إلى نظير الموضة، بغض النظر عن حجم الكتلة التي قد يختارها المرء، و lect هو الوقت المناسب لنشر 1500 رسالة 200Blong. (نظرًا لأنه في النظام اللامركزي حقًا، Λ هو في الأساس زمن انتقال جوهري، في Algorand العامل المحدد في إنشاء الكتلة هو سرعة الشبكة.) التجسيد الثاني له في الواقع تم اختباره تجريبيًا (بواسطة؟)، مما يشير إلى أنه تم إنشاء الكتلة في أقل من 40 ثواني. بالإضافة إلى ذلك، قد يحدث تفرع لـ Algorand blockchain فقط مع احتمال ضئيل (أي أقل من واحد في تريليون)، وبالتالي يمكن للمستخدمين الاعتماد على المدفوعات الواردة في كتلة جديدة بمجرد تظهر الكتلة. • كل السلطة تكمن في المستخدمين أنفسهم. Algorand هو نظام موزع حقيقي. على وجه الخصوص، لا توجد كيانات خارجية (مثل "المعدنين" في Bitcoin)، يمكنها التحكم في المعاملات يتم التعرف عليها. تقنيات Algorand. 1. بروتوكول اتفاقية بيزنطية جديدة وسريعة. Algorand ينشئ كتلة جديدة عبر بروتوكول جديد للتشفير، وتمرير الرسائل، واتفاقية بيزنطية ثنائية (BA)، BA⋆. بروتوكول لا يلبي بعض الخصائص الإضافية فقط (التي سنناقشها قريبًا)، ولكنه أيضًا سريع جدًا. بشكل تقريبي، تتكون نسخة الإدخال الثنائي من حلقة مكونة من 3 خطوات، حيث يرسل اللاعب رسالة واحدة أرسل رسالة إلى جميع اللاعبين الآخرين. يتم تنفيذها في شبكة كاملة ومتزامنة، مع المزيد أكثر من ثلثي اللاعبين صادقين، مع احتمال > 1/3، بعد كل حلقة ينتهي البروتوكول فيها اتفاق. (نؤكد على أن البروتوكول يلبي التعريف الأصلي للاتفاقية البيزنطية من Pease وShostak وLamport [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. الكمية (البذرة) ريال قطري. نستخدم الكتلة الأخيرة Br−1 في blockchain من أجل يحدد تلقائيا مجموعة التحقق التالية والقائد المسؤول عن بناء الكتلة الجديدة ر. التحدي الذي يواجه هذا النهج هو أنه بمجرد اختيار دفعة مختلفة قليلاً في في الجولة السابقة، يكتسب خصمنا القوي سيطرة هائلة على القائد التالي. حتى لو كان يتحكم فقط في 1/1000 من اللاعبين/الأموال في النظام، ويمكنه التأكد من أن جميع القادة كذلك ضارة. (راجع قسم الحدس 4.1.) يعد هذا التحدي أساسيًا لجميع أساليب proof-of-stake، وعلى حد علمنا، لم يتم حل المشكلة بشكل مرضٍ حتى الآن. ولمواجهة هذا التحدي، قمنا عمدًا ببناء نظام منفصل وبعناية وتحديثه باستمرار كمية محددة، Qr، والتي من المؤكد أنها ليست فقط غير قابلة للتنبؤ، ولكنها أيضًا غير قابلة للتأثير من خلال معرفتنا. خصم قوي. قد نشير إلى Qr باعتباره البذرة r، حيث أنه من Qr الذي يختاره Algorand، عبر فرز التشفير السري، سيلعب جميع المستخدمين دورًا خاصًا في إنشاء ملف كتلة ر. 4. الفرز السري للتشفير وبيانات الاعتماد السرية. عشوائياً وبشكل لا لبس فيه استخدام الكتلة الأخيرة الحالية، Br−1، من أجل اختيار مجموعة التحقق والقائد المسؤول بناء الكتلة الجديدة، Br، ليس كافيا. بما أنه يجب معرفة Br−1 قبل إنشاء Br، يجب أن تكون الكمية الأخيرة غير المؤثرة Qr−1 الموجودة في Br−1 معروفة أيضًا. وفقا لذلك، لذلك هم القائمون على التحقق والقائد المسؤول عن حساب الكتلة Br. وهكذا، خصمنا القوي قد يفسدهم جميعًا على الفور، قبل أن ينخرطوا في أي نقاش حول Br، حتى يحصلوا على السيطرة الكاملة على الكتلة التي يشهدون عليها. ولمنع حدوث هذه المشكلة، يعرف القادة (والمسؤولون عن التحقق أيضًا) سرًا عن دورهم، لكن يمكنهم فعل ذلك حساب بيانات الاعتماد المناسبة، القادرة على إثبات كل من لديه هذا الدور بالفعل. متى يدرك المستخدم سرًا أنه قائد الكتلة التالية، فيقوم أولاً بتجميع مجموعته سرًا الكتلة الجديدة المقترحة الخاصة به، ثم ينشرها (بحيث يمكن التصديق عليها) مع كتلته الخاصة بيانات الاعتماد. بهذه الطريقة، على الرغم من أن الخصم سيدرك على الفور من هو القائد التالي الكتلة موجودة، وعلى الرغم من أنه يستطيع إفساده على الفور، إلا أنه سيكون قد فات الأوان على الخصم أن يفعل ذلك التأثير على اختيار كتلة جديدة. في الواقع، لم يعد بإمكانه "الرد" على رسالة القائدمن أن تتمكن حكومة قوية من إعادة الرسالة التي انتشرت بسرعة عبر موقع ويكيليكس إلى القمقم. وكما سنرى، لا يمكننا أن نضمن تفرد القائد، ولا أن يكون الجميع متأكدين من هو القائد هو، بما في ذلك الزعيم نفسه! ولكن، في Algorand، سيتم ضمان التقدم الذي لا لبس فيه. 5. إمكانية استبدال اللاعب. وبعد أن يقترح كتلة جديدة، قد "يموت" القائد أيضًا (أو يموت). أفسده الخصم)، لأن مهمته قد انتهت. لكن بالنسبة للمحققين في SV r، فالأمور أقل بسيط. في الواقع، كونه مسؤولاً عن التصديق على الكتلة الجديدة Br بعدد كاف من التوقيعات، يجب عليهم أولاً تنفيذ الاتفاق البيزنطي بشأن الكتلة التي يقترحها القائد. المشكلة هي أن، بغض النظر عن مدى كفاءتها، تتطلب BA خطوات متعددة وأمانة > 2/3 من لاعبيها. هذه مشكلة، لأنه، لأسباب تتعلق بالكفاءة، تتكون مجموعة المشغلات من BA⋆ من المجموعة الصغيرة SV r تم اختياره عشوائيًا من بين مجموعة جميع المستخدمين. وهكذا، فإن خصمنا القوي، على الرغم من عدم قدرته على ذلك فاسد 1/3 من جميع المستخدمين، يمكنه بالتأكيد إفساد جميع أعضاء SV r! لحسن الحظ، سنثبت أن البروتوكول BA⋆، الذي يتم تنفيذه عن طريق نشر الرسائل بطريقة نظير إلى نظير، يمكن استبداله بواسطة اللاعب. هذا الشرط الجديد يعني أن البروتوكول بشكل صحيح و يصل إلى الإجماع بكفاءة حتى لو تم تنفيذ كل خطوة من خطواته بطريقة جديدة تمامًا وعشوائية وتم اختيار مجموعة من اللاعبين بشكل مستقل. وهكذا، مع الملايين من المستخدمين، كل مجموعة صغيرة من اللاعبين المرتبطة بخطوة BA⋆ على الأرجح تحتوي على تقاطع فارغ مع المجموعة التالية. بالإضافة إلى ذلك، من المحتمل أن تكون مجموعات اللاعبين ذوي الخطوات المختلفة لـ BA مختلفة تمامًا أصل. علاوة على ذلك، فإن أعضاء كل مجموعة لا يعرفون من ستكون المجموعة التالية من اللاعبين كن، ولا تمر سرا بأي حالة داخلية. تعد خاصية اللاعب القابل للاستبدال أمرًا بالغ الأهمية لهزيمة الديناميكية والقوية جدًا العدو الذي نتصوره. نعتقد أن بروتوكولات اللاعب القابل للاستبدال ستكون حاسمة في الكثير السياقات والتطبيقات. وعلى وجه الخصوص، سيكون لها دور حاسم في تنفيذ البروتوكولات الفرعية الصغيرة بشكل آمن جزء لا يتجزأ من عالم أكبر من اللاعبين الذين لديهم خصم ديناميكي قادر على إفساد حتى جزء صغير من إجمالي اللاعبين، ليس لديه صعوبة في إفساد جميع اللاعبين في الأصغر البروتوكول الفرعي. خاصية/تقنية إضافية: الصدق الكسول المستخدم الصادق يتبع تعليماته التعليمات، والتي تتضمن الاتصال بالإنترنت وتشغيل البروتوكول. نظرًا لأن Algorand لديه متواضع فقط متطلبات الحساب والاتصال، والبقاء على الإنترنت وتشغيل البروتوكول "في "الخلفية" ليست تضحية كبيرة. وبطبيعة الحال، هناك عدد قليل من "الغيابات" بين اللاعبين الشرفاء، مثل هؤلاء بسبب فقدان الاتصال المفاجئ أو الحاجة إلى إعادة التشغيل، يتم التسامح معها تلقائيًا (لأن يمكننا دائمًا اعتبار هؤلاء اللاعبين القلائل ضارين مؤقتًا). ولكن دعونا نشير، أن Algorand يمكن تعديله ببساطة للعمل في نموذج جديد، حيث يكون المستخدمون الصادقون غير متصل في معظم الأوقات. يمكن تقديم نموذجنا الجديد بشكل غير رسمي على النحو التالي. الصدق كسول. بشكل تقريبي، يكون المستخدم كسولًا ولكن صادقًا إذا (1) اتبع جميع تعليماته التعليمات، عندما يُطلب منه المشاركة في البروتوكول، و(2) يُطلب منه المشاركة نادراً ما يتم الالتزام بالبروتوكول، وبإشعار مسبق مناسب. مع مثل هذا المفهوم المريح للصدق، قد نكون أكثر ثقة في أن الأشخاص الصادقين سيكونون كذلك في متناول اليد عندما نحتاج إليها، ويضمن Algorand أنه، في هذه الحالة، يعمل النظام بشكل آمن حتى لو، في وقت معين، غالبية اللاعبين المشاركين ضارون.1.3 العمل ذو الصلة الوثيقة تعتبر أساليب إثبات العمل (مثل [29] و[4]) متعامدة تمامًا مع أساليبنا. كذلك هم الأساليب القائمة على الاتفاق البيزنطي لتمرير الرسائل أو التسامح العملي مع الخطأ البيزنطي (مثل المذكور [8]). في الواقع، لا يمكن تشغيل هذه البروتوكولات بين مجموعة جميع المستخدمين ولا يمكن، في نموذجنا، يقتصر على مجموعة صغيرة مناسبة من المستخدمين. في الواقع، خصمنا القوي قم بإفساد جميع المستخدمين المشاركين في مجموعة صغيرة مكلفة بتشغيل بروتوكول مكتبة الإسكندرية على الفور. يمكن اعتبار نهجنا متعلقًا بإثبات الحصة [2]، بمعنى أن "قوة" المستخدمين في بناء الكتل يتناسب مع الأموال التي يمتلكونها في النظام (على عكس - على سبيل المثال - إلى الأموال التي وضعوها في "الضمان"). الورقة الأقرب إلينا هي نموذج الإجماع النعسان لباس وشي [30]. لتجنب العمليات الحسابية الثقيلة المطلوبة في نهج proof-of-work، تعتمد ورقتهم على (ويرجى الاعتمادات) فرز التشفير السري لـ Algorand. مع هذا الجانب الحاسم المشترك، عدة توجد اختلافات كبيرة بين أوراقنا. على وجه الخصوص، (١) لا يجوز ضبطها إلا مأذونا بها. على النقيض من ذلك، Algorand هو أيضًا نظام غير مسموح به. (2) يستخدمون بروتوكولًا على طراز ناكاموتو، وبالتالي blockchain شوكاتهم بشكل متكرر. على الرغم من الاستغناء عن proof-of-work، في بروتوكولهم يُطلب من القائد المختار سرًا إطالة الأطول صلاحية (بمعنى أكثر ثراءً) blockchain. وبالتالي، لا يمكن تجنب الشوكات ويجب على المرء أن ينتظر ذلك فالكتلة "عميقة" بشكل كافٍ في السلسلة. في الواقع، لتحقيق أهدافهم مع الخصم قادرة على الفساد التكيفي، فهي تتطلب أن تكون الكتلة عميقة متعدد (N)، حيث تمثل N إجمالي عدد المستخدمين في النظام. لاحظ أنه حتى على افتراض إمكانية إنتاج كتلة في دقيقة واحدة، إذا كان هناك N = 1M مستخدم، فسيتعين على المرء الانتظار لمدة 2 مليون سنة تقريبًا كتلة لتصبح N2-deep، ولمدة عامين تقريبًا حتى تصبح الكتلة N-deep. على النقيض من ذلك، تشعبات Algorand blockchain فقط مع احتمال ضئيل، على الرغم من أن الخصم فاسد المستخدمين بشكل فوري وقابل للتكيف، ويمكن الاعتماد على كتله الجديدة على الفور. (3) لا يتعاملون مع الاتفاقيات البيزنطية الفردية. بمعنى أنهم يضمنون فقط "الإجماع النهائي على سلسلة متزايدة من القيم". إن بروتوكولهم هو بروتوكول النسخ المتماثل للدولة، بدلاً من ذلك من درجة البكالوريوس، ولا يمكن استخدامها للتوصل إلى اتفاق بيزنطي بشأن قيمة الفائدة الفردية. على النقيض من ذلك، يمكن أيضًا استخدام Algorand مرة واحدة فقط، إذا رغبت في ذلك، لتمكين الملايين من المستخدمين من التوصل إلى اتفاق بيزنطي بشأن قيمة محددة للفائدة. (4) أنها تتطلب ساعات متزامنة بشكل ضعيف. وهذا يعني أن ساعات جميع المستخدمين يتم تعويضها بوقت صغير δ. على النقيض من ذلك، في Algorand، تحتاج الساعات فقط (بشكل أساسي) إلى نفس "السرعة". (5) يعمل بروتوكولهم مع مستخدمين كسالى لكن صادقين أو مع أغلبية صادقة من مستخدمي الإنترنت. إنهم ينسبون الفضل إلى Algorand لإثارة مسألة المستخدمين الصادقين الذين ليسوا متصلين بالإنترنت بشكل جماعي، ول طرح نموذج الصدق الكسول في الرد. بروتوكولهم لا يعمل فقط في الكسالى نموذج الصدق، ولكن أيضًا في نموذجهم الخصامي النعاس، حيث يختار الخصم المستخدمين متصلين بالإنترنت وغير متصلين بالإنترنت، بشرط أن يكون غالبية مستخدمي الإنترنت صادقين في جميع الأوقات 2النسخة الأصلية من ورقتهم لم تأخذ في الاعتبار سوى الأمان في نموذجهم العدائي الهادئ. ال النسخة الأصلية من Algorand، والتي تسبق نسختهم، تتصور صراحة أيضًا افتراض أن أغلبية معينة من اللاعبون عبر الإنترنت دائمًا ما يكونون صادقين، لكنهم استبعدوه صراحةً من الاعتبار، لصالح نموذج الصدق الكسول. (على سبيل المثال، إذا اختار نصف المستخدمين الصادقين في وقت ما عدم الاتصال بالإنترنت، فإن غالبية المستخدمين عبر الإنترنت قد تكون ضارة جدًا. وبالتالي، لمنع حدوث ذلك، يجب على الخصم أن يجبر معظم قواته اللاعبين الفاسدين ليخرجوا عن الخط أيضًا، وهو ما يتعارض بشكل واضح مع مصلحته الخاصة.) لاحظ أن البروتوكول ذو الأغلبية من اللاعبين الكسالى ولكن الصادقين يعمل بشكل جيد إذا كان غالبية المستخدمين عبر الإنترنت ضارين دائمًا. هذا هو الحال، لأن إن عددًا كافيًا من اللاعبين الشرفاء، الذين يعلمون أنهم سيكونون حاسمين في وقت ما نادرًا، سوف ينتخبون ألا يخرجوا عن الخط في تلك اللحظات، ولا يمكن أن يجبرهم الخصم على الخروج من الخط، لأنه لا يعرف من قد يكون اللاعبون الصادقون حاسمين.(6) أنها تتطلب أغلبية صادقة بسيطة. على النقيض من ذلك، يتطلب الإصدار الحالي من Algorand أغلبية صادقة بنسبة 2/3. ورقة بحثية أخرى قريبة منا هي Ouroboros: بروتوكول Blockchain لإثبات الملكية الآمن والمثبت، بواسطة كيياس، راسل، ديفيد، وأولينيكوف [20]. كما ظهر نظامهم بعد نظامنا. إنه أيضًا يستخدم فرز التشفير للاستغناء عن إثبات العمل بطريقة يمكن إثباتها. ومع ذلك، بهم النظام هو، مرة أخرى، بروتوكول على طراز ناكاموتو، حيث تكون التفرعات متكررة ولا يمكن تجنبها. (ومع ذلك، في نموذجهم، لا تحتاج الكتل إلى عمق نموذج الإجماع الهادئ). علاوة على ذلك، يعتمد نظامهم على الافتراضات التالية: على حد تعبير المؤلفين أنفسهم، “(1) ال الشبكة متزامنة للغاية، (2) غالبية أصحاب المصلحة المختارين متاحون حسب الحاجة للمشاركة في كل عصر، (3) لا يظل أصحاب المصلحة غير متصلين بالإنترنت لفترات طويلة من الزمن، (4) تخضع قدرة التكيف مع الفساد إلى تأخير بسيط يتم قياسه بجولات خطية المعلمة الأمنية." على النقيض من ذلك، فإن Algorand، مع احتمالية ساحقة، خالية من التشعبات، و لا يعتمد على أي من هذه الافتراضات الأربعة. على وجه الخصوص، في Algorand، يستطيع الخصم القيام بذلك يفسد المستخدمين الذين يريد السيطرة عليهم على الفور.
기본 사항
2.1 암호화 프리미티브 이상적인 해싱. 우리는 효율적으로 계산 가능한 암호화 hash 함수 H에 의존할 것입니다. 임의로 긴 문자열을 고정 길이의 이진 문자열로 매핑합니다. 오랜 전통을 이어가며 모델로 활동하고 있습니다. H는 무작위 oracle로서 본질적으로 가능한 각 문자열 s를 무작위로 매핑하는 함수입니다. 선택한 길이의 이진 문자열 H(s)를 독립적으로 선택한(그리고 고정된) 본 논문에서 H는 256비트의 긴 출력을 갖는다. 실제로 그러한 길이는 충분히 짧습니다. 시스템을 안전하게 만들 수 있을 만큼 충분히 길고 효율적입니다. 예를 들어, 우리는 H가 충돌 복원력을 갖기를 원합니다. 즉, H(x) = H(y)가 되는 두 개의 서로 다른 문자열 x와 y를 찾는 것이 어려워야 합니다. H가 256비트 길이의 출력을 갖는 임의의 oracle인 경우 이러한 문자열 쌍을 찾는 것은 실제로 어렵다. (무작위로 시도하고 생일 역설에 의존하면 2256/2 = 2128이 필요합니다. 재판.) 디지털 서명. 디지털 서명을 통해 사용자는 서로 정보를 인증할 수 있습니다. 비밀 키를 공유하지 않고 공유합니다. 디지털 서명 체계는 세 가지 빠른 서명으로 구성됩니다. 알고리즘: 확률적 키 생성기 G, 서명 알고리즘 S, 검증 알고리즘 V. 충분히 높은 정수인 보안 매개변수 k가 주어지면 사용자 i는 G를 사용하여 다음 쌍을 생성합니다. k-비트 키(즉, 문자열): "공개" 키 pki 및 일치하는 "비밀" 서명 키 스키. 결정적으로, 공개 키는 해당 비밀 키를 "배신"하지 않습니다. 즉, pki에 대한 지식이 있어도 나 말고 다른 사람은 천문학적 시간보다 짧은 시간에 스키를 계산할 수 있습니다. 사용자 i는 스키를 사용하여 메시지에 디지털 서명을 합니다. 가능한 각 메시지(이진 문자열) m에 대해 i가 먼저 hashes m 그런 다음 입력 H(m)에 대해 알고리즘 S를 실행하고 k비트 문자열을 생성하기 위해 스키를 실행합니다. sigpki(m) \(\triangleq\)S(H(m), 스키) .3 3H는 충돌 복원력이 있기 때문에 하나에 서명함으로써 다른 서명에 "우연히 서명"하는 것은 사실상 불가능합니다. 메시지 m'.이진 문자열 sigpki(m)은 i의 m 디지털 서명(pki에 상대적)이라고 하며 다음과 같이 될 수 있습니다. 공개 키 pki가 문맥에서 명확할 때 sigi(m)로 더 간단하게 표시됩니다. pki를 아는 사람은 누구나 이를 사용하여 i가 생성한 디지털 서명을 확인할 수 있습니다. 구체적으로, 에 (a) 플레이어 i의 공개 키 pki, (b) 메시지 m, (c) 문자열 s, 즉 i가 주장하는 문자열을 입력합니다. 메시지 m의 디지털 서명에 대해 검증 알고리즘 V는 YES 또는 NO를 출력합니다. 디지털 서명 체계에 필요한 속성은 다음과 같습니다. 1. 적법한 서명은 항상 확인됩니다. s = sigi(m)이면 V(pki, m, s) = Y ES입니다. 그리고 2. 디지털 서명은 위조하기 어렵습니다. 스키에 대한 지식이 없으면 그러한 문자열을 찾는 데 시간이 걸립니다. i가 서명하지 않은 메시지 m의 경우 V(pki, m, s) = Y ES는 천문학적으로 길다. (Goldwasser, Micali 및 Rivest [17]의 강력한 보안 요구 사항에 따라 이는 사실입니다. 다른 메시지의 서명을 얻을 수 있는 경우에도 마찬가지입니다.) 따라서 다른 사람이 자신을 대신하여 메시지에 서명하는 것을 방지하려면 플레이어가 자신의 메시지를 보관해야 합니다. 키 스키 비밀(따라서 "비밀 키"라는 용어)에 서명하고 누구나 메시지를 확인할 수 있도록 합니다. 그가 서명하면 나는 그의 키 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'에도 적용됩니다. 공개 키. 그러나 특히 고유성 속성은 다음을 사용하는 경우 다음을 의미합니다. 일치하는 비밀 키 sk와 함께 공개 키 pk를 계산하기 위해 지정된 키 생성기 G, 따라서 sk를 알았더라면 그가 두 가지 다른 디지털 장치를 찾는 것도 본질적으로 불가능했을 것입니다. pk와 관련된 동일한 메시지의 서명.) 비고 • 고유 서명부터 검증 가능한 무작위 함수까지. 디지털에 비해 고유성 속성이 있는 서명 체계에서 m \(\to\) H(sigi(m)) 매핑은 다음과 연관됩니다. 가능한 각 문자열 m, 무작위로 선택된 고유한 256비트 문자열, 그리고 이 문자열의 정확성 서명 sigi(m)이 주어지면 매핑이 증명될 수 있습니다. 즉 고유성 속성을 본질적으로 만족시키는 이상적인 hashing 및 전자서명 방식이다. 소개된 바와 같이 검증 가능한 무작위 함수의 기본 구현을 제공합니다. Micali, Rabin 및 Vadhan [27]. (원래 구현은 필연적으로 더 복잡했습니다. 이상적인 hashing에 의존하지 않았기 때문입니다.)• 디지털 서명에 대한 세 가지 요구 사항. Algorand에서 내가 디지털에 의존하는 사용자는 서명 (1) 본인의 결제를 인증합니다. 이 애플리케이션에서 키는 "장기적"일 수 있습니다(예: 장기간에 걸쳐 많은 메시지에 서명) 일반적인 서명 체계에서 비롯됩니다. (2) i가 라운드 r의 일부 단계 s에서 행동할 자격이 있음을 증명하는 자격 증명을 생성합니다. 여기, 키는 장기적일 수 있지만 고유성 속성을 충족하는 체계에서 나와야 합니다. (3) 그가 행동하는 각 단계에서 내가 보내는 메시지를 인증합니다. 여기서 키는 다음과 같아야 합니다. 임시적(즉, 처음 사용 후 폐기됨)이지만 일반 서명 체계에서 나올 수 있습니다. • 적은 비용의 단순화. 단순화를 위해 각 사용자 i가 단일 장기 키를 갖는 것을 상상합니다. 따라서 이러한 키는 고유성을 지닌 서명 체계에서 나와야 합니다. 재산. 이러한 단순성은 계산 비용이 적습니다. 일반적으로 실제로 고유한 디지털 서명은 일반 서명보다 생성 및 확인 비용이 약간 더 비쌉니다. 2.2 이상적인 공공 원장 Algorand은 이상적인 공개 원장을 기반으로 다음 결제 시스템을 모방하려고 합니다. 1. 초기 상태. 돈은 개별 공개 키(개인적으로 생성되고 사용자 소유). pk1, . . . , pkj는 초기 공개 키이고 a1, . . . , j 각각의 초기 금액 단위의 경우 초기 상태는 다음과 같습니다. S0 = (pk1, a1), . . . , (pkj, aj) , 이는 시스템 내에서 상식으로 간주됩니다. 2. 지불. pk를 현재 0개 이상의 화폐 단위를 갖는 공개 키로 두고, pk′는 또 다른 공개 키로 둡니다. 키, 그리고 a′는 a보다 크지 않은 음수가 아닌 숫자입니다. 그렇다면 (유효한) 결제는 디지털 결제입니다. pk를 기준으로 a' 화폐 단위를 pk에서 pk'로 함께 전송하는 것을 지정하는 서명 몇 가지 추가 정보와 함께. 기호에서는, \(\wp\)= SIGpk(pk, pk′, a′, I, H(I)), 유용하지만 민감하지 않은 추가 정보(예: 시간 정보 및 결제 식별자) 및 민감한 것으로 간주되는 추가 정보(예: 지불 이유, pk 및 pk′ 소유자의 신원 등). 우리는 pk(또는 그 소유자)를 지불인으로, 각 pk'(또는 그 소유자)를 수취인으로, a'를 다음과 같이 지칭합니다. 결제 금액 \(\wp\). 결제를 통한 무료 가입. 사용자는 원할 때마다 시스템에 참여할 수 있습니다. 자신의 공개/비밀 키 쌍을 생성합니다. 따라서, 에 나타나는 공개키 pk'는 위의 지불은 돈을 "소유"한 적이 없는 새로 생성된 공개 키일 수 있습니다. 전에. 3. 매직 레저. 이상화된 시스템에서는 모든 결제가 유효하며 변조 방지 기능으로 표시됩니다. 모든 사람이 볼 수 있도록 "하늘에 게시된" 지불 세트 목록 L: L = 1페이, 2페이, . . . ,각 블록 PAY r+1은 블록 출현 이후 이루어진 모든 지불 세트로 구성됩니다. 지불 r. 이상적인 시스템에서는 고정된(또는 유한한) 시간이 지나면 새로운 블록이 나타납니다. 논의. • 더 많은 일반 지불 및 미사용 거래 출력. 보다 일반적으로 공개 키 pk가 a 금액을 소유한 경우 pk의 유효한 지불 \(\wp\)을 통해 금액 a′을 이체할 수 있습니다. 1, 아' 2, . . ., 각각 키 pk'에 1, PK′ 2, . . ., P가 있는 한 자아′ j \(\leq\)a. Bitcoin 및 유사한 시스템에서는 공개 키 pk가 소유한 자금이 별도의 자산으로 분리됩니다. 금액, pk가 지급한 금액은 해당 분리된 금액 전체를 이체해야 합니다. pk가 a의 a' < a 부분만 다른 키로 전송하려면 다음 키도 전송해야 합니다. 잔액, 사용되지 않은 트랜잭션 출력을 다른 키(아마도 pk 자체)로 보냅니다. Algorand은 금액이 분리된 키와도 작동합니다. 하지만, 그 부분에 집중하기 위해 Algorand의 새로운 측면으로 인해 더 단순한 결제 방식을 고수하는 것이 개념적으로 더 간단합니다. 그리고 그와 관련된 단일 금액을 갖는 키. • 현재 상태. 이상화된 계획은 현재에 대한 정보를 직접 제공하지 않습니다. 시스템 상태(즉, 각 공개 키에 얼마나 많은 화폐 단위가 있는지). 이 정보 Magic Ledger에서 추론할 수 있습니다. 이상적인 시스템에서는 활성 사용자가 최신 상태 정보를 지속적으로 저장하고 업데이트하며, 그렇지 않으면 처음부터 다시 작성해야 하거나 지난 번에 다시 작성해야 했을 것입니다. 그것을 계산했다. (이 백서의 다음 버전에서는 Algorand을 확장하여 사용자는 현재 상태를 효율적인 방식으로 재구성할 수 있습니다.) • 보안 및 "개인정보 보호". 디지털 서명은 누구도 결제를 위조할 수 없음을 보장합니다. 다른 사용자. 결제\(\wp\)에서는 공개키와 금액이 숨겨지지 않지만 민감한 정보는 정보는 나야. 실제로 \(\wp\)에는 H(I)만 나타나고 H는 이상적인 hash 함수이므로 H(I) 는 임의의 256비트 값이므로 내가 무엇을 더 잘했는지 알아낼 수 있는 방법이 없습니다. 단순히 추측하면 됩니다. 하지만 내가 어떤 사람인지 증명하기 위해(예: 지불 이유를 증명하기 위해) 지불자는 I를 공개할 수도 있습니다. 공개된 I의 정확성은 H(I)를 계산하여 확인할 수 있습니다. 그리고 그 결과 값을 \(\wp\)의 마지막 항목과 비교합니다. 실제로 H는 충돌 복원력이 있으므로 H(I) = H(I′)와 같은 두 번째 값 I′을 찾는 것은 어렵습니다. 2.3 기본 개념 및 표기법 키, 사용자 및 소유자 별도로 지정하지 않는 한, 각 공개 키(줄여서 "키")는 고유성을 지닌 디지털 서명 체계에 상대적이며 장기적입니다. 내가 조인하는 공개 키 이미 시스템에 있는 다른 공개 키 j가 i에 지불할 때 시스템이 작동합니다. 색상의 경우 키를 의인화합니다. 우리는 키 i를 "그"라고 부르며, 내가 정직하다고 말하고, 내가 보낸다고 말합니다. 메시지 등을 수신합니다. 사용자는 키의 동의어입니다. 키를 구별하고 싶을 때 해당 키가 속한 사람에 대해서는 각각 "디지털 키" 및 "소유자"라는 용어를 사용합니다. 무허가 및 허가 시스템. 디지털 키가 무료인 경우 시스템은 허가가 없습니다. 언제든지 가입할 수 있으며 소유자는 여러 개의 디지털 키를 소유할 수 있습니다. 그렇지 않으면 허가됩니다.고유한 표현 Algorand의 각 개체에는 고유한 표현이 있습니다. 특히, 각각은 {(x, y, z, . . . .) : x \(\in\)X, y \(\in\)Y, z \(\in\)Z, . . .}는 미리 지정된 방식으로 정렬됩니다. 예: 첫 번째 x에서 사전식으로, 그다음 y로, 등등. 동일 속도 클록 전역 시계는 없습니다. 오히려 각 사용자는 자신만의 시계를 갖습니다. 사용자 시계 어떤 방식으로든 동기화할 필요는 없습니다. 그러나 우리는 그것들이 모두 같은 속도를 가지고 있다고 가정합니다. 예를 들어, 사용자 i의 시계 기준으로 오후 12시라면, 기준으로는 오후 2시 30분일 수 있다. 다른 사용자 j의 시계는 i의 시계 기준으로 12시 1분, j의 시계 기준으로는 2시 31분입니다. j의 시계에. 즉, “모든 사용자에게 1분은 동일합니다(충분히, 본질적으로 동일함).” 라운드 Algorand은 논리 단위 r = 0, 1, 로 구성됩니다. . ., 라운드라고 합니다. 우리는 라운드를 표시하기 위해 지속적으로 위 첨자를 사용합니다. 숫자가 아닌 수량 Q를 나타냅니다. (예: 문자열, 공개 키, 집합, 디지털 서명 등)은 라운드 r을 참조하므로 간단히 Qr이라고 씁니다. Q가 실수인 경우에만(숫자로 해석할 수 있는 이진 문자열과 반대) 다음을 수행하십시오. 기호 r이 Q의 지수로 해석될 수 없도록 Q(r)을 씁니다. (a의 시작) 라운드 r > 0에서 모든 공개 키 세트는 PKr이고 시스템 상태는 다음과 같습니다. 선생님 = 엔 나, a(r) 나 , . . . : 나는 \(\in\)PKro , 여기서 a(r) 나 공개 키 i에 사용할 수 있는 금액입니다. PKr은 다음에서 추론할 수 있습니다. Sr, Sr은 각 공개 키에 대해 다른 구성 요소를 지정할 수도 있습니다. i. 0 라운드의 경우 PK0은 초기 공개 키 집합이고 S0은 초기 상태입니다. PK0과 S0는 시스템에서 상식으로 간주됩니다. 단순화를 위해 라운드 r의 시작 부분에서 PK1, . . . , PKr 및 S1, . . . , 선생님 라운드 r에서 시스템 상태는 Sr에서 Sr+1로 전환됩니다. 라운드 r: Sr −→Sr+1. 결제 Algorand에서는 사용자가 지속적으로 결제를 합니다. 하위 섹션 2.7에 설명되어 있습니다. 사용자 i \(\in\)PKr의 결제 \(\wp\)는 동일한 형식과 의미를 갖습니다. 이상적인 시스템에서와 마찬가지로. 즉, \(\wp\)= SIGi(i, i′, a, I, H(I)) . 지불 \(\wp\)은 (1) 금액인 경우 r 라운드에서 개별적으로 유효합니다(간략히 r 라운드 지불). a는 a(r)보다 작거나 같습니다. i, 그리고 (2) r′ < r에 대해 공식 페이세트 PAY r′에는 나타나지 않습니다. (아래 설명과 같이 두 번째 조건은 \(\wp\)이 아직 유효하지 않음을 의미합니다. i의 라운드 r 지불 세트는 해당 금액의 합계가 최대 a(r)인 경우 집합적으로 유효합니다. 나. 지불 세트 라운드 R 지불 세트 P는 각 사용자 i에 대해 지불이 이루어지는 라운드 R 지불 세트입니다. P의 i(아마도 없음)는 집합적으로 유효합니다. 모든 round-r 페이세트의 집합은 PAY(r)입니다. 라운드 R P의 상위 집합이 라운드 R 지불 집합이 아닌 경우 지불 집합 P는 최대입니다. 우리는 실제로 지불 \(\wp\)이 라운드 \(\rho\), \(\wp\)= SIGi(\(\rho\), i, i′, a, I, H(I))를 지정하는 것을 제안합니다. 일부 고정된 음수가 아닌 정수 k에 대해 [\(\rho\), \(\rho\) + k] 외부의 모든 라운드에서는 유효할 수 없습니다. 4이것은 \(\wp\)가 "효과적"인지 확인하는 것을 단순화합니다(즉, 일부 급여 세트가 유효한지 여부를 결정하는 것을 단순화합니다) PAY r에는 \(\wp\)가 포함되어 있습니다. k = 0일 때 \(\wp\)= SIGi(r, i, i′, a, I, H(I)) 및 \(\wp\)/\(\in\)PAY r인 경우 \(\wp\)를 다시 제출해야 합니다.ffi공용지불세트 모든 라운드 r에 대해 Algorand은 (나중에 설명하는 방식으로) 공개적으로 선택합니다. 단일(비어 있을 수도 있음) 페이세트, PAY r, 라운드의 공식 페이세트. (본질적으로 PAY r은 "실제로" 발생한 라운드 R 지불.) 이상적인 시스템(및 Bitcoin)에서와 마찬가지로 (1) 새로운 사용자 j가 시스템에 들어갈 수 있는 유일한 방법입니다. 주어진 라운드 r의 공식 지불 세트 PAY r에 속하는 지불의 수령인입니다. 그리고 (2) PAY r은 현재 라운드 Sr에서 다음 라운드 Sr+1의 상태를 결정합니다. 상징적으로, PAY r : Sr −→Sr+1. 구체적으로, 1. 라운드 r + 1의 공개 키 세트인 PKr+1은 PKr의 합집합과 모든 키 세트로 구성됩니다. PAY r의 지불에 처음으로 나타나는 수취인 키; 그리고 2. 금액 a(r+1) 나 라운드 r + 1에서 사용자 i가 소유한 것은 ai(r)의 합입니다. 즉, 이전 라운드에서 내가 소유한 금액(i ̸\(\in\)PKr인 경우 0) — 및 금액의 합계 PAY r의 지불에 따라 i에게 지불됩니다. 요약하자면, 이상적인 시스템에서와 같이 각 상태 Sr+1은 이전 지불 내역에서 공제 가능합니다. 지불 0, . . . , 지불 r. 2.4 블록과 검증된 블록 Algorand0에서 라운드 r에 해당하는 블록 Br은 r 자체를 지정합니다. 지불 세트 r 라운드, PAY 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에서는 블록의 신뢰성이 실제로 별도의 정보로 보증됩니다. Br을 입증된 블록인 Br로 바꾸는 "블록 인증서" CERT r. 따라서 매직 레저는 검증된 블록의 순서로 구현되며, B1, B2, . . . 토론 앞으로 살펴보겠지만 CERT r은 H(Br)에 대한 디지털 서명 세트로 구성됩니다. SV r 회원의 대다수와 각 회원이 실제로 속해 있다는 증거 SV r에. 물론 블록 자체에 CERT r 인증서를 포함할 수도 있지만 찾을 수는 없습니다. 개념적으로는 별도로 유지하는 것이 더 깔끔합니다.) Bitcoin에서 각 블록은 특별한 속성을 충족해야 합니다. 즉, "다음의 해를 포함해야 합니다. 암호화 퍼즐”, 이는 블록 생성을 계산 집약적으로 만들고 포크를 모두 불가피하게 만듭니다. 그리고 드물지 않습니다. 대조적으로, Algorand의 blockchain에는 두 가지 주요 장점이 있습니다. 최소한의 계산으로, 압도적으로 높은 확률로 포크되지 않습니다. 각 블록 Bi는 blockchain에 들어가자마자 안전하게 최종 처리됩니다.2.5 허용 가능한 실패 확률 Algorand의 보안을 분석하기 위해 우리는 확률 F를 지정합니다. 무언가 잘못되었다는 사실을 받아들입니다(예: 검증자 세트 SV r이 정직한 다수를 갖지 않는다는 사실). 암호화 hash 함수 H의 출력 길이의 경우와 마찬가지로 F도 매개변수입니다. 그러나 이 경우와 마찬가지로 보다 직관적인 결과를 얻기 위해 F를 구체적인 값으로 설정하는 것이 유용하다는 것을 알았습니다. Algorand에서는 동시에 충분한 보안을 누리는 것이 실제로 가능하다는 사실을 이해합니다. 그리고 충분한 효율성. F는 원하는 대로 설정할 수 있는 매개변수임을 강조하기 위해 처음에는 두 번째 실시예는 각각 설정했습니다. F = 10−12 그리고 F = 10−18 . 토론 10-12는 실제로 1조분의 1보다 적다는 점에 유의하세요. 우리의 응용 프로그램에서는 F를 선택하는 것이 적절합니다. 10-12는 확률이 아니라는 점을 강조하겠습니다. 이를 통해 공격자는 정직한 사용자의 지불금을 위조할 수 있습니다. 모든 결제는 디지털 방식으로 이루어집니다. 서명되므로 적절한 디지털 서명을 사용하면 결제가 위조될 확률은 다음과 같습니다. 10-12보다 훨씬 낮으며 실제로 본질적으로 0입니다. 우리가 기꺼이 용납할 수 있는 나쁜 사건 확률 F는 Algorand의 blockchain 포크입니다. F로 설정하면 1분 길이의 라운드에서는 Algorand의 blockchain에서 포크가 드물게 발생할 것으로 예상됩니다. (대략) 190만 년에 한 번. 대조적으로, Bitcoin에서는 포크가 꽤 자주 발생합니다. 더 까다로운 사람은 F를 더 낮은 값으로 설정할 수 있습니다. 이를 위해 두 번째 실시예에서는 F를 10−18로 설정하는 것을 고려합니다. 참고로 1초마다 블록이 생성된다고 가정하면 1018입니다. 빅뱅부터 현재까지 우주가 우주에 걸린 추정 시간(초)입니다. 시간. 따라서 F = 10−18인 경우 블록이 1초 안에 생성되면 다음과 같은 기간을 예상해야 합니다. 포크를 볼 수 있는 우주. 2.6 적대적 모델 Algorand은 매우 적대적인 모델에서 보안을 유지하도록 설계되었습니다. 설명해 보겠습니다. 정직하고 악의적인 사용자 사용자가 자신의 모든 프로토콜 지침을 따르면 정직합니다. 메시지를 완벽하게 보내고 받을 수 있습니다. 사용자가 악의적입니다(즉, 비잔틴, 분산 컴퓨팅의 용어) 규정된 지침에서 임의로 벗어날 수 있는 경우. 대적 대적자는 색상을 의인화한 효율적인(기술적으로 다항식 시간) 알고리즘으로, 원하는 사용자를 언제라도 즉시 악의적으로 만들 수 있습니다(주제 그가 손상시킬 수 있는 사용자 수의 상한선까지만). 대적은 모든 악의적인 사용자를 완전히 통제하고 완벽하게 조정합니다. 그는 모든 조치를 취한다 모든 메시지를 받고 보내는 것을 포함하여 그들을 대신하여 그들이 다음에서 벗어나도록 할 수 있습니다. 임의의 방식으로 규정된 지침을 제공합니다. 아니면 단순히 전송을 보내는 손상된 사용자를 격리할 수도 있습니다. 그리고 메시지 수신. 사용자 i가 악의적이라는 사실을 자동으로 아는 사람은 아무도 없다는 점을 분명히 합시다. 대적이 그에게 취하는 행동으로 인해 나의 악의가 나타날 수도 있습니다. 그러나 이 강력한 적수는 • 무한한 계산 능력이 없으며 디지털 데이터를 성공적으로 위조할 수 없습니다. 가능성이 거의 없는 경우를 제외하고는 정직한 사용자의 서명입니다. 그리고• 정직한 사용자 간의 메시지 교환을 어떤 식으로든 방해할 수 없습니다. 게다가 정직한 사용자를 공격하는 그의 능력은 다음 가정 중 하나에 의해 제한됩니다. 정직이 대부분의 돈 우리는 HMM(Honest Majority of Money)의 연속체를 고려합니다. 가정: 즉, 음이 아닌 정수 k와 실수 h > 1/2에 대해, HHMk > h: 모든 라운드 r의 정직한 사용자는 전체 돈의 h보다 더 큰 부분을 소유했습니다. 라운드 r −k에서의 시스템. 논의. 모든 악의적인 사용자가 자신의 행동을 완벽하게 조정한다고 가정합니다(마치 통제된 것처럼). 단일 실체, 즉 적에 의한)는 다소 비관적인 가설입니다. 너무 완벽한 조화 많은 개인이 달성하기 어렵습니다. 아마도 조정은 별도의 그룹 내에서만 발생할 수 있습니다. 악의적인 플레이어. 하지만 악의적인 사용자의 조정 수준을 확신할 수 없기 때문에 즐길 수도 있고, 후회하는 것보다 안전한 것이 낫습니다. 공격자가 은밀하게, 동적으로, 즉각적으로 사용자를 손상시킬 수 있다고 가정하는 것도 비관적이다. 결국 현실적으로 사용자 작업을 완전히 제어하려면 시간이 좀 걸립니다. 예를 들어, HMMk > h라는 가정은 라운드(평균)가 구현되면 다음을 의미합니다. 그러면 1분 안에 해당 라운드의 돈 대부분이 정직한 손에 남게 됩니다. k = 120인 경우 최소 2시간, k = 10,000인 경우 최소 1주일. HMM 가정과 이전의 정직한 컴퓨팅 파워(Honest Majority of Computing Power) 가정은 컴퓨팅 능력을 돈으로 살 수 있다는 점에서 관련이 있습니다. 악의적인 사용자가 대부분의 돈을 소유하고 있다면 대부분의 컴퓨팅 능력을 얻을 수 있습니다. 2.7 커뮤니케이션 모델 우리는 메시지 전파, 즉 "P2P 가십"5을 유일한 수단으로 생각합니다. 의사소통. 임시 가정: 전체 네트워크에서 메시지가 적시에 전달됩니다. 에 대한 이 백서의 대부분에서는 전파된 모든 메시지가 거의 모든 정직한 사용자에게 전달된다고 가정합니다. 적시에. 우리는 네트워크를 다루는 섹션 10에서 이 가정을 제거할 것입니다. 자연적으로 발생하거나 적대적으로 유도된 파티션. (앞으로 살펴보겠지만, 우리는 단지 가정만 할 뿐입니다. 네트워크의 연결된 각 구성 요소 내에서 메시지를 적시에 전달합니다.) (전체 네트워크에서) 전파된 메시지의 적시 전달을 캡처하는 구체적인 방법 중 하나는 다음과 같습니다. 다음: 모든 도달 가능성 \(\rho\) > 95% 및 메시지 크기 \(\mu\) \(\in\)Z+에 대해 다음과 같은 \(\lambda\) \(\rho\),μ가 존재합니다. 정직한 사용자가 시간 t에 \(\mu\)바이트 메시지 m을 전파하면, 그런 다음 m은 t + \(\lambda\) \(\rho\),μ 시간까지 정직한 사용자의 적어도 일부 \(\rho\)에 도달합니다. 5기본적으로 Bitcoin에서와 같이 사용자가 메시지 m을 전파하면 모든 활성 사용자는 처음으로 m을 수신하고 무작위로 그리고 독립적으로 적절하게 적은 수의 활성 사용자인 "이웃"을 선택하여 m을 전달합니다. 아마도 그가 그들로부터 승인을 받을 때까지 말이죠. m의 전파는 사용자가 수신하지 않으면 종료됩니다. m 처음으로요.그러나 위의 속성은 다른 사용자/저장소/등에 의해 최신 blockchain을 얻기 위한 메커니즘을 명시적이고 별도로 구상하지 않고서는 우리의 Algorand 프로토콜을 지원할 수 없습니다. 실제로, 새로운 블록 Br을 생성하려면 적절한 검증자 세트가 적시에 라운드 r을 수신해야 할 뿐만 아니라 메시지뿐만 아니라 이전 라운드의 메시지도 포함하여 Br−1 및 기타 이전 라운드의 모든 메시지를 파악합니다. Br로 지불한 금액이 유효한지 확인하는 데 필요한 블록입니다. 다음 대신 가정이 성공합니다. MP(메시지 전파) 가정: 모든 \(\rho\) > 95% 및 μ \(\in\)Z+에 대해 \(\lambda\) \(\rho\),μ가 존재합니다. 따라서 모든 시간 t와 모든 \(\mu\)바이트 메시지 m은 t −\(\lambda\) \(\rho\),μ 이전에 정직한 사용자에 의해 전파되었습니다. m은 정직한 사용자의 적어도 일부 \(\rho\)에 의해 시간 t까지 수신됩니다. 프로토콜 Algorand '은 실제로 소수의 사용자(즉, 검증자)에게 각각 지시합니다. Algorand '의 라운드 단계에서 (작은) 규정된 크기의 별도 메시지를 전파하기 위해, 그리고 우리는 이러한 지침을 이행하는 데 필요한 시간을 제한해야 합니다. 우리는 국회의원을 풍부하게 함으로써 그렇게 합니다. 다음과 같이 가정합니다. 모든 n, \(\rho\) > 95% 및 \(\mu\) \(\in\)Z+에 대해 모든 시간 t 및 모든 \(\mu\) 바이트에 대해 다음과 같은 \(\lambda\)n,\(\rho\),μ가 존재합니다. 메시지 m1, . . . , mn, 각각은 t −\(\lambda\)n,\(\rho\),μ, m1, . . . , 백만 개가 수신되었습니다. 시간 t까지, 정직한 사용자의 적어도 일부 \(\rho\)만큼. 참고 • 위의 가정은 의도적으로 단순하지만 우리 논문에서 필요한 것보다 더 강력합니다.6 • 단순화를 위해 \(\rho\) = 1이라고 가정하므로 \(\rho\)에 대한 언급은 생략합니다. • 우리는 그가 MP의 가정을 위반하지 않는 한, 적대자가 모든 메시지의 전달을 완전히 제어합니다. 특히 솔직한 사람의 눈에 띄지 않게 사용자는 어느 정직한 플레이어가 어떤 메시지를 받을지 임의로 결정할 수 있습니다. 그가 원하는 메시지의 전달 속도를 임의로 가속화합니다.7
المقدمات
2.1 بدايات التشفير التجزئة المثالية. يجب أن نعتمد على دالة تشفير حاسوبية فعالة hash، H، التي يرسم سلاسل طويلة بشكل تعسفي إلى سلاسل ثنائية ذات طول ثابت. بعد تقليد طويل، نحن نصمم H كدالة عشوائية oracle، وهي في الأساس دالة تقوم بتعيين كل سلسلة ممكنة بشكل عشوائي و سلسلة ثنائية مختارة بشكل مستقل (ثم ثابتة)، H(s)، من الطول المختار. في هذه الورقة، H لديه مخرجات طويلة 256 بت. في الواقع، هذا الطول قصير بما يكفي لجعله كفاءة النظام وطويلة بما يكفي لجعل النظام آمنًا. على سبيل المثال، نريد أن يكون H مقاومًا للتصادم. وهذا يعني أنه يجب أن يكون من الصعب العثور على سلسلتين مختلفتين x وy بحيث يكون H(x) = H(y). عندما يكون H عشوائيًا oracle بمخرجات طويلة 256 بت، فإن العثور على أي زوج من هذه السلاسل هو بالفعل صعب. (المحاولة العشوائية، والاعتماد على مفارقة عيد الميلاد، سوف تتطلب 2256/2 = 2128 المحاكمات.) التوقيع الرقمي. تسمح التوقيعات الرقمية للمستخدمين بمصادقة المعلومات لبعضهم البعض دون مشاركة أي مشاركة أي مفاتيح سرية. يتكون نظام التوقيع الرقمي من ثلاثة سريعة الخوارزميات: مولد المفاتيح الاحتمالية G، وخوارزمية التوقيع S، وخوارزمية التحقق V. بالنظر إلى معلمة الأمان k، وهو عدد صحيح مرتفع بدرجة كافية، يستخدم المستخدم i G لإنتاج زوج من مفاتيح k-bit (أي السلاسل): مفتاح pki "عام" ومفتاح توقيع "سري" مطابق. بشكل حاسم، أ المفتاح العام لا "يخون" مفتاحه السري المقابل. وهذا هو، حتى في ضوء معرفة pki، لا شخص آخر غيري قادر على حساب التزلج في أقل من زمن فلكي. المستخدم الأول يستخدم التزلج لتوقيع الرسائل رقميًا. لكل رسالة محتملة (سلسلة ثنائية) m، i أولاً hashes m ثم يقوم بتشغيل الخوارزمية S على المدخلات H(m) والتزلج لإنتاج سلسلة k-bit sigpki(m) \(\triangleq\)S(H(m), تزلج) .3 3 نظرًا لأن H مرن ضد الاصطدام، فمن المستحيل عمليًا أنه من خلال التوقيع على شخص ما "يوقع بطريق الخطأ" علامة مختلفة رسالة م'.يشار إلى السلسلة الثنائية sigpki(m) بالتوقيع الرقمي لـ m (بالنسبة إلى pki)، ويمكن أن تكون يُشار إليه ببساطة بـ sigi(m)، عندما يكون المفتاح العام pki واضحًا من السياق. يمكن لأي شخص يعرف pki استخدامه للتحقق من التوقيعات الرقمية التي تنتجها i. على وجه التحديد، على المدخلات (أ) المفتاح العام pki الخاص بالمشغل i، و(ب) الرسالة m، و(ج) السلسلة s، أي المزعومة التوقيع الرقمي للرسالة m، ستخرج خوارزمية التحقق V إما نعم أو لا. الخصائص التي نطلبها من نظام التوقيع الرقمي هي: 1. يتم التحقق دائمًا من صحة التوقيعات: إذا كانت s = sigi(m)، فإن V (pki, m, s) = Y ES؛ و 2. من الصعب تزوير التوقيعات الرقمية: دون معرفة التزلج، يكون الوقت المناسب للعثور على سلسلة من هذا القبيل أن V (pki, m, s) = Y ES، بالنسبة للرسالة m التي لم يتم التوقيع عليها من قبل i، طويلة بشكل فلكي. (في أعقاب متطلبات الأمان القوية لـ Goldwasser وMicali وRivest [17]، هذا صحيح حتى لو أمكن الحصول على توقيع أي رسالة أخرى.) وعليه، لمنع أي شخص آخر من توقيع الرسائل نيابة عنه، يجب أن أحتفظ باللاعب الخاص به التوقيع على مفتاح التزلج السري (ومن هنا جاء مصطلح "المفتاح السري")، ولتمكين أي شخص من التحقق من الرسائل لقد قام بالتوقيع، ولدي مصلحة في نشر مفتاح 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′ بهذه الطريقة ق̸= س' و V (pk′, m, s) = V (pk′, m, s′) = 1. (لاحظ أن خاصية التفرد تنطبق أيضًا على السلاسل pk′ التي لم يتم إنشاؤها بشكل قانوني المفاتيح العامة. على وجه الخصوص، فإن خاصية التفرد تعني أنه إذا استخدم الشخص مولد المفتاح المحدد G لحساب المفتاح العام pk مع المفتاح السري المطابق sk، وبالتالي، عرف SK، سيكون من المستحيل عليه أيضًا العثور على جهازين رقميين مختلفين توقيعات نفس الرسالة بالنسبة إلى pk.) ملاحظات • من التوقيعات الفريدة إلى وظائف عشوائية يمكن التحقق منها. نسبة إلى الرقمية مخطط التوقيع مع خاصية التفرد، يرتبط التعيين m \(\to\) H(sigi(m)) بـ كل سلسلة محتملة m، سلسلة فريدة ومختارة عشوائيًا مكونة من 256 بت، وصحة ذلك يمكن إثبات التعيين باستخدام التوقيع sigi(m). وهذا يعني أن نظام hash المثالي للتوقيع الرقمي يلبي خاصية التفرد بشكل أساسي توفير تنفيذ أولي لوظيفة عشوائية يمكن التحقق منها، كما تم تقديمها وبواسطة ميكالي ورابين وفادهان [27]. (كان تنفيذها الأصلي بالضرورة أكثر تعقيدًا، نظرًا لأنهم لم يعتمدوا على hashing المثالي.)• ثلاثة احتياجات مختلفة للتوقيعات الرقمية. في Algorand، يعتمد المستخدم على الرقمي التوقيعات ل (1) المصادقة على المدفوعات الخاصة بي. في هذا التطبيق، يمكن أن تكون المفاتيح "طويلة الأجل" (أي تستخدم ل التوقيع على العديد من الرسائل على مدى فترة طويلة من الزمن) وتأتي من نظام التوقيع العادي. (2) إنشاء بيانات اعتماد تثبت أنه يحق لي التصرف في بعض الخطوات من الجولة r. هنا، يمكن أن تكون المفاتيح طويلة المدى، ولكن يجب أن تأتي من مخطط يلبي خاصية التفرد. (3) التحقق من صحة الرسالة التي يرسلها في كل خطوة يقوم بها. هنا، يجب أن تكون المفاتيح سريعة الزوال (أي يتم تدميرها بعد استخدامها لأول مرة)، ولكن يمكن أن تأتي من نظام التوقيع العادي. • تبسيط بتكلفة صغيرة. من أجل التبسيط، نتصور أن يكون لدى كل مستخدم مفتاح واحد طويل المدى. وبناء على ذلك، يجب أن يأتي مثل هذا المفتاح من مخطط التوقيع مع التفرد الملكية. هذه البساطة لها تكلفة حسابية صغيرة. عادة، في الواقع، رقمية فريدة من نوعها يعد إنتاج التوقيعات والتحقق منها أكثر تكلفة قليلاً من التوقيعات العادية. 2.2 دفتر الأستاذ العام المثالي يحاول Algorand تقليد نظام الدفع التالي، استنادًا إلى دفتر الأستاذ العام المثالي. 1. الحالة الأولية. يرتبط المال بالمفاتيح العامة الفردية (التي تم إنشاؤها بشكل خاص و المملوكة للمستخدمين). السماح pk1، . . . ، pkj يكون المفاتيح العامة الأولية وa1، . . . ، كل منهما المبالغ الأولية من وحدات المال، ثم الحالة الأولية هي S0 = (pk1، a1)، . . . ، (بكج، اج)، والتي من المفترض أن تكون معرفة عامة في النظام. 2. المدفوعات. دع pk يكون مفتاحًا عامًا يحتوي حاليًا على \(\geq\)0 وحدة نقدية، وpk′ عام آخر مفتاح، و'a' رقم غير سالب لا يزيد عن a. إذن، الدفع (الصالح) \(\wp\)هو رقمي التوقيع، بالنسبة إلى pk، يحدد نقل الوحدات النقدية من pk إلى pk′، معًا مع بعض المعلومات الإضافية. في الرموز، \(\wp\)= SIGpk(pk, pk′, a′, I, H(I)), حيث أمثل أي معلومات إضافية تعتبر مفيدة ولكنها ليست حساسة (على سبيل المثال، الوقت المعلومات ومعرف الدفع)، وأي معلومات إضافية تعتبر حساسة (على سبيل المثال، سبب الدفع، ربما هويات أصحاب pk وpk'، وما إلى ذلك). نشير إلى pk (أو مالكه) باعتباره الدافع، وإلى كل pk′ (أو مالكه) باعتباره المستفيد، وإلى a′ باسم مبلغ الدفع \(\wp\). الانضمام مجاني عن طريق الدفع. لاحظ أنه يمكن للمستخدمين الانضمام إلى النظام متى أرادوا ذلك إنشاء أزواج المفاتيح العامة/السرية الخاصة بهم. وبناء على ذلك، فإن المفتاح العام pk′ الذي يظهر في قد تكون الدفعة المذكورة أعلاه عبارة عن مفتاح عام تم إنشاؤه حديثًا ولم "يمتلك" أي أموال على الإطلاق من قبل. 3. دفتر الأستاذ السحري. في النظام المثالي، جميع المدفوعات صالحة وتظهر بشكل مانع للتلاعب قائمة L من مجموعات المدفوعات "المعلنة في السماء" ليراها الجميع: L = ادفع 1، ادفع 2، . . . ,تتكون كل كتلة PAY r+1 من مجموعة جميع المدفوعات التي تم إجراؤها منذ ظهور الكتلة دفع ص. في النظام المثالي، تظهر كتلة جديدة بعد فترة زمنية ثابتة (أو محدودة). مناقشة. • المزيد من المدفوعات العامة ومخرجات المعاملات غير المنفقة. وبشكل أكثر عمومية، إذا كان المفتاح العام يمتلك pk مبلغًا a، فإن دفعة صالحة \(\wp\)من pk قد تحول المبالغ a′ 1، أ' 2، . . ., على التوالي إلى المفاتيح pk' 1، بك' 2، . . .، طالما P ي أ ' ي \(\geq\)أ. في Bitcoin والأنظمة المشابهة، يتم فصل الأموال المملوكة لمفتاح عام pk إلى أجزاء منفصلة المبالغ، والدفعة \(\wp\) التي تتم بواسطة pk يجب أن تحول مثل هذا المبلغ المنفصل a بالكامل. إذا كان pk يرغب في نقل جزء فقط من a′ < a من a إلى مفتاح آخر، فيجب عليه أيضًا نقل الرصيد، ومخرجات المعاملة غير المنفقة، إلى مفتاح آخر، ربما pk نفسه. Algorand يعمل أيضًا مع المفاتيح ذات المبالغ المنفصلة. ومع ذلك، من أجل التركيز على جوانب جديدة من Algorand، من الأسهل من الناحية المفاهيمية الالتزام بأشكال الدفع الأبسط لدينا والمفاتيح التي لها مبلغ واحد مرتبط بها. • الوضع الحالي. لا يقدم المخطط المثالي معلومات مباشرة حول التيار حالة النظام (أي عدد الوحدات المالية التي يمتلكها كل مفتاح عام). هذه المعلومات يمكن استنتاجه من دفتر الأستاذ السحري. في النظام المثالي، يقوم المستخدم النشط باستمرار بتخزين وتحديث أحدث معلومات الحالة، أو كان سيتعين عليه إعادة بنائه، إما من الصفر، أو من آخر مرة قام فيها بذلك حسبتها. (في الإصدار التالي من هذه الورقة، سنقوم بزيادة Algorand لتمكينها المستخدمين لإعادة بناء الوضع الحالي بطريقة فعالة.) • الأمن و"الخصوصية". تضمن التوقيعات الرقمية عدم تمكن أي شخص من تزوير الدفع عن طريقها مستخدم آخر. في الدفع \(\wp\)، لا يتم إخفاء المفاتيح العامة والمبلغ، بل الحساس المعلومات أنا. في الواقع، يظهر H(I) فقط في \(\wp\)، وبما أن H دالة hash مثالية، فإن H(I) هي قيمة عشوائية تبلغ 256 بت، وبالتالي لا توجد طريقة لمعرفة ما الذي كنت أفضل منه من خلال مجرد تخمين ذلك. ومع ذلك، لإثبات ما كنت عليه (على سبيل المثال، لإثبات سبب الدفع) فإن قد يكشف الدافع فقط عن 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، وما إلى ذلك. ساعات بنفس السرعة لا توجد ساعة عالمية: بل كل مستخدم لديه ساعته الخاصة. ساعات المستخدم لا يلزم أن تكون متزامنة بأي شكل من الأشكال. ولكننا نفترض أن جميعها لها نفس السرعة. على سبيل المثال، عندما تكون الساعة 12 ظهرًا وفقًا لساعة المستخدم i، فقد تكون الساعة 2:30 ظهرًا وفقًا لساعة المستخدم. ساعة مستخدم آخر j، ولكن عندما تكون الساعة 12:01 وفقًا لساعة i، ستكون 2:31 وفقًا لساعة i إلى ساعة j. وهذا يعني أن "الدقيقة الواحدة هي نفسها (بشكل كافٍ، ونفس الشيء) لكل مستخدم". جولات Algorand منظم في وحدات منطقية، r = 0, 1, . . .، تسمى جولات. نحن نستخدم باستمرار الحروف الفوقية للإشارة إلى الجولات. للإشارة إلى أن كمية غير رقمية Q (على سبيل المثال، سلسلة، مفتاح عام، مجموعة، توقيع رقمي، وما إلى ذلك) تشير إلى شكل دائري r، نكتب ببساطة Qr. فقط عندما يكون Q رقمًا حقيقيًا (على عكس سلسلة ثنائية يمكن تفسيرها كرقم)، افعل ذلك نكتب Q(r)، بحيث لا يمكن تفسير الرمز r على أنه أس Q. عند (بداية a) الجولة r > 0، تكون مجموعة كافة المفاتيح العامة هي PKr، وحالة النظام هي ريال = ن أنا، أ (ص) أنا . . . : أنا \(\in\)PKro , حيث (ص) أنا هو مقدار المال المتاح للمفتاح العام أنا. لاحظ أن PKr يمكن استنتاجه من Sr، وقد يحدد ذلك Sr أيضًا مكونات أخرى لكل مفتاح عام. بالنسبة للجولة 0، PK0 هي مجموعة المفاتيح العامة الأولية، وS0 هي الحالة الأولية. كل من PK0 و من المفترض أن تكون S0 معرفة شائعة في النظام. للتبسيط، في بداية الجولة r، هكذا هي PK1، . . . ، PKr و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) مبلغها ا أقل من أو يساوي أ(ص) i و (2) لا يظهر في أي مجموعة دفع رسمية PAY r′ for r′ < r. (كما هو موضح أدناه، الشرط الثاني يعني أن \(\wp\)لم تصبح فعالة بالفعل. تكون مجموعة الدفعات الدائرية لـ i صالحة بشكل جماعي إذا كان مجموع مبالغها على الأكثر a(r) أنا. مجموعات الدفع مجموعة الدفع المستديرة P عبارة عن مجموعة من الدفعات الدائرية بحيث تكون المدفوعات لكل مستخدم i من i في P (ربما لا شيء) صالحة بشكل جماعي. مجموعة جميع مجموعات الدفع المستديرة هي PAY(r). جولة ص تكون مجموعة الدفع P هي الحد الأقصى إذا لم تكن هناك مجموعة شاملة من P عبارة عن مجموعة دفع دائرية. نقترح في الواقع أن الدفعة \(\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\)/\(\in\)PAY r، فيجب علي إعادة تقديم \(\wp\).مجموعات الدفع الرسمية لكل جولة r، يقوم Algorand بالاختيار بشكل عام (بطريقة موضحة لاحقًا) مجموعة دفع واحدة (ربما فارغة)، PAY r، مجموعة الدفع الرسمية للجولة. (في الأساس، يمثل PAY r المدفوعات المستديرة التي حدثت "في الواقع".) كما في النظام المثالي (و Bitcoin)، (1) الطريقة الوحيدة لمستخدم جديد j للدخول إلى النظام أن تكون متلقيًا لدفعة تنتمي إلى مجموعة الدفع الرسمية PAY r لجولة معينة؛ و (2) يحدد PAY r حالة الجولة التالية، Sr+1، من حالة الجولة الحالية، Sr. رمزياً، PAY r : Sr −→Sr+1. على وجه التحديد، 1. مجموعة المفاتيح العامة للجولة r + 1، PKr+1، تتكون من اتحاد PKr ومجموعة الكل مفاتيح المستفيد التي تظهر، لأول مرة، في مدفوعات PAY r؛ و 2. مقدار المال أ(ص+1) أنا أن المستخدم الذي أملكه في الجولة r + 1 هو مجموع ai(r) - أي مبلغ المال الذي امتلكته في الجولة السابقة (0 إذا i̸\(\in\)PKr) — ومجموع المبالغ تدفع لي وفقا لمدفوعات PAY r. باختصار، كما هو الحال في النظام المثالي، كل حالة Sr+1 قابلة للخصم من تاريخ الدفع السابق: ادفع 0، . . . ، دفع ص. 2.4 الكتل والكتل المثبتة في Algorand0، تحدد الكتلة Br المقابلة لـ 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)، وتلك الخاصة بـ a أغلبية أعضاء SV r، مع إثبات أن كل واحد من هؤلاء الأعضاء ينتمي بالفعل إلى SV ص. يمكننا بالطبع تضمين شهادات CERT r في الكتل نفسها، لكن يمكننا العثور عليها أنظف من الناحية المفاهيمية لإبقائها منفصلة.) في Bitcoin يجب أن تستوفي كل كتلة خاصية خاصة، أي يجب أن "تحتوي على حل لمشكلة ما". لغز التشفير "، مما يجعل إنشاء الكتل مكثفًا من الناحية الحسابية والشوكات أمرًا لا مفر منه وليس نادرا. على النقيض من ذلك، يتمتع Algorand blockchain بميزتين رئيسيتين: يتم إنشاؤه باستخدام الحد الأدنى من الحساب، ولن يتشعب مع احتمالية عالية للغاية. كل كتلة ثنائية نهائي بأمان بمجرد دخوله إلى 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 هو شوكات Algorand blockchain. لاحظ أنه من خلال إعدادنا لـ F و جولات مدتها دقيقة واحدة، من المتوقع حدوث شوكة في Algorand blockchain بشكل نادر مثل (تقريبًا) مرة واحدة كل 1.9 مليون سنة. على النقيض من ذلك، في Bitcoin، يحدث الشوك في كثير من الأحيان. قد يقوم الشخص الأكثر تطلبًا بتعيين F إلى قيمة أقل. تحقيقا لهذه الغاية، في تجسيدنا الثاني نحن نفكر في ضبط F على 10−18. لاحظ أنه، على افتراض أنه يتم إنشاء كتلة كل ثانية، 1018 هو العدد المقدر للثواني التي استغرقها الكون حتى الآن: منذ الانفجار الكبير حتى الوقت الحاضر الوقت. وهكذا، مع F = 10−18، إذا تم إنشاء كتلة في الثانية، ينبغي للمرء أن يتوقع لعمر الكون لرؤية شوكة. 2.6 النموذج العدائي تم تصميم Algorand ليكون آمنًا في نموذج عدائي للغاية. دعونا نشرح. المستخدمين الصادقين والضارين يكون المستخدم صادقًا إذا اتبع جميع تعليمات البروتوكول الخاصة به، و قادر تمامًا على إرسال واستقبال الرسائل. المستخدم خبيث (أي بيزنطي، في لغة الحوسبة الموزعة) إذا كان بإمكانه الانحراف بشكل تعسفي عن تعليماته الموصوفة. الخصم The Adversary عبارة عن خوارزمية فعالة (متعددة الحدود من الناحية الفنية)، مشخصة بالألوان، ويمكنها على الفور جعل أي مستخدم ضارًا يريده، في أي وقت يريد (الموضوع فقط إلى الحد الأعلى لعدد المستخدمين الذين يمكنه إفسادهم). يتحكم الخصم بشكل كامل في جميع المستخدمين الضارين وينسقهم بشكل مثالي. فهو يتخذ كافة الإجراءات نيابة عنهم، بما في ذلك استقبال وإرسال جميع رسائلهم، ويمكن السماح لهم بالانحراف عنها تعليماتهم المقررة بطرق تعسفية. أو يمكنه ببساطة عزل إرسال المستخدم التالف واستقبال الرسائل. دعونا نوضح أنه لا يمكن لأي شخص آخر أن يعلم تلقائيًا أن المستخدم ضار، على الرغم من أن خبثه قد يظهر من خلال الإجراءات التي جعله الخصم يتخذها. لكن هذا العدو القوي • ليس لديه قوة حسابية لا حدود لها ولا يمكنه تزوير الرقمية بنجاح توقيع مستخدم صادق، إلا مع احتمال ضئيل؛ و• لا يجوز التدخل بأي شكل من الأشكال في تبادل الرسائل بين المستخدمين الشرفاء. علاوة على ذلك، فإن قدرته على مهاجمة المستخدمين الشرفاء مقيدة بأحد الافتراضات التالية. الصدق أغلبية المال نحن نعتبر سلسلة متواصلة من الأغلبية الصادقة من المال (HMM) الافتراضات: أي لكل عدد صحيح غير سالب k و الحقيقي h > 1/2، HHMk > h: المستخدمون الصادقون في كل جولة يمتلكون جزءًا أكبر من h من إجمالي الأموال الموجودة النظام في الجولة r -k. مناقشة. على افتراض أن جميع المستخدمين الضارين ينسقون أفعالهم بشكل مثالي (كما لو تم التحكم فيها بواسطة كيان واحد، الخصم) هي فرضية متشائمة إلى حد ما. التنسيق المثالي بين أيضا يصعب تحقيق الكثير من الأفراد. ربما يحدث التنسيق فقط ضمن مجموعات منفصلة من اللاعبين الخبيثين ولكن بما أنه لا يمكن للمرء التأكد من مستوى التنسيق بين المستخدمين الضارين قد نستمتع، من الأفضل أن نكون آمنين من أن نأسف. بافتراض أن الخصم يمكنه إفساد المستخدمين سرًا وديناميكيًا وعلى الفور، فهو أيضًا متشائم. ففي النهاية، من الناحية الواقعية، فإن السيطرة الكاملة على عمليات المستخدم يجب أن تستغرق بعض الوقت. يفترض الافتراض HMMk > h، على سبيل المثال، أنه في حالة تنفيذ جولة (في المتوسط). وفي دقيقة واحدة، ستبقى غالبية الأموال في جولة معينة في أيدٍ أمينة ساعتين على الأقل إذا كان k = 120، وأسبوع واحد على الأقل إذا كان k = 10000. لاحظ أن افتراضات HMM والأغلبية الصادقة السابقة لقوة الحوسبة ترتبط الافتراضات بمعنى أنه بما أن القدرة الحاسوبية يمكن شراؤها بالمال، إذا كان المستخدمون الضارون يمتلكون معظم الأموال، فيمكنهم الحصول على معظم قوة الحوسبة. 2.7 نموذج التواصل إننا نتصور أن نشر الرسالة — أي «الثرثرة بين الأقران»5 — هو الوسيلة الوحيدة للتواصل. الاتصالات. الافتراض المؤقت: تسليم الرسائل في الوقت المناسب في الشبكة بأكملها. ل نفترض في معظم أجزاء هذه الورقة أن كل رسالة يتم نشرها تصل إلى جميع المستخدمين الصادقين تقريبًا في الوقت المناسب. وسنقوم بإزالة هذا الافتراض في القسم 10، حيث نتعامل مع الشبكة التقسيمات سواء كانت طبيعية أو مستحثة بشكل عدائي. (كما سنرى، نحن نفترض فقط تسليم الرسائل في الوقت المناسب داخل كل مكون متصل بالشبكة.) إحدى الطرق الملموسة لالتقاط تسليم الرسائل المنتشرة في الوقت المناسب (في الشبكة بأكملها) هي ما يلي: بالنسبة لجميع إمكانية الوصول \(\rho\) > 95% وحجم الرسالة μ \(\in\)Z+، يوجد π\(\rho\),μ بحيث، إذا قام مستخدم صادق بنشر رسالة μ بايت m في الوقت t، ثم يصل m، بمرور الوقت، إلى جزء صغير على الأقل من المستخدمين الصادقين. 5 بشكل أساسي، كما في Bitcoin، عندما يقوم مستخدم بنشر رسالة m، فإن كل مستخدم نشط يستقبل m للمرة الأولى، يختار عشوائيًا وبشكل مستقل عددًا صغيرًا مناسبًا من المستخدمين النشطين، "جيرانه"، الذين يرسل إليهم م، ربما حتى يحصل على اعتراف منهم. ينتهي نشر m عندما لا يتلقى أي مستخدم م لأول مرة.ومع ذلك، لا يمكن للخاصية المذكورة أعلاه أن تدعم بروتوكول Algorand الخاص بنا، دون تصور صريح ومنفصل لآلية للحصول على أحدث blockchain - بواسطة مستخدم/مستودع آخر/إلخ. في الواقع، لبناء كتلة جديدة Br لا ينبغي فقط أن تتلقى مجموعة مناسبة من المدققين الجولة r في الوقت المناسب الرسائل، ولكن أيضًا رسائل الجولات السابقة، وذلك لمعرفة Br−1 وجميع الرسائل السابقة الأخرى الكتل، وهو أمر ضروري لتحديد ما إذا كانت الدفعات في Br صالحة. ما يلي الافتراض بدلا من ذلك يكفي. افتراض نشر الرسالة (MP): بالنسبة لجميع \(\rho\) > 95% و μ \(\in\)Z+، يوجد \(\alpha\),μ بحيث أنه في جميع الأوقات t وجميع الرسائل ذات البايتات m يتم نشرها بواسطة مستخدم صادق قبل t −\(\alpha\) \(\rho\),μ, يتم استلام m، بحلول الوقت t، بواسطة جزء صغير على الأقل \(\rho\) من المستخدمين الصادقين. البروتوكول Algorand ′ يوجه في الواقع كل عدد صغير من المستخدمين (أي القائمين على التحقق من خطوة معينة من الجولة في Algorand ′، لنشر رسالة منفصلة ذات حجم محدد (صغير)، ونحن بحاجة إلى تحديد الوقت اللازم للوفاء بهذه التعليمات. نحن نفعل ذلك من خلال إثراء النائب الافتراض على النحو التالي. بالنسبة لجميع n و \(\rho\) > 95% و μ \(\in\)Z+، يوجد lectn,\(\rho\),μ بحيث أنه في جميع الأوقات t وجميع البايتات الرسائل م1، . . . ، mn، يتم نشر كل منها من قبل مستخدم صادق قبل t −\(\alpha\)n,\(\rho\),μ, m1, . . . ، تم استلام مليون، بحلول الوقت t، على الأقل جزء صغير \(\rho\) من المستخدمين الصادقين. ملاحظة • إن الافتراض أعلاه بسيط عن عمد، ولكنه أيضًا أقوى مما هو مطلوب في بحثنا.6 • للتبسيط، نفترض أن \(\rho\) = 1، وبالتالي نسقط ذكر \(\rho\). • نفترض تشاؤماً أنه، بشرط عدم مخالفة الفرضية النائبة، هو الخصم يتحكم تماما في تسليم كافة الرسائل. على وجه الخصوص، دون أن يلاحظها أحد من قبل صادقين للمستخدمين، يمكن للخصم أن يقرر بشكل تعسفي أي لاعب صادق يتلقى أي رسالة متى، وتسريع تسليم أي رسالة يريدها بشكل تعسفي.7
BA 프로토콜은 전통적인 환경에서 BA⋆
이미 강조했듯이 비잔틴 합의는 Algorand의 핵심 요소입니다. 실제로는 그것을 통해 Algorand이 포크의 영향을 받지 않는 BA 프로토콜을 사용합니다. 그러나 우리의 보안을 위해 강력한 적, Algorand은 새로운 플레이어 교체 가능성을 충족하는 BA 프로토콜에 의존해야 합니다. 제약. 또한 Algorand이 효율적이려면 이러한 BA 프로토콜이 매우 효율적이어야 합니다. BA 프로토콜은 이상적인 통신 모델, 동기식 완료를 위해 처음 정의되었습니다. 네트워크(SC 네트워크). 이러한 모델을 사용하면 BA 프로토콜을 더 간단하게 설계하고 분석할 수 있습니다. 6정직한 백분율 h와 허용 가능한 실패 확률 F가 주어지면 Algorand은 상한 N을 계산합니다. 한 단계의 최대 검증자 수까지. 따라서 MP 가정은 n \(\leq\)N에 대해서만 유지되면 됩니다. 또한, 언급한 바와 같이 MP 가정은 얼마나 많은 다른 메시지가 함께 전파될 수 있는지에 관계없이 유지됩니다. 엠제이. 그러나 앞으로 보게 되겠지만 Algorand 메시지는 본질적으로 겹치지 않는 시간에 전파됩니다. 단일 블록이 전파되거나 최대 N명의 검증자가 작은 블록(예: 200B)을 전파하는 간격입니다. 메시지. 따라서 우리는 MP 가정을 더 약하지만 더 복잡한 방식으로 다시 기술할 수 있습니다. 7예를 들어, 그는 정직한 플레이어가 보낸 메시지를 즉시 배울 수 있습니다. 따라서 악의적인 사용자 i'는 정직한 사용자 i와 동시에 메시지를 전파하도록 요청받은 경우 항상 자신의 메시지 m'을 선택할 수 있습니다. m이 실제로 i에 의해 전파된 메시지. 이 능력은 분산 컴퓨팅 용어로 돌진과 관련이 있습니다. 문학.따라서 이 섹션에서는 SC 네트워크를 위한 새로운 BA 프로토콜인 BA⋆를 소개하고 이를 무시합니다. 선수 교체 가능성 문제. 프로토콜 BA⋆는 별도의 가치에 대한 기여입니다. 실제로 이는 지금까지 알려진 SC 네트워크에 대한 가장 효율적인 암호화 BA 프로토콜입니다. Algorand 프로토콜 내에서 이를 사용하기 위해 BA⋆를 약간 수정하여 다른 사항을 설명합니다. 통신 모델 및 컨텍스트를 확인하세요. 단, 섹션 X에서 BA⋆가 어떻게 사용되는지 강조하세요. 실제 프로토콜 내에서 Algorand '. BA⋆가 운영되는 모델과 비잔틴 계약의 개념을 상기하는 것부터 시작합니다. 3.1 동기식 완전한 네트워크 및 일치하는 적 SC 네트워크에는 각 적분 시간 r = 1, 2, ...에서 똑딱거리는 공통 시계가 있습니다. . . 짝수 시간에 r을 클릭할 때마다 각 플레이어 i는 즉각적으로 동시에 단일 메시지를 보냅니다. 메시지 미스터 i,j(아마도 빈 메시지)를 자신을 포함한 각 플레이어 j에게 보냅니다. 각 씨 i,j가 수신됨 이때 플레이어 j가 보낸 사람 i의 신원과 함께 r + 1을 클릭합니다. 다시 말하지만, 통신 프로토콜에서 플레이어는 자신이 규정한 모든 사항을 따르면 정직합니다. 지시, 그리고 그렇지 않으면 악의적입니다. 모든 악의적인 플레이어는 완전히 통제되고 완벽하게 제어됩니다. 특히 다음 주소로 전달된 모든 메시지를 즉시 수신하는 대적에 의해 조정됩니다. 악의적인 플레이어가 보내는 메시지를 선택합니다. 대적은 이상한 순간에 클릭을 하면 원하는 정직한 사용자를 즉시 악의적인 사용자로 만들 수 있습니다. 그는 악의적인 플레이어의 수에 따라 가능한 상한선만 적용되기를 원합니다. 즉, 공격자는 "정직한 사용자 i가 이미 보낸 메시지를 방해할 수 없습니다". 평소대로 배달되었습니다. 대적은 또한 각 짝수 라운드에서 즉시 볼 수 있는 추가 능력을 가지고 있습니다. 현재 정직한 플레이어가 보내는 메시지와 이 정보를 즉시 사용하여 선택합니다. 악의적인 플레이어가 동시에 보내는 메시지는 틱입니다. 비고 • 적의 힘. 위의 설정은 매우 적대적입니다. 실제로 비잔틴 조약에서 문학에서는 많은 설정이 덜 적대적입니다. 그러나 좀 더 적대적인 설정이 있습니다. 또한 정직한 플레이어가 보낸 메시지를 본 후 적이 있는 것으로 간주되었습니다. 주어진 시간에 r을 클릭하면 네트워크에서 이러한 모든 메시지를 즉시 지울 수 있습니다. i가 손상되었습니다. 지금 악의적인 i가 보내는 메시지를 선택하고 r을 클릭하여 가져오세요. 평소대로 배달되었습니다. 대적의 예상되는 힘은 우리 환경에서 그가 가지고 있는 것과 일치합니다. • 물리적 추상화. 구상된 통신 모델은 보다 물리적인 모델을 추상화합니다. 여기서 각 플레이어 쌍(i,j)은 별도의 개인 통신 회선 li,j에 의해 연결됩니다. 즉, 누구도 전송된 메시지에 대한 정보를 주입하거나 방해하거나 얻을 수 없습니다. 리,제이. 적이 li,j에 접근할 수 있는 유일한 방법은 i 또는 j를 손상시키는 것입니다. • 개인정보 보호 및 인증. SC 네트워크에서는 메시지 개인 정보 보호 및 인증이 보장됩니다. 가정으로. 대조적으로, 메시지가 전파되는 우리의 통신 네트워크에서는 P2P에서는 디지털 서명으로 인증이 보장되며 개인 정보 보호는 존재하지 않습니다. 따라서 BA⋆프로토콜을 우리 설정에 채택하려면 교환된 각 메시지가 디지털 서명되어야 합니다. (보낸 상태를 추가로 식별합니다). 다행스럽게도 우리가 사용하는 BA 프로토콜은 Algorand에서 사용을 고려하세요. 메시지 개인 정보 보호가 필요하지 않습니다.3.2 비잔틴 계약의 개념 비잔틴 조약의 개념은 Pease Shostak과 Lamport [31]에 의해 도입되었습니다. 즉, 모든 초기값이 비트로 구성되는 경우입니다. 그래도 빨리 연장되서 임의의 초기값으로. (Fischer [16] 및 Chor and Dwork [10]의 설문조사를 참조하세요.) 프로토콜은 임의의 값을 의미합니다. 정의 3.1. 동기식 네트워크에서 P를 플레이어 세트가 공통인 n-플레이어 프로토콜이라고 가정합니다. 플레이어 간의 지식, t는 n \(\geq\)2t + 1인 양의 정수입니다. 우리는 P가 임의 값(각각 이진)(n, t)-건전성 \(\sigma\) \(\in\)(0, 1)을 갖는 비잔틴 합의 프로토콜 만약, 특수 기호 \(\bot\)(각각 V = {0, 1}에 대해)를 포함하지 않는 모든 값 세트 V에 대해 최대 t명의 플레이어가 악의적이고 모든 플레이어가 초기 값 vi \(\in\)V , 모든 정직한 플레이어 j는 확률 1로 정지하고 outi \(\in\)V \(\cup\){\(\bot\)} 값을 출력합니다. 적어도 \(\sigma\) 확률로 다음 두 조건을 만족시키려면: 1. 동의: 모든 정직한 플레이어 i에 대해 outi = out이 되는 \(\in\)V \(\cup\){\(\bot\)}가 존재합니다. 2. 일관성: 어떤 값 v \(\in\)V에 대해 모든 정직한 플레이어에 대해 vi = v이면 out = v입니다. out을 P의 출력이라고 하고, 각 outi를 플레이어 i의 출력이라고 합니다. 3.3 BA 표기법 # BA 프로토콜에서 플레이어는 주어진 메시지를 자신에게 보낸 플레이어 수를 계산해야 합니다. 주어진 단계. 따라서 전송될 수 있는 각 가능한 값 v에 대해
초
나(v) (또는 s가 지워진 경우 #i(v))는 단계 s에서 i가 v를 받은 플레이어 j의 수입니다. 플레이어 i가 각 플레이어 j로부터 정확히 하나의 메시지를 받는다는 것을 기억해 보세요. 플레이어는 n이고 모든 i와 s에 대해 P입니다. v #s i(v) = n. 3.4 바이너리 BA 프로토콜 BBA⋆ 이 섹션에서는 더 많은 것의 정직성에 의존하는 새로운 바이너리 BA 프로토콜인 BBA⋆를 제시합니다. 플레이어의 2/3보다 많고 매우 빠릅니다. 악의적인 플레이어가 무엇을 하든 상관없이 메인 루프를 실행할 때마다 플레이어는 확률 1/3로 동의하게 됩니다. 각 플레이어는 고유 서명을 충족하는 디지털 서명 체계의 공개 키를 가지고 있습니다. 재산. 이 프로토콜은 동기식 완전 네트워크에서 실행되도록 고안되었으므로 플레이어 i가 각 메시지에 서명해야 합니다. 디지털 서명은 3단계에서 충분히 공통된 임의 비트를 생성하는 데 사용됩니다. (Algorand에서, 디지털 서명은 다른 모든 메시지를 인증하는 데에도 사용됩니다.) 프로토콜에는 최소한의 설정이 필요합니다. 즉, 플레이어의 독립적인 공통 무작위 문자열 r입니다. 열쇠. (Algorand에서 r은 실제로 수량 Qr로 대체됩니다.) 프로토콜 BBA⋆는 플레이어가 부울 값을 반복적으로 교환하는 3단계 루프입니다. 다른 플레이어는 다른 시간에 이 루프를 종료할 수 있습니다. 플레이어 i가 전파를 통해 이 루프를 종료합니다. 어떤 단계에서는 특별한 값 0 또는 특별한 값 1을 지정하여 모든 플레이어에게 다음을 지시합니다. 이후의 모든 단계에서 그들은 각각 i로부터 0과 1을 받는 척합니다. (또는 다음과 같이 가정합니다.플레이어 j가 다른 플레이어 i로부터 받은 마지막 메시지는 비트 b였습니다. 그러면 어떤 단계에서든 그는 i로부터 어떤 메시지도 받지 못하고, j는 마치 내가 그에게 비트 b를 보낸 것처럼 행동합니다.) 프로토콜은 3단계 루프가 실행된 횟수를 나타내는 카운터 \(\gamma\)를 사용합니다. BBA⋆의 시작 부분에서는 \(\gamma\) = 0입니다. (\(\gamma\)를 전역 카운터라고 생각할 수도 있지만 실제로는 증가합니다. 루프가 실행될 때마다 각 개별 플레이어가 실행합니다.) n \(\geq\)3t + 1이 있으며, 여기서 t는 가능한 최대 악의적인 플레이어 수입니다. 바이너리 문자열 x는 이진 표현(앞에 0이 올 수 있음)이 x인 정수로 식별됩니다. lsb(x)는 x의 최하위 비트를 나타냅니다. 프로토콜 BBA⋆ (통신) Step 1. [Coin-Fixed-To-0 단계] 각 플레이어 i는 bi를 보냅니다. 1.1 #1의 경우 i (0) \(\geq\)2t + 1, 그러면 i는 bi = 0으로 설정하고 0을 보내고 outi = 0을 출력합니다. 그리고 정지. 1.2 #1의 경우 i (1) \(\geq\)2t + 1이면 i는 bi = 1로 설정됩니다. 1.3 그렇지 않으면 i는 bi = 0으로 설정합니다. (통신) Step 2. [Coin-Fixed-To-1 Step] 각 플레이어 i는 bi를 보냅니다. 2.1 #2의 경우 i (1) \(\geq\)2t + 1이면 i는 bi = 1로 설정됩니다. 1을 보냅니다. 출력 outi = 1, 그리고 정지. 2.2 #2의 경우 i (0) \(\geq\)2t + 1이면 bi = 0으로 설정합니다. 2.3 그렇지 않으면 i는 bi = 1로 설정합니다. (통신) Step 3. [코인 진짜 뒤집기 단계] 각 플레이어 i는 bi와 SIGi(r, \(\gamma\))를 보냅니다. 3.1 #3의 경우 i (0) \(\geq\)2t + 1이면 i는 bi = 0으로 설정됩니다. 3.2 #3의 경우 i (1) \(\geq\)2t + 1이면 i는 bi = 1로 설정됩니다. 3.3 그렇지 않으면 Si = {j \(\in\)N(이 단계 3에서 나에게 적절한 메시지를 보낸 사람) }이라고 하면, 나는 bi = c \(\triangleq\)lsb(minj\(\in\)Si H(SIGi(r, \(\gamma\))))를 설정합니다. \(\gamma\)i를 1만큼 증가시킵니다. 그리고 1단계로 돌아갑니다. 정리 3.1. n \(\geq\)3t + 1일 때마다 BBA⋆는 건전성 1의 이진 (n, t)-BA 프로토콜입니다. 정리 3.1의 증명은 [26]에 나와 있습니다. 우리 설정에 대한 적응 및 플레이어 교체 가능성 재산은 참신하다. 역사적 비고 확률적 이진 BA 프로토콜은 Ben-Or가 처음 제안했습니다. 비동기 설정 [7]. 프로토콜 BBA⋆는 공개 키 설정에 대한 새로운 적응입니다. Feldman 및 Micali의 바이너리 BA 프로토콜 [15]. 그들의 프로토콜은 예상대로 작동한 최초의 프로토콜이었습니다. 일정한 단계 수. 플레이어들이 직접 공통 코인을 구현하게 함으로써 작동했고, 외부의 신뢰할 수 있는 당사자 [32]를 통해 이를 구현한 Rabin이 제안한 개념입니다.3.5 단계적 합의와 프로토콜 GC 임의의 가치에 대해 비잔틴 합의보다 훨씬 약한 합의 개념을 떠올려 보겠습니다. 정의 3.2. P를 모든 플레이어 세트가 상식인 프로토콜로 설정하고 각 플레이어는 플레이어 나는 임의의 초기값 v'를 개인적으로 알고 있습니다. 나. n명의 플레이어가 실행될 때마다 P가 (n, t) 등급 합의 프로토콜이라고 말합니다. 그 중 대부분은 악의적이며 모든 정직한 플레이어는 가치 등급 쌍(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' 어떤 값 v에 대해 n = v, 모든 정직한 플레이어 i에 대해 vi = v 및 gi = 2입니다. 역사적 기록 등급별 합의라는 개념은 단순히 등급별 합의 개념에서 파생된 것입니다. [15]에서 Feldman과 Micali가 십자군의 개념을 강화하여 제시한 방송 Dolev [12]에 의해 도입되고 Turpin and Coan [33].8에 의해 개선된 계약 [15]에서 저자는 3단계(n, t) 등급 방송 프로토콜인 gradecast도 제공했습니다. n \(\geq\)3t+1. n > 2t+1에 대한 보다 복잡한 (n, t) 등급 방송 프로토콜이 나중에 발견되었습니다. 작성자: Katz 및 Koo [19]. 다음 2단계 프로토콜 GC는 등급 분류의 마지막 두 단계로 구성됩니다. 표기법. 이 사실을 강조하고 섹션 4.1의 프로토콜 Algorand '의 단계를 일치시키기 위해 우리는 GC의 단계를 각각 2번과 3번으로 지정하세요. 프로토콜 GC 2단계. 내가 보내는 각 플레이어는 v'를 보냅니다. 나는 모든 플레이어에게. 3단계. 각 플레이어 i는 #2인 경우에만 문자열 x를 모든 플레이어에게 보냅니다. 나는 (x) \(\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) 등급 브로드캐스트 프로토콜입니다. 증명은 [15]의 프로토콜 등급 결정의 증명에서 바로 따르므로 생략됩니다.9 8 본질적으로 등급별 방송 프로토콜에서 (a) 모든 플레이어의 입력은 고유한 플레이어의 신원입니다. 추가적인 개인 입력으로 임의의 값 v를 갖는 플레이어, 송신자, 그리고 (b) 출력은 다음을 충족해야 합니다. 등급화된 합의의 동일한 속성 1과 2에 다음 속성 3'을 추가합니다. 보낸 사람이 정직하다면 vi = v이고 모든 정직한 플레이어에 대해 gi = 2 i. 9실제로 프로토콜의 1단계에서 발신자는 자신의 개인 값 v를 모든 플레이어에게 보내고 각 플레이어는 v′ i는 그가 1단계에서 보낸 사람으로부터 실제로 받은 값으로 구성됩니다.3.6 더 프로토콜 BA⋆ 이제 바이너리 BA 프로토콜 BBA⋆를 통해 임의 값 BA 프로토콜 BA⋆을 설명합니다. 등급 합의 프로토콜 GC. 아래에서 각 플레이어 i의 초기값은 v′입니다. 나. 프로토콜 BA⋆ 1단계와 2단계. 각 플레이어 i는 입력 v'에 대해 GC를 실행합니다. i, (vi, gi) 쌍을 계산합니다. 3단계, . . . 각 플레이어 i는 gi = 2이면 초기 입력 0, 그렇지 않으면 1로 BBA⋆를 실행합니다. 비트 outi를 계산하는 방법. 출력 결정. outi = 0이면 각 플레이어 i는 vi를 출력하고, 그렇지 않으면 \(\bot\)입니다. 정리 3.3. n \(\geq\)3t + 1일 때마다 BA⋆는 건전성 1의 (n, t)-BA 프로토콜입니다. 증거. 먼저 일관성을 증명한 다음 합의를 증명합니다. 일관성 증명. 어떤 값 v \(\in\)V , v′에 대해 가정합니다. i = v. 그러면 다음의 속성 3에 의해 등급 합의, GC 실행 후 모든 정직한 플레이어가 출력합니다(v, 2). 따라서 0은 BBA⋆ 실행이 끝나면 모든 정직한 플레이어의 초기 비트입니다. 따라서 계약에 따라 BA⋆ 실행이 끝나면 바이너리 비잔틴 계약의 속성, 모든 정직한 경우 outi = 0 플레이어. 이는 BA⋆에서 각 정직한 플레이어 i의 출력이 vi = v라는 것을 의미합니다. ✷ 계약 증명. BBA⋆는 바이너리 BA 프로토콜이므로 다음 중 하나를 수행합니다. (A) 모든 정직한 플레이어 i에 대해 outi = 1, 또는 (B) 모든 정직한 플레이어 i에 대해 outi = 0입니다. A의 경우 모든 정직한 플레이어는 BA⋆에서 \(\bot\)을 출력하므로 계약이 유지됩니다. 이제 사례 B를 살펴보겠습니다. 이 경우 BBA⋆ 실행 시 적어도 한 명의 정직한 플레이어 i의 초기 비트는 0입니다. (실제로 만약 모든 정직한 플레이어의 초기 비트는 1이었습니다. 그러면 BBA⋆의 일관성 속성에 따라 우리는 outj = 1 모든 정직한 j에 대해.) 따라서 GC 실행 후 i는 일부 정직한 j에 대해 쌍 (v, 2)를 출력합니다. 가치 v. 따라서 등급화된 합의의 속성 1에 따라 모든 정직한 플레이어 j에 대해 gj > 0입니다. 이에 따라 단계적 합의의 속성 2, vj = 모든 정직한 플레이어에 대한 v j. 이는 말미에 다음을 의미한다. BA⋆, 모든 정직한 플레이어 j는 v를 출력합니다. 따라서 B의 경우에도 일치가 유지됩니다. ✷ 일관성과 합의가 모두 유지되므로 BA⋆는 임의 값 BA 프로토콜입니다. 역사적 기록 Turpin과 Coan은 n \(\geq\)3t+1에 대해 모든 이진 (n, t)-BA가 프로토콜은 임의 값 (n, t)-BA 프로토콜로 변환될 수 있습니다. 임의 값 감소 등급별 합의를 통한 이진 비잔틴 합의에 대한 비잔틴 합의는 더욱 모듈화되고 더 깨끗하고 Algorand 프로토콜 Algorand '의 분석을 단순화합니다. Algorand에서 사용하기 위해 BA⋆ 일반화 Algorand은 모든 통신이 통신을 통해 이루어지는 경우에도 작동합니다. 험담. 그러나 전통적이고 친숙한 통신 네트워크에서 제시되지만, 선행 기술과 더 잘 비교하고 더 쉽게 이해할 수 있도록 프로토콜 BA⋆works 험담 네트워크에서도요. 실제로 Algorand의 상세한 실시예에서 우리는 그것을 제시할 것입니다. 험담 네트워크를 위해 직접. 또한 선수교체성을 만족시킨다는 점을 지적할 것이다. Algorand이 예상되는 매우 적대적인 모델에서 보안을 유지하는 데 중요한 속성입니다.
가십 통신 네트워크에서 작동하는 모든 BA 플레이어 교체 가능 프로토콜은 다음과 같습니다. 독창적인 Algorand 시스템 내에서 안전하게 사용됩니다. 특히 Micali와 Vaikunthanatan은 BA⋆를 확장하여 다수의 정직한 플레이어들과도 매우 효율적으로 작업할 수 있게 되었습니다. 그 프로토콜도 Algorand에서 사용될 수 있습니다.
بروتوكول مكتبة الإسكندرية ⋆ في بيئة تقليدية
كما تم التأكيد عليه سابقًا، تعد الاتفاقية البيزنطية عنصرًا أساسيًا في Algorand. في الواقع، لقد تم ذلك استخدام بروتوكول BA الذي لا يتأثر Algorand بالشوكات. ومع ذلك، لتكون آمنة ضدنا يجب أن يعتمد الخصم القوي، Algorand على بروتوكول BA الذي يلبي إمكانية استبدال اللاعب الجديد القيد. بالإضافة إلى ذلك، لكي يكون Algorand فعالاً، يجب أن يكون بروتوكول مكتبة الإسكندرية فعالاً للغاية. تم تعريف بروتوكولات BA لأول مرة لنموذج اتصال مثالي متزامن كامل الشبكات (شبكات SC). يسمح هذا النموذج بتصميم وتحليل أبسط لبروتوكولات مكتبة الإسكندرية. 6بالنظر إلى النسبة المئوية الصادقة h واحتمال الفشل المقبول F، Algorand يحسب الحد الأعلى، N، إلى الحد الأقصى لعدد أعضاء التحقق في الخطوة. وبالتالي، فإن افتراض MP يحتاج فقط إلى الاحتفاظ بـ n \(\geq\)N. بالإضافة إلى ذلك، وكما ذكرنا، فإن افتراض MP يظل ساريًا بغض النظر عن عدد الرسائل الأخرى التي قد يتم نشرها جنبًا إلى جنب إم جي. ومع ذلك، كما سنرى، في Algorand يتم نشر الرسائل في وقت غير متداخل بشكل أساسي الفواصل الزمنية، التي يتم خلالها نشر كتلة واحدة، أو على الأكثر تقوم أدوات التحقق N بنشر كتلة صغيرة (على سبيل المثال، 200B) رسالة. وبالتالي، يمكننا إعادة صياغة افتراض MP بطريقة أضعف، ولكن أيضًا أكثر تعقيدًا. 7على سبيل المثال، يمكنه أن يتعلم على الفور الرسائل التي يرسلها اللاعبون الصادقون. وهكذا، مستخدم ضار أنا ′، من هو عندما يُطلب منك نشر رسالة في وقت واحد مع مستخدم صادق، يمكنني دائمًا اختيار رسالته الخاصة بناءً على ذلك الرسالة m تم نشرها بالفعل بواسطة i. ترتبط هذه القدرة بالاندفاع، بلغة الحساب الموزع الأدب.وبناء على ذلك، في هذا القسم، نقدم بروتوكول BA جديد، BA⋆، لشبكات SC وتجاهل مسألة استبدال اللاعب تمامًا. البروتوكول BA⋆ هو مساهمة ذات قيمة منفصلة. في الواقع، إنه بروتوكول التشفير الأكثر كفاءة لشبكات SC المعروفة حتى الآن. لاستخدامه ضمن بروتوكول Algorand الخاص بنا، نقوم بتعديل BA⋆ قليلاً، وذلك لمراعاة اختلافاتنا نموذج وسياق الاتصال، ولكن تأكد، في القسم X، من تسليط الضوء على كيفية استخدام BA⋆ ضمن بروتوكولنا الفعلي Algorand ′. نبدأ بالتذكير بالنموذج الذي تعمل به شركة BA⋆ وفكرة الاتفاقية البيزنطية. 3.1 شبكات كاملة متزامنة ومطابقة الخصوم في شبكة SC، هناك ساعة مشتركة، تدق في كل الأوقات التكاملية r = 1، 2، . . . في كل مرة تنقر فيها على r، يرسل كل لاعب رسالة فردية على الفور وفي نفس الوقت رسالة السيد i,j (ربما الرسالة الفارغة) لكل لاعب j، بما في ذلك نفسه. كل السيد تم استلام i,j في الوقت المناسب، انقر فوق r + 1 بواسطة اللاعب j، مع هوية المرسل i. مرة أخرى، في بروتوكول الاتصال، يكون اللاعب صادقًا إذا اتبع كل ما هو موصوف له التعليمات، والخبيثة خلاف ذلك. يتم التحكم في جميع اللاعبين الخبيثين بشكل كامل وكامل يتم تنسيقها من قبل الخصم، الذي، على وجه الخصوص، يتلقى على الفور جميع الرسائل الموجهة إليه اللاعبين الضارين، ويختار الرسائل التي يرسلونها. يمكن للخصم أن يتسبب على الفور في إلحاق الضرر بأي مستخدم صادق يريده في أي وقت غريب يريد، مع مراعاة الحد الأقصى المحتمل لعدد اللاعبين الخبيثين. هذا هو، الخصم "لا يمكنه التدخل في الرسائل التي أرسلها مستخدم صادق بالفعل"، وهو ما سيكون تسليمها كالمعتاد. يتمتع الخصم أيضًا بقدرة إضافية على الرؤية الفورية، في كل جولة زوجية، لل الرسائل التي يرسلها اللاعبون الصادقون حاليًا، ويستخدمون هذه المعلومات على الفور للاختيار الرسائل التي يرسلها اللاعبون الضارون في نفس الوقت تضع علامة. ملاحظات • قوة الخصم. الإعداد أعلاه عدائي للغاية. وبالفعل في الاتفاقية البيزنطية الأدب، العديد من الإعدادات أقل خصومة. ومع ذلك، هناك بعض الإعدادات الخصومة كما تم أخذ بعين الاعتبار، حيث يقوم الخصم، بعد رؤية الرسائل المرسلة من قبل لاعب صادق أي في وقت معين، انقر فوق r، لديه القدرة على مسح كل هذه الرسائل من الشبكة، على الفور فاسد، اختر الرسالة التي أرسلها الآن ضارًا في الوقت المناسب، انقر فوق r، واحصل عليها تسليمها كالمعتاد. إن القوة المتصورة للخصم تطابق تلك الموجودة في بيئتنا. • التجريد المادي. نموذج الاتصال المتوخى يلخص نموذجا أكثر مادية، يتم فيها ربط كل زوج من اللاعبين (i، j) بخط اتصال منفصل وخاص li،j. أي أنه لا يمكن لأي شخص آخر حقن الرسائل المرسلة أو التدخل فيها أو الحصول على معلومات حولها لي، ي. الطريقة الوحيدة التي يمكن للخصم من خلالها الوصول إلى li,j هي إفساد i أو j. • الخصوصية والمصادقة. في شبكات SC يتم ضمان خصوصية الرسائل والمصادقة عليها بالافتراض. وعلى النقيض من ذلك، في شبكة اتصالاتنا، حيث يتم نشر الرسائل من نظير إلى نظير، يتم ضمان المصادقة عن طريق التوقيعات الرقمية، والخصوصية معدومة. وبالتالي، لاعتماد البروتوكول BA⋆ في إعداداتنا، يجب توقيع كل رسالة متبادلة رقميًا (مزيد من تحديد الدولة التي تم إرسالها إليها). لحسن الحظ، بروتوكولات مكتبة الإسكندرية التي نحن فكر في استخدام Algorand ولا يتطلب خصوصية الرسالة.3.2 فكرة الاتفاق البيزنطي تم تقديم فكرة الاتفاقية البيزنطية بواسطة بيز شوستاك ولامبورت [31] لـ الحالة الثنائية، أي عندما تتكون كل قيمة أولية من بت. ومع ذلك، تم تمديده بسرعة إلى القيم الأولية التعسفية. (راجع استطلاعات Fischer [16] وChor وDwork [10].) البروتوكول، نعني بروتوكولًا ذا قيمة تعسفية. التعريف 3.1. في شبكة متزامنة، دع P يكون بروتوكول n-player، ومجموعة المشغلات الخاصة به شائعة المعرفة بين اللاعبين، t عدد صحيح موجب مثل n \(\geq\)2t + 1. نقول أن P هو قيمة تعسفية (ثنائية على التوالي) (n، t) -بروتوكول الاتفاقية البيزنطية مع السلامة \(\sigma\) \(\in\)(0, 1) إذا، لكل مجموعة من القيم V لا تحتوي على الرمز الخاص \(\bot\)(على التوالي، لـ V = {0, 1})، في التنفيذ الذي يكون فيه معظم اللاعبين ضارين ويبدأ فيه كل لاعب بـ القيمة الأولية vi \(\in\)V ، يتوقف كل لاعب صادق j مع الاحتمال 1، ويخرج قيمة خارج \(\in\)V \(\cup\){\(\bot\)} وذلك لتحقيق الشرطين التاليين، مع احتمال لا يقل عن \(\sigma\): 1. الاتفاقية: يوجد \(\in\)V \(\cup\){\(\bot\)} بحيث يكون outi = outi لجميع اللاعبين الشرفاء i. 2. الاتساق: إذا، بالنسبة لبعض القيمة v \(\in\)V ، vi = v لجميع اللاعبين الصادقين، فإن out = v. نشير إلى outi بمخرجات P، وإلى كل outi بمخرجات اللاعب i. 3.3 تدوين مكتبة الإسكندرية # في بروتوكولات BA الخاصة بنا، يُطلب من اللاعب حساب عدد اللاعبين الذين أرسلوا له رسالة معينة خطوة معينة. وفقًا لذلك، لكل قيمة محتملة v يمكن إرسالها،
س
ط (ت) (أو فقط #i(v) عندما يكون s واضحًا) هو عدد اللاعبين j الذين تلقيت منهم v في الخطوات s. مع التذكير بأن اللاعب أتلقى رسالة واحدة بالضبط من كل لاعب j, إذا كان عدد اللاعبين هو n، إذن، لكل i و s، P ضد #س ط (الخامس) = ن. 3.4 بروتوكول BA الثنائي BBA⋆ في هذا القسم نقدم بروتوكول BA الثنائي الجديد، BBA⋆، والذي يعتمد على صدق المزيد أكثر من ثلثي اللاعبين وهو سريع جدًا: بغض النظر عما قد يفعله اللاعبون الخبيثون، كل تنفيذ للحلقة الرئيسية يجعل اللاعبين يتفقون مع الاحتمال 1/3. كل لاعب لديه مفتاحه العام الخاص بنظام التوقيع الرقمي الذي يلبي التوقيع الفريد الملكية. نظرًا لأن هذا البروتوكول مخصص للتشغيل على شبكة كاملة متزامنة، فلا يوجد ضرورة قيام اللاعب بالتوقيع على كل رسالة من رسائله. يتم استخدام التوقيعات الرقمية لإنشاء بت عشوائي مشترك بدرجة كافية في الخطوة 3. (في Algorand، تُستخدم التوقيعات الرقمية لمصادقة جميع الرسائل الأخرى أيضًا.) يتطلب البروتوكول الحد الأدنى من الإعداد: سلسلة عشوائية مشتركة r، مستقلة عن اللاعبين مفاتيح. (في Algorand، يتم استبدال r فعليًا بالكمية Qr.) بروتوكول BBA⋆ عبارة عن حلقة مكونة من 3 خطوات، حيث يقوم اللاعبون بتبادل القيم المنطقية بشكل متكرر، و يمكن للاعبين المختلفين الخروج من هذه الحلقة في أوقات مختلفة. لاعب يخرج من هذه الحلقة عن طريق الانتشار، في خطوة ما، إما قيمة خاصة 0∗ أو قيمة خاصة 1∗، وبالتالي إرشاد جميع اللاعبين إلى "يتظاهرون" أنهم يتلقون على التوالي 0 و1 من i في جميع الخطوات المستقبلية. (وقال بدلا من ذلك: افترضأن آخر رسالة تلقاها اللاعب j من لاعب آخر كنت قليلاً ب. ثم في أي خطوة حيث لا يتلقى أي رسالة من i، j يتصرف كما لو أنني أرسلت له البت b.) يستخدم البروتوكول عدادًا \(\gamma\)، يمثل عدد مرات تنفيذ الحلقة المكونة من 3 خطوات. في بداية BBA⋆، \(\gamma\) = 0. (قد يفكر المرء في \(\gamma\) كعداد عالمي، لكنه في الواقع متزايد بواسطة كل لاعب على حدة في كل مرة يتم فيها تنفيذ الحلقة.) يوجد n \(\geq\)3t + 1، حيث t هو الحد الأقصى لعدد اللاعبين الضارين. ثنائي يتم تعريف السلسلة x بالعدد الصحيح الذي يكون تمثيله الثنائي (مع البادئات المحتملة 0) هو x؛ ويشير lsb(x) إلى الجزء الأقل أهمية من x. بروتوكول BBA⋆ (الاتصال) الخطوة 1. [خطوة العملة الثابتة إلى 0] أرسل كل لاعب ثنائيًا. 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 بخلاف ذلك، i تحدد bi = 0. (الاتصال) الخطوة 2. [خطوة العملة الثابتة إلى 1] أرسل كل لاعب ثنائيًا. 2.1 إذا رقم 2 أنا (1) \(\geq\)2t + 1، ثم أقوم بتعيين ثنائية = 1، يرسل 1∗، المخرجات = 1، ويتوقف. 2.2 إذا رقم 2 ط (0) \(\geq\)2t + 1، ثم قمت بتعيين ثنائية = 0. 2.3 بخلاف ذلك، i تحدد bi = 1. (الاتصال) الخطوة 3. [الخطوة مقلوبة العملة بشكل حقيقي] أرسل لكل لاعب ثنائية و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 الذين أرسلوا لي رسالة مناسبة في هذه الخطوة 3 }، i يحدد bi = c \(\triangleq\)lsb(minj\(\in\)Si H(SIGi(r, \(\gamma\)))); يزيد \(\gamma\)i بمقدار 1؛ ويعود إلى الخطوة 1. نظرية 3.1. عندما يكون n \(\geq\)3t + 1، فإن BBA⋆ هو بروتوكول ثنائي (n، t)-BA مع سلامة 1. تم تقديم دليل على النظرية 3.1 في [26]. تكيفه مع محيطنا وإمكانية استبداله باللاعب الملكية جديدة. ملاحظة تاريخية تم اقتراح بروتوكولات BA الثنائية الاحتمالية لأول مرة بواسطة Ben-Or في الإعدادات غير المتزامنة [7]. بروتوكول BBA⋆ هو تعديل جديد لإعداد المفتاح العام الخاص بنا لـ بروتوكول BA الثنائي لفيلدمان وميكالي [15]. كان البروتوكول الخاص بهم هو أول بروتوكول يعمل بطريقة متوقعة عدد ثابت من الخطوات لقد نجح الأمر من خلال جعل اللاعبين أنفسهم ينفذون عملة مشتركة، فكرة اقترحها رابين ونفذها عبر جهة خارجية موثوقة [32].3.5 الإجماع المتدرج وبروتوكول GC دعونا نتذكر، بالنسبة للقيم التعسفية، أن فكرة الإجماع أضعف بكثير من الاتفاق البيزنطي. التعريف 3.2. دع P يكون بروتوكولًا تكون فيه مجموعة جميع اللاعبين معرفة مشتركة، ولكل منهم اللاعب الذي يعرف بشكل خاص القيمة الأولية التعسفية v' أنا. نقول أن P هو بروتوكول إجماع متدرج (n، t) إذا كان في كل تنفيذ مع n لاعبين معظمها خبيث، كل لاعب نزيه يتوقف عن إخراج زوج من الدرجة القيمة (vi، gi)، حيث gi \(\in\){0, 1, 2}، وذلك لتحقيق الشروط الثلاثة التالية: 1. لجميع اللاعبين الصادقين i وj، |gi −gj| \(\geq\)1. 2. لجميع اللاعبين الصادقين i وj, gi, gj > 0 ⇒vi = vj. 3. إذا كان الخامس ' 1 = \(\cdots\) = v' n = v لبعض القيمة v، ثم vi = v و gi = 2 لجميع اللاعبين الصادقين i. ملاحظة تاريخية إن فكرة الإجماع المتدرج مشتقة ببساطة من فكرة الإجماع المتدرج البث، الذي طرحه فيلدمان وميكالي في [15]، من خلال تعزيز فكرة الصليبية الاتفاقية، كما قدمها دوليف [12]، وصقلها توربين وكوان [33].8 في [15]، قدم المؤلفون أيضًا بروتوكول بث متدرج من 3 خطوات (n، t)، Gradecast، لـ ن \(\geq\)3t+1. تم العثور لاحقًا على بروتوكول بث متدرج أكثر تعقيدًا (n, t) لـ n > 2t+1 بواسطة كاتز وكو [19]. يتكون بروتوكول GC التالي المكون من خطوتين من الخطوتين الأخيرتين من Gradecast، المعبر عنهما في ملفنا تدوين. للتأكيد على هذه الحقيقة، ولمطابقة خطوات البروتوكول Algorand ′ من القسم 4.1، نحن قم بتسمية 2 و 3 خطوات GC على التوالي. بروتوكول جي سي الخطوة 2. أرسل لكل لاعب حرف v′ أنا لجميع اللاعبين. الخطوة 3. أرسل كل لاعب إلى جميع اللاعبين السلسلة x إذا وفقط إذا كان رقم 2 أنا (خ) \(\geq\)2t + 1. تحديد الإخراج. يقوم كل لاعب بإخراج الزوج (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). يتبع الدليل مباشرة إثبات البروتوكول في [15]، وبالتالي تم حذفه.9 8في جوهر الأمر، في بروتوكول البث المتدرج، (أ) مدخلات كل لاعب هي هوية مميزة اللاعب، المرسل، الذي له قيمة عشوائية v كمدخل خاص إضافي، و(ب) يجب أن تستوفي المخرجات نفس الخصائص 1 و2 من الإجماع المتدرج، بالإضافة إلى الخاصية التالية 3′: إذا كان المرسل صادقًا، فإن vi = v و gi = 2 لجميع اللاعبين الشرفاء i. 9في الواقع، في البروتوكول الخاص بهم، في الخطوة 1، يرسل المرسل قيمته الخاصة v إلى جميع اللاعبين، وكل لاعب أسمح له v' أنا تتكون من القيمة التي تلقاها بالفعل من المرسل في الخطوة 1.3.6 البروتوكول BA⋆ نحن الآن نصف بروتوكول BA ذو القيمة التعسفية BA⋆عبر بروتوكول BA الثنائي BBA⋆و بروتوكول الإجماع المتدرج GC. أدناه، القيمة الأولية لكل لاعب i هي v′ أنا. البروتوكول ب⋆ الخطوتين 1 و2. كل لاعب i ينفذ GC، عند الإدخال v′ i، وذلك لحساب زوج (vi، gi). الخطوة 3، . . . يقوم كل لاعب بتنفيذ BBA⋆—مع الإدخال الأولي 0، إذا كان gi = 2، و1 بخلاف ذلك— لذا أما لحساب بت outi. تحديد الإخراج. كل لاعب يخرج i، إذا كان outi = 0، و\(\bot\)خلاف ذلك. نظرية 3.3. عندما يكون n \(\geq\)3t + 1، يكون BA⋆ عبارة عن بروتوكول (n, t)-BA مع سلامة 1. دليل. نثبت أولاً الاتساق، ثم الاتفاق. إثبات الاتساق. افترض أنه بالنسبة لبعض القيمة v \(\in\)V , v′ i = v. ثم، حسب الخاصية 3 من إجماع متدرج، بعد تنفيذ GC، يتم إخراج جميع اللاعبين الصادقين (الخامس، 2). وبناء على ذلك، 0 هو الجزء الأولي من جميع اللاعبين الصادقين في نهاية تنفيذ BBA⋆. وهكذا بموجب الاتفاقية خاصية الاتفاقية البيزنطية الثنائية، في نهاية تنفيذ BA⋆، outi = 0 لجميع الشرفاء اللاعبين. هذا يعني أن ناتج كل لاعب صادق i في BA⋆is vi = v. ✷ إثبات الاتفاق. نظرًا لأن BBA⋆ هو بروتوكول BA ثنائي أيضًا (أ) outi = 1 لجميع اللاعبين الشرفاء i، أو (ب) outi = 0 لجميع اللاعبين الشرفاء i. في الحالة أ، يخرج جميع اللاعبين الصادقين \(\bot\)in BA⋆، وبالتالي تظل الاتفاقية سارية. لننظر الآن في الحالة ب في هذه الحالة، في تنفيذ BBA⋆، البت الأولي للاعب صادق واحد على الأقل i هو 0. (في الواقع، إذا الجزء الأولي من جميع اللاعبين الصادقين كان 1، إذن، بواسطة خاصية الاتساق لـ BBA⋆، سيكون لدينا outj = 1 لجميع الصادقين j.) وفقًا لذلك، بعد تنفيذ GC، أقوم بإخراج الزوج (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⋆works أيضا في شبكات النميمة. وفي الواقع، في تجسيداتنا التفصيلية لـ Algorand، سنقدمها مباشرة لشبكات النميمة. يجب أن نشير أيضًا إلى أنه يرضي إمكانية استبدال اللاعب الخاصية التي تعد ضرورية لـ Algorand لتكون آمنة في النموذج المتعارض للغاية.
يمكن أن يكون أي بروتوكول يمكن استبداله بواسطة مشغل BA يعمل في شبكة اتصالات ثرثرة يتم استخدامه بشكل آمن ضمن نظام Algorand المبتكر. على وجه الخصوص، ميكالي وفايكونثاناتان لقد قمنا بتوسيع BA للعمل بكفاءة كبيرة أيضًا مع أغلبية بسيطة من اللاعبين الشرفاء. ذلك يمكن أيضًا استخدام البروتوكول في Algorand.
Algorand의 두 가지 구현
논의된 바와 같이, 매우 높은 수준에서 Algorand 라운드는 이상적으로 다음과 같이 진행됩니다. 먼저 무작위로 선택된 사용자인 리더는 새로운 블록을 제안하고 유통시킵니다. (이 과정에는 처음에 다음이 포함됩니다. 몇 명의 잠재적인 리더를 선택한 다음 적어도 상당한 시간 동안 단일 공통 리더가 등장합니다.) 둘째, 무작위로 선택된 사용자 위원회가 선택됩니다. 리더가 제안한 블록에 대해 비잔틴 합의에 도달합니다. (이 과정에는 다음이 포함됩니다. BA 프로토콜의 각 단계는 별도로 선택된 위원회에 의해 운영됩니다.) 합의된 블록 그런 다음 위원회 구성원의 지정된 임계값(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. 완벽한 정확성. 모든 정직한 사용자는 동일한 블록 Br에 동의합니다. 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 , 그러면 모든 사용자가 비잔틴에 도달합니다. 하나의 후보 블록에 대한 합의. 소개에 따라 사용된 BA 프로토콜에는 다음이 필요합니다. 2/3의 정직한 다수이며 플레이어를 교체할 수 있습니다. 각 단계는 소규모로 실행될 수 있습니다. 내부 변수를 공유하지 않는 무작위로 선택된 검증자 세트입니다. 불행하게도 이 접근 방식은 완전성을 보장하지 않습니다. 그 후보가 그렇거든요. 정직한 사용자의 블록은 서로 완전히 다를 가능성이 높습니다. 따라서 궁극적으로 합의된 블록은 항상 최대 지불 세트가 아닌 블록일 수 있습니다. 사실, 항상 그럴 수도 있습니다. 빈 블록 B\(\varepsilon\), 즉 페이세트가 비어 있는 블록입니다. 기본적으로 비어 있는 것이 좋습니다. Algorand '는 다음과 같이 이러한 완전성 문제를 피합니다. 먼저 라운드 r의 리더인 \(\ell\)r이 선택됩니다. 그런 다음 \(\ell\)r은 자신의 후보 블록인 Br을 전파합니다. \(\ell\)r. 마지막으로 사용자는 블록에 대한 합의에 도달합니다. 그들은 실제로 \(\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로부터 그들은 모든 이전 라운드의 사용자 집합을 추론합니다. 는 PK1, . . . , PKr-1. 라운드 r의 잠재적 리더는 다음과 같은 사용자 i입니다. .H SIGi r, 1, Qr−1 \(\leq\)p . 설명해 보겠습니다. 수량 Qr−1은 블록 Br−1의 일부이므로 기본 서명 방식은 고유성 속성인 SIGi를 만족합니다. r, 1, Qr−1 고유한 이진 문자열입니다. i와 r에 연관되어 있습니다. 따라서 H는 임의의 oracle이므로 H SIGi r, 1, Qr−1 랜덤 256비트입니다 i와 r에 고유하게 연결된 긴 문자열입니다. 기호 “.” H 앞에 SIGi r, 1, Qr−1 은 소수점(우리의 경우 이진수)이므로 ri \(\triangleq\).H가 됩니다. SIGi r, 1, Qr−1 의 이진 확장입니다. i와 r에 고유하게 연결된 0과 1 사이의 임의의 256비트 숫자입니다. 따라서 확률은 ri는 p보다 작거나 같음은 본질적으로 p입니다. (우리의 잠재적 리더 선택 메커니즘은 다음과 같습니다. Micali와 Rivest [28]의 소액 결제 방식에서 영감을 받았습니다.) 확률 p는 압도적인(즉, 1 −F) 확률로 적어도 하나가 되도록 선택됩니다. 잠재적 검증자는 정직합니다. (사실이라면 p는 가장 작은 확률로 선택됩니다.)내가 자신의 서명을 계산할 수 있는 유일한 사람이기 때문에 그 사람만이 할 수 있다는 점에 유의하십시오. 그가 1차 잠재적 검증자인지 여부를 판단합니다. 그러나 자신의 자격 증명을 공개함으로써, \(\sigma\)r 나는 \(\triangleq\)SIGi r, 1, Qr−1 , 나는 누구에게나 라운드 r의 잠재적인 검증자임을 증명할 수 있습니다. 리더 \(\ell\)r은 hashed 자격 증명이 다음보다 작은 잠재적 리더로 정의됩니다. hashed 다른 모든 잠재적 리더 j의 자격 증명: 즉, H(\(\sigma\)r,s \(\ell\)r ) \(\leq\)H(\(\sigma\)r,s j). 악의적인 \(\ell\)r은 자신의 자격 증명을 공개하지 않을 수 있으므로 라운드 r의 올바른 리더는 결코 알려지지 않았으며, 가능성이 없는 관계를 제외하고 \(\ell\)r은 실제로 라운드 r의 유일한 리더입니다. 마지막으로 중요한 세부 사항을 살펴보겠습니다. 사용자 i는 잠재적인 리더가 될 수 있습니다. 리더) 라운드 r은 그가 최소한 k 라운드 동안 시스템에 속한 경우에만 해당됩니다. 이는 다음을 보장합니다. Qr 및 모든 미래 Q-양의 조작 불가능성. 실제로 잠재적인 리더 중 한 명은 실제로 Qr을 결정합니다. 검증인 선택 라운드 r의 각 단계 s > 1은 소규모 검증자 집합 SV r,s에 의해 실행됩니다. 다시 말하면, 각 검증자 i \(\in\)SV r,s는 이미 시스템 k 라운드에 참여한 사용자 중에서 무작위로 선택됩니다. r 앞에, 그리고 다시 특수 수량 Qr−1을 통해. 구체적으로, i \(\in\)PKr−k는 SV r,s의 검증자입니다. .H SIGi r, s, Qr−1 \(\leq\)p′ . 다시 한 번 말씀드리지만, 그가 SV r,s에 속해 있는지는 오직 저만이 알고 있습니다. 하지만 만약 그렇다면, 그는 다음과 같이 증명할 수 있습니다. 자신의 자격 증명 \(\sigma\)r,s를 표시함 나 \(\triangleq\)H(SIGi r, s, Qr−1 ). 검증자 i \(\in\)SV r,s는 mr,s라는 메시지를 보냅니다. 나, 에서 라운드 r의 단계 s, 이 메시지에는 그의 자격 증명 \(\sigma\)r,s가 포함됩니다. i, 검증자를 활성화하기 위해 Mr,s를 인식하는 중첩 단계 나 합법적인 단계 메시지입니다. 확률 p'는 SV r,s에서 #good이 다음의 수임을 보장하도록 선택됩니다. 정직한 사용자와 #bad 악의적인 사용자의 수가 압도적인 확률로 다음과 같습니다 두 가지 조건이 성립합니다. 실시예 Algorand '의 경우 1: (1) #좋음 > 2 \(\cdot\) #나쁨 그리고 (2) #good + 4 \(\cdot\) #bad < 2n, 여기서 n은 SV r,s의 예상 카디널리티입니다. 실시예 Algorand '의 경우 2: (1) #좋음 > tH 및 (2) #good + 2#bad < 2tH, 여기서 tH는 지정된 임계값입니다. 이러한 조건은 충분히 높은 확률로 (a) BA의 마지막 단계에서 프로토콜에 따르면, 새로운 블록 Br에 디지털 서명을 할 수 있는 정직한 플레이어가 적어도 일정 수만큼 있을 것입니다. (b) 라운드당 하나의 블록만이 필요한 수의 서명을 가질 수 있으며, (c) 사용된 BA 프로토콜은 (각 단계에서) 필요한 2/3의 정직한 다수를 갖습니다. 블록 생성 명확화 라운드 R 리더 \(\ell\)r이 정직하다면 해당 블록은 형태이다 브르 = r, PAY r, SIG\(\ell\)r Qr−1 , H Br−1 , 여기서 페이세트 PAY r은 최대입니다. (모든 지불 세트는 정의상 집합적으로 유효하다는 점을 기억하십시오.) 그렇지 않은 경우(즉, \(\ell\)r이 악의적인 경우) Br은 다음 두 가지 가능한 형식 중 하나를 갖습니다. 브르 = r, PAY r, SIGi Qr−1 , H Br−1 그리고 브롬 = 브롬 \(\varepsilon\) \(\triangleq\) r, \(\emptyset\), Qr−1, H Br−1 .첫 번째 형식에서 PAY r은 (필수적으로 최대가 아닌) 지불 세트이고 PAY r = \(\emptyset\)일 수 있습니다. 그리고 나는 라운드 r의 잠재적 리더. (단, 제가 리더는 아닐 수도 있습니다. 만약에 이런 일이 실제로 일어날 수도 있습니다. \(\ell\)r은 자신의 자격을 비밀로 유지하고 자신을 드러내지 않습니다.) 두 번째 형태는 BA 프로토콜의 라운드-R 실행에서 모든 정직한 플레이어가 빈 블록 Br인 기본값을 출력합니다. 우리 응용 프로그램에서는 \(\varepsilon\)입니다. (정의에 따르면 가능한 BA 프로토콜의 출력에는 일반적으로 \(\bot\)로 표시되는 기본값이 포함됩니다. 섹션 3.2를 참조하세요.) 두 경우 모두 페이세트가 비어 있지만 Br = r, \(\emptyset\), SIGi Qr−1 , H Br−1 그리고 브롬 \(\varepsilon\)은 구문적으로 다른 블록이며 두 가지 다른 상황에서 발생합니다. BA 프로토콜 실행이 원활하게 진행되었습니다.”, “프로그램에서 문제가 발생했습니다. BA 프로토콜이며 기본값이 출력되었습니다.” 이제 Algorand'의 라운드 r에서 블록 Br의 생성이 어떻게 진행되는지 직관적으로 설명해보자. 첫 번째 단계에서 각 적격 플레이어, 즉 각 플레이어 i \(\in\)PKr−k는 그가 잠재적인 선수인지 확인합니다. 리더. 만약 그렇다면, 그가 지금까지 본 모든 지불금을 사용하여 나에게 질문을 합니다. 현재 blockchain, B0, . . . , Br−1, 최대 지불 세트 PAY r을 비밀리에 준비하기 위해 나 , 그리고 비밀리에 후보 블록 Br =을 조립합니다. r, 지불 r 나, SIGi Qr−1 , H Br−1 . 즉, 그는 뿐만 아니라 Br에 포함 i는 두 번째 구성 요소로서 방금 준비된 지불 세트일 뿐만 아니라 세 번째 구성 요소로서 마지막 블록 Br−1의 세 번째 구성 요소인 Qr−1의 자신의 서명입니다. 마침내 그는 자신의 것을 전파했다. round-r-step-1 메시지, Mr,1 (a) 그의 후보 블록 Br을 포함하는 i i, (b) 그의 적절한 서명 그의 후보 블록(즉, Br의 hash 서명) i, 그리고 (c) 그 자신의 자격증명 \(\sigma\)r,1 나, 증명해 그는 실제로 라운드 r의 잠재적인 검증자입니다. (정직한 사람이 메시지를 전달할 때까지, Mr,1 나는, 적들은 내가 어떤 사람인지 전혀 모른다. 잠재적 검증자. 그가 정직하고 잠재적인 지도자를 타락시키고자 한다면 대적도 그렇게 할 수 있습니다. 무작위로 정직한 플레이어를 부패시킵니다. 하지만 일단 그가 Mr를 만나면,1 i , i의 자격 증명이 포함되어 있으므로 적은 나를 부패시킬 수 있다는 것을 알고 있고 부패시킬 수 있지만 Mr,1을 막을 수는 없습니다. i 에서 바이러스로 전파됩니다. 시스템의 모든 사용자에게 도달합니다.) 두 번째 단계에서 선택된 각 검증자 j \(\in\)SV r,2는 라운드의 리더를 식별하려고 시도합니다. 구체적으로 j는 1단계 자격 증명 \(\sigma\)r,1을 사용합니다. 나는1, . . . , \(\sigma\)r,1 in , 적절한 1단계 메시지 mr,1에 포함되어 있음 나 그는 받았다; hashes 모두, 즉 H를 계산합니다. \(\sigma\)r,1 i1 , . . . , H \(\sigma\)r,1 안으로 ; 자격증을 찾고, \(\sigma\)r,1 \(\ell\)j , hash은 사전순으로 최소값입니다. \(\ell\)r을 고려한다. j가 라운드 r의 리더가 됩니다. 고려되는 각 크리덴셜은 Qr-1의 디지털 서명이며 SIGi라는 점을 기억하세요. r, 1, Qr−1 이다 i와 Qr−1에 의해 고유하게 결정되며, H는 무작위 oracle이므로 각 H(SIGi r, 1, Qr−1 라운드 r의 각 잠재적 리더 i에 고유한 임의의 256비트 긴 문자열입니다. 이것으로부터 우리는 256비트 문자열 Qr−1 자체가 무작위적이고 독립적이라면 다음과 같이 결론을 내릴 수 있습니다. 그러면 라운드 r의 모든 잠재적 리더의 hashed 자격 증명이 선택됩니다. 사실, 모두 잠재적인 리더는 잘 정의되어 있으며 그들의 자격 증명도 마찬가지입니다(실제로 계산되었거나 아닙니다). 또한, 라운드 r의 잠재적 리더 집합은 라운드 사용자의 무작위 하위 집합입니다. r −k, 그리고 정직한 잠재적 리더인 나는 항상 그의 메시지를 적절하게 구성하고 전파합니다. 나 , 여기에는 i의 자격 증명이 포함되어 있습니다. 따라서 정직한 사용자의 비율은 h이므로, 어떤 경우에도 악의적인 잠재적 리더가 할 수 있는 최소한의 조치(예: 자신의 자격 증명을 공개하거나 숨기는 것) hashed 잠재적 리더 자격 증명은 모든 사람이 반드시 식별하는 정직한 사용자에게 속합니다. 라운드 r의 리더 \(\ell\)r이 되는 것입니다. 따라서 256비트 문자열 Qr−1 자체가 무작위이고 독립적으로 선택됨, 확률이 정확히 h (a) 리더 \(\ell\)r이 정직하고 (b) 모두에 대해 \(\ell\)j = \(\ell\)r 정직한 2단계 검증자 j. 실제로 hashed 자격 증명은 무작위로 선택되지만 Qr−1에 따라 달라집니다.무작위로 독립적으로 선택되지 않습니다. 그러나 우리는 분석을 통해 Qr−1이 라운드의 리더가 확률적으로 정직하다는 것을 보장할 만큼 충분히 조작 불가능합니다. h′는 h에 충분히 가깝습니다. 즉, h′ > h2(1 + h −h2)입니다. 예를 들어, h = 80%이면 h′ > .7424입니다. 라운드의 리더를 식별한 후(리더가 정직할 때 올바르게 수행), 2단계 검증자의 임무는 자신이 믿는 바를 초기값으로 사용하여 BA 실행을 시작하는 것입니다. 리더의 블록이 될 것입니다. 실제로 필요한 의사소통의 양을 최소화하기 위해, 검증자 j \(\in\)SV r,2는 입력 값 v′을 사용하지 않습니다. j를 비잔틴 프로토콜로 변경하고, 해당 블록 Bj를 그는 실제로 \(\ell\)j(사용자 j가 리더라고 믿는)로부터 받았지만 리더이지만 해당 블록의 hash, 즉 v′ j = H(Bi). 따라서 BA 프로토콜이 종료되면 검증자는 마지막 단계에서는 원하는 round-r 블록 Br을 계산하지 않고 계산합니다(인증 및 전파) H(Br). 따라서 H(Br)는 충분히 많은 검증자들에 의해 디지털 서명되기 때문에 BA 프로토콜의 마지막 단계에서 시스템의 사용자는 H(Br)가 새로운 프로토콜의 hash임을 깨닫게 됩니다. 블록. 그러나 실행이 상당히 비동기적이므로 검색(또는 대기)해야 합니다. Br 자체를 차단합니다. 프로토콜은 적의 공격에 관계없이 실제로 사용할 수 있도록 보장합니다. 할 수도 있습니다. 비동기성과 타이밍 Algorand ' 1 및 Algorand ' 2는 상당한 정도의 비동기성을 가지고 있습니다. 이는 공격자가 메시지 전달 일정을 정하는 데 큰 권한을 갖고 있기 때문입니다. 전파. 또한, 라운드의 총 단계 수에 제한이 있는지 여부가 있습니다. 실제로 수행된 단계 수에 따라 차이가 발생합니다. 그는 B0의 인증서를 알게 되자마자 . . . , Br−1, 사용자 i가 Qr−1을 계산하고 작업을 시작합니다. r 라운드에서는 그가 잠재적인 리더인지, 아니면 r 라운드의 일부 단계에서 검증자인지 확인합니다. 논의된 비동기성에 비추어 단계에서 행동해야 한다고 가정하면 나는 다양한 방법에 의존합니다. 행동하기 전에 충분한 정보를 갖고 있는지 확인하는 전략입니다. 예를 들어, 그는 검증자로부터 최소한 주어진 수의 메시지를 받기를 기다릴 수 있습니다. 이전 단계로 진행하거나, 그가 메시지를 충분히 받을 수 있도록 충분한 시간을 기다리세요. 이전 단계의 많은 검증자가 있습니다. Seed Qr과 Look-Back 매개변수 k 이상적으로 Qr의 양은 다음과 같아야 합니다. 무작위적이고 독립적이지만, 인간이 충분히 조작할 수 없는 것으로도 충분합니다. 대적. 얼핏 보면 H와 일치하는 Qr−1을 선택할 수 있습니다. 지불 r−1 , 따라서 다음을 피하십시오 Br−1에 Qr−1을 명시적으로 지정합니다. 그러나 기본 분석에 따르면 악의적인 사용자는 이 선택 메커니즘을 활용하십시오.11 몇 가지 추가 노력을 통해 수많은 다른 방법이 있음을 알 수 있습니다. 11우리는 r-1 라운드의 시작점에 있습니다. 따라서 Qr−2 = PAY r−2는 공개적으로 알려지며, 공격자는 비공개로 진행됩니다. 자신이 통제하는 잠재적인 리더가 누구인지 알고 있습니다. 공격자가 사용자의 10%를 통제한다고 가정하고, 매우 높은 확률로 악의적인 사용자 w가 라운드 r -1의 잠재적 리더가 됩니다. 즉, H SIGw r−2, 1, Qr−2 규모가 너무 작아서 정직하고 잠재적인 리더가 실제로 리더가 될 가능성은 거의 없습니다. 라운드 r −1의 리더. (우리는 비밀 암호화 분류 메커니즘을 통해 잠재적인 리더를 선택하므로 대적은 정직한 잠재적 지도자가 누구인지 모릅니다.) 따라서 대적은 부러워할 만한 입장에 있습니다. PAY'를 원하는 페이셋을 선택하는 위치로 설정하고, 이를 라운드 r-1의 공식 페이셋으로 설정합니다. 그러나, 그는 더 많은 일을 할 수 있습니다. 그는 또한 높은 확률로 () 그의 악의적인 사용자 중 한 명이 리더가 되도록 보장할 수 있습니다. PAY r이 무엇인지 자유롭게 선택할 수 있도록 라운드 r에도 적용됩니다. (등등. 적어도 한동안은, 즉, 이러한 확률이 높은 사건이 실제로 발생하는 한.) ()를 보장하기 위해 공격자는 다음과 같이 행동합니다. 지불하자' 라운드 r -1에 대해 적이 선호하는 페이세트가 됩니다. 그런 다음 그는 H(PAY ′)를 계산하고 일부에 대해 다음을 확인합니다. 이미 악의적인 플레이어 z, SIGz(r, 1, H(PAY'))는 특히 작습니다. 확률 z는 라운드 r의 리더가 될 것입니다. 만약 그렇다면, 그는 w에게 자신의 후보 블록을 선택하라고 지시합니다.전통적인 블록 수량을 기반으로 한 대안은 공격자가 쉽게 악용하여 다음을 보장할 수 있습니다. 악의적인 리더가 매우 빈번하다는 것입니다. 대신에 우리는 우리 브랜드를 구체적이고 귀납적으로 정의합니다. 새로운 수량 Qr은 적에 의해 조작 불가능하다는 것을 증명할 수 있습니다. 즉, Br이 빈 블록이 아닌 경우 Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r)이고, 그렇지 않은 경우 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\)r. 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의 출력으로 함으로써 출력이 무작위임을 보장합니다. H의 두 번째 입력으로 r을 포함하고 H의 다른 모든 사용에는 하나 또는 3개 이상의 입력이 있습니다. 그러한 Qr이 독립적으로 선택됨을 "보장"합니다. 다시 말하지만, 대체 Qr의 특정 선택 중요하지 않습니다. \(\ell\)r이 Qr에 대해 두 가지 선택권을 갖고 있으므로 확률을 두 배로 늘릴 수 있다는 것이 중요합니다. 또 다른 악의적인 사용자를 다음 리더로 삼는 것입니다. 악의적인 \(\ell\)r을 제어하는 적에게는 Qr에 대한 옵션이 훨씬 더 많을 수 있습니다. 예를 들어, x, y, z가 라운드 r의 세 명의 악의적인 잠재적 리더라고 가정해 보겠습니다. H \(\sigma\)r,1 엑스 < H \(\sigma\)r,1 와이 < H \(\sigma\)r,1 z 그리고 H \(\sigma\)r,1 z 특히 작습니다. 즉, 너무 작아서 H가 발생할 가능성이 높습니다. \(\sigma\)r,1 z 이다 모든 정직한 잠재적 리더의 hashed 자격 증명 중 더 작은 것입니다. 그런 다음 x에게 자신을 숨기라고 요청하여 자격 증명을 사용하면 적군은 y가 라운드 r -1의 리더가 될 가능성이 높습니다. 이 이는 그가 Qr에 대한 또 다른 옵션, 즉 SIGy를 가지고 있음을 의미합니다. Qr−1 . 마찬가지로, 적도 z가 라운드 r −1의 리더가 되도록 x와 y 모두에게 자격 증명을 보류하도록 요청하세요. Qr에 대한 또 다른 옵션인 SIGz를 얻습니다. Qr−1 . 물론, 이러한 옵션과 기타 옵션 각각은 실패할 확률이 0이 아닙니다. 공격자는 정직한 잠재적 사용자의 디지털 서명의 hash을 예측할 수 없습니다. Br−1 나 = (r −1, PAY ′, H(Br−2). 그렇지 않으면 그는 계속해서 새로운 지불을 생성할 두 명의 다른 악의적인 사용자 x와 y를 갖게 됩니다. \(\wp\)′, 일부 악의적인 사용자 z(또는 일부 고정 사용자 z)에 대해 H(SIGz (PAY ′ \(\cup\){\(\wp\)}))가 될 때까지 하나에서 다른 것으로 특히 작습니다. 이 실험은 매우 빨리 중단됩니다. 그리고 그럴 때 상대방은 w에게 프로포즈를 요청합니다. 후보 블록 Br−1 나 = (r −1, PAY ′ \(\cup\){\(\wp\)}, H(Br−2). 12예를 들어, 단순하게(그러나 극단적으로) 표현하자면, “두 번째 단계의 시간이 거의 만료될 때”, \(\ell\)r은 각 사용자에게 다른 후보 블록 Bi를 직접 이메일로 보냅니다. i. 이렇게 하면 2단계 검증자가 누구든지 완전히 다른 블록을 받게 될 것입니다.조심스러운 마르코프 체인과 같은 분석은 공격자가 어떤 옵션을 선택하든 상관없다는 것을 보여줍니다. 라운드 r -1에서 만들기 위해 시스템에 새로운 사용자를 주입할 수 없는 한 그는 사용자를 줄일 수 없습니다. 정직한 사용자가 h보다 훨씬 낮은 r + 40 라운드의 리더가 될 확률입니다. 이것이 이유이다 우리는 라운드 r의 잠재적 리더가 이미 라운드 r -k에 존재하는 사용자여야 한다고 요구합니다. 이는 r −k 라운드에서 적이 다음과 같은 확률을 크게 변경할 수 없도록 보장하는 방법입니다. 정직한 사용자가 라운드 r의 리더가 됩니다. 실제로 어떤 사용자를 추가하더라도 시스템에서 r -k부터 r까지의 라운드에서 그들은 잠재적인 리더가 될 자격이 없습니다. 리더) 라운드 r. 따라서 되돌아보기 매개변수 k는 궁극적으로 보안 매개변수입니다. (하지만, 섹션 7에서 살펴보겠지만 이는 일종의 "편의 매개변수"일 수도 있습니다.) 임시 열쇠 우리 프로토콜의 실행은 다음을 제외하고는 포크를 생성할 수 없지만 무시할 수 있는 확률로, 공격자는 합법적인 블록 이후에 r번째 블록에서 포크를 생성할 수 있습니다. 블록 r이 생성되었습니다. 대략적으로 Br이 생성되면 공격자는 각 단계의 검증자가 누구인지 알게 됩니다. 라운드 r은 입니다. 따라서 그는 그들 모두를 부패시키고 새로운 블록을 인증하도록 강요할 수 있습니다. 에프 브르. 이 가짜 블록은 합법적인 블록 이후에만 전파될 수 있으므로, 주의를 기울이는 것은 속지 않을 것입니다.13 그럼에도 불구하고, f Br은 구문론적으로 정확할 것이며 우리는 제조되는 것을 방지하고 싶습니다. 우리는 새로운 규칙을 통해 그렇게 합니다. 본질적으로 검증자의 구성원은 단계 s의 SV r,s를 설정합니다. 라운드 r에서는 임시 공개 키 pkr,s를 사용합니다. 나 메시지에 디지털 서명을 합니다. 이러한 키는 일회용이며 해당 비밀 키는 skr,s입니다. 나 한번 사용되면 폐기됩니다. 이렇게 하면 검증인이 나중에 부패한 경우, 적대자는 그가 원래 서명하지 않은 다른 항목에 서명하도록 강요할 수 없습니다. 당연히 우리는 공격자가 새로운 키 g를 계산하는 것이 불가능하다는 것을 보장해야 합니다. 홍보, 초 나 그리고 단계 s에서 사용하는 것이 검증자 i \(\in\)SV r,s의 올바른 임시 키임을 정직한 사용자에게 설득합니다. 4.2 표기법, 개념 및 매개변수의 공통 요약 표기법 • r \(\geq\)0: 현재 라운드 수. • s \(\geq\)1: 라운드 r의 현재 단계 번호. • Br: r 라운드에서 생성된 블록입니다. • PKr: r 라운드가 끝날 때와 r 라운드가 시작될 때의 공개 키 집합입니다. • Sr: 라운드 r -1 종료 시 및 라운드 r.14 시작 시 시스템 상태 • PAY r: Br에 포함된 페이세트입니다. • \(\ell\)r: 라운드 R 리더. \(\ell\)r은 라운드 r의 페이세트 PAY r을 선택합니다(그리고 다음 Qr을 결정합니다). • Qr: 라운드 r의 시드, 라운드 r의 끝에서 생성되는 수량(즉, 이진 문자열) 라운드 r + 1에 대한 검증자를 선택하는 데 사용됩니다. Qr은 블록의 페이세트와 독립적입니다. \(\ell\)r로 조작할 수 없습니다. 13주요 TV 네트워크의 뉴스 앵커를 부패시키고 오늘 뉴스 영화를 제작 및 방송하는 것을 고려하십시오. 클린턴 장관이 지난 대선에서 승리한 모습을 보여줍니다. 우리 대부분은 그것을 사기로 인식할 것입니다. 하지만 혼수상태에서 벗어나는 사람은 속을 수도 있습니다. 14동기적이지 않은 시스템에서는 "라운드 r의 끝 -1"과 "라운드 r의 시작"이라는 개념이 주의 깊게 정의할 필요가 있다. 수학적으로 PKr과 Sr은 초기 상태 S0과 블록에서 계산됩니다. B1, . . . , Br-1.• SV r,s: 라운드 r의 단계 s에 대해 선택된 검증자 세트입니다. • SV r: 라운드 r을 위해 선택된 검증자 세트, SV r = \(\cup\)s\(\geq\)1SV r,s. • MSV r,s 및 HSV r,s: 각각 악의적인 검증자 집합과 정직한 검증자 집합 SV 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+: 각각 각 SV에서 예상되는 잠재적 리더 수 r,1, s > 1인 경우 각 SV r,s에서 예상되는 검증자 수입니다. n1 << n에 주목하세요. SV r,1에는 최소한 한 명의 정직하고 정직한 구성원이 필요하기 때문입니다. s > 1인 경우 각 SV r,s의 정직한 구성원 대다수. • h \(\in\)(0, 1): 2/3보다 큰 상수. h는 시스템의 정직성 비율입니다. 즉, 사용된 가정에 따라 각 PKr에서 정직한 사용자 또는 정직한 돈의 비율은 다음과 같습니다. 적어도 h. • H: 무작위 oracle로 모델링된 암호화 hash 함수입니다. • \(\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 Kr−k|. • p \(\in\)(0, 1): 라운드 r의 각 단계 s > 1에 대해 라운드 r −k의 사용자는 SV r,s에 속하도록 선택됩니다. 확률 p \(\triangleq\) 엔 |P Kr−k|. • CERT r: Br에 대한 인증서입니다. 이는 적절한 검증자로부터 나온 H(Br)의 tH 서명 세트입니다. 라운드 r. • Br \(\triangleq\)(Br, CERT r)은 검증된 블록입니다. 내가 Br을 아는 사용자는 그가 입증된 블록의 두 부분을 모두 소유하고 성공적으로 검증한 경우입니다. 다른 사용자에게 표시되는 CERT r은 다를 수 있습니다. • τr i : 사용자 i가 Br을 알고 있는 (현지) 시간입니다. Algorand 프로토콜에서 각 사용자는 자신의 나만의 시계. 서로 다른 사용자의 시계를 동기화할 필요는 없지만 속도는 동일해야 합니다. 분석 목적으로만 기준 시계를 고려하고 플레이어의 그와 관련된 시간. • \(\alpha\)r,s 나 그리고 \(\beta\)r,s i : 각각 사용자 i가 단계 s의 실행을 시작하고 종료하는 (로컬) 시간입니다. 라운드 r. • Λ 및 \(\lambda\): 본질적으로 각각 1단계 및 \(\lambda\)를 실행하는 데 필요한 시간의 상한입니다. Algorand 프로토콜의 다른 단계에 필요한 시간. 매개변수 Λ는 단일 1MB 블록을 전파하는 데 걸리는 시간의 상한입니다. (우리 표기법에서는 Λ = \(\lambda\) \(\rho\),1MB. 단순화를 위해 \(\rho\) = 1로 설정하고 블록은 최대 1MB 길이로 선택하면 Λ = \(\lambda\)1,1,1MB가 됩니다.) 15엄밀히 말하면 “r −k”는 “max{0, r −k}”이어야 합니다.매개변수 \(\lambda\)는 단계 s > 1에서 검증자당 하나의 작은 메시지를 전파하는 데 걸리는 시간의 상한입니다. (Bitcoin에서와 같이 32B 키가 있는 타원 곡선 서명을 사용하면 검증자 메시지의 길이는 200B입니다. 따라서 표기법에서는 \(\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)은 i의 (r, s) 자격 증명이며 간략하게 표시됩니다. \(\sigma\)r,s에 의해 나. 라운드 r의 첫 번째 단계에서는 SV r,1 및 \(\sigma\)r,1 나 p는 p1으로 대체되어 유사하게 정의됩니다. 는 SV r,1의 검증자는 잠재적인 리더입니다. • 리더 선택. 사용자 i \(\in\)SV r,1은 H(\(\sigma\)r,1인 경우) \(\ell\)r로 표시되는 라운드 r의 리더입니다. i ) \(\leq\)H(\(\sigma\)r,1 j) 모든 잠재력에 대해 리더 j \(\in\)SV r,1. 두 플레이어의 자격 증명의 hashes를 비교할 때마다 가능성은 희박합니다. 동점인 경우 프로토콜은 항상 사전순으로 동점을 끊습니다(장기 공개). ) 잠재적 지도자의 열쇠. 정의에 따르면 플레이어 \(\ell\)r의 크리덴셜 값 hash도 전체 사용자 중 가장 작습니다. PKr-k. 잠재적인 리더는 자신이 리더인지 아닌지 개인적으로 결정할 수 없습니다. 다른 잠재적 리더의 자격 증명을 보지 않고. hash 값은 무작위로 균일하므로 SV r,1이 비어 있지 않으면 \(\ell\)r은 항상 존재하며 적어도 h의 확률로 정직합니다. 매개변수 n1은 다음을 보장할 만큼 충분히 큽니다. SV r,1은 압도적인 확률로 비어 있지 않습니다. • 블록 구조. 비어 있지 않은 블록은 Br = (r, PAY r, SIG\(\ell\)r(Qr−1), H(Br−1)) 형식이며, 빈 블록은 Br 형태이다 Ϋ = (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는 상대가 r −k −1 라운드에서 다시 Qr−1을 예측할 수 없도록 선택됩니다. F보다 확률이 더 높습니다. 그렇지 않으면 악의적인 사용자를 유입시킬 수 있습니다. 라운드 r -k에 대해, 이들 모두는 라운드 r에서 잠재적인 리더/검증자가 될 것입니다.
원하는 일부 단계에 대해 SV r에 악의적인 리더 또는 악의적인 다수가 있는 경우 그. — 각 라운드 r의 1단계에서는 압도적인 확률로 SV r,1̸= \(\emptyset\)이 되도록 n1이 선택됩니다. • 중요한 매개변수의 예시 선택. — H의 출력 길이는 256비트입니다. — h = 80%, n1 = 35. — Λ = 1분, \(\lambda\) = 10초. • 프로토콜 초기화. 프로토콜은 r = 0으로 시간 0에서 시작합니다. "B-1" 또는 "CERT-1"이 존재하지 않으므로, 구문론적으로 B−1은 Q−1을 지정하는 세 번째 구성 요소가 있는 공개 매개변수이며 모든 사용자는 시간 0에서 B−1을 알고 있습니다.
نموذجان من 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. الصواب التام. يتفق جميع المستخدمين الصادقين على نفس الكتلة Br. 2. الاكتمال 1. مع الاحتمال 1، تكون مجموعة الدفعات Br، PAY r، هي الحد الأقصى.10 10 نظرًا لأن مجموعات الدفع مصممة بحيث تحتوي على مدفوعات صالحة، والمستخدمين الصادقين يقومون بإجراء مدفوعات صالحة فقط، وهو الحد الأقصى يحتوي PAY r على المدفوعات "المستحقة حاليًا" لجميع المستخدمين الصادقين.وبطبيعة الحال، فإن ضمان الصحة الكاملة وحده أمر تافه: فالجميع يختار دائمًا المسؤول payset PAY r لتكون فارغة. ولكن في هذه الحالة، سيكون للنظام اكتمال 0. لسوء الحظ، إن ضمان الصحة الكاملة والكمال 1 ليس بالأمر السهل في ظل وجود البرامج الخبيثة المستخدمين. Algorand وبالتالي يتبنى هدفًا أكثر واقعية. بشكل غير رسمي، ترك h يدل على النسبة المئوية من المستخدمين الصادقين، h > 2/3، الهدف من Algorand هو ضمان، مع احتمالية ساحقة، صحة واكتمال تام بالقرب من ح. ويبدو أن تفضيل الصحة على الاكتمال هو خيار معقول: فالمدفوعات لا تتم معالجتها يمكن معالجة جولة واحدة في الجولة التالية، ولكن ينبغي تجنب الشوكات، إن أمكن. الاتفاق البيزنطي بقيادة يمكن ضمان الصحة المثالية على النحو التالي. في البداية من الجولة r، يقوم كل مستخدم ببناء الكتلة المرشحة الخاصة به Br i، ثم يصل جميع المستخدمين إلى البيزنطية الاتفاق على كتلة مرشح واحد. وفقا لمقدمتنا، يتطلب بروتوكول مكتبة الإسكندرية المستخدمة أغلبية صادقة بنسبة 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\)ص أن تكون كتلة فارغة، ثم بصراحة نشرها، وبالتالي إجبار المستخدمين الصادقين على الموافقة على الكتلة الفارغة.) اختيار القائد في Algorand's، تكون الكتلة r على الشكل Br = (r, PAY r, Qr, H(Br−1). كما ذكرنا سابقًا في المقدمة، تم تصميم الكمية Qr−1 بعناية بحيث تكون كذلك بشكل أساسي غير قابل للتلاعب من قبل خصمنا القوي للغاية. (سنأتي لاحقًا في هذا القسم قدم بعض الحدس حول سبب حدوث ذلك.) في بداية الجولة r، يعرف جميع المستخدمين blockchain حتى الآن، B0، . . . ، Br−1، والتي يستنتجون منها مجموعة المستخدمين في كل جولة سابقة: ذلك هو، PK1، . . . ، PKr−1. القائد المحتمل للجولة r هو مستخدم من هذا القبيل .ح سيجي ص، 1، Qr−1 \(\geq\)ص . دعونا نشرح. لاحظ أنه بما أن الكمية Qr−1 هي جزء من الكتلة Br−1 والجزء الأساسي منها مخطط التوقيع يلبي خاصية التفرد، SIGi ص، 1، Qr−1 هي سلسلة ثنائية بشكل فريد المرتبطة ط و ص. وبالتالي، نظرًا لأن 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. (كانت آلية اختيار القائد المحتمل لدينا هي: مستوحاة من نظام الدفع الصغير لـ Micali وRivest [28].) يتم اختيار الاحتمال p بحيث يكون احتمال واحد على الأقل، مع احتمال ساحق (أي 1 −F). المدقق المحتمل صادق. (إذا كانت الحقيقة، فقد تم اختيار p ليكون أصغر احتمال من هذا القبيل.)لاحظ أنه بما أنني الشخص الوحيد القادر على حساب توقيعاته، فهو وحده يستطيع ذلك تحديد ما إذا كان هو المدقق المحتمل للجولة الأولى. ومع ذلك، من خلال الكشف عن أوراق اعتماده، ص أنا \(\triangleq\)SIGI ص، 1، Qr−1 ، يمكنني أن أثبت لأي شخص أنه متحقق محتمل من الجولة r. يتم تعريف القائد \(\ell\)r على أنه القائد المحتمل الذي تكون مؤهلاته __PH_0003__ed أصغر من hashed بيانات الاعتماد لجميع القادة المحتملين الآخرين j: أي H(\(\sigma\)r,s) \(\ell\)r ) \(\geq\)H(\(\sigma\)r,s ي). لاحظ أنه نظرًا لأن \(\ell\)r الخبيث قد لا يكشف عن بيانات اعتماده، فإن القائد الصحيح للجولة r قد يفعل ذلك لا يُعرف أبدًا، وذلك باستثناء العلاقات غير المحتملة، \(\ell\)r هو بالفعل القائد الوحيد للجولة r. دعونا أخيرًا نطرح تفصيلًا أخيرًا ولكنه مهم: يمكن للمستخدم أن يكون قائدًا محتملاً (وبالتالي القائد) للجولة r فقط إذا كان ينتمي إلى النظام لمدة k على الأقل. هذا يضمن عدم القدرة على التلاعب بـ Qr وجميع كميات Q المستقبلية. في الواقع، أحد القادة المحتملين سيحدد في الواقع ريال قطري. اختيار المدقق يتم تنفيذ كل خطوة s > 1 من الجولة r بواسطة مجموعة صغيرة من أدوات التحقق، SV r,s. مرة أخرى، يتم اختيار كل مدقق i \(\in\)SV r,s بشكل عشوائي من بين المستخدمين الموجودين بالفعل في جولات النظام k قبل r، ومرة أخرى عبر الكمية الخاصة Qr−1. على وجه التحديد، i \(\in\)PKr−k هو أداة التحقق في SV r,s، إذا .ح سيجي ص، ق، Qr−1 \(\geq\)ص' . مرة أخرى، أنا الوحيد الذي يعرف ما إذا كان ينتمي إلى SV r,s، ولكن إذا كان هذا هو الحال، فيمكنه إثبات ذلك عن طريق عرض أوراق اعتماده \(\sigma\)r،s أنا \(\triangleq\)H(سيجي ص، ق، Qr−1 ). يرسل المدقق i \(\in\)SV r,s رسالة، يا سيد، s أنا، في الخطوات s من الجولة r، وتتضمن هذه الرسالة بيانات اعتماده \(\sigma\)r,s i، وذلك لتمكين القائمين على التحقق من خطوة العش للتعرف على أن السيد، ق أنا هي رسالة مشروعة. يتم اختيار الاحتمالية p′ للتأكد من أنه في SV r,s، يكون #good هو عدد عدد المستخدمين الصادقين وعدد المستخدمين الضارين #سيء، مع احتمال كبير بما يلي عقد شرطين. للتجسيد Algorand ′ 1: (1) #جيد > 2 \(\cdot\) #سيء و (2) #جيد + 4 \(\cdot\) #سيئ < 2n، حيث n هي العلاقة الأساسية المتوقعة لـ SV r,s. للتجسيد Algorand ′ 2: (١) #حسن > ث و (2) #جيد + 2#سيئ <2tH، حيث tH هو عتبة محددة. تشير هذه الشروط إلى أنه، مع وجود احتمالية عالية بما فيه الكفاية، (أ) في الخطوة الأخيرة من مكتبة الإسكندرية البروتوكول، سيكون هناك على الأقل عدد محدد من اللاعبين الشرفاء للتوقيع رقميًا على الكتلة الجديدة Br، (ب) يجوز أن تحتوي كتلة واحدة فقط في كل جولة على العدد اللازم من التوقيعات، و(ج) شهادة البكالوريوس المستخدمة يتمتع البروتوكول (في كل خطوة) بالأغلبية الصادقة المطلوبة بنسبة 2/3. توضيح إنشاء الكتلة إذا كان زعيم الجولة r \(\ell\)r صادقًا، فإن الكتلة المقابلة هو من النموذج ر = ص، دفع ص، SIG\(\ell\)r Qr−1 ، ح ر−1 , حيث يكون payset PAY r هو الحد الأقصى. (تذكر أن جميع مجموعات الدفع، بحكم تعريفها، صالحة بشكل جماعي.) بخلاف ذلك (أي إذا كان \(\ell\)r ضارًا)، فإن Br له أحد الشكلين المحتملين التاليين: ر = ص، دفع ص، سيجي ريال قطري−1 ، ح ر−1 و ر = ر \(\varepsilon\) \(\triangleq\) ص، \(\emptyset\)، Qr−1، H ر−1 .في النموذج الأول، PAY r عبارة عن مجموعة رواتب (غير ضرورية الحد الأقصى) وقد تكون PAY r = \(\emptyset\)؛ وأنا كذلك زعيم محتمل للجولة ص. (ومع ذلك، قد لا أكون القائد. قد يحدث هذا بالفعل إذا \(\ell\)r يخفي أوراق اعتماده ولا يكشف عن نفسه.) ينشأ النموذج الثاني عندما يكون جميع اللاعبين الشرفاء في التنفيذ الدائري لبروتوكول BA إخراج القيمة الافتراضية، وهي الكتلة الفارغة Br \(\varepsilon\) في طلبنا. (بالتعريف: الممكن تشتمل مخرجات بروتوكول BA على قيمة افتراضية، يُشار إليها عمومًا بالرمز \(\bot\). انظر القسم 3.2.) لاحظ أنه على الرغم من أن مجموعات الدفع فارغة في كلتا الحالتين، فإن Br = ص، \(\emptyset\)، سيجي ريال قطري−1 ، ح ر−1 و ر \(\varepsilon\) عبارة عن كتل مختلفة نحويًا وتنشأ في حالتين مختلفتين: على التوالي، "جميع" سارت الأمور بسلاسة كافية في تنفيذ بروتوكول مكتبة الإسكندرية"، و"حدث خطأ ما في بروتوكول BA، وكانت القيمة الافتراضية هي الإخراج". دعونا الآن نصف بشكل حدسي كيف يستمر توليد الكتلة Br في الجولة r من Algorand ′. في الخطوة الأولى، يقوم كل لاعب مؤهل، أي كل لاعب i \(\in\)PKr−k، بالتحقق مما إذا كان لاعبًا محتملاً زعيم. إذا كان هذا هو الحال، فسيتم سؤالي باستخدام جميع المدفوعات التي شاهدها حتى الآن، و الحالي blockchain، B0، . . . ، Br−1، لإعداد مجموعة الدفع القصوى سرًا، PAY r أنا، وسرا يجمع كتلة مرشحه، Br = ص، دفع ص أنا، سيجي ريال قطري−1 ، ح ر−1 . أي أنه لا يفعل ذلك فقط تضمين في ر أنا، باعتباره المكون الثاني، مجموعة الرواتب التي تم إعدادها للتو، ولكن أيضًا، باعتباره المكون الثالث، توقيعه الخاص لـ Qr−1، المكون الثالث للكتلة الأخيرة، Br−1. وأخيرا، نشر له رسالة مستديرة ص-خطوة-1، السيد،1 i، والذي يتضمن (أ) مرشحه كتلة Br ط، (ب) توقيعه الصحيح من كتلة مرشحه (أي توقيعه على hash من الأخ i و (ج) أوراق اعتماده \(\sigma\)r,1 أنا، إثبات أنه بالفعل متحقق محتمل من الجولة r. (لاحظ أنه حتى يصدر الصادق رسالته السيد 1 أنا، الخصم ليس لديه أدنى فكرة عن أنني المدقق المحتمل إذا كان يرغب في إفساد القادة المحتملين الصادقين، فقد يفعل الخصم ذلك أيضًا لاعبين نزيهين عشوائيين فاسدين. ومع ذلك، بمجرد أن يرى السيد،1 i، نظرًا لأنه يحتوي على بيانات الاعتماد الخاصة بي، فإن الخصم يعرف ويمكنه إفساد أنا، لكنه لا يستطيع منع السيد،1 أنا، والذي يتم نشره فيروسيًا، من الوصول إلى جميع المستخدمين في النظام.) في الخطوة الثانية، يحاول كل مدقق محدد j \(\in\)SV r,2 تحديد قائد الجولة. على وجه التحديد، يأخذ j بيانات اعتماد الخطوة 1، \(\sigma\)r,1 i1،. . . ، ص،1 في ، الواردة في رسالة الخطوة 1 المناسبة السيد،1 أنا لقد نال؛ hashes جميعها، أي أنها تحسب H ص،1 i1 ، . . . ، ح ص،1 في ; يجد أوراق الاعتماد، ص،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، والقائد المحتمل الصادق، أقوم دائمًا ببناء رسالته ونشرها بشكل صحيح أنا، الذي يحتوي على بيانات الاعتماد الخاصة بي. وبالتالي، نظرًا لأن النسبة المئوية للمستخدمين الصادقين هي h، بغض النظر عن الأمر الحد الأدنى الذي قد يفعله القادة المحتملون الخبثاء (على سبيل المثال، الكشف عن أوراق اعتمادهم أو إخفاءها). hashed تنتمي بيانات اعتماد القائد المحتمل إلى مستخدم صادق، والذي يتم التعرف عليه بالضرورة من قبل الجميع ليكون القائد \(\ell\)r للجولة r. وفقًا لذلك، إذا كانت السلسلة ذات 256 بت Qr−1 نفسها عشوائيًا و تم اختياره بشكل مستقل، مع احتمال بالضبط ح (أ) القائد \(\ell\)r صادق و (ب) \(\ell\)j = \(\ell\)r للجميع المتحققون الصادقون من الخطوة 2 ي. في الواقع، تم اختيار بيانات الاعتماد hashed بشكل عشوائي، ولكنها تعتمد على Qr−1، وهولم يتم اختيارها بشكل عشوائي ومستقل. ومع ذلك، سنثبت في تحليلنا أن Qr−1 هو غير قابلة للتلاعب بدرجة كافية لضمان أن يكون زعيم الجولة صادقًا في الاحتمالية h′ قريبة بما فيه الكفاية من h: وهي h′ > h2(1 + h −h2). على سبيل المثال، إذا كانت h = 80%، فإن h′ > .7424. بعد تحديد قائد الجولة (وهو ما يفعلونه بشكل صحيح عندما يكون القائد \(\ell\)r صادقًا)، تتمثل مهمة مدققي الخطوة الثانية في البدء في تنفيذ مكتبة الإسكندرية باستخدام ما يعتقدون أنه قيم أولية لتكون كتلة الزعيم. في الواقع، من أجل تقليل حجم الاتصالات المطلوبة، لا يستخدم المدقق j \(\in\)SV r,2 قيمة الإدخال v ′ ي إلى البروتوكول البيزنطي، كتلة بج ذلك لقد استلم بالفعل من \(\ell\)j (المستخدم j يعتقد أنه القائد)، ولكن القائد، ولكن hash من تلك الكتلة، أي v' ي = ح (ثنائية). وهكذا، عند إنهاء بروتوكول مكتبة الإسكندرية، تم التحقق من الخطوة الأخيرة لا تحسب الكتلة الدائرية المرغوبة Br، ولكن احسب (المصادقة و نشر) H (Br). وفقًا لذلك، نظرًا لأن H(Br) تم توقيعه رقميًا بواسطة عدد كافٍ من المدققين في الخطوة الأخيرة من بروتوكول BA، سيدرك المستخدمون في النظام أن H(Br) هو hash للجديد كتلة. ومع ذلك، يجب عليهم أيضًا استرداد (أو الانتظار، نظرًا لأن التنفيذ غير متزامن تمامًا) block Br نفسه، والذي يضمن البروتوكول أنه متاح بالفعل، بغض النظر عن الخصم قد تفعل. عدم التزامن والتوقيت Algorand ′ 1 و Algorand ′ 2 لديهم درجة كبيرة من عدم التزامن. وذلك لأن الخصم لديه حرية كبيرة في جدولة تسليم الرسائل الجارية نشر. بالإضافة إلى ذلك، سواء تم تحديد العدد الإجمالي للخطوات في الجولة أم لا، فهناك حد أقصى ويساهم التباين بعدد الخطوات المتخذة بالفعل. بمجرد أن يتعلم شهادات B0، . . . ، Br−1، مستخدم يحسب Qr−1 ويبدأ العمل في الجولة r، للتحقق مما إذا كان قائدًا محتملاً، أو مدققًا في بعض خطوات الجولة r. بافتراض أنني يجب أن أتصرف في الخطوات، في ضوء عدم التزامن الذي تمت مناقشته، فإنني أعتمد على العديد من الخطوات استراتيجيات للتأكد من أن لديه معلومات كافية قبل أن يتصرف. على سبيل المثال، قد ينتظر حتى يتلقى على الأقل عددًا معينًا من الرسائل من جهات التحقق الخطوة السابقة أو الانتظار لوقت كافي للتأكد من وصوله للرسائل بشكل كافي العديد من التحقق من الخطوة السابقة. البذرة Qr ومعلمة الرجوع للخلف k تذكر أنه من الناحية المثالية، يجب أن تكون الكميات Qr عشوائية ومستقلة، على الرغم من أنه يكفي أن تكون غير قابلة للتلاعب بها بشكل كافٍ الخصم. للوهلة الأولى، يمكننا اختيار Qr−1 ليتزامن مع H دفع ص−1 ، وبالتالي تجنب ذلك حدد Qr−1 بشكل صريح في Br−1. ومع ذلك، يكشف التحليل الأولي أن المستخدمين الضارين قد يقومون بذلك الاستفادة من آلية الاختيار هذه.11 بعض الجهود الإضافية تظهر أن عددًا لا يحصى من الآخرين 11نحن في بداية الجولة r −1. وبالتالي، فإن Qr−2 = PAY r−2 معروف علنًا، والخصم معروف بشكل خاص يعرف من هم القادة المحتملين الذين يسيطر عليهم. افترض أن الخصم يتحكم في 10% من المستخدمين، و أنه، مع وجود احتمال كبير جدًا، يكون المستخدم الضار w هو القائد المحتمل للجولة r −1. يعني افترض ذلك ح سيجو ص −2، 1، Qr−2 إنه صغير جدًا لدرجة أنه من غير المحتمل جدًا أن يكون القائد المحتمل الصادق هو في الواقع زعيم الجولة ص −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 بشكل عشوائي ومستقل. ثم، وسوف يكون ذلك ريال قطري؟ عندما يكون \(\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). دعونا أولاً نقول أنه على الرغم من أن الاختيار الثاني اعتباطي إلى حد ما، الاختيار الثاني إلزامي تمامًا. والسبب في ذلك هو أن الخبيث يمكن أن يسبب دائمًا كتل مرشحة مختلفة تمامًا ليتم استلامها من قبل المدققين الصادقين في الخطوة الثانية.12 مرة واحدة في هذه الحالة، من السهل التأكد من أن الكتلة تم الاتفاق عليها في النهاية عبر بروتوكول مكتبة الإسكندرية ستكون الجولة r هي الافتراضية، وبالتالي لن تحتوي على التوقيع الرقمي لأي شخص بـ Qr−1. لكن يجب أن يستمر النظام، ولهذا يحتاج إلى قائد للجولة r. إذا كان هذا الزعيم تلقائيا ويختار علانية، فإن العدو سوف يفسده تافهة. إذا تم تحديده من قبل السابق Qr−1 عبر نفس العملية، من \(\ell\)r سوف يكون القائد مرة أخرى في الجولة r+1. ونحن نقترح على وجه التحديد ل استخدام نفس آلية فرز التشفير السرية، ولكن يتم تطبيقها على كمية Q جديدة: وهي: ح (Qr−1، ص). من خلال جعل هذه الكمية هي مخرجات H يضمن أن المخرجات عشوائية، ومن خلال تضمين r كمدخل ثانٍ لـ H، في حين أن جميع الاستخدامات الأخرى لـ H تحتوي على واحد أو أكثر من 3 مدخلات، "تضمن" أن يتم اختيار Qr بشكل مستقل. مرة أخرى، اختيارنا المحدد للبديل Qr لا يهم، ما يهم هو أن \(\ell\)r لديه خياران لـ Qr، وبالتالي يمكنه مضاعفة فرصه أن يكون هناك مستخدم ضار آخر كزعيم التالي. قد تكون خيارات Qr أكثر عددًا بالنسبة للخصم الذي يتحكم في \(\ell\)r الخبيث. على سبيل المثال، لنفترض أن x وy وz هم ثلاثة قادة محتملين ضارين للجولة r بحيث تكون ح ص،1 س <ح ص،1 ذ <ح ص،1 ض و ح ص،1 ض صغيرة بشكل خاص. وهذا صغير جدًا لدرجة أن هناك فرصة جيدة لأن يكون H ص،1 ض هو أصغر من __PH_0004__ed مؤهلات كل قائد محتمل صادق. ثم، من خلال مطالبة x بإخفاء صورته الاعتماد، لدى الخصم فرصة جيدة لأن يصبح y قائد الجولة r −1. هذا يعني أن لديه خيارًا آخر لـ Qr: وهو SIGy ريال قطري−1 . وبالمثل، يجوز للخصم اطلب من كل من x وy حجب بيانات اعتمادهما، حتى يصبح z قائد الجولة r −1 والحصول على خيار آخر لـ Qr: وهو SIGz ريال قطري−1 . ومع ذلك، بالطبع، كل من هذه الخيارات وغيرها لديها فرصة غير معدومة للفشل، لأن لا يستطيع الخصم التنبؤ بـ hash من التوقيعات الرقمية للمستخدمين المحتملين الصادقين. ر−1 أنا = (r −1, PAY ′, H(Br−2). وإلا، لديه مستخدمين ضارين آخرين x وy لمواصلة إنشاء دفعة جديدة \(\wp\) ′، من واحد إلى آخر، حتى بالنسبة لبعض المستخدمين الضارين z (أو حتى لبعض المستخدمين الثابتين z) H (SIGz (PAY ′ \(\cup\){\(\wp\)})) هو صغيرة بشكل خاص أيضًا. ستتوقف هذه التجربة بسرعة كبيرة. وعندما يفعل ذلك يطلب الخصم أن يقترح الكتلة المرشحة Br−1 أنا = (ص −1، الدفع ′ \(\cup\){\(\wp\)}، H(Br−2). 12 على سبيل المثال، لتبسيط الأمر (ولكنه متطرف)، "عندما يكون وقت الخطوة الثانية على وشك الانتهاء"، يمكن لـ \(\ell\)r أرسل بريدًا إلكترونيًا مباشرًا إلى كتلة مرشح مختلفة Bi إلى كل مستخدم. وبهذه الطريقة، أيًا كان القائمون على التحقق من الخطوة الثانية، فهم سوف تتلقى كتل مختلفة تماما.يُظهر التحليل الدقيق الشبيه بسلسلة ماركوف أنه بغض النظر عن الخيارات التي يختارها الخصم للقيام بالجولة r −1، طالما أنه لا يستطيع إدخال مستخدمين جدد في النظام، فلا يمكنه تقليل احتمالية أن يكون المستخدم الصادق هو قائد الجولة r + 40 أقل بكثير من h. هذا هو السبب الذي نطالبه بأن يكون القادة المحتملون للجولة r هم المستخدمين الموجودين بالفعل في الجولة r −k. إنها طريقة للتأكد من أنه عند الجولة r −k، لا يمكن للخصم أن يغير احتمالية ذلك كثيرًا المستخدم الصادق يصبح قائد الجولة r. في الواقع، بغض النظر عن المستخدمين الذين قد يضيفهم إلى النظام في الجولات من r −k إلى r، فإنهم غير مؤهلين ليصبحوا قادة محتملين (ومن باب أولى زعيم) من الجولة ص. وبالتالي فإن معلمة الرجوع إلى الخلف k هي في النهاية معلمة أمان. (على الرغم من، كما سنرى في القسم 7، يمكن أيضًا أن يكون نوعًا من "معلمة الراحة" أيضًا.) مفاتيح سريعة الزوال على الرغم من أن تنفيذ بروتوكولنا لا يمكن أن يولد شوكة إلا باستخدام مع احتمال ضئيل، يمكن للخصم إنشاء شوكة، عند الكتلة r، بعد المشروع تم إنشاء الكتلة r. تقريبًا، بمجرد إنشاء Br، يعرف الخصم من هو المتحقق من كل خطوة من الجولة ص هي. وبالتالي، يمكنه بالتالي إفسادهم جميعًا وإجبارهم على التصديق على كتلة جديدة و ر. نظرًا لأن هذا الحظر المزيف قد يتم نشره فقط بعد الحظر الشرعي، فقد تم نشره من قبل المستخدمين الاهتمام لن ينخدع.[13] ومع ذلك، ص سيكون Br صحيحًا من الناحية النحوية ونحن تريد منع من تصنيعها. ونحن نفعل ذلك عن طريق قاعدة جديدة. بشكل أساسي، قام أعضاء المدقق بتعيين SV r,s للخطوة s من الجولة r استخدم المفاتيح العامة المؤقتة pkr،s أنا لتوقيع رسائلهم رقميا. هذه المفاتيح مخصصة للاستخدام الفردي فقط والمفاتيح السرية المقابلة لها skr,s أنا يتم تدميرها بمجرد استخدامها. بهذه الطريقة، إذا كان المدقق هو بعد تلفه لاحقًا، لا يستطيع الخصم إجباره على التوقيع على أي شيء آخر لم يوقع عليه في الأصل. وبطبيعة الحال، يجب علينا التأكد من أنه من المستحيل على الخصم أن يحسب مفتاحًا جديدًا العلاقات العامة، ق أنا وإقناع مستخدم صادق بأنه هو المفتاح المؤقت الصحيح لأداة التحقق i \(\in\)SV r,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: زعيم الجولة ص. \(\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: على التوالي، مجموعة أدوات التحقق الخبيثة ومجموعة أدوات التحقق الصادقة في SV ص، ق. MSV r,s \(\cup\)HSV r,s = SV r,s و MSV r,s ∩HSV r,s = \(\emptyset\). • n1 \(\in\)Z+ و n \(\in\)Z+: على التوالي، الأعداد المتوقعة للقادة المحتملين في كل SV r,1, والأعداد المتوقعة للمحققين في كل SV r,s، لـ s > 1. لاحظ أن n1 << n، لأننا نحتاج على الأقل إلى عضو صادق وصادق واحد في SV r,1، ولكن على الأقل أغلبية الأعضاء الشرفاء في كل SV r,s لـ s > 1. • h \(\in\)(0, 1): ثابت أكبر من 2/3. h هي نسبة الصدق في النظام. وهذا هو، جزء من المستخدمين الصادقين أو الأموال الصادقة، اعتمادًا على الافتراض المستخدم، في كل PKr على الأقل ح. • H: دالة مشفرة hash، تم تصميمها كدالة عشوائية oracle. • \(\bot\): سلسلة خاصة بنفس طول مخرج H. • F \(\in\)(0, 1): المعلمة التي تحدد احتمالية الخطأ المسموح بها. الاحتمال \(\geq\)F هو تعتبر "ضئيلة"، ويعتبر الاحتمال \(\geq\)1 −F "ساحقًا". • ph \(\in\)(0, 1): احتمال أن يكون زعيم الجولة r، \(\ell\)r، صادقًا. من الناحية المثالية الرقم الهيدروجيني = ح. مع بوجود الخصم سيتم تحديد قيمة ph في التحليل. • k \(\in\)Z+ : معامل الرجوع إلى الوراء. وهذا يعني أن الجولة r −k هي المكان الذي توجد فيه أدوات التحقق من الجولة r تم اختياره من - أي SV r \(\subseteq\)PKr−k.15 • p1 \(\in\)(0, 1): بالنسبة للخطوة الأولى من الجولة r، يتم اختيار مستخدم في الجولة r −k ليكون في SV r,1 مع الاحتمال ص1 \(\triangleq\) ن1 |P كر−ك|. • p \(\in\)(0, 1): لكل خطوة s > 1 من الجولة r، يتم اختيار مستخدم في الجولة r −k ليكون في SV r,s مع الاحتمال ص \(\triangleq\) ن |P كر−ك|. • CERT r: شهادة Br. إنها مجموعة من التوقيعات لـ H(Br) من المدققين المناسبين في جولة ص. • Br \(\triangleq\)(Br, CERT r) عبارة عن كتلة مثبتة. أعرف المستخدم Br إذا كان يمتلك (ويتحقق بنجاح) كلا الجزأين من الكتلة المثبتة. لاحظ أن اختبار CERT الذي يراه مستخدمون مختلفون قد يكون مختلفًا. • τ ص i : الوقت (المحلي) الذي أعرف فيه المستخدم Br. في البروتوكول Algorand لكل مستخدم خاصته الساعة الخاصة. لا يلزم مزامنة ساعات المستخدمين المختلفة، ولكن يجب أن تكون لها نفس السرعة. فقط لغرض التحليل، نأخذ في الاعتبار ساعة مرجعية ونقيس أداء اللاعبين. الأوقات ذات الصلة فيما يتعلق به. • \(\alpha\)r,s أنا و \(\beta\)r,s i : على التوالي الوقت (المحلي) الذي يبدأ فيه المستخدم i وينتهي تنفيذه للخطوة s جولة ص. • Λ و : بشكل أساسي، الحدود العليا للوقت اللازم لتنفيذ الخطوة 1 و الوقت اللازم لأي خطوة أخرى في بروتوكول Algorand. تحدد المعلمة Λ الحدود العليا لوقت نشر كتلة واحدة بحجم 1 ميجابايت. (في تدويننا، Λ = \(\rho\),1 ميجابايت. مع التذكير بتدويننا، قمنا بتعيين \(\rho\) = 1 للبساطة، وأن الكتل كذلك تم اختياره ليكون بطول 1 ميجابايت على الأكثر، لدينا Λ = Λ1,1,1 ميجابايت.) 15بالمعنى الدقيق للكلمة، "r −k" يجب أن يكون "max{0, r −k}".تحدد المعلمة lect الحد العلوي من وقت نشر رسالة صغيرة واحدة لكل مدقق في الخطوة s > 1. (باستخدام، كما في Bitcoin، توقيعات المنحنى الناقص مع مفاتيح 32B، يبلغ طول رسالة التحقق 200B. وهكذا، في تدويننا، \(\alpha\) = lectn,\(\rho\),200B.) نحن نفترض أن Λ = O(π). مفاهيم • اختيار المدقق. لكل جولة r والخطوة s > 1، SV r,s \(\triangleq\){i \(\in\)PKr−k : .H(SIGi(r, s, Qr−1)) \(\geq\)p}. كل يقوم المستخدم i \(\in\)PKr−k بحساب توقيعه بشكل خاص باستخدام مفتاحه طويل المدى ويقرر ما إذا كان أنا \(\in\)SV r,s أم لا. إذا كنت \(\in\)SV r,s، فإن SIGi(r, s, Qr−1) هو i's (r, s) - بيانات الاعتماد، يُشار إليها بشكل مضغوط بواسطة \(\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 ط ) \(\geq\)H(\(\sigma\)r,1 ي) لجميع الإمكانات القادة j \(\in\)SV r,1. عندما تتم مقارنة hashes لأوراق اعتماد لاعبين، في أمر غير محتمل في حالة وجود روابط، يقوم البروتوكول دائمًا بقطع الروابط معجميًا وفقًا لـ (عام طويل الأمد مفاتيح) القادة المحتملين. بحكم التعريف، فإن قيمة hash لبيانات اعتماد اللاعب هي أيضًا الأصغر بين جميع المستخدمين في PKr−ك. لاحظ أن القائد المحتمل لا يمكنه أن يقرر بشكل خاص ما إذا كان هو القائد أم لا، دون رؤية أوراق اعتماد القادة المحتملين الآخرين. نظرًا لأن قيم hash موحدة بشكل عشوائي، عندما تكون SV r,1 غير فارغة، فإن \(\ell\)r موجود دائمًا ويكون صادق مع احتمال على الأقل ح. المعلمة n1 كبيرة بما يكفي للتأكد من أن كل منها SV r,1 غير فارغ مع احتمالية ساحقة. • هيكل الكتلة. الكتلة غير الفارغة هي من الشكل Br = (r، PAY r، SIG\(\ell\)r(Qr−1)، H(Br−1))، وكتلة فارغة هو من النموذج Br ɫ = (ص، \(\emptyset\)، Qr−1، H(Br−1)). لاحظ أن الكتلة غير الفارغة قد لا تزال تحتوي على مجموعة دفع فارغة PAY r، في حالة عدم حدوث أي دفعة هذه الجولة أو إذا كان القائد خبيثًا. ومع ذلك، فإن الكتلة غير الفارغة تعني أن هوية \(\ell\)r، أوراق اعتماده \(\sigma\)r،1 تم الكشف عن \(\ell\)r وSIG\(\ell\)r(Qr−1) في الوقت المناسب. يضمن البروتوكول أنه إذا كان القائد صادقًا، فستكون الكتلة غير فارغة مع احتمالية ساحقة. • البذور ريال قطري. إذا كان 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، وينجحون في ذلك
وجود زعيم خبيث أو أغلبية خبيثة في SV r,s لبعض الخطوات التي يرغب فيها له. — بالنسبة للخطوة 1 من كل جولة r، يتم اختيار n1 بحيث يكون SV r,1 ̸= \(\emptyset\) باحتمال كبير. • أمثلة على اختيارات المعلمات الهامة. — يبلغ طول مخرجات H 256 بت. — ح = 80%، ن1 = 35. — Λ = 1 دقيقة و lect = 10 ثواني. • تهيئة البروتوكول. يبدأ البروتوكول في الوقت 0 مع r = 0. وبما أنه لا يوجد "B−1" أو "CERT −1"، من الناحية النحوية، B−1 هي معلمة عامة مع مكونها الثالث الذي يحدد Q−1، وجميع المستخدمين تعرف على B−1 في الوقت 0.
Algorand '
1 이 섹션에서는 다음 가정 하에 작동하는 Algorand ' 버전을 구성합니다. 정직한 다수의 사용자 가정: 각 PKr의 사용자 중 2/3 이상이 정직합니다. 섹션 8에서는 위의 가정을 원하는 정직한 다수로 대체하는 방법을 보여줍니다. 돈 가정. 5.1 추가 표기법 및 매개변수 표기법 • m \(\in\)Z+: 바이너리 BA 프로토콜의 최대 단계 수, 3의 배수. • Lr \(\leq\)m/3: 1을 확인하는 데 필요한 베르누이 시행 횟수를 나타내는 무작위 변수, 각 시행이 확률 ph로 1일 때 2이며 최대 m/3 시도가 있습니다. 모든 시도가 실패하면 Lr \(\triangleq\)m/3. Lr은 블록 Br을 생성하는 데 필요한 시간의 상한을 설정하는 데 사용됩니다. • tH = 2n 3 + 1: 프로토콜 종료 조건에 필요한 서명 수입니다. • CERT r: Br에 대한 인증서입니다. 이는 적절한 검증자로부터 나온 H(Br)의 tH 서명 세트입니다. 라운드 r. 매개변수 • 다양한 매개변수 간의 관계. — 라운드 r의 각 단계 s > 1에 대해 압도적인 확률로 n이 선택됩니다. |HSV r,s| > 2|MSV r,s| 그리고 |HSV r,s| + 4|MSV r,s| <2n. h 값이 1에 가까울수록 n은 더 작아야 합니다. 특히, 우리는 (변종 of) 원하는 조건이 압도적인 확률로 유지되도록 Chernoffbounds. — 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에 디지털 서명을 하기를 바랍니다. 나 단계의 임시 공개 키 pkr,s에 상대적인 라운드 r의 s i , 임시 비밀 키 skr을 사용하여 나 그 그는 사용 후 즉시 파괴합니다. 따라서 우리는 모든 사용자가 다음을 수행할 수 있도록 하는 효율적인 방법이 필요합니다. pkr,s를 확인하세요. 나 은 실제로 mr,s의 i 서명을 확인하는 데 사용되는 열쇠입니다. 나. 우리는 (최선을 다해) 그렇게 합니다. 우리가 아는 한) 신원 기반 서명 체계의 새로운 사용. 높은 수준에서 이러한 체계에서 중앙 기관 A는 공개 마스터 키 PMK를 생성합니다. 그리고 해당 비밀 마스터 키인 SMK. 플레이어 U의 신원 U가 주어지면 A는 다음을 계산합니다. 공개 키 U와 관련된 비밀 서명 키 skU인 SMK를 통해 개인적으로 skU를 다음 사용자에게 제공합니다. U. (실제로 신원 기반 디지털 서명 체계에서 사용자 U의 공개 키는 U 자체입니다!) 이런 식으로 A가 활성화하려는 사용자의 비밀 키를 계산한 후 SMK를 파괴하면 디지털 서명을 생성하고 계산된 비밀 키를 보관하지 않는 경우 U는 유일한 사람입니다. 공개 키 U를 기준으로 메시지에 디지털 방식으로 서명할 수 있습니다. 따라서 "U의 이름"을 아는 사람은 누구나 자동으로 U의 공개 키를 알고 있으므로 U의 서명을 확인할 수 있습니다(아마도 공개 마스터 키 PMK). 우리의 응용 프로그램에서 권한 A는 사용자 i이고 가능한 모든 사용자 집합 U는 다음과 일치합니다. 예를 들어 S = {i}\(\times\){r′,… . . , r′ +106}\(\times\){1, . . . , m+3}, 여기서 r′은 주어진 것입니다. 라운드, m + 3은 라운드 내에서 발생할 수 있는 단계 수의 상한입니다. 이 방법, pkr, s 나 \(\triangleq\)(i, r, s), 모든 사람이 i의 서명 SIGr,s를 볼 수 있도록 pkr,s 나 (미스터, s 나) 할 수 있어, 압도적으로 확률, r'에 이어 처음 백만 라운드 r에 대해 즉시 검증합니다. 즉, i는 먼저 PMK와 SMK를 생성합니다. 그리고 그는 PMK가 나의 주인임을 공개한다 모든 라운드 r \(\in\)[r′, r′ + 106]에 대한 공개 키이며 SMK를 사용하여 비밀을 개인적으로 생성하고 저장합니다. 키 skr,s 나 각 트리플(i, r, s) \(\in\)S에 대해. 이 작업이 완료되면 그는 SMK를 파괴합니다. 만약 그가 그렇지 않다고 판단한다면 SV r,s의 일부라면 skr,s를 떠나도 됩니다. 나 혼자 (프로토콜에서는 그가 인증을 요구하지 않기 때문에 라운드 r의 단계 s에 있는 모든 메시지) 그렇지 않으면 먼저 skr,s를 사용합니다. 나 그의 메시지에 디지털 서명을 하려고 나 , 그리고 그런 다음 skr,s를 파괴합니다. 나. 그가 처음 시스템에 들어갈 때 그의 첫 번째 공개 마스터 키를 공개할 수 있다는 점에 유의하세요. 즉, i를 시스템으로 가져오는 동일한 지불(라운드 r' 또는 r'에 가까운 라운드)은 또한 i의 요청에 따라 모든 라운드 r \(\in\)[r′, r′ + 106]에 대한 i의 공개 마스터 키가 PMK임을 지정합니다. 예를 들어 다음과 같습니다. (PMK, [r', r' + 106]) 형식의 쌍을 포함합니다. 또한 m + 3은 라운드의 최대 단계 수이므로 라운드가 다음과 같이 가정됩니다. 1분이면 생성된 임시 키는 거의 2년 동안 보관됩니다. 동시에 시간이 지나면 이 임시 비밀 키를 생성하는 데 너무 오래 걸리지 않을 것입니다. 타원 곡선 기반 사용 32B 키가 있는 시스템에서는 각 비밀 키가 몇 마이크로초 안에 계산됩니다. 따라서 m + 3 = 180이면, 그러면 1억 8천만 개의 비밀 키를 모두 1시간 이내에 계산할 수 있습니다. 현재 라운드가 r' + 106에 가까워지면 다음 백만 라운드를 처리하기 위해 i 새로운 (PMK', SMK') 쌍을 생성하고 다음 임시 키 보관이 무엇인지 알려줍니다. —예를 들어 — SIGi(PMK′, [r′ + 106 + 1, r′ + 2 \(\cdot\) 106 + 1])를 사용하면 새 블록을 입력하거나 별도의 "거래" 또는 결제의 일부인 추가 정보로 표시됩니다. 그렇게 함으로써, 다음에는 PMK'를 사용하여 나의 임시 서명을 확인해야 한다고 모든 사람에게 알립니다. 백만 라운드. 등. (이 기본 접근 방식에 따라 임시 키를 구현하지 않고 임시 키를 구현하는 다른 방법도 있습니다. 신원 기반 서명을 사용하는 것은 확실히 가능합니다. 예를 들어 Merkle trees를 통해.16) 16이 방법에서는 공개-비밀 키 쌍(pkr,s)을 생성합니다. 나, skr, s 나 )의 각 라운드 단계 쌍(r, s)에 대해임시 키를 구현하는 다른 방법(예: Merkle trees)도 가능합니다. 5.3 Algorand '의 단계 일치 BA⋆의 것과 1 우리가 말했듯이 Algorand ′의 라운드 1에는 최대 m + 3개의 단계가 있습니다. 1단계. 이 단계에서 각 잠재적 리더 i는 자신의 후보 블록 Br을 계산하고 전파합니다. 나 , 자신의 자격증명 \(\sigma\)r,1과 함께 나. 이 자격 증명은 i를 명시적으로 식별한다는 점을 기억하세요. 이는 \(\sigma\)r,1이기 때문에 그렇습니다. 나 \(\triangleq\)SIGi(r, 1, Qr−1). 잠재적 검증자 i는 또한 메시지의 일부로 H(Br)라는 적절한 디지털 서명을 전파합니다. 나). 지불이나 자격 증명을 다루지 않는 i의 이 서명은 그의 임시 공개와 관련이 있습니다. 키 pkr,1 i : 즉, 그는 sigpkr을 전파합니다.1 나는 (H(Br 나)). Br을 전파하는 대신 우리의 규칙을 고려하여 나 및 sigpkr,1 나는 (H(Br i)), 그는 그럴 수도 있었어 전파된 SIGpkr,1 나는 (H(Br 나)). 그러나 우리의 분석에서는 다음에 대한 명시적인 접근 권한이 필요합니다. sigpkr,1 나는 (H(Br 나)). Steps 2. 이 단계에서 각 검증자 i는 \(\ell\)r을 설정합니다. 나는 hashed 자격을 갖춘 잠재적인 리더가 되고 싶습니다 는 가장 작고, Br 나는 \(\ell\)r이 제안한 블록이 될 것입니다 나. 효율성을 위해 우리는 Br에 직접적으로 동의하기보다는 H(Br)에 동의하고 싶다는 메시지를 전파합니다. BA⋆의 첫 번째 단계에서 초기 값 v'로 전파됨 나는 = H(Br 나). 즉, 그는 v'를 전파한다 나, 물론 일시적으로 서명한 후에요. (즉, 오른쪽 임시 항목을 기준으로 서명한 후 공개 키(이 경우 pkr,2) i .) 물론 나도 자신의 자격 증명을 전송합니다. BA⋆의 첫 번째 단계는 등급 합의 프로토콜 GC의 첫 번째 단계로 구성되므로, Step Algorand '의 2는 GC의 첫 번째 단계에 해당합니다. 단계 3. 이 단계에서 각 검증자 i \(\in\)SV r,2는 BA⋆의 두 번째 단계를 실행합니다. 즉, 그는 다음을 보낸다. 그가 GC의 두 번째 단계에서 보냈을 것과 동일한 메시지입니다. 다시 말하지만, 내 메시지는 임시적입니다. 서명하고 본인의 증명서를 첨부합니다. (이제부터 검증인이라는 말은 생략하겠습니다. 그의 메시지에 일시적으로 서명하고 그의 자격 증명도 전파합니다.) 4단계. 이 단계에서 모든 검증자 i \(\in\)SV r,4는 GC의 출력(vi, gi)을 계산하고 일시적으로 BA⋆의 세 번째 단계, 즉 BBA⋆의 첫 번째 단계, gi = 2이면 초기 비트가 0이고 그렇지 않으면 1입니다. 단계 s = 5, . . . , m + 2. 이러한 단계에 도달한 경우 BA⋆의 단계 s-1에 해당하므로 다음과 같습니다. BBA⋆의 s-3단계. 우리의 전파 모델은 충분히 비동기적이므로 가능성을 고려해야 합니다. 그러한 단계 s의 중간에 검증자 i \(\in\)SV r,s는 그를 증명하는 정보에 의해 도달됩니다. 해당 블록 Br은 이미 선택되었습니다. 이 경우, i는 자신의 라운드 r 실행을 중지합니다. Algorand ', 라운드(r + 1) 명령어 실행을 시작합니다. {r′, . . . , r' + 106} \(\times\) {1, . . . , m + 3}. 그런 다음 그는 이러한 공개 키를 정식 방식으로 주문하고 j번째 공개 키를 저장합니다. Merkle tree의 j번째 리프에 키를 입력하고 그가 공개한 루트 값 Ri를 계산합니다. 그가 서명하고 싶을 때 키 pkr,s와 관련된 메시지 나 , 저는 실제 서명뿐만 아니라 pkr,s에 대한 인증 경로도 제공합니다. 나 리에 비해 이 인증 경로는 pkr,s도 증명합니다. 나 j번째 리프에 저장된다. 나머지 세부사항을 쉽게 채울 수 있습니다.따라서 검증자의 명령 i \(\in\)SV r,s에 해당하는 명령 외에 BBA⋆의 s-3단계에는 BBA⋆의 실행이 이전에 중단되었는지 확인하는 것이 포함됩니다. 단계 S′. BBA⋆ 정지는 Coin-Fixed-to-0 단계 또는 Coin-Fixed-1 단계에서만 정지할 수 있으므로, 지침은 다음을 구별합니다. A (종료 조건 0): s′ −2 ‚0 mod 3, 또는 B (엔딩 조건 1): s′ −2 ‚1 mod 3. 실제로 A의 경우 블록 Br은 비어 있지 않으므로 추가 명령이 필요합니다. 적절한 인증서 CERT r과 함께 Br을 제대로 재구성하는지 확인하세요. B의 경우, 블록 Br은 비어 있으므로 i는 Br = Br로 설정하라는 지시를 받습니다. \(\varepsilon\) = (r, \(\emptyset\), H(Qr−1, r), H(Br−1)), CERT r을 계산합니다. 단계 s를 실행하는 동안 블록 Br이 이미 가지고 있다는 증거를 볼 수 없다면 생성된 다음 BBA⋆의 s-3 단계에서 보낸 것과 동일한 메시지를 보냅니다. 단계 m + 3. 단계 m + 3 동안 i \(\in\)SV r,m+3에서 블록 Br이 이미 생성된 것으로 확인되면 이전 단계 s'를 수행한 다음 위에서 설명한 대로 진행합니다. 그렇지 않으면 BBA⋆의 m단계에서 보냈을 것과 동일한 메시지를 보내는 대신, 나는 자신이 보유한 정보를 기반으로 Br과 그에 상응하는 값을 계산하도록 지시했습니다. CERT r을 인증합니다. 실제로 라운드의 총 단계 수에 대해 m + 3만큼 상한이 적용된다는 점을 기억하세요. 5.4 실제 프로토콜 라운드 r의 각 단계 s에서 검증자 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가 다음과 같을 때 확실히, sigpkr,s 대신 esigi(x)를 씁니다. i (x)는 i의 값에 대한 적절한 임시 서명을 나타냅니다. 라운드 r의 단계 s에서 x를 입력하고 SIGpkr,s 대신 ESIGi(x)를 작성합니다. i(x)는 (i, x, esigi(x))를 나타냅니다. 1단계: 블록 제안 모든 사용자 i \(\in\)PKr−k에 대한 지침: 사용자 i는 다음과 같이 라운드 r의 1단계를 시작합니다. Br-1을 알고 있습니다. • 사용자 i는 Br−1의 세 번째 구성 요소에서 Qr−1을 계산하고 i \(\in\)SV r,1 또는 아닙니다. • i /\(\in\)SV r,1이면 i는 1단계 실행을 즉시 중지합니다. • i \(\in\)SV r,1, 즉 i가 잠재적 리더라면 그는 라운드 R 지불액을 수집합니다. 지금까지 그에게 전파되어 최대 지불 세트 PAY r을 계산합니다. 나는 그들에게서. 다음으로 그는 그의 "후보 블록"Br을 계산합니다. 나는 = (r, 지불 r i , SIGi(Qr−1), H(Br−1)). 마침내 그는 계산한다. 메시지 씨,1 나 = (Br i , Esigi(H(Br i )), \(\sigma\)r,1 i), 그의 임시 비밀 키 skr을 파괴합니다.1 나 , 그리고 나서 Mr,1을 전파합니다. 나.주목. 실제로 1단계의 전역 실행을 단축하려면 (r, 1)- 메시지는 선택적으로 전파됩니다. 즉, 시스템의 모든 사용자 i에 대해 첫 번째 (r, 1)에 대해 그가 받은 메시지를 성공적으로 확인하면17 플레이어 i는 평소대로 이를 전파합니다. 모든 기타 (r, 1) - 플레이어 i가 수신하고 성공적으로 확인한 메시지는 hash인 경우에만 전파합니다. 포함된 자격 증명의 값은 포함된 자격 증명의 hash 값 중에서 가장 작습니다. 모든 (r, 1) 메시지에서 그는 지금까지 수신하고 성공적으로 검증했습니다. 게다가 제안한 대로 Georgios Vlachos에 따르면 각 잠재적 리더 i도 자신의 자격 증명 \(\sigma\)r,1을 전파하는 것이 유용합니다. 나 별도로: 이러한 작은 메시지는 블록보다 빠르게 이동하여 mr,1의 적시 전파를 보장합니다. j's 포함된 자격 증명은 작은 hash 값을 갖고, 큰 hash 값을 갖는 자격 증명을 만듭니다. 빨리 사라져라. 2단계: 단계적 합의 프로토콜 GC의 첫 번째 단계 모든 사용자 i \(\in\)PKr−k를 위한 지침: 사용자 i는 다음과 같이 라운드 r의 2단계를 시작합니다. Br-1을 알고 있습니다. • 사용자 i는 Br−1의 세 번째 구성 요소에서 Qr−1을 계산하고 i \(\in\)SV r,2 또는 아닙니다. • i /\(\in\)SV r,2이면 i는 2단계 실행을 즉시 중지합니다. • i \(\in\)SV r,2이면 t2 \(\triangleq\) \(\lambda\) + Λ 시간을 기다린 후 i는 다음과 같이 작동합니다. 1. 그는 H(\(\sigma\)r,1)를 만족하는 사용자 \(\ell\)를 찾았습니다. \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j ) 모든 자격 증명에 대해 \(\sigma\)r,1 j 그 일부는 그가 지금까지 수신한 성공적으로 검증된 (r, 1) 메시지입니다. 2. 그가 \(\ell\)a로부터 유효한 메시지 mr,1을 받았다면 \(\ell\) = (Br \(\ell\), 대략\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),b 그런 다음 i가 설정합니다. v′ 나는 \(\triangleq\)H(Br \(\ell\)); 그렇지 않으면 나는 v'를 설정한다 나는 \(\triangleq\) \(\bot\). 3. 나는 mr,2라는 메시지를 계산합니다. 나 \(\triangleq\)(ESIGi(v′ 나), \(\sigma\)r,2 i ),c는 자신의 임시 비밀 키를 파기합니다. skr,2 i , 그런 다음 mr,2를 전파합니다. 나. a본질적으로 사용자 i는 라운드 r의 리더가 사용자 \(\ell\)임을 개인적으로 결정합니다. b다시 말하지만, 플레이어 \(\ell\)의 서명과 hashes는 모두 성공적으로 검증되었으며 PAY r \(\ell\)in Br \(\ell\)는 다음에 대한 유효한 지불 세트입니다. 라운드 r — PAY r인지 확인하지는 않지만 \(\ell\)는 \(\ell\)또는 \(\ell\)에 대해 최대값입니다. c메시지 Mr,2 나 플레이어 i가 v'를 고려한다는 신호 나는 다음 블록의 hash이 되거나 다음 블록을 고려합니다. 블록이 비어 있습니다. 17즉, 모든 서명이 정확하고 블록과 해당 hash이 모두 유효합니다. 비록 제가 확인하지는 않았지만 포함된 페이세트가 제안자에게 최대인지 여부.
3단계: GC의 두 번째 단계 모든 사용자 i \(\in\)PKr−k를 위한 지침: 사용자 i는 다음과 같이 라운드 r의 3단계를 시작합니다. Br-1을 알고 있습니다. • 사용자 i는 Br−1의 세 번째 구성 요소에서 Qr−1을 계산하고 i \(\in\)SV r,3 또는 아닙니다. • i /\(\in\)SV r,3이면 i는 3단계 실행을 즉시 중지합니다. • i \(\in\)SV r,3이면 t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ 시간만큼 기다린 후 i는 다음과 같이 작동합니다. 1. 모든 유효한 메시지 중에서 mr,2를 만족하는 v′ ̸= \(\bot\)값이 존재하는 경우 j 그가 받았고, 그 중 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는 다음과 같이 라운드 r의 4단계를 시작합니다. Br-1을 알고 있습니다. • 사용자 i는 Br−1의 세 번째 구성 요소에서 Qr−1을 계산하고 i \(\in\)SV r,4 또는 아닙니다. • i /\(\in\)SV r,4이면 i는 4단계 실행을 즉시 중지합니다. • i \(\in\)SV r,4이면 t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ 시간을 기다린 후 i는 다음과 같이 작동합니다. 1. 그는 GC의 출력인 vi와 gi를 다음과 같이 계산합니다. (a) 모든 유효한 메시지 중에서 mr,3을 만족하는 v′ ̸= \(\bot\)값이 존재한다면, j 그는 가지고 있다 수신된 결과 중 2/3 이상이 (ESIGj(v′), \(\sigma\)r,3 형식입니다. j ) 그런 다음 그는 설정합니다. vi \(\triangleq\)v′ 및 gi \(\triangleq\)2. (b) 그렇지 않은 경우, 모든 유효한 메시지 중에서 v′ ̸= \(\bot\) 값이 존재하는 경우 씨,3 j 그는 그 중 1/3 이상이 다음 형식을 받았습니다. (ESIGj(v′), \(\sigma\)r,3 j), 그런 다음 그는 vi \(\triangleq\)v′ 및 gi \(\triangleq\)1.a를 설정합니다. (c) 그렇지 않으면 그는 vi \(\triangleq\)H(Br τ ) 및 gi \(\triangleq\)0. 2. 그는 BBA⋆의 입력인 bi를 다음과 같이 계산합니다. gi = 2이면 bi \(\triangleq\)0이고, 그렇지 않으면 bi \(\triangleq\)1입니다. 3. 그는 mr,4라는 메시지를 계산합니다. 나 \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i), 그의 일시적인 것을 파괴한다 비밀키 skr,4 i , 그런 다음 mr,4를 전파합니다. 나. a경우 (b)의 v′가 존재한다면 고유해야 함을 증명할 수 있습니다.
단계 s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ‚0 mod 3: BBA⋆의 코인 고정-0 단계 모든 사용자 i \(\in\)PKr−k를 위한 지침: 사용자 i는 다음과 같이 라운드 r의 단계 s를 시작합니다. Br-1을 알고 있습니다. • 사용자 i는 Br−1의 세 번째 구성 요소에서 Qr−1을 계산하고 i \(\in\)SV r,s인지 확인합니다. • i /\(\in\)SV r,s이면 i는 자신의 Step 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 pho mod 3 — 즉, s′ 단계는 Coin-Fixed-To-0 단계입니다. (b) 나는 적어도 tH를 받았다 = 2n 3 + 1 유효한 메시지 mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ), 및 (c) 나는 유효한 메시지를 받았습니다. Mr,1 j = (Br j,esigj(H(Br j )), \(\sigma\)r,1 j ) v = H(Br) j ), 그런 다음 나는 자신의 Step s 실행(실제로는 r 라운드 실행)을 즉시 중지합니다. 무엇이든 전파하는 것; Br = Br로 설정 j ; 자신의 CERT r을 메시지 세트로 설정합니다. 씨,s′−1 j 하위 단계 (b).b – 종료 조건 1: 그러한 대기 중 어느 시점에라도 다음이 존재하는 경우 단계 s' 그렇게 (a') 6 \(\leq\)s' \(\leq\)s, s' −2 pho1 mod 3 — 즉, 단계 s'는 Coin-Fixed-To-1 단계이고, (b') 나는 적어도 tH개의 유효한 메시지 mr,s'-1을 수신했습니다. j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),c 그런 다음 나는 자신의 Step s 실행(실제로는 r 라운드 실행)을 즉시 중지합니다. 무엇이든 전파하는 것; Br = Br로 설정 ? ; 자신의 CERT r을 메시지 세트로 설정합니다. 씨,s′−1 j 하위 단계 (b'). – 그렇지 않으면 대기가 끝나면 사용자 i는 다음을 수행합니다. 그는 vi를 모든 유효한 구성 요소의 두 번째 구성 요소에서 vj의 과반수 투표로 설정합니다. 씨,s−1 j ’ 그는 받았습니다. 그는 다음과 같이 bi를 계산합니다. 유효한 모든 mr,s−1의 2/3 이상이면 j 그가 받은 형식은 다음과 같습니다. (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), 그런 다음 bi \(\triangleq\)0을 설정합니다. 그렇지 않고 유효한 모든 mr,s−1의 2/3 이상이면 j 그가 받은 형식은 다음과 같습니다. (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), 그런 다음 bi \(\triangleq\)1을 설정합니다. 그렇지 않으면 bi \(\triangleq\)0을 설정합니다. 그는 mr,s라는 메시지를 계산합니다. 나 \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i), 그의 일시적인 것을 파괴한다 비밀 키 skr,s i , 그런 다음 mr,s를 전파합니다. 나. a 플레이어 i가 1에 서명한 j로부터 메시지를 받은 경우에도 플레이어 j로부터의 메시지는 계산됩니다. 종료 조건 1과 유사합니다. 분석에서 볼 수 있듯이 이는 모든 정직한 사용자가 알 수 있도록 수행됩니다. Br은 서로 시간 \(\lambda\) 내에 있습니다. b사용자 i는 이제 Br과 자신의 라운드 r 완료를 알고 있습니다. 그는 여전히 일반 사용자로서 메시지 전파를 돕고 있지만 (r, s) 검증자로서 전파를 시작하지 않습니다. 특히 그는 자신의 모든 메시지를 전파하는 데 도움을 주었습니다. CERT r은 우리 프로토콜에 충분합니다. 또한 바이너리 BA 프로토콜에 대해 bi \(\triangleq\)0을 설정해야 하지만 bi 어쨌든 이 경우에는 필요하지 않습니다. 향후 모든 지침에 대해서도 유사합니다. c이 경우 vj가 무엇인지는 중요하지 않습니다.단계 s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ל1 mod 3: BBA⋆의 동전 고정 1 단계 모든 사용자 i \(\in\)PKr−k를 위한 지침: 사용자 i는 다음과 같이 라운드 r의 단계 s를 시작합니다. Br-1을 알고 있습니다. • 사용자 i는 Br−1의 세 번째 구성 요소에서 Qr−1을 계산하고 i \(\in\)SV r,s 또는 아닙니다. • i /\(\in\)SV r,s이면 i는 자신의 Step s 실행을 즉시 중지합니다. • i \(\in\)SV r,s이면 그는 다음을 수행합니다. – 그는 ts \(\triangleq\)(2s −3)\(\lambda\) + Λ 시간이 지날 때까지 기다립니다. – 종료 조건 0: Coin-Fixed-To-0 단계와 동일한 지침입니다. - 종료 조건 1 : Coin-Fixed-To-0 단계와 동일한 지침입니다. – 그렇지 않으면 대기가 끝나면 사용자 i는 다음을 수행합니다. 그는 vi를 모든 유효한 구성 요소의 두 번째 구성 요소에서 vj의 과반수 투표로 설정합니다. 씨,s−1 j ’ 그는 받았습니다. 그는 다음과 같이 bi를 계산합니다. 유효한 모든 mr,s−1의 2/3 이상이면 j 그가 받은 형식은 다음과 같습니다. (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), 그런 다음 bi \(\triangleq\)0을 설정합니다. 그렇지 않고 유효한 모든 mr,s−1의 2/3 이상이면 j 그가 받은 형식은 다음과 같습니다. (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), 그런 다음 bi \(\triangleq\)1을 설정합니다. 그렇지 않으면 bi \(\triangleq\)1을 설정합니다. 그는 mr,s라는 메시지를 계산합니다. 나 \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i), 그의 일시적인 것을 파괴한다 비밀 키 skr,s i , 그런 다음 mr,s를 전파합니다. 나.
단계 s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ל2 mod 3: BBA⋆의 동전 뒤집기 단계 모든 사용자 i \(\in\)PKr−k를 위한 지침: 사용자 i는 다음과 같이 라운드 r의 단계 s를 시작합니다. Br-1을 알고 있습니다. • 사용자 i는 Br−1의 세 번째 구성 요소에서 Qr−1을 계산하고 i \(\in\)SV r,s 또는 아닙니다. • i /\(\in\)SV r,s이면 i는 자신의 Step s 실행을 즉시 중지합니다. • i \(\in\)SV r,s이면 그는 다음을 수행합니다. – 그는 ts \(\triangleq\)(2s −3)\(\lambda\) + Λ 시간이 지날 때까지 기다립니다. – 종료 조건 0: Coin-Fixed-To-0 단계와 동일한 지침입니다. - 종료 조건 1 : Coin-Fixed-To-0 단계와 동일한 지침입니다. – 그렇지 않으면 대기가 끝나면 사용자 i는 다음을 수행합니다. 그는 vi를 모든 유효한 구성 요소의 두 번째 구성 요소에서 vj의 과반수 투표로 설정합니다. 씨,s−1 j ’ 그는 받았습니다. 그는 다음과 같이 bi를 계산합니다. 유효한 모든 mr,s−1의 2/3 이상이면 j 그가 받은 형식은 다음과 같습니다. (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), 그런 다음 bi \(\triangleq\)0을 설정합니다. 그렇지 않고 유효한 모든 mr,s−1의 2/3 이상이면 j 그가 받은 형식은 다음과 같습니다. (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), 그런 다음 bi \(\triangleq\)1을 설정합니다. 그렇지 않으면, SV r,s−1 나 그가 유효한 정보를 받은 (r, s -1)-검증자의 집합이 됩니다. 메시지 Mr,s−1 j . 그는 bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 나 H(\(\sigma\)r,s−1 j )). 그는 mr,s라는 메시지를 계산합니다. 나 \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i), 그의 일시적인 것을 파괴한다 비밀 키 skr,s i , 그런 다음 mr,s를 전파합니다. 나.
m + 3단계: BBA⋆a의 마지막 단계 모든 사용자 i \(\in\)PKr−k에 대한 지침: 사용자 i는 다음과 같이 자신의 라운드 r 단계 m + 3을 시작합니다. Br-1을 알고 있습니다. • 사용자 i는 Br−1의 세 번째 구성 요소에서 Qr−1을 계산하고 i \(\in\)SV r,m+3 또는 아닙니다. • i /\(\in\)SV r,m+3이면 i는 자신의 단계 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는 다음을 수행합니다. 그는 아웃i \(\triangleq\)1 및 Br \(\triangleq\)Br을 설정합니다. ? 그는 mr,m+3이라는 메시지를 계산합니다. 나 = (ESIGi(outi), ESIGi(H(Br)), \(\sigma\)r,m+3 나 ), 그의 것을 파괴한다 임시 비밀 키 skr,m+3 나 , 그런 다음 mr,m+3을 전파합니다. 나 Br.b를 인증하기 위해 a압도적인 확률로 BBA⋆이 단계 전에 종료되었으며 완전성을 위해 이 단계를 지정합니다. m + 3단계의 bA 인증서에는 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을 수신했습니다. j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ) 및 (c) 나는 유효한 메시지를 받았습니다. Mr,1 j = (Br j,esigj(H(Br j )), \(\sigma\)r,1 j ) v = H(Br) j ), 그러면 나는 그 자신의 라운드 r 실행을 즉시 중단합니다. Br = Br로 설정 j; 자신의 CERT r을 설정합니다. 메시지 집합 mr,s′−1 j 하위 단계 (b). – 그러한 대기 중 어느 시점에서든 다음과 같은 단계가 존재하는 경우 (a') 6 \(\leq\)s' \(\leq\)m + 3, s' −2 ‚1 mod 3, 그리고 (b') 나는 적어도 tH개의 유효한 메시지 mr,s'-1을 수신했습니다. j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ), 그러면 나는 그 자신의 라운드 r 실행을 즉시 중단합니다. Br = Br로 설정 ?; 자신의 CERT r을 설정합니다. 메시지 집합 mr,s′−1 j 하위 단계 (b'). – 그러한 대기 중에 어느 시점에서든 내가 적어도 tH개의 유효한 메시지를 받은 경우 미스터,엠+3 j = (ESIGj(1), ESIGj(H(Br Ϋ )), \(\sigma\)r,m+3 j ) 그런 다음 나는 그 자신의 라운드 r 실행을 중지합니다. 즉시 Br = Br로 설정됩니다. ϫ , 자신의 CERT r을 메시지 세트 mr,m+3으로 설정합니다. j 1인용 및 H(Br ? ). 5.5 Algorand 분석 1 분석에 사용된 각 라운드 r \(\geq\)0에 대해 다음 표기법을 소개합니다. • T r을 첫 번째 정직한 사용자가 Br-1을 아는 시간으로 설정합니다. • Ir+1을 간격 [T r+1, T r+1 + \(\lambda\)]로 설정합니다. 프로토콜 초기화에 의해 T 0 = 0이라는 점에 유의하십시오. 각 s \(\geq\)1 및 i \(\in\)SV r,s에 대해 다음을 기억하세요. \(\alpha\)r,s 나 그리고 \(\beta\)r,s 나 는 각각 플레이어 i의 단계 s의 시작 시간과 종료 시간입니다. 더욱이, 각 2 \(\leq\)s \(\leq\)m + 3에 대해 ts = (2s −3)\(\lambda\) + Λ임을 기억하세요. 또한 I0 \(\triangleq\){0} 및 t1 \(\triangleq\)0이라고 둡니다. 마지막으로, Lr \(\leq\)m/3은 베르누이 시행 횟수를 나타내는 확률변수라는 점을 기억하세요. 각 시도가 확률 ph로 1일 때 1을 확인하는 데 필요합니다. 2이며 최대 m/3 시도가 있습니다. 만약 모두 Lr \(\triangleq\)m/3이면 시도가 실패합니다. 분석에서 계산 시간은 실제로 필요한 시간에 비해 무시할 수 있으므로 무시합니다. 메시지를 전파하기 위해. 어쨌든 약간 더 큰 \(\lambda\)와 Λ를 사용하면 계산 시간이 분석에 직접 포함됩니다. 아래 진술의 대부분은 “압도적이다. 확률'을 의미하며, 분석에서 이 사실을 반복적으로 강조하지 않을 수도 있습니다.5.6 주요 정리 정리 5.1. 다음 속성은 각 라운드 r \(\geq\)0에 대해 압도적인 확률로 유지됩니다. 1. 모든 정직한 사용자는 동일한 블록에 동의합니다. 2. 리더 \(\ell\)r이 정직할 때 블록 Br은 \(\ell\)r에 의해 생성되고 Br에는 최대 페이세트가 포함됩니다. 시간 \(\alpha\)r,1까지 \(\ell\)r이 수신함 \(\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. Lr에 대한 ph = h2(1 + h −h2)이고 리더 \(\ell\)r은 적어도 ph 확률로 정직합니다. 우리의 주요 정리를 증명하기 전에 두 가지 사항을 언급하겠습니다. 비고. • 블록 생성 및 실제 지연 시간. 블록 Br을 생성하는 시간은 T r+1 −T r로 정의됩니다. 즉, 일부 정직한 사용자가 Br을 처음 배우는 시점과 Br을 처음으로 학습한 시점 간의 차이로 정의됩니다. 정직한 사용자가 처음으로 Br−1을 배웠을 때입니다. 라운드 R 리더가 정직할 때, 재산 2는 우리의 주요 정리는 Br을 생성하는 정확한 시간이 무슨 일이 있어도 8\(\lambda\) + Λ 시간임을 보장합니다. h > 2/3의 정확한 값은 다음과 같습니다. 리더가 악의적인 경우 속성 3은 다음을 의미합니다. Br을 생성하는 데 예상되는 시간의 상한은 ( 12 ph + 10)\(\lambda\) + Λ, 다시 한 번 정확함에 관계없이 그러나 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이 있다는 점에 유의하세요. 사용자 수가 100K, 100M, 100M이든 상관없이 사용할 수 있습니다. 이는 n이 단독으로 있기 때문에 그렇습니다. h와 F에 따라 달라집니다. 따라서 비밀 키 길이를 갑자기 늘려야 하는 경우를 제외하고, \(\lambda\) 값은 사용자 수가 얼마나 많든 상관없이 동일하게 유지되어야 합니다. 예측 가능한 미래. 대조적으로, 모든 거래율의 경우 거래 수는 거래 수에 따라 증가합니다. 사용자. 따라서 모든 새로운 거래를 적시에 처리하려면 블록의 크기가 같아야 합니다. 또한 사용자 수에 따라 성장하여 Λ도 성장합니다. 따라서 장기적으로 우리는 \(\lambda\) << Λ. 따라서 \(\lambda\)에 대해서는 더 큰 계수를 갖는 것이 적절하며, 실제로 계수는 Λ의 경우 1입니다. 정리 증명 5.1. 귀납법으로 속성 1-3을 증명합니다. 라운드 r −1 동안 유지된다고 가정합니다. (일반성을 잃지 않고 r = 0일 때 "round -1" 동안 자동으로 유지됩니다), 우리는 이를 다음과 같이 증명합니다. 라운드 r. 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는 고유하게 정의됩니다. 라운드 r의 각 단계 s에 대해. n1을 선택하면 SV r,1̸= \(\emptyset\)가 압도적인 확률로 발생합니다. 우리는 지금 섹션 5.7과 5.8에서 증명된 다음 두 가지 기본정리를 기술하십시오. 도입 과정 전반에 걸쳐 두 보조정리의 증명에서 0라운드에 대한 분석은 귀납적 단계와 거의 동일합니다. 그리고 차이점이 발생할 때 이를 강조하겠습니다. 보조정리 5.2. [완전성 정리] 속성 1~3을 가정하면 라운드 r−1에 대해 유지됩니다. \(\ell\)r은 솔직하고 압도적인 확률로, • 모든 정직한 사용자는 \(\ell\)r에 의해 생성되고 최대값을 포함하는 동일한 블록 Br에 동의합니다. 시간 \(\alpha\)r까지 \(\ell\)r만큼 수신된 페이세트,1 \(\ell\)r \(\in\)Ir; 그리고 • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ이고 모든 정직한 사용자는 Ir+1 시간 간격에서 Br을 알고 있습니다. 보조정리 5.3. [건전성 정리] 속성 1~3을 가정하면 라운드 r −1에 대해 유지됩니다. \(\ell\)r은 악의적이며, 압도적인 확률로 모든 정직한 사용자가 동일한 블록 Br, T r+1 \(\leq\)에 동의합니다. T r + (6Lr + 10)\(\lambda\) + Λ이고 모든 정직한 사용자는 Ir+1 시간 간격에서 Br을 알고 있습니다. 속성 1-3은 Lemmas 5.2와 5.3을 r = 0과 유도 단계에 적용하여 유지됩니다. 마지막으로, 우리는 속성 4를 섹션 5.9에서 증명된 다음 보조정리로 다시 기술합니다. 보조정리 5.4. r 이전의 각 라운드에 대해 속성 1-3이 주어지면 Lr에 대한 ph = h2(1 + h −h2)이고 리더 \(\ell\)r은 적어도 ph 확률로 정직합니다. 위의 세 가지 정리를 결합하면 정리 5.1이 성립됩니다. ■ 아래의 보조 정리는 귀납법을 고려할 때 라운드 r에 대한 몇 가지 중요한 속성을 나타냅니다. 가설이며, 위의 세 가지 보조정리의 증명에 사용될 것입니다. 보조정리 5.5. 속성 1-3이 라운드 r −1에 대해 유지된다고 가정합니다. 라운드 r의 각 단계 s \(\geq\)1에 대해 각 정직한 검증자 i \(\in\)HSV r,s, 우리는 다음을 얻습니다. (a) \(\alpha\)r,s 나 \(\in\)Ir; (b) 플레이어 i가 ts만큼 기다린 경우, \(\beta\)r,s 나 r > 0인 경우 \(\in\)[T r + ts, T r + \(\lambda\) + ts] \(\beta\)r,s 나 = ts(r = 0); 그리고 (c) 플레이어 i가 ts 시간 동안 기다린 경우 \(\beta\)r,s 시간만큼 기다렸습니다. 나, 그 사람은 모든 메시지를 받았어요 모든 단계 s′ < s에 대해 모든 정직한 검증자 j \(\in\)HSV r,s′에 의해 전송됩니다. 게다가, 각 단계 s \(\geq\)3에 대해 우리는 다음을 얻습니다. (d) 두 개의 서로 다른 플레이어 i, i′ \(\in\)SV r,s와 동일한 두 개의 서로 다른 값 v, v′가 존재하지 않습니다. 두 플레이어 모두 전체 시간의 2/3가 넘는 시간 ts를 기다렸습니다. 유효한 메시지 mr,s−1 j 내가 받은 선수는 v와 계약했고, 유효한 모든 선수의 2/3 이상이 메시지 mr,s−1 j i' 선수가 v'와 계약했습니다. 증거. 속성 (a)는 플레이어 i가 Br−1을 알고 있기 때문에 귀납적 가설로부터 직접적으로 따릅니다. Ir 시간 간격을 두고 즉시 자신의 발걸음을 시작합니다. 속성 (b)는 (a)에서 직접 따릅니다. 플레이어 나는 행동하기 전에 ts의 시간을 기다렸습니다. \(\beta\)r,s 나 = \(\alpha\)r,s 나 + TS. \(\alpha\)r,s에 주목하세요. 나 = 0 r = 0. 이제 속성 (c)를 증명합니다. s = 2이면 속성 (b)에 따라 모든 검증자 j \(\in\)HSV r,1에 대해 다음을 얻습니다. \(\beta\)r,s 나 = \(\alpha\)r,s 나 + ts \(\geq\)T r + ts = T r + \(\lambda\) + Λ \(\geq\) \(\beta\)r,1 j + Λ.각 검증자 j \(\in\)HSV r,1은 시간 \(\beta\)r,1에 메시지를 보내기 때문에 j 그 메시지는 모두에게 정직하게 전해졌어 최대 Λ 시간, 시간별 \(\beta\)r,s의 사용자 나 플레이어 i는 모든 검증자가 보낸 메시지를 받았습니다. 원하는 대로 HSV r,1을 선택합니다. s > 2이면 ts = ts−1 + 2\(\lambda\)입니다. 속성(b)에 따라 모든 단계 s′ < s 및 모든 검증자 j \(\in\)HSV r,s′에 대해, \(\beta\)r,s 나 = \(\alpha\)r,s 나 + 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\). 각 검증자 j \(\in\)HSV r,s′는 시간 \(\beta\)r,s′에 메시지를 보내기 때문에 j 그 메시지는 모두에게 정직하게 전해졌어 최대 \(\lambda\) 시간, 시간 \(\beta\)r,s의 사용자 나 플레이어 i는 모든 정직한 검증자가 보낸 모든 메시지를 받았습니다. 모든 s' < s에 대해 HSV r,s'에서. 따라서 속성 (c)가 성립합니다. 마지막으로 속성 (d)를 증명합니다. 검증자 j \(\in\)SV r,s−1은 최대 두 가지에 서명합니다. 임시 비밀 키를 사용하는 s -1 단계: 출력과 동일한 길이의 값 vj hash 함수 및 s −1 \(\geq\)4인 경우 비트 bj \(\in\){0, 1}. 그렇기 때문에 보조정리의 진술에서 우리는 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)를 v, MSV r,s−1에 서명한 정직한 (r, s −1) 검증자의 집합이라고 가정합니다. 나 세트 i가 유효한 메시지를 수신한 악의적인 (r,s-1)-검증자 및 MSV r,s-1 나 (v) MSV r,s−1의 하위 집합 나 나는 누구로부터 유효한 메시지 서명을 받았습니까? v. 요구 사항에 따라 나와 v, 우리는 비율 \(\triangleq\)|HSV r,s−1(v)| + |MSV r,s−1 나 (v)| |HSV r,s−1| + |MSV r,s−1 나 |
2 3. (1) 우리는 처음으로 보여줍니다 |MSV r,s−1 나 (v)| \(\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 나 (v)| 3|MSV r,s−1 나 | < 2|MSV r,s−1 나 (v)| 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 나 (v)| \(\leq\) 3|HSV r,s−1(v)| + 2|MSV r,s−1 나 | + |MSV r,s−1 나 (v)|. 불평등 2와 결합하면, 2|HSV r,s−1| < 3|HSV r,s−1(v)| + |MSV r,s−1 나 (v)| \(\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의 서명을 위조할 수 없습니다. 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은 정직하고, 압도적인 확률로, • 모든 정직한 사용자는 \(\ell\)r에 의해 생성되고 최대값을 포함하는 동일한 블록 Br에 동의합니다. 시간 \(\alpha\)r까지 \(\ell\)r만큼 수신된 페이세트,1 \(\ell\)r \(\in\)Ir; 그리고 • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ이고 모든 정직한 사용자는 Ir+1 시간 간격에서 Br을 알고 있습니다. 증거. 귀납적 가설과 Lemma 5.5에 의해 각 단계 s와 검증자 i \(\in\)HSV r,s에 대해, \(\alpha\)r,s 나 \(\in\)이르. 아래에서는 프로토콜을 단계별로 분석합니다. 1단계. 정의에 따르면 모든 정직한 검증자 i \(\in\)HSV r,1은 원하는 메시지 mr,1을 전파합니다. 나 ~에 시간 \(\beta\)r,1 나 =\(\alpha\)r,1 나, 어디 있어?1 나 = (Br i , Esigi(H(Br i )), \(\sigma\)r,1 나), 브르 나는 = (r, 지불 r i , SIGi(Qr−1), H(Br−1)), 그리고 돈을 지불하세요 나는 \(\alpha\)r,1까지 내가 본 모든 지불 중에서 최대 지불 세트입니다. 나. 2단계. 정직한 검증자 i \(\in\)HSV r,2를 임의로 수정합니다. Lemma 5.5에 따르면 플레이어 i가 완료되면 시간 \(\beta\)r,2에서 대기 중 나 =\(\alpha\)r,2 나 + t2, 그는 HSV r,1의 검증자가 보낸 모든 메시지를 받았습니다. 씨,1 \(\ell\)r . \(\ell\)r의 정의에 따르면, PKr−k에는 자격 증명이 hash인 다른 플레이어가 존재하지 않습니다. 값이 H(\(\sigma\)r,1보다 작음) \(\ell\)r). 물론, 대적은 H(\(\sigma\)r,1 \(\ell\)r ) 매우 작지만 그 때쯤에는 플레이어 \(\ell\)r이 자신의 임시 키와 mr,1 메시지를 파기했습니다. \(\ell\)r 전파되었습니다. 따라서 검증자 i는 자신의 리더를 플레이어 \(\ell\)r로 설정합니다. 따라서 시간 \(\beta\)r,2에서 나 , 검증자 i가 Mr,2를 전파합니다. 나 = (ESIGi(v′ 나), \(\sigma\)r,2 i ), 여기서 v' 나는 = H(Br \(\ell\)r). r = 0일 때 유일한 차이점은 그게 \(\beta\)r,2인가요? 나 = t2가 아닌 범위에 속합니다. 향후 단계에 대해서도 비슷한 말을 할 수 있으며 우리는 다시는 강조하지 않겠습니다. 3단계. 정직한 검증자 i \(\in\)HSV r,3을 임의로 수정합니다. Lemma 5.5에 따르면 플레이어 i가 완료되면 시간 \(\beta\)r,3에서 대기 중 나 =\(\alpha\)r,3 나 + t3, 그는 HSV r,2의 검증자가 보낸 모든 메시지를 받았습니다. 매개변수 간의 관계로 보면 압도적인 확률 |HSV r,2| > 2|MSVr,2|. 더욱이 정직한 검증자는 모순되는 메시지에 서명하지 않을 것이며, 대적은 정직한 검증자가 해당 내용을 파기한 후에는 정직한 검증자의 서명을 위조할 수 없습니다. 임시 비밀 키. 따라서 내가 받은 모든 유효한 (r, 2) 메시지 중 2/3 이상이 다음에서 온 것입니다. 정직한 검증자이며 mr,2 형식입니다. j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,2 j), 모순이 없습니다. 따라서 시간 \(\beta\)r,3에 나 플레이어 i가 Mr,3을 전파합니다. 나 = (ESIGi(v′), \(\sigma\)r,3 i ), 여기서 v' = H(Br \(\ell\)r).4단계. 정직한 검증자 i \(\in\)HSV r,4를 임의로 수정합니다. Lemma 5.5에 의해 플레이어 i는 모든 것을 받았습니다. HSV r,3의 검증자가 시간 \(\beta\)r,4에서 대기를 마쳤을 때 보낸 메시지 나 =\(\alpha\)r,4 나 + t4. 유사하다 3단계, 내가 받은 모든 유효한 (r, 3) 메시지의 2/3 이상이 정직한 검증자로부터 온 것이며 Mr,3 형식의 j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,3 j). 따라서 플레이어 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를 임의로 수정합니다. Lemma 5.5에 따르면 플레이어는 다음과 같습니다. \(\alpha\)r,5 시간까지 기다렸다면 검증자가 보낸 모든 메시지를 HSV r,4에서 수신했습니다. 나 +t5. 참고하세요 |HSV r,4| \(\geq\)tH.19 또한 HSV r,4의 모든 검증자는 H(Br에 서명했습니다. \(\ell\)r). |MSV r,4| < tH, v′ ̸= H(Br은 존재하지 않습니다. \(\ell\)r) tH가 서명했을 수도 있음 SV r,4의 검증자(반드시 악의적일 수 있음)이므로 플레이어 i는 그가 완료하기 전에 멈추지 않습니다. 유효한 메시지를 받았습니다. Mr,4 j = (ESIGj(0), ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,4 j). T를 다음과 같은 시간으로 설정합니다. 후자의 사건이 발생합니다. 이러한 메시지 중 일부는 악의적인 플레이어가 보낸 것일 수도 있지만 |MSV r,4| < thH, 그 중 적어도 하나는 HSV r,4의 정직한 검증자로부터 왔으며 시간이 지난 후에 전송됩니다. T r +t4. 따라서 T \(\geq\)T r +t4 > T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\)r +Λ, 그리고 시간이 지나면 T 플레이어 i도 수신합니다. 메시지 씨,1 \(\ell\)r . 프로토콜의 구성에 따라 플레이어 i는 시간 \(\beta\)r,5에서 중지됩니다. 나 = T 없이 무엇이든 전파하는 것; Br = Br로 설정 \(\ell\)r; 그리고 자신의 CERT r을 (r, 4)-메시지 세트로 설정합니다. 0과 H(Br \(\ell\)r) 받은 것입니다. 단계 s > 5. 마찬가지로, 모든 단계 s > 5와 검증자 i \(\in\)HSV r,s에 대해 플레이어 i는 \(\alpha\)r,s 시간까지 기다렸다면 검증자가 보낸 모든 메시지를 HSV r,4에서 수신했습니다. 나 + TS. 의해 동일한 분석으로, 플레이어 i는 아무것도 전파하지 않고 정지하며 Br = Br로 설정됩니다. \(\ell\)r (그리고 자신의 설정 CERT r이 적절합니다). 물론 악성 검증자는 멈추지 않고 임의적으로 전파할 수도 있습니다. 메시지가 있지만 |MSV r,s| < tH, 유도에 의해 다른 v'는 tH 검증자에 의해 서명될 수 없습니다. 모든 4단계 \(\leq\)s' < s에서 정직한 검증자는 유효한 tH를 받았기 때문에 중지합니다. (r, 4)-0 및 H(Br에 대한 메시지 \(\ell\)r). Round-r 블록의 재구성. 5단계의 분석은 일반적인 정직성에 적용됩니다. 사용자 i는 거의 변화가 없습니다. 실제로, 플레이어 i는 Ir 간격에서 자신의 라운드 r을 시작하고 H(Br에 대한 tH 유효한 (r, 4) 메시지를 수신한 경우에만 시간 T에서 중지합니다. \(\ell\)r). 또 왜냐하면 그 메시지 중 적어도 하나는 정직한 검증자로부터 온 것이며 T r + t4 시간 후에 전송됩니다. 플레이어 i는 Mr,1도 받았습니다. \(\ell\)r은 시간 T만큼입니다. 따라서 그는 Br = Br로 설정합니다. 적절한 CERT r을 사용하여 \(\ell\)r. 모든 정직한 사용자가 Ir+1 시간 간격 내에 라운드 r을 완료한다는 것을 보여주는 것만 남았습니다. 5단계의 분석에 따르면 모든 정직한 검증자 i \(\in\)HSV r,5는 \(\alpha\)r,5 이전에 Br을 알고 있습니다. 나 + t5 \(\leq\) T r + \(\lambda\) + t5 = T r + 8\(\lambda\) + Λ. T r+1은 최초의 정직한 사용자 ir이 Br을 아는 시간이므로 다음과 같습니다. T r+1 \(\leq\)T r + 8\(\lambda\) + Λ 원하는대로. 더욱이 ir 플레이어가 Br을 알고 있다면 그는 이미 메시지를 전파하는 데 도움을 준 것입니다. 그의 CERT r. 이러한 모든 메시지는 \(\lambda\) 시간 내에 모든 정직한 사용자에게 수신됩니다. 19 엄밀히 말하면 이러한 일은 매우 높은 확률로 발생하지만 반드시 압도적인 것은 아닙니다. 그러나 이 확률은 프로토콜의 실행 시간에 약간 영향을 미치지만 정확성에는 영향을 미치지 않습니다. h = 80%일 때, |HSV r,4| 확률이 1 −10−8인 \(\geq\)tH. 이 이벤트가 발생하지 않으면 프로토콜은 다른 이벤트로 계속됩니다. 3단계. 두 단계에서 이것이 발생하지 않을 확률은 무시할 수 있으므로 프로토콜은 8단계에서 완료됩니다. 그렇다면 필요한 단계 수는 거의 5개입니다.ir 플레이어는 이를 전파한 최초의 플레이어였습니다. 게다가 위의 분석에 따르면 T r+1 \(\geq\)T r + t4 \(\geq\) \(\beta\)r,1 \(\ell\)r + Λ, 따라서 모든 정직한 사용자는 mr,1을 받았습니다. \(\ell\)r 시간 T r+1 + \(\lambda\). 따라서, 모든 정직한 사용자는 Ir+1 = [T r+1, T r+1 + \(\lambda\)] 시간 간격에서 Br을 알고 있습니다. 마지막으로, r = 0인 경우 실제로 T 1 \(\leq\)t4 + \(\lambda\) = 6\(\lambda\) + Λ가 됩니다. 모든 것을 하나로 결합하여, Lemma 5.2가 유지됩니다. ■ 5.8 건전성 정리 보조정리 5.3. [건전성 정리, 다시 설명] 속성 1-3을 가정하면 라운드 r −1에 대해 유지됩니다. 리더 \(\ell\)r은 악의적이며 압도적인 확률로 모든 정직한 사용자가 동일한 블록에 동의합니다. Br, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ 그리고 모든 정직한 사용자는 Ir+1 시간 간격에서 Br을 알고 있습니다. 증거. 우리는 프로토콜의 두 부분인 GC와 BBA⋆를 별도로 고려합니다. GC. 귀납적 가설과 Lemma 5.5에 따라 모든 단계 s \(\in\){2, 3, 4} 및 모든 정직한 단계에 대해 검증자 i \(\in\)HSV r,s, 플레이어 i가 시간 \(\beta\)r,s에 행동할 때 나 = \(\alpha\)r,s 나 + ts, 그는 보낸 모든 메시지를 받았습니다 s' < s 단계의 모든 정직한 검증자에 의해 수행됩니다. 4단계에서는 두 가지 가능한 경우를 구별합니다. 사례 1. 검증자가 없음 i \(\in\)HSV r,4는 gi = 2로 설정합니다. 이 경우 정의에 따르면 모든 검증자 i \(\in\)HSV r,4에 대해 bi = 1입니다. 즉, 그들은 다음으로 시작합니다. 바이너리 BA 프로토콜에서 1에 대한 합의. 그들은 vi에 대해 합의하지 않았을 수도 있습니다. 그러나 바이너리 BA에서 볼 수 있듯이 이것은 중요하지 않습니다. 사례 2. gˆi = 2인 검증자 ˆi \(\in\)HSV r,4가 존재합니다. 이 경우에 우리는 다음을 보여줍니다. (1) 모든 i \(\in\)HSV r,4에 대해 gi \(\geq\)1, (2) 모든 i \(\in\)HSV r,4에 대해 vi = v'를 만족하는 값 v'가 존재하고, (3) 유효한 메시지가 존재합니다. mr,1 \(\ell\) v' = H(Br을 만족하는 일부 검증기 \(\ell\) \(\in\)SV r,1로부터 \(\ell\)). 실제로 플레이어 ˆi는 정직하고 gˆi = 2로 설정했기 때문에 모든 유효한 메시지의 2/3 이상이 mr,3입니다. j 그는 동일한 값 v′ ̸= \(\bot\)에 대해 수신했으며 vˆi = v′로 설정했습니다. Lemma 5.5의 속성 (d)에 따르면 다른 정직한 (r, 4) 검증자 i에 대해서는 그 이상일 수 없습니다. 모든 유효한 메시지의 2/3보다 mr,3 j i′가 받은 값은 v′′̸=v′와 같습니다. 따라서 i가 gi = 2로 설정하면 i도 v'에 대해 > 2/3 다수를 보았고 설정되어야 합니다. vi = v′, 원하는 대로. 이제 gi < 2인 임의의 검증기 i \(\in\)HSV r,4를 고려해 보겠습니다. 속성 분석과 유사합니다. (d) Lemma 5.5에서 플레이어 ˆi는 v'에 대해 > 2/3 다수를 보았기 때문에 1보다 더 많습니다. 2|HSV r,3| 정직한 (r, 3)-검증자는 v'에 서명했습니다. 왜냐하면 나는 정직한 (r, 3) 검증자로부터 모든 메시지를 받았기 때문입니다. 시간 \(\beta\)r,4 나 =\(\alpha\)r,4 나 + t4, 그는 특히 1개 이상을 받았습니다. 2|HSV r,3| 그들로부터의 메시지 v'에 대해. 왜냐하면 |HSV r,3| > 2|MSV r,3|, 나는 v′에 대해 > 1/3 다수를 보았습니다. 이에 따라 플레이어 i는 gi = 1로 설정하고 속성 (1)이 유지됩니다. 플레이어 i는 반드시 vi = v′로 설정해야 합니까? 다음과 같은 다른 값 v′′ ̸= \(\bot\)이 존재한다고 가정합니다. 플레이어 i는 또한 v′′에 대해 > 1/3 다수를 보았습니다. 해당 메시지 중 일부는 악의적인 메시지일 수 있습니다. 그러나 그들 중 적어도 한 명은 정직한 검증자 j \(\in\)HSV r,3에게서 왔습니다: 실제로, 왜냐하면 |HSV r,3| > 2|MSV r,3| 그리고 나는 악성 그룹인 HSV r,3으로부터 모든 메시지를 받았습니다. 내가 유효한 (r, 3) 메시지를 받은 검증자는 모든 유효한 메시지의 < 1/3에 해당합니다. 그 사람이 받은 메시지.정의에 따르면 플레이어 j는 모든 유효한 (r, 2) 메시지 중에서 v''에 대해 > 2/3 다수를 보았어야 합니다. 그는 받았습니다. 그러나 우리는 이미 다른 정직한 (r, 3) 검증자들이 본 것을 가지고 있습니다. v'에 대한 2/3 다수(v'에 서명했기 때문). Lemma 5.5의 속성 (d)에 따르면 이는 불가능합니다. 발생하며 그러한 값 v''는 존재하지 않습니다. 따라서 플레이어 i는 vi = v′를 원하는 대로 설정해야 합니다. 재산(2)이 보유됩니다. 마지막으로, 일부 정직한 (r, 3) 검증자는 v'에 대해 > 2/3 다수를 보았으며 일부(실제로는 절반 이상의 정직한 (r, 2) 검증자들이 v'에 서명하고 그들의 메시지를 전파했습니다. 프로토콜을 구성함으로써 정직한 (r, 2) 검증자는 유효한 메시지 미스터, 1 \(\ell\) 일부 플레이어의 \(\ell\) \(\in\)SV r,1 v' = H(Br \(\ell\))이므로 성질 (3)이 성립한다. BBA⋆. 우리는 다시 두 가지 경우를 구별합니다. 사례 1. 모든 검증자 i \(\in\)HSV r,4는 bi = 1입니다. 이는 GC의 사례 1 이후에 발생합니다. |MSV r,4| < tH, 이 경우 SV r,5에는 검증자가 없습니다. 비트 0에 대한 유효한 (r,4) 메시지를 수집하거나 생성할 수 있습니다. 따라서 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, 그가 모든 것을 받았을 때까지 Lemma 5.5에 따라 HSV r,4에서 보낸 메시지입니다. 따라서 플레이어 i는 1에 대해 > 2/3 다수를 보았습니다. bi = 1로 설정합니다. Coin-Fixed-To-1 단계인 6단계에서는 s' = 5가 s' −2 pho mod 3을 만족하지만, 비트 0에 대한 유효한 (r, 4) 메시지가 존재하지 않으므로 HSV r,6의 검증자는 중지되지 않습니다. 그는 비어 있지 않은 블록을 알고 있습니다. 그러나 s' = 6인 경우 s' −2 =1 mod 3이 존재합니다. |HSV r,5| \(\geq\)tH 유효(r, 5) - HSV r,5의 비트 1에 대한 메시지. 모든 검증자 i \(\in\)HSV r,6에 대해 Lemma 5.5를 따르고 시간 \(\alpha\)r,6 이전에 나 + t6 플레이어 i HSV r,5로부터 모든 메시지를 수신했으므로 아무 것도 전파하지 않고 중지하고 설정합니다. 브롬 = 브롬 ? 그의 CERT r은 tH 유효한 (r, 5) 메시지 mr,5의 집합입니다. j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j) 그가 멈출 때 그에게 받았습니다. 다음으로, 플레이어 i가 s > 6 단계의 정직한 검증자이거나 일반적이고 정직한 사용자(즉, 비검증자). Lemma 5.2의 증명과 유사하게 플레이어 i는 Br = Br을 설정합니다. ث 그리고 자신의 것을 설정합니다 CERT r은 tH 유효한 (r, 5)-메시지 mr,5의 집합입니다. j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j) 그는 받았습니다. 마지막으로 Lemma 5.2와 유사합니다. Tr+1 \(\leq\) 분 i\(\in\)HSV r,6 \(\alpha\)r,6 나 + t6 \(\leq\)T r + \(\lambda\) + t6 = T r + 10\(\lambda\) + Λ, 그리고 모든 정직한 사용자는 Ir+1 시간 간격에서 Br을 알고 있습니다. 왜냐하면 첫 번째 정직한 사용자 i는 Br이 자신의 CERT r에서 (r, 5) 메시지를 전파하는 데 도움을 주었다는 것을 알고 있습니다. 사례 2. bˆi = 0인 검증자 ˆi \(\in\)HSV r,4가 존재합니다. 이는 GC의 사례 2 다음에 발생하며 더 복잡한 경우입니다. 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, Lemma 5.5 플레이어에 의해 i는 HSV r,4 \(\cup\) \(\cdots\) \(\cup\)HSV r,s−1에서 모든 정직한 검증자가 보낸 모든 메시지를 받았습니다. 시간 동안.이제 다음 사건 E를 고려합니다. 첫 번째로 다음과 같은 단계 s\(\geq\)5가 존재합니다. 바이너리 BA의 시간, 일부 플레이어 i\(\in\)SV r,s(악의적이든 정직하든)는 중지되어야 합니다. 아무것도 전파하지 않고. 우리는 "멈춰야 한다"라는 표현을 사용하여 플레이어가 i 악의적인 경우 프로토콜에 따라 중지해서는 안 되는 척할 수 있으며 적이 선택한 메시지를 전파합니다. 또한 프로토콜을 구성함으로써 다음 중 하나를 수행할 수 있습니다. (E.a) i는 최소한 tH개의 유효한 메시지 mr,s′-1을 수집하거나 생성할 수 있습니다. j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ) 동일한 v 및 s′에 대해, 5 \(\leq\)s′ \(\leq\)s및 s′ −2 ל0 mod 3; 또는 (E.b) i는 적어도 tH개의 유효한 메시지 mr,s′-1을 수집하거나 생성할 수 있습니다. j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ) 동일한 s′에 대해 6 \(\leq\)s′ \(\leq\)s및 s′ −2 ‚1 mod 3입니다. 정직한 (r, s′ −1) 메시지는 모든 정직한 (r, s′) 검증자가 수신하기 전에 수신되기 때문입니다. 단계 s'에서 대기가 완료되고, 적대자는 늦어도 단계 s'에서 모든 것을 수신하기 때문에 정직한 사용자라면 일반성을 잃지 않고 s′ = s이고 플레이어 i는 악의적입니다. 참고하세요 우리는 유효한 블록의 hash이 되기 위해 E.a의 v 값을 요구하지 않았습니다. 분석에서 v = H(Br \(\ell\)) 이 하위 이벤트에서. 아래에서는 먼저 사건 E에 따른 사례 2를 분석한 다음 s의 값이 본질적으로 다음과 같다는 것을 보여줍니다. Lr에 따라 분배됨(따라서 이벤트 E는 단계 m + 3 이전에 압도적으로 발생함) 매개변수의 관계가 주어진 확률). 우선, 임의의 단계 5 \(\leq\)s < s에 대해, 모든 정직한 검증자 i \(\in\)HSV r,s는 ts 시간을 기다렸다가 vi를 투표의 과반수 투표로 설정했습니다. 유효한 (r, s−1)-그가 받은 메시지. 플레이어 i는 모든 정직한 (r, s−1) 메시지를 수신했기 때문에 HSV r,4의 모든 정직한 검증자는 Lemma 5.5에 따라 H(Br)에 서명했습니다. \(\ell\)) 다음의 경우 GC의 2, 이후 |HSV r,s−1| > 2|MSV r,s−1| 각 s에 대해 유도에 의해 우리는 그 플레이어 i를 갖게 됩니다. 설정했습니다 vi = H(Br \(\ell\)). 전파하지 않고 멈추지 않는 모든 정직한 검증자 i \(\in\)HSV r,s에 대해서도 마찬가지입니다. 무엇이든. 이제 우리는 단계 s를 고려하고 4개의 하위 사례를 구별합니다. 사례 2.1.a. 사건 E.a가 발생하고 i′ \(\in\)HSV r,s를 수행해야 하는 정직한 검증자가 존재합니다. 또한 아무것도 전파하지 않고 중지합니다. 이 경우 s−2 pho 0 mod 3이 있고 단계 s는 Coin-Fixed-To-0 단계입니다. 작성자: 정의에 따르면, 플레이어 i'는 최소한 다음 형식의 tH개의 유효한 (r, s−1) 메시지를 수신했습니다. (ESIGj(0), ESIGj(v), \(\sigma\)r,s−1 j ). HSV r,s−1의 모든 검증자는 H(Br)에 서명했기 때문에 \(\ell\)) 그리고 |MSV r,s−1| < tH, v = H(Br \(\ell\)). 적어도 tH −|MSV r,s−1| 0과 v에 대해 i'가 수신한 (r, s−1)-메시지 중 \(\geq\)1개 T r +ts−1 \(\geq\)T r +t4 \(\geq\)T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 이후 HSV r,s−1의 검증자에 의해 전송됩니다. \(\ell\) +Λ, i' 플레이어가 Mr,1을 받았습니다. \(\ell\) 그가 (r, s−1)-메시지를 수신할 때까지. 따라서 플레이어 i'는 아무것도 전파하지 않고 중지됩니다. Br = Br로 설정 \(\ell\); 자신의 CERT r을 그가 수신한 0과 v에 대한 유효한 (r, s−1) 메시지 세트. 다음으로 우리는 다른 검증자 i \(\in\)HSV r,s가 Br = Br로 중지되었음을 보여줍니다. \(\ell\) 또는 bi = 0으로 설정하고 (ESIGi(0), ESIGi(H(Br)을 전파했습니다. \(\ell\))), \(\sigma\)r,s 나). 실제로 Step s 때문에 일부 검증자가 아무것도 전파하지 않고 중지해야 하는 첫 번째 경우입니다. tH (r, s' −1)-검증자가 1에 서명하도록 s' −2 pho1 mod 3인 단계 s' < s가 존재합니다. 따라서 HSV r,s의 검증자는 Br = Br에서 중지되지 않습니다. ?더욱이, 모든 정직한 검증자들은 {4, 5, . . . , s−1}은 H(Br에 서명했습니다. \(\ell\)) 그렇죠 tH (r, s' −1)-검증자가 서명한 단계 s' \(\leq\)s with s' −2 ל0 mod 3이 존재하지 않습니다. 일부 v′′ ̸= H(Br \(\ell\)) —실제로, |MSV r,s′−1| < tH. 따라서 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에 대한 것입니다. 내가 1에 대해 2/3 이상의 다수를 본 경우, 그는 1개에 대해 2(tH −|MSV r,s−1|) 이상의 유효한 (r, s−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이 다수이고 Step s가 Coin-Fixed-To-0 단계이기 때문에 bi = 0으로 설정합니다. 우리가 가지고 있는 것처럼 본, vi = H(Br \(\ell\)). 따라서 i는 (ESIGi(0), ESIGi(H(Br)을 전파합니다. \(\ell\))), \(\sigma\)r,s i) 우리가 원했던 대로 쇼. 단계 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)-을 수신하기 전에는 멈추지 않을 것입니다. 메시지, 왜냐하면 비트 1에 대한 다른 tH 유효한 (r, s′ -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| < tH. 따라서 HSV r,s+1의 모든 정직한 검증자는 아무 것도 전파하지 않고 중지하고 Br = 브르 \(\ell\): 이전과 마찬가지로 mr,1을 받았습니다. \(\ell\) 그들이 원하는 (r, s−1)-메시지를 받기 전에.20 향후 단계의 모든 정직한 검증자와 일반적으로 모든 정직한 사용자에 대해서도 마찬가지입니다. 특히 다들 Br = Br인거 아시죠? Ir+1 시간 간격 내에서 \(\ell\)이고 T r+1 \(\leq\) \(\alpha\)r,s 나' + ts\(\leq\)T r + \(\lambda\) + ts. 사례 2.1.b. 이벤트 E.b가 발생하고 i′ \(\in\)HSV r,s를 수행해야 하는 정직한 검증자가 존재합니다. 또한 아무것도 전파하지 않고 중지합니다. 이 경우 s−2 pho1 mod 3이 있고 단계 s는 Coin-Fixed-To-1 단계입니다. 분석 Case 2.1.a와 유사하며 많은 세부 사항이 생략되었습니다. 20만약 \(\ell\)이 악의적이라면 그는 Mr,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\) 자신의 라운드 r이 시작될 때부터 t2를 기다린 후. 이제부터, mr,1에 필요한 시간 \(\lambda\)' \(\ell\) 나머지 정직한 사용자에게 도달하는 것은 Λ보다 훨씬 작으며 단순화를 위해 우리는 그렇게 하지 않습니다. 분석에 적어보세요. 4\(\lambda\) \(\geq\) \(\lambda\)'이면 분석은 아무런 변화 없이 진행됩니다. 4단계가 끝날 때까지 모든 정직한 사용자라면 Mr,1을 받았을 것입니다. \(\ell\). 블록의 크기가 거대해지고 4\(\lambda\) < \(\lambda\)'이면 3단계와 4단계에서, 프로토콜은 각 검증자에게 2\(\lambda\)가 아닌 \(\lambda\)'/2를 기다리도록 요청할 수 있으며 분석은 계속 유지됩니다.이전과 마찬가지로 플레이어 i'는 최소한 다음 형식의 tH 유효한 (r, s−1) 메시지를 수신해야 합니다. (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ). 다시 s의 정의에 따르면 단계가 존재하지 않습니다. 5 \(\leq\)s′ < swith s′ −2 ל0 mod 3, 여기서 적어도 tH (r, s′ −1) 검증자는 0과 0을 서명했습니다. 동일한 v. 따라서 플레이어 i'는 아무것도 전파하지 않고 중지됩니다. Br = Br로 설정 ?; 그리고 세트 자신의 CERT r은 그가 수신한 비트 1에 대한 유효한 (r, s−1) 메시지 세트가 됩니다. 더욱이, 다른 검증자 i \(\in\)HSV r,s는 Br = Br로 중지되었습니다. ϫ , 또는 bi =로 설정됨 1이고 전파됨(ESIGi(1), ESIGi(vi), \(\sigma\)r,s 나 ). 플레이어 i'가 전파하는 데 도움을 주었기 때문에 시간 \(\alpha\)r,s에 따른 CERT r의 (r, s−1)-메시지 나' + ts, 다시 한번 모든 정직한 검증자들 HSV r,s+1 아무것도 전파하지 않고 정지하고 Br = Br로 설정 ? . 마찬가지로 모두 정직하다. 사용자는 Br = Br을 알고 있습니다. τ 시간 간격 Ir+1 내에서 그리고 T r+1 \(\leq\) \(\alpha\)r,s 나' + ts\(\leq\)T r + \(\lambda\) + ts. 사례 2.2.a. 사건 E.a가 발생하고 정직한 검증자가 존재하지 않습니다. i' \(\in\)HSV r,swho 또한 아무것도 전파하지 않고 중지해야 합니다. 이 경우 플레이어 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는 Coin-Fixed-To-0 단계입니다. 그리고 CERT r의 (r, s−1)-메시지 i는 비트 0이고 v = H(Br \(\ell\)). 사실 다 정직해요 (r, s−1)-검증자는 v에 서명하므로 공격자는 유효한 (r, s−1)-메시지를 생성할 수 없습니다. 다른 v′에 대해. 더욱이, 모든 정직한 (r, s) 검증자는 ts 시간을 기다렸으며 > 2/3 다수를 보지 못했습니다. 비트 1의 경우 |HSV r,s−1| 때문에 다시 발생합니다. + 4|MSV r,s−1| <2n. 따라서 모든 정직한 검증자는 i \(\in\)HSV r,s는 bi = 0, vi = H(Br로 설정됩니다. \(\ell\)) 다수결로 mr,s를 전파합니다. 나 = (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s 나 ) 시간 \(\alpha\)r,s에 나 + ts. 이제 s+ 1 단계(Coin-Fixed-To-1 단계)의 정직한 검증자를 고려해보세요. 만약 공격자는 실제로 CERT r에서 메시지를 보냅니다. i그들 중 일부에게 중지하고 사례 2.1.a와 유사하게 모든 정직한 사용자는 Br = Br을 알고 있습니다. \(\ell\)시간 간격 내 Ir+1 및 T r+1 \(\leq\)T r + \(\lambda\) + ts+1. 그렇지 않으면 s+1 단계의 모든 정직한 검증자는 0과 s에 대한 모든 (r, s) 메시지를 수신했습니다. H(Br \(\ell\)) 대기 시간 ts+1 이후 HSV r,s에서, 이는 > 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은 Coin-Fixed-To-0 단계가 아니기 때문입니다. 이제 Step s+2(Coin-Genuinely-Flipped 단계)의 정직한 검증자를 고려해보세요. 적이 CERT r로 메시지를 보내는 경우 나는 그 중 일부에게 말을 걸고 멈추게 만듭니다. 다시 한번 모든 정직한 사용자는 Br = Br을 알고 있습니다. Ir+1 시간 간격 내에서 \(\ell\)이고 T r+1 \(\leq\)T r + \(\lambda\) + ts+2.그렇지 않으면 s+ 2단계의 모든 정직한 검증자는 다음에 대한 모든 (r, s+ 1)-메시지를 수신했습니다. 0과 H(Br \(\ell\)) 대기 시간 ts+2 이후 HSV r,s+1에서 발생하며 이는 > 2/3 다수로 이어집니다. 따라서 그들 모두는 0과 H(Br에 대한 메시지를 전파합니다. \(\ell\)) 따라서: 그들은 그렇습니다 이 경우에는 "동전 뒤집기"가 아닙니다. 다시 말하지만 전파 없이는 멈추지 않습니다. 단계 s+ 2는 Coin-Fixed-To-0 단계가 아니기 때문입니다. 마지막으로, s+3 단계(또 다른 Coin-Fixed-To-0 단계)의 정직한 검증자의 경우, 그 중 0과 H(Br에 대해 최소한 tH개의 유효한 메시지를 수신했을 것입니다. \(\ell\)) HSV s+2에서, 그들이 정말로 기다리는 시간이 있다면 ts+3. 따라서 적이 메시지를 보내든 안 보내든 CERT r에서 i 그들 중 누구에게나, HSV r,s+3의 모든 검증자는 Br = Br로 중지됩니다. \(\ell\), 없음 무엇이든 전파합니다. 적이 어떻게 행동하는지에 따라 그들 중 일부는 CERT r의 (r, s−1) 메시지로 구성된 자체 CERT r i, 그리고 다른 사람들은 (r, s+ 2) 메시지로 구성된 자체 CERT r입니다. 어쨌든 모든 정직한 사용자는 Br = Br 알아요 Ir+1 시간 간격 내에서 \(\ell\)이고 T r+1 \(\leq\)T r + \(\lambda\) + ts+3. 사례 2.2.b. 사건 E.b가 발생하고 정직한 검증자가 존재하지 않습니다. i′ \(\in\)HSV r,swho 또한 아무것도 전파하지 않고 중지해야 합니다. 이 사례의 분석은 사례 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) 검증자는 0에 대해 > 2/3 다수를 볼 수 없었습니다. 따라서 모든 검증자 i \(\in\)HSV r,s는 bi = 1로 설정하고 mr,s를 전파합니다. 나 = (ESIGi(1), ESIGi(vi), \(\sigma\)r,s 나 ) 시간 \(\alpha\)r,s에 나 + ts. 사례 2.2.a와 유사하게 최대 3단계가 더 추가됩니다(즉, 프로토콜 또 다른 Coin-Fixed-To-1 단계인 s+3 단계에 도달합니다. 모든 정직한 사용자는 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을 알 수 있습니다. Ir+1, 와 사례 2.1.a 및 2.1.b에서 T r+1 \(\leq\)T r + \(\lambda\) + ts, 및 사례 2.2.a 및 2.2.b에서는 T r+1 \(\leq\)T r + \(\lambda\) + ts+3입니다. 상한 s에 남아 있으므로 케이스 2의 경우 T r+1이 됩니다. Coin-Genuinely-Flipped 단계가 실제로 프로토콜에서 실행되는 경우가 많습니다. 즉, 일부 정직한 검증자는 실제로 동전을 던졌습니다. 특히, Coin-Genuinely-Flipped step 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 j ). 지금은 s′ < s라고 가정하겠습니다. 그렇지 않으면 이전에 따르면 정직한 검증자는 실제로 단계 s'에서 동전을 던지지 않기 때문입니다. 토론. SV r,s′−1의 정의에 따르면 \(\ell\)′의 크리덴셜의 hash 값도 다음 중 가장 작습니다. 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′ 나 + t'. 플레이어 i가 동전을 던져야 하는 경우(즉, 그는 2/3 이상의 과반수를 보지 못했습니다) 동일한 비트 b \(\in\){0, 1}), 그런 다음 그는 bi = lsb(H(\(\sigma\)r,s′−1)을 설정합니다. \(\ell\)′ )). 또 다른 정직한 사람이 있다면 검증자 i′ \(\in\)HSV r,s′ 비트 b \(\in\){0, 1}에 대해 > 2/3 다수를 확인한 다음 Property에 의해 (d) Lemma 5.5의 경우, HSV r,s'의 정직한 검증자는 잠시 동안 > 2/3 다수를 차지했을 것입니다. b'̸=b. lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) = b 확률 1/2, HSV r,s'의 모든 정직한 검증자는 도달 확률이 1/2인 b에 대한 합의입니다. 물론, 그러한 검증자 i'가 존재하지 않는다면, 모든 HSV r,s′의 정직한 검증자는 lsb(H(\(\sigma\)r,s′−1) 비트에 동의합니다. \(\ell\)′ )) 확률은 1입니다. \(\ell\)' \(\in\)HSV r,s'−1에 대한 확률을 결합하면 HSV r,s'의 정직한 검증자는 최소 ph 확률로 비트 b \(\in\){0, 1}에 대해 합의에 도달 2 = h2(1+h−h2) 2 . 더욱이, 이전과 같이 다수결 투표를 통해 HSV r,s'의 모든 정직한 검증자는 vi 세트를 갖습니다. H(Br \(\ell\)). 따라서 단계 s'에서 b에 대한 합의가 이루어지면 T r+1은 다음과 같습니다. \(\leq\)T r + \(\lambda\) + ts′+1 또는 \(\leq\)T r + \(\lambda\) + ts′+2 중 하나, 사례 2.1.a 및 2.1.b의 분석에 따라 b = 0인지 b = 1인지에 따라 달라집니다. 에서 특히, 더 이상 코인 정품 뒤집기 단계가 실행되지 않습니다. 이러한 단계는 여전히 자신이 검증자인지 확인하고 기다리지만 확인하지 못한 채 모두 중지됩니다. 무엇이든 전파합니다. 따라서 Step s 이전에 Coin-GenuinelyFlipped 단계가 실행되는 횟수는 랜덤변수 Lr에 따라 분포됩니다. 스텝을 놔두는 것' 프로토콜 구성에 따라 Lr에 따라 코인이 진짜로 뒤집힌 마지막 단계가 됩니다. 우리는 s' = 4 + 3Lr. 적이 T r+1을 지연시키려는 경우 언제 단계 s가 발생해야 합니까? 가능? 우리는 대적이 Lr의 실현을 미리 알고 있다고 가정할 수도 있습니다. 만약에 s> s′ 그렇다면 그것은 쓸모가 없습니다. 왜냐하면 정직한 검증자들은 이미 합의에 도달했기 때문입니다. 단계 S′. 확실히 이 경우 s는 b = 0인지 여부에 따라 s′ +1 또는 s′ +2가 될 것입니다. 또는 b = 1입니다. 그러나 이것은 실제로 Cases 2.1.a 및 2.1.b이고 결과 T r+1은 정확히 다음과 같습니다. 그 경우와 마찬가지다. 더 정확하게는, T r+1 \(\leq\)T r + \(\lambda\) + ts\(\leq\)T r + \(\lambda\) + ts′+2. s< s′ −3 즉, s가 마지막 두 번째 동전 진짜 뒤집기 단계 이전에 있는 경우 다음과 같이 됩니다. 사례 2.2.a 및 2.2.b 분석, T r+1 \(\leq\)T r + \(\lambda\) + ts+3 < T r + \(\lambda\) + ts′. 즉, 적대자는 실제로 Br에 대한 합의가 더 빠르게 이루어지도록 만들고 있습니다. s= s′ −2 또는 s′ −1인 경우 - 즉, Coin-Fixed-To-0 단계 또는 Coin-Fixed-To-1 단계입니다. 단계 s' 직전 - 네 가지 하위 사례를 분석하여 정직한 검증자가 단계 s'는 더 이상 동전을 뒤집을 수 없습니다. 왜냐하면 동전이 전파되지 않고 멈추었기 때문입니다. 또는 동일한 비트에 대해 > 2/3 다수를 보였습니다. b. 그러므로 우리는 T r+1 \(\leq\)T r + \(\lambda\) + ts+3 \(\leq\)T r + \(\lambda\) + ts′+2.요약하면, s가 무엇이든 관계없이 우리는 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\) + Λ, 우리가 보여주고 싶었던 것처럼. 최악의 경우는 s= s′ −1이고 사례 2.2.b가 발생하는 경우입니다. 바이너리 BA 프로토콜의 사례 1과 2를 결합하면 Lemma 5.3이 유지됩니다. ■ 5.9 씨앗Qr의 안전성과 정직한 리더의 확률 이제 Lemma 5.4를 증명해야 합니다. 라운드 r의 검증자는 PKr-k에서 가져오고 수량 Qr−1에 따라 선택됩니다. 룩백 매개변수 k를 도입한 이유 r -k 라운드에서 공격자가 새로운 악의적인 사용자를 추가할 수 있는지 확인하는 것입니다. PKr−k에 대해서는 무시할 수 있는 확률을 제외하고 Qr−1의 양을 예측할 수 없습니다. 참고 hash 함수는 무작위 oracle이며 Qr−1은 라운드 r에 대한 검증자를 선택할 때 입력 중 하나입니다. 따라서 아무리 악의적인 사용자가 PKr-k에 추가되더라도 공격자의 입장에서는 각각 그들 중 하나는 필요한 확률 p(또는 1단계의 경우 p1). 보다 정확하게는 다음과 같은 정리가 있습니다. 보조정리 5.6. k = O(log1/2 F)로 각 라운드 r에 대해 압도적인 확률로 적 라운드 r −k에서 Qr−1을 무작위 oracle에 쿼리하지 않았습니다. 증거. 인덕션으로 진행합니다. 각 라운드 \(\gamma\) < r에 대해 공격자가 쿼리하지 않았다고 가정합니다. Q\(\gamma\)−1에서 무작위 oracle 라운드 \(\gamma\) −k로 돌아갑니다.21 다음과 같은 정신적 게임을 생각해 보세요. 적군은 r −k 라운드에서 Qr−1을 예측하려고 합니다. 각 라운드의 1단계에서 \(\gamma\) = r −k, . . . , r −1, 무작위로 쿼리되지 않은 특정 Q\(\gamma\)−1이 주어지면 oracle, hash 값 H(SIGi(\(\gamma\), 1, Q\(\gamma\)−1))에 따라 플레이어 i \(\in\)PK\(\gamma\)−k를 정렬하여 점점 더 PK\(\gamma\)−k에 대한 무작위 순열을 얻습니다. 정의에 따르면 리더 \(\ell\) \(\gamma\)는 순열의 첫 번째 사용자이고 확률 h가 정직합니다. 또한, PK\(\gamma\)−k가 큰 경우 임의의 정수 x \(\geq\)1에 대해 순열의 첫 번째 x 사용자가 모두 악의적이지만 (x + 1)st가 정직한 것은 (1 −h)xh입니다. \(\ell\) \(\gamma\)가 정직하다면 Q\(\gamma\) = H(SIG\(\ell\) \(\gamma\)(Q\(\gamma\)−1), \(\gamma\))입니다. 상대방은 서명을 위조할 수 없기 때문에 \(\ell\) \(\gamma\)의 Q\(\gamma\)는 적의 관점에서 무작위로 균일하게 분포되며, 기하급수적으로 작은 확률로 22는 r -k 라운드에서 H에 쿼리되지 않았습니다. 이후 각각 Q\(\gamma\)+1, Q\(\gamma\)+2, . . . , Qr−1은 각각 Q\(\gamma\), Q\(\gamma\)+1, ...을 사용한 H의 출력입니다. . . , Qr−2를 입력 중 하나로, 그들은 모두 적에게 무작위로 보이며 적수는 Qr-1을 H에 쿼리할 수 없었을 것입니다. 라운드 r - k. 따라서, 상대방이 라운드에서 좋은 확률로 Qr−1을 예측할 수 있는 유일한 경우입니다. r−k는 모든 리더 \(\ell\)r−k, . . . , \(\ell\)r−1은 악성입니다. 다시 라운드 \(\gamma\) \(\in\){r−k 를 고려해보세요. . . , r−1} 그리고 해당 hash 값에 의해 유도된 PK\(\gamma\)−k에 대한 무작위 순열. 어떤 사람들에게는 x \(\geq\)2, 순열의 첫 번째 x −1 사용자는 모두 악의적이고 x번째 사용자는 정직합니다. 적대자는 Q\(\gamma\)에 대해 x개의 가능한 선택을 갖습니다. H(SIGi(Q\(\gamma\)−1, \(\gamma\))) 형식 중 하나입니다. 여기서 i는 다음 중 하나입니다. 21 k는 작은 정수이므로 일반성을 잃지 않고 프로토콜의 처음 k 라운드가 실행된다고 가정할 수 있습니다. 안전한 환경에서 귀납적 가설은 해당 라운드 동안 유지됩니다. 22즉, H의 출력 길이는 지수적입니다. 이 확률은 F보다 훨씬 작습니다.플레이어 i를 실제로 라운드 \(\gamma\)의 리더로 만들어 최초의 x−1 악의적 사용자; 또는 H(Q\(\gamma\)−1, \(\gamma\)) B\(\gamma\) = B\(\gamma\) 강제 ? . 그렇지 않으면 라운드 \(\gamma\)의 리더가 순열의 첫 번째 정직한 사용자가 됩니다. 그리고 Qr−1은 적에게 예측할 수 없게 됩니다. 위 Q\(\gamma\)의 x 옵션 중 적이 추구해야 하는 것은 무엇입니까? 적을 돕기 위해 이 질문에 대답하세요. 멘탈 게임에서 우리는 실제로 그를 실제보다 더 강력하게 만듭니다. 는 다음과 같습니다. 우선, 실제로 공격자는 정직한 사용자의 hash을 계산할 수 없습니다. 따라서 서명은 각 Q\(\gamma\)에 대해 처음에 악의적인 사용자의 수 x(Q\(\gamma\))를 결정할 수 없습니다. Q\(\gamma\)에 의해 유도된 라운드 \(\gamma\) + 1의 무작위 순열. 정신 게임에서 우리는 그에게 숫자 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 라운드의 마르코프 체인을 따릅니다. 상태 공간이 {0} \(\cup\){x : x \(\geq\)2}인 상태에서 r −1을 반올림합니다. 상태 0은 현재 라운드 \(\gamma\)에서 무작위 순열의 첫 번째 사용자는 정직하므로 공격자는 실패합니다. Qr-1을 예측하는 게임; 그리고 각 상태 x \(\geq\)2는 첫 번째 x −1 사용자가 순열은 악의적이고 x번째는 정직하므로 공격자는 Q\(\gamma\)에 대해 x개의 옵션을 갖습니다. 는 전이 확률 P(x, y)는 다음과 같습니다. • y \(\geq\)2인 경우 P(0, 0) = 1이고 P(0, y) = 0입니다. 즉, 대적은 첫 번째 게임에서 실패합니다. 순열의 사용자는 정직해집니다. • P(x, 0) = hx(x \(\geq\)2인 경우). 즉, 확률 hx를 사용하면 모든 x개의 무작위 순열은 다음과 같습니다. 첫 번째 사용자는 정직하므로 대적자는 다음 라운드에서 게임에 실패합니다. • 임의의 x \(\geq\)2 및 y \(\geq\)2에 대해 P(x, y)는 x 임의 순열 중에서 다음과 같은 확률입니다. 초기에 악의적인 사용자의 가장 긴 시퀀스인 Q\(\gamma\)의 x 옵션에 의해 유도됩니다. 그 중 일부는 y −1이므로, 적대자는 다음 라운드에서 Q\(\gamma\)+1에 대해 y개의 옵션을 갖습니다. 즉, 피(x, y) = y−1 X 나는=0 (1 -h)ih !x - y−2 X 나는=0 (1 -h)ih !x = (1 −(1 −h)y)x −(1 −(1 −h)y−1)x. 상태 0은 전이 행렬 P의 고유한 흡수 상태이고 다른 모든 상태는 x는 0이 될 양의 확률을 갖습니다. 우리는 숫자 k의 상한을 정하는 데 관심이 있습니다. Markov Chain이 압도적인 확률로 0으로 수렴하는 데 필요한 라운드: 즉, 아니요 체인이 어떤 상태에서 시작되는지가 중요하며, 적이 게임에서 패배할 확률이 압도적입니다. r −k 라운드에서 Qr−1을 예측하는 데 실패합니다. 두 라운드 후에 전이 행렬 P(2) \(\triangleq\)P \(\cdot\) P를 고려하십시오. P(2)(0, 0) = 1임을 쉽게 알 수 있습니다. 그리고 임의의 x \(\geq\)2에 대해 P(2)(0, x) = 0입니다. 임의의 x \(\geq\)2 및 y \(\geq\)2에 대해 P(0, y) = 0이므로 다음과 같습니다. 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).̅h \(\triangleq\)1 −h라고 하면 다음과 같습니다. P(x, y) = (1 −̅hy)x −(1 −̅hy−1)x 그리고 P(2)(x,y) = X z\(\geq\)2 [(1 −̅hz)x −(1 −̅hz−1)x][(1 −̅hy)z −(1 −̅hy−1)z]. 아래에서는 P(2)(x,y)의 극한을 계산합니다. P(x,y) h가 1이 되면, 즉 ̅h는 0이 됩니다. P(x, y)에서 ̅h의 차수는 ̅hy−1이고 계수 x가 있습니다. 따라서, 임 h \(\to\) 1 P(2)(x,y) 피(x, y) = 임 ̅h \(\to\) 0 P(2)(x,y) 피(x, y) = 임 ̅h \(\to\) 0 P(2)(x,y) x̅hy−1 + O(̅hy) = 임 ̅h \(\to\) 0 피 z\(\geq\)2[x̅hz−1 + O(̅hz)][z̅hy−1 + O(̅hy)] x̅hy−1 + O(̅hy) = 임 ̅h \(\to\) 0 2x̅ + O(́hy+1) x̅hy−1 + O(̅hy) = 임 ̅h \(\to\) 0 2xy x̅hy−1 = lim ̅h \(\to\) 0 2́h = 0. h가 1,23에 충분히 가까울 때 우리는 P(2)(x,y) 피(x, y) \(\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) + 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 . P(x, y) \(\leq\)1이므로 1−log2 F 라운드 후에 임의의 상태 y \(\geq\)2로의 전환 확률은 무시할 수 있습니다. 임의의 상태 x \(\geq\)2로 시작합니다. 그러한 상태가 많이 있지만, 다음을 쉽게 알 수 있습니다. 임 y→+무한대 피(x, y) P(x, 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 - 시간. 따라서 전이 행렬 P의 각 행 x는 비율에 따라 기하학적 수열로 감소합니다. 1 1−h > 2 y가 충분히 크면 P(k)에도 동일하게 적용됩니다. 따라서 k가 충분히 크지만 여전히 log1/2 F, P 순서로 y\(\geq\)2 P (k)(x, y) < F(x \(\geq\)2인 경우). 즉, 압도적인 확률로 적군은 게임에서 패하고 r −k 라운드에서 Qr−1을 예측하지 못합니다. h \(\in\)(2/3, 1]의 경우, 더 많은 복잡한 분석을 통해 1/2보다 약간 큰 상수 C가 존재한다는 것을 알 수 있습니다. k = O(logC \(\cdot\) F)를 취합니다. 따라서 Lemma 5.6이 성립합니다. ■ 보조정리 5.4. (다시 설명) r 이전의 각 라운드에 대해 속성 1–3이 주어지면 Lr에 대한 ph = h2(1 + h −h2), 그리고 리더 \(\ell\)r은 적어도 ph 확률로 정직합니다. 23예를 들어, 특정 매개변수 선택에 의해 제안된 대로 h = 80%입니다.
증거. Lemma 5.6에 따르면, 공격자는 다음을 제외하고 r −k 라운드에서 Qr−1을 다시 예측할 수 없습니다. 무시할 수 있는 확률. 이는 정직한 리더가 나올 확률이 h라는 것을 의미하지 않습니다. 각 라운드. 실제로 Qr−1이 주어지면 초기에 얼마나 많은 악의적인 사용자가 있는지에 따라 달라집니다. PKr-k의 무작위 순열에서, 공격자는 Qr에 대해 둘 이상의 옵션을 가질 수 있습니다. 따라서 라운드 r + 1에서 악의적인 리더의 확률을 높일 수 있습니다. 다시 우리는 그에게 분석을 단순화하기 위해 Lemma 5.6에서와 같이 몇 가지 비현실적인 이점이 있습니다. 그러나 라운드 r -k에서 적대자가 H에게 쿼리하지 않은 각 Qr-1에 대해 다음과 같습니다. 임의의 x \(\geq\)1, 확률 (1 −h)x−1h로 첫 번째 정직한 사용자가 결과 x 위치에 나타납니다. PKr−k의 무작위 순열. x = 1일 때 r + 1 라운드에서 정직한 리더가 나올 확률은 다음과 같습니다. 과연 ㅎ; x = 2일 때, 적대자는 Qr에 대해 두 가지 옵션을 가지며 결과 확률은 다음과 같습니다. h2. 이 두 가지 경우를 고려해야만 라운드에서 정직한 리더가 나올 가능성이 있습니다. r + 1은 원하는 대로 적어도 h \(\cdot\) h + (1 −h)h \(\cdot\) h2 = h2(1 + h −h2)입니다. 위의 확률은 라운드 r −k에서 프로토콜의 무작위성만 고려한다는 점에 유의하세요. r을 반올림합니다. 0라운드부터 r라운드까지 모든 무작위성을 고려하면 Qr−1은 다음과 같습니다. 적에게 예측하기가 더욱 어렵고 라운드 r + 1에서 정직한 리더가 나올 확률은 다음과 같습니다. 최소 h2(1 + h −h2). r + 1을 r로 대체하고 모든 것을 한 라운드 뒤로 이동시킵니다. 리더 \(\ell\)r 원하는 대로 적어도 h2(1 + h −h2)의 확률로 정직합니다. 마찬가지로, 각 코인 진짜 뒤집기 단계에서 해당 단계의 "리더", 즉 검증자 SV r에서 크리덴셜의 hash 값이 가장 작은 확률은 적어도 h2(1 + h-h2). 따라서 Lr 및 Lemma 5.4에 대한 ph = h2(1 + h −h2)가 유지됩니다. ■
Algorand ′
1 في هذا القسم، قمنا بإنشاء نسخة من Algorand ′ تعمل وفقًا للافتراض التالي. افتراض الأغلبية الصادقة من المستخدمين: أكثر من 2/3 من المستخدمين في كل PKr صادقون. في القسم 8، نوضح كيفية استبدال الافتراض أعلاه بالأغلبية الصادقة المطلوبة افتراض المال. 5.1 تدوينات ومعلمات إضافية التدوينات • m \(\in\)Z+: الحد الأقصى لعدد الخطوات في بروتوكول BA الثنائي، وهو مضاعف 3. • Lr \(\geq\)m/3: متغير عشوائي يمثل عدد تجارب برنولي اللازمة لرؤية الرقم 1، عندما تكون كل تجربة 1 مع احتمال ph 2 وهناك تجارب m/3 على الأكثر. إذا فشلت كل التجارب إذن ل \(\triangleq\)م/3. سيتم استخدام Lr لتحديد الوقت اللازم لإنشاء الكتلة Br. • ث = 2ن 3+1: عدد التوقيعات المطلوبة في شروط إنهاء البروتوكول. • CERT r: شهادة Br. إنها مجموعة من التوقيعات لـ H(Br) من المدققين المناسبين في جولة ص. المعلمات • العلاقات بين مختلف المعالم. — لكل خطوة s > 1 من الجولة r، يتم اختيار n بحيث، مع احتمالية ساحقة، |HSV ص، ق| > 2|MSV r,s| و |HSV ص، ق| + 4|MSV r,s| <2ن. كلما اقتربت قيمة h من 1، كلما كانت قيمة n أصغر. على وجه الخصوص، نستخدم (variants of) Chernofbounds لضمان استمرار الظروف المرغوبة باحتمالية ساحقة. — يتم اختيار m بحيث يكون Lr < m/3 باحتمالية ساحقة. • أمثلة على اختيارات المعلمات الهامة. - و = 10−12. — ن \(\approx\)1500، ك = 40 و م = 180.5.2 تنفيذ المفاتيح المؤقتة في Algorand ′ 1 كما ذكرنا سابقًا، نرغب في أن يقوم المدقق بتوقيع رسالته رقميًا السيد، s أنا من الخطوة s في الجولة r، نسبةً إلى المفتاح العمومي سريع الزوال pkr,s i، باستخدام مفتاح سري سريع الزوال skr,s أنا ذلك يدمر على الفور بعد الاستخدام. وبالتالي نحن بحاجة إلى طريقة فعالة للتأكد من أن كل مستخدم يستطيع ذلك التحقق من أن pkr,s أنا هو بالفعل المفتاح الذي يجب استخدامه للتحقق من توقيع السيد أنا. نحن نفعل ذلك من خلال (للأفضل من معرفتنا) الاستخدام الجديد لمخططات التوقيع القائمة على الهوية. على مستوى عالٍ، في مثل هذا المخطط، تقوم السلطة المركزية "أ" بإنشاء مفتاح رئيسي عام، PMK، والمفتاح الرئيسي السري المقابل، SMK. بالنظر إلى الهوية، U، للاعب U، A يحسب، عبر SMK، مفتاح التوقيع السري skU نسبة إلى المفتاح العام U، ويمنح skU بشكل خاص U. (في الواقع، في نظام التوقيع الرقمي القائم على الهوية، المفتاح العام للمستخدم U هو U نفسه!) بهذه الطريقة، إذا قام A بتدمير SMK بعد حساب المفاتيح السرية للمستخدمين الذين يريد تمكينهم ينتج توقيعات رقمية، ولا يحتفظ بأي مفتاح سري محسوب، فإن U هو الوحيد الذي يمكنه التوقيع رقميًا على الرسائل المتعلقة بالمفتاح العام U. وبالتالي، فإن أي شخص يعرف "اسم U"، يعرف تلقائيًا المفتاح العام لـ U، وبالتالي يمكنه التحقق من توقيعات U (ربما باستخدام أيضًا المفتاح الرئيسي العام PMK). في تطبيقنا، السلطة A هي المستخدم i، ومجموعة جميع المستخدمين المحتملين U تتزامن معهم زوج الخطوة المستديرة (r, s) في —على سبيل المثال— S = {i}\(\times\){r′, . . . ، ص' +106}\(\times\){1، . . . ، m+3}، حيث r' معطى جولة، وm + 3 الحد العلوي لعدد الخطوات التي قد تحدث خلال الجولة. هذا الطريق، pkr،s أنا \(\triangleq\)(i, r, s)، بحيث يرى الجميع توقيع i SIGr,s بي كي آر، ق أنا (السيد، ق ط) يمكن، مع الساحقة الاحتمالية، تحقق منها على الفور في أول مليون طلقة r بعد r′. بمعنى آخر، أقوم أولاً بإنشاء PMK وSMK. ثم يعلن أن PMK هو سيده المفتاح العام لأي جولة r \(\in\)[r′, r′ + 106]، ويستخدم SMK لإنتاج السر وتخزينه بشكل خاص مفتاح سكر، ق أنا لكل ثلاثية (i، r، s) \(\in\)S. بعد ذلك، قام بتدمير SMK. إذا قرر أنه ليس كذلك جزءًا من SV r,s، فيمكنني ترك skr,s أنا وحده (حيث أن البروتوكول لا يتطلب أن يقوم بالتصديق أي رسالة في الخطوة s من الجولة r). بخلاف ذلك، أستخدم skr,s لأول مرة أنا للتوقيع رقميا على رسالته السيد، ق أنا و ثم يدمر skr,s أنا. لاحظ أنه يمكنني نشر مفتاحه الرئيسي العام الأول عندما يدخل النظام لأول مرة. هذا هو، نفس الدفعة \(\wp\) التي تجلب i إلى النظام (عند جولة r' أو عند جولة قريبة من r′)، قد تكون أيضًا تحديد، بناءً على طلبي، أن المفتاح الرئيسي العام الخاص بـ i لأي جولة r \(\in\)[r′, r′ + 106] هو PMK - على سبيل المثال، بواسطة بما في ذلك زوج من النموذج (PMK، [r′، r′ + 106]). لاحظ أيضًا أنه نظرًا لأن m + 3 هو الحد الأقصى لعدد الخطوات في الجولة، بافتراض أن الجولة يستغرق دقيقة واحدة، ومخبأة المفاتيح سريعة الزوال التي تم إنتاجها ستستمر لمدة عامين تقريبًا. في نفس الوقت بمرور الوقت، لن يستغرق إنتاج هذه المفاتيح السرية سريعة الزوال وقتًا طويلاً. باستخدام منحنى الاهليلجي على أساس نظام يحتوي على 32B مفتاح، يتم حساب كل مفتاح سري في بضع ميكروثانية. وبالتالي، إذا كان م + 3 = 180، ومن ثم يمكن حساب جميع المفاتيح السرية البالغ عددها 180 مليونًا في أقل من ساعة واحدة. عندما تقترب الجولة الحالية من r′ + 106، للتعامل مع المليون جولة التالية، أي ينشئ زوجًا جديدًا (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 لديه على الأكثر م + 3 خطوات. الخطوة 1. في هذه الخطوة، يقوم كل قائد محتمل بحساب ونشر كتلة مرشحه Br أنا، مع أوراق اعتماده الخاصة، \(\sigma\)r،1 أنا. تذكر أن بيانات الاعتماد هذه تحدد صراحةً i. هذا هو الحال، لأن \(\sigma\)r,1 أنا \(\triangleq\)SIGi(ص، 1، Qr−1). وينشر المدقق المحتمل أيضًا، كجزء من رسالته، توقيعه الرقمي الصحيح لـ H(Br أنا). لا يتعامل مع الدفع أو بيانات الاعتماد، فإن توقيع i هذا يتعلق بجمهوره سريع الزوال مفتاح بي كيه،1 i : أي أنه ينشر sigpkr,1 ط (ح(ر ط)). نظرًا لاتفاقياتنا، بدلاً من نشر Br أنا و سيغبكر،1 ط (ح(ر أنا )) ، كان يمكن أن يكون نشر SIGpkr،1 ط (ح(ر ط)). ومع ذلك، في تحليلنا نحن بحاجة إلى الوصول بوضوح إلى سيجبكر،1 ط (ح(ر ط)). الخطوات 2. في هذه الخطوة، يقوم كل مدقق بتعيين \(\ell\)r سأكون القائد المحتمل الذي يتمتع بأوراق اعتماده hashed هو الأصغر، وBr أنا أن أكون الكتلة التي اقترحها \(\ell\)r أنا. منذ ذلك الحين، من أجل الكفاءة، نحن أرغب في الاتفاق على H(Br)، بدلاً من الاتفاق مباشرة على Br، أقوم بنشر الرسالة التي قد تكون لديه تم نشره في الخطوة الأولى من BA⋆ بالقيمة الأولية v ′ ط = ح(ر أنا). أي أنه ينشر 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 بخلاف ذلك. الخطوة ق = 5، . . . ، m + 2. مثل هذه الخطوة، إذا تم الوصول إليها، تتوافق مع الخطوة s −1 من BA⋆، وبالتالي الخطوة −3 من BBA⋆. وبما أن نموذج الانتشار لدينا غير متزامن بما فيه الكفاية، فيجب علينا أن نأخذ في الاعتبار الاحتمال أنه، في منتصف هذه الخطوات، يتم الوصول إلى المدقق من خلال معلومات تثبت أنه لقد تم بالفعل اختيار تلك الكتلة Br. في هذه الحالة، أوقف تنفيذه لجولة r Algorand ′، ويبدأ في تنفيذ تعليمات الجولة (r + 1). {ص'، . . . ، ص' + 106} \(\times\) {1، . . . ، م + 3}. ثم يقوم بطلب هذه المفاتيح العامة بطريقة قانونية، ويخزنها بشكل عام أدخل المفتاح في الورقة j لـ Merkle tree، ويحسب القيمة الجذرية Ri، التي ينشرها. عندما يريد التوقيع رسالة تتعلق بالمفتاح pkr,s أنا ، لا أقوم بتوفير التوقيع الفعلي فحسب، بل يوفر أيضًا مسار المصادقة لـ pkr,s أنا نسبة إلى ري. لاحظ أن مسار المصادقة هذا يثبت أيضًا أن pkr,s أنا يتم تخزينه في ورقة j. بقية يمكن ملء التفاصيل بسهولة.وعليه فإن تعليمات المدقق i \(\in\)SV r,s بالإضافة إلى التعليمات المقابلة لها إلى الخطوة −3 من BBA⋆، بما في ذلك التحقق مما إذا كان تنفيذ BBA⋆ قد توقف في فترة سابقة الخطوة س'. نظرًا لأن BBA⋆ لا يمكن إيقافه إلا في خطوة عملة ثابتة إلى 0 أو في خطوة عملة ثابتة إلى 1، فإن تعليمات تميز ما إذا كان A (حالة النهاية 0): s′ −2 ≡0 mod 3، أو B (حالة النهاية 1): s′ −2 ≡1 mod 3. في الواقع، في الحالة A، تكون الكتلة Br غير فارغة، وبالتالي تكون هناك حاجة إلى تعليمات إضافية تأكد من أنني أقوم بإعادة بناء Br بشكل صحيح، بالإضافة إلى شهادته المناسبة CERT r. في الحالة ب، الكتلة Br فارغة، وبالتالي يُطلب مني ضبط Br = Br \(\varepsilon\) = (ص، \(\emptyset\)، H(Qr−1، r)، H(Br−1))، ولحساب CERT ص. إذا، أثناء تنفيذه للخطوات s، لم أرى أي دليل على أن الكتلة Br قد تم بالفعل تم إنشاؤه، ثم يرسل نفس الرسالة التي كان سيرسلها في الخطوة s −3 من BBA⋆. الخطوة m + 3. إذا كان i \(\in\)SV r,m+3، خلال الخطوة m + 3، يرى أن الكتلة Br قد تم إنشاؤها بالفعل في خطوة سابقة s′، ثم يتابع تمامًا كما هو موضح أعلاه. بخلاف ذلك، فبدلاً من إرسال نفس الرسالة التي كان سيرسلها في الخطوة م من BBA⋆، أنا كذلك أوعز إليه، بناءً على المعلومات التي بحوزته، بحساب Br وما يقابله شهادة CERT ص. تذكر، في الواقع، أننا حددنا العدد الإجمالي لخطوات الجولة بـ m + 3. 5.4 البروتوكول الفعلي تذكر أنه في كل خطوة من جولة r، يستخدم المدقق i \(\in\)SV r,s زوج مفاتيح السرية العامة طويل المدى الخاص به لإنتاج أوراق اعتماده، \(\sigma\)r،s أنا \(\triangleq\)SIGi(r, s, Qr−1)، وكذلك SIGi ريال قطري−1 في الحالة s = 1. التحقق i يستخدم مفتاحه السري سريع الزوال skr,s أنا للتوقيع على رسالته (ص، ق) السيد، ق أنا. للتبسيط، عندما يكون r وs واضح أننا نكتب esigi(x) بدلاً من sigpkr,s i (x) للإشارة إلى التوقيع المؤقت المناسب لقيمة ما 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 \(\in\)SV r,1 أو لا. • إذا i /\(\in\)SV r,1، فسوف أقوم بإيقاف تنفيذ الخطوة 1 على الفور. • إذا كان i \(\in\)SV r,1، أي إذا كنت قائدًا محتملاً، فإنه يقوم بجمع مدفوعات الجولة r التي لها تم نشره له حتى الآن ويحسب الحد الأقصى لمجموعة الدفع PAY r أنا منهم. التالي هو يحسب له "كتلة المرشح" Br أنا = (ص، دفع ص أنا، SIGi(Qr−1)، H(Br−1)). وأخيرا، وقال انه يحسب الرسالة السيد،1 أنا = (ر أنا، esigi(H(Br أنا )))، \(\sigma\)ص،1 i )، يدمر مفتاحه السري سريع الزوال skr،1 أنا، وبعد ذلك ينشر السيد،1 أنا.ملاحظة. من الناحية العملية، لتقصير التنفيذ العالمي للخطوة 1، من المهم أن (r, 1)- يتم نشر الرسائل بشكل انتقائي. وهذا يعني أنه بالنسبة لكل مستخدم i في النظام، للمرة الأولى (r, 1) - الرسالة التي يتلقاها ويتحقق منها بنجاح، أقوم بنشرها كالمعتاد. لجميع أخرى (r, 1) - الرسائل التي يتلقاها اللاعب ويتحقق منها بنجاح، ويقوم بنشرها فقط إذا كان hash قيمة بيانات الاعتماد التي تحتوي عليها هي الأصغر بين قيم hash لبيانات الاعتماد الموجودة في جميع الرسائل (ص، 1) التي تلقاها وتم التحقق منها بنجاح حتى الآن. علاوة على ذلك، كما اقترح بواسطة جورجيوس فلاشوس، من المفيد أن يقوم كل قائد محتمل بنشر أوراق اعتماده \(\sigma\)r,1 أنا بشكل منفصل: تنتقل هذه الرسائل الصغيرة بشكل أسرع من الكتل، مما يضمن نشر السيد 1 في الوقت المناسب ي حيث تحتوي بيانات الاعتماد المضمنة على قيم hash صغيرة، بينما تحتوي بيانات الاعتماد المضمنة على قيم hash كبيرة تختفي بسرعة. الخطوة 2: الخطوة الأولى لبروتوكول الإجماع المتدرج GC تعليمات لكل مستخدم i \(\in\)PKr−k: يبدأ المستخدم i الخطوة 2 الخاصة به من الجولة r بمجرد أن يعرف Br−1. • المستخدم i يحسب Qr−1 من المكون الثالث لـ Br−1 ويتحقق مما إذا كان i \(\in\)SV r,2 أو لا. • إذا i /\(\in\)SV r,2 فسوف أقوم بإيقاف تنفيذ الخطوة 2 على الفور. • إذا كان i \(\in\)SV r,2، فبعد الانتظار لفترة زمنية t2 \(\triangleq\)lect + Λ، i يتصرف كما يلي. 1. يجد المستخدم \(\ell\) بحيث H(\(\sigma\)r,1 \(\ell\)) \(\geq\)H(\(\sigma\)r,1 j ) لجميع أوراق الاعتماد \(\sigma\)r,1 ي التي هي جزء من تم التحقق بنجاح (r, 1) من الرسائل التي تلقاها حتى الآن 2. إذا كان قد تلقى من \(\ell\)رسالة صالحة السيد,1 \(\ell\) = (ر \(\ell\)، esig\(\ell\)(H(Br \(\ell\))))، \(\sigma\)ص،1 \(\ell\))،ب ثم أقوم بتعيين v' أنا \(\triangleq\)H(ر \(\ell\)); وإلا فإنني أقوم بتعيين v' أنا \(\triangleq\) \(\bot\). 3. أنا أحسب الرسالة السيد،2 أنا \(\triangleq\)(ESIGi(v') أنا)، \(\sigma\)ص،2 i)،c يدمر مفتاحه السري سريع الزوال سكر،2 أنا، ثم ينشر السيد،2 أنا. بشكل أساسي، يقرر المستخدم i بشكل خاص أن قائد الجولة r هو المستخدم \(\ell\). مرة أخرى، تم التحقق من توقيعات اللاعب \(\ell\) و__PH_0002__es جميعها بنجاح، ويتم الدفع \(\ell\)في ر \(\ell\)هي مجموعة دفع صالحة لـ round r - على الرغم من أنني لا أتحقق مما إذا كان PAY r \(\ell\)هو الحد الأقصى لـ \(\ell\)أو لا. ج الرسالة السيد،2 أنا الإشارات التي يعتبرها اللاعب v′ i ليكون hash للكتلة التالية، أو يعتبر التالي كتلة لتكون فارغة. 17أي أن جميع التوقيعات صحيحة وكل من الكتلة و hash صالحة - على الرغم من أنني لم أتحقق منها ما إذا كانت مجموعة الدفعات المضمنة هي الحد الأقصى لمقترحها أم لا.
الخطوة 3: الخطوة الثانية من GC تعليمات لكل مستخدم i \(\in\)PKr−k: يبدأ المستخدم i الخطوة 3 الخاصة به من الجولة r بمجرد أن يعرف Br−1. • المستخدم i يحسب Qr−1 من المكون الثالث لـ Br−1 ويتحقق مما إذا كان i \(\in\)SV r,3 أو لا. • إذا i /\(\in\)SV r,3، فسوف أقوم بإيقاف تنفيذ الخطوة 3 على الفور. • إذا i \(\in\)SV r,3، فبعد الانتظار لفترة من الوقت t3 \(\triangleq\)t2 + 2lect = 3lect + Λ، i أتصرف كما يلي. 1. إذا كانت هناك قيمة v′̸= \(\bot\) بحيث يكون من بين جميع الرسائل الصالحة mr,2 ي لقد تلقى، أكثر من 2/3 منها من الشكل (ESIGj(v′), \(\sigma\)r,2 ي)، دون أي تناقض، أ ثم يقوم بحساب الرسالة السيد،3 أنا \(\triangleq\)(ESIGi(v′),\(\sigma\)r,3 أنا). وإلا فإنه يحسب السيد،3 أنا \(\triangleq\) (ESIGi(\(\bot\))، \(\sigma\)r،3 أنا). 2. أنا أدمر مفتاحه السري سريع الزوال skr،3 أنا، ومن ثم نشر السيد،3 أنا. أي أنه لم يتلق رسالتين صالحتين تحتويان على ESIGj(v') وESIGj(v'') مختلفين على التوالي، من اللاعب j. هنا ومن هنا فصاعدًا، باستثناء شروط النهاية التي سيتم تحديدها لاحقًا، عندما يكون اللاعب صادقًا يريد رسائل ذات شكل معين، فالرسائل المتعارضة مع بعضها البعض لا يتم احتسابها أو اعتبارها صالحة.الخطوة 4: إخراج GC والخطوة الأولى من BBA⋆ تعليمات لكل مستخدم i \(\in\)PKr−k: يبدأ المستخدم i الخطوة 4 الخاصة به من الجولة r بمجرد أن يعرف Br−1. • المستخدم i يحسب Qr−1 من المكون الثالث لـ Br−1 ويتحقق مما إذا كان i \(\in\)SV r,4 أو لا. • إذا i /\(\in\)SV r,4، فسوف يتوقف عن تنفيذ الخطوة 4 على الفور. • إذا i \(\in\)SV r,4، فبعد الانتظار لفترة من الوقت t4 \(\triangleq\)t3 + 2lect = 5lect + Λ، i أتصرف كما يلي. 1. يقوم بحساب vi وgi، مخرجات GC، على النحو التالي. (أ) إذا كانت هناك قيمة v′̸= \(\bot\) بحيث يكون من بين جميع الرسائل الصالحة mr,3 ي لديه تم استلامها، أكثر من 2/3 منها من الشكل (ESIGj(v′), \(\sigma\)r,3 ي)، ثم يضبط السادس \(\triangleq\)v′ وجي \(\triangleq\)2. (ب) بخلاف ذلك، إذا كانت هناك قيمة v'̸= \(\bot\) بحيث يكون من بين جميع الرسائل الصالحة السيد،3 ي لقد حصل على أكثر من ثلثها من الشكل (ESIGj(v′), \(\sigma\)r,3 ي)، ثم يقوم بتعيين vi \(\triangleq\)v ′ و gi \(\triangleq\)1.a (ج) بخلاف ذلك، يقوم بتعيين vi \(\triangleq\)H(Br ƒ) وجي \(\triangleq\)0. 2. يقوم بحساب ثنائي، مدخلات BBA⋆، على النحو التالي: ثنائية \(\triangleq\)0 إذا كانت gi = 2، وbi \(\triangleq\)1 بخلاف ذلك. 3. يقوم بحساب الرسالة السيد،4 أنا \(\triangleq\)(ESIGi(bi)، ESIGi(vi)، \(\sigma\)r،4 ط)، يدمر له سريع الزوال المفتاح السري Skr،4 أنا، ومن ثم نشر السيد،4 أنا. أيمكن إثبات أن حرف v في الحالة (ب)، إن وجد، يجب أن يكون فريدًا.
الخطوة s، 5 \(\geq\)s \(\geq\)m + 2، s −2 ≡0 mod 3: خطوة ثابتة بالعملة إلى 0 من BBA⋆ تعليمات لكل مستخدم i \(\in\)PKr−k: المستخدم i يبدأ خطواته الخاصة من الجولة r بمجرد أن يعرف Br−1. • يحسب المستخدم i Qr−1 من المكون الثالث لـ Br−1 ويتحقق مما إذا كان i \(\in\)SV r,s. • إذا i /\(\in\)SV r,s، فسوف أقوم بإيقاف تنفيذ الخطوة s على الفور. • إذا كان i \(\in\)SV r,s فإنه يتصرف على النحو التالي. – ينتظر حتى مرور فترة زمنية t \(\triangleq\)ts−1 + 2lect = (2s −3)lect + Λ. – شرط النهاية 0: إذا كان هناك، أثناء هذا الانتظار وفي أي وقت، أ السلسلة v̸= \(\bot\) والخطوة s′ هكذا (أ) 5 s′s′ \(\geq\)s, s′ −2 ≡0 mod 3 — أي أن الخطوة s′ هي خطوة ثابتة بالعملة إلى 0، (ب) لقد تلقيت ما لا يقل عن tH = 2 ن 3 + 1 رسائل صالحة السيد، s′−1 ي = (ESIGj(0)، ESIGj(v)، \(\sigma\)r،s'−1 ي ) ، أ و (ج) لقد تلقيت رسالة صالحة يا سيد 1 ي = (ر ي، esigj(H(Br ي )))، \(\sigma\)ص،1 ي ) مع v = H(Br ي)، ثم أوقف تنفيذه للخطوة s (وفي الواقع للجولة r) على الفور بدون نشر أي شيء؛ مجموعات ر = ر ي ; ويقوم بتعيين CERT r الخاص به ليكون مجموعة الرسائل السيد، ق′−1 ي من الخطوة الفرعية (ب).ب – شرط الانتهاء 1: إذا كان هناك، أثناء هذا الانتظار وفي أي وقت، أ الخطوة ′ هكذا (أ') 6 \(\geq\)s′ \(\geq\)s, s′ −2 ≡1 mod 3 — أي أن الخطوة s′ هي خطوة ثابتة بالعملة إلى 1، و (ب') لقد تلقيت على الأقل رسائل صالحة mr,s'−1 ي = (ESIGj(1)، ESIGj(vj)، \(\sigma\)r,s'−1 ي ) ،ج ثم أوقف تنفيذه للخطوة s (وفي الواقع للجولة r) على الفور بدون نشر أي شيء؛ مجموعات ر = ر ƒ ; ويقوم بتعيين CERT r الخاص به ليكون مجموعة الرسائل السيد، ق′−1 ي من الخطوة الفرعية (ب'). – بخلاف ذلك، في نهاية الانتظار، يقوم المستخدم i بما يلي. لقد حدد السادس ليكون أغلبية أصوات VJ's في المكونات الثانية من جميع الأصوات الصحيحة السيد، ق−1 ي لقد حصل عليه. انه يحسب ثنائية على النحو التالي. إذا كان أكثر من 2/3 من جميع السيد، ق -1 صالح ي لقد تلقاها هي من النموذج (ESIGj(0)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يقوم بتعيين ثنائية \(\triangleq\)0. بخلاف ذلك، إذا كان أكثر من 2/3 من جميع mr,s−1 الصالحة ي لقد تلقاها هي من النموذج (ESIGj(1)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يقوم بتعيين ثنائية \(\triangleq\)1. وإلا، فإنه يحدد ثنائية \(\triangleq\)0. انه يحسب الرسالة السيد، ق أنا \(\triangleq\)(ESIGi(bi)، ESIGi(vi)، \(\sigma\)r،s ط)، يدمر له سريع الزوال المفتاح السري skr,s أنا، ومن ثم نشر السيد، ق أنا. aمثل هذه الرسالة من اللاعب j يتم احتسابها حتى إذا تلقى اللاعب i أيضًا رسالة من j بالتوقيع برقم 1. أشياء مماثلة لحالة النهاية 1. كما هو موضح في التحليل، يتم ذلك للتأكد من أن جميع المستخدمين الصادقين يعرفون ذلك Br خلال الوقت π من بعضها البعض. المستخدم يعرف الآن Br ونهاياته الدائرية الخاصة. لا يزال يساعد في نشر الرسائل كمستخدم عام، ولكن لا يبدأ أي انتشار باعتباره مدققًا (r، s). وعلى وجه الخصوص، فقد ساعد في نشر جميع الرسائل في بلده CERT r، وهو ما يكفي لبروتوكولنا. لاحظ أنه يجب عليه أيضًا تعيين bi \(\triangleq\)0 لبروتوكول BA الثنائي، ولكن bi ليست هناك حاجة في هذه الحالة على أي حال. أشياء مماثلة لجميع التعليمات المستقبلية. cفي هذه الحالة، لا يهم ما هي VJ.الخطوة s، 6 \(\geq\)s \(\geq\)m + 2، s −2 ≡1 mod 3: خطوة ثابتة بالعملة إلى 1 من BBA⋆ تعليمات لكل مستخدم i \(\in\)PKr−k: المستخدم i يبدأ خطواته الخاصة من الجولة r بمجرد أن يعرف Br−1. • المستخدم i يحسب Qr−1 من المكون الثالث لـ Br−1 ويتحقق مما إذا كان i \(\in\)SV r,s أو لا. • إذا i /\(\in\)SV r,s، فسوف أقوم بإيقاف تنفيذ الخطوة s على الفور. • إذا كان i \(\in\)SV r,s فإنه يقوم بما يلي. - ينتظر حتى مرور فترة زمنية t \(\triangleq\)(2s −3)\(\alpha\) + Λ. - حالة الانتهاء 0: نفس تعليمات خطوات العملة الثابتة إلى 0. – شرط النهاية 1: نفس تعليمات خطوات العملة الثابتة إلى 0. – بخلاف ذلك، في نهاية الانتظار، يقوم المستخدم i بما يلي. لقد حدد السادس ليكون أغلبية أصوات VJ's في المكونات الثانية من جميع الأصوات الصحيحة السيد، ق−1 ي لقد حصل عليه. انه يحسب ثنائية على النحو التالي. إذا كان أكثر من 2/3 من جميع السيد، ق -1 صالح ي لقد تلقاها هي من النموذج (ESIGj(0)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يقوم بتعيين ثنائية \(\triangleq\)0. بخلاف ذلك، إذا كان أكثر من 2/3 من جميع mr,s−1 الصالحة ي لقد تلقاها هي من النموذج (ESIGj(1)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يقوم بتعيين ثنائية \(\triangleq\)1. بخلاف ذلك، يقوم بتعيين ثنائية \(\triangleq\)1. انه يحسب الرسالة السيد، ق أنا \(\triangleq\)(ESIGi(bi)، ESIGi(vi)، \(\sigma\)r،s ط)، يدمر له سريع الزوال المفتاح السري skr,s أنا، ومن ثم نشر السيد، ق أنا.
الخطوة s، 7 \(\geq\)s \(\geq\)m + 2، s −2 ≡2 mod 3: خطوة مقلوبة بشكل حقيقي من BBA⋆ تعليمات لكل مستخدم i \(\in\)PKr−k: المستخدم i يبدأ خطواته الخاصة من الجولة r بمجرد أن يعرف Br−1. • المستخدم i يحسب Qr−1 من المكون الثالث لـ Br−1 ويتحقق مما إذا كان i \(\in\)SV r,s أو لا. • إذا i /\(\in\)SV r,s، فسوف أقوم بإيقاف تنفيذ الخطوة s على الفور. • إذا كان i \(\in\)SV r,s فإنه يقوم بما يلي. - ينتظر حتى مرور فترة زمنية t \(\triangleq\)(2s −3)\(\alpha\) + Λ. - حالة الانتهاء 0: نفس تعليمات خطوات العملة الثابتة إلى 0. – شرط النهاية 1: نفس تعليمات خطوات العملة الثابتة إلى 0. – بخلاف ذلك، في نهاية الانتظار، يقوم المستخدم i بما يلي. لقد حدد السادس ليكون أغلبية أصوات VJ's في المكونات الثانية من جميع الأصوات الصحيحة السيد، ق−1 ي لقد حصل عليه. انه يحسب ثنائية على النحو التالي. إذا كان أكثر من 2/3 من جميع السيد، ق -1 صالح ي لقد تلقاها هي من النموذج (ESIGj(0)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يقوم بتعيين ثنائية \(\triangleq\)0. بخلاف ذلك، إذا كان أكثر من 2/3 من جميع mr,s−1 الصالحة ي لقد تلقاها هي من النموذج (ESIGj(1)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يقوم بتعيين ثنائية \(\triangleq\)1. بخلاف ذلك، دع SV r,s−1 أنا تكون مجموعة (r, s −1)-المدققين الذين حصل منهم على صلاحية رسالة السيد، ق−1 ي . يقوم بتعيين bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 أنا ح(\(\sigma\)ص,ق−1 ي )). انه يحسب الرسالة السيد، ق أنا \(\triangleq\)(ESIGi(bi)، ESIGi(vi)، \(\sigma\)r،s ط)، يدمر له سريع الزوال المفتاح السري skr,s أنا، ومن ثم نشر السيد، ق أنا.
الخطوة م + 3: الخطوة الأخيرة من BBA⋆a تعليمات لكل مستخدم i \(\in\)PKr−k: المستخدم i يبدأ خطوته الخاصة m + 3 من الجولة r بمجرد أن يعرف Br−1. • المستخدم i يحسب Qr−1 من المكون الثالث لـ Br−1 ويتحقق مما إذا كان i \(\in\)SV r,m+3 أو لا. • إذا i /\(\in\)SV r,m+3، فسوف أقوم بإيقاف تنفيذ الخطوة m + 3 على الفور. • إذا كان i \(\in\)SV r,m+3 فإنه يفعل ما يلي. – ينتظر حتى مرور فترة من الزمن t+3 \(\triangleq\)tm+2 + 2lect = (2m + 3)lect + Λ. - حالة الانتهاء 0: نفس تعليمات خطوات العملة الثابتة إلى 0. – شرط النهاية 1: نفس تعليمات خطوات العملة الثابتة إلى 0. – بخلاف ذلك، في نهاية الانتظار، يقوم المستخدم i بما يلي. انه يحدد \(\triangleq\)1 وBr \(\triangleq\)Br ƒ. يقوم بحساب الرسالة mr,m+3 أنا = (ESIGi(outi)، ESIGi(H(Br)))، \(\sigma\)r،m+3 أنا )، يدمر له مفتاح سري سريع الزوال، skr،m+3 أنا ، ثم يقوم بنشر السيد، م+3 أنا للتصديق على Br.b مع احتمال كبير أن BBA⋆ قد انتهى قبل هذه الخطوة، ونحدد هذه الخطوة للاكتمال. ليس من الضروري أن تتضمن شهادة البكالوريوس من الخطوة m + 3 ESIGi(outi). نحن ندرجه للتوحيد فقط: أصبحت الشهادات الآن ذات تنسيق موحد بغض النظر عن الخطوة التي يتم إنشاؤها فيها.إعادة بناء كتلة Round-r من قبل غير المتحققين تعليمات لكل مستخدم i في النظام: يبدأ المستخدم i جولته الخاصة بمجرد معرفته Br−1، وينتظر معلومات الكتلة على النحو التالي. – إذا كان هناك، أثناء هذا الانتظار وفي أي وقت، سلسلة v وخطوة s′ هكذا ذلك (أ) 5 \(\geq\)s′ \(\geq\)m + 3 مع s′ −2 ≡0 mod 3، (ب) لقد تلقيت على الأقل رسائل صالحة mr,s′−1 ي = (ESIGj(0)، ESIGj(v)، \(\sigma\)r،s'−1 ي )، و (ج) لقد تلقيت رسالة صالحة يا سيد 1 ي = (ر ي، esigj(H(Br ي )))، \(\sigma\)ص،1 ي ) مع v = H(Br ي)، ثم أوقف تنفيذه للجولة r على الفور؛ مجموعات ر = ر ي؛ ويضع بلده CERT ص لتكون مجموعة الرسائل mr,s′−1 ي من الخطوة الفرعية (ب). – إذا كانت هناك، أثناء هذا الانتظار وفي أي وقت، خطوة من هذا القبيل (أ') 6 \(\geq\)s′ \(\geq\)m + 3 مع s′ −2 ≡1 mod 3، و (ب') لقد تلقيت على الأقل رسائل صالحة mr,s'−1 ي = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s'−1 ي )، ثم أوقف تنفيذه للجولة r على الفور؛ مجموعات ر = ر ƒ؛ ويضع بلده CERT ص لتكون مجموعة الرسائل mr,s′−1 ي من الخطوة الفرعية (ب'). – إذا تلقيت، أثناء هذا الانتظار وفي أي وقت، رسائل صالحة على الأقل السيد،م+3 ي = (ESIGj(1)، ESIGj(H(Br ɫ )))، \(\sigma\)r،m+3 ي )، ثم أوقف تنفيذه للجولة r على الفور، مجموعات Br = Br ƒ ، ويقوم بتعيين CERT r الخاص به ليكون مجموعة الرسائل mr,m+3 ي لمدة 1 و ح(ر ƒ). 5.5 تحليل Algorand ′ 1 نقدم الرموز التالية لكل جولة r \(\geq\)0، المستخدمة في التحليل. • ليكن T r هو الوقت الذي يعرف فيه أول مستخدم صادق Br−1. • ليكن Ir+1 هو الفاصل الزمني [T r+1, T r+1 + lect]. لاحظ أن T 0 = 0 عند تهيئة البروتوكول. لكل s \(\geq\)1 وi \(\in\)SV r,s، تذكر ذلك \(\alpha\)r,s أنا و \(\beta\)r,s أنا هما على التوالي وقت البدء ووقت الانتهاء لخطوات اللاعب i. علاوة على ذلك، تذكَّر أن ts = (2s −3)lect + Λ لكل 2 \(\geq\)s \(\geq\)m + 3. بالإضافة إلى ذلك، دع I0 \(\triangleq\){0} وt1 \(\triangleq\)0. وأخيرًا، تذكر أن Lr \(\geq\)m/3 هو متغير عشوائي يمثل عدد تجارب برنولي مطلوب لرؤية 1، عندما تكون كل تجربة 1 مع احتمال ph 2 وهناك تجارب m/3 على الأكثر. إذا كان كل شيء تفشل التجارب إذن Lr \(\triangleq\)m/3. في التحليل، نتجاهل وقت الحساب، لأنه في الواقع لا يكاد يذكر بالنسبة للوقت اللازم لنشر الرسائل. على أي حال، باستخدام أكبر قليلا Λ و Λ، يمكن أن يكون وقت الحساب ممكنا يتم دمجها في التحليل مباشرة. معظم العبارات أدناه تحمل "ساحقة الاحتمالية"، وقد لا نؤكد على هذه الحقيقة مرارًا وتكرارًا في التحليل.5.6 النظرية الرئيسية نظرية 5.1. الخصائص التالية تحمل احتمالية ساحقة لكل جولة r \(\geq\)0: 1. يتفق جميع المستخدمين الصادقين على نفس الكتلة Br. 2. عندما يكون القائد \(\ell\)r صادقًا، يتم إنشاء الكتلة Br بواسطة \(\ell\)r، وتحتوي Br على مجموعة دفع قصوى تم استلامه بواسطة \(\ell\)r بالوقت \(\alpha\)r,1 \(\ell\)r , T r+1 \(\geq\)T r + 8lect + Λ وجميع المستخدمين الصادقين يعرفون Br في ذلك الوقت الفاصل الزمني Ir+1. 3. عندما يكون القائد \(\ell\)r خبيثًا، T r+1 \(\geq\)T r + (6Lr + 10)\(\alpha\) + Λ وجميع المستخدمين الصادقين يعرفون Br في الفاصل الزمني Ir+1. 4. ph = h2(1 + h −h2) لـ Lr، والقائد \(\ell\)r صادق مع احتمال ph على الأقل. قبل إثبات نظريتنا الرئيسية، دعونا نبدي ملاحظتين. ملاحظات. • إنشاء الكتل والكمون الحقيقي. يتم تعريف الوقت اللازم لإنشاء الكتلة Br بأنه T r+1 −T r. وهذا يعني أنه يتم تعريفه على أنه الفرق بين المرة الأولى التي يتعلم فيها بعض المستخدمين الصادقين Br و في المرة الأولى التي يتعلم فيها بعض المستخدمين الصادقين Br−1. عندما يكون قائد الجولة صادقًا، الخاصية 2 لدينا تضمن النظرية الرئيسية أن الوقت المحدد لتوليد Br هو 8 Λ + Λ، مهما كان الأمر قد تكون القيمة الدقيقة لـ h > 2/3. عندما يكون القائد خبيثًا، تشير الخاصية 3 إلى أن الوقت المتوقع لإنشاء Br محدد بـ (12 ph + 10)\(\alpha\) + Λ، مرة أخرى بغض النظر عن الدقة قيمة h.18 ومع ذلك، فإن الوقت المتوقع لتوليد Br يعتمد على القيمة الدقيقة لـ h. في الواقع، من خلال الخاصية 4، ph = h2(1 + h −h2) والقائد صادق في الاحتمالية على الأقل الرقم الهيدروجيني، وبالتالي E[T r+1 −T r] \(\geq\)h2(1 + h −h2) \(\cdot\) (8lect + Λ) + (1 −h2(1 + h −h2))(( 12 h2(1 + h −h2) + 10)π + Λ). على سبيل المثال، إذا كانت h = 80%، فإن E[T r+1 −T r] \(\geq\)12.7lect + Λ. • Λ مقابل Λ. لاحظ أن حجم الرسائل المرسلة من قبل القائمين على التحقق في الخطوة Algorand ′ هو المهيمن من خلال طول مفاتيح التوقيع الرقمي، والتي يمكن أن تظل ثابتة، حتى عندما يكون عددها المستخدمين هائلة. لاحظ أيضًا أنه في أي خطوة s > 1، يكون هناك نفس العدد المتوقع n من المدققين يمكن استخدامه سواء كان عدد المستخدمين 100 ألف أو 100 مليون أو 100 مليون. وذلك لأن n فقط يعتمد على h وF. باختصار، باستثناء الحاجة المفاجئة لزيادة طول المفتاح السري، يجب أن تظل قيمة كما هي بغض النظر عن حجم عدد المستخدمين في المستقبل المنظور. على النقيض من ذلك، بالنسبة لأي معدل معاملة، فإن عدد المعاملات ينمو مع عدد المعاملات المستخدمين. لذلك، لمعالجة جميع المعاملات الجديدة في الوقت المناسب، يجب أن يكون حجم الكتلة تنمو أيضًا مع عدد المستخدمين، مما يتسبب في نمو Λ أيضًا. وهكذا، على المدى الطويل، ينبغي أن يكون لدينا Λ << Λ. وبناءً على ذلك، فمن المناسب أن يكون هناك معامل أكبر لـ lect، وفي الواقع معامل من 1 لـ Λ. إثبات النظرية 5.1. نثبت الخصائص 1–3 بالاستقراء: بافتراض أنها تنطبق على الجولة r −1 (دون فقدان العمومية، يتم الاحتفاظ بها تلقائيًا لـ "الجولة -1" عندما يكون r = 0)، ونثبتها جولة ص. 18في الواقع، E[T r+1 −T r] \(\geq\)(6E[Lr] + 10)Λ + Λ = (6 \(\cdot\) 2 الرقم الهيدروجيني + 10) \(\alpha\) + Λ = ( 12 الرقم الهيدروجيني + 10) \(\alpha\) + Λ.نظرًا لأن Br−1 يتم تعريفه بشكل فريد من خلال الفرضية الاستقرائية، فإن المجموعة SV r,s يتم تعريفها بشكل فريد لكل خطوة من الجولة r. باختيار n1، SV r،1 ̸= \(\emptyset\) مع احتمالية ساحقة. نحن الآن اذكر المعينتين التاليتين، الموضحتين في القسمين 5.7 و5.8. طوال فترة الحث وفي براهين الليما، تحليل الجولة 0 هو تقريبا نفس الخطوة الاستقرائية، وسوف نسلط الضوء على الاختلافات عند حدوثها. ليما 5.2. [اكتمال Lemma] افتراض الخصائص 1–3 يتم الاحتفاظ به للجولة r−1، عندما يكون القائد \(\ell\)r صادق، مع احتمالية ساحقة، • يتفق جميع المستخدمين الصادقين على نفس الكتلة Br، التي تم إنشاؤها بواسطة \(\ell\)r وتحتوي على الحد الأقصى تم استلام مجموعة الدفع بواسطة \(\ell\)r حسب الوقت \(\alpha\)r,1 \(\ell\)r \(\in\)Ir؛ و • T r+1 \(\geq\)T r + 8lect + Λ وجميع المستخدمين الصادقين يعرفون Br في الفاصل الزمني Ir+1. ليما 5.3. [سلامة Lemma] افتراض الخصائص 1–3 يتم الاحتفاظ بها للجولة r −1، عندما يكون القائد \(\ell\)r خبيث، مع احتمالية ساحقة، يتفق جميع المستخدمين الصادقين على نفس الكتلة Br، T r+1 \(\geq\) T r + (6Lr + 10) lect + Λ وجميع المستخدمين الصادقين يعرفون Br في الفترة الزمنية Ir+1. يتم الاحتفاظ بالخصائص 1–3 من خلال تطبيق Lemmas 5.2 و5.3 على r = 0 وعلى الخطوة الاستقرائية. وأخيرا، نعيد صياغة الخاصية 4 على النحو التالي، كما تم إثباته في القسم 5.9. ليما 5.4. الخصائص المعطاة 1–3 لكل جولة قبل r، ph = h2(1 + h −h2) لـ Lr، و الزعيم \(\ell\)r صادق مع احتمالية ph على الأقل. من خلال الجمع بين العناصر الثلاثة المذكورة أعلاه معًا، فإن النظرية 5.1 صحيحة. ■ تنص lemma أدناه على العديد من الخصائص المهمة حول الجولة r بالنظر إلى الاستقرائي الفرضية، وسيتم استخدامها في البراهين على الثلاثة المذكورة أعلاه. ليما 5.5. افترض أن الخصائص 1–3 موجودة للجولة r −1. لكل خطوة s \(\geq\)1 من الجولة r و كل محقق صادق في HSV r،s، لدينا ذلك (أ) \(\alpha\)r،s أنا \(\in\)الأير؛ (ب) إذا انتظر اللاعب فترة من الوقت، ثم \(\beta\)r,s أنا \(\in\)[T r + ts, T r + lect + ts] لـ r > 0 و \(\beta\) ص، ق أنا = نهاية الخبر لص = 0؛ و (ج) إذا انتظر اللاعب فترة من الوقت، ثم بمرور الوقت \(\beta\)r,s أنا، لقد تلقى جميع الرسائل مرسلة من جميع المدققين الصادقين j \(\in\)HSV r,s′ لجميع الخطوات s' < s. علاوة على ذلك، لكل خطوة s \(\geq\)3، لدينا ذلك (د) لا يوجد لاعبان مختلفان i, i' \(\in\)SV r,s وقيمتين مختلفتين v, v' لهما نفس الشيء الطول، بحيث يكون كلا اللاعبين قد انتظرا مقدارًا من الوقت، أكثر من ثلثي إجمالي الوقت رسائل صالحة السيد، ق−1 ي لقد وقع اللاعب الذي أتلقاه على v، وأكثر من 2/3 من جميع اللاعبين الصالحين رسائل السيد، ق−1 ي اللاعب الذي أستقبله وقع على v′. دليل. الخاصية (أ) تتبع مباشرة من الفرضية الاستقرائية، حيث أن اللاعب الذي أعرفه Br−1 في الفاصل الزمني Ir ويبدأ خطواته الخاصة على الفور. الخاصية (ب) تتبع مباشرة من (أ): منذ لقد انتظرت وقتًا طويلًا قبل التمثيل، \(\beta\)r,s أنا = \(\alpha\)r,s أنا + نهاية الخبر. لاحظ أن \(\alpha\)r,s أنا = 0 ل ص = 0. نثبت الآن الخاصية (ج). إذا كانت s = 2، فمن خلال الخاصية (b)، بالنسبة لجميع أدوات التحقق j \(\in\)HSV r,1 لدينا \(\beta\) ص، ق أنا = \(\alpha\)r,s أنا + ts \(\geq\)T r + ts = T r + lect + Λ \(\geq\) \(\beta\)r,1 ي + Λ.نظرًا لأن كل مدقق j \(\in\)HSV r,1 يرسل رسالته في الوقت \(\beta\)r,1 ي والرسالة تصل إلى كل صادق المستخدمين في وقت Λ على الأكثر، حسب الوقت \(\beta\)r,s أنا لقد تلقيت الرسائل المرسلة من قبل جميع المتحققين في HSV r,1 حسب الرغبة. إذا كانت s > 2، فإن ts = ts−1 + 2\(\alpha\). حسب الخاصية (ب)، لجميع الخطوات s′ < s وجميع أدوات التحقق j \(\in\)HSV r,s′, \(\beta\) ص، ق أنا = \(\alpha\)r,s أنا + ts \(\geq\)T r + ts = T r + ts−1 + 2lect \(\geq\)T r + ts′ + 2lect = T r + lect + ts′ + lect \(\geq\) \(\beta\)r,s′ ي + lect. نظرًا لأن كل مدقق j \(\in\)HSV r,s′ يرسل رسالته في الوقت \(\beta\)r,s′ ي والرسالة تصل إلى كل صادق المستخدمين في وقت lect على الأكثر، حسب الوقت \(\beta\)r,s أنا لقد تلقيت جميع الرسائل المرسلة من جميع المدققين الصادقين في HSV r,s' لجميع s' < s. وبالتالي فإن الخاصية (ج) تحمل. وأخيرا نثبت الخاصية (د). لاحظ أن المدققين 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 بالتوقيع على واحد منهم على الأكثر. بواسطة الخاصية (ج)، تم استلام كل من i وi′ جميع الرسائل المرسلة من قبل جميع المتحققين الصادقين في HSV r,s−1. افترض أن HSV r,s−1(v) هي مجموعة المدققين الصادقين (r, s −1) الذين وقعوا على v, MSV r,s−1 أنا المجموعة من المدققين الخبيثين (r, s −1) الذين تلقيت منهم رسالة صالحة، وMSV r,s−1 أنا (ت) ال مجموعة فرعية من 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 أنا (ت)| \(\geq\)|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 أنا | \(\geq\)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 أنا (ت)| \(\geq\) 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 أنا (ت)| \(\geq\)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′ المرغوب فيه غير موجود، و الخاصية (د) تحمل. ■ 5.7 ليما الاكتمال ليما 5.2. [اكتمال Lemma، تمت إعادة صياغته] بافتراض أن الخصائص 1–3 مثبتة للجولة r−1، عندما القائد \(\ell\)r صادق، مع احتمالية ساحقة، • يتفق جميع المستخدمين الصادقين على نفس الكتلة Br، التي تم إنشاؤها بواسطة \(\ell\)r وتحتوي على الحد الأقصى تم استلام مجموعة الدفع بواسطة \(\ell\)r حسب الوقت \(\alpha\)r,1 \(\ell\)r \(\in\)Ir؛ و • T r+1 \(\geq\)T r + 8lect + Λ وجميع المستخدمين الصادقين يعرفون Br في الفاصل الزمني Ir+1. دليل. بواسطة الفرضية الاستقرائية وLemma 5.5، لكل خطوة s والمتحقق i \(\in\)HSV r,s، \(\alpha\)r,s أنا \(\in\)إير. أدناه نقوم بتحليل البروتوكول خطوة بخطوة. الخطوة 1. بحكم التعريف، كل مدقق صادق i \(\in\)HSV r,1 ينشر الرسالة المطلوبة mr,1 أنا في الوقت \(\beta\)r,1 أنا = \(\alpha\)r,1 أنا، حيث السيد،1 أنا = (ر أنا، esigi(H(Br أنا )))، \(\sigma\)ص،1 ط)، ر أنا = (ص، دفع ص أنا، SIGi(Qr−1)، H(Br−1))، ودفع ص i هو الحد الأقصى لمجموعة الدفع من بين جميع المدفوعات التي رأيتها بحلول الوقت \(\alpha\)r,1 أنا. الخطوة 2. قم بإصلاح مدقق صادق بشكل تعسفي i \(\in\)HSV r,2. بواسطة Lemma 5.5، عندما أنتهي من اللاعب الانتظار في الوقت \(\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 قد دمر مفتاحه سريع الزوال والرسالة السيد،1 \(\ell\)ص تم نشرها. ومن ثم، يقوم المتحقق بتعيين قائده ليكون اللاعب رقم 1. وبناء على ذلك، في الوقت \(\beta\)r,2 أنا، التحقق من نشر السيد،2 أنا = (ESIGi(v′ أنا)، \(\sigma\)ص،2 أنا )، حيث الخامس ' ط = ح(ر \(\ell\)ر). عندما يكون r = 0، يكون الفرق الوحيد هل هذا \(\beta\)r,2 أنا = t2 بدلاً من أن تكون في النطاق. ويمكن قول أشياء مماثلة عن الخطوات المستقبلية ونحن لن أؤكد عليها مرة أخرى. الخطوة 3. قم بإصلاح مدقق صادق بشكل تعسفي i \(\in\)HSV r,3. بواسطة Lemma 5.5، عندما أنتهي من اللاعب الانتظار في الوقت \(\beta\)r,3 أنا = \(\alpha\)r,3 أنا + t3، لقد تلقى جميع الرسائل المرسلة من قبل المدققين في HSV r،2. من خلال العلاقات بين المعلمات، مع احتمالية ساحقة |HSV r,2| > 2|MSV ص،2|. علاوة على ذلك، لا يجوز لأي مدقق نزيه أن يوقع على الرسائل المتناقضة، والخصم ولا يجوز له تزوير توقيع مدقق نزيه بعد أن أتلف الأخير مقابله مفتاح سري سريع الزوال. وبالتالي فإن أكثر من ثلثي جميع الرسائل الصالحة (r, 2) التي تلقيتها هي من المدققون الصادقون ومن النموذج السيد،2 ي = (ESIGj(H(Br \(\ell\)ص)))، \(\sigma\)ص،2 ي) دون أي تناقض. وبناء على ذلك، في الوقت \(\beta\)r,3 أنا لاعب أنا نشر السيد،3 أنا = (ESIGi(v′),\(\sigma\)r,3 i )، حيث v′ = H(Br \(\ell\)ر).الخطوة 4. قم بإصلاح مدقق صادق بشكل تعسفي i \(\in\)HSV r,4. بواسطة Lemma 5.5, لقد تلقيت اللاعب كل شيء الرسائل المرسلة من قبل المدققين في HSV r,3 عندما ينتهي من الانتظار في الوقت \(\beta\)r,4 أنا = \(\alpha\)r,4 أنا + ت4. مماثلة ل الخطوة 3، أكثر من 2/3 من جميع الرسائل الصالحة (r, 3) التي تلقيتها هي من محققين صادقين و من النموذج السيد،3 ي = (ESIGj(H(Br \(\ell\)ص)))، \(\sigma\)ص،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\)ص)))، \(\sigma\)ص،4 أنا). الخطوة 5. تثبيت مدقق صادق بشكل تعسفي i \(\in\)HSV r,5. بواسطة Lemma 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\)ص)))، \(\sigma\)ص،4 ي). دع T يكون الوقت الذي يحدث الحدث الأخير. قد تكون بعض هذه الرسائل من لاعبين ضارين، ولكن بسبب |MSV ص،4| < tH، واحد منهم على الأقل من مدقق صادق في HSV r،4 ويتم إرساله بعد مرور الوقت تي ص +t4. وبناء على ذلك، T \(\geq\)T r +t4 > T r +lect+Λ \(\geq\) \(\beta\)r,1 \(\ell\)r +Λ، وبمرور الوقت، تلقيت أيضًا لاعب T الرسالة السيد،1 \(\ell\)ر . من خلال بناء البروتوكول، يتوقف اللاعب i عند الوقت \(\beta\)r,5 أنا = ت بدون نشر أي شيء؛ مجموعات ر = ر \(\ell\)ص؛ ويقوم بتعيين CERT r الخاص به ليكون مجموعة (r، 4) - رسائل لـ 0 و ح(ر \(\ell\)ص) الذي حصل عليه. الخطوة > 5. وبالمثل، بالنسبة لأي خطوة s > 5 وأي أداة تحقق i \(\in\)HSV r,s، اللاعب الذي سأحصل عليه تلقى جميع الرسائل المرسلة من قبل المدققين في HSV r,4 إذا كان قد انتظر حتى الوقت \(\alpha\)r,s أنا + نهاية الخبر. بواسطة نفس التحليل، يتوقف اللاعب i دون نشر أي شيء، ويتم ضبط Br = Br \(\ell\)ص (ووضع خاصته CERT ص بشكل صحيح). وبطبيعة الحال، فإن أدوات التحقق الخبيثة قد لا تتوقف وقد تنتشر بشكل اعتباطي الرسائل، ولكن لأن |MSV r,s| < tH، عن طريق الحث لا يمكن توقيع أي حرف v آخر بواسطة المدققين في أي خطوة 4 \(\geq\)s′ < s، وبالتالي يتوقف المدققون الصادقون فقط لأنهم حصلوا على قيمة صحيحة (ص، 4)-رسائل لـ 0 وH(Br \(\ell\)ر). إعادة بناء كتلة Round-r. ينطبق تحليل الخطوة 5 على الصدق العام المستخدم أنا تقريبا دون أي تغيير. في الواقع، يبدأ اللاعب i جولته r في الفترة الفاصلة بين Ir و سوف يتوقف فقط في وقت T عندما يتلقى رسائل صالحة (r, 4) لـ H(Br) \(\ell\)ر). مرة أخرى لأن واحدة على الأقل من هذه الرسائل هي من محققين صادقين ويتم إرسالها بعد مرور الوقت T r + t4، اللاعب الذي أملكه كما استقبل السيد 1 \(\ell\)r بالزمن T. وبالتالي فهو يحدد Br = Br \(\ell\)r مع CERT المناسب. يبقى فقط أن نبين أن جميع المستخدمين الصادقين ينهون جولتهم r خلال الفاصل الزمني Ir+1. من خلال تحليل الخطوة 5، كل مدقق صادق i \(\in\)HSV r,5 يعرف Br عند \(\alpha\)r أو قبله،5 أنا + t5 \(\geq\) تي ص + + t5 = تي ص + 8 + Λ. وبما أن T r+1 هو الوقت الذي يعرف فيه أول مستخدم صادق Br، فقد فعلنا ذلك تي ص +1 \(\geq\)T ص + 8 Λ + Λ حسب الرغبة. علاوة على ذلك، عندما يعرف اللاعب Br، فقد ساعد بالفعل في نشر الرسائل CERT الخاص به ص. لاحظ أن جميع هذه الرسائل سيتم استلامها من قبل جميع المستخدمين الصادقين في غضون الوقت المناسب، حتى لو 19. بالمعنى الدقيق للكلمة، يحدث هذا باحتمالية عالية جدًا ولكن ليس بالضرورة ساحقة. ومع ذلك، هذا يؤثر الاحتمال بشكل طفيف على وقت تشغيل البروتوكول، لكنه لا يؤثر على صحته. عندما ح = 80٪، ثم |HSV ص،4| \(\geq\)tH مع الاحتمال 1 −10−8. إذا لم يحدث هذا الحدث، فسوف يستمر البروتوكول لآخر 3 خطوات. وبما أن احتمال عدم حدوث ذلك في خطوتين ضئيل، فإن البروتوكول سينتهي عند الخطوة 8. توقعًا، فإن عدد الخطوات المطلوبة هو 5 خطوات تقريبًا.كان اللاعب ir أول لاعب قام بنشرها. وعلاوة على ذلك، في أعقاب التحليل أعلاه لدينا تي ص+1 \(\geq\)T ص + t4 \(\geq\) \(\beta\)r,1 \(\ell\)r + Λ، وبالتالي فقد حصل جميع المستخدمين الصادقين على mr,1 \(\ell\)r بالزمن T r+1 + lect. وبناء على ذلك، يعرف جميع المستخدمين الصادقين Br في الفترة الزمنية Ir+1 = [T r+1, T r+1 + lect]. أخيرًا، بالنسبة لـ r = 0 لدينا بالفعل T 1 \(\geq\)t4 + lect = 6lect + Λ. الجمع بين كل شيء معا، يحمل ليما 5.2. ■ 5.8 السلامة ليما ليما 5.3. [سلامة Lemma، تمت إعادة صياغتها] بافتراض أن الخصائص 1–3 مثبتة للجولة r −1، عندما القائد \(\ell\)r خبيث، مع احتمالية ساحقة، يتفق جميع المستخدمين الصادقين على نفس الكتلة Br، T r+1 \(\geq\)T r + (6Lr + 10)lect + Λ وجميع المستخدمين الصادقين يعرفون Br في الفاصل الزمني Ir+1. دليل. نحن نعتبر جزأين من البروتوكول، GC وBBA⋆، بشكل منفصل. جي سي. بواسطة الفرضية الاستقرائية وبواسطة Lemma 5.5، لأي خطوة s \(\in\){2, 3, 4} وأي خطوة صادقة التحقق من \(\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 الثنائي. قد لا يكون لديهم اتفاق بشأن السادس، ولكن هذا لا يهم كما سنرى في مكتبة الإسكندرية الثنائية. الحالة 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) توجد رسالة صالحة يا سيد،1 \(\ell\) من بعض أدوات التحقق \(\ell\) \(\in\)SV r,1 بحيث v′ = H(Br \(\ell\)). في الواقع، نظرًا لأن اللاعب ˆi صادق ويحدد gˆi = 2، فإن أكثر من 2/3 من جميع الرسائل الصالحة mr,3 ي لقد حصل عليها بنفس القيمة v′ ̸= \(\bot\)، وقد قام بتعيين vˆi = v′. حسب الخاصية (د) في Lemma 5.5، بالنسبة لأي مدقق صادق آخر (r، 4) i، لا يمكن أن يكون الأمر أكثر من ذلك من 2/3 من جميع الرسائل الصالحة السيد،3 ي التي تلقيتها هي بنفس القيمة v′′ ̸= v′. وفقًا لذلك، إذا قمت بتعيين gi = 2، فيجب أن أكون قد رأيت> 2/3 أغلبية لـ v' أيضًا وقمت بتعيينها vi = v'، حسب الرغبة. الآن فكر في أداة التحقق التعسفية i \(\in\)HSV r,4 مع gi <2. على غرار تحليل الخاصية (د) في Lemma 5.5، لأن اللاعب ˆi قد رأى > 2/3 أغلبية لـ v′، أكثر من 1 2|HSV ص،3| صادق (ص، 3) - وقع المدققون على حرف v ′. لأنني تلقيت جميع الرسائل من قبل المدققين الصادقين (ص، 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) ثابتة. هل اللاعب الذي قمت بتعيينه بالضرورة vi = v'؟ افترض أن هناك قيمة مختلفة v′′ ̸= \(\bot\)هكذا اللاعب الذي رأيته أيضًا > أغلبية 1/3 لـ v''. قد تكون بعض هذه الرسائل من الخبيثة المحققين، ولكن واحد منهم على الأقل هو من بعض المحققين الصادقين j \(\in\) HSV r، 3: في الواقع، لأن |HSV ص،3| > 2|MSV r,3| ولقد تلقيت كافة الرسائل من HSV r,3، مجموعة البرامج الضارة المحققون الذين تلقيت منهم رسالة صالحة (r، 3) - تمثل أقل من 1/3 من جميع الرسائل الصالحة الرسائل التي تلقاها.حسب التعريف، يجب أن يكون اللاعب j قد رأى > 2/3 أغلبية لـ v ′ ′ بين جميع الرسائل الصالحة (r، 2) لقد تلقى. ومع ذلك، لدينا بالفعل ما شاهده بعض المحققين الصادقين الآخرين (r، 3). أغلبية 2/3 لصالح v' (لأنهم وقعوا على v'). حسب الخاصية (د) من Lemma 5.5، لا يمكن ذلك يحدث وهذه القيمة v'' غير موجودة. لذلك يجب على اللاعب أن يضبط vi = v′ حسب الرغبة، والملكية (2) تحمل. أخيرًا، نظرًا لأن بعض المدققين الصادقين (r, 3) قد رأوا أغلبية تزيد عن 2/3 لصالح v'، فإن البعض (في الواقع، أكثر من نصف) المدققين الصادقين (r, 2) وقعوا على v′ وقاموا بنشر رسائلهم. من خلال بناء البروتوكول، يجب أن يكون هؤلاء المدققون الصادقون (r، 2) قد حصلوا على شهادة صالحة رسالة السيد،1 \(\ell\) من بعض اللاعبين \(\ell\) \(\in\)SV r,1 مع v′ = H(Br \(\ell\))، وبالتالي فإن الخاصية (3) تحمل. بابا⋆. نميز مرة أخرى بين حالتين. الحالة 1. جميع أدوات التحقق i \(\in\)HSV r,4 لها ثنائية = 1. يحدث هذا بعد الحالة 1 من GC. كـ |MSV r,4| < tH، في هذه الحالة لا يوجد مدقق في SV r,5 يمكنه جمع أو إنشاء رسائل صالحة (r, 4) للبتة 0. وبالتالي، لا يوجد مدقق صادق في HSV r,5 سيتوقف لأنه يعرف كتلة غير فارغة Br. علاوة على ذلك، على الرغم من وجود رسائل صالحة (r, 4) على الأقل للبتة 1، فإن 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 بعد Lemma 5.5. هكذا رأيت اللاعب> 2/3 أغلبية لـ 1 ومجموعات ثنائية = 1. في الخطوة 6 وهي خطوة عملة ثابتة إلى 1، على الرغم من أن s′ = 5 يرضي s′ −2 ≡0 mod 3، هناك لا توجد رسائل صالحة (r, 4) للبت 0، وبالتالي لن يتوقف أي مدقق في HSV r,6 بسبب إنه يعرف كتلة غير فارغة Br. ومع ذلك، مع s′ = 6، s′ −2 ≡1 mod 3 وهناك وجود |HSV ص،5| \(\geq\)tH صالحة (r, 5) - رسائل للبت 1 من HSV r,5. لكل أداة تحقق i \(\in\)HSV r,6، بعد Lemma 5.5، في الوقت \(\alpha\)r,6 أو قبله أنا + لاعب t6 أنا لقد تلقى جميع الرسائل من HSV r,5، وبالتالي أتوقف دون نشر أي شيء أو مجموعات ر = ر ƒ. CERT r الخاص به هو مجموعة الرسائل الصالحة (r, 5) mr,5 ي = (ESIGj(1)، ESIGj(vj)، \(\sigma\)r،5 ي) يستقبله عندما يتوقف. بعد ذلك، اسمح للاعب أن يكون إما مدققًا صادقًا في الخطوة s > 6 أو مستخدمًا صادقًا عامًا (أي، غير محقق). على غرار إثبات Lemma 5.2، يقوم اللاعب i بتعيين Br = Br ƒ ويضع خاصته CERT r هي مجموعة الرسائل الصالحة (r, 5) mr,5 ي = (ESIGj(1)، ESIGj(vj)، \(\sigma\)r،5 ي) لديه تلقى. وأخيرا، على غرار Lemma 5.2، تي ص+1 \(\geq\) دقيقة أنا\(\in\)HSV ص،6 \(\alpha\)r،6 أنا + t6 \(\geq\)T r + lect + t6 = T r + 10lect + Λ، وجميع المستخدمين الصادقين يعرفون Br في الفترة الزمنية Ir+1، لأن المستخدم الصادق الأول هو الذي يعرف أن Br قد ساعد في نشر الرسائل (r, 5) في CERT r. الحالة 2. يوجد مُحقق ˆi \(\in\)HSV r,4 مع bˆi = 0. يحدث هذا بعد الحالة 2 من GC وهي الحالة الأكثر تعقيدًا. من خلال تحليل جي سي، في هذه الحالة توجد رسالة صالحة السيد،1 \(\ell\) بحيث يكون vi = H(Br \(\ell\)) للجميع i \(\in\)HSV r,4. ملاحظة أن القائمين على التحقق في HSV r,4 قد لا يكون لديهم اتفاق بشأن ثنائية. لأي خطوة s \(\in\){5, . . . ، m + 3} والتحقق من i \(\in\)HSV r،s، بواسطة Lemma 5.5 player كنت سأحصل عليه تلقى جميع الرسائل المرسلة من قبل جميع المتحققين الصادقين في HSV r,4 \(\cup\) \(\cdots\) \(\cup\)HSV r,s−1 إذا كان قد انتظر للوقت نهاية الخبر.نحن الآن نعتبر الحدث التالي E: هناك خطوة s∗\(\geq\)5 بحيث أنه في المرة الأولى الوقت في مكتبة الإسكندرية الثنائية، يجب أن يتوقف بعض اللاعبين i∗\(\in\)SV r,s∗ (سواء كان خبيثًا أو صادقًا) دون نشر أي شيء. نستخدم "يجب أن يتوقف" للتأكيد على حقيقة أنه إذا كان اللاعب i∗ خبيث، فيجوز له أن يتظاهر بأنه لا ينبغي أن يتوقف حسب البروتوكول و نشر الرسائل التي يختارها الخصم. وعلاوة على ذلك، من خلال بناء البروتوكول، سواء (E.a) i∗ قادر على جمع أو إنشاء رسائل صالحة على الأقل mr,s′−1 ي = (ESIGj(0)، ESIGj(v)، \(\sigma\)r,s'−1 ي ) لنفس v و s′، مع 5 \(\geq\)s′ \(\geq\)s∗ و s′ −2 ≡0 mod 3؛ أو (E.b) i∗ قادر على جمع أو إنشاء رسائل صالحة على الأقل mr,s′−1 ي = (ESIGj(1)، ESIGj(vj)، \(\sigma\)r,s'−1 ي ) لنفس s′، مع 6 χs′ ′s∗و s′ −2 ≡1 mod 3. لأن الرسائل الصادقة (r, s′ −1) يتم استلامها من قبل جميع المدققين الصادقين (r, s′) قبل أن تم الانتهاء من الانتظار في الخطوات s'، ولأن الخصم يتلقى كل شيء في موعد لا يتجاوز مستخدمون صادقون، دون فقدان العمومية، لدينا s′ = s∗ واللاعب ضار. لاحظ ذلك لم نشترط أن تكون القيمة v في E.a هي hash لكتلة صالحة: كما سيتضح في التحليل، v = H(Br \(\ell\)) في هذا الحدث الفرعي. أدناه نقوم أولاً بتحليل الحالة 2 بعد الحدث E، ثم نبين أن قيمة s∗ هي في الأساس يتم توزيعها وفقًا لـ Lr (وبالتالي فإن الحدث E يحدث قبل الخطوة m + 3 بأغلبية ساحقة الاحتمال نظرا للعلاقات للمعلمات). للبدء، بالنسبة لأي خطوة 5 \(\geq\)s < s∗، لقد انتظر كل مدقق صادق i HSV r,s الوقت ts وحدد vi ليكون صوت الأغلبية في صالح (r, s−1)-الرسائل التي تلقاها. منذ أن تلقيت اللاعب جميع الرسائل الصادقة (r، s−1). بعد Lemma 5.5، نظرًا لأن جميع المدققين الصادقين في HSV r,4 وقعوا على H(Br) \(\ell\)) الحالة التالية 2 من GC، ومنذ |HSV r,s−1| > 2|MSV r,s−1| لكل ثانية، عن طريق الاستقراء لدينا هذا اللاعب أنا تم تعيينه السادس = ح(ر \(\ell\)). وكذلك الأمر بالنسبة لكل محقق صادق لا يتوقف إلا وينشر أي شيء. الآن نفكر في الخطوة s∗ ونميز بين أربع حالات فرعية. الحالة 2.1.أ. يحدث الحدث E.a ويوجد مدقق صادق وهو الذي يجب عليه توقف أيضًا دون نشر أي شيء. في هذه الحالة، لدينا s∗−2 ≡0 mod 3 والخطوة s∗ هي خطوة عملة ثابتة إلى 0. بواسطة التعريف، اللاعب i ′ قد تلقى على الأقل رسائل صالحة (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 +lect+Λ \(\geq\) \(\beta\)r,1 \(\ell\) +Λ، اللاعب i′ قد تلقى السيد,1 \(\ell\) بحلول الوقت الذي يتلقى فيه تلك الرسائل (r, s∗−1). هكذا اللاعب أنا أتوقف دون نشر أي شيء؛ مجموعات ر = ر \(\ell\)؛ ويقوم بتعيين CERT r الخاص به ليكون مجموعة من الرسائل الصالحة (r, s∗−1) لـ 0 وv التي تلقاها. بعد ذلك، نوضح أن أي محقق آخر i 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′ \(\geq\)s∗ مع s′ −2 ≡0 mod 3 بحيث يتم توقيع المدققين tH (r, s′ −1) بعض v′′̸= H(Br \(\ell\)) - في الواقع، |MSV r,s′−1| < ر. وبناءً على ذلك، لم يتوقف أي مدقق في HSV r,s∗ مع ر ̸= ر ɫ وBr̸= ر \(\ell\). وهذا يعني أنه إذا توقف اللاعب بدونه نشر أي شيء، لا بد أنه قد وضع Br = Br \(\ell\). إذا كان اللاعب قد انتظر وقتًا وقام بنشر رسالة في ذلك الوقت \(\beta\) ص، ق∗ أنا = \(\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| منهم من المتحققين الصادقين (ص، ق∗−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| <2 ن، والذي يأتي من العلاقات للمعلمات. وبناء على ذلك، لا أرى> 2/3 الأغلبية لـ 1، وقام بتعيين bi = 0 لأن الخطوة s∗ هي خطوة عملة ثابتة إلى 0. كما لدينا ينظر، السادس = H(Br \(\ell\)). وهكذا أقوم بالنشر (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) من tH للبتة 1 مع s′ −2 ≡1 mod 3 و 6 \(\geq\)s′ \(\geq\)s∗+ 1، حسب تعريف الخطوة s∗. على وجه الخصوص، الخطوة s∗+ 1 بحد ذاتها عبارة عن خطوة ثابتة للعملة إلى 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 و تي ص+1 \(\geq\) \(\alpha\)r,s∗ أنا ′ + ts∗\(\leq\)T r + \(\alpha\) + ts∗. الحالة 2.1.ب. يحدث الحدث E.b ويوجد مدقق صادق وهو الذي يجب عليه توقف أيضًا دون نشر أي شيء. في هذه الحالة لدينا s∗−2 ≡1 mod 3 والخطوة s∗ هي خطوة ثابتة بالعملة إلى 1. التحليل يشبه الحالة 2.1.أ وتم حذف العديد من التفاصيل. 20إذا كان \(\ell\)خبيثًا، فقد يرسل السيد 1 \(\ell\) متأخرًا، على أمل أن بعض المستخدمين/المتحققين الشرفاء لم يتلقوا السيد 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\))، وهؤلاء (ص، 2) - المدققون حصلوا جميعًا على السيد، 1 \(\ell\). كما لا يستطيع الخصم التمييز بين المتحقق وغير المتحقق، ولا يمكنه استهداف انتشار السيد،1 \(\ell\) إلى (ص، 2) -المحققون دون أن يراها غير المدققين. في الواقع، مع احتمال كبير، أكثر من النصف (أو جزء ثابت جيد) من جميع المستخدمين الشرفاء شاهدوا السيد 1 \(\ell\) بعد انتظار t2 من بداية جولتهم r. من هنا فصاعدا، الوقت π′ اللازم للسيد,1 \(\ell\) للوصول إلى المستخدمين الصادقين المتبقين هو أصغر بكثير من Λ، ومن أجل البساطة لا نفعل ذلك اكتبها في التحليل إذا كانت 4 \(\geq\) \(\geq\) ′، فسيتم إجراء التحليل دون أي تغيير: بحلول نهاية الخطوة 4، كل شيء كان المستخدمون الصادقون قد تلقوا السيد 1 \(\ell\). إذا أصبح حجم الكتلة هائلاً و4 lect < lect ′، ففي الخطوتين 3 و4، يمكن للبروتوكول أن يطلب من كل مدقق الانتظار حتى 2 ′/2 بدلاً من 2 \(\alpha\)، ويستمر التحليل في الصمود.كما كان من قبل، يجب أن يكون اللاعب i' قد تلقى على الأقل رسائل صالحة (r, s∗−1) من النموذج (ESIGj(1), ESIGj(vj), \(\sigma\)r,s∗−1 ي ). مرة أخرى، وفقًا لتعريف s∗، لا توجد خطوة 5 \(\geq\)s′ < s∗with s′ −2 ≡0 mod 3، حيث على الأقل tH (r, s′ −1) - وقع المدققون على 0 و نفس الشيء ضد. وهكذا يتوقف اللاعب دون نشر أي شيء؛ مجموعات ر = ر ƒ؛ ومجموعات CERT الخاص به r هو مجموعة الرسائل الصالحة (r, s∗−1) للبتة 1 التي تلقاها. علاوة على ذلك، فإن أي محقق آخر i HSV r,s قد توقف عند Br = Br ɫ، أو تم تعيين ثنائية = 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 و تي ص+1 \(\geq\) \(\alpha\)r,s∗ أنا ′ + ts∗\(\leq\)T r + \(\alpha\) + ts∗. الحالة 2.2.أ. يحدث الحدث E.a ولا يوجد مدقق صادق يجب أيضًا أن يتوقف دون نشر أي شيء. في هذه الحالة، لاحظ أن اللاعب يمكن أن يكون لديه CERT r صالح ط∗تتكون من الـTH المطلوب (r, s∗−1)-الرسائل التي يستطيع الخصم جمعها أو إنشاؤها. ومع ذلك الخبيثة وقد لا يساعد القائمون على التحقق في نشر هذه الرسائل، لذا لا يمكننا أن نستنتج أن هؤلاء هم الصادقون سوف يستلمها المستخدمون في الوقت المناسب. في الواقع، |MSV r,s∗−1| من تلك الرسائل قد تكون من المتحققون الخبيثون (r, s∗−1)، الذين لم ينشروا رسائلهم على الإطلاق ويرسلون فقط لهم إلى المحققين الخبيثة في الخطوة ∗. على غرار الحالة 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، وبالتالي لا يمكن للخصم إنشاء رسائل صالحة (r, s∗−1) لحرف v مختلف. علاوة على ذلك، فإن جميع المدققين الصادقين (r, s∗) انتظروا وقتًا ts∗ ولم يروا أكثر من 2/3 أغلبية للبت 1، مرة أخرى لأن |HSV r,s∗−1| + 4|MSV r,s∗−1| <2ن. وهكذا كل مدقق صادق أنا \(\in\)HSV r،s∗sets bi = 0، vi = H(Br \(\ell\)) بأغلبية الأصوات، وينشر السيد، ق∗ أنا = (ESIGi(0)، ESIGi(H(Br \(\ell\))))، \(\sigma\)r،s∗ أنا ) في الوقت \(\alpha\)r,s∗ أنا + نهاية الخبر∗. الآن فكر في أدوات التحقق الصادقة في الخطوة s∗+ 1 (وهي خطوة ثابتة على العملة إلى 1). إذا يرسل الخصم بالفعل الرسائل في CERT r إلى بعضهم وأسبب لهم ذلك توقف، ثم على غرار الحالة 2.1.a، يعرف جميع المستخدمين الصادقين Br = Br \(\ell\)في الفترة الزمنية الأشعة تحت الحمراء +1 و تي ص+1 \(\geq\)T ص + \(\alpha\) + 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 و ح(ر \(\ell\)) وفقا لذلك. لاحظ أن أدوات التحقق في HSV r,s∗+1 لا تتوقف عند Br = Br \(\ell\)، لأن الخطوة s∗+ 1 ليست خطوة عملة ثابتة إلى 0. الآن فكر في أدوات التحقق الصادقة في الخطوة s∗+2 (وهي خطوة مقلوبة بشكل حقيقي). إذا أرسل الخصم الرسائل في CERT r إلى بعضهم فيوقفهم، ثم مرة أخرى يعرف جميع المستخدمين الشرفاء Br = Br \(\ell\)خلال الفاصل الزمني Ir+1 و تي ص+1 \(\geq\)T ص + \(\alpha\) + ts∗+2.بخلاف ذلك، فإن جميع المتحققين الصادقين في الخطوة s∗+ 2 قد تلقوا جميع رسائل (r, s∗+ 1) الخاصة بـ 0 و ح(ر \(\ell\)) من HSV r,s∗+1 بعد وقت الانتظار ts∗+2، مما يؤدي إلى> 2/3 أغلبية. وهكذا ينشر كل منهم رسائلهم لـ 0 وH(Br \(\ell\)) وعليه: أي يفعلون لا "اقلب العملة" في هذه الحالة. مرة أخرى، لاحظ أنها لا تتوقف دون الانتشار، لأن الخطوة s∗+ 2 ليست خطوة عملة ثابتة إلى 0. أخيرًا، بالنسبة للمتحققين الصادقين في الخطوة s∗+3 (وهي خطوة أخرى من العملات الثابتة إلى 0)، كل شيء منهم قد تلقوا على الأقل رسائل صالحة لـ 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 أنا∗، والآخرون لديهم CERT الخاصة بهم تتكون من تلك الرسائل (r، s∗+ 2). في أي حال، جميع المستخدمين صادقين تعرف ر = ر \(\ell\)خلال الفاصل الزمني Ir+1 و تي ص+1 \(\geq\)T ص + \(\alpha\) + ts∗+3. الحالة 2.2.ب. يحدث الحدث E.b ولا يوجد مدقق صادق يجب أيضًا أن يتوقف دون نشر أي شيء. التحليل في هذه الحالة مشابه لتلك الموجودة في الحالة 2.1.ب والحالة 2.2.أ، وبالتالي هناك الكثير من التفاصيل تم حذفها. على وجه الخصوص، CERT ص i∗ يتكون من الرسائل المطلوبة (r، s∗−1). بالنسبة للبتة 1 التي يستطيع الخصم جمعها أو توليدها، s∗−2 ≡1 mod 3، الخطوة s∗ هي خطوة العملة الثابتة إلى 1، ولا يمكن لأي مدقق صادق (r، s∗) أن يرى أكثر من 2/3 أغلبية لـ 0. وبالتالي، فإن كل أداة تحقق i \(\in\)HSV r,s∗sets bi = 1 وتنشر mr,s∗ أنا = (ESIGi(1)، ESIGi(vi)، \(\sigma\)r،s∗ أنا ) في الوقت \(\alpha\)r,s∗ أنا + نهاية الخبر∗. على غرار الحالة 2.2.أ، في 3 خطوات إضافية على الأكثر (أي البروتوكول يصل إلى الخطوة s∗+3، وهي خطوة أخرى من العملات الثابتة إلى 1)، جميع المستخدمين الصادقين يعرفون Br = Br ƒ خلال الفاصل الزمني Ir+1. علاوة على ذلك، قد يكون T r+1 \(\geq\)T r++ts∗+1، أو \(\geq\)T r++ts∗+2، أو \(\geq\)T r + lect + ts∗+3، اعتمادًا على متى تكون المرة الأولى التي يتمكن فيها المدقق الصادق من التوقف دون نشر. من خلال الجمع بين الحالات الفرعية الأربع، لدينا أن جميع المستخدمين الصادقين يعرفون B خلال الفترة الزمنية الأشعة تحت الحمراء +1، مع T r +1 \(\geq\)T r + lect + ts∗ في الحالتين 2.1.a و2.1.b، و T r +1 \(\geq\)T r + lect + ts∗+3 في الحالتين 2.2.أ و2.2.ب. يبقى الحد العلوي s∗ وبالتالي T r+1 للحالة 2، ونحن نفعل ذلك من خلال النظر في كيفية في كثير من الأحيان يتم تنفيذ خطوات العملة المقلوبة فعليًا في البروتوكول: أي، وفي الواقع، قام بعض المحققين الصادقين بقلب العملة المعدنية. على وجه الخصوص، قم بإصلاح خطوة العملة المعكوسة بشكل تعسفي s' (على سبيل المثال، 7 \(\geq\)s′ \(\geq\)m + 2 و s′ −2 ≡2 mod 3)، ودع \(\ell\)′ \(\triangleq\)arg minj\(\in\)SV r,s′−1 H(\(\sigma\)r,s′−1 ي ). الآن دعونا نفترض s' < s∗، لأنه بخلاف ذلك لن يقوم أي مدقق نزيه برمي العملة المعدنية في الخطوات ′، وفقًا لما سبق المناقشات. من خلال تعريف SV r,s′−1، قيمة hash لبيانات اعتماد \(\ell\)′ هي أيضًا الأصغر بين كافة المستخدمين في PKr−k. نظرًا لأن الدالة hash عشوائية oracle، فمن المثالي أن يكون اللاعب \(\ell\)′ صادقًا مع احتمال على الأقل ح. كما سنبين لاحقا، حتى لو بذل الخصم قصارى جهده للتنبؤ إخراج العشوائي 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' أنا + تيسي'. إذا احتاج اللاعب إلى رمي عملة معدنية (أي أنه لم ير أغلبية تزيد عن 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}، ثم عن طريق الخاصية (د) من Lemma 5.5، لم يكن هناك مدقق صادق في HSV r,s′ ليرى أكثر من 2/3 أغلبية لبعض الوقت ب′̸= ب. منذ lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) = b مع احتمال 1/2، جميع المتحققين الصادقين في نطاق HSV r,s′ اتفاق على ب مع احتمال 1/2. وبطبيعة الحال، إذا لم يكن مثل هذا المتحقق موجودا، فهذا يعني أن كل شيء يتفق المدققون الصادقون في 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 = ح2(1+ح−ح2) 2 . علاوة على ذلك، من خلال الاستقراء على تصويت الأغلبية كما كان من قبل، فإن جميع المتحققين الصادقين في HSV r,s' لديهم مجموعة السادس الخاصة بهم أن يكون ح(ر \(\ell\)). وبالتالي، بمجرد التوصل إلى اتفاق بشأن b في الخطوة s′، يكون T r+1 كذلك إما \(\geq\)T r + lect + ts′+1 أو \(\geq\)T r + lect + ts′+2، اعتمادًا على ما إذا كان b = 0 أو b = 1، بعد تحليل الحالتين 2.1.a و2.1.b. في على وجه الخصوص، لن يتم تنفيذ أي خطوة أخرى مقلوبة العملة بشكل حقيقي: أي أن القائمين على التحقق في ولا تزال مثل هذه الخطوات تتحقق من أنهم هم المتحققون، وبالتالي ينتظرون، لكنهم جميعًا سيتوقفون دون ذلك نشر أي شيء. وفقًا لذلك، قبل الخطوة s∗، يتم توزيع عدد مرات تنفيذ خطوات Coin-GenuinelyFlipped وفقًا للمتغير العشوائي Lr. ترك الخطوة s′ تكون الخطوة الأخيرة التي تم قلب العملة بشكل حقيقي وفقًا لـ Lr، من خلال إنشاء البروتوكول لدينا ق′ = 4 + 3Lr. متى يجب على الخصم أن يجعل الخطوة تحدث إذا أراد تأخير T r+1 بنفس القدر ممكن؟ يمكننا حتى أن نفترض أن الخصم يعرف إدراك Lr مقدمًا. إذا s∗> s′ فلا فائدة منه، لأن المحققين الصادقين قد توصلوا بالفعل إلى اتفاق في الخطوة س'. من المؤكد أنه في هذه الحالة s∗ ستكون s′ +1 أو s′ +2، مرة أخرى اعتمادًا على ما إذا كانت b = 0 أو b = 1. ومع ذلك، هذه هي الحالتان 2.1.a و2.1.b، والناتج T r+1 هو بالضبط نفس كما في هذه الحالة. وبشكل أكثر دقة، T r+1 \(\geq\)T r + lect + ts∗\(\geq\)T r + lect + ts'+2. إذا كانت s∗< s′ −3 — أي s∗ موجودة قبل الخطوة الثانية الأخيرة التي تم قلب العملة بها بالفعل — إذن بواسطة تحليل الحالتين 2.2.أ و2.2.ب، T r+1 \(\geq\)T r + lect + ts∗+3 < T r + lect + ts′. وهذا يعني أن الخصم يجعل الاتفاق على Br يحدث بشكل أسرع. إذا كانت s∗= s′ −2 أو s′ −1 —أي خطوة العملة الثابتة إلى 0 أو خطوة العملة الثابتة إلى 1 مباشرة قبل الخطوة s′ — ثم من خلال تحليل الحالات الفرعية الأربع، المتحققون الصادقون فيها لم تعد الخطوات قادرة على رمي العملات المعدنية بعد الآن، لأنها إما توقفت دون أن تنتشر، أو شاهدت أكثر من 2/3 أغلبية لنفس البت ب. لذلك لدينا T r+1 \(\geq\)T r + lect + ts∗+3 \(\geq\)T r + lect + ts'+2.باختصار، بغض النظر عن ما هو موجود، لدينا تي ص+1 \(\geq\)T ص + روس + ts'+2 = تي ص + LA + t3Lr+6 = تي ص + Λ + (2(3Lr + 6) −3)Λ + Λ = تي ص + (6 لتر + 10) Λ + Λ، كما أردنا أن نظهر. أسوأ الحالات هي عندما تحدث s∗= s′ −1 والحالة 2.2.b. الجمع بين الحالتين 1 و 2 من بروتوكول BA الثنائي، يحمل Lemma 5.3. ■ 5.9 أمن البذرة Qr واحتمال وجود قائد صادق يبقى أن نثبت Lemma 5.4. تذكر أن أدوات التحقق في الجولة r مأخوذة من PKr−k و يتم اختيارها وفقا للكمية Qr−1. سبب تقديم معلمة الرجوع إلى الخلف k هو التأكد من ذلك، عند الجولة r −k، عندما يكون الخصم قادرًا على إضافة مستخدمين ضارين جدد إلى PKr−k، لا يمكنه التنبؤ بالكمية Qr−1 إلا باحتمال ضئيل. لاحظ أن الدالة hash هي دالة عشوائية oracle وQr−1 هي أحد مدخلاتها عند اختيار أدوات التحقق للجولة r. وبالتالي، بغض النظر عن كيفية إضافة المستخدمين الضارين إلى PKr−k، من وجهة نظر الخصم لا يزال يتم اختيار واحد منهم ليكون المدقق في خطوة الجولة r مع الاحتمال المطلوب p (أو ص1 للخطوة 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)st صادق هو (1 −h)xh. إذا كانت \(\ell\) \(\gamma\) صادقة، فإن Q\(\gamma\) = H(SIG\(\ell\) \(\gamma\)(Q\(\gamma\)−1), \(\gamma\)). حيث أن الخصم لا يستطيع تزوير التوقيع من \(\ell\) \(\gamma\)، يتم توزيع Q\(\gamma\) بشكل موحد عشوائيًا من وجهة نظر الخصم، باستثناء مع احتمال صغير بشكل كبير، لم يتم الاستعلام عن H عند الجولة r -k. منذ كل Q\(\gamma\)+1، Q\(\gamma\)+2، . . . ، Qr−1 على التوالي هو إخراج H مع Q\(\gamma\)، Q\(\gamma\)+1، . . . ، Qr−2 كأحد المدخلات، تبدو جميعها عشوائية بالنسبة للخصم ولا يمكن للخصم الاستعلام عن Qr−1 إلى H عند جولة ص -ك. وبناءً على ذلك، فهي الحالة الوحيدة التي يستطيع فيها الخصم التنبؤ بـ Qr−1 باحتمالية جيدة عند الجولة r−k هو عندما يكون جميع القادة \(\ell\)r−k, . . . ، \(\ell\)r−1 ضارة. فكر مرة أخرى في الجولة \(\gamma\) \(\in\){r−k . . . ، ص−1} والتقليب العشوائي على PK\(\gamma\)−k الناجم عن قيم hash المقابلة. إذا للبعض x \(\geq\)2، أول مستخدمي x −1 في التقليب جميعهم ضارون وx-th صادقون، ثم لدى الخصم 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 للمستخدم الصادق التوقيع، وبالتالي لا يمكن تحديد عدد x(Q\(\gamma\)) للمستخدمين الضارين في البداية لكل 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 X أنا = 0 (1 - ح) اه !x - ص−2 X أنا = 0 (1 - ح) اه !x = (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) + X ض\(\geq\)2 ف(س، ض) ف(ض، ص) = X ض\(\geq\)2 ف(س، ض) ف(ض، ص).بترك ¯h \(\triangleq\)1 −h، لدينا P(x, y) = (1 −¯hy)x −(1 −¯hy−1)x و ف (2)(س، ص) = X ض\(\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 ¯ح→0 2¯ح = 0. عندما يكون h قريبًا بدرجة كافية من 1,23 يكون لدينا ف (2)(س، ص) ف(س، ص) \(\geq\)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 (ك)(x, y) = P (k−1)(x, 0)P(0, y) + X ض\(\geq\)2 P (k−1)(x, z)P(z, y) = X ض\(\geq\)2 ف (ك−1)(س، ض)ف(ض، ص) \(\geq\) X ض\(\geq\)2 ف(س، ض) 2k−2 \(\cdot\) ف(ض، ص) = ف (2)(س، ص) 2k−2 \(\geq\)P(س، ص) 2ك−1 . نظرًا لأن P (x، y) \(\geq\)1، بعد جولات 1−log2 F، فإن احتمال الانتقال إلى أي حالة y \(\geq\)2 لا يكاد يذكر، بدءًا من أي حالة x \(\geq\)2. على الرغم من وجود العديد من هذه الحالات، فمن السهل رؤية ذلك ليم ص →+∞ ف(س، ص) ف(س، ص + 1) = ليم ص →+∞ (1 −¯hy)x −(1 −¯hy−1)x (1 −¯hy+1)x −(1 −¯hy)x = ليم ص →+∞ ¯hy−1 −¯hy ¯هي −¯هي+1 = 1 ¯ ح = 1 1 - ح. لذلك فإن كل صف x من مصفوفة الانتقال P يتناقص كتسلسل هندسي بمعدل 1 1−ح> 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). وهكذا يحمل Lemma 5.6. ■ ليما 5.4. (أعيد ذكرها) الخصائص المعطاة 1–3 لكل جولة قبل r، ph = h2(1 + h −h2) لـ Lr، والقائد \(\ell\)r صادق مع احتمال ph على الأقل. 23 على سبيل المثال، h = 80% كما هو مقترح من خلال الاختيارات المحددة للمعلمات.
دليل. بعد Lemma 5.6، لا يستطيع الخصم التنبؤ بعودة Qr−1 إلى الجولة r −k إلا مع احتمال ضئيل. لاحظ أن هذا لا يعني أن احتمالية وجود قائد نزيه ضئيلة كل جولة. في الواقع، نظرًا لـ Qr−1، اعتمادًا على عدد المستخدمين الضارين الموجودين في البداية التقليب العشوائي لـ PKr−k، قد يكون لدى الخصم أكثر من خيار لـ Qr و وبالتالي يمكن أن يزيد من احتمال وجود زعيم خبيث في الجولة r + 1 — مرة أخرى نعطيه بعض المزايا غير الواقعية كما في Lemma 5.6، وذلك لتبسيط التحليل. ومع ذلك، بالنسبة لكل Qr−1 لم يتم الاستعلام عنه إلى H بواسطة الخصم عند الجولة r −k، لـ أي x \(\geq\)1، مع احتمال (1 −h)x−1h ظهور أول مستخدم صادق في الموضع x في النتيجة الناتجة التقليب العشوائي لـ PKr−k. عندما يكون x = 1، يكون احتمال وجود قائد صادق في الجولة r + 1 هو في الواقع ح؛ بينما عندما تكون x = 2، يكون لدى الخصم خياران لـ Qr والاحتمال الناتج هو h2. فقط من خلال النظر في هاتين الحالتين، لدينا احتمال وجود زعيم صادق في الجولة 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 + ح -ح2). وبالتالي ph = h2(1 + h −h2) لـ Lr وLemma 5.4. ■
Algorand '
2 이 섹션에서는 다음 가정 하에 작동하는 Algorand ' 버전을 구성합니다. 정직한 다수의 사용자 가정: 각 PKr의 사용자 중 2/3 이상이 정직합니다. 섹션 8에서는 위의 가정을 원하는 정직한 다수로 대체하는 방법을 보여줍니다. 돈 가정. 6.1 Algorand ′에 대한 추가 표기법 및 매개변수 2 표기법 • \(\mu\) \(\in\)Z+: 압도적인 확률로, 단계 수에 대한 실용적인 상한 실제로는 한 라운드에 완료됩니다. (앞으로 살펴보겠지만 매개변수 μ는 임시 변수의 수를 제어합니다. 각 라운드마다 사용자가 미리 준비하는 키입니다.) • Lr: 1을 확인하는 데 필요한 베르누이 시행 횟수를 나타내는 무작위 변수입니다. 시행은 확률이 ph인 경우 1입니다. 2 . Lr은 생성에 필요한 시간의 상한을 지정하는 데 사용됩니다. 블록 브롬 • tH: 라운드 r의 s > 1 단계에서 정직한 검증자 수에 대한 하한입니다. 압도적인 확률(n과 p가 주어지면) SV r,s에는 > tH개의 정직한 검증자가 있습니다. 매개변수 • 다양한 매개변수 간의 관계. — 라운드 r의 각 단계 s > 1에 대해 압도적인 확률로 n이 선택됩니다.
|HSV r,s| > 일 그리고 |HSV r,s| + 2|MSV r,s| < 2tH. 위의 두 부등식은 |HSV r,s|를 의미합니다. > 2|MSV r,s|: 즉, 선택된 검증자 중 2/3가 정직한 다수입니다. h 값이 1에 가까울수록 n은 더 작아야 합니다. 특히, 우리는 (변종 of) 원하는 조건이 압도적인 확률로 유지되도록 Chernoffbounds. • 중요한 매개변수의 예시 선택. — F = 10−18. — n \(\approx\)4000, tH \(\approx\)0.69n, k = 70. 6.2 Algorand '에서 임시 키 구현 2 검증자 i \(\in\)SV r,s가 자신의 메시지 mr,s에 디지털 방식으로 서명한다는 점을 기억하세요. 나 라운드 r의 단계 s에 대해 임시 공개 키 pkr,s i , 임시 비밀 키 skr을 사용하여 나 그는 즉시 파괴한다 사용 후. 라운드에서 취할 수 있는 가능한 단계 수가 주어진 단계로 제한되는 경우 정수 \(\mu\), 우리는 임시 키를 실제로 처리하는 방법을 이미 살펴보았습니다. 예를 들어, 우리는 Algorand '에서 설명했습니다. 1(여기서 \(\mu\) = m + 3), 가능한 모든 임시 키를 처리하려면 라운드 r'에서 라운드 r' + 106으로, i는 PMK 공개 마스터인 쌍(PMK, SMK)을 생성합니다. 신원 기반 서명 체계의 키 및 SMK에 해당하는 비밀 마스터 키. 사용자 i PMK를 공개하고 SMK를 사용하여 가능한 각 임시 공개 키의 비밀 키를 생성합니다. (그리고 그렇게 한 후 SMK를 파괴합니다). 관련에 대한 i의 임시 공개 키 세트 라운드는 S = {i} \(\times\) {r′, . . . , r' + 106} \(\times\) {1, . . . , \(\mu\)}. (논의된 바와 같이, 라운드 r' + 106이 접근함에 따라, 나는 그의 쌍(PMK, SMK)을 "새로 고침"합니다.) 실제로 \(\mu\)가 충분히 크면 Algorand '의 라운드가 됩니다. 2는 \(\mu\) 단계 이상 걸리지 않습니다. 에서 그러나 원칙적으로는 어떤 라운드에서는 단계 수가 줄어들 가능성이 희박합니다. 실제로 복용하면 μ를 초과합니다. 이런 일이 발생하면 저는 그의 메시지에 서명할 수 없습니다. 나 에 대한 모든 단계 s > \(\mu\), 왜냐하면 그는 라운드 r에 대해 \(\mu\) 비밀 키만 미리 준비했기 때문입니다. 게다가 그는 앞서 논의한 것처럼 임시 키의 새로운 보관을 준비하고 공개할 수 없었습니다. 사실 할 일은 따라서 그는 새 블록에 새로운 공개 마스터 키 PMK'를 삽입해야 합니다. 하지만 r을 반올림해야 합니다. 점점 더 많은 단계를 수행하면 새 블록이 생성되지 않습니다. 그러나 해결책이 존재합니다. 예를 들어, i는 라운드 r, pkr,μ의 마지막 임시 키를 사용할 수 있습니다. 나 , 다음과 같이. 그는 라운드 r에 대한 또 다른 키 쌍 숨김을 생성합니다. 예를 들어 (1) 다른 키 쌍을 생성합니다. 마스터 키 쌍(PMK, SMK) (2) 이 쌍을 사용하여 또 다른 106개의 임시 키를 생성합니다. sk r,μ+1 나 , . . . , SK r,μ+106 나 , 라운드 r의 단계 \(\mu\)+1, ..., \(\mu\)+106에 해당합니다. (3) skr,μ 사용 나 디지털 방식으로 pkr,μ를 기준으로 PMK(및 i \(\in\)SV r,μ인 경우 모든 (r,μ)-메시지)에 서명합니다. 나 ; (4) SMK 및 skr 삭제,μ 나 . 나는 s \(\in\){1, . . . , 106}, 그런 다음 나는 그의 (r, \(\mu\) + s)에 디지털 서명을 합니다. 메시지 Mr,μ+s 나 그의 새 키 pk와 관련하여 r,μ+s 나 = (i, r, \(\mu\) + s). 물론 이 서명을 확인하려면 i의 경우, 다른 사람들은 이 공개 키가 i의 새로운 공개 마스터 키 PMK와 일치하는지 확인해야 합니다. 따라서 이 서명에 추가로 i는 pkr,μ를 기준으로 PMK의 디지털 서명을 전송합니다. 나 . 물론, 이 접근법은 필요한 만큼 반복될 수 있습니다. 라운드 r이 계속되어야 합니다. 점점 더 많은 단계를 위해! 마지막 임시 비밀 키는 새로운 마스터 퍼블릭을 인증하는 데 사용됩니다. 키, 즉 라운드 r에 대한 또 다른 임시 키가 숨겨져 있습니다. 등.6.3 실제 프로토콜 Algorand ' 2 라운드 r의 각 단계 s에서 검증자 i \(\in\)SV r,s가 자신의 장기 공개 비밀을 사용한다는 점을 다시 상기하세요. 그의 자격 증명 \(\sigma\)r,s를 생성하기 위한 키 쌍 나 \(\triangleq\)SIGi(r, s, Qr−1) 및 SIGi Qr−1 s = 1인 경우. 검증자 i는 자신의 임시 키 쌍(pkr,s)을 사용합니다. 나, skr, s i ), 다른 메시지 m에 서명하려면 필수. 단순화를 위해 sigpkr,s 대신 esigi(m)을 씁니다. i(m), i의 적절한 임시를 나타냅니다. 이 단계에서 m의 서명을 입력하고 SIGpkr,s 대신 ESIGi(m)을 작성합니다. i(m) \(\triangleq\)(i, m, esigi(m)). 1단계: 블록 제안 모든 사용자 i \(\in\)PKr−k를 위한 지침: 사용자 i는 라운드 r의 1단계를 시작하자마자 자신의 라운드 r을 시작합니다. CERT r−1, 이를 통해 i는 H(Br−1) 및 Qr−1을 명확하게 계산할 수 있습니다. • 사용자 i는 Qr−1을 사용하여 i \(\in\)SV r,1인지 여부를 확인합니다. i /\(\in\)SV r,1이면 그는 1단계에서 아무것도 하지 않습니다. • i \(\in\)SV r,1, 즉 i가 잠재적 리더라면 그는 다음을 수행합니다. (a) 내가 B0을 본 적이 있다면, . . . , Br−1 자신(모든 Bj = Bj 는 hash 값에서 쉽게 파생될 수 있습니다. CERT j에서 "본" 것으로 간주됨) 그런 다음 그는 라운드 R 지불금을 수집합니다. 지금까지 그에게 전파되어 최대 지불 세트 PAY r을 계산합니다. 나는 그들에게서. (b) B0을 모두 보지 못했다면, . . . , Br-1이지만 PAY r을 설정합니다. 나는 = \(\emptyset\). (c) 다음으로, 나는 그의 "후보 블록" Br을 계산합니다. 나는 = (r, 지불 r i , SIGi(Qr−1), H(Br−1)). (c) 마지막으로, i는 메시지 mr,1을 계산합니다. 나 = (Br i , Esigi(H(Br i )), \(\sigma\)r,1 i), 그의 일시적인 것을 파괴한다 비밀키 skr,1 i , 그런 다음 mr,1이라는 두 개의 메시지를 전파합니다. 나 그리고 (SIGi(Qr−1), \(\sigma\)r,1 나), 별도로 그러나 동시에.a ai가 리더일 때 SIGi(Qr−1)은 다른 사람들이 Qr = H(SIGi(Qr−1), r)을 계산하도록 허용합니다.
선택적 전파 1단계와 전체 라운드의 전역 실행을 단축하려면 (r, 1)- 메시지는 선택적으로 전파됩니다. 즉, 시스템의 모든 사용자 j에 대해 • 그가 수신하고 성공적으로 확인한 첫 번째 (r, 1) 메시지에 대해 a가 포함되어 있는지 여부 블록이거나 Qr−1의 자격 증명 및 서명인 경우 플레이어 j는 이를 평소대로 전파합니다. • 플레이어 j가 수신하고 성공적으로 확인한 다른 모든 (r, 1) 메시지에 대해 그는 전파합니다. 포함된 자격 증명의 hash 값이 hash 값 중에서 가장 작은 경우에만 해당됩니다. 그가 수신하고 성공적으로 확인한 모든 (r, 1) 메시지에 포함된 자격 증명 중 멀리. • 그러나 j가 mr,1 형식의 서로 다른 두 개의 메시지를 받으면 나 같은 플레이어 i,b 그에게서 i 자격 증명의 hash 값에 관계없이 두 번째 자격 증명을 삭제합니다. 선택적 전파에서는 각 잠재적 리더가 자신의 리더를 전파하는 것이 유용합니다. 자격 증명 \(\sigma\)r,1 나 Mr,1과는 별도로 i :c 작은 메시지는 블록보다 빠르게 전달됩니다. Mr,1의 적시 전파 i 는 포함된 자격 증명에 작은 hash 값이 있는 반면 hash 값이 큰 항목을 빠르게 사라지게 만듭니다. a즉, 모든 서명이 정확하며, mr,1 형식인 경우 i, 블록과 해당 hash이 모두 유효합니다. - j는 포함된 페이세트가 i에 대해 최대인지 여부를 확인하지 않습니다. b그 말은 내가 악의적이라는 뜻이다. c이를 제안한 Georgios Vlachos에게 감사드립니다.2단계: 단계적 합의 프로토콜 GC의 첫 번째 단계 모든 사용자 i \(\in\)PKr−k를 위한 지침: 사용자 i는 라운드 r의 2단계를 시작하자마자 시작합니다. CERT r-1. • 사용자 i는 최대 시간 t2 \(\triangleq\) \(\lambda\) + Λ 동안 기다립니다. 기다리는 동안 나는 다음과 같이 행동합니다. 1. 2\(\lambda\) 시간을 기다린 후 그는 H(\(\sigma\)r,1)과 같은 사용자 \(\ell\)를 찾습니다. \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j) 모두를 위해 자격 증명 \(\sigma\)r,1 j 이는 그가 수신한 성공적으로 검증된 (r, 1) 메시지의 일부입니다. 지금까지.a 2. 만일 그 있다 받은 에 블록 Br-1, 어느 성냥 는 hash 가치 H(Br−1) CERT r−1,b에 포함되어 있고 그가 \(\ell\)a로부터 유효한 메시지를 받았다면 mr,1 \(\ell\) = (Br \(\ell\), 대략\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),c 그러면 나는 기다리기를 멈추고 v′를 설정한다. 나는 \(\triangleq\)(H(Br \(\ell\)), \(\ell\)). 3. 그렇지 않고, 시간 t2가 다 되면 v'를 설정합니다. 나는 \(\triangleq\) \(\bot\). 4. v′의 값이 i가 설정되면 i는 CERT r−1에서 Qr−1을 계산하고 다음을 확인합니다. i \(\in\)SV r,2인지 아닌지. 5. i \(\in\)SV r,2이면 i는 메시지 mr,2를 계산합니다. 나 \(\triangleq\)(ESIGi(v′ 나), \(\sigma\)r,2 i ),d는 그의 일시적인 것을 파괴한다 비밀키 skr,2 i , 그런 다음 mr,2를 전파합니다. 나. 그렇지 않으면 전파하지 않고 중지됩니다. 무엇이든. a본질적으로 사용자 i는 라운드 r의 리더가 사용자 \(\ell\)임을 개인적으로 결정합니다. b물론 CERT r−1이 Br−1 = Br−1임을 나타내는 경우 ? , 그렇다면 그가 Br−1을 받은 순간 나는 이미 Br−1을 “받았습니다”. CERT r-1. c다시 말하지만, 플레이어 \(\ell\)의 서명과 hashes가 모두 성공적으로 검증되었으며 PAY r \(\ell\)in Br \(\ell\)는 다음에 대한 유효한 지불 세트입니다. 라운드 r — PAY r인지 확인하지는 않지만 \(\ell\)는 \(\ell\)또는 \(\ell\)에 대해 최대값입니다. 만약 Br \(\ell\)에 빈 페이세트가 포함되어 있는 경우 실제로 Br인지 확인하기 전에 Br−1을 볼 필요가 없습니다. \(\ell\)는 유효한지 아닌지입니다. d메시지 Mr,2 나 플레이어 i가 v'의 첫 번째 구성 요소를 고려한다는 신호 나는 다음 블록의 hash이 됩니다. 또는 다음 블록이 비어 있는 것으로 간주합니다.
3단계: GC의 두 번째 단계 모든 사용자 i \(\in\)PKr−k를 위한 지침: 사용자 i는 라운드 r의 3단계를 시작하자마자 시작합니다. CERT r-1. • 사용자 i는 최대 시간 t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ 동안 기다립니다. 기다리는 동안 나는 다음과 같은 역할을 한다. 다음과 같습니다. 1. 적어도 tH개의 유효한 메시지를 수신한 값 v가 존재하는 경우 mr,2 j 의 형식 (ESIGj(v), \(\sigma\)r,2 j) 아무런 모순 없이 a 그런 다음 그는 기다리기를 멈추고 설정합니다. v' = v. 2. 그렇지 않고, 시간 t3이 다 되면 v' = \(\bot\)로 설정합니다. 3. v'의 값이 설정되면 i는 CERT r−1에서 Qr−1을 계산하고 다음을 확인합니다. i \(\in\)SV r,3인지 아닌지. 4. i \(\in\)SV r,3이면 i는 mr,3 메시지를 계산합니다. 나 \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 i), 그의 것을 파괴한다 임시 비밀 키 skr,3 i, 그런 다음 mr,3을 전파합니다. 나. 그렇지 않으면 나는 없이 멈춘다 무엇이든 전파합니다. a즉, 그는 각각 ESIGj(v)와 다른 ESIGj(ˆv)를 포함하는 두 개의 유효한 메시지를 수신하지 못했습니다. j 선수로부터. 나중에 정의되는 종료 조건을 제외하고 여기서부터, 정직한 플레이어가 특정 형식의 메시지를 원할 경우 서로 모순되는 메시지는 계산되지 않거나 유효한 것으로 간주되지 않습니다.
4단계: GC의 출력과 BBA의 첫 번째 단계⋆ 모든 사용자 i \(\in\)PKr−k를 위한 지침: 사용자 i는 다음과 같이 라운드 r의 4단계를 시작합니다. 스스로 3단계를 마친다. • 사용자 i는 최대 2\(\lambda\).a 동안 대기합니다. 대기하는 동안 i는 다음과 같이 행동합니다. 1. 그는 GC의 출력인 vi와 gi를 다음과 같이 계산합니다. (a) v′ ̸= \(\bot\) 적어도 tH개의 유효한 메시지를 수신한 값이 존재하는 경우 씨,3 j = (ESIGj(v′), \(\sigma\)r,3 j ), 그 다음 그는 기다리기를 멈추고 vi \(\triangleq\)v′ 및 gi \(\triangleq\)2를 설정합니다. (b) 만약 그가 적어도 tH개의 유효한 메시지를 받았다면 mr,3 j = (ESIGj(\(\bot\)), \(\sigma\)r,3 j ) 그런 다음 그는 멈춥니다. 기다리고 vi \(\triangleq\) \(\bot\) 및 gi \(\triangleq\)0.b를 설정합니다. (c) 그렇지 않고, 시간 2\(\lambda\)가 다 되었을 때, v′ ̸= \(\bot\)라는 값이 존재한다면 그는 다음과 같습니다. 최소 ⌈tH를 받았습니다 2 ⌉유효한 메시지 mr,j 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 값이 설정되면 i는 BBA⋆의 입력인 bi를 다음과 같이 계산합니다. gi = 2이면 bi \(\triangleq\)0이고, 그렇지 않으면 bi \(\triangleq\)1입니다. 3. i는 CERT r−1에서 Qr−1을 계산하고 i \(\in\)SV r,4인지 여부를 확인합니다. 4. i \(\in\)SV r,4이면 그는 메시지 mr,4를 계산합니다. 나 \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i), 그의 것을 파괴한다 임시 비밀 키 skr,4 i , 그리고 mr,4를 전파합니다. 나. 그렇지 않으면 전파하지 않고 중지됩니다. 무엇이든. a따라서 i가 라운드 r의 1단계를 시작한 이후 최대 총 시간은 t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ가 될 수 있습니다. b단계 (b)가 프로토콜에 있는지 여부는 정확성에 영향을 미치지 않습니다. 그러나 단계 (b)의 존재 충분히 많은 3단계 검증자가 "\(\bot\)에 서명"한 경우 4단계가 2\(\lambda\) 미만의 시간 내에 끝날 수 있습니다. c이 경우 v′가 존재한다면 고유해야 함을 증명할 수 있습니다.단계 s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ‚0 mod 3: BBA⋆의 코인 고정-0 단계 모든 사용자 i \(\in\)PKr−k를 위한 지침: 사용자 i는 다음과 같이 라운드 r의 단계 s를 시작합니다. 자신의 단계 s-1을 완료합니다. • 사용자 i는 최대 2\(\lambda\).a 동안 대기합니다. 대기하는 동안 i는 다음과 같이 행동합니다. – 종료 조건 0: 임의의 지점에 문자열 v ̸= \(\bot\)과 단계 s′가 존재하는 경우 (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 pho mod 3 — 즉, s′ 단계는 Coin-Fixed-To-0 단계입니다. (b) 나는 적어도 tH개의 유효한 메시지 mr,s'-1을 수신했습니다. j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),b 그리고 (c) 나는 유효한 메시지(SIGj(Qr−1), \(\sigma\)r,1)를 수신했습니다. j ) j가 두 번째임 v의 구성 요소, 그런 다음 나는 기다리는 것을 멈추고 자신의 Step s 실행을 종료합니다(실제로는 r 라운드에서도). (r, s) 검증자로서 아무것도 전파하지 않고 즉시; H(Br)을 첫 번째로 설정합니다. v의 구성요소; 그리고 자신의 CERT r을 메시지 mr,s′-1의 집합으로 설정합니다. j (b) 단계 (SIGj(Qr−1), \(\sigma\)r,1과 함께 j).c – 종료 조건 1: 어느 시점에 다음과 같은 단계 s'가 존재하는 경우 (a') 6 \(\leq\)s' \(\leq\)s, s' −2 pho1 mod 3 — 즉, 단계 s'는 Coin-Fixed-To-1 단계이고, (b') 나는 적어도 tH개의 유효한 메시지 mr,s'-1을 수신했습니다. j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),디 그러면 나는 기다리는 것을 멈추고 그 자신의 Step s(그리고 실제로는 r 라운드)의 실행을 종료합니다. (r, s)-검증자로서 아무것도 전파하지 않고 멀리 갑니다. Br = Br로 설정 ? ; 그리고 자신이 설정한 CERT r은 메시지 mr,s′−1의 집합입니다. j 하위 단계 (b'). – 만약에 ~에 어떤 포인트 그 있다 받은 ~에 최소한 tH 유효한 씨,s−1 j 의 의 는 형태 (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), 그런 다음 그는 기다리기를 멈추고 bi \(\triangleq\)1을 설정합니다. – 만약에 ~에 어떤 포인트 그 있다 받은 ~에 최소한 tH 유효한 씨,s−1 j 의 의 는 형태 (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), 하지만 동일한 v에 동의하지 않으면 그는 중지합니다. 기다리고 bi \(\triangleq\)0을 설정합니다. – 그렇지 않고, 시간 2\(\lambda\)가 다 되면 bi \(\triangleq\)0을 설정합니다. – bi 값이 설정되면 i는 CERT r−1에서 Qr−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을 파괴합니다. 나 , 그리고 나서 Mr,s를 전파합니다 나. 그렇지 않으면 아무것도 전파하지 않고 중지됩니다. a따라서 i가 라운드 r의 1단계를 시작한 이후 최대 총 시간은 ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3) \(\lambda\) + Λ. b플레이어 j로부터의 이러한 메시지는 플레이어 i가 1에 서명한 j로부터 메시지를 받은 경우에도 계산됩니다. 엔딩 조건 1도 비슷한 내용입니다. 분석에서 보듯이 이는 모든 정직한 사용자가 알 수 있도록 하기 위한 것입니다. CERT r은 서로 시간 \(\lambda\) 내에 있습니다. c사용자 i는 이제 H(Br)와 자신의 라운드 r 완료를 알고 있습니다. 그는 실제로 블록 Br이 나올 때까지 기다려야 합니다. 그 사람에게 전파되므로 추가 시간이 걸릴 수 있습니다. 그는 여전히 일반 사용자로서 메시지 전파를 돕고 있습니다. 그러나 (r, s) 검증자로서 전파를 시작하지는 않습니다. 특히 그는 모든 메시지를 전파하는 데 도움을 주었습니다. 그의 CERT r은 우리 프로토콜에 충분합니다. 바이너리 BA 프로토콜에 대해서도 bi \(\triangleq\)0을 설정해야 한다는 점에 유의하세요. 어쨌든 이 경우에는 bi가 필요하지 않습니다. 향후 모든 지침에 대해서도 유사합니다. d이 경우 vj가 무엇인지는 중요하지 않습니다. 65단계 s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ל1 mod 3: BBA⋆의 동전 고정 1 단계 모든 사용자 i \(\in\)PKr−k를 위한 지침: 사용자 i는 다음과 같이 라운드 r의 단계 s를 시작합니다. 자신의 단계 s-1을 완료합니다. • 사용자 i는 최대 2\(\lambda\)의 시간을 기다립니다. 기다리는 동안 나는 다음과 같이 행동합니다. – 종료 조건 0: Coin-Fixed-To-0 단계와 동일한 지침입니다. – 종료 조건 1: Coin-Fixed-To-0 단계와 동일한 지침입니다. – 만약에 ~에 어떤 포인트 그 있다 받은 ~에 최소한 tH 유효한 씨,s−1 j 의 의 는 형태 (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), 그런 다음 그는 기다리기를 멈추고 bi \(\triangleq\)0.a를 설정합니다. – 그렇지 않고, 시간 2\(\lambda\)가 다 되면 bi \(\triangleq\)1을 설정합니다. – bi 값이 설정되면 i는 CERT r−1에서 Qr−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을 파괴합니다. 나 , 그리고 나서 Mr,s를 전파합니다 나. 그렇지 않으면 아무것도 전파하지 않고 중지됩니다. a1에 대한 유효한 (r, s -1) 메시지 서명을 수신하면 종료 조건 1을 의미합니다. 단계 s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ל2 mod 3: BBA⋆의 동전 뒤집기 단계 모든 사용자 i \(\in\)PKr−k를 위한 지침: 사용자 i는 다음과 같이 라운드 r의 단계 s를 시작합니다. 자신의 단계 s-1을 마칩니다. • 사용자 i는 최대 2\(\lambda\)의 시간을 기다립니다. 기다리는 동안 나는 다음과 같이 행동합니다. – 종료 조건 0: Coin-Fixed-To-0 단계와 동일한 지침입니다. – 종료 조건 1: Coin-Fixed-To-0 단계와 동일한 지침입니다. – 만약에 ~에 어떤 포인트 그 있다 받은 ~에 최소한 tH 유효한 씨,s−1 j 의 의 는 형태 (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), 그런 다음 그는 기다리기를 멈추고 bi \(\triangleq\)0을 설정합니다. – 만약에 ~에 어떤 포인트 그 있다 받은 ~에 최소한 tH 유효한 씨,s−1 j 의 의 는 형태 (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), 그런 다음 그는 기다리기를 멈추고 bi \(\triangleq\)1을 설정합니다. – 그렇지 않은 경우, 시간 2\(\lambda\)가 종료되면 SV r,s−1을 허용합니다. 나 (r, s −1)-검증자의 집합이 됩니다. 그는 유효한 메시지를 받았습니다. mr,s−1 j , 나는 bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1을 설정합니다. 나 H(\(\sigma\)r,s−1 j )). – bi 값이 설정되면 i는 CERT r−1에서 Qr−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을 파괴합니다. 나 , 그리고 나서 Mr,s를 전파합니다 나. 그렇지 않으면 아무것도 전파하지 않고 중지됩니다. 주목. 원칙적으로 하위 섹션 6.2에서 고려한 바와 같이 프로토콜은 임의로 많은 수를 취할 수 있습니다. 어떤 라운드의 단계. 이런 일이 발생하면 논의한 대로 s > \(\mu\)인 사용자 i \(\in\)SV r,s가 지쳤습니다.
미리 생성된 임시 키를 보관하고 그의 (r, s) 메시지 mr,s를 인증해야 합니다. 나 에 의해 임시 키의 "계단식". 그래서 내 메시지가 좀 길어지고, 이 메시지를 더 길게 전송하게 되니 메시지를 보내는 데 시간이 조금 더 걸립니다. 따라서 주어진 라운드의 여러 단계를 거친 후에는 매개변수 \(\lambda\)는 자동으로 약간 증가합니다. (단, 새로운 값이 나오면 원래의 \(\lambda\)로 되돌아갑니다. 블록이 생성되고 새로운 라운드가 시작됩니다.) 비검증자에 의한 Round-r 블록 재구성 시스템의 모든 사용자 i를 위한 지침: 사용자 i는 라운드 r을 시작하자마자 자신의 라운드 r을 시작합니다. CERT r-1. • 나는 프로토콜의 각 단계의 지침을 따르고 모든 프로토콜의 전파에 참여합니다. 메시지를 전송하지만, 검증자가 아닌 경우 단계에서 전파를 시작하지 않습니다. • 나는 일부 항목에 종료 조건 0 또는 종료 조건 1을 입력하여 자신의 라운드 r을 종료합니다. 해당 CERT r을 사용하여 단계를 수행합니다. • 이후부터 그는 실제 블록 Br을 받기를 기다리는 동안 r + 1 라운드를 시작합니다. 그는 이미 그것을 받았습니다), 그의 hash H(Br)는 CERT r에 의해 고정되었습니다. 또 만약에 CERT r은 Br = Br임을 나타냅니다. ?, 나는 그가 CERT r을 취득하는 순간 Br을 압니다. 6.4 Algorand ' 분석 2 Algorand '의 분석 2는 Algorand ′의 그것으로부터 쉽게 파생됩니다. 1. 기본적으로 Algorand ' 2, 와 압도적인 확률, (a) 모든 정직한 사용자가 동일한 블록 Br에 동의합니다. 새로운 시대의 리더 블록은 적어도 ph = h2(1 + h −h2)의 확률로 정직합니다.
Algorand ′
2 في هذا القسم، قمنا بإنشاء نسخة من Algorand ′ تعمل وفقًا للافتراض التالي. افتراض الأغلبية الصادقة من المستخدمين: أكثر من 2/3 من المستخدمين في كل PKr صادقون. في القسم 8، نوضح كيفية استبدال الافتراض أعلاه بالأغلبية الصادقة المطلوبة افتراض المال. 6.1 تدوينات ومعلمات إضافية لـ Algorand ′ 2 التدوينات • μ \(\in\)Z+: حد أعلى عملي لعدد الخطوات التي، مع احتمالية ساحقة، سوف تؤخذ فعلا في جولة واحدة. (كما سنرى، تتحكم المعلمة μ في عدد العناصر سريعة الزوال المفاتيح التي يعدها المستخدم مسبقًا لكل جولة.) • Lr: متغير عشوائي يمثل عدد تجارب برنولي اللازمة لرؤية 1 عند كل منها التجربة هي 1 مع احتمال ph 2 . سيتم استخدام Lr للحد الأعلى من الوقت اللازم للتوليد كتلة ر. • tH: الحد الأدنى لعدد المتحققين الصادقين في الخطوة s > 1 من الجولة r، بحيث يكون مع الاحتمالية الساحقة (مع الأخذ في الاعتبار n وp)، يوجد متحققون صادقون في SV r,s. المعلمات • العلاقات بين مختلف المعالم. — لكل خطوة s > 1 من الجولة r، يتم اختيار n بحيث، مع احتمالية ساحقة،
|HSV ص، ق| > ث و |HSV ص، ق| + 2|MSV r,s| <2ث. لاحظ أن المتباينتين أعلاه تشيران معًا إلى |HSV r,s| > 2|MSV r,s|: أي هناك هي أغلبية 2/3 صادقة بين المدققين المختارين. كلما اقتربت قيمة h من 1، كلما كانت قيمة n أصغر. على وجه الخصوص، نستخدم (variants of) Chernofbounds لضمان استمرار الظروف المرغوبة باحتمالية ساحقة. • أمثلة على اختيارات المعلمات الهامة. - و = 10−18. — ن \(\approx\)4000، ث \(\approx\)0.69ن، ك = 70. 6.2 تنفيذ المفاتيح المؤقتة في Algorand ′ 2 تذكر أن المدقق i \(\in\)SV r,s يوقع رقميا على رسالته mr,s أنا من الخطوات s في الجولة r، نسبة إلى مفتاح عام سريع الزوال pkr,s i، باستخدام مفتاح سري سريع الزوال skr,s أنا أنه يدمر على الفور بعد الاستخدام. عندما يتم تحديد عدد الخطوات المحتملة التي قد تتخذها الجولة بواسطة معين عدد صحيح μ، لقد رأينا بالفعل كيفية التعامل عمليًا مع المفاتيح المؤقتة. على سبيل المثال، كما نحن لقد أوضحت في Algorand ′ 1 (حيث μ = m + 3)، للتعامل مع جميع مفاتيحه المؤقتة الممكنة، من من جولة r′ إلى جولة r′ + 106، أقوم بإنشاء زوج (PMK، SMK)، حيث يكون PMK سيدًا عامًا مفتاح نظام التوقيع القائم على الهوية، وSMK مفتاحه الرئيسي السري المقابل. المستخدم ط ينشر PMK ويستخدم SMK لإنشاء المفتاح السري لكل مفتاح عام سريع الزوال (ويدمر SMK بعد القيام بذلك). مجموعة المفاتيح العامة سريعة الزوال للمتعلقات ذات الصلة الجولات هي S = {i} \(\times\) {r′, . . . ، ص' + 106} \(\times\) {1، . . . ، ." (كما تمت مناقشته، مع اقتراب الجولة r′ + 106، أنا "أنعش" زوجه (PMK، SMK).) من الناحية العملية، إذا كانت μ كبيرة بما يكفي، فإن الجولة Algorand ′ 2 لن يستغرق أكثر من μ خطوات. في ومع ذلك، من حيث المبدأ، هناك احتمال بعيد أن يكون هناك عدد من الخطوات لبعض الجولات المتخذة فعلا سوف تتجاوز μ. عندما يحدث هذا، لن أتمكن من التوقيع على رسالته يا سيدي أنا ل أي خطوة s > μ، لأنه قام بإعداد المفاتيح السرية فقط للجولة r مسبقًا. علاوة على ذلك، هو لم يتمكن من إعداد ونشر مجموعة جديدة من المفاتيح سريعة الزوال، كما تمت مناقشته من قبل. في الواقع، للقيام به لذلك، سيحتاج إلى إدراج مفتاح رئيسي عام جديد PMK′ في كتلة جديدة. ولكن، ينبغي جولة ص اتخاذ المزيد والمزيد من الخطوات، لن يتم إنشاء كتل جديدة. ومع ذلك، الحلول موجودة. على سبيل المثال، قد أستخدم آخر مفتاح سريع الزوال للجولة r، pkr، μ أنا , على النحو التالي. يقوم بإنشاء مجموعة أخرى من أزواج المفاتيح للجولة r — على سبيل المثال، عن طريق (1) إنشاء زوج آخر زوج المفاتيح الرئيسي (PMK، SMK)؛ (2) استخدام هذا الزوج لإنشاء 106 مفاتيح سريعة الزوال، على سبيل المثال، كورونا ص، μ+1 أنا ، . . . , كورونا ص، μ+106 أنا ، المقابلة للخطوات μ+1، ...، μ+106 من الجولة r؛ (3) باستخدام skr، μ أنا إلى رقميا قم بتسجيل PMK (وأي رسالة (r, μ) إذا كان i \(\in\)SV r,μ)، نسبة إلى pkr,μ أنا ; و(4) محو SMK وskr,μ أنا . هل يجب أن أصبح مدققًا في خطوة μ + s مع s \(\in\){1, . . . ، 106}، ثم أوقعه رقميًا (r، μ + s)- رسالة السيد، μ+s أنا نسبة إلى مفتاحه الجديد pk ص، μ+س أنا = (ط، ص، μ + ق). بالطبع، للتحقق من هذا التوقيع بالنسبة لـ i، يحتاج الآخرون إلى التأكد من أن هذا المفتاح العام يتوافق مع المفتاح الرئيسي العام الجديد PMK الخاص بـ i. وبالتالي، بالإضافة إلى هذا التوقيع، أقوم بنقل توقيعه الرقمي لـ PMK نسبةً إلى pkr,μ أنا . بالطبع، يمكن تكرار هذا النهج، عدة مرات حسب الضرورة، في حالة استمرار الجولة لمزيد والمزيد من الخطوات! يتم استخدام المفتاح السري الأخير للمصادقة على جمهور رئيسي جديد المفتاح، وبالتالي مجموعة أخرى من المفاتيح سريعة الزوال للجولة r. وهكذا.6.3 البروتوكول الفعلي Algorand ′ 2 تذكر مرة أخرى أنه في كل خطوة من الجولة r، يستخدم المدقق سره العام طويل المدى زوج المفاتيح لإنتاج بيانات الاعتماد الخاصة به، \(\sigma\)r،s أنا \(\triangleq\)SIGi(r, s, Qr−1)، وكذلك SIGi ريال قطري−1 في حالة ق = 1. يستخدم أداة التحقق زوج المفاتيح سريع الزوال، (pkr،s أنا، سكر، ق i )، للتوقيع على أي رسالة أخرى قد تكون كذلك مطلوب. للتبسيط، نكتب esigi(m)، بدلاً من sigpkr,s أنا (م)، للدلالة على أنا سريع الزوال قم بتوقيع m في هذه الخطوة، واكتب ESIGi(m) بدلاً من SIGpkr,s أنا (م) \(\triangleq\)(أنا، م، esigi(م)). الخطوة 1: حظر الاقتراح تعليمات لكل مستخدم i \(\in\)PKr−k: يبدأ المستخدم i الخطوة 1 الخاصة به من الجولة r بمجرد قيامه بذلك CERT r−1، والذي يسمح لي بحساب H(Br−1) وQr−1 بشكل لا لبس فيه. • يستخدم المستخدم i Qr−1 للتحقق مما إذا كان i \(\in\)SV r,1 أم لا. إذا i /\(\in\)SV r,1، فإنه لا يفعل شيئًا للخطوة 1. • إذا كان i \(\in\)SV r,1، أي إذا كنت قائدًا محتملاً، فإنه يقوم بما يلي. (أ) إذا رأيت B0، . . . ، Br−1 نفسه (أي Bj = Bj يمكن استخلاصها بسهولة من قيمتها hash في CERT j ومن ثم يُفترض أنه "تم رؤيته")، ثم يقوم بجمع مدفوعات الجولة r التي لها تم نشره له حتى الآن ويحسب الحد الأقصى لمجموعة الدفع PAY r أنا منهم. (ب) إذا لم أر كل B0، . . . ، Br−1 حتى الآن، ثم يقوم بتعيين PAY r أنا = \(\emptyset\). (ج) بعد ذلك، أقوم بحساب "كتلة مرشحه" Br أنا = (ص، دفع ص أنا، SIGi(Qr−1)، H(Br−1)). (ج) أخيرًا، أقوم بحساب الرسالة السيد،1 أنا = (ر أنا، esigi(H(Br أنا )))، \(\sigma\)ص،1 ط)، يدمر له سريع الزوال المفتاح السري skr,1 i، ثم يقوم بنشر رسالتين، السيد،1 أنا و (SIGi(Qr−1), \(\sigma\)r,1 أنا)، بشكل منفصل ولكن في وقت واحد أعندما أكون القائد، يسمح SIGi(Qr−1) للآخرين بحساب Qr = H(SIGi(Qr−1), r).
الانتشار الانتقائي لتقصير التنفيذ الشامل للخطوة 1 والجولة بأكملها، من المهم أن (r, 1)- يتم نشر الرسائل بشكل انتقائي. أي أنه لكل مستخدم j في النظام، • بالنسبة للرسالة الأولى (r, 1) التي يتلقاها ويتحقق منها بنجاح، سواء كانت تحتوي على كتلة أو مجرد بيانات اعتماد وتوقيع Qr−1، يقوم اللاعب j بنشرها كالمعتاد. • بالنسبة لجميع الرسائل الأخرى (r, 1) التي يتلقاها اللاعب j ويتحقق منها بنجاح، يقوم بنشرها فقط إذا كانت قيمة hash لبيانات الاعتماد التي تحتوي عليها هي الأصغر بين قيم hash من أوراق الاعتماد الواردة في جميع (ص، 1) - الرسائل التي تلقاها والتحقق منها بنجاح بعيدا. • ومع ذلك، إذا تلقى j رسالتين مختلفتين من النموذج mr,1 أنا من نفس اللاعب i,b he يتجاهل القيمة الثانية بغض النظر عن قيمة hash لبيانات اعتماد i. لاحظ أنه في ظل الانتشار الانتقائي، من المفيد أن يقوم كل قائد محتمل بنشر قائده بيانات الاعتماد \(\sigma\)r,1 أنا بشكل منفصل عن السيد،1 i :c تلك الرسائل الصغيرة تنتقل بشكل أسرع من الكتل، تأكد نشر في الوقت المناسب للسيد،1 i حيث تحتوي بيانات الاعتماد المضمنة على قيم hash صغيرة، بينما اجعل تلك ذات القيم الكبيرة hash تختفي بسرعة. أي أن جميع التوقيعات صحيحة، وإذا كانت بصيغة السيد،1 i، كل من الكتلة وhash صالحة - على الرغم من أن j لا يتحقق مما إذا كانت مجموعة الدفعات المضمنة هي الحد الأقصى لـ i أم لا. ب مما يعني أنني خبيث. نشكر جورجيوس فلاشوس على اقتراحه هذا.الخطوة 2: الخطوة الأولى لبروتوكول الإجماع المتدرج GC تعليمات لكل مستخدم i \(\in\)PKr−k: يبدأ المستخدم i الخطوة 2 الخاصة به من الجولة r بمجرد قيامه بذلك CERT ص -1. • ينتظر المستخدم i الحد الأقصى من الوقت t2 \(\triangleq\)lect + Λ. أثناء الانتظار، أتصرف على النحو التالي. 1. بعد الانتظار للوقت 2، وجد المستخدم \(\ell\)مثل أن H(\(\sigma\)r,1 \(\ell\)) \(\geq\)H(\(\sigma\)r,1 ي) للجميع أوراق الاعتماد \(\sigma\)r,1 ي التي تعد جزءًا من الرسائل التي تم التحقق منها بنجاح (r, 1) والتي تلقاها حتى الآن.أ 2. إذا هو لديه تلقى أ كتلة ر−1، الذي مباريات ال hash قيمة ح (ر −1) الواردة في CERT r−1,b وإذا تلقى من \(\ell\)a رسالة صالحة السيد,1 \(\ell\) = (ر \(\ell\)، esig\(\ell\)(H(Br \(\ell\))))، \(\sigma\)ص،1 \(\ell\))،c ثم أتوقف عن الانتظار وأضبط v' أنا \(\triangleq\)(ح(ر \(\ell\))، \(\ell\)). 3. بخلاف ذلك، عندما ينفد الوقت t2، أقوم بتعيين v' أنا \(\triangleq\) \(\bot\). 4. عندما تكون قيمة v′ لقد تم تعييني، أقوم بحساب Qr−1 من CERT r−1 والتحقق من ذلك أنا \(\in\)SV r,2 أم لا. 5. إذا كان i \(\in\)SV r,2، فأنا أحسب الرسالة mr,2 أنا \(\triangleq\)(ESIGi(v') أنا)، \(\sigma\)ص،2 أنا)،د يدمر له سريع الزوال المفتاح السري skr,2 أنا، ثم ينشر السيد،2 أنا. خلاف ذلك، أتوقف دون نشر أي شيء. بشكل أساسي، يقرر المستخدم i بشكل خاص أن قائد الجولة r هو المستخدم \(\ell\). بالطبع، إذا كان CERT r−1 يشير إلى أن Br−1 = Br−1 ƒ ، فقد "استلمت" بالفعل Br−1 في اللحظة التي حصل فيها على ذلك CERT ص -1. cمرة أخرى، تم التحقق بنجاح من توقيعات اللاعب \(\ell\) وhashes، ويتم الدفع \(\ell\)في ر \(\ell\)هي مجموعة دفع صالحة لـ round r - على الرغم من أنني لا أتحقق مما إذا كان PAY r \(\ell\)هو الحد الأقصى لـ \(\ell\)أو لا. إذا ر \(\ell\)يحتوي على مجموعة دفعات فارغة، إذن ليست هناك حاجة في الواقع إلى رؤية Br−1 قبل التحقق مما إذا كان Br \(\ell\)صالحة أم لا. دالرسالة السيد،2 أنا إشارات إلى أن اللاعب i يعتبر المكون الأول لـ v' i ليكون hash للكتلة التالية، أو يعتبر الكتلة التالية فارغة.
الخطوة 3: الخطوة الثانية من GC تعليمات لكل مستخدم i \(\in\)PKr−k: يبدأ المستخدم i الخطوة 3 الخاصة به من الجولة r بمجرد قيامه بذلك CERT ص -1. • ينتظر المستخدم i الحد الأقصى من الوقت t3 \(\triangleq\)t2 + 2ạ = 3ạ + Λ. أثناء الانتظار، أقوم بدور يتبع. 1. إذا كانت هناك قيمة v بحيث أنه تلقى على الأقل رسائل صالحة mr,2 ي من النموذج (ESIGj(v)، \(\sigma\)r،2 ي) دون أي تناقض، ثم ينقطع عن الانتظار ويغرب الخامس' = الخامس. 2. بخلاف ذلك، عند انتهاء الوقت t3، يقوم بتعيين v′ = \(\bot\). 3. عند تعيين قيمة v′، أقوم بحساب Qr−1 من CERT r−1 والتحقق مما إذا كان أنا \(\in\)SV r,3 أم لا. 4. إذا كان i \(\in\)SV r,3، فأنا أحسب الرسالة mr,3 أنا \(\triangleq\)(ESIGi(v′),\(\sigma\)r,3 ط)، يدمر له مفتاح سري سريع الزوال skr،3 أنا، ومن ثم نشر السيد،3 أنا. خلاف ذلك، أتوقف دون نشر أي شيء. أي أنه لم يتلق رسالتين صالحتين تحتويان على ESIGj(v) وESIGj(ˆv) مختلفين على التوالي، من اللاعب j. هنا ومن هنا فصاعدًا، باستثناء شروط النهاية التي سيتم تحديدها لاحقًا، عندما يكون اللاعب صادقًا يريد رسائل ذات شكل معين، فالرسائل المتعارضة مع بعضها البعض لا يتم احتسابها أو اعتبارها صالحة.
الخطوة 4: إخراج GC والخطوة الأولى من BBA⋆ تعليمات لكل مستخدم i \(\in\)PKr−k: يبدأ المستخدم i الخطوة 4 الخاصة به من الجولة r بمجرد أن ينهي الخطوة 3 الخاصة به. • المستخدم i ينتظر الحد الأقصى من الوقت 2 .أ أثناء الانتظار، يتصرف كما يلي. 1. يقوم بحساب vi وgi، مخرجات GC، على النحو التالي. (أ) إذا كانت هناك قيمة v'̸= \(\bot\) بحيث يكون قد تلقى على الأقل رسائل صالحة السيد،3 ي = (ESIGj(v′),\(\sigma\)r,3 j )، ثم يتوقف عن الانتظار ويضبط vi \(\triangleq\)v′ وgi \(\triangleq\)2. (ب) إذا كان قد تلقى على الأقل رسائل صالحة السيد،3 ي = (ESIGj(\(\bot\)), \(\sigma\)r,3 ي)، ثم يتوقف انتظار وضبط vi \(\triangleq\) \(\bot\) وgi \(\triangleq\)0.b (ج) بخلاف ذلك، عندما ينفد الوقت 2، إذا كانت هناك قيمة v' ̸= \(\bot\) بحيث يكون لديه تلقى على الأقل ⌈tH 2 ⌉رسائل صالحة السيد،ي ي = (ESIGj(v′),\(\sigma\)r,3 j )، ثم يقوم بتعيين vi \(\triangleq\)v' وجي \(\triangleq\)1.c (د) بخلاف ذلك، عندما ينفد الوقت 2lect، فإنه يحدد vi \(\triangleq\) \(\bot\) وgi \(\triangleq\)0. 2. عندما يتم تعيين القيم vi وgi، i يحسب bi، مدخل BBA⋆، على النحو التالي: ثنائية \(\triangleq\)0 إذا كانت gi = 2، وbi \(\triangleq\)1 بخلاف ذلك. 3. أنا أحسب Qr−1 من CERT r−1 وأتحقق مما إذا كان i \(\in\)SV r,4 أم لا. 4. إذا كان i \(\in\)SV r,4، فإنه يحسب الرسالة mr,4 أنا \(\triangleq\)(ESIGi(bi)، ESIGi(vi)، \(\sigma\)r،4 ط)، يدمر له مفتاح سري سريع الزوال skr،4 أنا، وينشر السيد،4 أنا. خلاف ذلك، أتوقف دون نشر أي شيء. وبالتالي، فإن الحد الأقصى لإجمالي مقدار الوقت منذ أن بدأت خطوته 1 من الجولة r يمكن أن يكون t4 \(\triangleq\)t3 + 2lect = 5lect + Λ. بسواء كانت الخطوة (ب) موجودة في البروتوكول أم لا، فإن ذلك لا يؤثر على صحتها. إلا أن وجود الخطوة (ب) يسمح للخطوة 4 بالانتهاء في أقل من 2\(\times\) إذا قام العديد من مدققي الخطوة 3 بالتوقيع على "\(\bot\)". جيمكن إثبات أن حرف v في هذه الحالة، إذا كان موجودًا، يجب أن يكون فريدًا.الخطوة s، 5 \(\geq\)s \(\geq\)m + 2، s −2 ≡0 mod 3: خطوة ثابتة بالعملة إلى 0 من BBA⋆ تعليمات لكل مستخدم i \(\in\)PKr−k: المستخدم i يبدأ خطواته الخاصة من الجولة r بمجرد أن أنهى خطوته الخاصة −1. • المستخدم i ينتظر الحد الأقصى من الوقت 2 .أ أثناء الانتظار، يتصرف كما يلي. – شرط النهاية 0: إذا كان هناك في أي نقطة سلسلة v ̸= \(\bot\) وخطوة s′ بحيث (أ) 5 s′s′ \(\geq\)s, s′ −2 ≡0 mod 3 — أي أن الخطوة s′ هي خطوة ثابتة بالعملة إلى 0، (ب) لقد تلقيت على الأقل رسائل صالحة mr,s′−1 ي = (ESIGj(0)، ESIGj(v)، \(\sigma\)r،s'−1 ي ) ،ب و (ج) لقد تلقيت رسالة صالحة (SIGj(Qr−1), \(\sigma\)r,1 j ) مع j كونها الثانية مكون الخامس, ثم أتوقف عن الانتظار وأنهي تنفيذه للخطوة s (وفي الواقع للجولة r) على الفور دون نشر أي شيء باعتباره مدققًا (r, s)؛ يحدد H(Br) ليكون الأول مكون من الخامس؛ ويقوم بتعيين CERT r الخاص به ليكون مجموعة الرسائل mr,s′−1 ي من الخطوة (ب) مع (SIGj(Qr−1), \(\sigma\)r,1 ي).ج – شرط النهاية 1: إذا كان هناك في أي وقت خطوة s′ من هذا القبيل (أ') 6 \(\geq\)s′ \(\geq\)s, s′ −2 ≡1 mod 3 — أي أن الخطوة s′ هي خطوة ثابتة بالعملة إلى 1، و (ب') لقد تلقيت على الأقل رسائل صالحة mr,s'−1 ي = (ESIGj(1)، ESIGj(vj)، \(\sigma\)r,s'−1 ي ) ،د بعد ذلك، أتوقف عن الانتظار وأنهي تنفيذه للخطوة s (وفي الواقع للجولة r) بشكل صحيح بعيدًا دون نشر أي شيء باعتباره مُحققًا (r, s)؛ مجموعات ر = ر ƒ ; ويضع بلده CERT r هي مجموعة الرسائل mr,s′−1 ي من الخطوة الفرعية (ب'). - إذا في أي نقطة هو لديه تلقى في الأقل ث صالح السيد، ق−1 ي ق من ال شكل (ESIGj(1)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يتوقف عن الانتظار ويضبط ثنائية \(\triangleq\)1. - إذا في أي نقطة هو لديه تلقى في الأقل ث صالح السيد، ق−1 ي ق من ال شكل (ESIGj(0)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، لكنهم لا يتفقون على نفس الشيء، ثم يتوقف الانتظار ويحدد ثنائية \(\triangleq\)0. - بخلاف ذلك، عندما ينفد الوقت 2\(\alpha\)، أقوم بتعيين bi \(\triangleq\)0. - عند تعيين القيمة bi، أقوم بحساب Qr−1 من CERT r−1 والتحقق من ذلك أنا \(\in\)SV ص، ق. - إذا كان i \(\in\)SV r,s، أقوم بحساب الرسالة mr,s أنا \(\triangleq\)(ESIGi(bi)، ESIGi(vi)، \(\sigma\)r،s ط) مع وجود السادس القيمة التي حسبها في الخطوة 4، تدمر مفتاحه السري سريع الزوال skr,s أنا، وبعد ذلك ينشر السيد، ق أنا. وإلا فإنني أتوقف دون نشر أي شيء. وبالتالي، فإن الحد الأقصى لإجمالي مقدار الوقت منذ أن بدأت خطوته 1 من الجولة r يمكن أن يكون ts \(\triangleq\)ts−1 + 2lect = (2s −3) lect + Λ. bيتم احتساب هذه الرسالة من اللاعب j حتى لو تلقى اللاعب i أيضًا رسالة من j بالتوقيع برقم 1. أشياء مماثلة لحالة النهاية 1. كما هو موضح في التحليل، هذا للتأكد من أن جميع المستخدمين الصادقين يعرفون ذلك CERT r خلال الوقت π من بعضها البعض. المستخدم يعرف الآن H(Br) ونهاياته الدائرية الخاصة. إنه يحتاج فقط إلى الانتظار حتى تصبح الكتلة Br فعليًا نشر له، الأمر الذي قد يستغرق بعض الوقت الإضافي. لا يزال يساعد في نشر الرسائل كمستخدم عام، لكنه لا يبدأ أي انتشار كمتحقق (r, s). وعلى وجه الخصوص، ساعد في نشر جميع الرسائل في له CERT ص، وهو ما يكفي لبروتوكولنا. لاحظ أنه يجب عليه أيضًا تعيين bi \(\triangleq\)0 لبروتوكول BA الثنائي، ولكن ليست هناك حاجة إلى bi في هذه الحالة على أي حال. أشياء مماثلة لجميع التعليمات المستقبلية. في هذه الحالة، لا يهم ما هي VJ. 65الخطوة s، 6 \(\geq\)s \(\geq\)m + 2، s −2 ≡1 mod 3: خطوة ثابتة بالعملة إلى 1 من BBA⋆ تعليمات لكل مستخدم i \(\in\)PKr−k: المستخدم i يبدأ خطواته الخاصة من الجولة r بمجرد أن أنهى خطوته الخاصة −1. • ينتظر المستخدم الحد الأقصى من الوقت 2 . أثناء الانتظار، أتصرف على النحو التالي. – شرط النهاية 0: نفس التعليمات الموجودة في خطوة العملة الثابتة إلى 0. – شرط النهاية 1: نفس التعليمات الموجودة في خطوة العملة الثابتة إلى 0. - إذا في أي نقطة هو لديه تلقى في الأقل ث صالح السيد، ق−1 ي ق من ال شكل (ESIGj(0)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يتوقف عن الانتظار ويضبط bi \(\triangleq\)0.a - بخلاف ذلك، عندما ينفد الوقت 2π، أقوم بتعيين bi \(\triangleq\)1. - عند تعيين القيمة bi، أقوم بحساب Qr−1 من CERT r−1 والتحقق من ذلك أنا \(\in\)SV ص، ق. - إذا كان i \(\in\)SV r,s، أقوم بحساب الرسالة mr,s أنا \(\triangleq\)(ESIGi(bi)، ESIGi(vi)، \(\sigma\)r،s ط) مع وجود السادس القيمة التي حسبها في الخطوة 4، تدمر مفتاحه السري سريع الزوال skr,s أنا، وبعد ذلك ينشر السيد، ق أنا. وإلا فإنني أتوقف دون نشر أي شيء. لاحظ أن تلقي رسائل صالحة (r, s −1) - توقيع الرسائل لـ 1 يعني حالة النهاية 1. الخطوة s، 7 \(\geq\)s \(\geq\)m + 2، s −2 ≡2 mod 3: خطوة مقلوبة بشكل حقيقي من BBA⋆ تعليمات لكل مستخدم i \(\in\)PKr−k: المستخدم i يبدأ خطواته الخاصة من الجولة r بمجرد أن ينهي خطوته s −1. • ينتظر المستخدم الحد الأقصى من الوقت 2 . أثناء الانتظار، أتصرف على النحو التالي. – شرط النهاية 0: نفس التعليمات الموجودة في خطوة العملة الثابتة إلى 0. – شرط النهاية 1: نفس التعليمات الموجودة في خطوة العملة الثابتة إلى 0. - إذا في أي نقطة هو لديه تلقى في الأقل ث صالح السيد، ق−1 ي ق من ال شكل (ESIGj(0)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يتوقف عن الانتظار ويضبط bi \(\triangleq\)0. - إذا في أي نقطة هو لديه تلقى في الأقل ث صالح السيد، ق−1 ي ق من ال شكل (ESIGj(1)، ESIGj(vj)، \(\sigma\)r،s−1 ي )، ثم يتوقف عن الانتظار ويضبط ثنائية \(\triangleq\)1. - خلاف ذلك، عندما ينفد الوقت 2، السماح لـ SV r,s−1 أنا تكون مجموعة (r, s −1)-المدققين من الذي تلقى رسالة صالحة السيد، ق−1 ي ، أقوم بتعيين bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 أنا ح(\(\sigma\)ص,ق−1 ي )). - عند تعيين القيمة bi، أقوم بحساب Qr−1 من CERT r−1 والتحقق من ذلك أنا \(\in\)SV ص، ق. - إذا كان i \(\in\)SV r,s، أقوم بحساب الرسالة mr,s أنا \(\triangleq\)(ESIGi(bi)، ESIGi(vi)، \(\sigma\)r،s ط) مع وجود السادس القيمة التي حسبها في الخطوة 4، تدمر مفتاحه السري سريع الزوال skr,s أنا، وبعد ذلك ينشر السيد، ق أنا. وإلا فإنني أتوقف دون نشر أي شيء. ملاحظة. من حيث المبدأ، كما هو مذكور في القسم الفرعي 6.2، قد يأخذ البروتوكول عددًا كبيرًا من الأشخاص بشكل تعسفي خطوات في بعض الجولة. في حالة حدوث ذلك، كما تمت مناقشته، فإن المستخدم i \(\in\)SV r,s مع s > μ قد استنفد
مخبأه من المفاتيح المؤقتة التي تم إنشاؤها مسبقًا ويجب عليه مصادقة رسالته (r, s) mr,s أنا بواسطة أ "سلسلة" من المفاتيح سريعة الزوال. وهكذا تصبح رسالتي أطول قليلاً وأرسلها لفترة أطول سوف تستغرق الرسائل وقتًا أطول قليلاً. وبناء على ذلك، بعد العديد من الخطوات لجولة معينة، قيمة ستزداد المعلمة lect بشكل طفيف تلقائيًا. (لكنه يعود إلى الأصل π مرة واحدة جديدة يتم إنتاج الكتلة وتبدأ جولة جديدة.) إعادة بناء كتلة Round-r من قبل غير المتحققين تعليمات لكل مستخدم i في النظام: يبدأ المستخدم i جولته الخاصة بمجرد قيامه بذلك CERT ص -1. • أتبع تعليمات كل خطوة من خطوات البروتوكول، وأشارك في نشره للجميع الرسائل، لكنه لا يبدأ أي نشر في خطوة إذا لم يكن مدققا فيها. • أنهي جولته r بإدخال إما حالة النهاية 0 أو حالة النهاية 1 في البعض الخطوة، مع CERT ص المقابلة. • من الآن فصاعدا، يبدأ جولته r + 1 أثناء انتظار استلام الكتلة الفعلية Br (ما لم لقد استلمها بالفعل)، وتم تثبيت hash H(Br) بواسطة CERT r. مرة أخرى، إذا يشير CERT r إلى أن Br = Br à، أنا أعرف Br في اللحظة التي حصل فيها على CERT r. 6.4 تحليل Algorand ′ 2 تحليل Algorand ′ 2 مشتق بسهولة من Algorand ′ 1. بشكل أساسي، في Algorand ′ 2، مع احتمالية ساحقة، (أ) يتفق جميع المستخدمين الصادقين على نفس الكتلة Br؛ زعيم جديد الكتلة صادقة مع احتمالية على الأقل ph = h2(1 + h −h2).
오프라인 정직한 사용자 처리
우리가 말했듯이, 정직한 사용자는 온라인 접속을 포함하여 자신이 규정한 모든 지침을 따릅니다. 그리고 프로토콜을 실행합니다. 이는 Algorand에서 큰 부담이 되지 않습니다. 정직한 사용자에게 필요한 대역폭은 매우 적당합니다. 하지만 Algorand은(는) 정직한 사용자가 오프라인 상태가 허용되는 두 가지 모델에서 작동하도록 쉽게 수정될 수 있습니다. 큰 숫자. 이 두 가지 모델을 논의하기 전에, 정직한 플레이어의 비율이 95%인 경우에도 Algorand은 h = 80%라고 가정하고 모든 매개변수를 설정하여 계속 실행할 수 있습니다. 따라서 Algorand은 정직한 플레이어의 최대 절반이더라도 계속해서 제대로 작동합니다. 오프라인을 선택했습니다(실제로 '결근'의 주요 사례). 사실, 어느 시점에서든 적어도 온라인 플레이어 중 80%는 정직합니다. 지속적인 참여에서 나태한 정직함으로 보시다시피 Algorand ′ 1 및 Algorand ' 2 선택 되돌아보기 매개변수 k. 이제 k를 적절하게 크게 선택하면 다음을 제거할 수 있음을 보여드리겠습니다. 지속적인 참여 요구 사항. 이 요구 사항은 다음과 같은 중요한 속성을 보장합니다. 기본 BA 프로토콜 BBA⋆는 적절하고 정직한 다수를 가지고 있습니다. 이제 게으른 방법을 설명하겠습니다. 정직함은 이러한 특성을 만족시킬 수 있는 대안적이고 매력적인 방법을 제공합니다.
(1) 사용자 i가 자신이 규정한 모든 지침을 따른다면 게으르지만 정직하다는 점을 기억하세요. 그는 프로토콜에 참여하라는 요청을 받고 (2) 프로토콜에만 참여하도록 요청받습니다. 매우 드물게(예: 일주일에 한 번) 적절한 사전 통지가 있고 잠재적으로 상당한 금액을 받을 수 있습니다. 그가 참여하면 보상을 받습니다. Algorand이 그러한 플레이어와 함께 작업할 수 있도록 하려면 "검증자를 선택하는 것"으로 충분합니다. 훨씬 이전 라운드에 이미 시스템에 있었던 사용자들 사이에서 현재 라운드.” 실제로, 그것을 기억하십시오 라운드 r에 대한 검증자는 라운드 r -k의 사용자 중에서 선택되며 선택은 다음을 기반으로 이루어집니다. 수량 Qr−1에 대해. 일주일은 대략 10,000분으로 구성되며, 라운드는 대략(예: 평균) 5분 정도 걸리므로 일주일에 대략 2,000라운드가 진행됩니다. 가정하다 어떤 시점에서 사용자는 자신의 시간을 계획하고 자신이 시간을 보낼지 여부를 알고 싶습니다. 다음 주에 검증인이 올 것입니다. 이제 프로토콜은 라운드 r에 대한 검증자를 다음 사용자 중에서 선택합니다. r −k −2,000을 라운드하고 선택은 Qr−2,001을 기반으로 합니다. r 라운드에서 나는 이미 알고 있는 선수 값 Qr−2,000, . . . , Qr−1, 실제로는 blockchain의 일부이기 때문입니다. 그런 다음 각 M에 대해 1과 2,000 사이에서 i는 라운드 r + M의 단계 s에서 검증자입니다. .H SIGi r + M, s, Qr+M−2,001 \(\leq\)p . 따라서 그가 다음 2,000 라운드 동안 검증자로 활동하도록 호출될 것인지 확인하려면 다음을 수행해야 합니다. \(\sigma\)M,s를 계산하다 나 = SIGi r + M, s, Qr+M−2,001 M = 1 ~ 2,000이고 각 단계 s에 대해 확인합니다. .H(\(\sigma\)M,s 나 ) 그 중 일부는 \(\leq\)p입니다. 디지털 서명을 계산하는 데 밀리초가 걸린다면 이 전체 작업을 계산하는 데 약 1분이 소요됩니다. 검증인으로 선정되지 않은 경우 이 라운드 중 어느 라운드에서든 그는 "정직한 양심"을 가지고 오프라인으로 갈 수 있습니다. 만약 그가 지속적으로 참여했다면 그는 어쨌든 다음 2,000 라운드 동안 본질적으로 0보를 걸었을 것입니다! 대신에 그는 이 라운드 중 하나에서 검증자로 선택됩니다. 그런 다음 그는 자신을 준비합니다(예: 모든 것을 얻음으로써) 필요한 정보) 적절한 라운드에서 정직한 검증자 역할을 합니다. 그렇게 행동함으로써, 게으르지만 정직한 잠재적 검증자는 전파에 참여하는 것을 놓칠 뿐입니다. 메시지의. 그러나 메시지 전파는 일반적으로 강력합니다. 또한, 지급인과 수취인은 최근 전파된 결제는 온라인에서 결제가 어떻게 진행되는지 확인할 수 있을 것으로 예상됩니다. 따라서 그들은 정직하다면 메시지 전파에 참여할 것입니다.
التعامل مع المستخدمين الصادقين غير المتصلين
كما قلنا، المستخدم الصادق يتبع جميع التعليمات الموصوفة له، والتي تشمل تعليمات الاتصال بالإنترنت وتشغيل البروتوكول. هذا ليس عبئًا كبيرًا في Algorand، منذ الحساب و النطاق الترددي المطلوب من المستخدم الصادق متواضع جدًا. ومع ذلك، دعونا نشير إلى أن Algorand يمكنه ذلك يمكن تعديلها بسهولة بحيث تعمل في نموذجين، حيث يُسمح للمستخدمين الصادقين بأن يكونوا غير متصلين بالإنترنت أعداد كبيرة. قبل مناقشة هذين النموذجين، دعونا نشير إلى أنه إذا كانت نسبة اللاعبين الشرفاء كانت 95%، ولا يزال من الممكن تشغيل Algorand لتعيين كافة المعلمات بافتراض أن h = 80% بدلاً من ذلك. وبناءً على ذلك، سيستمر Algorand في العمل بشكل صحيح حتى لو كان نصف اللاعبين الصادقين على الأكثر اختار عدم الاتصال (في الواقع، حالة كبيرة من "التغيب"). في الواقع، في أي وقت من الأوقات، على الأقل 80% من اللاعبين عبر الإنترنت سيكونون صادقين. من المشاركة المستمرة إلى الصدق الكسول كما رأينا، Algorand ′ 1 و Algorand ′ 2 اختر معلمة الرجعة k دعونا الآن نوضح أن اختيار k كبير بشكل صحيح يمكّن الشخص من الإزالة شرط المشاركة المستمرة. ويضمن هذا المطلب خاصية حاسمة: وهي، أن بروتوكول BA الأساسي BBA⋆ لديه أغلبية صادقة مناسبة. دعونا الآن نشرح مدى كسول يوفر الصدق طريقة بديلة وجذابة لإرضاء هذه الخاصية.
تذكر أن المستخدم يكون كسولًا ولكن صادقًا إذا (1) اتبع جميع تعليماته الموصوفة ومتى يُطلب منه المشاركة في البروتوكول، و(2) يُطلب منه المشاركة في البروتوكول فقط نادرًا جدًا - على سبيل المثال، مرة واحدة في الأسبوع - مع إشعار مسبق مناسب، ومن المحتمل أن تتلقى إشعارًا مهمًا مكافأة عندما يشارك. للسماح لـ Algorand بالعمل مع هؤلاء اللاعبين، يكفي فقط "اختيار أدوات التحقق من الجولة الحالية بين المستخدمين الموجودين بالفعل في النظام في جولة سابقة بكثير." في الواقع، تذكر ذلك يتم اختيار أدوات التحقق من الجولة r من المستخدمين في الجولة r −k، ويتم إجراء التحديدات بناءً على ذلك على الكمية Qr−1. لاحظ أن الأسبوع يتكون من 10000 دقيقة تقريبًا، وافترض أن أ تستغرق الجولة تقريبًا (على سبيل المثال، في المتوسط) 5 دقائق، لذا فإن الأسبوع يحتوي على 2000 طلقة تقريبًا. افترض أنه، في وقت ما، يرغب المستخدم في تخطيط وقته ومعرفة ما إذا كان سيفعل ذلك أم لا المدقق في الأسبوع المقبل. يختار البروتوكول الآن جهات التحقق لجولة r من المستخدمين في مستدير r −k −2,000، والاختيارات مبنية على Qr−2,001. في الجولة ص، لاعب أعرفه بالفعل القيم Qr−2,000، . . . ، Qr−1، نظرًا لأنهم في الواقع جزء من blockchain. ثم لكل م بين 1 و2000، i هو المتحقق في خطوة s من الجولة r + M إذا وفقط إذا .ح سيجي ص + M، ق، Qr+M−2,001 \(\geq\)ص . وبالتالي، للتحقق مما إذا كان سيتم استدعاؤه للعمل كمدقق في الجولات الـ 2000 القادمة، لا بد لي من التحقق من ذلك. حساب \(\sigma\)M,s أنا = سيجي ص + M، ق، Qr+M−2,001 لـ M = 1 إلى 2000 ولكل خطوة s، وتحقق سواء كان .H(\(\sigma\)M,s أنا ) \(\geq\)p بالنسبة لبعضهم. إذا كانت عملية حساب التوقيع الرقمي تستغرق ميلي ثانية واحدة، إذن ستستغرق هذه العملية بأكملها حوالي دقيقة واحدة من الحساب. إذا لم يتم اختياره كمحقق في أي من هذه الجولات، يمكنه أن يخرج عن الخط "بضمير صادق". لو كان بشكل مستمر لو شارك، لكان قد اتخذ 0 خطوة في الـ 2000 جولة القادمة على أي حال! إذا، بدلا من ذلك، يتم اختياره ليكون مدققًا في إحدى هذه الجولات، ثم يجهز نفسه (على سبيل المثال، عن طريق الحصول على جميع المعلومات اللازمة) للعمل كمدقق نزيه في الجولة المناسبة. ومن خلال هذا التصرف، فإن المتحقق الكسول ولكن الصادق لن يفوته سوى المشاركة في النشر من الرسائل. لكن نشر الرسالة عادة ما يكون قويا. علاوة على ذلك، فإن الدافعين والمستفيدين من من المتوقع أن تكون المدفوعات التي تم نشرها مؤخرًا عبر الإنترنت لمشاهدة ما يحدث لمدفوعاتها، وبالتالي سيشاركون في نشر الرسالة إذا كانوا صادقين.
프로토콜 Algorand ' 정직한 다수의 돈으로
이제 마지막으로 정직한 다수의 사용자 가정을 훨씬 더 많은 가정으로 대체하는 방법을 보여줍니다. 의미 있는 정직한 다수의 돈 가정. 기본 아이디어는 (proof-of-stake 맛)입니다. “다음에 비례하는 가중치(즉, 결정력)를 사용하여 SV r,s에 속하는 사용자 i \(\in\)PKr−k를 선택합니다. i가 소유한 돈의 양.”24 HMM 가정에 따라 해당 금액을 r −k 라운드에 보유해야 하는지 여부를 선택할 수 있습니다. 또는 라운드 r(시작)에. 지속적인 참여를 꺼리지 않는다는 가정 하에 우리는 다음을 선택합니다. 후자의 선택. (지속적인 참여를 없애기 위해 우리는 전자의 선택을 선택했을 것입니다. r −k −2,000 라운드에 소유한 화폐의 양에 대해 말하는 것이 더 좋습니다.) 이 아이디어를 구현하는 방법에는 여러 가지가 있습니다. 가장 간단한 방법은 각 키를 홀드하는 것입니다. 최대 1 단위의 돈을 선택하고 a(r)이 되도록 PKr−k에서 무작위로 n명의 사용자 i를 선택합니다. 나 = 1. 24지속적인 참여를 대체하려면 PKr−k−2,000이라고 말해야 합니다. 단순화를 위해 요구할 수 있으므로 어쨌든 지속적인 참여를 위해 우리는 이전과 같이 PKr-k를 사용하여 하나의 매개변수를 덜 전달합니다.
다음으로 가장 간단한 구현 다음으로 간단한 구현은 각 공개 키가 최대 금액을 소유하도록 요구하는 것입니다. 어떤 고정된 M에 대한 화폐 M입니다. 가치 M은 총 화폐 금액에 비해 충분히 작습니다. 키가 둘 이상의 검증자 세트에 속할 확률이 k 라운드를 진행하는 것은 무시할 수 있습니다. 그런 다음, 금액 a(r)을 소유한 키 i \(\in\)PKr−k 나 라운드 r에서 다음과 같은 경우 SV r,s에 속하도록 선택됩니다. .H SIGi r, s, Qr−1 \(\leq\)p \(\cdot\) a(r) 나 엠 . 그리고 모든 수익은 이전과 동일합니다. 더욱 복잡한 구현 마지막 구현에서는 "시스템의 부유한 참가자가 많은 키를 소유하도록 강요했습니다". 아래에 설명된 대체 구현은 상태 개념을 일반화하고 다음을 고려합니다. 각 사용자 i는 K + 1개의 복사본(i, v)으로 구성되며, 각 복사본은 독립적으로 검증자로 선택됩니다. 자신의 임시 키를 소유하게 됩니다(pkr,s 나,v,skr,s i,v) 라운드 r의 단계 s에서. K 값은 다음과 같습니다. 금액에 따라 a(r) 나 라운드 r에서 i가 소유하고 있습니다. 이제 그러한 시스템이 어떻게 작동하는지 더 자세히 살펴보겠습니다. 사본 수 n을 각 검증자 세트의 목표 예상 카디널리티로 설정하고 a(r)을 다음과 같이 설정합니다. 나 라운드 r에서 사용자 i가 소유한 금액이 됩니다. Ar을 소유한 총 화폐량이라고 하자. 라운드 r에서 PKr-k의 사용자에 의해, 즉, 아르 = X i\(\in\)P Kr−k a(r) 나. i가 PKr-k의 사용자라면 i의 복사본은 (i, 1), . . . , (i, K + 1), 여기서 케이 = $ n \(\cdot\) a(r) 나 아칸소 % . 예. n = 1,000, Ar = 109, a(r)이라고 가정합니다. 나 = 370만. 그런 다음, 케이 = 103 \(\cdot\) (3.7 \(\cdot\) 106) 109 = ⌊3.7⌋= 3 . 검증자 및 자격 증명 나는 K + 1 복사본을 가진 PKr-k의 사용자라고 가정합니다. 각 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)의 경우 라운드 r의 각 단계 s에 대해 i는 다음을 확인합니다. .H SIGi (i, K + 1), r, s, Qr−1 \(\leq\)a(r) 나 엔 Ar-K.
그렇다면 사본 (i, K + 1)은 SV r,s에 속합니다. 그것을 증명하기 위해 자격 증명을 전파합니다. \(\sigma\)r,1 i,K+1 = SIGi (i, K + 1), r, s, Qr−1 . 예. 이전 예에서와 같이 n = 1K, a(r) 나 = 3.7M, Ar = 1B, i는 4입니다. 복사본: (i, 1), . . . , (i, 4). 그런 다음 처음 3개의 복사본은 자동으로 SV r,s에 속합니다. 4번째의 경우, 개념적으로 Algorand '은 앞면이 나올 확률이 0.7인 편향된 동전을 독립적으로 굴립니다. 복사 (i, 4)는 동전 던지기가 앞면인 경우에만 선택됩니다. (물론 이 편향된 동전 던지기는 hashing, 서명 및 비교를 통해 구현됩니다. 나는 그의 결과를 증명할 수 있도록 이 논문에서 모든 작업을 수행했습니다.) 평소대로 사업 검증자를 선택하는 방법과 자격 증명을 어떻게 지정하는지 설명했습니다. 라운드 r의 각 단계에서 계산되므로 라운드 실행은 이미 설명한 것과 유사합니다.
البروتوكول Algorand ′ مع الأغلبية الصادقة من المال
نعرض الآن، أخيرًا، كيفية استبدال افتراض الأغلبية الصادقة من المستخدمين بافتراض أكثر من ذلك بكثير افتراض الأغلبية الصادقة من المال. الفكرة الأساسية هي (بنكهة proof-of-stake) "لتحديد مستخدم i \(\in\)PKr−k لينتمي إلى SV r,s بوزن (أي قوة القرار) يتناسب مع مقدار الأموال التي يملكها ط."24 من خلال افتراضنا HMM، يمكننا اختيار ما إذا كان ينبغي امتلاك هذا المبلغ عند الجولة r -k أو في (بداية) الجولة ص. على افتراض أننا لا نمانع في المشاركة المستمرة، فإننا نختار ذلك الاختيار الأخير. (لإزالة المشاركة المستمرة، كنا قد اخترنا الخيار الأول. والأفضل من ذلك، بالنسبة لمبلغ الأموال المملوكة بالجولة r −k −2,000.) هناك طرق عديدة لتنفيذ هذه الفكرة. إن أبسط طريقة هي الاحتفاظ بكل مفتاح وحدة واحدة من المال على الأكثر، ثم حدد عشوائيًا n من المستخدمين i من PKr−k بحيث يكون a(r) أنا = 1. 24 يجب أن نقول PKr−k−2,000 لاستبدال المشاركة المستمرة. من أجل البساطة، حيث قد يرغب المرء في الطلب المشاركة المستمرة على أي حال، نستخدم PKr−k كما كان من قبل، وذلك لحمل معلمة واحدة أقل.
التنفيذ الأبسط التالي قد يكون التنفيذ الأبسط التالي هو المطالبة بأن يمتلك كل مفتاح عام حدًا أقصى من المال M، بالنسبة لبعض M الثابتة. قيمة M صغيرة بما يكفي مقارنة بالمبلغ الإجمالي المال في النظام، بحيث ينتمي احتمال المفتاح إلى مجموعة التحقق المكونة من أكثر من واحد خطوة - على سبيل المثال - جولات k لا تذكر. ثم المفتاح i \(\in\)PKr−k، يمتلك مبلغًا من المال a(r) أنا في الجولة r، تم اختياره لينتمي إلى SV r,s if .ح سيجي ص، ق، Qr−1 \(\geq\)ص \(\cdot\) أ(ص) أنا م . وكل العائدات كما كان من قبل. تنفيذ أكثر تعقيدًا التنفيذ الأخير "أجبر مشاركًا ثريًا في النظام على امتلاك العديد من المفاتيح". التنفيذ البديل، الموصوف أدناه، يعمم مفهوم الحالة والنظر يجب أن يتكون كل مستخدم i من نسخ K + 1 (i، v)، ويتم اختيار كل منها بشكل مستقل ليكون مدققًا، وسيمتلك مفتاحه المؤقت (pkr,s أنا، الخامس، skr، ق i,v) في خطوة s من الجولة r. تعتمد القيمة K على مبلغ من المال (ص) أنا مملوكة لـ i في الجولة r. دعونا الآن نرى كيف يعمل مثل هذا النظام بمزيد من التفصيل. عدد النسخ دع n هو الأصل المتوقع المستهدف لكل مجموعة متحقق، ودع a(r) أنا يكون مقدار المال الذي يملكه المستخدم i في الجولة r. دع Ar يكون المبلغ الإجمالي للأموال المملوكة بواسطة المستخدمين في PKr−k عند الجولة r، أي ع = X أنا\(\in\)P كر−ك أ (ص) أنا. إذا كنت مستخدمًا في PKr−k، فإن نسخ i هي (i, 1)، . . . ، (ط، ك + 1)، حيث ك = $ ن \(\cdot\) أ(ص) أنا آر % . مثال. دع n = 1,000، 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 تلقائيًا. وهذا يعني أن أوراق اعتمادي هي ص، ق i,v \(\triangleq\)SIGi((i, v), r, s, Qr−1)، لكن الشرط المقابل يصبح .H(\(\sigma\)r,s ط، الخامس) \(\geq\)1، وهو صحيح دائما. بالنسبة للنسخة (i، K + 1)، لكل خطوة s من الجولة r، أقوم بالتحقق مما إذا كان .ح سيجي (i، K + 1)، r، s، Qr−1 \(\geq\)أ (ص) أنا ن ع -ك .
إذا كان الأمر كذلك، فإن النسخة (i, K + 1) تنتمي إلى SV r,s. لإثبات ذلك، أقوم بنشر بيانات الاعتماد ص،1 ط، ك + 1 = سيجي (i، K + 1)، r، s، Qr−1 . مثال. كما في المثال السابق، دع n = 1K، a(r) أنا = 3.7M، Ar = 1B، ولدي 4 النسخ: (ط، ١)، . . . ، (ط، 4). بعد ذلك، تعود النسخ الثلاث الأولى إلى SV r,s تلقائيًا. بالنسبة للرابعة، من الناحية النظرية، Algorand ′ تدحرج بشكل مستقل عملة متحيزة، والتي يكون احتمال ظهورها 0.7. نسخ يتم تحديد (i، 4) إذا وفقط إذا كانت رمية العملة هي الصورة. (وبطبيعة الحال، يتم تنفيذ هذا الوجه المتحيز للعملة عن طريق hashing، والتوقيع، والمقارنة - كما نحن لقد فعلت كل شيء في هذه الورقة - حتى أتمكن من إثبات نتائجه.) العمل كالمعتاد بعد أن شرحت كيفية اختيار المدققين وكيف تكون أوراق اعتمادهم يتم حسابه في كل خطوة من الجولة r، ويكون تنفيذ الجولة مشابهًا لما سبق شرحه.
Fork 처리
포크가 발생할 확률을 10-12 또는 10-18로 줄임으로써 실질적으로 처리할 필요가 없습니다. 그런 일이 일어날 가능성은 희박합니다. 그러나 Algorand은 다양한 포크를 사용할 수도 있습니다. 작업 증명 유무에 관계없이 해결 절차. 사용자에게 포크를 해결하도록 지시하는 한 가지 가능한 방법은 다음과 같습니다. • 사용자에게 여러 체인이 표시되는 경우 가장 긴 체인을 따릅니다. • 가장 긴 체인이 두 개 이상인 경우 끝에 비어 있지 않은 블록이 있는 체인을 따릅니다. 만약에 모두 끝에 빈 블록이 있습니다. 마지막 두 번째 블록을 고려하세요. • 끝에 비어 있지 않은 블록이 있는 가장 긴 체인이 두 개 이상 있는 경우 체인은 다음과 같습니다. 길이가 r인 블록 r의 리더가 가장 작은 자격 증명을 가진 블록을 따릅니다. 인연이 있다면, 블록 r 자체가 가장 작은 hash 값을 갖는 블록을 따르십시오. 여전히 동점이 있는 경우 다음을 따르세요. 블록 r이 사전순으로 첫 번째로 정렬된 블록입니다.
التعامل مع الانقسامات
بعد تقليل احتمالية الشوكات إلى 10−12 أو 10−18، أصبح من غير الضروري عمليًا التعامل معها لهم في احتمال بعيد أن يحدث. ومع ذلك، يمكن لـ Algorand أيضًا استخدام شوكات مختلفة إجراءات الحل، مع أو بدون إثبات العمل. إحدى الطرق الممكنة لإرشاد المستخدمين لحل الشوكات هي كما يلي: • اتبع أطول سلسلة إذا رأى المستخدم سلاسل متعددة. • إذا كان هناك أكثر من سلسلة أطول، اتبع السلسلة التي تحتوي على كتلة غير فارغة في النهاية. إذا كل منهم لديه كتل فارغة في النهاية، والنظر في الكتل الثانية الأخيرة. • إذا كان هناك أكثر من سلسلة أطول مع كتل غير فارغة في النهاية، فلنفترض أن السلاسل موجودة من الطول r، اتبع الشخص الذي يمتلك قائد الكتلة r أصغر بيانات اعتماد. إذا كانت هناك روابط، اتبع الكتلة التي تحتوي كتلتها r نفسها على أصغر قيمة hash. إذا كان لا يزال هناك روابط، اتبع الشخص الذي تم ترتيب كتلته r أولاً من الناحية المعجمية.
네트워크 파티션 처리
앞서 말했듯이, 우리는 네트워크의 모든 사용자 사이의 메시지 전파 시간이 \(\lambda\)와 Λ에 의해 상한된다고 가정합니다. 오늘날의 인터넷은 빠르고 강력하며, 이러한 매개변수의 실제 값은 상당히 합리적입니다. 여기서는 Algorand `` 2 인터넷이 때때로 두 부분으로 분할되어도 계속 작동합니다. 경우는 인터넷은 두 개 이상의 부분으로 나누어져 있습니다. 10.1 물리적 파티션 우선, 물리적인 이유로 파티션이 발생할 수 있습니다. 예를 들어, 대규모 지진이 발생할 수 있습니다. 결국 유럽과 미국의 연결이 완전히 무너졌습니다. 이 경우, 악의적인 사용자도 분할되어 있으며 두 부분 사이에는 통신이 없습니다. 따라서
두 명의 적이 있는데, 하나는 파트 1에, 다른 하나는 파트 2에 사용됩니다. 각 대적은 여전히 다음을 시도합니다. 프로토콜 자체를 위반합니다. 분할이 라운드 r의 중간에 발생한다고 가정합니다. 그런 다음 각 사용자는 여전히 이전과 동일한 확률로 PKr-k를 기반으로 하는 검증자입니다. HSV r,s를 보자 나 및 MSV r,s 나 각각 파트 i \(\in\){1, 2}의 단계 s에서 정직하고 악의적인 검증자의 집합이 됩니다. 우리는 |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|MSV r,s| 압도적인 확률로 2tH 미만. 어떤 부분에 |HSV r,s가 있는 경우 나 | + |MSV r,s 나 | 무시할 수 없는 확률(예: 1%)의 \(\geq\)tH인 경우 |HSV r,s의 확률 3−i| + |MSV r,s 3−i| \(\geq\)tH는 매우 낮습니다(예: F = 10−18인 경우 10−16). 이 경우, 검증자가 충분하지 않기 때문에 더 작은 부분을 오프라인으로 처리하는 것이 좋습니다. 블록을 인증하기 위한 서명을 생성하는 부분입니다. 일반성을 잃지 않고 더 큰 부분, 즉 파트 1을 고려해 보겠습니다. 비록 |HSV r,s| < 각 단계 s에서 무시할 수 있는 확률을 갖는 tH, 네트워크가 분할되면 |HSV r,s 1 | 어쩌면 무시할 수 없는 확률로 tH보다 작습니다. 이 경우 상대방은 다음과 같은 조치를 취할 수 있습니다. 다른 무시할 수 없는 확률, 비어 있지 않은 블록 Br과 빈 블록 Br을 사용하여 바이너리 BA 프로토콜을 r 라운드의 포크로 강제 실행합니다. ? 둘 다 유효한 서명을 가지고 있습니다.25 예를 들어, Coin-Fixed-To-0 단계, 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을 인증할 만큼 충분한 서명이 있습니다. 그러나 이후 악의적인 검증자가 서명을 보류하면 사용자는 Coin-Fixed-To1 단계인 s + 1 단계에 들어갑니다. 왜냐하면 |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)의 경우. 따라서 라운드 r의 해당 블록에 의해 정의되는 두 개의 Qr이 있습니다. 그러나, 포크는 계속되지 않으며 두 가지 중 하나만 r + 1 라운드에서 자랄 수 있습니다. Algorand '에 대한 추가 지침 2. 비어 있지 않은 블록 Br과 비어 있는 블록을 볼 때 블록 브롬 ϫ , 비어 있지 않은 것(및 이에 의해 정의된 Qr)을 따릅니다. 실제로 사용자에게 프로토콜의 비어 있지 않은 블록을 사용하도록 지시함으로써 PKr+1−k의 정직한 사용자 중 상당수는 라운드 r +1의 시작 부분에 포크가 있다는 것을 깨닫습니다. 빈 블록에는 추종자가 충분하지 않아 성장하지 않습니다. 적이 다음과 같이 관리한다고 가정합니다. 일부 정직한 사용자가 Br(및 아마도 Br)을 볼 수 있도록 정직한 사용자를 분할합니다. ?), 일부는 단지 브르 ? 왜냐하면 대적은 그들 중 어느 것이 Br을 따르는 검증자가 될 것인지, 그리고 어느 것이 검증자가 될 것인지 알 수 없기 때문입니다. Br을 따르는 검증자가 될 것입니다. ? , 정직한 사용자는 무작위로 분할되어 있으며 각 사용자는 여전히 검증자가 됩니다(Br에 대해 또는 Br에 대해). Ϋ) 확률이 s > 1인 단계에서 p. 악의적인 사용자의 경우 각 사용자는 검증자가 될 수 있는 두 번의 기회를 가질 수 있습니다. Br과 다른 하나는 Br ϫ, 각각 독립적으로 확률 p를 갖습니다. HSV r+1,s를 보자 1;Br Br에 이어 라운드 r+1의 단계 s에서 정직한 검증자 집합이 됩니다. 기타 표기법 HSV r+1,s와 같은 1;브 , MSV r+1,s 1;Br 및 MSV r+1,s 1;브뤼 유사하게 정의되어 있습니다. Chernoffbound를 이용하면 쉽습니다. 25두 개의 비어 있지 않은 블록이 있는 포크를 갖는 것은 무시할 수 있는 경우를 제외하고는 파티션이 있든 없든 불가능합니다. 확률.압도적인 확률로 그걸 보게 된다면, |HSV r+1,s 1;Br | + |HSV r+1,s 1;브뤼 | + |MSV r+1,s 1;Br | + |MSV r+1,s 1;브뤼 | < 2tH. 따라서 두 가지 모두 라운드 블록을 인증하는 적절한 서명을 가질 수 없습니다. 동일한 단계 s에서 r + 1. 더욱이 두 단계 s와 s′에 대한 선택 확률은 동일하며 선택은 독립적이며 압도적인 확률을 갖습니다. |HSV r+1,s 1;Br | + |MSV r+1,s 1;Br | + |HSV r+1,s′ 1;브뤼 | + |MSV r+1,s′ 1;브뤼 | < 2tH, 임의의 두 단계 s와 s′에 대해. F = 10−18일 때, 결합 결합에 의해, 적이 할 수 없는 한 정직한 사용자를 오랫동안 분할합니다(예: 104단계, 이는 \(\lambda\) = 10인 경우 55시간 이상). 초26), 높은 확률(예: 1−10−10)로 최대 하나의 분기가 tH개의 적절한 서명을 갖게 됩니다. 라운드 r + 1에서 블록을 인증합니다. 마지막으로, 물리적 파티션이 대략 동일한 크기의 두 부분을 생성한 경우 |HSV r,s의 확률 나 | + |MSV r,s 나 | \(\geq\)tH는 각 부분 i에 대해 작습니다. 비슷한 분석에 따르면, 비록 적이 각 부분에서 무시할 수 없는 확률로 포크를 생성하더라도 라운드 r의 경우, 네 개의 가지 중 많아야 하나가 라운드 r + 1에서 자랄 수 있습니다. 10.2 적대적 파티션 둘째, 적대자에 의해 파티션이 발생하여 메시지가 전파될 수 있습니다. 한 부분의 정직한 사용자는 다른 부분의 정직한 사용자에게 직접 도달하지 않지만 공격자는 두 부분 간에 메시지를 전달할 수 있습니다. 그래도 한 번은 누군가의 메시지를 부분이 다른 부분에서 정직한 사용자에게 도달하면 평소와 같이 후자에 전파됩니다. 만약 상대방은 많은 돈을 쓸 의향이 있으며, 해킹을 할 수도 있다고 생각됩니다. 인터넷을 하고 잠시 이렇게 파티션을 나누세요. 분석은 위의 물리적 파티션의 더 큰 부분(더 작은 부분)에 대한 분석과 유사합니다. 부분의 인구는 0인 것으로 간주될 수 있습니다. 공격자는 포크를 생성하고 각 정직한 사용자는 가지 중 하나만 볼 수 있지만 최대 하나의 가지가 성장할 수 있습니다. 10.3 네트워크 파티션 합계 네트워크 파티션이 발생할 수 있고 파티션 아래에서 한 라운드의 포크가 발생할 수도 있지만 이는 오래 지속되는 모호함이 아닙니다. 포크는 수명이 매우 짧으며 실제로는 최대 한 라운드 동안 지속됩니다. 에서 최대 하나를 제외한 파티션의 모든 부분에서 사용자는 새로운 블록을 생성할 수 없으므로 (a) 네트워크에 분할이 있다는 것을 인식하고 (b) "사라지는" 블록에 절대 의존하지 마십시오. 감사의 말 먼저 인용된 Democoin 시스템의 공동 저자인 Sergey Gorbunov에게 감사 인사를 전하고 싶습니다. 많은 계몽적인 토론과 지적을 해주신 Maurice Herlihy에게 진심으로 감사드립니다. 파이프라이닝이 Algorand의 처리량 성능을 향상시키고 26 사용자는 해당 항목에 대해 최소한 tH개의 서명을 본 경우에만 2\(\lambda\) 시간을 기다리지 않고 단계 s를 완료한다는 점에 유의하십시오. 같은 메시지. 서명이 충분하지 않으면 각 단계는 2\(\lambda\) 시간 동안 지속됩니다.
이 문서의 이전 버전을 설명합니다. 의견을 주신 Sergio Rajsbaum에게 깊은 감사를 드립니다. 이 문서의 이전 버전. 몇 가지 심도 있는 토론을 해주신 Vinod Vaikuntanathan에게 많은 감사를 드립니다. 그리고 통찰력. Yossi Gilad, Rotem Hamo, Georgios Vlachos 및 Nickolai Zeldovich에게 많은 감사를 드립니다. 이러한 아이디어를 테스트하기 시작하고 많은 유용한 의견과 토론을 해주셔서 감사합니다. Silvio Micali는 수많은 토론과 지도를 해주신 Ron Rivest에게 개인적으로 감사의 말씀을 전하고 싶습니다. 30년 이상 암호화폐 연구에 종사했으며, 인용된 소액 결제 시스템을 공동 집필했습니다. 이는 Algorand의 검증자 선택 메커니즘 중 하나에 영감을 주었습니다. 우리는 이 기술을 다음 단계로 끌어올리기를 희망합니다. 그동안 여행과 교제 정말 재미있어요. 정말 감사해요.
التعامل مع أقسام الشبكة
وكما قلنا، فإننا نفترض أن أوقات انتشار الرسائل بين جميع المستخدمين في الشبكة محددة بـ lect وΛ. وهذا ليس افتراضًا قويًا، حيث أن الإنترنت اليوم سريع وقوي القيم الفعلية لهذه المعلمات معقولة جدًا. وهنا دعونا نشير إلى أن Algorand ′ 2 يستمر في العمل حتى لو تم تقسيم الإنترنت أحيانًا إلى قسمين. الحالة عندما يتم تقسيم الإنترنت إلى أكثر من قسمين متشابهين. 10.1 الأقسام المادية بادئ ذي بدء، قد يكون سبب التقسيم لأسباب مادية. على سبيل المثال، قد يحدث زلزال ضخم وينتهي الأمر بكسر كامل للعلاقة بين أوروبا وأمريكا. في هذه الحالة، يتم أيضًا تقسيم المستخدمين الضارين ولا يوجد اتصال بين الجزأين. هكذا
سيكون هناك خصمان، أحدهما للجزء الأول والآخر للجزء الثاني. ولا يزال كل خصم يحاول كسر البروتوكول في الجزء الخاص به. افترض أن القسم يحدث في منتصف الجولة r. ثم لا يزال يتم تحديد كل مستخدم باعتباره المدقق على أساس PKr−k، مع نفس الاحتمال كما كان من قبل. دع HSV r،s أنا وMSV ص، ق أنا على التوالي كن مجموعة من المحققين الصادقين والخبثاء في خطوة من الجزء i \(\in\){1, 2}. لدينا |HSV ص، ق 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|MSV r,s| < 2tH مع احتمالية ساحقة. إذا كان لدي جزء ما |HSV r,s أنا | + |MSV r,s أنا | \(\geq\)tH باحتمال لا يُذكر، على سبيل المثال، 1%، ثم احتمال أن |HSV r,s 3−ط| + |MSV r,s 3−ط| \(\geq\)tH منخفض جدًا، على سبيل المثال، 10−16 عندما F = 10−18. في هذه الحالة، ومن الأفضل أن نتعامل مع الجزء الأصغر على أنه غير متصل بالإنترنت، لأنه لن يكون هناك ما يكفي من المحققين هذا الجزء لإنشاء التوقيعات للتصديق على الكتلة. دعونا نفكر في الجزء الأكبر، مثلًا الجزء الأول دون فقدان العمومية. بالرغم من أن |HSV r,s| < tH مع احتمال ضئيل في كل خطوة s، عندما يتم تقسيم الشبكة، |HSV r,s 1 | قد يكون أقل من tH مع بعض الاحتمال غير المهمل. في هذه الحالة يجوز للخصم مع البعض احتمال آخر لا يستهان به، فرض بروتوكول BA الثنائي في شوكة في الجولة r، مع كتلة غير فارغة Br وكتلة فارغة Br ƒ كلاهما له توقيعان صالحان.25 على سبيل المثال، في أ خطوات العملة الثابتة إلى 0، جميع أدوات التحقق في HSV r,s 1 تم التوقيع على البت 0 وH(Br)، ونشرهما الرسائل. جميع أدوات التحقق في MSV r,s 1 وقعوا أيضًا على 0 وH(Br)، لكنهم حجبت رسائلهم. لان |HSV ص، ق 1 | + |MSV r,s 1 | \(\geq\)tH، يحتوي النظام على توقيعات كافية لاعتماد Br. ومع ذلك، منذ قامت أدوات التحقق الخبيثة بحجب توقيعاتهم، وقام المستخدمون بإدخال الخطوة s + 1، وهي خطوة "عملة ثابتة إلى 1". لأن |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 والفارغة كتلة ر ƒ ، اتبع غير الفارغ (والقر المعرف به). في الواقع، من خلال توجيه المستخدمين إلى استخدام الكتلة غير الفارغة في البروتوكول، إذا كانت كبيرة يدرك عدد من المستخدمين الصادقين في PKr+1−k أن هناك شوكة في بداية الجولة r +1، ثم لن تحتوي الكتلة الفارغة على عدد كافٍ من المتابعين ولن تنمو. افترض أن الخصم تمكن من ذلك قم بتقسيم المستخدمين الصادقين بحيث يرى بعض المستخدمين الصادقين Br (وربما Br ƒ)، والبعض يرى فقط ر ƒ. لأن الخصم لا يستطيع معرفة أي واحد منهم سيكون المدقق الذي يتبع Br وأي منهم سيكون المدقق يتبع Br ƒ، يتم تقسيم المستخدمين الصادقين عشوائيًا ولا يزال كل واحد منهم على حاله يصبح مدققًا (إما فيما يتعلق بـ Br أو فيما يتعلق بـ Br ƒ) في الخطوة s > 1 مع الاحتمال ص. بالنسبة للمستخدمين الضارين، قد يكون لكل واحد منهم فرصتان ليصبح مدققًا، إحداهما Br والآخر مع Br ƒ، كل منها باحتمال p بشكل مستقل. دع HSV r+1,s 1;ر كن مجموعة المتحققين الصادقين في خطوات الجولة r+1 التالية لـ Br. تدوينات أخرى مثل HSV r+1,s 1؛Br، MSV r+1,s 1;ر وMSV r+1,s 1;Br يتم تعريفها بالمثل. من خلال تشيرنوفابوند، الأمر سهل 25. لا يجوز وجود شوكة ذات كتلتين غير فارغتين بفواصل أو بدونها، إلا مع القليل الاحتمالية.لنرى ذلك باحتمالية ساحقة، |HSV r+1,s 1;ر | + |HSV r+1,s 1;ب | + |MSV r+1,s 1;ر | + |MSV r+1,s 1;ب | <2ث. وبناء على ذلك، لا يمكن أن يكون لدى كلا الفرعين التوقيعات الصحيحة التي تثبت كتلة الجولة r + 1 في نفس الخطوة s. علاوة على ذلك، بما أن احتمالات الاختيار للخطوتين s وs' هي نفسه والاختيارات مستقلة، وأيضًا ذات احتمالية ساحقة |HSV r+1,s 1;ر | + |MSV r+1,s 1;ر | + |HSV r+1,s' 1;Br | + |MSV r+1,s' 1;Br | <2ث، لأي خطوتين s و s′. عندما يكون F = 10−18، من خلال الاتحاد المقيد، طالما أن الخصم لا يستطيع ذلك تقسيم المستخدمين الصادقين لفترة طويلة (على سبيل المثال 104 خطوة، أي أكثر من 55 ساعة مع 10 = 10) ثواني 26)، مع احتمال كبير (على سبيل المثال 1−10−10) على الأكثر فرع واحد سيكون له التوقيعات الصحيحة للتصديق على كتلة في الجولة ص + 1. أخيرًا، إذا كان القسم الفعلي قد أنشأ جزأين بنفس الحجم تقريبًا، فإن احتمال أن |HSV r,s أنا | + |MSV r,s أنا | \(\geq\)tH صغير لكل جزء i. وبعد تحليل مماثل، حتى لو تمكن الخصم من إنشاء شوكة مع بعض الاحتمالية التي لا يمكن إهمالها في كل جزء بالنسبة للجولة r، قد ينمو أحد الفروع الأربعة على الأكثر في الجولة r + 1. 10.2 التقسيم العدائي ثانيًا، قد يكون سبب التقسيم هو الخصم، بحيث يتم نشر الرسائل من قبل المستخدمين الصادقين في جزء واحد لن يصل إلى المستخدمين الصادقين في الجزء الآخر بشكل مباشر، ولكن الخصم قادر على إعادة توجيه الرسائل بين الجزأين. لا يزال, مرة واحدة رسالة من واحد يصل الجزء إلى مستخدم صادق في الجزء الآخر، وسيتم نشره في الأخير كالمعتاد. إذا الخصم على استعداد لإنفاق الكثير من المال، ومن المتصور أنه قد يكون قادرًا على اختراق الإنترنت وتقسيمه هكذا لفترة من الوقت. التحليل مشابه للجزء الأكبر في القسم المادي أعلاه (الأصغر يمكن اعتبار الجزء أن عدد سكانه 0): قد يكون الخصم قادرًا على إنشاء شوكة و يرى كل مستخدم صادق فرعًا واحدًا فقط، ولكن قد ينمو فرع واحد على الأكثر. 10.3 أقسام الشبكة في المجموع على الرغم من أن أقسام الشبكة يمكن أن تحدث وقد يحدث شوكة في جولة واحدة تحت الأقسام، إلا أن هناك لا يوجد أي غموض طويل الأمد: فالشوكة قصيرة العمر للغاية، وفي الواقع تدوم لجولة واحدة على الأكثر. في جميع أجزاء القسم باستثناء جزء واحد على الأكثر، لا يمكن للمستخدمين إنشاء كتلة جديدة وبالتالي (أ) إدراك وجود قسم في الشبكة و (ب) عدم الاعتماد مطلقًا على الكتل التي "ستختفي". شكر وتقدير نود أن نشكر أولاً سيرجي جوربونوف، المؤلف المشارك لنظام Democoin المذكور. خالص الشكر لموريس هيرليهي، على العديد من المناقشات المفيدة، وعلى الإشارة من أن خطوط الأنابيب ستعمل على تحسين أداء إنتاجية Algorand، ولتحسين كبير في 26لاحظ أن المستخدم ينهي الخطوة دون الانتظار لمدة 2\(\times\) فقط إذا كان قد رأى على الأقل التوقيعات الخاصة بالـ نفس الرسالة. عندما لا يكون هناك ما يكفي من التوقيعات، ستستمر كل خطوة لمدة 2\(\times\).
عرض لنسخة سابقة من هذه الورقة. شكرا جزيلا لسيرجيو راكسبوم، لتعليقاته على نسخة سابقة من هذه الورقة. شكرًا جزيلاً لفينود فايكونتاناثان على العديد من المناقشات العميقة والرؤى. جزيل الشكر ليوسي جلعاد، روتم حمو، جورجيوس فلاشوس، ونيكولاي زيلدوفيتش للبدء في اختبار هذه الأفكار، وللحصول على العديد من التعليقات والمناقشات المفيدة. يود سيلفيو ميكالي أن يشكر شخصيًا رون ريفست على المناقشات والإرشادات التي لا حصر لها في أبحاث التشفير على مدى أكثر من ثلاثة عقود، لمشاركته في تأليف نظام الدفع الصغير المذكور التي ألهمت إحدى آليات اختيار المدقق في Algorand. ونأمل أن ننقل هذه التكنولوجيا إلى المستوى التالي. وفي الوقت نفسه السفر والرفقة هي متعة كبيرة، ونحن ممتنون للغاية لها.