알고랜드: 암호화폐에 대한 비잔틴 계약 확장
Tóm tắt
Sổ cái công khai là một chuỗi dữ liệu chống giả mạo mà mọi người đều có thể đọc và bổ sung. Sổ cái công khai có vô số công dụng hấp dẫn và vô số. Họ có thể bảo đảm, một cách dễ dàng, tất cả các loại của các giao dịch—chẳng hạn như quyền sở hữu, bán hàng và thanh toán—theo đúng thứ tự chúng diễn ra. Sổ cái công khai không chỉ hạn chế tham nhũng mà còn cho phép các ứng dụng rất phức tạp - chẳng hạn như tiền điện tử và smart contracts. Họ đứng lên cách mạng hóa cách thức một xã hội dân chủ hoạt động. Tuy nhiên, như hiện đang được triển khai, chúng có quy mô kém và không thể đạt được tiềm năng của mình. Algorand là một cách thực sự dân chủ và hiệu quả để triển khai sổ cái công khai. Không giống như trước việc triển khai dựa trên bằng chứng công việc, nó đòi hỏi lượng tính toán không đáng kể và tạo ra một lịch sử giao dịch sẽ không “phân nhánh” với xác suất cực kỳ cao. Algorand dựa trên thỏa thuận Byzantine truyền tin nhắn (mới và siêu nhanh). Để cụ thể hơn, chúng tôi sẽ chỉ mô tả Algorand dưới dạng nền tảng tiền tệ.
초록
공개 원장은 누구나 읽고 확장할 수 있는 변조 방지된 데이터 시퀀스입니다. 공개 원장은 셀 수 없이 많고 강력한 용도로 사용됩니다. 그들은 모든 종류의 것을 눈에 띄게 확보할 수 있습니다. 소유권, 판매, 지불 등의 거래를 발생한 순서대로 정확하게 기록합니다. 공공 원장은 부패를 억제할 뿐만 아니라 다음과 같은 매우 정교한 애플리케이션을 가능하게 합니다. 암호화폐 및 smart contracts. 그들은 민주사회의 방식에 혁명을 일으키기 위해 서 있습니다. 운영합니다. 그러나 현재 구현된 대로 확장성이 부족하고 잠재력을 달성할 수 없습니다. Algorand은 공개 원장을 구현하는 진정으로 민주적이고 효율적인 방법입니다. 이전과 달리 작업 증명을 기반으로 한 구현에는 무시할 만한 양의 계산이 필요합니다. 압도적으로 높은 확률로 "포크"되지 않는 거래 내역을 생성합니다. Algorand은 (신선하고 매우 빠른) 메시지 전달 비잔틴 계약을 기반으로 합니다. 구체적으로 Algorand은 머니 플랫폼으로만 설명하겠습니다.
Giới thiệu
Tiền ngày càng trở nên ảo. Người ta ước tính rằng khoảng 80% dân số Hoa Kỳ đô la ngày nay chỉ tồn tại dưới dạng các mục sổ cái [5]. Các công cụ tài chính khác cũng theo sau. Trong một thế giới lý tưởng, trong đó chúng ta có thể tin tưởng vào một thực thể trung tâm được toàn thể tin cậy, miễn nhiễm. trước tất cả các cuộc tấn công mạng có thể xảy ra, tiền và các giao dịch tài chính khác có thể chỉ là điện tử. Thật không may, chúng ta không sống trong một thế giới như vậy. Theo đó, tiền điện tử phi tập trung, chẳng hạn như như Bitcoin [29] và các hệ thống “smart contract”, chẳng hạn như Ethereum, đã được đề xuất [4]. Tại trung tâm của các hệ thống này là một sổ cái chung ghi lại chuỗi giao dịch một cách đáng tin cậy, ∗Đây là phiên bản chính thức hơn (và không đồng bộ) của bài báo ArXiv của tác giả thứ hai [24], một bài báo dựa trên Gorbunov và Micali [18]. Công nghệ của Algorand là mục tiêu sau đây đơn xin cấp bằng sáng chế: US62/117.138 US62/120.916 US62/142.318 US62/218.817 US62/314.601 PCT/US2016/018300 US62/326.865 62/331.654 US62/333.340 US62/343.369 US62/344.667 US62/346.775 US62/351.011 US62/653.482 US62/352.195 US62/363.970 US62/369.447 US62/378.753 US62/383.299 US62/394.091 US62/400.361 US62/403.403 US62/410.721 US62/416.959 US62/422.883 US62/455.444 US62/458.746 US62/459.652 US62/460.928 US62/465.931đa dạng như các khoản thanh toán và hợp đồng, theo cách chống giả mạo. Công nghệ được lựa chọn để đảm bảo khả năng chống giả mạo như vậy là blockchain. Blockchains đằng sau các ứng dụng như tiền điện tử [29], ứng dụng tài chính [4] và Internet vạn vật [3]. Một số kỹ thuật để quản lý sổ cái dựa trên blockchain đã được đề xuất: bằng chứng công việc [29], bằng chứng cổ phần [2], khả năng chịu lỗi Byzantine thực tế [8] hoặc một số kết hợp. Tuy nhiên, hiện nay việc quản lý sổ cái có thể không hiệu quả. Ví dụ: proof-of-work của Bitcoin (dựa trên khái niệm ban đầu của [14]) đòi hỏi lượng tính toán khổng lồ, gây lãng phí và tỷ lệ kém [1]. Ngoài ra, trên thực tế, nó tập trung quyền lực vào rất ít tay. Do đó, chúng tôi mong muốn đưa ra một phương pháp mới để triển khai sổ cái công khai cung cấp sự thuận tiện và hiệu quả của một hệ thống tập trung được điều hành bởi một cơ quan đáng tin cậy và bất khả xâm phạm, không có sự thiếu hiệu quả và điểm yếu của việc triển khai phi tập trung hiện nay. Chúng tôi gọi cách tiếp cận của chúng tôi Algorand, vì chúng tôi sử dụng thuật toán ngẫu nhiên để chọn, dựa trên sổ cái được xây dựng cho đến nay, một tập hợp những người xác minh chịu trách nhiệm xây dựng khối giao dịch hợp lệ tiếp theo. Đương nhiên, chúng tôi đảm bảo rằng những lựa chọn như vậy chắc chắn không bị thao túng và không thể đoán trước được cho đến khi phút cuối cùng, nhưng cuối cùng thì chúng cũng rõ ràng trên toàn cầu. Cách tiếp cận của Algorand khá dân chủ, theo nghĩa là cả về nguyên tắc lẫn thực tế đều không tạo ra các lớp người dùng khác nhau (với tư cách là “thợ mỏ” và “người dùng thông thường” trong Bitcoin). Trong Algorand “tất cả quyền lực thuộc về tập hợp tất cả người dùng”. Một đặc tính đáng chú ý của Algorand là lịch sử giao dịch của nó chỉ có thể phân nhánh với rất ít xác suất (ví dụ: một phần nghìn tỷ, tức là hoặc thậm chí 10−18). Algorand cũng có thể giải quyết một số vấn đề pháp lý và những mối quan tâm chính trị. Cách tiếp cận Algorand áp dụng cho blockchains và tổng quát hơn cho bất kỳ phương pháp tạo nào một chuỗi các khối chống giả mạo. Chúng tôi thực sự đã đưa ra một phương pháp mới - thay thế và hiệu quả hơn blockchains— điều đó có thể được quan tâm độc lập. 1.1 Giả định của Bitcoin và các vấn đề kỹ thuật Bitcoin là một hệ thống rất khéo léo và đã truyền cảm hứng cho rất nhiều nghiên cứu tiếp theo. Tuy nhiên, nó cũng có vấn đề. Chúng ta hãy tóm tắt giả định cơ bản và các vấn đề kỹ thuật của nó - mà về cơ bản được chia sẻ bởi tất cả các loại tiền điện tử, như Bitcoin, đều dựa trên proof-of-work. Đối với bản tóm tắt này, cần nhớ lại rằng, trong Bitcoin, người dùng có thể sở hữu nhiều khóa chung của sơ đồ chữ ký số, số tiền đó được liên kết với khóa công khai và khoản thanh toán là một chữ ký số chuyển một số tiền từ khóa công khai này sang khóa công khai khác. Về cơ bản, Bitcoin sắp xếp tất cả các khoản thanh toán được xử lý theo chuỗi khối, B1, B2, . . ., mỗi cái bao gồm nhiều các khoản thanh toán, chẳng hạn như tất cả các khoản thanh toán B1, được thực hiện theo bất kỳ thứ tự nào, tiếp theo là các khoản thanh toán B2, theo bất kỳ thứ tự nào, v.v., tạo thành một chuỗi các khoản thanh toán hợp lệ. Trung bình mỗi khối được tạo ra cứ sau 10 phút. Chuỗi khối này là một chuỗi vì nó được cấu trúc để đảm bảo rằng bất kỳ thay đổi nào, thậm chí trong một khối duy nhất, thấm vào tất cả các khối tiếp theo, giúp dễ dàng phát hiện bất kỳ thay đổi nào của lịch sử thanh toán. (Như chúng ta sẽ thấy, điều này đạt được bằng cách đưa vào mỗi khối một mật mã hash của cái trước.) Cấu trúc khối như vậy được gọi là blockchain. Giả định: Phần lớn sức mạnh tính toán trung thực Bitcoin cho rằng không có độc hại thực thể (cũng không phải liên minh các thực thể độc hại phối hợp) kiểm soát phần lớn hoạt động tính toán sức mạnh dành cho việc tạo khối. Trên thực tế, một thực thể như vậy sẽ có thể sửa đổi blockchain,và do đó viết lại lịch sử thanh toán nếu muốn. Đặc biệt, nó có thể thực hiện thanh toán \(\wp\), nhận được những lợi ích được trả và sau đó “xóa” mọi dấu vết của \(\wp\). Vấn đề kỹ thuật 1: Chất thải tính toán Cách tiếp cận chặn proof-of-work của Bitcoin thế hệ đòi hỏi một lượng tính toán phi thường. Hiện nay chỉ với vài trăm Hàng nghìn khóa công khai trong hệ thống, top 500 siêu máy tính mạnh nhất chỉ có thể tập hợp được chỉ chiếm 12,8% tổng công suất tính toán được yêu cầu từ người chơi Bitcoin. Cái này lượng tính toán sẽ tăng lên đáng kể nếu có nhiều người dùng tham gia hệ thống hơn. Bài toán kỹ thuật 2: Tập trung quyền lực Ngày nay, do số lượng quá lớn cần tính toán, người dùng đang cố gắng tạo một khối mới bằng cách sử dụng máy tính để bàn thông thường (chưa nói đến một điện thoại di động), dự kiến sẽ mất tiền. Thật vậy, để tính toán một khối mới bằng một máy tính thông thường, chi phí dự kiến của lượng điện cần thiết để cung cấp năng lượng cho quá trình tính toán vượt quá phần thưởng dự kiến. Chỉ sử dụng nhóm máy tính được chế tạo đặc biệt (không làm gì khác ngoài việc “khai thác các khối mới”), một có thể mong đợi kiếm được lợi nhuận bằng cách tạo ra các khối mới. Theo đó, ngày nay trên thực tế có hai các lớp người dùng riêng biệt: người dùng thông thường, những người chỉ thực hiện thanh toán và các nhóm khai thác chuyên dụng, chỉ tìm kiếm các khối mới. Do đó, không có gì ngạc nhiên khi tính đến thời điểm hiện tại, tổng sức mạnh tính toán của khối thế hệ chỉ nằm trong năm nhóm. Trong những điều kiện như vậy, giả định rằng phần lớn sức mạnh tính toán trung thực sẽ trở nên kém tin cậy hơn. Vấn đề kỹ thuật 3: Sự mơ hồ Trong Bitcoin, blockchain không nhất thiết phải là duy nhất. Quả thực phần mới nhất của nó thường phân nhánh: blockchain có thể là —say— B1, . . . , Bk, B′ k+1, B′ k+2, theo một người dùng và B1, . . . , Bk, B′′ k+1, B′′ k+2, B′′ k+3 theo người dùng khác. Chỉ sau vài khối có được thêm vào chuỗi, liệu người ta có thể chắc chắn một cách hợp lý rằng k + 3 khối đầu tiên sẽ giống nhau không? cho tất cả người dùng. Vì vậy, người ta không thể dựa ngay vào các khoản thanh toán có trong khối cuối cùng của chuỗi. Sẽ khôn ngoan hơn nếu chờ xem liệu khối này có đủ sâu trong blockchain và do đó đủ ổn định. Riêng biệt, các mối lo ngại về thực thi pháp luật và chính sách tiền tệ cũng đã được nêu ra về Bitcoin.1 1.2 Algorand, Tóm tắt lại Cài đặt Algorand hoạt động trong môi trường rất khắc nghiệt. Tóm lại, (a) Môi trường không được phép và được phép. Algorand hoạt động hiệu quả và an toàn ngay cả trong một môi trường hoàn toàn không được phép, nơi nhiều người dùng được phép tham gia một cách tùy ý hệ thống bất kỳ lúc nào mà không cần kiểm tra hay cho phép dưới bất kỳ hình thức nào. Tất nhiên, Algorand hoạt động thậm chí còn tốt hơn trong môi trường được phép. 1Tính ẩn danh (giả) được cung cấp bởi các khoản thanh toán Bitcoin có thể bị lạm dụng để rửa tiền và/hoặc tài trợ của các cá nhân tội phạm hoặc các tổ chức khủng bố. Tiền giấy hoặc vàng miếng truyền thống, về nguyên tắc mang lại sự hoàn hảo tính ẩn danh, sẽ đặt ra thách thức tương tự, nhưng tính chất vật lý của các loại tiền tệ này làm chậm tiền một cách đáng kể. chuyển giao, để cho phép các cơ quan thực thi pháp luật giám sát ở một mức độ nào đó. Khả năng “in tiền” là một trong những quyền lực cơ bản của một quốc gia. Do đó, về nguyên tắc, khối lượng lớn việc áp dụng một đồng tiền thả nổi độc lập có thể hạn chế quyền lực này. Tuy nhiên, hiện tại, Bitcoin còn lâu mới trở thành hiện thực. một mối đe dọa đối với các chính sách tiền tệ của chính phủ, và do các vấn đề về khả năng mở rộng của nó, có thể không bao giờ có.(b) Môi trường rất bất lợi. Algorand chống lại một Kẻ thù rất mạnh, kẻ có thể (1) ngay lập tức làm hư hỏng bất kỳ người dùng nào anh ta muốn, vào bất kỳ lúc nào anh ta muốn, với điều kiện là, trong một môi trường không được phép, 2/3 số tiền trong hệ thống thuộc về người dùng trung thực. (Trong một môi trường được phép, bất kể tiền bạc, chỉ cần 2/3 số người dùng trung thực là đủ.) (2) hoàn toàn kiểm soát và phối hợp hoàn hảo tất cả những người dùng tham nhũng; và (3) lên lịch gửi tất cả tin nhắn, với điều kiện mỗi tin nhắn được gửi bởi người dùng trung thực tiếp cận 95% người dùng trung thực trong thời gian \(\lambda\)m, điều này chỉ phụ thuộc vào kích thước của m. Thuộc tính chính Bất chấp sự hiện diện của kẻ thù hùng mạnh của chúng ta, trong Algorand • Khối lượng tính toán cần thiết là tối thiểu. Về cơ bản, bất kể có bao nhiêu người dùng có trong hệ thống, mỗi người trong số 1500 người dùng phải thực hiện tối đa vài giây tính toán. • Khối mới được tạo trong vòng chưa đầy 10 phút và trên thực tế sẽ không bao giờ rời khỏi blockchain. Ví dụ, theo kỳ vọng, thời gian để tạo khối theo phương án đầu tiên sẽ ít hơn hơn Λ + 12,4\(\lambda\), trong đó Λ là thời gian cần thiết để truyền một khối, trong tin đồn ngang hàng thời trang, bất kể kích thước khối nào người ta có thể chọn và \(\lambda\) là thời gian để truyền 1.500 thông điệp 200Blong. (Vì trong một hệ thống phi tập trung thực sự, Λ về cơ bản là độ trễ nội tại, trong Algorand yếu tố hạn chế trong việc tạo khối là tốc độ mạng.) Phương án thứ hai có thực sự đã được thử nghiệm bằng thực nghiệm ( bởi ?), cho thấy rằng một khối được tạo ra trong vòng chưa đầy 40 giây. Ngoài ra, blockchain của Algorand chỉ có thể phân nhánh với xác suất không đáng kể (tức là ít hơn một trong một nghìn tỷ), và do đó người dùng có thể chuyển tiếp các khoản thanh toán có trong một khối mới ngay khi khối xuất hiện. • Mọi quyền lực đều thuộc về chính người sử dụng. Algorand là hệ thống truy cập phân tán. Đặc biệt, không có thực thể ngoại sinh nào (như “thợ mỏ” trong Bitcoin), có thể kiểm soát giao dịch nào được công nhận. Kỹ thuật của Algorand. 1. Nghị định thư Thỏa thuận Byzantine mới và nhanh chóng. Algorand tạo khối mới thông qua một giao thức thỏa thuận Byzantine (BA) nhị phân, truyền tin nhắn, mật mã mới, BA⋆. Giao thức BA⋆không chỉ đáp ứng một số tính chất bổ sung (mà chúng ta sẽ sớm thảo luận) mà còn rất nhanh. Nói một cách đại khái, phiên bản đầu vào nhị phân của nó bao gồm một vòng lặp 3 bước, trong đó người chơi sẽ gửi một nhắn tin cho tất cả người chơi khác. Được thực hiện trong một mạng hoàn chỉnh và đồng bộ, với nhiều hơn 2/3 số người chơi trung thực, với xác suất > 1/3, sau mỗi vòng lặp, giao thức kết thúc bằng thỏa thuận. (Chúng tôi nhấn mạnh rằng giao thức BA⋆thỏa mãn định nghĩa ban đầu của thỏa thuận Byzantine của Pease, Shostak và Lamport [31] mà không có bất kỳ sự suy yếu nào.) Algorand tận dụng giao thức BA nhị phân này để đạt được thỏa thuận trong các giao tiếp khác nhau của chúng ta mô hình, trên mỗi khối mới. Khối đã thỏa thuận sau đó được chứng nhận, thông qua một số lượng quy định chữ ký số của người xác minh thích hợp và được truyền bá qua mạng. 2. Sắp xếp bằng mật mã. Mặc dù rất nhanh nhưng giao thức BA⋆ sẽ được hưởng lợi nhiều hơn tốc độ khi được chơi bởi hàng triệu người dùng. Theo đó, Algorand chọn người chơi của BA⋆ làmmột tập hợp con nhỏ hơn nhiều của tập hợp tất cả người dùng. Để tránh một hình thức tập trung quyền lực khác vấn đề, mỗi khối Br mới sẽ được xây dựng và thống nhất, thông qua việc thực thi BA⋆ mới, bởi một bộ xác minh được chọn riêng biệt, SV r. Về nguyên tắc, việc chọn một bộ như vậy có thể khó như chọn Br trực tiếp. Chúng tôi giải quyết vấn đề tiềm ẩn này bằng cách tiếp cận mà chúng tôi gọi là, bao gồm gợi ý sâu sắc của Maurice Herlihy, phân loại bằng mật mã. Sắp xếp là việc thực hành lựa chọn các quan chức một cách ngẫu nhiên từ một nhóm lớn các cá nhân đủ điều kiện [6]. (Đã thực hành phân loại qua nhiều thế kỷ: ví dụ, bởi các nước cộng hòa Athens, Florence và Venice. Trong tư pháp hiện đại hệ thống, lựa chọn ngẫu nhiên thường được sử dụng để chọn bồi thẩm đoàn. Lấy mẫu ngẫu nhiên cũng đã được thực hiện gần đây được ủng hộ cho các cuộc bầu cử bởi David Chaum [9].) Tất nhiên, trong một hệ thống phi tập trung, việc chọn các đồng tiền ngẫu nhiên cần thiết để chọn ngẫu nhiên các thành viên của mỗi bộ xác minh SV r là vấn đề. Do đó, chúng tôi sử dụng mật mã để chọn từng bộ xác minh, từ tập hợp tất cả người dùng, theo cách được đảm bảo là tự động (tức là không yêu cầu trao đổi tin nhắn) và ngẫu nhiên. Về bản chất, chúng tôi sử dụng chức năng mật mã để tự động xác định, từ khối trước đó Br−1, người dùng, người lãnh đạo, chịu trách nhiệm đề xuất khối Br mới và bộ xác minh SV r, trong phí để thống nhất khối do người đứng đầu đề xuất. Vì người dùng độc hại có thể ảnh hưởng thành phần của Br−1 (ví dụ: bằng cách chọn một số khoản thanh toán của nó), chúng tôi đặc biệt xây dựng và sử dụng đầu vào bổ sung để chứng minh rằng khối dẫn đầu cho khối thứ r và bộ xác minh SV r thực sự là được chọn ngẫu nhiên. 3. Số lượng (Hạt giống) Qr. Chúng tôi sử dụng khối Br−1 cuối cùng trong blockchain để tự động xác định bộ xác minh tiếp theo và người lãnh đạo phụ trách xây dựng khối mới Anh. Thách thức với cách tiếp cận này là chỉ cần chọn một khoản thanh toán hơi khác một chút trong vòng trước, Đối thủ hùng mạnh của chúng ta giành được quyền kiểm soát to lớn đối với kẻ dẫn đầu tiếp theo. Kể cả nếu anh ấy chỉ kiểm soát 1/1000 người chơi/tiền trong hệ thống, anh ta có thể đảm bảo rằng tất cả các nhà lãnh đạo đều độc hại. (Xem Phần Trực giác 4.1.) Thử thách này là trọng tâm của tất cả các cách tiếp cận proof-of-stake, và theo hiểu biết tốt nhất của chúng tôi, cho đến nay, vấn đề này vẫn chưa được giải quyết thỏa đáng. Để đáp ứng thách thức này, chúng tôi cố tình xây dựng và liên tục cập nhật một hệ thống riêng biệt và cẩn thận. đại lượng xác định, Qr, được chứng minh là không những không thể đoán trước mà còn không bị ảnh hưởng bởi chúng ta Đối thủ mạnh mẽ. Chúng ta có thể coi Qr là hạt giống thứ r, vì chính từ Qr mà Algorand chọn, thông qua phân loại mật mã bí mật, tất cả người dùng sẽ đóng một vai trò đặc biệt trong việc tạo ra khối thứ r. 4. Phân loại mật mã bí mật và thông tin xác thực bí mật. Sử dụng ngẫu nhiên và rõ ràng khối cuối cùng hiện tại, Br-1, để chọn bộ xác minh và người lãnh đạo phụ trách việc xây dựng khối mới, Br, là chưa đủ. Vì Br−1 phải được biết trước khi tạo Br, đại lượng không ảnh hưởng cuối cùng Qr−1 chứa trong Br−1 cũng phải được biết. Theo đó, vì vậy là người xác minh và là người đứng đầu phụ trách tính toán khối Br. Vì vậy, Kẻ thù hùng mạnh của chúng ta có thể ngay lập tức làm hỏng tất cả chúng, trước khi họ tham gia vào bất kỳ cuộc thảo luận nào về Br, để có được toàn quyền kiểm soát khối mà họ chứng nhận. Để ngăn chặn vấn đề này, các nhà lãnh đạo (và thực tế là cả những người kiểm tra) bí mật tìm hiểu về vai trò của họ, nhưng có thể tính toán thông tin xác thực phù hợp, có khả năng chứng minh cho mọi người thấy rằng thực sự có vai trò đó. Khi nào một người dùng nhận ra một cách riêng tư rằng anh ta là người lãnh đạo khối tiếp theo, đầu tiên anh ta bí mật tập hợp khối mới được đề xuất của riêng mình, và sau đó phổ biến nó (để có thể được chứng nhận) cùng với khối của riêng mình thông tin xác thực. Bằng cách này, mặc dù Kẻ thù sẽ ngay lập tức nhận ra ai là người lãnh đạo tiếp theo chặn, và mặc dù anh ta có thể làm hỏng anh ta ngay lập tức, nhưng sẽ quá muộn để Kẻ thù có thể ảnh hưởng đến việc lựa chọn khối mới. Quả thực, anh không thể “gọi lại” lời nhắn của lãnh đạo nữahơn mức mà một chính phủ hùng mạnh có thể nhét lại vào trong chai một thông điệp được WikiLeaks lan truyền rộng rãi. Như chúng ta sẽ thấy, chúng ta không thể đảm bảo tính duy nhất của người lãnh đạo cũng như việc mọi người đều chắc chắn ai là người lãnh đạo. là, kể cả chính người lãnh đạo! Tuy nhiên, trong Algorand, tiến trình rõ ràng sẽ được đảm bảo. 5. Khả năng thay thế người chơi. Sau khi đề xuất một khối mới, người lãnh đạo cũng có thể “chết” (hoặc bị bị Kẻ thù làm hỏng), bởi vì công việc của anh ta đã hoàn thành. Tuy nhiên, đối với những người xác minh trong SV r, mọi thứ lại ít hơn đơn giản. Thật vậy, chịu trách nhiệm chứng nhận khối Br mới có đủ chữ ký, trước tiên họ phải thực hiện thỏa thuận Byzantine về khối do người lãnh đạo đề xuất. Vấn đề là ở chỗ, dù có hiệu quả đến đâu thì BA⋆ cũng yêu cầu nhiều bước và sự trung thực của > 2/3 số người chơi. Đây là một vấn đề, bởi vì, vì lý do hiệu quả, tập người chơi của BA⋆ chứa tập nhỏ SV r được chọn ngẫu nhiên trong tập hợp tất cả người dùng. Vì vậy, Kẻ thù hùng mạnh của chúng ta, mặc dù không thể làm hỏng 1/3 số người dùng, chắc chắn có thể làm hỏng tất cả thành viên của SV r! May mắn thay, chúng tôi sẽ chứng minh rằng giao thức BA⋆, được thực thi bằng cách truyền các thông báo theo kiểu ngang hàng, có thể thay thế được người chơi. Yêu cầu mới này có nghĩa là giao thức chính xác và đạt được sự đồng thuận một cách hiệu quả ngay cả khi mỗi bước của nó được thực hiện bởi một quy trình hoàn toàn mới và ngẫu nhiên và một tập hợp người chơi được lựa chọn độc lập. Do đó, với hàng triệu người dùng, mỗi nhóm nhỏ người chơi được liên kết với một bước của BA⋆có thể có phần giao trống với tập tiếp theo. Ngoài ra, các nhóm người chơi ở các bước BA⋆ khác nhau có thể sẽ có những cách chơi hoàn toàn khác nhau. hồng y. Hơn nữa, các thành viên của mỗi nhóm không biết nhóm người chơi tiếp theo sẽ là ai. được, và không bí mật vượt qua bất kỳ trạng thái nội bộ nào. Thuộc tính người chơi có thể thay thế thực sự rất quan trọng để đánh bại kẻ năng động và rất mạnh mẽ. Đối thủ mà chúng tôi dự tính. Chúng tôi tin rằng các giao thức trình phát có thể thay thế sẽ tỏ ra quan trọng trong nhiều bối cảnh và ứng dụng. Đặc biệt, chúng sẽ rất quan trọng để thực thi các giao thức con nhỏ một cách an toàn được nhúng trong một vũ trụ rộng lớn hơn gồm những người chơi với một kẻ thù năng động, kẻ có thể làm hỏng ngay cả một phần nhỏ trong tổng số người chơi, không khó khăn gì trong việc làm hư hỏng tất cả những người chơi trong những người chơi nhỏ hơn giao thức phụ. Một thuộc tính/kỹ thuật bổ sung: Sự trung thực lười biếng Một người dùng trung thực làm theo quy định của mình hướng dẫn, bao gồm cả việc trực tuyến và chạy giao thức. Vì Algorand chỉ có mức khiêm tốn yêu cầu tính toán và truyền thông, trực tuyến và chạy giao thức “trong nền” không phải là một sự hy sinh lớn lao. Tất nhiên, có một vài “sự vắng mặt” trong số những người chơi trung thực, như những do mất kết nối đột ngột hoặc cần khởi động lại, sẽ tự động được chấp nhận (vì chúng tôi luôn có thể coi số ít người chơi như vậy là có ác ý tạm thời). Tuy nhiên, chúng ta hãy chỉ ra Algorand đó có thể được điều chỉnh một cách đơn giản để hoạt động trong một mô hình mới, trong đó những người dùng trung thực sẽ trở thành hầu hết thời gian ngoại tuyến. Mô hình mới của chúng tôi có thể được giới thiệu một cách không chính thức như sau. Sự trung thực lười biếng. Nói một cách đại khái, một người dùng i lười biếng nhưng trung thực nếu (1) anh ta tuân theo mọi quy định của mình hướng dẫn, khi anh ta được yêu cầu tham gia vào giao thức, và (2) anh ta được yêu cầu tham gia hiếm khi tham gia vào giao thức và có thông báo trước phù hợp. Với quan niệm thoải mái như vậy về tính trung thực, chúng ta có thể càng tin tưởng hơn rằng những người trung thực sẽ sẵn sàng khi chúng tôi cần và Algorand đảm bảo rằng, trong trường hợp này, Hệ thống hoạt động an toàn ngay cả khi tại một thời điểm nhất định, phần lớn những người chơi tham gia đều có ác ý.1.3 Công việc liên quan chặt chẽ Các phương pháp tiếp cận bằng chứng công việc (như [29] và [4] được trích dẫn) khá trực quan với phương pháp của chúng tôi. Các các phương pháp tiếp cận dựa trên thỏa thuận Byzantine truyền thông điệp hoặc khả năng chịu lỗi Byzantine thực tế (như [8] được trích dẫn). Thật vậy, các giao thức này không thể chạy giữa một tập hợp tất cả người dùng và không thể, trong mô hình của chúng tôi, được giới hạn ở một nhóm người dùng nhỏ phù hợp. Trên thực tế, kẻ thù hùng mạnh của chúng ta ngay lập tức làm hỏng tất cả người dùng có liên quan đến một nhóm nhỏ bị buộc tội thực sự chạy giao thức BA. Cách tiếp cận của chúng tôi có thể được coi là có liên quan đến bằng chứng cổ phần [2], theo nghĩa là “quyền lực” của người dùng trong việc xây dựng khối tỷ lệ thuận với số tiền họ sở hữu trong hệ thống (ngược lại với —say— với số tiền họ đã bỏ vào “ký quỹ”). Bài báo gần nhất với chúng tôi là Mô hình đồng thuận buồn ngủ của Pass và Shi [30]. Để tránh yêu cầu tính toán nặng nề trong cách tiếp cận proof-of-work, bài viết của họ dựa vào (và vui lòng phần ghi công) Phân loại mật mã bí mật của Algorand. Với điểm chung quan trọng này, một số sự khác biệt đáng kể tồn tại giữa các bài báo của chúng tôi. Đặc biệt, (1) Cài đặt của họ chỉ được cho phép. Ngược lại, Algorand cũng là một hệ thống không được phép. (2) Họ sử dụng giao thức kiểu Nakamoto và do đó thường xuyên phân tách blockchain của họ. Mặc dù phân phối proof-of-work, trong giao thức của họ, một nhà lãnh đạo được lựa chọn bí mật sẽ được yêu cầu kéo dài thời gian hợp lệ lâu nhất (theo nghĩa phong phú hơn) blockchain. Vì vậy, việc fork là điều không thể tránh khỏi và người ta phải chờ đợi điều đó. khối này đủ “sâu” trong chuỗi. Quả thực, để đạt được mục tiêu của mình trước một đối thủ có khả năng sửa đổi thích ứng, chúng yêu cầu một khối có độ sâu poly(N), trong đó N đại diện cho tổng số người dùng trong hệ thống. Lưu ý rằng, ngay cả khi giả sử rằng một khối có thể được tạo ra trong một phút, nếu có N = 1 triệu người dùng thì người ta sẽ phải đợi khoảng 2 triệu năm để một khối có độ sâu N là 2 và trong khoảng 2 năm để một khối có độ sâu N. Ngược lại, Algorand của blockchain chỉ phân nhánh với xác suất không đáng kể, ngay cả khi Đối thủ tham nhũng người dùng ngay lập tức và thích ứng, đồng thời có thể tin cậy ngay vào các khối mới của nó. (3) Họ không xử lý các thỏa thuận Byzantine riêng lẻ. Theo một nghĩa nào đó, họ chỉ đảm bảo “sự đồng thuận cuối cùng về một chuỗi giá trị ngày càng tăng”. Của họ là một giao thức sao chép trạng thái, đúng hơn là hơn BA và không thể được sử dụng để đạt được thỏa thuận Byzantine về giá trị lợi ích riêng lẻ. Ngược lại, Algorand cũng chỉ có thể được sử dụng một lần, nếu muốn, để cho phép hàng triệu người dùng nhanh chóng đạt được thỏa thuận Byzantine về một giá trị quan tâm cụ thể. (4) Chúng yêu cầu đồng hồ được đồng bộ hóa yếu. Tức là đồng hồ của tất cả người dùng đều bị lệch một khoảng thời gian nhỏ δ. Ngược lại, trong Algorand, đồng hồ chỉ cần có (về cơ bản) cùng một “tốc độ”. (5) Giao thức của họ hoạt động với những người dùng lười biếng nhưng trung thực hoặc với phần lớn người dùng trực tuyến trung thực. Họ vui lòng ghi nhận Algorand vì đã nêu lên vấn đề người dùng trung thực ngoại tuyến hàng loạt và vì đưa ra mô hình trung thực lười biếng để đáp lại. Giao thức của họ không chỉ hoạt động ở chế độ lười biếng mô hình trung thực mà còn trong mô hình buồn ngủ đối nghịch của họ, nơi đối thủ chọn người dùng nào trực tuyến và ngoại tuyến, miễn là phần lớn người dùng trực tuyến luôn trung thực.2 2 Phiên bản gốc của bài báo của họ thực ra chỉ coi tính bảo mật trong mô hình đối lập buồn ngủ của họ. các phiên bản gốc của Algorand, trước phiên bản của họ, cũng được dự tính rõ ràng với giả định rằng phần lớn nhất định của Người chơi trực tuyến luôn trung thực, nhưng rõ ràng đã loại trừ nó khỏi việc xem xét, ủng hộ mô hình trung thực lười biếng. (Ví dụ: nếu tại một thời điểm nào đó, một nửa số người dùng trung thực chọn chuyển sang chế độ ngoại tuyến thì phần lớn người dùng sẽ trực tuyến rất có thể độc hại. Vì vậy, để ngăn chặn điều này xảy ra, Kẻ thù phải ép buộc phần lớn lực lượng của mình những người chơi bị mua chuộc cũng chuyển sang ngoại tuyến, điều này rõ ràng là đi ngược lại lợi ích của chính anh ta.) Lưu ý rằng một giao thức có đa số của những người chơi lười biếng nhưng trung thực chỉ hoạt động tốt nếu phần lớn người dùng trực tuyến luôn có ác ý. Điều này là như vậy, bởi vì một số lượng vừa đủ những người chơi trung thực, biết rằng họ sẽ đóng vai trò quan trọng vào một thời điểm hiếm hoi nào đó, sẽ bầu không được ngoại tuyến trong những thời điểm đó và họ cũng không thể bị Kẻ thù buộc phải ngoại tuyến, vì hắn không biết ai là người những người chơi trung thực quan trọng có thể là.(6) Họ yêu cầu đa số trung thực đơn giản. Ngược lại, phiên bản hiện tại của Algorand yêu cầu đa số trung thực là 2/3. Một bài báo khác gần gũi với chúng tôi là Ouroboros: Giao thức chuỗi khối bằng chứng cổ phần được chứng minh là an toàn, của Kiayias, Russell, David và Oliynykov [20]. Hệ thống của họ cũng xuất hiện sau hệ thống của chúng tôi. Nó cũng sử dụng phương pháp phân loại bằng phương pháp mật mã để loại bỏ bằng chứng công việc theo cách có thể chứng minh được. Tuy nhiên, họ một lần nữa, hệ thống là một giao thức kiểu Nakamoto, trong đó việc phân nhánh là không thể tránh khỏi và thường xuyên. (Tuy nhiên, trong mô hình của họ, các khối không cần sâu như mô hình đồng thuận buồn ngủ.) Hơn nữa, hệ thống của họ dựa trên các giả định sau: theo lời của chính các tác giả, “(1) mạng có tính đồng bộ cao, (2) phần lớn các bên liên quan được lựa chọn luôn sẵn sàng khi cần thiết để tham gia vào từng kỷ nguyên, (3) các bên liên quan không ngoại tuyến trong thời gian dài, (4) khả năng thích ứng của tham nhũng phải chịu một độ trễ nhỏ được đo bằng vòng tuyến tính theo tham số bảo mật.” Ngược lại, Algorand, với xác suất áp đảo, không phân nhánh và không dựa vào bất kỳ giả định nào trong số 4 giả định này. Đặc biệt, trong Algorand, Kẻ thù có thể ngay lập tức làm hỏng những người dùng mà anh ta muốn kiểm soát.
소개
돈은 점점 더 가상화되고 있습니다. 미국의 약 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에서 공격자는 다음을 수행할 수 있습니다. 그가 제어하려는 사용자를 즉시 부패시킵니다.
Kiến thức cơ bản
2.1 Mật mã nguyên thủy Băm lý tưởng. Chúng ta sẽ dựa vào hàm mật mã hash có thể tính toán hiệu quả, H, mà ánh xạ các chuỗi dài tùy ý thành chuỗi nhị phân có độ dài cố định. Theo truyền thống lâu đời, chúng tôi làm mẫu H dưới dạng ngẫu nhiên oracle, về cơ bản là một hàm ánh xạ từng chuỗi có thể thành một chuỗi ngẫu nhiên và chuỗi nhị phân được chọn độc lập (và sau đó cố định), H(s), có độ dài đã chọn. Trong bài báo này, H có đầu ra dài 256 bit. Thật vậy, độ dài như vậy đủ ngắn để làm cho hệ thống hiệu quả và đủ lâu để đảm bảo hệ thống an toàn. Chẳng hạn, chúng ta muốn H có khả năng chống va chạm. Nghĩa là, khó có thể tìm được hai chuỗi x và y khác nhau sao cho H(x) = H(y). Khi H là oracle ngẫu nhiên với đầu ra dài 256 bit, việc tìm thấy bất kỳ cặp chuỗi nào như vậy thực sự là khó khăn. (Thử ngẫu nhiên và dựa vào nghịch lý ngày sinh, sẽ cần 2256/2 = 2128 thử nghiệm.) Ký kỹ thuật số. Chữ ký số cho phép người dùng xác thực thông tin với nhau mà không chia sẻ bất kỳ khóa bí mật nào. Một sơ đồ chữ ký số bao gồm ba bước nhanh các thuật toán: bộ tạo khóa xác suất G, thuật toán ký S và thuật toán xác minh V . Cho tham số bảo mật k, một số nguyên đủ cao, người dùng i sử dụng G để tạo ra một cặp Các khóa k-bit (tức là các chuỗi): một pki khóa “công khai” và một khóa ký kết “bí mật” phù hợp. Điều quan trọng là một khóa công khai không “phản bội” khóa bí mật tương ứng của nó. Nghĩa là, ngay cả khi có kiến thức về pki, không một người khác ngoài tôi có thể tính toán trượt tuyết trong thời gian ngắn hơn thiên văn. Người dùng tôi sử dụng ski để ký điện tử các tin nhắn. Đối với mỗi thông báo có thể (chuỗi nhị phân) m, trước tiên tôi hashes m rồi chạy thuật toán S trên đầu vào H(m) và trượt để tạo ra chuỗi k-bit sigpki(m) \(\triangleq\)S(H(m), trượt tuyết) .3 3Vì H có khả năng chống va chạm nên thực tế không thể xảy ra trường hợp, bằng việc ký tên cho m một người “vô tình ký” một ký hiệu khác nhắn tin cho m′.Chuỗi nhị phân sigpki(m) được gọi là chữ ký số i của m (liên quan đến pki) và có thể là được biểu thị đơn giản hơn bằng sigi(m), khi pki khóa công khai rõ ràng trong ngữ cảnh. Mọi người biết pki đều có thể sử dụng nó để xác minh chữ ký số do i. Cụ thể, trên nhập (a) khóa công khai pki của người chơi i, (b) tin nhắn m, và (c) chuỗi s, tức là tôi được cho là chữ ký số của thông báo m, thuật toán xác minh V đưa ra CÓ hoặc KHÔNG. Các thuộc tính chúng tôi yêu cầu từ sơ đồ chữ ký số là: 1. Chữ ký hợp pháp luôn được xác minh: Nếu s = sigi(m), thì V (pki, m, s) = Y ES; và 2. Chữ ký số rất khó giả mạo: Nếu không có kiến thức về trượt tuyết thì sẽ rất khó tìm được một chuỗi như vậy. rằng V (pki, m, s) = Y ES, đối với một thông điệp m chưa bao giờ được ký bởi i, rất dài về mặt thiên văn. (Tuân theo yêu cầu bảo mật mạnh mẽ của Goldwasser, Micali và Rivest [17], điều này đúng ngay cả khi người ta có thể lấy được chữ ký của bất kỳ tin nhắn nào khác.) Theo đó, để ngăn chặn người khác ký tin nhắn thay mặt mình, người chơi phải giữ ký khóa bí mật trượt tuyết (do đó có thuật ngữ "khóa bí mật") và cho phép bất kỳ ai xác minh tin nhắn anh ấy đã ký, tôi quan tâm đến việc công khai pki khóa của anh ấy (do đó có thuật ngữ “khóa công khai”). Nói chung, một thông điệp m không thể truy xuất được từ chữ ký sigi(m) của nó. Để giải quyết hầu như với chữ ký số thỏa mãn thuộc tính “khả năng truy xuất” thuận tiện về mặt khái niệm (nghĩa là để đảm bảo rằng người ký và thông điệp có thể dễ dàng tính toán được từ chữ ký, chúng ta định nghĩa SIGpki(m) = (i, m, sigpki(m)) và SIGi(m) = (i, m, sigi(m)), nếu pki rõ ràng. Chữ ký kỹ thuật số độc đáo. Chúng tôi cũng xem xét các lược đồ chữ ký số (G, S, V ) thỏa mãn tài sản bổ sung sau. 3. Tính độc đáo. Thật khó để tìm các chuỗi pk’, m, s và s’ sao cho s ̸= s′ và V(pk′, m, s) = V(pk′, m, s′) = 1. (Lưu ý rằng thuộc tính duy nhất cũng đúng đối với các chuỗi pk′ không được tạo hợp pháp khóa công khai. Tuy nhiên, đặc biệt, tính chất duy nhất ngụ ý rằng, nếu người ta sử dụng trình tạo khóa được chỉ định G để tính toán khóa công khai pk cùng với khóa bí mật phù hợp sk, và do đó biết sk, về cơ bản anh ta không thể tìm thấy hai kỹ thuật số khác nhau chữ ký của cùng một tin nhắn liên quan đến pk.) Bình luận • Từ chữ ký duy nhất đến các hàm ngẫu nhiên có thể kiểm chứng. Liên quan đến kỹ thuật số lược đồ chữ ký với tính chất duy nhất, ánh xạ m \(\to\) H(sigi(m)) liên kết với mỗi chuỗi có thể m, một chuỗi 256 bit duy nhất, được chọn ngẫu nhiên và tính chính xác của chuỗi này ánh xạ có thể được chứng minh bằng chữ ký sigi(m). Nghĩa là, lược đồ chữ ký số và chữ ký số hash lý tưởng về cơ bản thỏa mãn tính chất duy nhất cung cấp cách triển khai cơ bản của hàm ngẫu nhiên có thể kiểm chứng được, như được giới thiệu và bởi Micali, Rabin và Vadhan [27]. (Việc triển khai ban đầu của họ nhất thiết phải phức tạp hơn, vì họ không dựa vào hashing lý tưởng.)• Ba nhu cầu khác nhau về chữ ký số. Trong Algorand, người dùng tôi tin tưởng vào kỹ thuật số chữ ký cho (1) Xác thực các khoản thanh toán của chính tôi. Trong ứng dụng này, các khóa có thể là “dài hạn” (nghĩa là được sử dụng để ký nhiều tin nhắn trong một khoảng thời gian dài) và đến từ sơ đồ chữ ký thông thường. (2) Tạo thông tin xác thực chứng minh rằng tôi có quyền hành động ở một số bước của vòng r. Ở đây, khóa có thể dài hạn nhưng phải đến từ sơ đồ thỏa mãn tính chất duy nhất. (3) Xác thực tin nhắn tôi gửi trong từng bước anh ấy hành động. Ở đây, chìa khóa phải được phù du (tức là bị phá hủy sau lần sử dụng đầu tiên), nhưng có thể đến từ sơ đồ chữ ký thông thường. • Đơn giản hóa chi phí nhỏ. Để đơn giản, chúng tôi hình dung mỗi người dùng có một khóa dài hạn duy nhất. Theo đó, khóa như vậy phải đến từ sơ đồ chữ ký có tính duy nhất tài sản. Sự đơn giản như vậy có chi phí tính toán nhỏ. Thông thường, trên thực tế, kỹ thuật số độc đáo chữ ký đắt hơn một chút để sản xuất và xác minh so với chữ ký thông thường. 2.2 Sổ cái công cộng lý tưởng hóa Algorand cố gắng bắt chước hệ thống thanh toán sau, dựa trên sổ cái công khai được lý tưởng hóa. 1. Trạng thái ban đầu. Tiền được liên kết với các khóa công khai riêng lẻ (được tạo riêng và thuộc quyền sở hữu của người dùng). Để pk1, . . . , pkj là khóa công khai ban đầu và a1, . . . , aj tương ứng của họ số lượng đơn vị tiền ban đầu thì trạng thái ban đầu là S0 = (pk1, a1), . . . , (pkj, aj) , được coi là kiến thức phổ biến trong hệ thống. 2. Thanh toán. Giả sử pk là khóa công khai hiện có \(\geq\)0 đơn vị tiền, pk′ công khai khác khóa và a′ là một số không âm không lớn hơn a. Sau đó, khoản thanh toán (hợp lệ) \(\wp\)là khoản thanh toán kỹ thuật số chữ ký, liên quan đến pk, xác định việc chuyển các đơn vị tiền tệ a' từ pk sang pk', cùng nhau với một số thông tin bổ sung. Trong các ký hiệu, \(\wp\)= SIGpk(pk, pk′, a′, I, H(I)), trong đó tôi đại diện cho bất kỳ thông tin bổ sung nào được coi là hữu ích nhưng không nhạy cảm (ví dụ: thời gian thông tin và số nhận dạng thanh toán) và bất kỳ thông tin bổ sung nào được coi là nhạy cảm (ví dụ: lý do thanh toán, có thể là danh tính của chủ sở hữu pk và pk′, v.v.). Chúng ta gọi pk (hoặc chủ sở hữu của nó) là người trả tiền, gọi mỗi pk' (hoặc chủ sở hữu của nó) là người nhận thanh toán và a' là số tiền thanh toán \(\wp\). Tham gia miễn phí qua thanh toán. Lưu ý người dùng có thể tham gia hệ thống bất cứ khi nào họ muốn bằng cách tạo ra các cặp khóa công khai/bí mật của riêng mình. Theo đó, khóa công khai pk′ xuất hiện trong khoản thanh toán \(\wp\)ở trên có thể là khóa công khai mới được tạo và chưa bao giờ “sở hữu” bất kỳ khoản tiền nào trước đây. 3. Sổ cái kỳ diệu. Trong Hệ thống lý tưởng hóa, tất cả các khoản thanh toán đều hợp lệ và xuất hiện dưới dạng chống giả mạo. danh sách L các bộ thanh toán “đăng lên trời” cho mọi người xem: L = TRẢ 1, TRẢ 2, . . . ,Mỗi khối PAY r+1 bao gồm tập hợp tất cả các khoản thanh toán được thực hiện kể từ khi khối xuất hiện TRẢ TIỀN r. Trong hệ thống lý tưởng, một khối mới xuất hiện sau một khoảng thời gian cố định (hoặc hữu hạn). Cuộc thảo luận. • Thêm các khoản thanh toán chung và đầu ra giao dịch chưa chi tiêu. Tổng quát hơn, nếu một khóa công khai pk sở hữu số tiền a, thì khoản thanh toán hợp lệ \(\wp\)của pk có thể chuyển số tiền a′ 1, a′ 2, . . ., tương ứng với các phím pk′ 1, pk′ 2, . . ., miễn là P j a′ j \(\leq\)a. Trong Bitcoin và các hệ thống tương tự, số tiền thuộc sở hữu của pk khóa công khai được tách thành các phần riêng biệt số tiền và khoản thanh toán \(\wp\)được thực hiện bởi pk phải chuyển toàn bộ số tiền riêng biệt đó a. Nếu pk chỉ muốn chuyển một phần a′ < a của a sang khóa khác thì nó cũng phải chuyển cả phần số dư, đầu ra giao dịch chưa chi tiêu, tới một khóa khác, có thể là chính pk. Algorand cũng hoạt động với các khóa có số lượng tách biệt. Tuy nhiên, để tập trung vào khía cạnh mới lạ của Algorand, về mặt khái niệm, việc tuân thủ các hình thức thanh toán đơn giản hơn của chúng tôi sẽ đơn giản hơn và các khóa có một số lượng duy nhất được liên kết với chúng. • Hiện trạng. Lược đồ lý tưởng hóa không trực tiếp cung cấp thông tin về hiện tại trạng thái của hệ thống (tức là mỗi khóa công khai có bao nhiêu đơn vị tiền). Thông tin này được khấu trừ từ Sổ cái ma thuật. Trong hệ thống lý tưởng, người dùng đang hoạt động liên tục lưu trữ và cập nhật thông tin trạng thái mới nhất, hoặc nếu không thì anh ta sẽ phải xây dựng lại nó, từ đầu, hoặc từ lần cuối cùng anh ta đã tính toán nó. (Trong phiên bản tiếp theo của bài viết này, chúng tôi sẽ tăng cường Algorand để kích hoạt nó người dùng để xây dựng lại trạng thái hiện tại một cách hiệu quả.) • Bảo mật và “Quyền riêng tư”. Chữ ký số đảm bảo rằng không ai có thể giả mạo thanh toán bằng một người dùng khác. Trong thanh toán \(\wp\), khóa công khai và số tiền không bị ẩn, nhưng thông tin nhạy cảm thông tin tôi có. Thật vậy, chỉ có H(I) xuất hiện trong \(\wp\) và vì H là hàm hash lý tưởng nên H(I) là một giá trị 256-bit ngẫu nhiên, và do đó không có cách nào để tìm ra điều gì tôi giỏi hơn chỉ đơn giản là đoán nó. Tuy nhiên, để chứng minh tôi là ai (ví dụ: để chứng minh lý do thanh toán), người trả tiền có thể chỉ tiết lộ I. Tính chính xác của I được tiết lộ có thể được xác minh bằng cách tính H(I) và so sánh giá trị kết quả với mục cuối cùng của \(\wp\). Trên thực tế, vì H có khả năng đàn hồi va chạm nên thật khó để tìm được giá trị thứ hai I′ sao cho H(I) = H(I′). 2.3 Các khái niệm và ký hiệu cơ bản Khóa, Người dùng và Chủ sở hữu Trừ khi có quy định khác, mỗi khóa công khai (gọi tắt là “khóa”) là dài hạn và liên quan đến sơ đồ chữ ký số có thuộc tính duy nhất. Khóa công khai tôi tham gia hệ thống khi một khóa công khai j khác đã có trong hệ thống thực hiện thanh toán cho i. Đối với màu sắc, chúng tôi nhân cách hóa các phím. Chúng ta gọi chìa khóa i là “anh ấy”, nói rằng tôi trung thực, rằng tôi gửi và nhận tin nhắn, v.v. Người dùng là từ đồng nghĩa với khóa. Khi chúng ta muốn phân biệt một khóa với người sở hữu nó, chúng tôi lần lượt sử dụng thuật ngữ “khóa kỹ thuật số” và “chủ sở hữu”. Hệ thống không được phép và được phép. Một hệ thống không được phép nếu khóa kỹ thuật số miễn phí tham gia bất kỳ lúc nào và chủ sở hữu có thể sở hữu nhiều khóa kỹ thuật số; và nó được cho phép, nếu không.Đại diện duy nhất Mỗi đối tượng trong Algorand có một cách thể hiện duy nhất. Đặc biệt, mỗi bộ {(x, y, z, . . . .) : x \(\in\)X, y \(\in\)Y, z \(\in\)Z, . . .} được sắp xếp theo cách được chỉ định trước: ví dụ: đầu tiên theo từ điển theo x, sau đó theo y, v.v. Đồng hồ cùng tốc độ Không có đồng hồ toàn cầu: đúng hơn là mỗi người dùng có đồng hồ riêng của mình. Đồng hồ người dùng không cần phải được đồng bộ hóa dưới bất kỳ hình thức nào. Tuy nhiên, chúng tôi giả định rằng tất cả chúng đều có cùng tốc độ. Ví dụ: khi theo đồng hồ của người dùng i là 12 giờ trưa thì có thể là 2 giờ 30 chiều theo đồng hồ của người dùng i. đồng hồ của người dùng khác j, nhưng khi nó là 12:01 theo đồng hồ của tôi thì nó sẽ là 2:31 theo đến đồng hồ của j. Nghĩa là, “một phút là như nhau (đầy đủ, về cơ bản là giống nhau) đối với mọi người dùng”. Vòng đấu Algorand được tổ chức theo đơn vị logic, r = 0, 1, . . ., gọi là vòng. Chúng tôi luôn sử dụng ký tự trên để biểu thị các vòng. Để chỉ ra rằng đại lượng không phải số Q (ví dụ: một chuỗi, khóa chung, tập hợp, chữ ký số, v.v.) đề cập đến vòng r, chúng ta chỉ cần viết Qr. Chỉ khi Q là số thực (ngược lại với chuỗi nhị phân có thể hiểu được dưới dạng số), hãy thực hiện chúng ta viết Q(r), do đó ký hiệu r không thể được hiểu là số mũ của Q. Tại (bắt đầu a) vòng r > 0, tập hợp tất cả các khóa công khai là PKr và trạng thái hệ thống là Sr = n tôi, một(r) tôi , . . . : tôi \(\in\)PKro , ở đâu một (r) tôi là số tiền có sẵn cho khóa công khai i. Lưu ý rằng PKr được khấu trừ từ Sr và Sr đó cũng có thể chỉ định các thành phần khác cho mỗi khóa chung i. Đối với vòng 0, PK0 là tập hợp khóa công khai ban đầu và S0 là trạng thái ban đầu. Cả PK0 và S0 được coi là kiến thức phổ biến trong hệ thống. Để đơn giản, khi bắt đầu vòng r, vì vậy là PK1, . . . , PKr và S1, . . . , Sr. Trong vòng r, trạng thái hệ thống chuyển từ Sr sang Sr+1: một cách tượng trưng, Vòng r: Sr −→Sr+1. Thanh toán Trong Algorand, người dùng liên tục thực hiện thanh toán (và phổ biến chúng theo cách được mô tả trong tiểu mục 2.7). Khoản thanh toán \(\wp\)của người dùng i \(\in\)PKr có cùng định dạng và ngữ nghĩa như trong Hệ thống lý tưởng. Cụ thể là, \(\wp\)= SIGi(i, i′, a, I, H(I)) . Thanh toán \(\wp\)có giá trị riêng ở vòng r (gọi tắt là thanh toán vòng r) nếu (1) số tiền của nó a nhỏ hơn hoặc bằng a(r) i , và (2) nó không xuất hiện trong bất kỳ tập hợp thanh toán chính thức nào PAY r′ cho r′ < r. (Như được giải thích bên dưới, điều kiện thứ hai có nghĩa là \(\wp\)chưa có hiệu lực. Một tập hợp các khoản thanh toán theo vòng r của i có giá trị chung nếu tổng số tiền của chúng tối đa là a(r) tôi . Bộ tiền thanh toán Tập hợp thanh toán vòng r P là tập hợp các khoản thanh toán vòng r sao cho đối với mỗi người dùng i, các khoản thanh toán của i trong P (có thể không có) đều có giá trị tập thể. Tập hợp tất cả các khoản thanh toán theo vòng r là PAY(r). Một vòng r tập trả lương P là tối đa nếu không có tập siêu nào của P là tập trả lương làm tròn r. Trên thực tế, chúng tôi đề xuất rằng khoản thanh toán \(\wp\)cũng chỉ định một vòng \(\rho\), \(\wp\)= SIGi(\(\rho\), i, i′, a, I, H(I)) , và không thể hợp lệ ở bất kỳ vòng nào ngoài [\(\rho\), \(\rho\) + k], đối với một số nguyên không âm cố định k.4 4Điều này giúp đơn giản hóa việc kiểm tra xem \(\wp\)có trở nên “hiệu quả” hay không (tức là, nó đơn giản hóa việc xác định liệu một số tập hợp thanh toán có TRẢ TIỀN r chứa \(\wp\). Khi k = 0, nếu \(\wp\)= SIGi(r, i, i′, a, I, H(I)) và \(\wp\)/\(\in\)PAY r thì tôi phải gửi lại \(\wp\).Bộ thanh toán chính thức Đối với mỗi vòng r, Algorand chọn công khai (theo cách được mô tả sau) một bộ thanh toán duy nhất (có thể trống), PAY r, bộ thanh toán chính thức của vòng. (Về cơ bản, PAY r đại diện cho các khoản thanh toán vòng r đã “thực sự” xảy ra.) Như trong Hệ thống lý tưởng (và Bitcoin), (1) cách duy nhất để người dùng mới j vào hệ thống là người nhận khoản thanh toán thuộc nhóm thanh toán chính thức TRẢ TIỀN r của vòng r nhất định; và (2) TRẢ TIỀN r xác định trạng thái của vòng tiếp theo, Sr+1, từ trạng thái của vòng hiện tại, Sr. Một cách tượng trưng, TRẢ r : Sr −→Sr+1. Cụ thể, 1. Tập khóa chung của vòng r + 1, PKr+1, bao gồm hợp của PKr và tập hợp tất cả khóa của người nhận thanh toán xuất hiện lần đầu tiên trong các khoản thanh toán PAY r; và 2. số tiền a(r+1) tôi mà người dùng tôi sở hữu ở vòng r + 1 là tổng của ai(r) —tức là, số tiền tôi sở hữu ở vòng trước (0 nếu tôi ̸\(\in\)PKr)— và tổng số tiền trả cho tôi theo các khoản thanh toán PAY r. Tóm lại, như trong Hệ thống lý tưởng, mỗi trạng thái Sr+1 có thể được khấu trừ khỏi lịch sử thanh toán trước đó: TRẢ 0, . . . , TRẢ r. 2.4 Khối và khối đã được chứng minh Trong Algorand0, khối Br tương ứng với vòng r chỉ định: chính r; tập hợp các khoản thanh toán của vòng r, TRẢ r; đại lượng Qr cần được giải thích và hash của khối trước đó, H(Br−1). Do đó, bắt đầu từ khối B0 cố định nào đó, chúng ta có blockchain truyền thống: B1 = (1, TRẢ 1, Q0, H(B0)), B2 = (2, TRẢ 2, Q1, H(B1)), B3 = (3, TRẢ 3, Q2, H(B2)), . . . Trong Algorand, tính xác thực của một khối thực sự được chứng minh bằng một phần thông tin riêng biệt, một “chứng chỉ khối” CERT r, biến Br thành một khối đã được chứng minh, Br. Sổ cái ma thuật, do đó, được thực hiện theo trình tự các khối đã được chứng minh, B1, B2, . . . Thảo luận Như chúng ta sẽ thấy, CERT r bao gồm một tập hợp các chữ ký số cho H(Br), chữ ký của một đa số thành viên của SV r, cùng với bằng chứng cho thấy mỗi thành viên đó thực sự thuộc về đến SV r. Tất nhiên, chúng ta có thể đưa các chứng chỉ CERT r vào chính các khối đó, nhưng hãy tìm nó về mặt khái niệm sạch hơn để giữ nó tách biệt.) Trong Bitcoin mỗi khối phải đáp ứng một thuộc tính đặc biệt, nghĩa là phải “chứa giải pháp của một câu đố về tiền điện tử”, điều này làm cho việc tạo khối đòi hỏi tính toán chuyên sâu và phân nhánh là điều không thể tránh khỏi và không hiếm. Ngược lại, Algorand của blockchain có hai ưu điểm chính: nó được tạo bằng tính toán tối thiểu và nó sẽ không phân nhánh với xác suất quá cao. Mỗi khối Bi là cuối cùng một cách an toàn ngay khi nó đi vào blockchain.2,5 Xác suất thất bại chấp nhận được Để phân tích tính bảo mật của Algorand, chúng tôi chỉ định xác suất F mà chúng tôi sẵn sàng thực hiện chấp nhận rằng có điều gì đó không ổn (ví dụ: tập xác minh SV r không có đa số trung thực). Như trong trường hợp độ dài đầu ra của hàm mật mã hash H, F cũng là một tham số. Tuy nhiên, như trong trường hợp đó, chúng ta thấy hữu ích khi đặt F thành một giá trị cụ thể để có được một cách nhìn trực quan hơn. nắm bắt được thực tế rằng thực sự có thể, trong Algorand, được hưởng mức độ bảo mật đầy đủ đồng thời và đủ hiệu quả. Để nhấn mạnh rằng F là tham số có thể được đặt theo ý muốn, trước tiên và phương án thứ hai mà chúng tôi lần lượt đặt F = 10−12 và F = 10−18 . Thảo luận Lưu ý rằng 10−12 thực sự nhỏ hơn một phần nghìn tỷ và chúng tôi tin rằng một con số như vậy sự lựa chọn của F là đủ trong ứng dụng của chúng tôi. Chúng ta hãy nhấn mạnh rằng 10−12 không phải là xác suất mà Đối thủ có thể giả mạo các khoản thanh toán của một người dùng trung thực. Tất cả các khoản thanh toán đều được kỹ thuật số đã ký và do đó, nếu sử dụng chữ ký số thích hợp thì xác suất giả mạo thanh toán là thấp hơn nhiều so với 10−12, và trên thực tế, về cơ bản là bằng 0. Sự kiện tồi tệ mà chúng ta sẵn sàng chịu đựng với xác suất F là các nhánh blockchain của Algorand. Lưu ý rằng, với việc thiết lập F và các vòng dài một phút, dự kiến sẽ xảy ra phân nhánh ở Algorand blockchain của blockchain với tần suất ít hơn (khoảng) một lần trong 1,9 triệu năm. Ngược lại, trong Bitcoin, việc phân nhánh xảy ra khá thường xuyên. Một người khắt khe hơn có thể đặt F ở giá trị thấp hơn. Vì mục đích này, trong phương án thứ hai của chúng tôi chúng tôi xem xét việc đặt F thành 10−18. Lưu ý rằng, giả sử rằng một khối được tạo ra mỗi giây, 1018 là số giây ước tính mà Vũ trụ đã mất cho đến nay: từ Vụ nổ lớn đến hiện tại thời gian. Do đó, với F = 10−18, nếu một khối được tạo ra trong một giây, người ta sẽ mong đợi tuổi của Vũ trụ để nhìn thấy một ngã ba. 2.6 Mô hình đối nghịch Algorand được thiết kế để bảo mật theo mô hình rất đối nghịch. Hãy để chúng tôi giải thích. Người dùng trung thực và độc hại Người dùng trung thực nếu anh ta tuân theo tất cả các hướng dẫn giao thức của mình và hoàn toàn có khả năng gửi và nhận tin nhắn. Một người dùng có ý đồ độc hại (tức là Byzantine, trong cách nói của điện toán phân tán) nếu anh ta có thể tùy ý đi chệch khỏi hướng dẫn đã quy định của mình. kẻ thù Kẻ thù là một thuật toán hiệu quả (về mặt kỹ thuật thời gian đa thức), được nhân cách hóa bằng màu sắc, kẻ có thể ngay lập tức gây ác ý cho bất kỳ người dùng nào hắn muốn, bất cứ lúc nào hắn muốn (chủ đề chỉ ở mức giới hạn trên của số lượng người dùng mà anh ta có thể tham nhũng). Đối thủ hoàn toàn kiểm soát và điều phối hoàn hảo tất cả những người dùng có ý đồ xấu. Anh ấy thực hiện mọi hành động thay mặt họ, bao gồm cả việc nhận và gửi tất cả tin nhắn của họ, đồng thời có thể khiến họ đi chệch khỏi hướng dẫn quy định của họ theo những cách tùy ý. Hoặc anh ta có thể đơn giản cô lập một người dùng bị lỗi đang gửi và nhận tin nhắn. Hãy để chúng tôi làm rõ rằng không ai khác tự động biết rằng người dùng i là độc hại, mặc dù sự ác ý của tôi có thể bộc lộ qua những hành động mà Kẻ thù bắt anh ta thực hiện. Tuy nhiên, đối thủ mạnh mẽ này • Không có sức mạnh tính toán vô hạn và không thể giả mạo thành công kỹ thuật số chữ ký của người dùng trung thực, ngoại trừ khả năng không đáng kể; Và• Không được can thiệp dưới bất kỳ hình thức nào vào việc trao đổi tin nhắn giữa những người dùng trung thực. Hơn nữa, khả năng tấn công người dùng trung thực của anh ta bị giới hạn bởi một trong những giả định sau. Sự trung thực Phần lớn tiền bạc Chúng tôi xem xét tính liên tục của Đa số tiền trung thực (HMM) giả định: cụ thể là, với mỗi số nguyên không âm k và số thực h > 1/2, HHMk > h: những người dùng trung thực ở mỗi vòng r sở hữu một phần lớn hơn h tổng số tiền trong hệ thống tại vòng r −k. Cuộc thảo luận. Giả sử rằng tất cả người dùng độc hại phối hợp hoàn hảo hành động của họ (như thể được kiểm soát bởi một thực thể duy nhất, Kẻ thù) là một giả thuyết khá bi quan. Sự phối hợp hoàn hảo giữa quá nhiều cá nhân khó đạt được. Có lẽ sự phối hợp chỉ xảy ra trong các nhóm riêng biệt của những người chơi độc hại. Tuy nhiên, vì người ta không thể chắc chắn về mức độ phối hợp của những kẻ dùng độc hại có thể tận hưởng, chúng ta thà an toàn còn hơn là tiếc nuối. Giả sử rằng Kẻ thù có thể làm hỏng người dùng một cách bí mật, linh hoạt và ngay lập tức. bi quan. Xét cho cùng, trên thực tế, việc kiểm soát hoàn toàn hoạt động của người dùng sẽ mất một thời gian. Ví dụ, giả định HMMk > h ngụ ý rằng nếu một vòng (trung bình) được thực hiện thì trong một phút, phần lớn số tiền ở một vòng nhất định sẽ nằm trong tay người trung thực ít nhất hai giờ nếu k = 120 và ít nhất một tuần nếu k = 10.000. Lưu ý rằng các giả định của HMM và Phần lớn sức mạnh tính toán trung thực trước đây các giả định có liên quan theo nghĩa là, vì sức mạnh tính toán có thể mua được bằng tiền, nếu người dùng độc hại sở hữu phần lớn số tiền thì họ có thể có được phần lớn sức mạnh tính toán. 2.7 Mô hình truyền thông Chúng tôi dự tính việc truyền bá thông điệp—tức là “tin đồn ngang hàng”5— là phương tiện duy nhất để giao tiếp. Giả định tạm thời: Gửi tin nhắn kịp thời trong toàn bộ mạng. cho Trong phần lớn bài viết này, chúng tôi giả định rằng mọi thông điệp được truyền bá đều đến được với hầu hết những người dùng trung thực. một cách kịp thời. Chúng ta sẽ loại bỏ giả định này trong Phần 10, nơi chúng ta giải quyết vấn đề mạng sự chia cắt xảy ra một cách tự nhiên hoặc do đối nghịch gây ra. (Như chúng ta sẽ thấy, chúng ta chỉ giả sử gửi tin nhắn kịp thời trong mỗi thành phần được kết nối của mạng.) Một cách cụ thể để nắm bắt kịp thời việc phân phối các tin nhắn được truyền bá (trong toàn bộ mạng) là sau đây: Đối với tất cả khả năng tiếp cận \(\rho\) > 95% và kích thước tin nhắn \(\mu\) \(\in\)Z+, tồn tại \(\lambda\) \(\rho\),\(\mu\) sao cho, nếu một người dùng trung thực truyền tin nhắn \(\mu\)-byte m tại thời điểm t, thì m đạt tới, theo thời gian t + \(\lambda\) \(\rho\),\(\mu\), ít nhất một phần \(\rho\) trong số những người dùng trung thực. 5Về cơ bản, như trong Bitcoin, khi người dùng truyền bá tin nhắn m, mọi người dùng đang hoạt động tôi sẽ nhận được m lần đầu tiên, chọn ngẫu nhiên và độc lập một số lượng nhỏ người dùng đang hoạt động phù hợp, “hàng xóm” của anh ấy, người mà anh ấy chuyển tiếp cho tôi, có thể cho đến khi anh ta nhận được sự thừa nhận từ họ. Việc truyền bá m kết thúc khi không có người dùng nào nhận được m lần đầu tiên.Tuy nhiên, thuộc tính trên không thể hỗ trợ giao thức Algorand của chúng tôi mà không hình dung rõ ràng và riêng biệt cơ chế để có được blockchain mới nhất —bởi một người dùng/kho lưu trữ/v.v. khác. Trên thực tế, để xây dựng một khối Br mới không chỉ cần có một bộ xác minh phù hợp kịp thời nhận được vòng r. tin nhắn, mà còn cả tin nhắn của các vòng trước, để biết Br−1 và tất cả các tin nhắn trước đó khối cần thiết để xác định xem các khoản thanh toán bằng Br có hợp lệ hay không. Sau đây thay vào đó giả định là đủ. Giả định về truyền tin nhắn (MP): Với mọi \(\rho\) > 95% và \(\mu\) \(\in\)Z+, tồn tại \(\lambda\) \(\rho\),\(\mu\) sao cho, với mọi thời điểm t và tất cả các tin nhắn \(\mu\)-byte m được truyền bởi một người dùng trung thực trước t −\(\lambda\) \(\rho\),\(\mu\), m được nhận, vào thời điểm t, bởi ít nhất một phần \(\rho\) người dùng trung thực. Giao thức Algorand ′ thực sự hướng dẫn từng người trong số ít người dùng (tức là người xác minh một bước nhất định của một vòng trong Algorand ′, để truyền bá một thông báo riêng biệt có kích thước quy định (nhỏ), và chúng ta cần giới hạn thời gian cần thiết để thực hiện các hướng dẫn này. Chúng tôi làm như vậy bằng cách làm phong phú thêm nghị sĩ giả định như sau. Với mọi n, \(\rho\) > 95% và \(\mu\) \(\in\)Z+, tồn tại \(\lambda\)n,\(\rho\),\(\mu\) sao cho với mọi thời điểm t và mọi \(\mu\)-byte tin nhắn m1, . . . , mn, mỗi cái được truyền bá bởi một người dùng trung thực trước t −\(\lambda\)n,\(\rho\),\(\mu\), m1, . . . , mn được nhận, vào thời điểm t, ít nhất là một phần \(\rho\) của những người dùng trung thực. Lưu ý • Giả định trên tuy đơn giản nhưng cũng mạnh mẽ hơn mức cần thiết trong bài viết của chúng tôi.6 • Để đơn giản, chúng tôi giả sử \(\rho\) = 1, và do đó không đề cập đến \(\rho\). • Chúng tôi bi quan cho rằng, miễn là anh ta không vi phạm giả định của MP, Đối thủ hoàn toàn kiểm soát việc gửi tất cả các tin nhắn. Đặc biệt, không bị người trung thực để ý người dùng, Đối thủ, anh ta có thể tùy ý quyết định người chơi trung thực nào sẽ nhận được tin nhắn nào khi, và tùy tiện đẩy nhanh việc gửi bất kỳ thông điệp nào anh ta muốn.7
기본 사항
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
Giao thức BA BA⋆trong bối cảnh truyền thống
Như đã nhấn mạnh, thỏa thuận Byzantine là thành phần chính của Algorand. Quả thực là thông qua việc sử dụng giao thức BA sao cho Algorand không bị ảnh hưởng bởi các nhánh. Tuy nhiên, để an toàn chống lại chúng ta Đối thủ mạnh mẽ, Algorand phải dựa vào giao thức BA đáp ứng khả năng thay thế người chơi mới hạn chế. Ngoài ra, để Algorand hoạt động hiệu quả, giao thức BA như vậy phải rất hiệu quả. Các giao thức BA lần đầu tiên được xác định cho một mô hình truyền thông lý tưởng, hoàn chỉnh đồng bộ mạng (mạng SC). Mô hình như vậy cho phép thiết kế và phân tích các giao thức BA đơn giản hơn. 6Với tỷ lệ phần trăm trung thực h và xác suất thất bại chấp nhận được F, Algorand tính toán giới hạn trên, N, đến số lượng thành viên tối đa của người xác minh trong một bước. Vì vậy, giả định MP chỉ cần giữ với n \(\leq\)N. Ngoài ra, như đã nêu, giả định MP vẫn đúng cho dù có bao nhiêu tin nhắn khác có thể được truyền đi cùng với của mj. Tuy nhiên, như chúng ta sẽ thấy, trong Algorand tin nhắn được truyền đi trong thời gian cơ bản không chồng chéo các khoảng thời gian trong đó một khối đơn được truyền đi hoặc nhiều nhất là N trình xác minh truyền một khối nhỏ (ví dụ: 200B) tin nhắn. Vì vậy, chúng ta có thể trình bày lại giả định MP theo cách yếu hơn nhưng cũng phức tạp hơn. 7Ví dụ, anh ta có thể ngay lập tức biết được tin nhắn được gửi bởi những người chơi trung thực. Vì vậy, một người dùng độc hại i′, là ai được yêu cầu truyền bá một tin nhắn đồng thời với một người dùng trung thực i, luôn có thể chọn tin nhắn của riêng mình m′ dựa trên thông điệp m thực sự được truyền bá bởi i. Khả năng này liên quan đến việc gấp rút, theo cách nói của tính toán phân tán. văn học.Theo đó, trong phần này, chúng tôi giới thiệu giao thức BA mới, BA⋆, cho mạng SC và bỏ qua vấn đề về khả năng thay thế cầu thủ hoàn toàn. Giao thức BA⋆ là sự đóng góp có giá trị riêng biệt. Thật vậy, nó là giao thức BA mật mã hiệu quả nhất cho các mạng SC được biết đến cho đến nay. Để sử dụng nó trong giao thức Algorand của chúng tôi, chúng tôi sửa đổi BA⋆ một chút để phù hợp với sự khác biệt của chúng tôi mô hình và bối cảnh giao tiếp, nhưng hãy đảm bảo, trong phần X, làm nổi bật cách sử dụng BA⋆ trong giao thức thực tế của chúng tôi Algorand ′. Chúng tôi bắt đầu bằng cách nhớ lại mô hình mà BA⋆ vận hành và khái niệm về thỏa thuận Byzantine. 3.1 Mạng hoàn chỉnh đồng bộ và đối thủ phù hợp Trong mạng SC có một đồng hồ chung, tích tắc ở mỗi thời điểm tích phân r = 1, 2, . . . Tại mỗi thời điểm chẵn bấm vào r, mỗi người chơi i sẽ gửi ngay lập tức và đồng thời một nhắn tin cho ông i,j (có thể là tin nhắn trống) tới mỗi người chơi j, bao gồm cả chính anh ta. Mỗi ông tôi,j được nhận tại thời điểm người chơi j bấm vào r + 1, kèm theo danh tính của người gửi i. Một lần nữa, trong giao thức giao tiếp, người chơi sẽ trung thực nếu anh ta tuân theo mọi quy định của mình. hướng dẫn, và độc hại khác. Tất cả những người chơi độc hại đều được kiểm soát hoàn toàn và hoàn hảo được phối hợp bởi Đối thủ, đặc biệt, kẻ này sẽ ngay lập tức nhận được tất cả các tin nhắn gửi tới những người chơi độc hại và chọn tin nhắn họ gửi. Kẻ thù có thể ngay lập tức gây hại cho bất kỳ người dùng trung thực nào mà hắn muốn vào bất kỳ lần nhấp chuột nào. anh ta muốn, chỉ tuân theo giới hạn có thể đạt được của số lượng người chơi độc hại. Đó là, Đối thủ “không thể can thiệp vào các tin nhắn đã được gửi bởi người dùng trung thực i”, điều này sẽ được giao như thường lệ. Đối thủ cũng có thêm khả năng để nhìn thấy ngay lập tức, ở mỗi hiệp chẵn, tin nhắn mà những người chơi trung thực hiện tại gửi và ngay lập tức sử dụng thông tin này để chọn các tin nhắn mà người chơi độc hại gửi cùng lúc đánh dấu. Bình luận • Quyền lực của đối thủ. Các thiết lập ở trên là rất bất lợi. Thật vậy, trong thỏa thuận Byzantine văn học, nhiều bối cảnh ít đối nghịch hơn. Tuy nhiên, một số cài đặt đối nghịch hơn có cũng được xem xét, trong đó Kẻ thù, sau khi nhìn thấy tin nhắn được gửi bởi một người chơi trung thực, tôi tại một thời điểm nhất định, nhấp vào r, có khả năng xóa tất cả các tin nhắn này khỏi mạng ngay lập tức tôi bị hỏng, chọn tin nhắn mà tôi hiện đang gửi độc hại, nhấp vào r và nhận chúng được giao như thường lệ. Sức mạnh dự kiến của Kẻ thù phù hợp với hắn trong bối cảnh của chúng ta. • Trừu tượng vật lý. Mô hình truyền thông dự kiến trừu tượng hóa một mô hình vật lý hơn, trong đó mỗi cặp người chơi (i, j) được liên kết bằng một đường dây liên lạc riêng và riêng li,j. Nghĩa là, không ai khác có thể tiêm nhiễm, can thiệp hoặc lấy thông tin về các tin nhắn được gửi qua lý, j. Cách duy nhất để Kẻ thù có quyền truy cập vào li,j là làm hỏng i hoặc j. • Quyền riêng tư và xác thực. Trong mạng SC, quyền riêng tư và xác thực tin nhắn được đảm bảo bằng giả định. Ngược lại, trong mạng truyền thông của chúng ta, nơi các thông điệp được truyền đi từ ngang hàng đến ngang hàng, xác thực được đảm bảo bằng chữ ký số và quyền riêng tư là không tồn tại. Do đó, để áp dụng giao thức BA⋆ vào cài đặt của chúng tôi, mỗi tin nhắn được trao đổi phải được ký điện tử (xác định thêm trạng thái mà nó được gửi). May mắn thay, các giao thức BA mà chúng tôi hãy cân nhắc việc sử dụng trong Algorand không yêu cầu quyền riêng tư về tin nhắn.3.2 Khái niệm về Hiệp định Byzantine Khái niệm về thỏa thuận Byzantine được Pease Shostak và Lamport [31] đưa ra cho trường hợp nhị phân, nghĩa là khi mỗi giá trị ban đầu bao gồm một bit. Tuy nhiên, nó đã nhanh chóng được mở rộng thành các giá trị ban đầu tùy ý. (Xem khảo sát của Fischer [16] và Chor và Dwork [10].) Bởi BA giao thức, chúng tôi muốn nói đến một giao thức có giá trị tùy ý. Định nghĩa 3.1. Trong mạng đồng bộ, giả sử P là giao thức n-player, có tập hợp trình phát chung kiến thức của người chơi, t là số nguyên dương sao cho n \(\geq\)2t + 1. Ta nói P là một giá trị tùy ý (tương ứng, nhị phân) (n, t)-Giao thức thỏa thuận Byzantine có tính đúng đắn \(\sigma\) \(\in\)(0, 1) nếu, với mọi tập hợp giá trị V không chứa ký hiệu đặc biệt \(\bot\) (tương ứng với V = {0, 1}), trong một việc thực thi trong đó tối đa t người chơi là độc hại và trong đó mọi người chơi tôi đều bắt đầu bằng một giá trị ban đầu vi \(\in\)V , mọi người chơi trung thực j dừng lại với xác suất 1, xuất ra giá trị outi \(\in\)V \(\cup\){\(\bot\)} sao cho thỏa mãn, với xác suất ít nhất là \(\sigma\), hai điều kiện sau: 1. Thỏa thuận: Tồn tại out \(\in\)V \(\cup\){\(\bot\)} sao cho outi = out đối với tất cả những người chơi trung thực i. 2. Tính nhất quán: nếu, với một giá trị v \(\in\)V nào đó, vi = v đối với tất cả những người chơi trung thực, thì out = v. Chúng ta gọi out là đầu ra của P và mỗi outi là đầu ra của người chơi i. 3.3 Ký hiệu BA # Trong giao thức BA của chúng tôi, người chơi được yêu cầu đếm số lượng người chơi đã gửi cho mình một tin nhắn nhất định trong một bước nhất định. Theo đó, với mỗi giá trị v có thể được gửi,
s
tôi (v) (hoặc chỉ #i(v) khi s rõ ràng) là số người chơi j mà tôi đã nhận được v ở bước s. Hãy nhớ rằng người chơi i nhận được chính xác một tin nhắn từ mỗi người chơi j, nếu số lượng khi đó người chơi là n với mọi i và s, P v #s tôi(v) = n. 3,4 Giao thức BA nhị phân BBA⋆ Trong phần này chúng tôi trình bày một giao thức BA nhị phân mới, BBA⋆, dựa trên tính trung thực của nhiều hơn 2/3 số người chơi và diễn ra rất nhanh: bất kể những người chơi độc hại có thể làm gì, mỗi lần thực hiện vòng lặp chính của nó sẽ khiến người chơi đồng ý với xác suất 1/3. Mỗi người chơi có khóa chung của sơ đồ chữ ký số đáp ứng chữ ký duy nhất tài sản. Vì giao thức này được thiết kế để chạy trên mạng hoàn chỉnh đồng bộ nên không có cần một người chơi ký tên vào từng tin nhắn của anh ta. Chữ ký số được sử dụng để tạo ra bit ngẫu nhiên đủ phổ biến ở Bước 3. (Trong Algorand, chữ ký số cũng được sử dụng để xác thực tất cả các tin nhắn khác.) Giao thức yêu cầu thiết lập tối thiểu: một chuỗi ngẫu nhiên chung r, độc lập với chuỗi của người chơi. phím. (Trong Algorand, r thực tế được thay thế bằng đại lượng Qr.) Giao thức BBA⋆ là một vòng lặp gồm 3 bước, trong đó người chơi liên tục trao đổi các giá trị Boolean và những người chơi khác nhau có thể thoát khỏi vòng lặp này vào những thời điểm khác nhau. Người chơi i thoát khỏi vòng lặp này bằng cách truyền bá, ở một bước nào đó, có giá trị đặc biệt 0∗ hoặc giá trị đặc biệt 1∗, từ đó hướng dẫn tất cả người chơi “giả vờ” họ lần lượt nhận được 0 và 1 từ i trong tất cả các bước trong tương lai. (Nói cách khác: giả sửrằng tin nhắn cuối cùng mà người chơi j nhận được từ người chơi khác i là hơi b. Sau đó, ở bất kỳ bước nào trong đó anh ta không nhận được tin nhắn nào từ tôi, j làm như tôi đã gửi cho anh ta một bit b.) Giao thức sử dụng bộ đếm \(\gamma\), biểu thị số lần vòng lặp 3 bước của nó được thực thi. Khi bắt đầu BBA⋆, \(\gamma\) = 0. (Người ta có thể coi \(\gamma\) là bộ đếm toàn cục, nhưng thực tế nó được tăng lên bởi mỗi người chơi mỗi khi vòng lặp được thực thi.) Có n \(\geq\)3t + 1, trong đó t là số lượng người chơi độc hại tối đa có thể. Một hệ nhị phân chuỗi x được xác định bằng số nguyên có biểu diễn nhị phân (có thể có số 0 ở đầu) là x; và lsb(x) biểu thị bit có ý nghĩa nhỏ nhất của x. Giao thức BBA⋆ (Giao tiếp) Bước 1. [Bước Coin-Fixed-To-0] Mỗi người chơi tôi gửi bi. 1.1 Nếu #1 i(0) \(\geq\)2t+1 thì i đặt bi = 0, gửi 0∗, xuất ra outi = 0, và HALTS. 1.2 Nếu #1 i(1) \(\geq\)2t+1 thì i đặt bi = 1. 1.3 Ngược lại tôi đặt bi = 0. (Giao tiếp) Bước 2. [Bước cố định bằng tiền xu thành 1] Mỗi người chơi tôi gửi bi. 2.1 Nếu #2 i(1) \(\geq\)2t+1 thì i đặt bi = 1, gửi 1∗, đầu ra outi = 1, và HALTS. 2.2 Nếu #2 i(0) \(\geq\)2t+1 thì tôi đặt bi = 0. 2.3 Ngược lại tôi đặt bi = 1. (Giao tiếp) Bước 3. [Bước lật xu thật] Mỗi người chơi tôi gửi bi và SIGi(r, \(\gamma\)). 3.1 Nếu #3 i(0) \(\geq\)2t+1 thì i đặt bi = 0. 3.2 Nếu #3 i(1) \(\geq\)2t+1 thì i đặt bi = 1. 3.3 Ngược lại, giả sử Si = {j \(\in\)N người đã gửi cho tôi một tin nhắn thích hợp ở bước 3 này }, tôi đặt bi = c \(\triangleq\)lsb(minj\(\in\)Si H(SIGi(r, \(\gamma\)))); tăng \(\gamma\)i lên 1; và quay lại Bước 1. Định lý 3.1. Bất cứ khi nào n \(\geq\)3t + 1, BBA⋆ là giao thức nhị phân (n, t)-BA có độ chính xác 1. Chứng minh Định lý 3.1 được đưa ra trong [26]. Sự thích ứng của nó với bối cảnh của chúng tôi và khả năng thay thế người chơi của nó tài sản là mới lạ. Nhận xét lịch sử Các giao thức BA nhị phân xác suất được Ben-Or đề xuất lần đầu tiên vào năm cài đặt không đồng bộ [7]. Giao thức BBA⋆ là một phiên bản chuyển thể mới, phù hợp với bối cảnh khóa công khai của chúng tôi, của giao thức giao thức BA nhị phân của Feldman và Micali [15]. Giao thức của họ là giao thức đầu tiên hoạt động theo cách được mong đợi số bước không đổi. Nó hoạt động bằng cách để người chơi tự triển khai một loại tiền chung, một ý tưởng được đề xuất bởi Rabin, người đã triển khai nó thông qua một bên đáng tin cậy bên ngoài [32].3,5 Đồng thuận được phân loại và Nghị định thư GC Chúng ta hãy nhớ lại, đối với các giá trị tùy ý, khái niệm về sự đồng thuận yếu hơn nhiều so với thỏa thuận Byzantine. Định nghĩa 3.2. Cho P là một giao thức trong đó tập hợp tất cả người chơi là kiến thức chung và mỗi người chơi tôi biết riêng một giá trị ban đầu tùy ý v′ tôi. Chúng ta nói rằng P là một giao thức đồng thuận được xếp loại (n, t) nếu, trong mỗi lần thực hiện với n người chơi, tại hầu hết trong số đó là độc hại, mọi người chơi trung thực đều dừng xuất ra một cặp cấp giá trị (vi, gi), trong đó gi \(\in\){0, 1, 2}, sao cho thỏa mãn ba điều kiện sau: 1. Đối với tất cả người chơi trung thực i và j, |gi −gj| 1.1. 2. Với mọi người chơi trung thực i và j, gi, gj > 0 ⇒vi = vj. 3. Nếu v′ 1 = \(\cdots\) = v' n = v với một số giá trị v, thì vi = v và gi = 2 đối với tất cả những người chơi trung thực i. Ghi chú lịch sử Khái niệm về sự đồng thuận được xếp loại chỉ đơn giản bắt nguồn từ sự đồng thuận được xếp loại phát sóng, được đưa ra bởi Feldman và Micali trong [15], bằng cách củng cố quan niệm về một người thập tự chinh thỏa thuận, do Dolev giới thiệu [12] và được cải tiến bởi Turpin và Coan [33].8 Trong [15], các tác giả cũng đã cung cấp giao thức phát sóng phân loại 3 bước (n, t), phân loại, cho n \(\geq\)3t+1. Một giao thức phát sóng theo cấp độ (n, t) phức tạp hơn cho n > 2t+1 sau đó đã được tìm thấy của Katz và Koo [19]. Giao thức GC hai bước sau đây bao gồm hai bước cuối cùng của việc phân loại, được thể hiện trong ký hiệu. Để nhấn mạnh thực tế này và để phù hợp với các bước của giao thức Algorand ′ của phần 4.1, chúng tôi lần lượt gọi tên 2 và 3 các bước của GC. Giao thức GC Bước 2. Mỗi người chơi tôi gửi v′ tôi gửi tới tất cả người chơi. Bước 3. Mỗi người chơi tôi gửi cho tất cả người chơi chuỗi x khi và chỉ khi #2 i(x) \(\geq\)2t+1. Xác định đầu ra. Mỗi người chơi i xuất ra cặp (vi, gi) được tính như sau: • Nếu, với một số x, #3 i(x) \(\geq\)2t+1 thì vi = x và gi = 2. • Nếu, với một số x, #3 i(x) \(\geq\)t + 1 thì vi = x và gi = 1. • Ngược lại, vi = \(\bot\) và gi = 0. Định lý 3.2. Nếu n \(\geq\)3t + 1 thì GC là giao thức quảng bá được phân loại (n, t). Bằng chứng ngay lập tức được nối tiếp từ bản phân loại giao thức trong [15] và do đó bị bỏ qua.9 8Về bản chất, trong giao thức phát sóng được phân loại, (a) đầu vào của mỗi người chơi là danh tính của một người được phân biệt người chơi, người gửi, người có giá trị v tùy ý làm đầu vào riêng tư bổ sung và (b) đầu ra phải đáp ứng cùng tính chất 1 và 2 của sự đồng thuận được xếp loại, cộng với tính chất 3′ sau: nếu người gửi trung thực thì vi = v và gi = 2 cho tất cả người chơi trung thực i. 9Thật vậy, trong giao thức của họ, ở bước 1, người gửi gửi giá trị riêng v của mình cho tất cả người chơi và mỗi người chơi tôi cho phép v′ tôi bao gồm giá trị mà anh ấy thực sự đã nhận được từ người gửi ở bước 1.3.6 Giao thức BA⋆ Bây giờ chúng ta mô tả giao thức BA có giá trị tùy ý BA⋆thông qua giao thức BA nhị phân BBA⋆ và giao thức đồng thuận xếp loại GC. Dưới đây, giá trị ban đầu của mỗi người chơi i là v′ tôi. Giao thức BA⋆ Bước 1 và 2. Mỗi người chơi i thực thi GC, với đầu vào v′ i, để tính một cặp (vi, gi). Bước 3, . . . Mỗi người chơi tôi thực hiện BBA⋆—với đầu vào ban đầu là 0, nếu gi = 2, và 1 nếu ngược lại— vậy để tính toán bit outi. Xác định đầu ra. Mỗi người chơi i xuất ra vi, nếu outi = 0, và \(\bot\) ngược lại. Định lý 3.3. Bất cứ khi nào n \(\geq\)3t + 1, BA⋆ là một giao thức (n, t)-BA có độ đúng 1. Bằng chứng. Đầu tiên chúng ta chứng minh tính nhất quán và sau đó là sự đồng ý. Bằng chứng về sự nhất quán. Giả sử rằng, với một số giá trị v \(\in\)V , v′ i = v. Khi đó, theo tính chất 3 của sự đồng thuận được phân loại, sau khi thực hiện GC, tất cả những người chơi trung thực đều xuất ra (v, 2). Theo đó, 0 là phần đầu tiên của tất cả những người chơi trung thực khi kết thúc quá trình thực hiện BBA⋆. Vì vậy, theo Hiệp định thuộc tính của thỏa thuận Byzantine nhị phân, khi kết thúc việc thực hiện BA⋆, outi = 0 cho tất cả các giá trị trung thực người chơi. Điều này ngụ ý rằng đầu ra của mỗi người chơi trung thực i trong BA⋆is vi = v. ✷ Bằng chứng về sự đồng ý. Vì BBA⋆ là giao thức BA nhị phân nên (A) outi = 1 đối với tất cả người chơi i trung thực, hoặc (B) outi = 0 đối với tất cả người chơi i trung thực. Trong trường hợp A, tất cả những người chơi trung thực đều xuất ra \(\bot\)in BA⋆ và do đó Thỏa thuận được giữ nguyên. Bây giờ hãy xem xét trường hợp B. Trong trong trường hợp này, khi thực thi BBA⋆, bit đầu tiên của ít nhất một người chơi trung thực i là 0. (Thật vậy, nếu bit ban đầu của tất cả những người chơi trung thực là 1, sau đó, theo thuộc tính Nhất quán của BBA⋆, chúng ta sẽ có outj = 1 cho tất cả j trung thực.) Theo đó, sau khi thực hiện GC, tôi xuất ra cặp (v, 2) cho một số giá trị v. Do đó, theo tính chất 1 của sự đồng thuận đã xếp loại, gj > 0 cho tất cả người chơi trung thực j. Theo đó, bởi tính chất 2 của sự đồng thuận được xếp loại, vj = v cho tất cả những người chơi trung thực j. Điều này hàm ý rằng, vào cuối BA⋆, mọi người chơi trung thực j sẽ đưa ra v. Do đó, Thỏa thuận cũng đúng trong trường hợp B. ✷ Vì cả Tính nhất quán và Thỏa thuận đều giữ nguyên nên BA⋆ là giao thức BA có giá trị tùy ý. Ghi chú lịch sử Turpin và Coan là những người đầu tiên chứng minh rằng, với n \(\geq\)3t+1, mọi hệ nhị phân (n, t)-BA giao thức có thể được chuyển đổi thành giao thức có giá trị tùy ý (n, t)-BA. Việc giảm giá trị tùy ý Thỏa thuận Byzantine với thỏa thuận Byzantine nhị phân thông qua đồng thuận được phân loại mang tính mô đun hơn và sạch hơn và đơn giản hóa việc phân tích giao thức Algorand Algorand của chúng tôi. Tổng quát hóa BA⋆để sử dụng trong Algorand Algorand hoạt động ngay cả khi tất cả giao tiếp đều thông qua buôn chuyện. Tuy nhiên, mặc dù được trình bày trong một mạng truyền thông truyền thống và quen thuộc, để cho phép so sánh tốt hơn với tình trạng kỹ thuật đã biết và dễ hiểu hơn, giao thức BA⋆ hoạt động cũng trong các mạng buôn chuyện. Trên thực tế, trong các phương án chi tiết của Algorand, chúng tôi sẽ trình bày nó trực tiếp cho các mạng buôn chuyện. Chúng ta cũng sẽ chỉ ra rằng nó thỏa mãn khả năng thay thế cầu thủ thuộc tính quan trọng để Algorand được an toàn trong mô hình rất đối nghịch được dự kiến.
Bất kỳ giao thức nào có thể thay thế được trình phát BA đang hoạt động trong mạng truyền thông tin đồn đều có thể được sử dụng một cách an toàn trong hệ thống Algorand sáng tạo. Đặc biệt, Micali và Vaikunthanatan đã mở rộng BA⋆để hoạt động rất hiệu quả với phần lớn những người chơi trung thực. Đó giao thức cũng có thể được sử dụng trong Algorand.
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에서 사용될 수 있습니다.
Hai phương án của Algorand
Như đã thảo luận, ở cấp độ rất cao, vòng Algorand lý tưởng nhất là tiến hành như sau. Đầu tiên, một cách ngẫu nhiên
người dùng được chọn, người lãnh đạo, đề xuất và lưu hành một khối mới.
(Quá trình này bao gồm bước đầu
lựa chọn một vài nhà lãnh đạo tiềm năng và sau đó đảm bảo rằng, ít nhất là trong một khoảng thời gian nhất định, một
người lãnh đạo chung duy nhất xuất hiện.) Thứ hai, một ủy ban người dùng được chọn ngẫu nhiên sẽ được chọn và
đạt được thỏa thuận Byzantine về khối do người lãnh đạo đề xuất. (Quá trình này bao gồm
mỗi bước của giao thức BA được điều hành bởi một ủy ban được lựa chọn riêng.) Khối đã thống nhất
sau đó được ký điện tử bởi một ngưỡng (TH) nhất định của các thành viên ủy ban. Những chữ ký số này
được lưu hành để mọi người yên tâm đâu là block mới. (Điều này bao gồm việc lưu hành các
thông tin xác thực của người ký và chỉ xác thực hash của khối mới, đảm bảo rằng mọi người
được đảm bảo tìm hiểu khối, khi hash của nó được làm rõ.)
Trong hai phần tiếp theo, chúng tôi trình bày hai phương án của Algorand, Algorand ′
1 và Algorand ′
2,
hoạt động theo giả định của đa số người dùng trung thực. Trong Phần 8, chúng tôi trình bày cách áp dụng những
các phương án để hoạt động theo giả định về phần lớn số tiền trung thực.
Algorand ′
1 chỉ dự kiến rằng > 2/3 số thành viên ủy ban là trung thực. Ngoài ra, trong
Algorand ′
1, số bước để đạt được thỏa thuận Byzantine bị giới hạn ở mức cao phù hợp
số lượng, do đó thỏa thuận đó được đảm bảo đạt được với xác suất áp đảo trong vòng một
số bước cố định (nhưng có thể yêu cầu thời gian dài hơn các bước của Algorand ′
2). trong
trường hợp xa mà chưa đạt được thỏa thuận ở bước cuối cùng, ủy ban sẽ đồng ý về
khối trống, luôn hợp lệ.
Algorand ′
2 dự tính rằng số lượng thành viên trung thực trong một ủy ban luôn lớn hơn
hoặc bằng một ngưỡng cố định tH (đảm bảo rằng, với xác suất áp đảo, ít nhất
2/3 số thành viên trong ủy ban là trung thực). Ngoài ra, Algorand ′
2 cho phép thỏa thuận Byzantine
có thể đạt được theo số bước tùy ý (nhưng có thể trong thời gian ngắn hơn Algorand ′
1).
Thật dễ dàng để rút ra nhiều biến thể của các phương án cơ bản này. Đặc biệt, nó rất dễ dàng, được đưa ra
Algorand ′
2, để sửa đổi Algorand ′
1 để có thể đạt được thỏa thuận Byzantine một cách tùy tiện
số bước.
Cả hai phương án đều có chung cốt lõi, ký hiệu, khái niệm và tham số sau đây.
4.1
Cốt lõi chung
Mục tiêu
Lý tưởng nhất là với mỗi vòng r, Algorand sẽ đáp ứng các thuộc tính sau:
1. Độ chính xác hoàn hảo. Tất cả người dùng trung thực đều đồng ý về cùng một khối Br.
2. Tính đầy đủ 1. Với xác suất 1, tập hợp thanh toán của Br, PAY r, là tối đa.10
10Bởi vì các khoản thanh toán được xác định để chứa các khoản thanh toán hợp lệ và người dùng trung thực chỉ thực hiện các khoản thanh toán hợp lệ, mức tối đa
TRẢ TIỀN r chứa các khoản thanh toán “hiện chưa thanh toán” của tất cả người dùng trung thực.Tất nhiên, việc đảm bảo tính đúng đắn hoàn hảo chỉ là chuyện nhỏ: mọi người luôn chọn phương án chính thức.
tập hợp lương PAY r để trống. Nhưng trong trường hợp này, hệ thống sẽ có độ đầy đủ bằng 0. Thật không may,
đảm bảo cả tính đúng đắn và đầy đủ hoàn hảo 1 là không dễ dàng khi có sự hiện diện của phần mềm độc hại
người dùng. Algorand do đó áp dụng mục tiêu thực tế hơn. Một cách không chính thức, gọi h là tỷ lệ phần trăm
số người dùng trung thực, h > 2/3, mục tiêu của Algorand là
Đảm bảo, với xác suất áp đảo, tính đúng đắn và đầy đủ hoàn hảo gần với h.
Ưu tiên tính chính xác hơn là tính đầy đủ có vẻ là một lựa chọn hợp lý: các khoản thanh toán không được xử lý trong
một vòng có thể được xử lý ở vòng tiếp theo, nhưng người ta nên tránh dùng nĩa, nếu có thể.
Thỏa thuận Byzantine dẫn đầu
Độ chính xác hoàn hảo có thể được đảm bảo như sau. Lúc bắt đầu
của vòng r, mỗi người dùng i xây dựng khối ứng viên Br của riêng mình
i , sau đó tất cả người dùng sẽ tiếp cận Byzantine
thỏa thuận về một khối ứng cử viên. Theo phần giới thiệu của chúng tôi, giao thức BA được sử dụng yêu cầu
đa số trung thực là 2/3 và người chơi có thể thay thế được. Mỗi bước của nó có thể được thực hiện bởi một khối nhỏ và
tập hợp những người xác minh được chọn ngẫu nhiên, những người không chia sẻ bất kỳ biến bên trong nào.
Thật không may, cách tiếp cận này không có sự đảm bảo đầy đủ. Sở dĩ như vậy là vì ứng viên
khối người dùng trung thực rất có thể hoàn toàn khác nhau. Như vậy, cuối cùng
khối được thỏa thuận có thể luôn là khối có tập hợp thanh toán không tối đa. Trên thực tế, nó có thể luôn luôn là
khối trống, B\(\varepsilon\), nghĩa là khối có tập thanh toán trống. cũng là mặc định, trống rỗng.
Algorand ′ tránh vấn đề về tính đầy đủ này như sau. Đầu tiên, người dẫn đầu cho vòng r, \(\ell\)r, được chọn.
Sau đó, \(\ell\)r truyền bá khối ứng cử viên của chính mình, Br
\(\ell\)r. Cuối cùng, người dùng đạt được thỏa thuận về khối
họ thực sự nhận được từ \(\ell\)r. Bởi vì, bất cứ khi nào \(\ell\)r trung thực, Tính đúng đắn và hoàn chỉnh hoàn hảo
1 đều giữ nguyên, Algorand ′ đảm bảo rằng \(\ell\)r trung thực với xác suất gần h. (Khi người lãnh đạo
độc hại, chúng tôi không quan tâm liệu khối đã thỏa thuận có phải là khối có tập hợp thanh toán trống hay không. Rốt cuộc, một
nhà lãnh đạo độc hại \(\ell\)r luôn có thể chọn Br một cách ác ý
\(\ell\)r là khối trống, và thành thật mà nói
truyền bá nó, do đó buộc những người dùng trung thực phải đồng ý với khối trống.)
Lựa chọn lãnh đạo
Trong Algorand's, khối thứ r có dạng Br = (r, PAY r, Qr, H(Br−1).
Như đã đề cập trong phần giới thiệu, đại lượng Qr−1 được xây dựng cẩn thận sao cho
về cơ bản là không thể bị Kẻ thù rất mạnh của chúng ta thao túng. (Phần sau của phần này chúng ta sẽ
cung cấp một số trực giác về lý do tại sao lại như vậy.) Khi bắt đầu vòng r, tất cả người dùng đều biết
blockchain cho đến nay, B0, . . . , Br−1, từ đó họ suy ra tập người dùng của mỗi vòng trước: đó
là PK1, . . . , PKr−1. Người dẫn đầu tiềm năng của vòng r là người dùng i sao cho
.H
SIGi
r, 1, Qr−1
\(\leq\)p .
Hãy để chúng tôi giải thích.
Lưu ý rằng, vì đại lượng Qr−1 là một phần của khối Br−1 và đại lượng cơ bản
lược đồ chữ ký thỏa mãn tính chất duy nhất, SIGi
r, 1, Qr−1
là một chuỗi nhị phân duy nhất
liên kết với i và r. Do đó, vì H là oracle ngẫu nhiên nên H
SIGi
r, 1, Qr−1
là 256-bit ngẫu nhiên
chuỗi dài liên kết duy nhất với i và r. Ký hiệu “.” trước H.
SIGi
r, 1, Qr−1
là
điểm thập phân (trong trường hợp của chúng ta là nhị phân), sao cho ri \(\triangleq\).H
SIGi
r, 1, Qr−1
là khai triển nhị phân của a
số 256 bit ngẫu nhiên trong khoảng từ 0 đến 1 được liên kết duy nhất với i và r. Như vậy xác suất mà
ri nhỏ hơn hoặc bằng p thực chất là p. (Cơ chế lựa chọn lãnh đạo tiềm năng của chúng tôi đã được
lấy cảm hứng từ chương trình thanh toán vi mô của Micali và Rivest [28].)
Xác suất p được chọn sao cho với xác suất áp đảo (tức là 1 −F), ít nhất một
người xác minh tiềm năng là trung thực. (Nếu thực tế, p được chọn là xác suất nhỏ nhất như vậy.)Lưu ý rằng, vì tôi là người duy nhất có khả năng tính toán chữ ký của chính anh ấy nên chỉ có anh ấy mới có thể
xác định xem anh ta có phải là người xác minh tiềm năng của vòng 1 hay không. Tuy nhiên, bằng cách tiết lộ thông tin xác thực của chính mình,
\(\sigma\)r
tôi \(\triangleq\)SIGi
r, 1, Qr−1
, tôi có thể chứng minh cho bất kỳ ai thấy mình là người có thể xác minh được vòng r.
Người lãnh đạo \(\ell\)r được xác định là người lãnh đạo tiềm năng có chứng chỉ hashed nhỏ hơn
hashed thông tin xác thực của tất cả người lãnh đạo tiềm năng khác j: nghĩa là H(\(\sigma\)r,s
\(\ell\)r ) \(\leq\)H(\(\sigma\)r,s
j ).
Lưu ý rằng, vì \(\ell\)r độc hại có thể không tiết lộ thông tin xác thực của mình nên người đứng đầu đúng của vòng r có thể
không bao giờ được biết đến, và điều đó, ngoại trừ những mối quan hệ không thể xảy ra, \(\ell\)r thực sự là người dẫn đầu duy nhất của vòng r.
Cuối cùng chúng ta hãy đưa ra một chi tiết cuối cùng nhưng quan trọng: một người dùng tôi có thể trở thành một nhà lãnh đạo tiềm năng (và do đó
người dẫn đầu) của vòng r chỉ khi anh ta thuộc về hệ thống trong ít nhất k vòng. Điều này đảm bảo
tính không thể điều khiển được của Qr và tất cả các đại lượng Q trong tương lai. Trên thực tế, một trong những nhà lãnh đạo tiềm năng
thực sự sẽ xác định Qr.
Lựa chọn người xác minh
Mỗi bước s > 1 của vòng r được thực hiện bởi một tập hợp nhỏ các trình xác minh, SV r,s.
Một lần nữa, mỗi người xác minh i \(\in\)SV r,s được chọn ngẫu nhiên trong số những người dùng đã có trong hệ thống k vòng
trước r và một lần nữa thông qua đại lượng đặc biệt Qr−1. Cụ thể, i \(\in\)PKr−k là một bộ kiểm định trong SV r,s, nếu
.H
SIGi
r, s, Qr−1
\(\leq\)p′ .
Một lần nữa, chỉ có tôi biết anh ấy có thuộc SV r,s,nhưng nếu đúng như vậy, anh ấy có thể chứng minh điều đó bằng cách
trưng bày chứng chỉ \(\sigma\)r,s của mình
tôi
\(\triangleq\)H(SIGi
r, s, Qr−1
). Người xác minh i \(\in\)SV r,s gửi tin nhắn, mr,s
tôi, ở
bước s của vòng r và thông báo này bao gồm thông tin xác thực \(\sigma\)r,s của anh ấy
i , để cho phép người xác minh
tổ bước để nhận ra rằng ông,s
tôi
là một thông điệp bước hợp pháp.
Xác suất p′ được chọn sao cho đảm bảo rằng, trong SV r,s, lấy #good là số
người dùng trung thực và #xấu số lượng người dùng độc hại, với xác suất áp đảo như sau
hai điều kiện giữ.
Đối với phương án Algorand ′
1:
(1) #tốt > 2 \(\cdot\) #xấu và
(2) #good + 4 \(\cdot\) #bad < 2n, trong đó n là số lượng bản số dự kiến của SV r,s.
Đối với phương án Algorand ′
2:
(1) #good > tH và
(2) #good + 2#bad < 2tH, trong đó tH là ngưỡng được chỉ định.
Những điều kiện này ngụ ý rằng, với xác suất đủ cao, (a) ở bước cuối cùng của BA
giao thức, sẽ có ít nhất số lượng người chơi trung thực nhất định để ký điện tử vào khối Br mới,
(b) chỉ một khối mỗi vòng có thể có đủ số chữ ký cần thiết và (c) BA được sử dụng
giao thức có (ở mỗi bước) 2/3 đa số trung thực cần thiết.
Làm rõ việc tạo khối
Nếu người dẫn đầu vòng r \(\ell\)r trung thực thì khối tương ứng
có dạng
Br =
r, TRẢ r, SIG\(\ell\)r Qr−1
, H
Br−1
,
trong đó tập hợp thanh toán PAY r là tối đa. (hãy nhớ rằng tất cả các khoản thanh toán, theo định nghĩa, đều có giá trị chung.)
Ngược lại (tức là nếu \(\ell\)r độc hại), Br có một trong hai dạng có thể xảy ra sau đây:
Br =
r, TRẢ r, SIGi
Qr−1
, H
Br−1
và
Br = Br
\(\varepsilon\) \(\triangleq\)
r, \(\emptyset\), Qr−1, H
Br−1
.Ở dạng đầu tiên, PAY r là một tập hợp thanh toán (không nhất thiết phải tối đa) và nó có thể là PAY r = \(\emptyset\); và tôi là
một nhà lãnh đạo tiềm năng của vòng r. (Tuy nhiên, tôi có thể không phải là người lãnh đạo. Điều này thực sự có thể xảy ra nếu
\(\ell\)r giữ bí mật thông tin xác thực của mình và không tiết lộ bản thân.)
Hình thức thứ hai phát sinh khi, trong quá trình thực thi vòng r của giao thức BA, tất cả những người chơi trung thực
xuất giá trị mặc định là khối trống Br
\(\varepsilon\) trong ứng dụng của chúng tôi. (Theo định nghĩa, khả năng
đầu ra của giao thức BA bao gồm giá trị mặc định, thường được ký hiệu là \(\bot\). Xem phần 3.2.)
Lưu ý rằng, mặc dù các khoản thanh toán đều trống trong cả hai trường hợp, Br =
r, \(\emptyset\), SIGi
Qr−1
, H
Br−1
và anh trai
\(\varepsilon\) là các khối khác nhau về mặt cú pháp và phát sinh trong hai tình huống khác nhau: tương ứng, “tất cả
quá trình thực thi giao thức BA diễn ra suôn sẻ” và “đã xảy ra lỗi trong
Giao thức BA và giá trị mặc định là đầu ra”.
Bây giờ chúng ta hãy mô tả trực quan cách tạo khối Br diễn ra trong vòng r của Algorand ′.
Trong bước đầu tiên, mỗi người chơi đủ điều kiện, tức là mỗi người chơi i \(\in\)PKr−k, kiểm tra xem anh ta có phải là người chơi tiềm năng hay không.
lãnh đạo. Nếu đúng như vậy thì tôi sẽ được yêu cầu sử dụng tất cả các khoản thanh toán mà anh ấy đã thấy cho đến nay và
hiện tại blockchain, B0, . . . , Br−1, để bí mật chuẩn bị một bộ thanh toán tối đa, PAY r
tôi và bí mật
tập hợp khối ứng cử viên của mình, Br =
r, TRẢ TIỀN r
tôi, SIGi
Qr−1
, H
Br−1
. Nghĩa là, anh ta không chỉ
bao gồm trong Br
i , là thành phần thứ hai của tập thanh toán vừa được chuẩn bị, nhưng cũng là thành phần thứ ba của nó,
chữ ký của chính ông là Qr−1, thành phần thứ ba của khối cuối cùng, Br−1. Cuối cùng, ông tuyên truyền
tin nhắn vòng-r-bước-1, ông,1
i , bao gồm (a) khối ứng cử viên của anh ấy Br
i , (b) chữ ký riêng của anh ấy
khối ứng cử viên của anh ấy (tức là chữ ký của anh ấy trong hash của Br
i , và (c) chứng chỉ của chính anh ấy \(\sigma\)r,1
tôi, chứng minh
rằng anh ta thực sự là người có thể xác minh được vòng r.
(Lưu ý rằng, cho đến khi tôi trung thực đưa ra tin nhắn của mình, ông1
tôi, Kẻ thù không biết rằng tôi là một
người xác minh tiềm năng Nếu anh ta muốn làm hư hỏng các nhà lãnh đạo tiềm năng trung thực, Kẻ thù cũng có thể
tham nhũng ngẫu nhiên người chơi trung thực. Tuy nhiên, khi nhìn thấy ông,1
i , vì nó chứa thông tin xác thực của tôi, nên
Đối phương biết và có thể làm hư tôi, nhưng không ngăn cản được ông,1
i , được lan truyền rộng rãi, từ
tiếp cận tất cả người dùng trong hệ thống.)
Trong bước thứ hai, mỗi người xác minh được chọn j \(\in\)SV r,2 sẽ cố gắng xác định người dẫn đầu vòng đấu.
Cụ thể, j lấy thông tin xác thực bước 1, \(\sigma\)r,1
i1, . . . , \(\sigma\)r,1
trong , có trong tin nhắn bước 1 thích hợp mr,1
tôi
anh ấy đã nhận được; hashes tất cả chúng, tức là tính H
\(\sigma\)r,1
i1
, . . . , H
\(\sigma\)r,1
trong
; tìm thấy thông tin xác thực,
\(\sigma\)r,1
\(\ell\)j , có hash là mức tối thiểu về mặt từ điển; và xem xét \(\ell\)r
j là người dẫn đầu vòng r.
Hãy nhớ lại rằng mỗi thông tin xác thực được coi là chữ ký số của Qr−1, SIGi đó
r, 1, Qr−1
là
được xác định duy nhất bởi i và Qr−1, H là ngẫu nhiên oracle, và do đó mỗi H(SIGi
r, 1, Qr−1
là một chuỗi dài 256 bit ngẫu nhiên duy nhất cho mỗi người dẫn đầu tiềm năng i của vòng r.
Từ đó chúng ta có thể kết luận rằng, nếu chuỗi 256-bit Qr−1 là ngẫu nhiên và độc lập
được chọn, thông tin đăng nhập hashed của tất cả các nhà lãnh đạo tiềm năng của vòng r sẽ như vậy. Trên thực tế, tất cả
các nhà lãnh đạo tiềm năng đều được xác định rõ ràng và bằng cấp của họ cũng vậy (dù được tính toán thực tế hay
không). Hơn nữa, tập hợp những người dẫn đầu tiềm năng của vòng r là một tập hợp con ngẫu nhiên của những người sử dụng vòng
r −k, và là một nhà lãnh đạo tiềm năng trung thực, tôi luôn xây dựng và truyền bá đúng đắn thông điệp của mình, ông
tôi,
trong đó có thông tin xác thực của tôi. Do đó, vì tỷ lệ người dùng trung thực là h nên bất kể điều gì xảy ra.
các nhà lãnh đạo tiềm năng độc hại có thể làm (ví dụ: tiết lộ hoặc che giấu thông tin xác thực của chính họ), mức tối thiểu
hashed Chứng chỉ lãnh đạo tiềm năng thuộc về người dùng trung thực, người này nhất thiết phải được mọi người nhận dạng
trở thành người dẫn đầu \(\ell\)r của vòng r. Theo đó, nếu chuỗi 256-bit Qr−1 là ngẫu nhiên và
được chọn độc lập, với xác suất chính xác là h (a) người lãnh đạo \(\ell\)r là người trung thực và (b) \(\ell\)j = \(\ell\)r cho tất cả
người xác minh bước 2 trung thực j.
Trên thực tế, thông tin xác thực hashed được chọn ngẫu nhiên, nhưng phụ thuộc vào Qr−1, tức làkhông được lựa chọn ngẫu nhiên và độc lập. Tuy nhiên, chúng ta sẽ chứng minh trong phân tích của mình rằng Qr−1 là
đủ không thể bị thao túng để đảm bảo rằng người dẫn đầu vòng chơi trung thực với xác suất
h′ đủ gần với h: cụ thể là h′ > h2(1 + h −h2). Ví dụ: nếu h = 80% thì h′ > 0,7424.
Sau khi xác định được người dẫn đầu vòng đấu (điều mà họ làm đúng khi người dẫn đầu \(\ell\)r trung thực),
Nhiệm vụ của người xác minh ở bước 2 là bắt đầu thực thi BA bằng cách sử dụng những giá trị ban đầu mà họ tin tưởng.
trở thành khối của người lãnh đạo. Trên thực tế, để giảm thiểu lượng thông tin cần thiết,
người xác minh j \(\in\)SV r,2 không sử dụng làm giá trị đầu vào v′
j sang giao thức Byzantine, khối Bj đó
anh ấy thực sự đã nhận được từ \(\ell\)j (người dùng j tin là người dẫn đầu), nhưng người dẫn đầu, nhưng
hash của khối đó, tức là v′
j = H(Bi). Do đó, khi kết thúc giao thức BA, người xác minh
của bước cuối cùng không tính toán Br khối vòng r mong muốn mà tính toán (xác thực và
lan truyền) H(Br). Theo đó, vì H(Br) được ký điện tử bởi đủ nhiều người xác minh
bước cuối cùng của giao thức BA, người dùng trong hệ thống sẽ nhận ra rằng H(Br) là hash của giao thức mới
khối. Tuy nhiên, họ cũng phải truy xuất (hoặc chờ đợi vì quá trình thực thi khá không đồng bộ)
chặn chính Br mà giao thức đảm bảo rằng thực sự có sẵn, bất kể Đối thủ có thế nào
có thể làm được.
Không đồng bộ và thời gian
Algorand ′
1 và Algorand ′
2 có mức độ không đồng bộ đáng kể.
Điều này là như vậy bởi vì Kẻ thù có quyền tự do lớn trong việc lên lịch gửi các tin nhắn đang được
được truyền bá. Ngoài ra, dù tổng số bước trong một vòng có bị giới hạn hay không thì vẫn có
sự khác biệt đóng góp bởi số bước thực sự được thực hiện.
Ngay khi học được chứng chỉ B0, . . . , Br−1, người dùng i tính Qr−1 và bắt đầu làm việc
ở vòng r, kiểm tra xem anh ta có phải là người lãnh đạo tiềm năng hay người xác minh trong một số bước của vòng r.
Giả sử rằng tôi phải hành động ở bước s, do có sự không đồng bộ đã thảo luận, tôi dựa vào nhiều
chiến lược để đảm bảo rằng anh ta có đủ thông tin trước khi hành động.
Ví dụ, anh ta có thể đợi để nhận được ít nhất một số tin nhắn nhất định từ người xác minh
bước trước đó hoặc đợi một khoảng thời gian đủ để đảm bảo rằng anh ta nhận được tin nhắn đầy đủ
nhiều người xác minh bước trước đó.
Seed Qr và Tham số Nhìn lại k
Hãy nhớ lại rằng, lý tưởng nhất, đại lượng Qr nên
ngẫu nhiên và độc lập, mặc dù điều đó đủ để chúng không thể bị thao túng bởi
Kẻ thù.
Thoạt nhìn, chúng ta có thể chọn Qr−1 trùng với H
TRẢ r−1
, và do đó tránh được
xác định rõ ràng Qr−1 trong Br−1. Tuy nhiên, một phân tích cơ bản cho thấy rằng những người dùng có ý đồ xấu có thể
tận dụng cơ chế lựa chọn này.11 Một số nỗ lực bổ sung cho thấy vô số cơ chế lựa chọn khác
11Chúng ta đang bắt đầu vòng r −1. Do đó, Qr−2 = PAY r−2 được công khai và Đối thủ được biết một cách riêng tư.
biết ai là nhà lãnh đạo tiềm năng mà ông ta kiểm soát.
Giả sử rằng Đối thủ kiểm soát 10% người dùng và
rằng, với xác suất rất cao, người dùng độc hại w là người dẫn đầu tiềm năng của vòng r −1. Nghĩa là, giả sử rằng
H
SIGw
r −2, 1, Qr−2
nhỏ đến mức khó có khả năng một nhà lãnh đạo tiềm năng trung thực sẽ thực sự là người
người đứng đầu vòng r −1. (Hãy nhớ lại rằng, vì chúng tôi chọn những nhà lãnh đạo tiềm năng thông qua cơ chế phân loại mật mã bí mật,
Kẻ thù không biết ai là nhà lãnh đạo tiềm năng trung thực.) Vì vậy, Kẻ thù là một kẻ đáng ghen tị.
vị trí chọn tập hợp lương PAY ′ anh ta muốn và biến nó trở thành tập hợp lương chính thức của vòng r −1. Tuy nhiên,
anh ấy có thể làm nhiều hơn nữa. Anh ta cũng có thể đảm bảo rằng, với khả năng cao, () một trong những người dùng ác ý của anh ta sẽ là người dẫn đầu
cũng thuộc vòng r, để anh ta có thể tự do lựa chọn PAY r sẽ là bao nhiêu. (V.v. Ít nhất là trong một thời gian dài, tức là,
miễn là những sự kiện có xác suất cao này thực sự xảy ra.) Để đảm bảo (), Đối thủ hành động như sau. Hãy TRẢ TIỀN ′
là mức trả thưởng mà Đối thủ thích cho vòng r −1. Sau đó, anh ta tính H(PAY ′) và kiểm tra xem, đối với một số
trình phát độc hại z, SIGz(r, 1, H(PAY ′)) đặc biệt nhỏ, nghĩa là đủ nhỏ để có giá trị rất cao
xác suất z sẽ dẫn đầu vòng r. Nếu đúng như vậy thì anh ta sẽ hướng dẫn w chọn khối ứng cử viên của mình làmCác lựa chọn thay thế dựa trên số lượng khối truyền thống có thể bị đối thủ dễ dàng khai thác để đảm bảo
rằng các nhà lãnh đạo độc hại là rất thường xuyên. Thay vào đó, chúng tôi xác định thương hiệu của mình một cách cụ thể và mang tính quy nạp
lượng Qr mới để có thể chứng minh rằng đối thủ không thể thao túng nó. Cụ thể là,
Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), nếu Br không phải là khối trống và Qr \(\triangleq\)H(Qr−1, r) nếu ngược lại.
Trực giác về lý do tại sao cách xây dựng Qr này hoạt động như sau. Giả sử trong giây lát rằng
Qr−1 thực sự được chọn ngẫu nhiên và độc lập. Vậy thì Qr cũng sẽ như vậy phải không? Khi \(\ell\)r trung thực
câu trả lời là (đại khái) là có. Điều này là như vậy bởi vì
H(SIG\(\ell\)r( \(\cdot\) ), r) : {0, 1}256 −→{0, 1}256
là một hàm ngẫu nhiên. Tuy nhiên, khi \(\ell\)r độc hại, Qr không còn được xác định rõ ràng từ Qr−1 nữa
và \(\ell\)r. Có ít nhất hai giá trị riêng biệt cho Qr. Một tiếp tục là Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r),
và cái còn lại là H(Qr−1, r). Đầu tiên chúng ta hãy tranh luận rằng, mặc dù lựa chọn thứ hai có phần tùy tiện,
lựa chọn thứ hai là hoàn toàn bắt buộc. Lý do cho điều này là \(\ell\)r độc hại luôn có thể gây ra
những khối ứng viên hoàn toàn khác nhau sẽ được những người xác minh trung thực của bước thứ hai nhận được.12 Một lần
Trong trường hợp này, thật dễ dàng để đảm bảo rằng khối cuối cùng đã được thống nhất thông qua giao thức BA của
vòng r sẽ là vòng mặc định và do đó sẽ không chứa chữ ký số Qr−1 của bất kỳ ai. Nhưng
hệ thống phải tiếp tục và để làm được điều này, nó cần một người dẫn đầu cho vòng r. Nếu người lãnh đạo này tự động
và được lựa chọn một cách công khai, thì Kẻ thù sẽ làm hư hỏng anh ta một cách tầm thường. Nếu nó được chọn trước đó
Qr−1 thông qua quy trình tương tự, \(\ell\)r sẽ lại dẫn đầu ở vòng r+1. Chúng tôi đặc biệt đề xuất
sử dụng cùng một cơ chế phân loại mật mã bí mật, nhưng được áp dụng cho số lượng Q mới: cụ thể là,
H(Qr−1, r). Bằng cách lấy đại lượng này làm đầu ra của H đảm bảo rằng đầu ra là ngẫu nhiên,
và bằng cách bao gồm r làm đầu vào thứ hai của H, trong khi tất cả các cách sử dụng khác của H đều có một hoặc 3 đầu vào trở lên,
“đảm bảo” rằng Qr như vậy được lựa chọn độc lập. Một lần nữa, sự lựa chọn cụ thể của chúng ta về Qr thay thế
không thành vấn đề, điều quan trọng là \(\ell\)r có hai lựa chọn cho Qr, và do đó anh ta có thể nhân đôi cơ hội của mình
để có một người dùng độc hại khác làm người lãnh đạo tiếp theo.
Các tùy chọn cho Qr thậm chí có thể có nhiều hơn đối với Kẻ thù kiểm soát \(\ell\)r độc hại.
Ví dụ: giả sử x, y và z là ba nhà lãnh đạo tiềm năng độc hại của vòng r sao cho
H
\(\sigma\)r,1
x
<H
\(\sigma\)r,1
y
có một nhà lãnh đạo độc hại hoặc đa số độc hại trong SV r,s cho một số bước theo mong muốn của anh ấy. — Đối với Bước 1 của mỗi vòng r, n1 được chọn sao cho có xác suất áp đảo SV r,1 ̸= \(\emptyset\). • Ví dụ lựa chọn các thông số quan trọng. - Đầu ra của H dài 256-bit. — h = 80%, n1 = 35. — Λ = 1 phút và \(\lambda\) = 10 giây. • Khởi tạo giao thức. Giao thức bắt đầu tại thời điểm 0 với r = 0. Vì không tồn tại “B−1” hoặc “CERT −1”, về mặt cú pháp B−1 là một tham số công khai với thành phần thứ ba chỉ định Q−1 và tất cả người dùng biết B−1 tại thời điểm 0.
Algorand의 두 가지 구현
논의된 바와 같이, 매우 높은 수준에서 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 ′
1 Trong phần này, chúng tôi xây dựng một phiên bản Algorand ′ hoạt động theo giả định sau. Giả định của đa số người dùng trung thực: Hơn 2/3 số người dùng trong mỗi PKr là trung thực. Trong Phần 8, chúng tôi trình bày cách thay thế giả định trên bằng Đa số trung thực mong muốn của Giả định về tiền. 5.1 Ký hiệu và thông số bổ sung Ký hiệu • m \(\in\)Z+: số bước tối đa trong giao thức BA nhị phân, bội số của 3. • Lr \(\leq\)m/3: một biến ngẫu nhiên đại diện cho số phép thử Bernoulli cần để thấy số 1, khi mỗi lần thử là 1 với xác suất ph 2 và có nhiều nhất m/3 phép thử. Nếu tất cả các thử nghiệm đều thất bại thì Lr \(\triangleq\)m/3. Lr sẽ được sử dụng để giới hạn trên thời gian cần thiết để tạo khối Br. • tH = 2n 3+1: số lượng chữ ký cần thiết trong điều kiện kết thúc của giao thức. • CERT r: chứng chỉ dành cho Br. Đó là một tập hợp các chữ ký tH của H(Br) từ những người xác minh thích hợp trong vòng r. Thông số • Mối quan hệ giữa các thông số khác nhau. — Với mỗi bước s > 1 của vòng r, n được chọn sao cho với xác suất áp đảo, |HSV r,s| > 2|MSV r,s| và |HSV r,s| + 4|MSV r,s| < 2n. Giá trị của h càng gần 1 thì n càng nhỏ. Đặc biệt, chúng tôi sử dụng (các biến thể of) Giới hạn Chernoff để đảm bảo các điều kiện mong muốn được giữ vững với xác suất áp đảo. — m được chọn sao cho Lr < m/3 với xác suất áp đảo. • Ví dụ lựa chọn các thông số quan trọng. — F = 10−12. — n \(\approx\)1500, k = 40 và m = 180.5.2 Triển khai Khóa tạm thời trong Algorand ′ 1 Như đã đề cập, chúng tôi mong muốn rằng người xác minh i \(\in\)SV r,s ký điện tử vào tin nhắn của mình mr,s tôi bước s trong vòng r, liên quan đến khóa công khai phù du pkr,s i , sử dụng khóa tiết ra tạm thời skr,s tôi đó anh ta kịp thời phá hủy sau khi sử dụng. Do đó chúng ta cần một phương pháp hiệu quả để đảm bảo rằng mọi người dùng đều có thể xác minh rằng pkr,s tôi thực sự là chìa khóa để sử dụng để xác minh chữ ký của ông tôi . Chúng tôi làm như vậy bằng cách (theo cách tốt nhất theo kiến thức của chúng tôi) việc sử dụng mới các sơ đồ chữ ký dựa trên danh tính. Ở mức độ cao, trong sơ đồ như vậy, cơ quan trung ương A tạo ra khóa chính công khai, PMK, và một khóa chính bí mật tương ứng, SMK. Cho danh tính U của người chơi U, A tính toán, thông qua SMK, khóa chữ ký bí mật skU liên quan đến khóa chung U và cung cấp skU riêng cho U. (Thật vậy, trong sơ đồ chữ ký số dựa trên danh tính, khóa chung của người dùng U chính là U!) Bằng cách này, nếu A hủy SMK sau khi tính toán khóa bí mật của người dùng mà anh ta muốn kích hoạt để tạo ra chữ ký số và không giữ bất kỳ khóa bí mật nào được tính toán thì U là người duy nhất có thể ký điện tử các tin nhắn liên quan đến khóa chung U. Do đó, bất kỳ ai biết “tên U”, tự động biết khóa công khai của U và do đó có thể xác minh chữ ký của U (có thể sử dụng cả khóa chính công khai PMK). Trong ứng dụng của chúng ta, người có thẩm quyền A là người dùng i và tập hợp tất cả những người dùng có thể có U trùng với cặp bước tròn (r, s) trong —say— S = {i}\(\times\){r′, . . . , r′ +106}\(\times\){1, . . . , m+3}, trong đó r′ là một giá trị cho trước vòng và m + 3 giới hạn trên của số bước có thể xảy ra trong một vòng. Cái này cách, pkr,s tôi \(\triangleq\)(i, r, s), để mọi người nhìn thấy chữ ký SIGr,s của tôi pkr,s tôi (ông, s i ) có thể, với áp đảo xác suất, hãy xác minh ngay lập tức nó cho triệu vòng đầu tiên sau r′. Nói cách khác, trước tiên tôi tạo PMK và SMK. Sau đó, anh ta công khai rằng PMK là chủ nhân của tôi khóa chung cho bất kỳ vòng r \(\in\)[r′, r′ + 106] nào và sử dụng SMK để tạo và lưu trữ bí mật một cách riêng tư khóa skr,s tôi với mỗi bộ ba (i, r, s) \(\in\)S. Việc này hoàn thành, anh ta tiêu diệt SMK. Nếu anh ta xác định rằng anh ta không một phần của SV r,s, sau đó tôi có thể rời khỏi skr,s tôi một mình (vì giao thức không yêu cầu anh ta xác thực bất kỳ thông báo nào trong Bước s của vòng r). Mặt khác, lần đầu tiên tôi sử dụng skr,s tôi ký điện tử vào tin nhắn của anh ấy, thưa ông tôi và sau đó phá hủy skr,s tôi . Lưu ý rằng tôi có thể công khai khóa chính công khai đầu tiên của anh ấy khi anh ấy đăng nhập vào hệ thống lần đầu tiên. Đó là, cùng một khoản thanh toán \(\wp\) đưa tôi vào hệ thống (ở vòng r′ hoặc ở vòng gần r′), cũng có thể chỉ định, theo yêu cầu của tôi, rằng khóa chính công khai của tôi cho bất kỳ vòng nào r \(\in\)[r′, r′ + 106] là PMK —ví dụ: bởi trong đó có một cặp dạng (PMK, [r′, r′ + 106]). Cũng lưu ý rằng, vì m + 3 là số bước tối đa trong một vòng, giả sử rằng một vòng mất một phút, kho khóa phù du được sản xuất như vậy sẽ tồn tại trong gần hai năm. Đồng thời Theo thời gian, những chìa khóa bí mật phù du này sẽ không mất quá nhiều thời gian để tôi tạo ra. Sử dụng đường cong elip dựa trên hệ thống có khóa 32B, mỗi khóa bí mật được tính toán trong vài micro giây. Do đó, nếu m + 3 = 180, sau đó tất cả 180 triệu khóa bí mật có thể được tính toán trong vòng chưa đầy một giờ. Khi vòng hiện tại tiến gần đến r′ + 106, để xử lý một triệu vòng tiếp theo, tôi tạo ra một cặp (PMK′, SMK′) mới và thông báo kho khóa tạm thời tiếp theo của anh ấy là gì bằng cách —ví dụ— có SIGi(PMK′, [r′ + 106 + 1, r′ + 2 \(\cdot\) 106 + 1]) nhập một khối mới, dưới dạng “giao dịch” riêng biệt hoặc như một số thông tin bổ sung là một phần của khoản thanh toán. Bằng cách làm như vậy, tôi thông báo với mọi người rằng anh ấy/cô ấy nên sử dụng PMK′ để xác minh chữ ký phù du của tôi trong lần tiếp theo triệu vòng. Và vân vân. (Lưu ý rằng, theo cách tiếp cận cơ bản này, các cách khác để triển khai các khóa tạm thời mà không cần chắc chắn có thể sử dụng chữ ký dựa trên danh tính. Ví dụ: qua Merkle trees.16) 16Trong phương pháp này, tôi tạo một cặp khóa bí mật công khai (pkr,s tôi, skr,s tôi ) cho mỗi cặp bước tròn (r, s) trong —say—Chắc chắn có thể thực hiện được các cách khác để triển khai khóa tạm thời —ví dụ: thông qua Merkle trees. 5.3 Khớp các bước của Algorand ′ 1 cùng với BA⋆ Như chúng tôi đã nói, một vòng trong Algorand ′ 1 có nhiều nhất m+3 bước. Bước 1. Ở bước này, mỗi nhà lãnh đạo tiềm năng i sẽ tính toán và truyền bá khối ứng cử viên Br của mình tôi, cùng với thông tin xác thực của chính mình, \(\sigma\)r,1 tôi . Hãy nhớ rằng thông tin xác thực này xác định rõ ràng i. Điều này là như vậy, bởi vì \(\sigma\)r,1 tôi \(\triangleq\)SIGi(r, 1, Qr−1). Người xác minh tiềm năng tôi cũng tuyên truyền, như một phần trong thông điệp của mình, chữ ký số thích hợp của anh ấy là H(Br tôi ). Không giải quyết vấn đề thanh toán hoặc thông tin xác thực, chữ ký này của tôi có liên quan đến công chúng phù du của anh ấy chìa khóa pkr,1 i : tức là anh ta tuyên truyền sigpkr,1 tôi (H(Br tôi )). Dựa trên những quy ước của chúng tôi, thay vì truyền bá Br tôi và sigpkr,1 tôi (H(Br i )), anh ấy có thể có tuyên truyền SIGpkr,1 tôi (H(Br tôi )). Tuy nhiên, trong phân tích của chúng tôi, chúng tôi cần có quyền truy cập rõ ràng vào sigpkr,1 tôi (H(Br tôi )). Bước 2. Trong bước này, mỗi trình xác minh tôi đặt \(\ell\)r tôi sẽ trở thành người lãnh đạo tiềm năng có chứng chỉ hashed là nhỏ nhất và Br tôi là khối được đề xuất bởi \(\ell\)r tôi . Bởi vì, để đạt được hiệu quả, chúng ta muốn đồng ý về H(Br), thay vì trực tiếp về Br, tôi truyền bá thông điệp mà anh ấy sẽ có được truyền ở bước đầu tiên của BA⋆ với giá trị ban đầu v′ tôi = H(Br tôi ). Tức là anh ta tuyên truyền v′ tôi, tất nhiên là sau khi tạm thời ký nó. (Cụ thể là, sau khi ký tên liên quan đến phù du bên phải khóa công khai, trong trường hợp này là pkr,2 i.) Tất nhiên cũng vậy, tôi cũng truyền bằng cấp của chính mình. Vì bước đầu tiên của BA⋆bao gồm bước đầu tiên của giao thức đồng thuận được phân loại GC, nên Bước 2 của Algorand ′ tương ứng với bước đầu tiên của GC. Bước 3. Trong bước này, mỗi trình xác minh i \(\in\)SV r,2 thực hiện bước thứ hai của BA⋆. Tức là anh ta gửi cùng một thông điệp mà anh ấy đã gửi ở bước thứ hai của GC. Một lần nữa, tin nhắn của tôi chỉ là phù du được ký và kèm theo thông tin xác thực của tôi. (Từ bây giờ trở đi, chúng ta sẽ bỏ qua việc nói rằng người xác minh ký tạm thời tin nhắn của anh ấy và cũng tuyên truyền thông tin xác thực của anh ấy.) Bước 4. Trong bước này, mọi trình xác minh i \(\in\)SV r,4 tính toán đầu ra của GC, (vi, gi) và tạm thời ký và gửi cùng một tin nhắn mà lẽ ra anh ta đã gửi ở bước thứ ba của BA⋆, tức là trong Bước đầu tiên của BBA⋆, với bit ban đầu là 0 nếu gi = 2 và 1 nếu ngược lại. Bước s = 5, . . . , m + 2. Bước như vậy, nếu đạt được, sẽ tương ứng với bước s −1 của BA⋆, và do đó với bước s −3 của BBA⋆. Vì mô hình truyền bá của chúng ta đủ không đồng bộ nên chúng ta phải tính đến khả năng rằng, ở giữa bước s như vậy, người xác minh i \(\in\)SV r,s đạt được nhờ thông tin chứng minh anh ta khối Br đó đã được chọn. Trong trường hợp này, tôi dừng việc thực hiện vòng r của chính anh ấy Algorand ′ và bắt đầu thực hiện các lệnh vòng-(r + 1) của mình. {r′, . . . , r′ + 106} \(\times\) {1, . . . , m + 3}. Sau đó, anh ta sắp xếp các khóa công khai này theo cách chuẩn tắc, lưu trữ khóa công khai thứ j khóa vào lá thứ j của Merkle tree và tính giá trị gốc Ri mà anh ta công khai. Khi anh ấy muốn ký một thông báo liên quan đến khóa pkr,s tôi , tôi không chỉ cung cấp chữ ký thực mà còn cung cấp đường dẫn xác thực cho pkr,s tôi tương đối với Ri. Lưu ý rằng đường dẫn xác thực này cũng chứng minh rằng pkr,s tôi được lưu trữ trong lá thứ j. Phần còn lại của chi tiết có thể được điền dễ dàng.Theo đó, các lệnh của người xác minh i \(\in\)SV r,s, ngoài các lệnh tương ứng đến Bước s −3 của BBA⋆, bao gồm việc kiểm tra xem việc thực thi BBA⋆ có bị dừng ở lần trước hay không Bước s′. Vì BBA⋆ chỉ có thể tạm dừng ở Bước Cố định bằng xu thành 0 hoặc ở bước Cố định bằng xu thành 1, nên hướng dẫn phân biệt xem A (Điều kiện kết thúc 0): s′ −2 ≡0 mod 3, hoặc B (Điều kiện kết thúc 1): s′ −2 ≡1 mod 3. Trong thực tế, trong trường hợp A, khối Br không trống và do đó cần có các lệnh bổ sung để đảm bảo rằng tôi xây dựng lại Br đúng cách, cùng với chứng chỉ CERT r phù hợp của nó. Trong trường hợp B, khối Br trống và do đó tôi được hướng dẫn đặt Br = Br \(\varepsilon\) = (r, \(\emptyset\), H(Qr−1, r), H(Br−1)), và tính CERT r. Nếu trong quá trình thực hiện bước s, tôi không thấy bất kỳ bằng chứng nào cho thấy khối Br đã có được tạo thì anh ta sẽ gửi cùng một tin nhắn mà lẽ ra anh ta đã gửi ở bước s −3 của BBA⋆. Bước m + 3. Nếu trong bước m + 3, i \(\in\)SV r,m+3 thấy rằng khối Br đã được tạo trong bước trước s' thì anh ta sẽ tiến hành như đã giải thích ở trên. Ngược lại, thay vì gửi cùng một tin nhắn mà anh ấy đã gửi ở bước m của BBA⋆, tôi là được hướng dẫn, dựa trên thông tin anh ta có, để tính Br và giá trị tương ứng của nó chứng nhận CERT r. Trên thực tế, hãy nhớ lại rằng chúng ta tăng tổng số bước của một vòng lên trên m + 3. 5,4 Giao thức thực tế Hãy nhớ lại rằng, trong mỗi bước s của vòng r, người xác minh i \(\in\)SV r,s sử dụng cặp khóa bí mật công khai dài hạn của mình để tạo ra thông tin xác thực của anh ấy, \(\sigma\)r,s tôi \(\triangleq\)SIGi(r, s, Qr−1), cũng như SIGi Qr−1 trong trường hợp s = 1. Trình xác minh i sử dụng khóa bí mật phù du skr,s của mình tôi ký vào tin nhắn (r, s) của anh ấy mr,s tôi . Để đơn giản, khi r và s là rõ ràng, chúng ta viết esigi(x) thay vì sigpkr,s i (x) để biểu thị chữ ký phù hợp của i của một giá trị x ở bước s của vòng r và viết ESIGi(x) thay vì SIGpkr,s i (x) để biểu thị (i, x, esigi(x)). Bước 1: Chặn đề xuất Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước 1 của vòng r ngay khi anh ta biết Br−1. • Người dùng i tính Qr−1 từ thành phần thứ ba của Br−1 và kiểm tra xem i \(\in\)SV r,1 hay không. • Nếu i /\(\in\)SV r,1 thì i dừng việc thực hiện Bước 1 của chính anh ta ngay lập tức. • Nếu i \(\in\)SV r,1, tức là nếu tôi là người lãnh đạo tiềm năng thì anh ta sẽ thu các khoản thanh toán theo vòng r có đã được truyền tới anh ta cho đến nay và tính toán mức lương tối đa PAY r tôi từ họ. Tiếp theo, anh ấy tính toán “khối ứng cử viên” của mình Br i = (r, TRẢ r i , SIGi(Qr−1), H(Br−1)). Cuối cùng anh tính toán tin nhắn thưa ông, 1 tôi = (Anh i , esigi(H(Br i )), \(\sigma\)r,1 i ), phá hủy khóa bí mật phù du skr của anh ấy,1 tôi, và sau đó tuyên truyền ông, 1 tôi .Nhận xét. Trong thực tế, để rút ngắn thời gian thực hiện chung của Bước 1, điều quan trọng là (r, 1)- thông điệp được truyền bá có chọn lọc. Tức là, với mỗi người dùng i trong hệ thống, đối với (r, 1)- tin nhắn mà anh ấy từng nhận được và xác minh thành công,17 người chơi tôi sẽ truyền bá nó như thường lệ. Đối với tất cả các các tin nhắn (r, 1) khác mà người chơi tôi nhận được và xác minh thành công, anh ta chỉ truyền nó nếu hash giá trị của thông tin xác thực chứa trong đó là giá trị nhỏ nhất trong số các giá trị hash của thông tin xác thực chứa trong đó trong tất cả các tin nhắn (r, 1) mà anh ấy đã nhận được và xác minh thành công cho đến nay. Hơn nữa, theo đề xuất của Georgios Vlachos, điều hữu ích là mỗi nhà lãnh đạo tiềm năng tôi cũng tuyên truyền chứng chỉ \(\sigma\)r,1 của mình tôi riêng biệt: những tin nhắn nhỏ đó di chuyển nhanh hơn các khối, đảm bảo việc truyền bá kịp thời của mr,1 j's trong đó thông tin xác thực được chứa có giá trị hash nhỏ, trong khi tạo những giá trị có giá trị hash lớn biến mất nhanh chóng. Bước 2: Bước đầu tiên của Giao thức đồng thuận được phân loại GC Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước 2 của vòng r ngay khi anh ta biết Br−1. • Người dùng i tính Qr−1 từ thành phần thứ ba của Br−1 và kiểm tra xem i \(\in\)SV r,2 hay không. • Nếu i /\(\in\)SV r,2 thì tôi dừng việc thực hiện Bước 2 của chính anh ta ngay lập tức. • Nếu i \(\in\)SV r,2 thì sau khi đợi một khoảng thời gian t2 \(\triangleq\) \(\lambda\) + Λ, i sẽ hành động như sau. 1. Anh ta tìm người dùng \(\ell\)sao cho H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j ) cho tất cả thông tin xác thực \(\sigma\)r,1 j đó là một phần của các tin nhắn (r, 1) được xác minh thành công mà anh ấy đã nhận được cho đến nay.a 2. Nếu anh ấy đã nhận được từ \(\ell\)một tin nhắn hợp lệ, ông1 \(\ell\) = (Anh \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),b thì tôi đặt v′ tôi \(\triangleq\)H(Br \(\ell\)); ngược lại tôi đặt v′ tôi \(\triangleq\) \(\bot\). 3. tôi tính tin nhắn ông,2 tôi \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 i ),c phá hủy khóa bí mật phù du của mình skr,2 i , và sau đó truyền bá mr,2 tôi . aVề cơ bản, người dùng i quyết định riêng rằng người dẫn đầu vòng r là người dùng \(\ell\). bMột lần nữa, chữ ký của người chơi \(\ell\) và hash đều được xác minh thành công và TRẢ TIỀN r \(\ell\)ở Br \(\ell\)là một khoản thanh toán hợp lệ cho làm tròn r —mặc dù tôi không kiểm tra xem TRẢ TIỀN r \(\ell\)là tối đa cho \(\ell\)hoặc không. cTin nhắn của anh,2 tôi tín hiệu mà người chơi tôi coi là v′ tôi là hash của khối tiếp theo hoặc xem xét khối tiếp theo khối để trống. 17Nghĩa là, tất cả chữ ký đều đúng và cả khối và hash của nó đều hợp lệ —mặc dù tôi không kiểm tra liệu tập hợp thanh toán đi kèm có phải là tối đa cho người đề xuất hay không.
Bước 3: Bước thứ hai của GC Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước 3 của vòng r ngay khi anh ta biết Br−1. • Người dùng i tính Qr−1 từ thành phần thứ ba của Br−1 và kiểm tra xem i \(\in\)SV r,3 hay không. • Nếu i /\(\in\)SV r,3 thì tôi dừng việc thực hiện Bước 3 của chính anh ta ngay lập tức. • Nếu i \(\in\)SV r,3 thì sau khi đợi một khoảng thời gian t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ, tôi thực hiện như sau. 1. Nếu tồn tại một giá trị v′ ̸= \(\bot\) sao cho trong số tất cả các tin nhắn hợp lệ mr,2 j anh ấy đã nhận được, hơn 2/3 trong số chúng có dạng (ESIGj(v′), \(\sigma\)r,2 j ), không có bất kỳ mâu thuẫn nào, a sau đó anh ấy tính tin nhắn ạ,3 tôi \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 tôi ). Ngược lại, anh ta tính mr,3 tôi \(\triangleq\) (ESIGi(\(\bot\)), \(\sigma\)r,3 tôi ). 2. tôi phá hủy skr khóa bí mật phù du của anh ấy,3 i , rồi tuyên truyền mr,3 tôi . a Tức là anh ta chưa nhận được hai tin nhắn hợp lệ lần lượt chứa ESIGj(v′) và ESIGj(v′′) khác nhau, từ một người chơi j. Từ đây trở đi, ngoại trừ các Điều kiện kết thúc được xác định sau, bất cứ khi nào một người chơi trung thực muốn các tin nhắn có hình thức nhất định, các tin nhắn mâu thuẫn với nhau không bao giờ được tính hoặc coi là hợp lệ.Bước 4: Đầu ra của GC và Bước đầu tiên của BBA⋆ Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước 4 của vòng r ngay khi anh ta biết Br−1. • Người dùng i tính Qr−1 từ thành phần thứ ba của Br−1 và kiểm tra xem i \(\in\)SV r,4 hay không. • Nếu i /\(\in\)SV r,4 thì i của anh ấy sẽ dừng việc thực hiện Bước 4 của chính mình ngay lập tức. • Nếu i \(\in\)SV r,4 thì sau khi đợi một khoảng thời gian t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ, i thực hiện như sau. 1. Anh ta tính vi và gi, đầu ra của GC, như sau. (a) Nếu tồn tại một giá trị v′ ̸= \(\bot\) sao cho trong số tất cả các thông báo hợp lệ mr,3 j anh ấy có nhận được thì hơn 2/3 trong số chúng có dạng (ESIGj(v′), \(\sigma\)r,3 j ), sau đó anh ta đặt vi \(\triangleq\)v' và gi \(\triangleq\)2. (b) Ngược lại, nếu tồn tại một giá trị v′ ̸= \(\bot\) sao cho trong số tất cả các thông báo hợp lệ ông, 3 j người đó đã nhận được thì hơn 1/3 trong số đó có dạng (ESIGj(v′), \(\sigma\)r,3 j ), thì anh ấy đặt vi \(\triangleq\)v′ và gi \(\triangleq\)1.a (c) Ngược lại, anh ta đặt vi \(\triangleq\)H(Br ǫ ) và gi \(\triangleq\)0. 2. Anh ta tính bi, đầu vào của BBA⋆, như sau: bi \(\triangleq\)0 nếu gi = 2, và bi \(\triangleq\)1 nếu ngược lại. 3. Anh ấy tính tin nhắn ông,4 tôi \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), phá hủy sự phù du của anh ấy khóa bí mật skr,4 i , và sau đó truyền bá mr,4 tôi . aCó thể chứng minh rằng v’ trong trường hợp (b), nếu tồn tại thì phải là duy nhất.
Bước s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: Bước cố định bằng tiền xu của BBA⋆ Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu các Bước của riêng mình trong vòng r ngay khi anh ta biết Br−1. • Người dùng i tính Qr−1 từ thành phần thứ ba của Br−1 và kiểm tra xem i \(\in\)SV r,s. • Nếu i /\(\in\)SV r,s thì tôi dừng việc thực thi Bước s của chính anh ta ngay lập tức. • Nếu i \(\in\)SV r,s thì anh ta hành động như sau. – Anh ta đợi cho đến khi một khoảng thời gian ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3)\(\lambda\) + Λ trôi qua. – Điều kiện kết thúc 0: Nếu trong quá trình chờ đợi đó và tại bất kỳ thời điểm nào tồn tại một chuỗi v ̸= \(\bot\) và một bước s′ sao cho (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3 —nghĩa là Bước s′ là bước Coin-Fixed-To-0, (b) tôi đã nhận được ít nhất tH = 2n 3 + 1 tin nhắn hợp lệ mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ), a và (c) tôi đã nhận được một tin nhắn hợp lệ thưa ông,1 j = (Anh j , esigj(H(Br j )), \(\sigma\)r,1 j ) với v = H(Br j ), sau đó, tôi dừng việc thực hiện Bước s (và thực tế là vòng r) của chính anh ấy ngay lập tức mà không cần tuyên truyền bất cứ điều gì; đặt Br = Br j ; và đặt CERT r của riêng mình thành tập hợp các tin nhắn ông,s′−1 j của bước phụ (b).b – Điều kiện kết thúc 1: Nếu trong quá trình chờ đợi đó và tại bất kỳ thời điểm nào, tồn tại một bước s′ sao cho (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3 —nghĩa là Bước s′ là bước Cố định thành 1 xu và (b’) tôi đã nhận được ít nhất tH tin nhắn hợp lệ mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),c sau đó, tôi dừng việc thực hiện Bước s (và thực tế là vòng r) của chính anh ấy ngay lập tức mà không cần tuyên truyền bất cứ điều gì; đặt Br = Br Ă ; và đặt CERT r của riêng mình thành tập hợp các tin nhắn ông,s′−1 j của bước phụ (b'). – Ngược lại, khi kết thúc quá trình chờ đợi, người dùng i thực hiện như sau. Anh ta đặt vi là đa số phiếu bầu của vj trong các thành phần thứ hai của tất cả các thành phần hợp lệ ông,s−1 j ' anh ấy đã nhận được. Anh ta tính bi như sau. Nếu nhiều hơn 2/3 tổng số mr,s−1 hợp lệ j ’ anh ấy đã nhận được có dạng (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), thì anh ta đặt bi \(\triangleq\)0. Ngược lại, nếu nhiều hơn 2/3 tổng số mr,s−1 hợp lệ j ’ anh ấy đã nhận được có dạng (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), thì anh ta đặt bi \(\triangleq\)1. Ngược lại, anh ta đặt bi \(\triangleq\) 0. Anh ấy tính toán tin nhắn thưa ông tôi \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), phá hủy sự phù du của anh ấy khóa bí mật skr,s i , và sau đó tuyên truyền mr,s tôi . aTin nhắn như vậy từ người chơi j được tính ngay cả khi người chơi i cũng đã nhận được tin nhắn từ j ký tên 1. Những điều tương tự đối với Điều kiện kết thúc 1. Như đã trình bày trong phân tích, việc này được thực hiện để đảm bảo rằng tất cả người dùng trung thực đều biết Br trong thời gian \(\lambda\) cách nhau. bNgười dùng bây giờ tôi đã biết Br và kết thúc vòng r của chính anh ấy. Anh ấy vẫn giúp truyền bá thông điệp với tư cách là người dùng chung, nhưng không bắt đầu bất kỳ sự lan truyền nào dưới dạng trình xác minh (r, s). Đặc biệt, ông đã giúp truyền bá mọi thông điệp trong CERT r, đủ cho giao thức của chúng tôi. Lưu ý rằng anh ta cũng nên đặt bi \(\triangleq\)0 cho giao thức BA nhị phân, nhưng bi dù sao cũng không cần thiết trong trường hợp này. Những điều tương tự cho tất cả các hướng dẫn trong tương lai. cTrong trường hợp này, vj là gì không quan trọng.Bước s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: Bước cố định thành 1 xu của BBA⋆ Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu các Bước của riêng mình trong vòng r ngay khi anh ta biết Br−1. • Người dùng i tính Qr−1 từ thành phần thứ ba của Br−1 và kiểm tra xem i \(\in\)SV r,s hay không. • Nếu i /\(\in\)SV r,s thì tôi dừng việc thực thi Bước s của chính anh ta ngay lập tức. • Nếu i \(\in\)SV r,s thì anh ta làm như sau. – Anh ta đợi cho đến khi một khoảng thời gian ts \(\triangleq\)(2s −3)\(\lambda\) + Λ trôi qua. – Điều kiện kết thúc 0: Hướng dẫn tương tự như các bước Coin-Fixed-To-0. – Điều kiện kết thúc 1: Hướng dẫn tương tự như các bước Coin-Fixed-To-0. – Ngược lại, khi kết thúc quá trình chờ đợi, người dùng i thực hiện như sau. Anh ta đặt vi là đa số phiếu bầu của vj trong các thành phần thứ hai của tất cả các thành phần hợp lệ ông,s−1 j ' anh ấy đã nhận được. Anh ta tính bi như sau. Nếu nhiều hơn 2/3 tổng số mr,s−1 hợp lệ j ’ anh ấy đã nhận được có dạng (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), thì anh ta đặt bi \(\triangleq\)0. Ngược lại, nếu nhiều hơn 2/3 tổng số mr,s−1 hợp lệ j ’ anh ấy đã nhận được có dạng (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), thì anh ta đặt bi \(\triangleq\)1. Ngược lại, anh ta đặt bi \(\triangleq\)1. Anh ấy tính toán tin nhắn thưa ông tôi \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), phá hủy sự phù du của anh ấy khóa bí mật skr,s i , và sau đó tuyên truyền mr,s tôi .
Bước s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: Bước lật xu thật của BBA⋆ Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu các Bước của riêng mình trong vòng r ngay khi anh ta biết Br−1. • Người dùng i tính Qr−1 từ thành phần thứ ba của Br−1 và kiểm tra xem i \(\in\)SV r,s hay không. • Nếu i /\(\in\)SV r,s thì tôi dừng việc thực thi Bước s của chính anh ta ngay lập tức. • Nếu i \(\in\)SV r,s thì anh ta làm như sau. – Anh ta đợi cho đến khi một khoảng thời gian ts \(\triangleq\)(2s −3)\(\lambda\) + Λ trôi qua. – Điều kiện kết thúc 0: Hướng dẫn tương tự như các bước Coin-Fixed-To-0. – Điều kiện kết thúc 1: Hướng dẫn tương tự như các bước Coin-Fixed-To-0. – Ngược lại, khi kết thúc quá trình chờ đợi, người dùng i thực hiện như sau. Anh ta đặt vi là đa số phiếu bầu của vj trong các thành phần thứ hai của tất cả các thành phần hợp lệ ông,s−1 j ' anh ấy đã nhận được. Anh ta tính bi như sau. Nếu nhiều hơn 2/3 tổng số mr,s−1 hợp lệ j ’ anh ấy đã nhận được có dạng (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), thì anh ta đặt bi \(\triangleq\)0. Ngược lại, nếu nhiều hơn 2/3 tổng số mr,s−1 hợp lệ j ’ anh ấy đã nhận được có dạng (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), thì anh ta đặt bi \(\triangleq\)1. Ngược lại, đặt SV r,s−1 tôi là tập hợp các trình xác minh (r, s −1) mà từ đó anh ta đã nhận được thông tin hợp lệ nhắn tin cho ông,s−1 j . Anh ta đặt bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 tôi H(\(\sigma\)r,s−1 j )). Anh ấy tính toán tin nhắn thưa ông tôi \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), phá hủy sự phù du của anh ấy khóa bí mật skr,s i , và sau đó tuyên truyền mr,s tôi .
Bước m + 3: Bước cuối cùng của BBA⋆a Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước m + 3 của vòng r ngay khi anh ta biết Br−1. • Người dùng i tính Qr−1 từ thành phần thứ ba của Br−1 và kiểm tra xem i \(\in\)SV r,m+3 hay không. • Nếu i /\(\in\)SV r,m+3 thì tôi dừng việc thực hiện Bước m + 3 của anh ta ngay lập tức. • Nếu i \(\in\)SV r,m+3 thì anh ta làm như sau. – Anh ta đợi cho đến khi một khoảng thời gian tm+3 \(\triangleq\)tm+2 + 2\(\lambda\) = (2m + 3)\(\lambda\) + Λ trôi qua. – Điều kiện kết thúc 0: Hướng dẫn tương tự như các bước Coin-Fixed-To-0. – Điều kiện kết thúc 1: Hướng dẫn tương tự như các bước Coin-Fixed-To-0. – Ngược lại, khi kết thúc quá trình chờ đợi, người dùng i thực hiện như sau. Anh ta khởi hànhi \(\triangleq\)1 và Br \(\triangleq\)Br ừ. Anh tính tin nhắn mr,m+3 tôi = (ESIGi(outi), ESIGi(H(Br)), \(\sigma\)r,m+3 tôi ), phá hủy khóa bí mật phù du skr,m+3 tôi , rồi truyền bá mr,m+3 tôi chứng nhận Br.b aVới xác suất áp đảo BBA⋆ đã kết thúc trước bước này và chúng tôi chỉ định bước này cho đầy đủ. b Chứng chỉ từ Bước m + 3 không nhất thiết phải bao gồm ESIGi(outi). Chúng tôi đưa nó vào chỉ để thống nhất: chứng chỉ hiện có định dạng thống nhất cho dù chúng được tạo ở bước nào.Tái thiết khối Round-r bởi những người không xác minh Hướng dẫn cho mọi người dùng i trong hệ thống: Người dùng i bắt đầu vòng r của riêng mình ngay khi biết Br−1 và chờ thông tin khối như sau. – Nếu trong quá trình chờ đợi như vậy và tại bất kỳ thời điểm nào tồn tại một chuỗi v và một bước s′ như vậy đó (a) 5 ≡0 mod 3, (b) tôi đã nhận được ít nhất tH tin nhắn hợp lệ mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ) và (c) tôi đã nhận được một tin nhắn hợp lệ thưa ông,1 j = (Anh j , esigj(H(Br j )), \(\sigma\)r,1 j ) với v = H(Br j ), sau đó, tôi dừng việc thực hiện vòng r của chính anh ta ngay lập tức; đặt Br = Br j; và đặt CERT của riêng mình r là tập hợp các thông điệp mr,s′−1 j của bước phụ (b). – Nếu trong quá trình chờ đợi như vậy và tại bất kỳ thời điểm nào tồn tại một bước s′ sao cho (a’) 6 \(\leq\)s′ \(\leq\)m + 3 với s′ −2 ≡1 mod 3, và (b’) tôi đã nhận được ít nhất tH tin nhắn hợp lệ mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ), sau đó, tôi dừng việc thực hiện vòng r của chính anh ta ngay lập tức; đặt Br = Br Ă; và đặt CERT của riêng mình r là tập hợp các thông điệp mr,s′−1 j của bước phụ (b'). – Nếu trong thời gian chờ đợi đó và tại bất kỳ thời điểm nào, tôi đã nhận được ít nhất th tin nhắn hợp lệ ông,m+3 j = (ESIGj(1), ESIGj(H(Br ǫ )), \(\sigma\)r,m+3 j ), sau đó tôi dừng việc thực hiện vòng r của chính anh ấy ngay lập tức, đặt Br = Br ǫ , và đặt CERT r của riêng mình thành tập hợp các tin nhắn mr,m+3 j cho 1 và H(Br ừ ). 5,5 Phân tích Algorand ′ 1 Chúng tôi giới thiệu các ký hiệu sau cho mỗi vòng r \(\geq\)0, được sử dụng trong phân tích. • Gọi T r là thời điểm người dùng trung thực đầu tiên biết Br−1. • Gọi Ir+1 là khoảng [T r+1, T r+1 + \(\lambda\)]. Lưu ý rằng T 0 = 0 khi khởi tạo giao thức. Với mỗi s \(\geq\)1 và i \(\in\)SV r,s, nhớ lại rằng \(\alpha\)r,s tôi và \(\beta\)r,s tôi lần lượt là thời gian bắt đầu và thời gian kết thúc bước s của người chơi thứ i. Hơn nữa, nhớ lại rằng ts = (2s −3)\(\lambda\) + Λ với mỗi 2 \(\triangleq\)m + 3. Ngoài ra, đặt I0 \(\triangleq\){0} và t1 \(\triangleq\)0. Cuối cùng, hãy nhớ lại rằng Lr \(\leq\)m/3 là một biến ngẫu nhiên biểu thị số phép thử Bernoulli cần xem số 1, khi mỗi phép thử là 1 với xác suất ph 2 và có nhiều nhất m/3 phép thử. Nếu tất cả thử nghiệm thất bại thì Lr \(\triangleq\)m/3. Trong phân tích, chúng tôi bỏ qua thời gian tính toán vì trên thực tế nó không đáng kể so với thời gian cần thiết. để truyền bá thông điệp. Trong mọi trường hợp, bằng cách sử dụng \(\lambda\) và Λ lớn hơn một chút, thời gian tính toán có thể được đưa vào phân tích trực tiếp. Hầu hết các câu dưới đây đều có nội dung “với áp đảo xác suất,” và chúng ta có thể không nhấn mạnh nhiều lần thực tế này trong phân tích.5.6 Định lý chính Định lý 5.1. Các thuộc tính sau đây có xác suất áp đảo cho mỗi vòng r \(\geq\)0: 1. Tất cả người dùng trung thực đều đồng ý về cùng một khối Br. 2. Khi người dẫn đầu \(\ell\)r trung thực, khối Br được tạo bởi \(\ell\)r, Br chứa tập hợp thanh toán tối đa \(\ell\)r nhận được vào thời điểm \(\alpha\)r,1 \(\ell\)r , T r+1 \(\leq\)T r + 8\(\lambda\) + Λ và tất cả người dùng trung thực đều biết Br vào thời điểm đó khoảng Ir+1. 3. Khi người lãnh đạo \(\ell\)r độc hại, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ và tất cả người dùng trung thực đều biết Br trong khoảng thời gian Ir+1. 4. ph = h2(1 + h −h2) đối với Lr, và người dẫn đầu \(\ell\)r trung thực với xác suất ít nhất là ph. Trước khi chứng minh định lý chính, chúng ta hãy đưa ra hai nhận xét. Nhận xét. • Tạo khối và độ trễ thực sự. Thời gian để tạo khối Br được xác định là T r+1 −T r. Nghĩa là, nó được định nghĩa là sự khác biệt giữa lần đầu tiên một số người dùng trung thực học Br và lần đầu tiên một số người dùng trung thực học Br−1. Khi người dẫn đầu vòng r trung thực, Thuộc tính 2 của chúng ta định lý chính đảm bảo rằng thời gian chính xác để tạo ra Br là 8\(\lambda\) + Λ thời gian, bất kể thế nào giá trị chính xác của h > 2/3 có thể. Khi người lãnh đạo có ác ý, Thuộc tính 3 ngụ ý rằng thời gian dự kiến để tạo ra Br bị giới hạn bởi ( 12 ph + 10)\(\lambda\) + Λ, một lần nữa bất kể giá trị chính xác là bao nhiêu giá trị h.18 Tuy nhiên, thời gian dự kiến để tạo ra Br phụ thuộc vào giá trị chính xác của h. Thật vậy, theo Tính chất 4, ph = h2(1 + h −h2) và người lãnh đạo ít nhất là trung thực với xác suất ph, do đó E[T r+1 −T r] \(\leq\)h2(1 + h −h2) \(\cdot\) (8\(\lambda\) + Λ) + (1 −h2(1 + h −h2))(( 12 h2(1 + h −h2) + 10)\(\lambda\) + Λ). Ví dụ: nếu h = 80% thì E[T r+1 −T r] \(\leq\)12,7\(\lambda\) + Λ. • \(\lambda\) so với Λ. Lưu ý rằng kích thước của tin nhắn được người xác minh gửi trong bước Algorand ′ bị chi phối bằng độ dài của các phím chữ ký số, có thể được giữ cố định, ngay cả khi số lượng người dùng là rất lớn. Cũng lưu ý rằng, trong bất kỳ bước nào s > 1, số lượng người xác minh dự kiến như nhau có thể được sử dụng cho dù số lượng người dùng là 100K, 100M hay 100M. Điều này là như vậy bởi vì n chỉ phụ thuộc vào h và F. Do đó, tóm lại, để tránh nhu cầu tăng đột ngột độ dài khóa bí mật, giá trị của \(\lambda\) sẽ giữ nguyên cho dù số lượng người dùng có thể lớn đến mức nào tương lai có thể thấy trước. Ngược lại, đối với bất kỳ tỷ lệ giao dịch nào, số lượng giao dịch tăng theo số lượng người dùng. Do đó, để xử lý tất cả các giao dịch mới một cách kịp thời, kích thước của một khối phải cũng tăng theo số lượng người dùng, khiến Λ cũng tăng theo. Vì vậy, về lâu dài, chúng ta nên có \(\lambda\) << Λ. Theo đó, thật phù hợp khi có hệ số lớn hơn cho \(\lambda\), và thực tế là hệ số của 1 cho Λ. Chứng minh định lý 5.1. Chúng ta chứng minh Tính chất 1–3 bằng quy nạp: giả sử chúng đúng với vòng r −1 (không mất tính tổng quát, chúng tự động đúng với “làm tròn -1” khi r = 0), ta chứng minh chúng cho vòng r. 18Thật vậy, E[T r+1 −T r] \(\leq\)(6E[Lr] + 10)\(\lambda\) + Λ = (6 \(\cdot\) 2 ph + 10)\(\lambda\) + Λ = ( 12 ph + 10)\(\lambda\) + Λ.Vì Br−1 được xác định duy nhất theo giả thuyết quy nạp nên tập SV r,s được xác định duy nhất cho mỗi bước s của vòng r. Bằng cách chọn n1, SV r,1 ̸= \(\emptyset\)với xác suất áp đảo. Bây giờ chúng tôi phát biểu hai bổ đề sau đây, được chứng minh ở Mục 5.7 và 5.8. Trong suốt quá trình cảm ứng và trong Chứng minh hai bổ đề thì việc phân tích vòng 0 gần giống như bước quy nạp, và chúng tôi sẽ nêu bật những điểm khác biệt khi chúng xảy ra. Bổ đề 5.2. [Bổ đề đầy đủ] Giả sử Thuộc tính 1–3 đúng cho vòng r−1, khi người dẫn đầu \(\ell\)r là trung thực, với xác suất áp đảo, • Tất cả người dùng trung thực đều đồng ý về cùng một khối Br, được tạo bởi \(\ell\)r và chứa giá trị tối đa khoản thanh toán mà \(\ell\)r nhận được vào thời điểm \(\alpha\)r,1 \(\ell\)r \(\in\)Ir; và • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ và tất cả người dùng trung thực đều biết Br trong khoảng thời gian Ir+1. Bổ đề 5.3. [Bổ đề đúng đắn] Giả sử Thuộc tính 1–3 đúng cho vòng r −1, khi người dẫn đầu \(\ell\)r là độc hại, với xác suất áp đảo, tất cả người dùng trung thực đều đồng ý trên cùng một khối Br, T r+1 \(\leq\) T r + (6Lr + 10)\(\lambda\) + Λ và tất cả người dùng trung thực đều biết Br trong khoảng thời gian Ir+1. Tính chất 1–3 đúng khi áp dụng Bổ đề 5.2 và 5.3 cho r = 0 và cho bước quy nạp. Cuối cùng, chúng ta phát biểu lại Tính chất 4 như bổ đề sau, được chứng minh ở Phần 5.9. Bổ đề 5.4. Cho các Thuộc tính 1–3 cho mỗi vòng trước r, ph = h2(1 + h −h2) cho Lr, và lãnh đạo \(\ell\)r trung thực với xác suất ít nhất là ph. Kết hợp ba bổ đề trên với nhau, Định lý 5.1 đúng. ■ Bổ đề dưới đây phát biểu một số tính chất quan trọng của vòng r với biểu thức quy nạp giả thuyết và sẽ được sử dụng trong chứng minh ba bổ đề trên. Bổ đề 5.5. Giả sử Thuộc tính 1–3 giữ cho vòng r −1. Với mỗi bước s \(\geq\)1 của vòng r và mỗi người xác minh trung thực i \(\in\)HSV r,s, chúng ta có (a) \(\alpha\)r,s tôi \(\in\)Ir; (b) nếu người chơi i đã đợi một khoảng thời gian ts thì \(\beta\)r,s tôi \(\in\)[T r + ts, T r + \(\lambda\) + ts] với r > 0 và \(\beta\)r,s tôi = ts cho r = 0; và (c) nếu người chơi i đã đợi một khoảng thời gian ts thì theo thời gian \(\beta\)r,s tôi , anh ấy đã nhận được tất cả tin nhắn được gửi bởi tất cả những người xác minh trung thực j \(\in\)HSV r,s′ cho tất cả các bước s′ < s. Hơn nữa, với mỗi bước s \(\geq\)3, ta có (d) không tồn tại hai người chơi khác nhau i, i′ \(\in\)SV r,s và hai giá trị khác nhau v, v′ giống nhau dài, sao cho cả hai người chơi đã đợi một khoảng thời gian t, hơn 2/3 tổng thời gian tin nhắn hợp lệ ông,s−1 j người chơi tôi nhận được đã ký hợp đồng với v và hơn 2/3 số người chơi hợp lệ tin nhắn ông,s−1 j cầu thủ tôi′ nhận được đã ký hợp đồng với v′. Bằng chứng. Tính chất (a) suy ra trực tiếp từ giả thuyết quy nạp, vì người chơi i biết Br−1 trong khoảng thời gian Ir và bắt đầu bước đi s của chính mình ngay lập tức. Tính chất (b) suy ra trực tiếp từ (a): vì người chơi tôi đã đợi một khoảng thời gian ts trước khi hành động, \(\beta\)r,s tôi = \(\alpha\)r,s tôi +ts. Lưu ý rằng \(\alpha\)r,s tôi = 0 cho r = 0. Bây giờ chúng ta chứng minh Tính chất (c). Nếu s = 2 thì theo Tính chất (b), với mọi kiểm định j \(\in\)HSV r,1 ta có \(\beta\)r,s tôi = \(\alpha\)r,s tôi + ts \(\geq\)T r + ts = T r + \(\lambda\) + Λ \(\geq\) \(\beta\)r,1 j + Λ.Vì mỗi người xác minh j \(\in\)HSV r,1 gửi tin nhắn của mình vào thời điểm \(\beta\)r,1 j và thông điệp đến được với tất cả những người trung thực người dùng trong tối đa Λ thời gian, theo thời gian \(\beta\)r,s tôi người chơi tôi đã nhận được tin nhắn được gửi bởi tất cả người xác minh trong HSV r,1 như mong muốn. Nếu s > 2 thì ts = ts−1 + 2\(\lambda\). Theo Thuộc tính (b), với tất cả các bước s′ < s và tất cả các xác minh j \(\in\)HSV r,s′, \(\beta\)r,s tôi = \(\alpha\)r,s tôi + ts \(\geq\)T r + ts = T r + ts−1 + 2\(\lambda\) \(\geq\)T r + ts′ + 2\(\lambda\) = T r + \(\lambda\) + ts′ + \(\lambda\) \(\geq\) \(\beta\)r,s′ j + \(\lambda\). Vì mỗi người xác minh j \(\in\)HSV r,s′ gửi tin nhắn của mình vào thời điểm \(\beta\)r,s′ j và thông điệp đến được với tất cả những người trung thực người dùng trong tối đa \(\lambda\) lần, theo thời gian \(\beta\)r,s tôi người chơi tôi đã nhận được tất cả tin nhắn được gửi bởi tất cả những người xác minh trung thực trong HSV r,s′ với mọi s′ < s. Như vậy tính chất (c) đúng. Cuối cùng, chúng ta chứng minh Tính chất (d). Lưu ý rằng các bộ xác minh j \(\in\)SV r,s−1 ký nhiều nhất hai thứ trong Bước s −1 sử dụng các khóa bí mật tạm thời của chúng: giá trị vj có cùng độ dài với đầu ra của Hàm hash và cũng có một chút bj \(\in\){0, 1} nếu s −1 \(\geq\)4. Đó là lý do tại sao trong phát biểu của bổ đề chúng tôi yêu cầu v và v′ có cùng độ dài: nhiều người xác minh có thể đã ký cả hai giá trị hash v và một bit b, do đó cả hai đều vượt qua ngưỡng 2/3. Vì mục đích mâu thuẫn, giả sử tồn tại các yếu tố xác minh mong muốn i, i′ và các giá trị v, v′. Lưu ý rằng một số trình xác minh độc hại trong MSV r,s−1 có thể đã ký cả v và v′, nhưng mỗi trình xác minh trung thực người xác minh trong HSV r,s−1 đã ký nhiều nhất một trong số chúng. Theo tính chất (c), cả i và i′ đều nhận được tất cả tin nhắn được gửi bởi tất cả người xác minh trung thực trong HSV r,s−1. Giả sử HSV r,s−1(v) là tập hợp các người xác minh (r, s −1) trung thực đã ký v, MSV r,s−1 tôi bộ của các trình xác minh độc hại (r, s −1) mà tôi đã nhận được tin nhắn hợp lệ và MSV r,s−1 tôi (v) cái tập con của MSV r,s−1 tôi từ người mà tôi đã nhận được tin nhắn hợp lệ ký v. Theo yêu cầu đối với tôi và v, chúng ta có tỷ lệ \(\triangleq\)|HSV r,s−1(v)| + |MSV r,s−1 tôi (v)| |HSV r,s−1| + |MSV r,s−1 tôi |
2 3. (1) Đầu tiên chúng tôi trình bày |MSV r,s−1 tôi (v)| \(\leq\)|HSV r,s−1(v)|. (2) Giả sử ngược lại, bằng mối quan hệ giữa các tham số, với xác suất áp đảo |HSV r,s−1| > 2|MSV r,s−1| \(\geq\)2|MSV r,s−1 tôi |, do đó tỷ lệ < |HSV r,s−1(v)| + |MSV r,s−1 tôi (v)| 3|MSV r,s−1 tôi | < 2|MSV r,s−1 tôi (v)| 3|MSV r,s−1 tôi | 2 3, mâu thuẫn với Bất bình đẳng 1. Tiếp theo, theo Bất đẳng thức 1 ta có 2|HSV r,s−1| + 2|MSV r,s−1 tôi | < 3|HSV r,s−1(v)| + 3|MSV r,s−1 tôi (v)| \(\leq\) 3|HSV r,s−1(v)| + 2|MSV r,s−1 tôi | + |MSV r,s−1 tôi (v)|. Kết hợp với Bất đẳng thức 2, 2|HSV r,s−1| < 3|HSV r,s−1(v)| + |MSV r,s−1 tôi (v)| \(\leq\)4|HSV r,s−1(v)|, ngụ ý |HSV r,s−1(v)| > 1 2|HSV r,s−1|.Tương tự, theo yêu cầu của i′ và v′, ta có |HSV r,s−1(v′)| > 1 2|HSV r,s−1|. Vì người xác minh trung thực j \(\in\)HSV r,s−1 phá hủy khóa bí mật phù du skr,s−1 của mình j trước khi nhân giống thông điệp của mình, Đối thủ không thể giả mạo chữ ký của j cho một giá trị mà j không ký, sau khi biết rằng j là một người xác minh. Như vậy, hai bất đẳng thức trên suy ra |HSV r,s−1| \(\geq\)|HSV r,s−1(v)| + |HSV r,s−1(v′)| > |HSV r,s−1|, mâu thuẫn. Theo đó, i, i′, v, v′ mong muốn không tồn tại và Tính chất (d) giữ nguyên. ■ 5,7 Bổ đề đầy đủ Bổ đề 5.2. [Bổ đề đầy đủ, được trình bày lại] Giả sử Thuộc tính 1–3 đúng cho vòng r−1, khi người lãnh đạo \(\ell\)r là người trung thực, có khả năng áp đảo, • Tất cả người dùng trung thực đều đồng ý về cùng một khối Br, được tạo bởi \(\ell\)r và chứa giá trị tối đa khoản thanh toán mà \(\ell\)r nhận được vào thời điểm \(\alpha\)r,1 \(\ell\)r \(\in\)Ir; và • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ và tất cả người dùng trung thực đều biết Br trong khoảng thời gian Ir+1. Bằng chứng. Theo giả thuyết quy nạp và Bổ đề 5.5, với mỗi bước s và kiểm định i \(\in\)HSV r,s, \(\alpha\)r,s tôi \(\in\)Ir. Dưới đây chúng tôi phân tích giao thức từng bước. Bước 1. Theo định nghĩa, mọi người xác minh trung thực i \(\in\)HSV r,1 đều truyền bá thông điệp mong muốn mr,1 tôi tại thời gian \(\beta\)r,1 tôi = \(\alpha\)r,1 tôi, ông ở đâu,1 tôi = (Anh i , esigi(H(Br i )), \(\sigma\)r,1 tôi ), anh i = (r, TRẢ r i , SIGi(Qr−1), H(Br−1)), và TRẢ TIỀN r tôi là khoản thanh toán tối đa trong số tất cả các khoản thanh toán mà tôi đã thấy vào thời điểm \(\alpha\)r,1 tôi . Bước 2. Tự ý xác định người xác minh trung thực i \(\in\)HSV r,2. Theo bổ đề 5.5, khi người chơi i hoàn thành chờ đợi tại thời điểm \(\beta\)r,2 tôi = \(\alpha\)r,2 tôi + t2, anh ta đã nhận được tất cả tin nhắn được gửi bởi người xác minh trong HSV r,1, bao gồm ông, 1 \(\ell\)r . Theo định nghĩa của \(\ell\)r, không tồn tại người chơi nào khác trong PKr−k có thông tin xác thực hash giá trị nhỏ hơn H(\(\sigma\)r,1 \(\ell\)r ). Tất nhiên, Kẻ thù có thể làm hỏng \(\ell\)r sau khi thấy H(\(\sigma\)r,1 \(\ell\)r ) rất nhỏ, nhưng vào thời điểm đó người chơi \(\ell\)r đã phá hủy chìa khóa phù du của mình và tin nhắn mr,1 \(\ell\)r đã được tuyên truyền. Do đó, người xác minh tôi đặt người lãnh đạo của chính mình làm người chơi \(\ell\)r. Theo đó, tại thời điểm \(\beta\)r,2 tôi, người xác minh tôi tuyên truyền ông,2 tôi = (ESIGi(v′ i), \(\sigma\)r,2 i ), trong đó v′ tôi = H(Br \(\ell\)r). Khi r = 0, sự khác biệt duy nhất đó có phải là \(\beta\)r,2 không tôi = t2 thay vì nằm trong một phạm vi. Những điều tương tự có thể được nói cho các bước trong tương lai và chúng tôi sẽ không nhấn mạnh chúng nữa. Bước 3. Tự ý xác định người xác minh trung thực i \(\in\)HSV r,3. Theo bổ đề 5.5, khi người chơi i hoàn thành chờ đợi tại thời điểm \(\beta\)r,3 tôi = \(\alpha\)r,3 tôi + t3, anh ta đã nhận được tất cả tin nhắn được gửi bởi người xác minh trong HSV r,2. Bằng mối quan hệ giữa các tham số, với xác suất áp đảo |HSV r,2| > 2|MSV r,2|. Hơn nữa, không có người xác minh trung thực nào sẽ ký các thông điệp mâu thuẫn và Đối thủ không thể giả mạo chữ ký của người xác minh trung thực sau khi người này đã hủy chữ ký tương ứng của mình khóa bí mật phù du. Do đó, hơn 2/3 trong số tất cả các tin nhắn (r, 2) hợp lệ mà tôi nhận được là từ người xác minh trung thực và có dạng ông,2 j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,2 j ), không có gì mâu thuẫn. Theo đó, tại thời điểm \(\beta\)r,3 tôi người chơi tôi tuyên truyền ông,3 tôi = (ESIGi(v′), \(\sigma\)r,3 i ), trong đó v′ = H(Br \(\ell\)r).Bước 4. Tự ý xác định người xác minh trung thực i \(\in\)HSV r,4. Theo bổ đề 5.5, người chơi i đã nhận được tất cả tin nhắn được gửi bởi người xác minh trong HSV r,3 khi anh ta đợi xong tại thời điểm \(\beta\)r,4 tôi = \(\alpha\)r,4 tôi +t4. Tương tự như Bước 3, hơn 2/3 trong số tất cả các tin nhắn (r, 3) hợp lệ mà tôi nhận được là từ những người xác minh trung thực và có dạng ông,3 j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,3 j ). Theo đó, người chơi i đặt vi = H(Br \(\ell\)r), gi = 2 và bi = 0. Tại thời điểm \(\beta\)r,4 tôi = \(\alpha\)r,4 tôi +t4 anh ấy tuyên truyền ông, 4 tôi = (ESIGi(0), ESIGi(H(Br \(\ell\)r)), \(\sigma\)r,4 tôi ). Bước 5. Tự ý xác định người xác minh trung thực i \(\in\)HSV r,5. Theo Bổ đề 5.5, người chơi tôi sẽ có đã nhận được tất cả tin nhắn do người xác minh gửi trong HSV r,4 nếu anh ta đã đợi đến thời điểm \(\alpha\)r,5 tôi + t5. Lưu ý rằng |HSV r,4| \(\geq\)tH.19 Cũng lưu ý rằng tất cả người xác minh trong HSV r,4 đều đã ký cho H(Br \(\ell\)r). Như |MSV r,4| < tH, không tồn tại v′ ̸= H(Br \(\ell\)r) có thể được ký bởi tH người xác minh trong SV r,4 (người này nhất thiết phải có ác ý), vì vậy người chơi i không dừng lại trước khi anh ta có đã nhận được tin nhắn hợp lệ thưa ông,4 j = (ESIGj(0), ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,4 j ). Gọi T là thời điểm sự kiện sau xảy ra. Một số tin nhắn đó có thể đến từ những người chơi độc hại, nhưng vì |MSV r,4| < tH, ít nhất một trong số đó là từ người xác minh trung thực trong HSV r,4 và được gửi sau thời gian Tr +t4. Theo đó, T \(\geq\)T r +t4 > T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\)r +Λ, và đến lúc T người chơi tôi cũng đã nhận được tin nhắn thưa ông, 1 \(\ell\)r . Bằng cách xây dựng giao thức, người chơi i dừng lại ở thời điểm \(\beta\)r,5 tôi = T không có tuyên truyền bất cứ điều gì; đặt Br = Br \(\ell\)r; và đặt CERT r của riêng mình thành tập hợp các thông báo (r, 4) cho 0 và H(Br \(\ell\)r) mà anh ấy đã nhận được. Bước s > 5. Tương tự, với mọi bước s > 5 và bất kỳ trình xác minh i \(\in\)HSV r,s nào, trình phát i sẽ có đã nhận được tất cả tin nhắn do người xác minh gửi trong HSV r,4 nếu anh ta đã đợi đến thời điểm \(\alpha\)r,s tôi +ts. Bởi phân tích tương tự, trình phát i dừng mà không truyền bất cứ thứ gì, đặt Br = Br \(\ell\)r (và tự thiết lập CERT r đúng cách). Tất nhiên, trình xác minh độc hại có thể không dừng lại và có thể truyền bá một cách tùy tiện tin nhắn, nhưng vì |MSV r,s| < tH, bằng quy nạp, không có v′ nào khác có thể được ký bởi người xác minh tH ở bất kỳ bước 4 \(\leq\)s′< s nào, do đó người xác minh trung thực chỉ dừng lại vì họ đã nhận được tH hợp lệ (r, 4)-tin nhắn cho 0 và H(Br \(\ell\)r). Tái thiết khối Round-r. Phân tích của Bước 5 áp dụng cho một sự trung thực chung người dùng tôi gần như không có bất kỳ thay đổi nào. Thật vậy, người chơi i bắt đầu vòng r của mình trong khoảng thời gian Ir và sẽ chỉ dừng ở thời điểm T khi anh ta nhận được tH tin nhắn (r, 4)-hợp lệ cho H(Br \(\ell\)r). Một lần nữa bởi vì ít nhất một trong những tin nhắn đó là từ những người xác minh trung thực và được gửi sau thời gian Tr + t4, người chơi i có cũng đã nhận được thưa ông,1 \(\ell\)r theo thời gian T. Do đó anh ta đặt Br = Br \(\ell\)r với CERT r thích hợp. Điều còn lại là chỉ ra rằng tất cả người dùng trung thực đều hoàn thành vòng r của họ trong khoảng thời gian Ir+1. Bằng phân tích ở Bước 5, mọi người xác minh trung thực i \(\in\)HSV r,5 đều biết Br trên hoặc trước \(\alpha\)r,5 tôi +t5 \(\leq\) T r + \(\lambda\) + t5 = T r + 8\(\lambda\) + Λ. Vì T r+1 là thời điểm người dùng trung thực đầu tiên biết Br nên ta có T r+1 \(\leq\)T r + 8\(\lambda\) + Λ như mong muốn. Hơn nữa, khi người chơi biết Br, anh ta đã giúp truyền bá các thông điệp trong CERT của anh ấy r. Lưu ý rằng tất cả những tin nhắn đó sẽ được nhận bởi tất cả người dùng trung thực trong thời gian \(\lambda\), ngay cả khi 19Nói đúng ra, điều này xảy ra với xác suất rất cao nhưng không hẳn là quá lớn. Tuy nhiên, điều này xác suất ảnh hưởng một chút đến thời gian chạy của giao thức nhưng không ảnh hưởng đến tính đúng đắn của nó. Khi h = 80% thì |HSV r,4| \(\geq\)tH với xác suất 1 −10−8. Nếu sự kiện này không xảy ra thì giao thức sẽ tiếp tục cho sự kiện khác 3 bước. Vì xác suất điều này không xảy ra trong hai bước là không đáng kể nên giao thức sẽ kết thúc ở Bước 8. Trong thì số bước cần thiết là gần như 5.player ir là người chơi đầu tiên tuyên truyền chúng. Hơn nữa, theo phân tích ở trên ta có T r+1 \(\geq\)T r + t4 \(\geq\) \(\beta\)r,1 \(\ell\)r + Λ, như vậy tất cả người dùng trung thực đều đã nhận được mr,1 \(\ell\)r theo thời gian T r+1 + \(\lambda\). Theo đó, tất cả người dùng trung thực đều biết Br trong khoảng thời gian Ir+1 = [T r+1, T r+1 + \(\lambda\)]. Cuối cùng, với r = 0 chúng ta thực sự có T 1 \(\leq\)t4 + \(\lambda\) = 6\(\lambda\) + Λ. Kết hợp mọi thứ lại với nhau, Bổ đề 5.2 đúng. ■ 5,8 Bổ đề về tính đúng đắn Bổ đề 5.3. [Bổ đề đúng đắn, được trình bày lại] Giả sử các Thuộc tính 1–3 đúng cho vòng r −1, khi người dẫn đầu \(\ell\)r là độc hại, với xác suất áp đảo, tất cả người dùng trung thực đều đồng ý trên cùng một khối Br, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ và tất cả người dùng trung thực đều biết Br trong khoảng thời gian Ir+1. Bằng chứng. Chúng tôi xem xét riêng biệt hai phần của giao thức, GC và BBA⋆. GC. Theo giả thuyết quy nạp và theo Bổ đề 5.5, với mọi bước s \(\in\){2, 3, 4} và mọi xác minh i \(\in\)HSV r,s, khi người chơi i hành động tại thời điểm \(\beta\)r,s tôi = \(\alpha\)r,s tôi + ts, anh ấy đã nhận được tất cả tin nhắn gửi đi bởi tất cả những người xác minh trung thực ở bước s′ < s. Chúng tôi phân biệt hai trường hợp có thể xảy ra cho bước 4. Trường hợp 1. Không có người kiểm định i \(\in\)HSV r,4 bộ gi = 2. Trong trường hợp này, theo định nghĩa bi = 1 cho tất cả các kiểm định i \(\in\)HSV r,4. Tức là họ bắt đầu bằng một thỏa thuận về 1 trong giao thức BA nhị phân. Họ có thể không có thỏa thuận về vi của họ, nhưng điều này không quan trọng như chúng ta sẽ thấy trong BA nhị phân. Trường hợp 2. Tồn tại bộ kiểm định ˆi \(\in\)HSV r,4 sao cho gˆi = 2. Trong trường hợp này, chúng tôi chỉ ra rằng (1) gi \(\geq\)1 với mọi i \(\in\)HSV r,4, (2) tồn tại một giá trị v′ sao cho vi = v′ với mọi i \(\in\)HSV r,4, và (3) tồn tại một tin nhắn hợp lệ thưa ông,1 \(\ell\) từ một số người xác minh \(\ell\) \(\in\)SV r,1 sao cho v′ = H(Br \(\ell\)). Thật vậy, vì người chơi ˆi trung thực và đặt gˆi = 2, nên hơn 2/3 tổng số tin nhắn hợp lệ mr,3 j anh ta đã nhận được với cùng giá trị v′ ̸= \(\bot\), và anh ta đã đặt vˆi = v′. Theo Tính chất (d) trong Bổ đề 5.5, đối với bất kỳ trình xác minh (r, 4) i trung thực nào khác, nó không thể hơn thế nữa hơn 2/3 số tin nhắn hợp lệ ông,3 j mà tôi′ đã nhận được có cùng giá trị v′′ ̸= v′. Theo đó, nếu tôi đặt gi = 2 thì chắc chắn tôi cũng đã thấy > 2/3 đa số cho v′ và đặt vi = v', như mong muốn. Bây giờ hãy xem xét một trình xác minh tùy ý i \(\in\)HSV r,4 với gi < 2. Tương tự như phân tích Thuộc tính (d) trong Bổ đề 5.5, vì người chơi ˆi đã thấy > 2/3 đa số cho v′, lớn hơn 1 2|HSV r,3| trung thực (r, 3)-người xác minh đã ký v′. Bởi vì tôi đã nhận được tất cả tin nhắn bởi những người xác minh trung thực (r, 3) bởi thời gian \(\beta\)r,4 tôi = \(\alpha\)r,4 tôi + t4, cụ thể anh ấy đã nhận được nhiều hơn 1 2|HSV r,3| tin nhắn từ họ cho v′. Vì |HSV r,3| > 2|MSV r,3|, tôi thấy > 1/3 đa số cho v′. Theo đó, người chơi tôi đặt gi = 1 và Thuộc tính (1) giữ nguyên. Người chơi tôi có nhất thiết phải đặt vi = v′ không? Giả sử tồn tại một giá trị khác v′′ ̸= \(\bot\) sao cho người chơi tôi cũng đã thấy > 1/3 đa số cho v′′. Một số tin nhắn đó có thể đến từ phần mềm độc hại những người xác minh, nhưng ít nhất một trong số họ là từ một người xác minh trung thực nào đó j \(\in\)HSV r,3: thực sự, bởi vì |HSV r,3| > 2|MSV r,3| và tôi đã nhận được tất cả tin nhắn từ HSV r,3, tập hợp các mã độc những người xác minh mà tôi đã nhận được tin nhắn (r, 3) hợp lệ chiếm < 1/3 tổng số tin nhắn hợp lệ những tin nhắn anh đã nhận được.Theo định nghĩa, người chơi j phải nhìn thấy > 2/3 đa số cho v′′ trong số tất cả các tin nhắn (r, 2) hợp lệ anh ấy đã nhận được. Tuy nhiên, chúng ta đã biết rằng một số người xác minh (r, 3) trung thực khác đã thấy 2/3 đa số ủng hộ v′ (vì họ đã ký v′). Theo tính chất (d) của Bổ đề 5.5, điều này không thể xảy ra và giá trị v′′ như vậy không tồn tại. Vì vậy người chơi i phải đặt vi = v′ như mong muốn, và Tài sản (2) giữ nguyên. Cuối cùng, vì một số người xác minh (r, 3) trung thực đã thấy > 2/3 đa số cho v′, một số (thực ra, hơn một nửa trong số) người xác minh trung thực (r, 2) đã ký ủng hộ v′ và truyền bá thông điệp của họ. Bằng cách xây dựng giao thức, những người xác minh (r, 2) trung thực đó phải nhận được một nhắn tin cho anh 1 \(\ell\) từ người chơi nào đó \(\ell\) \(\in\)SV r,1 với v′ = H(Br \(\ell\)), do đó Tính chất (3) đúng. BBA⋆. Chúng ta lại phân biệt hai trường hợp. Trường hợp 1. Tất cả các chứng từ i \(\in\)HSV r,4 đều có bi = 1. Điều này xảy ra sau Trường hợp 1 của GC. Như |MSV r,4| < tH, trong trường hợp này không có trình xác minh nào trong SV r,5 có thể thu thập hoặc tạo ra các thông báo hợp lệ (r, 4) cho bit 0. Do đó, không có trình xác minh trung thực nào trong HSV r,5 sẽ dừng lại vì anh ta biết khối không trống Br. Hơn nữa, mặc dù có ít nhất các thông báo tH hợp lệ (r, 4) cho bit 1, nhưng s′ = 5 không thỏa mãn s′ −2 ≡1 mod 3, do đó không có người kiểm tra trung thực nào trong HSV r,5 sẽ dừng lại vì anh ta biết Br = Br ừ. Thay vào đó, mọi bộ xác minh i \(\in\)HSV r,5 đều hoạt động tại thời điểm \(\beta\)r,5 tôi = \(\alpha\)r,5 tôi + t5, khi anh ta đã nhận được tất cả thông điệp được gửi bởi HSV r,4 theo Bổ đề 5.5. Như vậy người chơi tôi đã thấy > 2/3 đa số cho 1 và đặt bi = 1. Ở Bước 6 là bước Cố định bằng tiền xu thành 1, mặc dù s′ = 5 thỏa mãn s′ −2 ≡0 mod 3, vẫn có không tồn tại các thông báo hợp lệ (r, 4) cho bit 0, do đó không có trình xác minh nào trong HSV r,6 sẽ dừng vì anh ta biết một khối không trống Br. Tuy nhiên, với s′ = 6, s′ −2 ≡1 mod 3 và tồn tại |HSV r,5| \(\geq\)tH các thông báo hợp lệ (r, 5) cho bit 1 từ HSV r,5. Với mọi bộ xác minh i \(\in\)HSV r,6, theo Bổ đề 5.5, vào hoặc trước thời điểm \(\alpha\)r,6 tôi + máy nghe nhạc t6 tôi đã nhận được tất cả tin nhắn từ HSV r,5, do đó tôi dừng lại mà không truyền bá bất cứ điều gì và đặt Br = Br ừ. CERT r của anh ta là tập hợp các thông báo-(r, 5) hợp lệ mr,5 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j ) được anh ta nhận được khi anh ta dừng lại. Tiếp theo, hãy để người chơi i là người xác minh trung thực ở bước s > 6 hoặc người dùng chung chung trung thực (tức là người không xác minh). Tương tự như chứng minh Bổ đề 5.2, người chơi i đặt Br = Br Ă và tự đặt ra CERT r là tập hợp các thông báo-(r, 5) hợp lệ mr,5 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j ) anh ấy có đã nhận được. Cuối cùng, tương tự như Bổ đề 5.2, Tr+1 \(\leq\) phút i\(\in\)HSV r,6 \(\alpha\)r,6 tôi + t6 \(\leq\)T r + \(\lambda\) + t6 = T r + 10\(\lambda\) + Λ, và tất cả người dùng trung thực đều biết Br trong khoảng thời gian Ir+1, bởi vì người dùng trung thực đầu tiên i là người biết Br đã giúp truyền bá các thông điệp-(r, 5) trong CERT r của anh ấy. Trường hợp 2. Tồn tại bộ kiểm định ˆi \(\in\)HSV r,4 với bˆi = 0. Điều này xảy ra sau Trường hợp 2 của GC và là trường hợp phức tạp hơn. Qua phân tích của GC, trong trường hợp này tồn tại một tin nhắn hợp lệ ông,1 \(\ell\) sao cho vi = H(Br \(\ell\)) với mọi i \(\in\)HSV r,4. Lưu ý rằng những người xác minh trong HSV r,4 có thể không có thỏa thuận về bi của họ. Với mọi bước s \(\in\){5, . . . , m + 3} và người xác minh i \(\in\)HSV r,s, bởi người chơi Lemma 5.5 tôi sẽ có đã nhận được tất cả tin nhắn được gửi bởi tất cả người xác minh trung thực trong HSV r,4 \(\cup\) \(\cdots\) \(\cup\)HSV r,s−1 nếu anh ta đã đợi trong thời gian ts.Bây giờ chúng ta xét sự kiện E sau: tồn tại một bước s∗ \(\geq\)5 sao cho lần đầu tiên thời gian trong BA nhị phân, một số người chơi i∗\(\in\)SV r,s∗(dù có ác tâm hay trung thực) nên dừng lại mà không tuyên truyền bất cứ điều gì. Chúng tôi sử dụng “nên dừng” để nhấn mạnh thực tế rằng, nếu người chơi i∗ là có ác ý thì anh ta có thể giả vờ rằng mình không nên dừng lại theo giao thức và truyền bá thông điệp về sự lựa chọn của Đối thủ. Hơn nữa, bằng cách xây dựng giao thức, hoặc (E.a) i∗có thể thu thập hoặc tạo ra ít nhất tH tin nhắn hợp lệ mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ) với cùng v và s′, với 5 ∗s′ ∗và s′ −2 ≡0 mod 3; hoặc (E.b) i∗có thể thu thập hoặc tạo ra ít nhất tH tin nhắn hợp lệ mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ) với cùng s′, với 6 ∗s′ ∗và s′ −2 ≡1 mod 3. Bởi vì các thông báo-(r,s′-1) trung thực được nhận bởi tất cả những người xác minh-(r, s′) trung thực trước khi chúng đã hoàn tất việc chờ đợi ở Bước s' và bởi vì Đối thủ nhận được mọi thứ không muộn hơn người dùng trung thực, không mất tính tổng quát, ta có s′ = s∗và người chơi i∗là độc hại. Lưu ý rằng chúng tôi không yêu cầu giá trị v trong E.a phải là hash của khối hợp lệ: vì nó sẽ trở nên rõ ràng trong phân tích, v = H(Br \(\ell\)) trong sự kiện phụ này. Dưới đây, trước tiên chúng tôi phân tích Trường hợp 2 theo sự kiện E và sau đó chỉ ra rằng giá trị của s∗ về cơ bản là được phân phối tương ứng cho Lr (do đó sự kiện E xảy ra trước Bước m + 3 với áp đảo xác suất cho trước các mối quan hệ của các tham số). Để bắt đầu, với bất kỳ bước 5 \(\leq\)s < s∗, mọi người xác minh trung thực i \(\in\)HSV r,s đã đợi thời gian ts và đặt vi là đa số phiếu của các tin nhắn (r, s−1) hợp lệ mà anh ta đã nhận được. Vì người chơi nên tôi đã nhận được tất cả các tin nhắn (r, s−1) trung thực theo Bổ đề 5.5, vì tất cả những người xác minh trung thực trong HSV r,4 đều có ký hiệu H(Br \(\ell\)) trường hợp sau 2 của GC, và vì |HSV r,s−1| > 2|MSV r,s−1| với mỗi s, bằng quy nạp chúng ta có người chơi i đã thiết lập vi = H(Br \(\ell\)). Điều tương tự cũng xảy ra với mọi người xác minh trung thực i \(\in\)HSV r,s∗người không dừng lại mà không lan truyền bất cứ điều gì. Bây giờ chúng ta xem xét Bước s∗và phân biệt bốn trường hợp con. Trường hợp 2.1.a. Sự kiện E.a xảy ra và tồn tại người xác minh trung thực i′ \(\in\)HSV r,s∗ai sẽ cũng dừng lại mà không tuyên truyền bất cứ điều gì. Trong trường hợp này, chúng ta có s∗−2 ≡0 mod 3 và Bước s∗là bước Coin-Fixed-To-0. Bởi định nghĩa, người chơi i' đã nhận được ít nhất tH thông báo hợp lệ (r, s∗−1) có dạng (ESIGj(0), ESIGj(v), \(\sigma\)r,s∗−1 j ). Vì tất cả người xác minh trong HSV r,s∗−1 đều có chữ ký H(Br \(\ell\)) và |MSV r,s∗−1| < tH, ta có v = H(Br \(\ell\)). Vì ít nhất tH −|MSV r,s∗−1| \(\geq\)1 trong số các tin nhắn (r, s∗−1) mà i′ nhận được cho 0 và v được gửi bởi người xác minh trong HSV r,s∗−1 sau thời gian T r +ts∗−1 \(\geq\)T r +t4 \(\geq\)T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\) +Λ, người chơi tôi′ đã nhận được ông,1 \(\ell\) vào thời điểm anh ta nhận được các tin nhắn (r, s∗−1) đó. Như vậy người chơi tôi’ dừng lại mà không truyền bá bất cứ điều gì; đặt Br = Br \(\ell\); và đặt CERT r của riêng mình thành tập hợp các thông báo (r, s∗−1) hợp lệ cho 0 và v mà anh ta đã nhận được. Tiếp theo, chúng tôi chỉ ra rằng, mọi trình xác minh i \(\in\)HSV r,s∗ đều đã dừng với Br = Br \(\ell\), hoặc đã đặt bi = 0 và được truyền (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s tôi ). Thật vậy, vì Bước s∗ đây là lần đầu tiên một số người xác minh dừng lại mà không truyền bá bất cứ điều gì, không có tồn tại một bước s′ < s∗ với s′ −2 ≡1 mod 3 sao cho tH (r, s′ −1)-người xác minh có dấu 1. Theo đó, không có trình xác minh nào trong HSV r,s∗dừng với Br = Br ừ.Hơn nữa, như tất cả những người xác minh trung thực ở bước {4, 5, . . . , s∗−1} đã ký H(Br \(\ell\)), có không tồn tại bước s′ \(\leq\)s∗với s′ −2 ≡0 mod 3 sao cho tH (r, s′ −1)-người xác minh đã ký một số v′′ ̸= H(Br \(\ell\)) —thực sự, |MSV r,s′−1| < th. Theo đó, không có trình xác minh nào trong HSV r,s∗stops với Br ̸= Br ǫ và Br ̸= Br \(\ell\). Nghĩa là, nếu người chơi i \(\in\)HSV r,s∗ đã dừng mà không truyền bá bất cứ thứ gì thì anh ta phải đặt Br = Br \(\ell\). Nếu người chơi i \(\in\)HSV r,s∗đã đợi thời gian ts∗và truyền một tin nhắn vào thời điểm đó \(\beta\)r,s∗ tôi = \(\alpha\)r,s∗ tôi + ts∗, anh ta đã nhận được tất cả tin nhắn từ HSV r,s∗−1, bao gồm ít nhất tH −|MSV r,s∗−1| của chúng cho 0 và v. Nếu tôi thấy > 2/3 đa số cho 1 thì anh ấy đã thấy hơn 2(tH −|MSV r,s∗−1|) tin nhắn hợp lệ (r, s∗−1) cho 1, với nhiều hơn hơn 2tH −3|MSV r,s∗−1| trong số chúng từ những người xác minh-(r, s∗−1) trung thực. Tuy nhiên, điều này hàm ý |HSV r,s∗−1| \(\geq\)tH−|MSV r,s∗−1|+2tH−3|MSV r,s∗−1| > 2n−4|MSV r,s∗−1|, mâu thuẫn sự thật là |HSV r,s∗−1| + 4|MSV r,s∗−1| < 2n, xuất phát từ mối quan hệ của các tham số. Theo đó, tôi không thấy > 2/3 đa số cho 1 và anh ta đặt bi = 0 vì Bước s∗ là bước Coin-Fixed-To-0. Như chúng tôi có đã thấy, vi = H(Br \(\ell\)). Do đó tôi truyền bá (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s i ) như chúng tôi muốn hiển thị. Đối với Bước s∗+ 1, vì người chơi i′ đã giúp truyền bá các thông điệp trong CERT r của mình vào hoặc trước thời điểm \(\alpha\)r,s∗ tôi′ + ts∗, tất cả người xác minh trung thực trong HSV r,s∗+1 đều đã nhận được ít nhất tH các thông báo hợp lệ (r, s∗−1) cho bit 0 và giá trị H(Br \(\ell\)) vào hoặc trước khi chúng hoàn thành đang chờ đợi. Hơn nữa, trình xác minh trong HSV r,s∗+1 sẽ không dừng trước khi nhận được (r, s∗−1)- bởi vì không tồn tại bất kỳ thông báo tH hợp lệ nào khác cho bit 1 với s′ −2 ≡1 mod 3 và 6 \(\leq\)s′ \(\leq\)s∗+ 1, theo định nghĩa của Bước s∗. Đặc biệt, Bước Bản thân s∗+ 1 là bước Coin-Fixed-To-1, nhưng không có người xác minh trung thực nào trong HSV r,s∗đã được phổ biến một tin nhắn cho 1 và |MSV r,s∗| < th. Do đó, tất cả các bộ xác minh trung thực trong HSV r,s∗+1 đều dừng mà không truyền bá bất cứ thứ gì và đặt Br = anh \(\ell\): như trước họ đã nhận được mr,1 \(\ell\) trước khi họ nhận được tin nhắn (r, s∗−1) mong muốn.20 Điều tương tự cũng có thể xảy ra với tất cả những người xác minh trung thực trong các bước tiếp theo và tất cả những người dùng trung thực nói chung. Đặc biệt họ đều biết Br = Br \(\ell\)trong khoảng thời gian Ir+1 và T r+1 \(\lambda\)r,s∗ tôi′ + ts∗<T r + \(\lambda\) + ts∗. Trường hợp 2.1.b. Sự kiện E.b xảy ra và tồn tại người xác minh trung thực i′ \(\in\)HSV r,s∗ai sẽ cũng dừng lại mà không tuyên truyền bất cứ điều gì. Trong trường hợp này, chúng ta có s∗−2 ≡1 mod 3 và Bước s∗là bước Coin-Fixed-To-1. Việc phân tích tương tự như Trường hợp 2.1.a và có nhiều chi tiết bị lược bỏ. 20Nếu \(\ell\)có ác ý, anh ta có thể cử ông,1 \(\ell\) muộn, hy vọng rằng một số người dùng/người xác minh trung thực chưa nhận được mr,1 \(\ell\) chưa khi họ nhận được chứng chỉ mong muốn cho nó. Tuy nhiên, do người kiểm tra ˆi \(\in\)HSV r,4 đã đặt bˆi = 0 và vˆi = H(Br \(\ell\)), như trước khi chúng ta có hơn một nửa số người xác minh trung thực i \(\in\)HSV r,3 đã đặt vi = H(Br \(\ell\)). Điều này càng hàm ý thêm hơn một nửa số người xác minh trung thực i \(\in\)HSV r,2 đã đặt vi = H(Br \(\ell\)), và những người xác minh (r, 2) đều đã nhận được mr,1 \(\ell\). Như Kẻ thù không thể phân biệt người xác minh với người không xác minh, anh ta không thể nhắm mục tiêu truyền bá mr,1 \(\ell\) tới (r, 2)-người xác minh mà không để những người không xác minh nhìn thấy nó. Trên thực tế, với xác suất cao, hơn một nửa (hoặc một phần không đổi tốt) trong số tất cả người dùng trung thực đã thấy mr,1 \(\ell\) sau khi chờ đợi t2 từ đầu vòng r của chính họ. Từ đây trở đi, thời gian \(\lambda\)′ cần thiết cho ông,1 \(\ell\) để tiếp cận những người dùng trung thực còn lại nhỏ hơn nhiều so với Λ và để đơn giản, chúng tôi không viết nó ra trong phân tích. Nếu 4\(\lambda\) \(\geq\) \(\lambda\)′ thì quá trình phân tích sẽ được thực hiện mà không có bất kỳ thay đổi nào: đến cuối Bước 4, tất cả người dùng trung thực sẽ nhận được mr,1 \(\ell\). Nếu kích thước của khối trở nên rất lớn và 4\(\lambda\) < \(\lambda\)′ thì ở Bước 3 và 4, giao thức có thể yêu cầu mỗi người xác minh đợi \(\lambda\)′/2 thay vì 2\(\lambda\) và phân tích tiếp tục được giữ nguyên.Như trước đây, người chơi i′ phải nhận được ít nhất tH thông báo hợp lệ (r, s∗−1) có dạng (ESIGj(1), ESIGj(vj), \(\sigma\)r,s∗−1 j ). Một lần nữa theo định nghĩa của s∗, không tồn tại bước 5 \(\leq\)s′ < s∗với s′ −2 ≡0 mod 3, trong đó ít nhất tH (r, s′ −1)-người xác minh có dấu 0 và tương tự v. Do đó, người chơi i′ dừng lại mà không truyền bá bất cứ điều gì; đặt Br = Br Ă; và bộ CERT r của chính anh ta là tập hợp các thông báo (r, s∗−1) hợp lệ cho bit 1 mà anh ta đã nhận được. Ngoài ra, bất kỳ trình xác minh nào khác i \(\in\)HSV r,s∗ đều đã dừng với Br = Br ă , hoặc đã đặt bi = 1 và được truyền bá (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ tôi ). Vì người chơi tôi′ đã giúp truyền bá các tin nhắn (r, s∗−1) trong CERT của anh ấy r theo thời gian \(\alpha\)r,s∗ tôi′ + ts∗, một lần nữa tất cả những người xác minh trung thực trong HSV r,s∗+1 dừng mà không lan truyền bất cứ thứ gì và đặt Br = Br ừ . Tương tự, tất cả đều trung thực người dùng biết Br = Br ǫ trong khoảng thời gian Ir+1 và T r+1 \(\lambda\)r,s∗ tôi′ + ts∗
2/3 đa số đối với bit 1, một lần nữa vì |HSV r,s∗−1| + 4|MSV r,s∗−1| < 2n. Do đó, mọi người xác minh trung thực i \(\in\)HSV r,s∗tập bi = 0, vi = H(Br \(\ell\)) theo đa số phiếu và tuyên truyền mr,s∗ tôi = (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s∗ tôi ) tại thời điểm \(\alpha\)r,s∗ tôi + ts∗. Bây giờ hãy xem xét những người xác minh trung thực ở Bước s∗+ 1 (là bước Coin-Fixed-To-1). Nếu Đối thủ thực sự gửi tin nhắn trong CERT r i∗với một số người trong số họ và khiến họ dừng lại thì tương tự như trường hợp 2.1.a, tất cả người dùng trung thực đều biết Br = Br \(\ell\)trong khoảng thời gian Ir+1 và T r+1 \(\leq\)T r + \(\lambda\) + ts∗+1. Mặt khác, tất cả những người xác minh trung thực ở Bước s∗+1 đã nhận được tất cả các thông báo (r, s∗)-cho 0 và H(Br \(\ell\)) từ HSV r,s∗sau thời gian chờ ts∗+1, dẫn đến > 2/3 đa số, bởi vì |HSV r,s∗| > 2|MSV r,s∗|. Do đó, tất cả các bộ xác minh trong HSV r,s∗+1 đều truyền bá thông điệp của chúng cho 0 và H(Br \(\ell\)) tương ứng. Lưu ý rằng các bộ xác minh trong HSV r,s∗+1 không dừng lại ở Br = Br \(\ell\), bởi vì Bước s∗+ 1 không phải là bước Coin-Fixed-To-0. Bây giờ hãy xem xét những người xác minh trung thực ở Bước s∗+2 (là bước Lật xu thật). Nếu Đối thủ gửi tin nhắn trong CERT r i∗với một số người trong số họ và khiến họ dừng lại, thì một lần nữa tất cả người dùng trung thực đều biết Br = Br \(\ell\)trong khoảng thời gian Ir+1 và T r+1 \(\leq\)T r + \(\lambda\) + ts∗+2.Mặt khác, tất cả những người xác minh trung thực ở Bước s∗+ 2 đều đã nhận được tất cả các thông báo (r, s∗+ 1) cho 0 và H(Br \(\ell\)) từ HSV r,s∗+1 sau thời gian chờ ts∗+2, dẫn đến > 2/3 đa số. Do đó tất cả chúng đều truyền bá thông điệp của chúng cho 0 và H(Br \(\ell\)) tương ứng: đó là họ làm không phải “tung đồng xu” trong trường hợp này. Một lần nữa, hãy lưu ý rằng chúng không dừng lại nếu không lan truyền, bởi vì Bước s∗+ 2 không phải là bước Coin-Fixed-To-0. Cuối cùng, đối với những người xác minh trung thực ở Bước s∗+3 (là một bước khác của Coin-Fixed-To-0), tất cả trong số họ sẽ nhận được ít nhất tH tin nhắn hợp lệ cho 0 và H(Br \(\ell\)) từ HSV s∗+2, nếu họ thực sự đợi thời gian ts∗+3. Do đó, dù đối thủ có gửi tin nhắn hay không trong CERT r i∗đối với bất kỳ trong số chúng, tất cả các trình xác minh trong HSV r,s∗+3 đều dừng lại với Br = Br \(\ell\), không có tuyên truyền bất cứ điều gì. Tùy thuộc vào cách hành động của Đối thủ, một số trong số họ có thể có CERT r của riêng họ bao gồm các thông báo (r, s∗−1) trong CERT r i∗, và những người khác có CERT r của riêng họ bao gồm các tin nhắn (r, s∗+ 2). Trong mọi trường hợp, tất cả người dùng trung thực biết Br = Br \(\ell\)trong khoảng thời gian Ir+1 và T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3. Trường hợp 2.2.b. Sự kiện E.b xảy ra và không tồn tại người xác minh trung thực i′ \(\in\)HSV r,s∗who cũng nên dừng lại mà không tuyên truyền bất cứ điều gì. Phân tích trong trường hợp này tương tự như trường hợp 2.1.b và trường hợp 2.2.a, do đó có nhiều chi tiết đã bị bỏ qua. Đặc biệt, CERT r i∗bao gồm các thông điệp tH mong muốn (r, s∗−1) đối với bit 1 mà Đối thủ có thể thu thập hoặc tạo ra, s∗−2 ≡1 mod 3, Bước s∗là Bước cố định bằng tiền xu thành 1 và không có người xác minh (r, s∗) trung thực nào có thể thấy > 2/3 đa số cho 0. Do đó, mọi trình xác minh i \(\in\)HSV r,s∗đặt bi = 1 và truyền mr,s∗ tôi = (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ tôi ) tại thời điểm \(\alpha\)r,s∗ tôi + ts∗. Tương tự như Trường hợp 2.2.a, trong tối đa 3 bước nữa (tức là giao thức đạt đến Bước s∗+3, đây là một bước khác được cố định bằng tiền xu thành 1), tất cả người dùng trung thực đều biết Br = Br ừ trong khoảng thời gian Ir+1. Hơn nữa, T r+1 có thể là T r+\(\lambda\)+ts∗+1, hoặcT r+\(\lambda\)+ts∗+2, hoặc \(\leq\)T r + \(\lambda\) + ts∗+3, tùy thuộc vào thời điểm lần đầu tiên người xác minh trung thực có thể dừng lại mà không lan truyền. Kết hợp bốn trường hợp con, chúng ta có tất cả người dùng trung thực đều biết Br trong khoảng thời gian Ir+1, với T r+1 \(\leq\)T r + \(\lambda\) + ts∗trong trường hợp 2.1.a và 2.1.b, và T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 trong Trường hợp 2.2.a và 2.2.b. Nó vẫn ở giới hạn trên s∗và do đó T r+1 cho Trường hợp 2, và chúng tôi làm như vậy bằng cách xem xét cách nhiều khi các bước Lật xu thực sự được thực thi trong giao thức: nghĩa là một số người xác minh trung thực thực sự đã tung đồng xu. Cụ thể, cố định tùy ý một bước Lật xu thật s′ (tức là 7 \(\leq\)s′ \(\leq\)m + 2 và s′ −2 ≡2 mod 3), và đặt \(\ell\)′ \(\triangleq\)arg minj\(\in\)SV r,s′−1 H(\(\sigma\)r,s′−1 j ). Bây giờ chúng ta hãy giả sử s′ < s∗, bởi vì nếu không thì không có người xác minh trung thực nào thực sự tung đồng xu trong Bước s′, theo quy định trước đó. các cuộc thảo luận. Theo định nghĩa của SV r,s′−1, giá trị hash của thông tin xác thực \(\ell\)′ cũng là giá trị nhỏ nhất trong số tất cả người dùng trong PKr−k. Vì hàm hash là ngẫu nhiên oracle nên lý tưởng nhất là người chơi \(\ell\)′ trung thực với xác suất ít nhất là h. Như chúng tôi sẽ trình bày sau, ngay cả khi Đối thủ cố gắng hết sức để dự đoán đầu ra ngẫu nhiên oracle và nghiêng xác suất, người chơi \(\ell\)′ vẫn trung thực với xác suấtít nhất ph = h2(1 + h −h2). Dưới đây chúng tôi xem xét trường hợp khi điều đó thực sự xảy ra: nghĩa là, \(\ell\)′ \(\in\)HSV r,s′−1. Lưu ý rằng mọi người xác minh trung thực i \(\in\)HSV r,s′ đều đã nhận được tất cả tin nhắn từ HSV r,s′−1 bởi thời gian \(\alpha\)r,s′ tôi +ts′. Nếu người chơi tôi cần tung một đồng xu (tức là anh ta chưa nhìn thấy > 2/3 đa số cho cùng bit b \(\in\){0, 1}), thì anh ta đặt bi = lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )). Nếu có tồn tại một sự trung thực khác người xác minh i′ \(\in\)HSV r,s′ người đã xem > 2/3 đa số cho một bit b \(\in\){0, 1}, sau đó theo Thuộc tính (d) trong Bổ đề 5.5, không có người xác minh trung thực nào trong HSV r,s′ sẽ thấy > 2/3 đa số trong một thời gian b′ ̸= b. Vì lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) = b với xác suất 1/2, tất cả người xác minh trung thực trong HSV r,s′ đều đạt thỏa thuận về b với xác suất 1/2. Tất nhiên, nếu một người xác minh i' như vậy không tồn tại thì tất cả những người xác minh trung thực trong HSV r,s′ đồng ý về bit lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) với xác suất 1. Kết hợp xác suất của \(\ell\)′ \(\in\)HSV r,s′−1, ta có người xác minh trung thực trong HSV r,s′ đạt được thỏa thuận về bit b \(\in\){0, 1} với xác suất ít nhất là ph 2 = h2(1+h−h2) 2 . Hơn nữa, bằng quy nạp theo đa số phiếu như trước đây, tất cả người xác minh trung thực trong HSV r,s′ đều có tập vi của họ là H(Br \(\ell\)). Do đó, khi đạt được thỏa thuận về b ở Bước s′, T r+1 là hoặcT r + \(\lambda\) + ts′+1 hoặcT r + \(\lambda\) + ts′+2, tùy thuộc vào b = 0 hay b = 1, theo phân tích Trường hợp 2.1.a và 2.1.b. trong cụ thể, sẽ không có bước Lật xu thật nào nữa được thực hiện: nghĩa là những người xác minh trong các bước như vậy vẫn kiểm tra xem chúng có phải là người xác minh hay không và do đó chờ đợi, nhưng tất cả chúng sẽ dừng mà không tuyên truyền bất cứ điều gì. Theo đó, trước Bước s∗, số lần thực hiện các bước Coin-GenuinelyFlipped được phân phối theo biến ngẫu nhiên Lr. Để Bước s′ là bước Lật xu thật cuối cùng theo Lr, bằng cách xây dựng giao thức chúng tôi có s′ = 4 + 3Lr. Khi nào Đối thủ nên thực hiện Bước s∗xảy ra nếu anh ta muốn trì hoãn T r+1 nhiều nhất có thể có thể? Chúng ta thậm chí có thể cho rằng Kẻ thù biết trước việc thực hiện Lr. Nếu s∗> s′ thì điều đó là vô ích, bởi vì những người xác minh trung thực đã đạt được thỏa thuận về Bước s′. Để chắc chắn, trong trường hợp này s∗sẽ là s′ +1 hoặc s′ +2, tùy thuộc vào việc b = 0 hoặc b = 1. Tuy nhiên, đây thực sự là Trường hợp 2.1.a và 2.1.b, và kết quả T r+1 chính xác là tương tự như trong trường hợp đó. Chính xác hơn, T r+1 \(\lambda\) + ts′+2. Nếu s∗< s′ −3 —tức là, s∗ nằm trước bước Lật xu thật cuối cùng thứ hai— thì bằng phân tích các trường hợp 2.2.a và 2.2.b, T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 < T r + \(\lambda\) + ts′. Nghĩa là, Đối thủ thực sự đang làm cho thỏa thuận về Br diễn ra nhanh hơn. Nếu s∗= s′ −2 hoặc s′ −1 —tức là bước Coin-Fixed-To-0 hoặc bước Coin-Fixed-To-1 ngay trước Bước s′— sau đó bằng cách phân tích bốn trường hợp phụ, những người xác minh trung thực trong Các bước s′ không được tung đồng xu nữa, vì chúng đã dừng mà không lan truyền, hoặc đã xem > 2/3 đa số cho cùng một bit b. Vì vậy chúng tôi có T r+1T r + \(\lambda\) + ts∗+3T r + \(\lambda\) + ts′+2.Tóm lại, bất kể là gì, chúng ta có T r+1 \(\leq\)T r + \(\lambda\) + ts′+2 = T r + \(\lambda\) + t3Lr+6 = T r + \(\lambda\) + (2(3Lr + 6) −3)\(\lambda\) + Λ = T r + (6Lr + 10)\(\lambda\) + Λ, như chúng tôi muốn thể hiện. Trường hợp xấu nhất xảy ra khi s∗= s′ −1 và Trường hợp 2.2.b xảy ra. Kết hợp Trường hợp 1 và 2 của giao thức BA nhị phân, Bổ đề 5.3 đúng. ■ 5,9 Sự an toàn của Qr hạt giống và xác suất của một nhà lãnh đạo trung thực Việc còn lại là chứng minh Bổ đề 5.4. Hãy nhớ lại rằng các bộ xác minh trong vòng r được lấy từ PKr−k và được chọn theo đại lượng Qr-1. Lý do đưa ra tham số nhìn lại k là để đảm bảo rằng, quay lại vòng r −k, khi Đối thủ có thể thêm người dùng độc hại mới đến PKr−k, anh ta không thể dự đoán đại lượng Qr−1 ngoại trừ với xác suất không đáng kể. Lưu ý rằng Hàm hash là ngẫu nhiên oracle và Qr−1 là một trong những đầu vào của nó khi chọn trình xác minh cho vòng r. Do đó, bất kể người dùng có ác ý được thêm vào PKr−k như thế nào, theo quan điểm của Đối thủ, mỗi người dùng đều có thể một trong số họ vẫn được chọn làm người xác minh ở bước của vòng r với xác suất yêu cầu p (hoặc p1 cho Bước 1). Chính xác hơn, chúng ta có bổ đề sau. Bổ đề 5.6. Với k = O(log1/2 F), với mỗi hiệp r, với xác suất áp đảo đối thủ sẽ đã không truy vấn Qr−1 tới oracle ngẫu nhiên ở vòng r −k. Bằng chứng. Chúng ta tiến hành bằng quy nạp. Giả sử rằng với mỗi vòng \(\gamma\) < r, Đối thủ không truy vấn Q\(\gamma\)−1 đến oracle ngẫu nhiên ở vòng \(\gamma\) −k.21 Hãy xem xét trò chơi tinh thần sau đây được chơi bởi Đối thủ ở vòng r −k, cố gắng dự đoán Qr−1. Ở Bước 1 của mỗi vòng \(\gamma\) = r −k, . . . , r −1, với một Q\(\gamma\)−1 cụ thể không được truy vấn ngẫu nhiên oracle, bằng cách sắp xếp người chơi i \(\in\)PK\(\gamma\)−k theo các giá trị hash H(SIGi(\(\gamma\), 1, Q\(\gamma\)−1)) ngày càng có nhiều hoán vị ngẫu nhiên trên PK\(\gamma\)−k. Theo định nghĩa, người dẫn đầu \(\ell\) \(\gamma\) là người người sử dụng đầu tiên trong hoán vị và trung thực với xác suất h. Hơn nữa, khi PK\(\gamma\)−k lớn đủ, với bất kỳ số nguyên x \(\geq\)1 nào, xác suất mà x người dùng đầu tiên trong hoán vị đều là độc hại nhưng (x + 1)st trung thực là (1 −h)xh. Nếu \(\ell\) \(\gamma\) là trung thực thì Q\(\gamma\) = H(SIG\(\ell\) \(\gamma\)(Q\(\gamma\)−1), \(\gamma\)). Vì đối thủ không thể giả mạo chữ ký của \(\ell\) \(\gamma\), Q\(\gamma\) được phân bổ đồng đều một cách ngẫu nhiên theo quan điểm của Đối thủ và, ngoại trừ với xác suất nhỏ theo cấp số nhân,22 không được truy vấn H ở vòng r −k. Vì mỗi Q\(\gamma\)+1, Q\(\gamma\)+2, . . . , Qr−1 tương ứng là đầu ra của H với Q\(\gamma\), Q\(\gamma\)+1, . . . , Qr−2 là một trong những đầu vào, tất cả đều trông ngẫu nhiên đối với Đối thủ và Đối thủ không thể truy vấn Qr−1 đến H tại tròn r −k. Theo đó, trường hợp duy nhất mà Đối thủ có thể dự đoán Qr−1 với xác suất tốt ở vòng đấu r−k là khi tất cả các nhà lãnh đạo \(\ell\)r−k, . . . , \(\ell\)r−1 là độc hại. Một lần nữa hãy xem xét một vòng \(\gamma\) \(\in\){r−k . . . , r−1} và hoán vị ngẫu nhiên trên PK\(\gamma\)−k được tạo ra bởi các giá trị hash tương ứng. Nếu vì một số người x \(\geq\)2, x −1 người dùng đầu tiên trong hoán vị đều độc hại và x-th là trung thực, sau đó là Đối thủ có x lựa chọn cho Q\(\gamma\): hoặc ở dạng H(SIGi(Q\(\gamma\)−1, \(\gamma\))), trong đó i là một trong 21Vì k là một số nguyên nhỏ, không mất tính tổng quát nên có thể giả sử rằng k vòng đầu tiên của giao thức được chạy trong một môi trường an toàn và giả thuyết quy nạp đúng cho các vòng đó. 22Nghĩa là, hàm mũ của độ dài đầu ra của H. Lưu ý rằng xác suất này nhỏ hơn F rất nhiều.những người dùng độc hại x−1 đầu tiên, bằng cách biến người chơi i trở thành người dẫn đầu thực sự của vòng \(\gamma\); hoặc H(Q\(\gamma\)−1, \(\gamma\)), bởi buộc B\(\gamma\) = B\(\gamma\) ừ . Ngược lại, người đứng đầu vòng \(\gamma\) sẽ là người dùng trung thực đầu tiên trong hoán vị và Qr−1 trở nên khó đoán đối với Kẻ thù. Đối thủ nên theo đuổi lựa chọn x nào ở trên của Q\(\gamma\)? Để giúp đỡ kẻ thù Trả lời câu hỏi này, trong trò chơi tinh thần, chúng ta thực sự khiến anh ta mạnh hơn anh ta thực sự là như sau. Trước hết, trên thực tế, Đối thủ không thể tính toán hash của người dùng trung thực chữ ký, do đó không thể quyết định, đối với mỗi Q\(\gamma\), số x(Q\(\gamma\)) của người dùng độc hại lúc đầu của hoán vị ngẫu nhiên trong vòng \(\gamma\) + 1 do Q\(\gamma\) gây ra. Trong trò chơi tinh thần, chúng tôi đưa cho anh ta số x(Q\(\gamma\)) miễn phí. Thứ hai, trên thực tế, có x người dùng đầu tiên trong hoán vị tất cả trở nên độc hại không nhất thiết có nghĩa là tất cả họ đều có thể trở thành người lãnh đạo, bởi vì hash giá trị chữ ký của họ cũng phải nhỏ hơn p1. Chúng tôi đã bỏ qua ràng buộc này trong tâm trí trò chơi, mang lại cho Đối thủ nhiều lợi thế hơn. Dễ dàng nhận thấy trong trò chơi trí tuệ, phương án tối ưu dành cho Đối thủ, ký hiệu là ˆQ\(\gamma\), là thứ tạo ra chuỗi người dùng độc hại dài nhất khi bắt đầu ngẫu nhiên hoán vị trong vòng \(\gamma\) + 1. Thật vậy, với một Q\(\gamma\) cụ thể, giao thức không phụ thuộc vào Q\(\gamma\)−1 nữa và Đối thủ chỉ có thể tập trung vào hoán vị mới ở vòng \(\gamma\) + 1, có phân phối tương tự cho số lượng người dùng độc hại lúc đầu. Theo đó, ở mỗi vòng \(\gamma\), ˆQ\(\gamma\) được đề cập ở trên mang lại cho anh ta số lượng tùy chọn lớn nhất cho Q\(\gamma\)+1 và do đó tối đa hóa xác suất những người dẫn đầu liên tiếp đều có ác ý. Do đó, trong trò chơi tinh thần, Đối thủ đang theo Chuỗi Markov từ vòng r −k để làm tròn r −1, với không gian trạng thái là {0} \(\cup\){x : x \(\geq\)2}. Trạng thái 0 thể hiện thực tế là Người dùng đầu tiên trong hoán vị ngẫu nhiên ở vòng hiện tại \(\gamma\) là trung thực, do đó Đối thủ không thực hiện được trò chơi dự đoán Qr−1; và mỗi trạng thái x \(\geq\)2 biểu thị thực tế là x −1 người dùng đầu tiên trong hoán vị là độc hại và thứ x là trung thực, do đó Đối thủ có x tùy chọn cho Q\(\gamma\). các xác suất chuyển tiếp P(x, y) như sau. • P(0, 0) = 1 và P(0, y) = 0 với mọi y \(\geq\)2. Nghĩa là, Đối thủ đã thất bại trong trò chơi ngay lần đầu tiên người dùng trong hoán vị trở nên trung thực. • P(x, 0) = hx với mọi x \(\geq\)2. Nghĩa là, với xác suất hx, tất cả các hoán vị ngẫu nhiên x đều có những người dùng đầu tiên của họ trung thực, do đó Đối thủ sẽ thất bại trong trò chơi ở vòng tiếp theo. • Với mọi x \(\geq\)2 và y \(\geq\)2, P(x, y) là xác suất trong số x hoán vị ngẫu nhiên gây ra bởi các tùy chọn x của Q\(\gamma\), chuỗi người dùng độc hại dài nhất ở đầu một số trong số đó là y −1, do đó Đối thủ có y lựa chọn cho Q\(\gamma\)+1 trong vòng tiếp theo. Đó là, P(x, y) = y−1 X tôi=0 (1 −h)ih !x − y−2 X tôi=0 (1 −h)ih !x = (1 −(1 −h)y)x −(1 −(1 −h)y−1)x. Lưu ý rằng trạng thái 0 là trạng thái hấp thụ duy nhất trong ma trận chuyển tiếp P và mọi trạng thái khác x có xác suất dương tiến tới 0. Chúng ta quan tâm đến giới hạn trên của số k của các vòng cần thiết để Chuỗi Markov hội tụ về 0 với xác suất áp đảo: nghĩa là không bất kể chuỗi bắt đầu ở trạng thái nào, với khả năng cao là Đối thủ sẽ thua trò chơi và không dự đoán được Qr−1 ở vòng r −k. Xét ma trận chuyển tiếp P (2) \(\triangleq\)P \(\cdot\) P sau hai vòng. Dễ dàng thấy rằng P(2)(0, 0) = 1 và P (2)(0, x) = 0 với mọi x \(\geq\)2. Với mọi x \(\geq\)2 và y \(\geq\)2, vì P(0, y) = 0, ta có P(2)(x, y) = P(x, 0)P(0, y) + X z \(\geq\)2 P(x, z)P(z, y) = X z \(\geq\)2 P(x, z)P(z, y).Giả sử ¯h \(\triangleq\)1 −h, ta có P(x, y) = (1 −¯hy)x −(1 −¯hy−1)x và P(2)(x, y) = X z \(\geq\)2 [(1 −¯hz)x −(1 −¯hz−1)x][(1 −¯hy)z −(1 −¯hy−1)z]. Dưới đây chúng tôi tính giới hạn của P (2)(x,y) P(x,y) khi h tiến tới 1 —tức là ¯h tiến tới 0. Lưu ý rằng giá trị cao nhất bậc của ¯h trong P(x, y) là ¯hy−1, với hệ số x. Theo đó, lim h \(\to\) 1 P (2)(x, y) P(x, y) = lim ¯h \(\to\) 0 P (2)(x, y) P(x, y) = lim ¯h \(\to\) 0 P (2)(x, y) x¯hy−1 + O(¯hy) = lim ¯h \(\to\) 0 P z \(\geq\)2[x¯hz−1 + O(¯hz)][z¯hy−1 + O(¯hy)] x¯hy−1 + O(¯hy) = lim ¯h \(\to\) 0 2x¯hy + O(¯hy+1) x¯hy−1 + O(¯hy) = lim ¯h \(\to\) 0 2x¯hy x¯hy−1 = lim ¯h \(\to\) 0 2¯h = 0. Khi h đủ gần 1,23 ta có P (2)(x, y) P(x, y) 11 2 với mọi x \(\geq\)2 và y \(\geq\)2. Bằng quy nạp, với mọi k > 2, P (k) \(\triangleq\)P k sao cho • P (k)(0, 0) = 1, P (k)(0, x) = 0 với mọi x \(\geq\)2, và • với mọi x \(\geq\)2 và y \(\geq\)2, P (k)(x, y) = P (k−1)(x, 0)P(0, y) + X z \(\geq\)2 P (k−1)(x, z)P(z, y) = X z \(\geq\)2 P (k−1)(x, z)P(z, y) \(\leq\) X z \(\geq\)2 P(x, z) 2k−2 \(\cdot\) P(z, y) = P(2)(x, y) 2k−2 \(\leq\)P(x, y) 2k−1 . Khi P(x, y) 1, sau 1−log2 F vòng, xác suất chuyển sang bất kỳ trạng thái y \(\geq\)2 nào là không đáng kể, bắt đầu với bất kỳ trạng thái x \(\geq\)2. Mặc dù có rất nhiều trạng thái như vậy, nhưng dễ dàng nhận thấy rằng lim y→+∞ P(x, y) P(x, y + 1) = lim y→+∞ (1 −¯hy)x −(1 −¯hy−1)x (1 −¯hy+1)x −(1 −¯hy)x = lim y→+∞ ¯hy−1 −¯hy ¯hy −¯hy+1 = 1 ¯h = 1 1 −h. Do đó, mỗi hàng x của ma trận chuyển tiếp P giảm dưới dạng một chuỗi hình học với tốc độ 1 1−h > 2 khi y đủ lớn và điều tương tự cũng đúng với P (k). Theo đó, khi k đủ lớn nhưng vẫn theo thứ tự log1/2 F, P y \(\geq\)2 P (k)(x, y) < F với mọi x \(\geq\)2. Nghĩa là, với xác suất áp đảo Đối thủ thua trò chơi và không dự đoán được Qr−1 ở hiệp r −k. Với h \(\in\)(2/3, 1], thêm phân tích phức tạp cho thấy tồn tại một hằng số C lớn hơn 1/2 một chút, sao cho đủ lấy k = O(logC F). Do đó Bổ đề 5.6 đúng. ■ Bổ đề 5.4. (trình bày lại) Cho các thuộc tính 1–3 cho mỗi vòng trước r, ph = h2(1 + h −h2) cho Lr, và người đứng đầu \(\ell\)r là người trung thực với xác suất ít nhất là ph. 23Ví dụ: h = 80% như được đề xuất bởi các lựa chọn tham số cụ thể.
Bằng chứng. Theo Bổ đề 5.6, Đối thủ không thể dự đoán Qr−1 ở vòng r −k ngoại trừ với xác suất không đáng kể. Lưu ý rằng điều này không có nghĩa là xác suất của một nhà lãnh đạo trung thực là h cho mỗi vòng. Thật vậy, với Qr−1, tùy thuộc vào số lượng người dùng độc hại lúc bắt đầu hoán vị ngẫu nhiên của PKr−k, Đối thủ có thể có nhiều lựa chọn cho Qr và do đó có thể làm tăng xác suất xuất hiện một người lãnh đạo ác ý trong vòng r + 1 — một lần nữa chúng ta đang cho anh ta một số ưu điểm không thực tế như trong Bổ đề 5.6, nhằm đơn giản hóa việc phân tích. Tuy nhiên, đối với mỗi Qr−1 mà Đối thủ không truy vấn H ở vòng r −k, đối với bất kỳ x \(\geq\)1 nào, với xác suất (1 −h)x−1h người dùng trung thực đầu tiên xuất hiện ở vị trí x trong kết quả hoán vị ngẫu nhiên của PKr−k. Khi x = 1 thì xác suất người dẫn đầu trung thực ở vòng r + 1 là quả thực là h; trong khi khi x = 2, Đối thủ có hai lựa chọn cho Qr và xác suất đạt được là h2. Chỉ bằng cách xem xét hai trường hợp này, chúng ta có xác suất để có một người dẫn đầu trung thực trong vòng r + 1 ít nhất là h \(\cdot\) h + (1 −h)h \(\cdot\) h2 = h2(1 + h −h2) như mong muốn. Lưu ý rằng xác suất trên chỉ xem xét tính ngẫu nhiên trong giao thức từ vòng r −k để làm tròn r. Khi tất cả tính ngẫu nhiên từ vòng 0 đến vòng r được xem xét, Qr−1 là Đối thủ thậm chí còn khó dự đoán hơn và xác suất có được người dẫn đầu trung thực ở vòng r + 1 là ít nhất h2(1 + h −h2). Thay r + 1 bằng r và dịch chuyển mọi thứ lùi lại một vòng, người dẫn đầu \(\ell\)r trung thực với xác suất ít nhất là h2(1 + h −h2), như mong muốn. Tương tự, trong mỗi bước Lật xu thật, “người dẫn đầu” của bước đó - tức là người xác minh. trong SV r,s có thông tin xác thực có giá trị hash nhỏ nhất, trung thực với xác suất ít nhất là h2(1 + h −h2). Do đó ph = h2(1 + h −h2) đối với Lr và Bổ đề 5.4 đúng. ■
Algorand '
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 ′
2 Trong phần này, chúng tôi xây dựng một phiên bản Algorand ′ hoạt động theo giả định sau. Giả định của đa số người dùng trung thực: Hơn 2/3 số người dùng trong mỗi PKr là trung thực. Trong Phần 8, chúng tôi trình bày cách thay thế giả định trên bằng Đa số trung thực mong muốn của Giả định về tiền. 6.1 Ký hiệu và thông số bổ sung cho Algorand ′ 2 Ký hiệu • \(\mu\) \(\in\)Z+: giới hạn trên thực dụng của số bước mà với xác suất áp đảo, thực sự sẽ được thực hiện trong một vòng. (Như chúng ta sẽ thấy, tham số \(\mu\) kiểm soát số lượng tạm thời phím mà người dùng chuẩn bị trước cho mỗi vòng.) • Lr: một biến ngẫu nhiên biểu thị số phép thử Bernoulli cần để thấy số 1, khi mỗi phép thử thử nghiệm là 1 với xác suất ph 2 . Lr sẽ được sử dụng để giới hạn trên thời gian cần thiết để tạo chặn Br. • tH: giới hạn dưới của số lượng người xác minh trung thực ở bước s > 1 của vòng r, sao cho với xác suất áp đảo (cho n và p), có > tH người xác minh trung thực trong SV r,s. Thông số • Mối quan hệ giữa các thông số khác nhau. — Với mỗi bước s > 1 của vòng r, n được chọn sao cho với xác suất áp đảo,
|HSV r,s| > th và |HSV r,s| + 2|MSV r,s| < 2tH. Lưu ý rằng hai bất đẳng thức trên cùng suy ra |HSV r,s| > 2|MSV r,s|: tức là có là 2/3 đa số trung thực trong số những người xác minh được chọn. Giá trị của h càng gần 1 thì n càng nhỏ. Đặc biệt, chúng tôi sử dụng (các biến thể of) Giới hạn Chernoff để đảm bảo các điều kiện mong muốn được giữ vững với xác suất áp đảo. • Ví dụ lựa chọn các thông số quan trọng. — F = 10−18. — n \(\approx\)4000, tH \(\approx\)0,69n, k = 70. 6.2 Triển khai Khóa tạm thời trong Algorand ′ 2 Hãy nhớ lại rằng người xác minh i \(\in\)SV r,s ký điện tử vào tin nhắn của mình mr,s tôi của bước s trong vòng r, liên quan đến một khóa công khai phù du pkr,s i , sử dụng khóa tiết ra tạm thời skr,s tôi rằng anh ta nhanh chóng phá hủy sau khi sử dụng. Khi số bước có thể thực hiện của một vòng bị giới hạn bởi một giới hạn nhất định số nguyên \(\mu\), chúng ta đã biết cách xử lý các khóa tạm thời trên thực tế. Ví dụ, như chúng tôi đã giải thích trong Algorand ′ 1 (trong đó \(\mu\) = m + 3), để xử lý tất cả các khóa phù du có thể có của anh ta, từ một vòng r′ đến một vòng r′ + 106, tôi tạo ra một cặp (PMK, SMK), trong đó PMK public master khóa của sơ đồ chữ ký dựa trên nhận dạng và SMK khóa chính bí mật tương ứng của nó. Người dùng tôi công khai PMK và sử dụng SMK để tạo khóa bí mật của từng khóa chung có thể tạm thời (và phá hủy SMK sau khi làm như vậy). Tập hợp các khóa công khai tạm thời của i cho các khóa có liên quan vòng là S = {i} \(\times\) {r′, . . . , r′ + 106} \(\times\) {1, . . . , \(\mu\)}. (Như đã thảo luận, khi vòng r′ + 106 đến gần, tôi “làm mới” cặp của anh ấy (PMK, SMK).) Trong thực tế, nếu \(\mu\) đủ lớn, một vòng Algorand ′ 2 sẽ không mất nhiều hơn \(\mu\) bước. trong Tuy nhiên, về nguyên tắc, có một khả năng rất nhỏ là, đối với một số vòng r, số bước thực tế lấy sẽ vượt quá \(\mu\). Khi điều này xảy ra, tôi sẽ không thể ký vào tin nhắn của anh ấy, ông ạ. tôi cho bất kỳ bước nào s > \(\mu\), bởi vì anh ta chỉ chuẩn bị trước \(\mu\) khóa bí mật cho vòng r. Hơn nữa, anh ấy không thể chuẩn bị và công khai một kho khóa tạm thời mới, như đã thảo luận trước đó. Trên thực tế, để làm vì vậy, anh ta sẽ cần chèn một khóa chính công khai PMK′ mới vào một khối mới. Nhưng, nên làm tròn r thực hiện ngày càng nhiều bước, sẽ không có khối mới nào được tạo ra. Tuy nhiên, các giải pháp vẫn tồn tại. Ví dụ: tôi có thể sử dụng khóa tạm thời cuối cùng của vòng r, pkr,\(\mu\) tôi , như sau. Anh ta tạo ra một kho cặp khóa khác cho vòng r — ví dụ: bằng cách (1) tạo ra một kho khóa khác cặp khóa chính (PMK, SMK); (2) sử dụng cặp này để tạo ra một khóa khác, chẳng hạn như 106 khóa tạm thời, sk r,\(\mu\)+1 tôi , . . . , sk r,\(\mu\)+106 tôi , tương ứng với các bước \(\mu\)+1, ..., \(\mu\)+106 của vòng r; (3) sử dụng skr,\(\mu\) tôi kỹ thuật số ký PMK (và bất kỳ thông điệp (r, \(\mu\)) nào nếu i \(\in\)SV r,\(\mu\)), liên quan đến pkr,\(\mu\) tôi ; và (4) xóa SMK và skr,\(\mu\) tôi . Tôi có nên trở thành người xác minh ở bước \(\mu\) + s với s \(\in\){1, . . . , 106}, sau đó tôi ký điện tử (r, \(\mu\) + s)- của anh ấy nhắn tin cho ông,\(\mu\)+s tôi liên quan đến pk khóa mới của anh ấy r,\(\mu\)+s tôi = (i, r, \(\mu\) + s). Tất nhiên, để xác minh chữ ký này của i, những người khác cần chắc chắn rằng khóa công khai này tương ứng với khóa công khai mới PMK của tôi. Vì vậy, ngoài chữ ký này, tôi còn truyền chữ ký số PMK của anh ấy tương ứng với pkr,\(\mu\) tôi . Tất nhiên, cách tiếp cận này có thể được lặp lại nhiều lần nếu cần thiết, nếu vòng r tiếp tục để biết thêm nhiều bước hơn nữa! Khóa bí mật tạm thời cuối cùng được sử dụng để xác thực một khóa công khai chính mới khóa, và do đó, một kho khóa tạm thời khác cho vòng r. Và vân vân.6.3 Giao thức thực tế Algorand ′ 2 Hãy nhớ lại rằng, trong mỗi bước s của vòng r, người xác minh i \(\in\)SV r,s sử dụng bí mật công cộng dài hạn của mình cặp khóa để tạo thông tin xác thực của anh ấy, \(\sigma\)r,s tôi \(\triangleq\)SIGi(r, s, Qr−1), cũng như SIGi Qr−1 trong trường hợp s = 1. Người xác minh tôi sử dụng cặp khóa phù du của anh ấy, (pkr,s tôi, skr,s i ), để ký bất kỳ tin nhắn nào khác m có thể được yêu cầu. Để đơn giản, chúng ta viết esigi(m), thay vì sigpkr,s i (m), để biểu thị sự phù du đúng nghĩa của i chữ ký của m ở bước này và viết ESIGi(m) thay vì SIGpkr,s tôi (m) \(\triangleq\)(i, m, esigi(m)). Bước 1: Chặn đề xuất Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước 1 của vòng r ngay khi anh ta có CERT r−1, cho phép tôi tính toán rõ ràng H(Br−1) và Qr−1. • Người dùng i sử dụng Qr−1 để kiểm tra xem i \(\in\)SV r,1 hay không. Nếu i /\(\in\)SV r,1, anh ta không làm gì ở Bước 1. • Nếu tôi \(\in\)SV r,1, tức là nếu tôi là một nhà lãnh đạo tiềm năng thì anh ta sẽ làm như sau. (a) Nếu tôi đã nhìn thấy B0, . . . , chính Br−1 (bất kỳ Bj = Bj ǫ có thể dễ dàng suy ra từ giá trị hash của nó trong CERT j và do đó được giả định là “đã nhìn thấy”), sau đó anh ta sẽ thu các khoản thanh toán vòng r có đã được truyền tới anh ta cho đến nay và tính toán mức lương tối đa PAY r tôi từ họ. (b) Nếu tôi chưa thấy hết B0, . . . , Br−1 chưa, sau đó anh ta đặt PAY r tôi = \(\emptyset\). (c) Tiếp theo, tôi tính “khối ứng viên” Br của anh ấy i = (r, TRẢ r i , SIGi(Qr−1), H(Br−1)). (c) Cuối cùng, tôi tính toán thông điệp mr,1 tôi = (Anh i , esigi(H(Br i )), \(\sigma\)r,1 i ), phá hủy sự phù du của anh ấy khóa bí mật skr,1 i , sau đó truyền hai tin nhắn, mr,1 tôi và (SIGi(Qr−1), \(\sigma\)r,1 tôi ), riêng biệt nhưng đồng thời.a aKhi tôi là người dẫn đầu, SIGi(Qr−1) cho phép người khác tính Qr = H(SIGi(Qr−1), r).
Nhân giống chọn lọc Để rút ngắn thời gian thực hiện chung của Bước 1 và toàn bộ vòng, điều quan trọng là (r, 1)- thông điệp được truyền bá có chọn lọc. Nghĩa là, với mỗi người dùng j trong hệ thống, • Đối với tin nhắn (r, 1) đầu tiên mà anh ta nhận được và xác minh thành công, liệu nó có chứa một khối hoặc chỉ là thông tin xác thực và chữ ký của Qr−1, người chơi j sẽ truyền nó như bình thường. • Đối với tất cả các tin nhắn (r, 1) khác mà người chơi j nhận được và xác minh thành công, anh ta sẽ truyền chỉ khi giá trị hash của thông tin xác thực chứa trong đó là giá trị nhỏ nhất trong số các giá trị hash thông tin xác thực có trong tất cả các tin nhắn (r, 1) mà anh ấy đã nhận được và đã xác minh thành công xa. • Tuy nhiên, nếu j nhận được hai tin nhắn khác nhau có dạng mr,1 tôi từ cùng một người chơi i,b anh ấy loại bỏ cái thứ hai bất kể giá trị hash của thông tin xác thực của tôi là bao nhiêu. Lưu ý rằng, dưới sự lan truyền có chọn lọc, điều hữu ích là mỗi nhà lãnh đạo tiềm năng tôi sẽ tuyên truyền thông tin xác thực \(\sigma\)r,1 tôi tách biệt với ông, 1 i :c những tin nhắn nhỏ đó di chuyển nhanh hơn các khối, đảm bảo tuyên truyền kịp thời của mr,1 i là nơi thông tin xác thực được chứa có giá trị hash nhỏ, trong khi làm cho những giá trị có giá trị hash lớn biến mất nhanh chóng. aNghĩa là tất cả các chữ ký đều đúng và nếu nó có dạng ông1 i , cả khối và hash của nó đều hợp lệ —mặc dù j không kiểm tra xem tập thanh toán đi kèm có tối đa cho i hay không. bĐiều đó có nghĩa là tôi có ác ý. cChúng tôi cảm ơn Georgios Vlachos vì đã gợi ý điều này.Bước 2: Bước đầu tiên của Giao thức đồng thuận được phân loại GC Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước 2 của vòng r ngay khi anh ta có CERT r-1. • Người dùng i đợi trong khoảng thời gian tối đa t2 \(\triangleq\) \(\lambda\) + Λ. Trong khi chờ đợi tôi làm như sau. 1. Sau khi đợi thời gian 2\(\lambda\), anh ta tìm được người dùng \(\ell\)sao cho H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j ) với mọi thông tin xác thực \(\sigma\)r,1 j đó là một phần của các tin nhắn được xác minh thành công (r, 1) mà anh ấy đã nhận được cho đến nay.a 2. Nếu anh ấy có đã nhận được một khối Br−1, cái nào trận đấu cái hash giá trị H(Br−1) chứa trong CERT r−1,b và nếu anh ta đã nhận được từ \(\ell\)một tin nhắn hợp lệ mr,1 \(\ell\) = (Anh \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),c thì tôi dừng chờ và đặt v′ tôi \(\triangleq\)(H(Br \(\ell\)), \(\ell\)). 3. Ngược lại, khi hết thời gian t2, tôi đặt v′ tôi \(\triangleq\) \(\bot\). 4. Khi giá trị của v′ tôi đã được thiết lập, tôi tính Qr−1 từ CERT r−1 và kiểm tra xem i \(\in\)SV r,2 hoặc không. 5. Nếu tôi \(\in\)SV r,2 thì tôi tính thông điệp mr,2 tôi \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 i ),d phá hủy phù du của mình khóa bí mật skr,2 i , và sau đó truyền bá mr,2 tôi . Nếu không, tôi dừng lại mà không lan truyền bất cứ điều gì. aVề cơ bản, người dùng i quyết định riêng rằng người dẫn đầu vòng r là người dùng \(\ell\). b Tất nhiên, nếu CERT r−1 chỉ ra rằng Br−1 = Br−1 ừ , thì tôi đã “nhận được” Br−1 ngay khi anh ấy có CERT r-1. cMột lần nữa, chữ ký của người chơi \(\ell\) và hash đều được xác minh thành công và TRẢ TIỀN r \(\ell\)ở Br \(\ell\)là một khoản thanh toán hợp lệ cho làm tròn r —mặc dù tôi không kiểm tra xem TRẢ TIỀN r \(\ell\)là tối đa cho \(\ell\)hoặc không. Nếu anh \(\ell\)chứa một tập thanh toán trống thì thực ra tôi không cần phải xem Br−1 trước khi xác minh xem Br \(\ell\)có hợp lệ hay không. dLời nhắn của ông,2 tôi tín hiệu mà người chơi i coi là thành phần đầu tiên của v′ tôi là hash của khối tiếp theo, hoặc coi khối tiếp theo là trống.
Bước 3: Bước thứ hai của GC Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước 3 của vòng r ngay khi anh ta có CERT r-1. • Người dùng i đợi trong khoảng thời gian tối đa t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ. Trong khi chờ đợi, tôi đóng vai theo sau. 1. Nếu tồn tại một giá trị v sao cho anh ta đã nhận được ít nhất tH tin nhắn hợp lệ mr,2 j của dạng (ESIGj(v), \(\sigma\)r,2 j ), không có bất kỳ mâu thuẫn nào, a sau đó anh ta ngừng chờ đợi và đặt v′ = v. 2. Ngược lại, khi hết thời gian t3, anh ta đặt v′ = \(\bot\). 3. Khi giá trị của v′ đã được đặt, tôi tính Qr−1 từ CERT r−1 và kiểm tra xem i \(\in\)SV r,3 hoặc không. 4. Nếu tôi \(\in\)SV r,3 thì tôi tính thông điệp mr,3 tôi \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 i ), phá hủy của anh ấy khóa bí mật phù du skr,3 i , rồi tuyên truyền mr,3 tôi . Nếu không, tôi dừng lại mà không tuyên truyền bất cứ điều gì. a Tức là anh ta chưa nhận được hai tin nhắn hợp lệ lần lượt chứa ESIGj(v) và ESIGj(ˆv) khác nhau, từ một người chơi j. Từ đây trở đi, ngoại trừ các Điều kiện kết thúc được xác định sau, bất cứ khi nào một người chơi trung thực muốn các tin nhắn có hình thức nhất định, các tin nhắn mâu thuẫn với nhau không bao giờ được tính hoặc coi là hợp lệ.
Bước 4: Đầu ra của GC và Bước đầu tiên của BBA⋆ Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu Bước 4 của vòng r ngay khi anh ta hoàn thành Bước 3 của riêng mình. • Người dùng i đợi một khoảng thời gian tối đa 2\(\lambda\).a Trong khi chờ đợi, i thực hiện như sau. 1. Anh ta tính vi và gi, đầu ra của GC, như sau. (a) Nếu tồn tại một giá trị v′ ̸= \(\bot\) sao cho anh ta đã nhận được ít nhất tH tin nhắn hợp lệ ông, 3 j = (ESIGj(v′), \(\sigma\)r,3 j ), sau đó anh ta ngừng chờ đợi và đặt vi \(\triangleq\)v′ và gi \(\triangleq\)2. (b) Nếu anh ta đã nhận được ít nhất th tin nhắn hợp lệ mr,3 j = (ESIGj(\(\bot\)), \(\sigma\)r,3 j ), sau đó anh ấy dừng lại chờ đợi và đặt vi \(\triangleq\) \(\bot\)và gi \(\triangleq\)0.b (c) Ngược lại, khi hết thời gian 2\(\lambda\), nếu tồn tại một giá trị v′ ̸= \(\bot\) sao cho anh ta có nhận được ít nhất ⌈tH 2 ⌉tin nhắn hợp lệ mr,j j = (ESIGj(v′), \(\sigma\)r,3 j ), thì anh ta đặt vi \(\triangleq\)v′ và gi \(\triangleq\)1.c (d) Ngược lại, khi hết thời gian 2\(\lambda\), anh ta đặt vi \(\triangleq\) \(\bot\) và gi \(\triangleq\)0. 2. Khi các giá trị vi và gi đã được đặt, i tính bi, đầu vào của BBA⋆, như sau: bi \(\triangleq\)0 nếu gi = 2, và bi \(\triangleq\)1 nếu ngược lại. 3. i tính Qr−1 từ CERT r−1 và kiểm tra xem i \(\in\)SV r,4 hay không. 4. Nếu i \(\in\)SV r,4, anh ta tính thông điệp mr,4 tôi \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), phá hủy của anh ấy khóa bí mật phù du skr,4 i , và tuyên truyền ông,4 tôi . Nếu không, tôi dừng lại mà không lan truyền bất cứ điều gì. aDo đó, tổng thời gian tối đa kể từ khi tôi bắt đầu Bước 1 của vòng r có thể là t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ. bCho dù Bước (b) có trong quy trình hay không không ảnh hưởng đến tính chính xác của nó. Tuy nhiên, sự hiện diện của Bước (b) cho phép Bước 4 kết thúc trong thời gian ít hơn 2\(\lambda\) nếu có đủ nhiều người xác minh Bước 3 đã “ký \(\bot\)”. cCó thể chứng minh rằng v’ trong trường hợp này, nếu tồn tại, phải là duy nhất.Bước s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: Bước cố định bằng tiền xu của BBA⋆ Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu các Bước của riêng mình trong vòng r ngay khi anh ta hoàn thành Bước s −1 của riêng mình. • Người dùng i đợi một khoảng thời gian tối đa 2\(\lambda\).a Trong khi chờ đợi, i thực hiện như sau. – Điều kiện kết thúc 0: Nếu tại một điểm bất kỳ tồn tại chuỗi v ̸= \(\bot\) và bước s′ sao cho (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3 —nghĩa là Bước s′ là bước Coin-Fixed-To-0, (b) tôi đã nhận được ít nhất tH tin nhắn hợp lệ mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),b và (c) tôi đã nhận được một tin nhắn hợp lệ (SIGj(Qr−1), \(\sigma\)r,1 j ) với j là số thứ hai thành phần của v, sau đó, tôi ngừng chờ đợi và kết thúc việc thực hiện Bước s của chính anh ấy (và trên thực tế là vòng r) ngay lập tức mà không cần truyền bá bất cứ thứ gì dưới dạng trình xác minh (r, s); đặt H(Br) là đầu tiên thành phần của v; và đặt CERT r của riêng mình thành tập hợp các tin nhắn mr,s′−1 j của bước (b) cùng với (SIGj(Qr−1), \(\sigma\)r,1 j ).c – Điều kiện kết thúc 1: Nếu tại bất kỳ điểm nào tồn tại bước s′ sao cho (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3 —nghĩa là Bước s′ là bước Cố định thành 1 xu và (b’) tôi đã nhận được ít nhất tH tin nhắn hợp lệ mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),d sau đó, tôi ngừng chờ đợi và kết thúc việc thực hiện Bước s của chính anh ấy (và trên thực tế là vòng r) phải không đi mà không truyền bá bất cứ thứ gì dưới dạng trình xác minh (r, s); đặt Br = Br Ă ; và tự đặt ra CERT r là tập hợp các thông điệp mr,s′−1 j của bước phụ (b'). – Nếu tại bất kỳ điểm anh ấy có đã nhận được tại ít nhất th hợp lệ ông,s−1 j ' là của cái hình thức (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), sau đó anh ta ngừng chờ đợi và đặt bi \(\triangleq\)1. – Nếu tại bất kỳ điểm anh ấy có đã nhận được tại ít nhất th hợp lệ ông,s−1 j ' là của cái hình thức (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), nhưng họ không đồng ý về cùng v thì anh ta dừng lại chờ đợi và đặt bi \(\triangleq\)0. – Ngược lại, khi hết thời gian 2\(\lambda\), tôi đặt bi \(\triangleq\)0. – Khi giá trị bi đã được đặt, tôi tính Qr−1 từ CERT r−1 và kiểm tra xem i \(\in\)SV r,s. – Nếu i \(\in\)SV r,s thì tôi tính thông điệp mr,s tôi \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) với vi là giá trị mà anh ấy đã tính toán ở Bước 4, phá hủy khóa bí mật phù du của anh ấy skr,s tôi, và sau đó tuyên truyền ông tôi . Nếu không, tôi dừng lại mà không truyền bá bất cứ điều gì. aDo đó, tổng thời gian tối đa kể từ khi tôi bắt đầu Bước 1 của vòng r có thể là ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3)\(\lambda\) + Λ. bTin nhắn như vậy từ người chơi j được tính ngay cả khi người chơi i cũng đã nhận được tin nhắn từ j ký tên 1. Những điều tương tự đối với Điều kiện kết thúc 1. Như đã trình bày trong phân tích, điều này nhằm đảm bảo rằng tất cả người dùng trung thực đều biết CERT r trong khoảng thời gian \(\lambda\) cách nhau. cNgười dùng bây giờ tôi đã biết H(Br) và kết thúc vòng r của chính anh ta. Anh ta chỉ cần đợi cho đến khi khối Br thực sự được được truyền bá cho anh ta, việc này có thể mất thêm thời gian. Anh ấy vẫn giúp truyền bá thông điệp với tư cách là một người dùng chung, nhưng không bắt đầu bất kỳ sự lan truyền nào dưới dạng trình xác minh (r, s). Đặc biệt, ông đã giúp truyền bá mọi thông điệp trong CERT r của anh ấy, đủ cho giao thức của chúng tôi. Lưu ý rằng anh ta cũng nên đặt bi \(\triangleq\)0 cho giao thức BA nhị phân, nhưng bi dù sao cũng không cần thiết trong trường hợp này. Những điều tương tự cho tất cả các hướng dẫn trong tương lai. dTrong trường hợp này, vj là gì không quan trọng. 65Bước s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: Bước cố định thành 1 xu của BBA⋆ Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu các Bước của riêng mình trong vòng r ngay khi anh ta hoàn thành Bước s −1 của riêng mình. • Người dùng i đợi trong thời gian tối đa 2\(\lambda\). Trong khi chờ đợi tôi làm như sau. – Điều kiện kết thúc 0: Hướng dẫn tương tự như ở bước Coin-Fixed-To-0. – Điều kiện kết thúc 1: Hướng dẫn tương tự như ở bước Coin-Fixed-To-0. – Nếu tại bất kỳ điểm anh ấy có đã nhận được tại ít nhất th hợp lệ ông,s−1 j ' là của cái hình thức (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), thì anh ta ngừng chờ đợi và đặt bi \(\triangleq\)0.a – Ngược lại, khi hết thời gian 2\(\lambda\), tôi đặt bi \(\triangleq\)1. – Khi giá trị bi đã được đặt, tôi tính Qr−1 từ CERT r−1 và kiểm tra xem i \(\in\)SV r,s. – Nếu i \(\in\)SV r,s thì tôi tính thông điệp mr,s tôi \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) với vi là giá trị mà anh ấy đã tính toán ở Bước 4, phá hủy khóa bí mật phù du của anh ấy skr,s tôi, và sau đó tuyên truyền ông tôi . Nếu không, tôi dừng lại mà không truyền bá bất cứ điều gì. aLưu ý rằng việc nhận được các thông báo tH hợp lệ (r, s −1) ký cho 1 có nghĩa là Điều kiện kết thúc 1. Bước s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: Bước lật xu thật của BBA⋆ Hướng dẫn cho mọi người dùng i \(\in\)PKr−k: Người dùng i bắt đầu các Bước của riêng mình trong vòng r ngay khi anh ta hoàn thành bước s −1 của chính mình. • Người dùng i đợi trong thời gian tối đa 2\(\lambda\). Trong khi chờ đợi tôi làm như sau. – Điều kiện kết thúc 0: Hướng dẫn tương tự như ở bước Coin-Fixed-To-0. – Điều kiện kết thúc 1: Hướng dẫn tương tự như ở bước Coin-Fixed-To-0. – Nếu tại bất kỳ điểm anh ấy có đã nhận được tại ít nhất th hợp lệ ông,s−1 j ' là của cái hình thức (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), sau đó anh ta ngừng chờ đợi và đặt bi \(\triangleq\)0. – Nếu tại bất kỳ điểm anh ấy có đã nhận được tại ít nhất th hợp lệ ông,s−1 j ' là của cái hình thức (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), sau đó anh ta ngừng chờ đợi và đặt bi \(\triangleq\)1. – Ngược lại, khi hết thời gian 2\(\lambda\), cho SV r,s−1 tôi là tập hợp các bộ xác minh (r, s −1) từ người mà anh ấy đã nhận được một tin nhắn hợp lệ mr,s−1 j , tôi đặt bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 tôi H(\(\sigma\)r,s−1 j )). – Khi giá trị bi đã được đặt, tôi tính Qr−1 từ CERT r−1 và kiểm tra xem i \(\in\)SV r,s. – Nếu i \(\in\)SV r,s thì tôi tính thông điệp mr,s tôi \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) với vi là giá trị mà anh ấy đã tính toán ở Bước 4, phá hủy khóa bí mật phù du của anh ấy skr,s tôi, và sau đó tuyên truyền ông tôi . Nếu không, tôi dừng lại mà không truyền bá bất cứ điều gì. Nhận xét. Về nguyên tắc, như được xem xét trong tiểu mục 6.2, giao thức có thể thực hiện nhiều tùy ý bước trong một số vòng. Nếu điều này xảy ra, như đã thảo luận, người dùng i \(\in\)SV r,s với s > \(\mu\) đã cạn kiệt
kho khóa tạm thời được tạo trước của anh ấy và phải xác thực tin nhắn (r, s) của anh ấy, mr,s tôi bởi một “thác” của những chìa khóa phù du. Do đó tin nhắn của tôi sẽ dài hơn một chút và truyền đi lâu hơn tin nhắn sẽ mất nhiều thời gian hơn một chút. Theo đó, sau rất nhiều bước của một vòng nhất định, giá trị của tham số \(\lambda\) sẽ tự động tăng nhẹ. (Nhưng nó trở lại bản gốc \(\lambda\) một lần khối được tạo ra và một vòng mới bắt đầu.) Tái thiết khối Round-r bởi những người không xác minh Hướng dẫn cho mọi người dùng i trong hệ thống: Người dùng i bắt đầu vòng r của riêng mình ngay khi anh ta có CERT r-1. • tôi làm theo hướng dẫn của từng bước của giao thức, tham gia tuyên truyền tất cả tin nhắn, nhưng không bắt đầu bất kỳ việc truyền bá nào trong một bước nếu anh ta không phải là người xác minh trong bước đó. • i kết thúc vòng r của chính anh ấy bằng cách nhập Điều kiện kết thúc 0 hoặc Điều kiện kết thúc 1 trong một số trường hợp bước, với CERT tương ứng r. • Từ đó trở đi, anh ta bắt đầu vòng r + 1 trong khi chờ nhận khối Br thực tế (trừ khi anh ấy đã nhận được nó), người có hash H(Br) đã bị CERT r ghim xuống. Một lần nữa, nếu CERT r chỉ ra rằng Br = Br ǫ, cái tôi biết Br ngay lúc anh ấy có CERT r. 6,4 Phân tích Algorand ′ 2 Phân tích Algorand ′ 2 dễ dàng được suy ra từ Algorand ′ 1. Về cơ bản, trong Algorand ′ 2, với xác suất áp đảo, (a) tất cả người dùng trung thực đều đồng ý trên cùng một khối Br; người lãnh đạo của một cái mới khối trung thực với xác suất ít nhất là ph = h2(1 + h −h2).
Algorand '
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)의 확률로 정직합니다.
Xử lý người dùng trung thực ngoại tuyến
Như chúng tôi đã nói, một người dùng trung thực tuân theo tất cả các hướng dẫn được quy định của mình, bao gồm cả việc trực tuyến. và chạy giao thức. Đây không phải là gánh nặng lớn trong Algorand, vì việc tính toán và băng thông yêu cầu từ một người dùng trung thực là khá khiêm tốn. Tuy nhiên, chúng ta hãy chỉ ra rằng Algorand có thể có thể dễ dàng sửa đổi để hoạt động theo hai mô hình, trong đó người dùng trung thực được phép ngoại tuyến những con số tuyệt vời. Trước khi thảo luận về hai mô hình này, chúng ta hãy chỉ ra rằng, nếu tỷ lệ người chơi trung thực là 95%, Algorand vẫn có thể chạy khi thiết lập tất cả các tham số giả sử thay vào đó h = 80%. Theo đó, Algorand sẽ tiếp tục hoạt động bình thường ngay cả khi có nhiều nhất một nửa số người chơi trung thực đã chọn ngoại tuyến (thực sự là một trường hợp chính của “vắng mặt”). Trên thực tế, tại bất kỳ thời điểm nào, ít nhất 80% người chơi trực tuyến sẽ trung thực. Từ sự tham gia liên tục đến sự trung thực lười biếng Như chúng ta đã thấy, Algorand ′ 1 và Algorand ′ 2 chọn tham số nhìn lại k. Bây giờ chúng ta hãy chỉ ra rằng việc chọn k lớn đúng cách sẽ cho phép loại bỏ yêu cầu tham gia liên tục. Yêu cầu này đảm bảo một tính chất quan trọng: cụ thể là, rằng giao thức BA cơ bản BBA⋆ có đa số trung thực phù hợp. Bây giờ chúng ta hãy giải thích lười biếng như thế nào sự trung thực cung cấp một cách thay thế và hấp dẫn để đáp ứng đặc tính này.
Hãy nhớ lại rằng người dùng i lười biếng nhưng trung thực nếu (1) anh ta làm theo tất cả các hướng dẫn được chỉ định của mình, khi anh ta được yêu cầu tham gia vào giao thức và (2) anh ta chỉ được yêu cầu tham gia vào giao thức rất hiếm khi—ví dụ, mỗi tuần một lần—với thông báo trước phù hợp và có khả năng nhận được lợi ích đáng kể phần thưởng khi tham gia. Để cho phép Algorand làm việc với những người chơi như vậy, chỉ cần “chọn người xác minh của vòng hiện tại giữa những người dùng đã có trong hệ thống ở vòng trước đó nhiều.” Quả thực, hãy nhớ lại rằng những người xác minh cho vòng r được chọn từ những người dùng trong vòng r −k và các lựa chọn được thực hiện dựa trên về đại lượng Qr-1. Lưu ý rằng một tuần bao gồm khoảng 10.000 phút và giả sử rằng một một vòng mất khoảng (ví dụ: trung bình) 5 phút, vì vậy một tuần có khoảng 2.000 vòng. Giả sử rằng, tại một thời điểm nào đó, người dùng tôi muốn lập kế hoạch cho thời gian của mình và biết liệu anh ta có định làm như vậy không một người xác minh trong tuần tới. Giao thức hiện chọn người xác minh cho vòng r từ người dùng trong làm tròn r −k −2.000 và các lựa chọn dựa trên Qr−2.001. Ở vòng r, người chơi tôi đã biết các giá trị Qr−2.000, . . . , Qr−1, vì chúng thực sự là một phần của blockchain. Khi đó, với mỗi M trong khoảng từ 1 đến 2.000, i là người xác minh ở bước s của vòng r + M khi và chỉ khi .H SIGi r + M, s, Qr+M−2,001 \(\leq\)p . Vì vậy, để kiểm tra xem liệu anh ta có được gọi làm người xác minh trong 2.000 vòng tiếp theo hay không, tôi phải tính \(\sigma\)M,s tôi = SIGi r + M, s, Qr+M−2,001 với M = 1 đến 2.000 và với mỗi bước s, đồng thời kiểm tra cho dù .H(\(\sigma\)M,s tôi ) \(\leq\)p đối với một số trong số chúng. Nếu việc tính toán chữ ký số mất một phần nghìn giây thì toàn bộ thao tác này sẽ khiến anh ta mất khoảng 1 phút tính toán. Nếu anh ta không được chọn làm người xác minh trong bất kỳ vòng nào trong số này, thì anh ta có thể ngoại tuyến với “lương tâm lương thiện”. Liệu anh ấy có liên tục đã tham gia, dù sao thì về cơ bản anh ấy cũng đã tiến được 0 bước trong 2.000 vòng tiếp theo! Nếu thay vào đó, anh ta được chọn làm người xác minh ở một trong những vòng này, sau đó anh ta chuẩn bị sẵn sàng (ví dụ: bằng cách thu thập tất cả thông tin cần thiết) để đóng vai trò là người xác minh trung thực ở vòng thích hợp. Bằng cách hành động như vậy, một người xác minh tiềm năng lười biếng nhưng trung thực chỉ bỏ lỡ việc tham gia tuyên truyền của các tin nhắn. Nhưng việc truyền bá thông điệp thường mạnh mẽ. Hơn nữa, người trả tiền và người được trả tiền của các khoản thanh toán được truyền gần đây dự kiến sẽ trực tuyến để xem điều gì xảy ra với các khoản thanh toán của họ, và do đó họ sẽ tham gia truyền bá thông điệp nếu họ trung thực.
오프라인 정직한 사용자 처리
우리가 말했듯이, 정직한 사용자는 온라인 접속을 포함하여 자신이 규정한 모든 지침을 따릅니다. 그리고 프로토콜을 실행합니다. 이는 Algorand에서 큰 부담이 되지 않습니다. 정직한 사용자에게 필요한 대역폭은 매우 적당합니다. 하지만 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보를 걸었을 것입니다! 대신에 그는 이 라운드 중 하나에서 검증자로 선택됩니다. 그런 다음 그는 자신을 준비합니다(예: 모든 것을 얻음으로써) 필요한 정보) 적절한 라운드에서 정직한 검증자 역할을 합니다. 그렇게 행동함으로써, 게으르지만 정직한 잠재적 검증자는 전파에 참여하는 것을 놓칠 뿐입니다. 메시지의. 그러나 메시지 전파는 일반적으로 강력합니다. 또한, 지급인과 수취인은 최근 전파된 결제는 온라인에서 결제가 어떻게 진행되는지 확인할 수 있을 것으로 예상됩니다. 따라서 그들은 정직하다면 메시지 전파에 참여할 것입니다.
Giao thức Algorand ′ với số tiền trung thực
Bây giờ, cuối cùng, chúng tôi trình bày cách thay thế giả định Đa số người dùng trung thực bằng nhiều hơn nữa. giả định Phần lớn tiền trung thực có ý nghĩa. Ý tưởng cơ bản là (theo hương vị proof-of-stake) “để chọn một người dùng i \(\in\)PKr−k thuộc về SV r,s với trọng số (tức là quyền quyết định) tỷ lệ với số tiền mà tôi sở hữu.”24 Theo giả định HMM của chúng tôi, chúng tôi có thể chọn xem số tiền đó có nên được sở hữu ở vòng r −k hay không hoặc tại (bắt đầu) vòng r. Giả sử rằng chúng tôi không bận tâm đến việc tham gia liên tục, chúng tôi lựa chọn sự lựa chọn sau này. (Để loại bỏ sự tham gia liên tục, chúng tôi đã chọn lựa chọn trước đây. Nói đúng hơn là với số tiền sở hữu ở vòng r −k −2.000.) Có nhiều cách để thực hiện ý tưởng này. Cách đơn giản nhất là giữ từng phím nhiều nhất là 1 đơn vị tiền và sau đó chọn ngẫu nhiên n người dùng i từ PKr−k sao cho a(r) tôi = 1. 24Chúng ta nên nói PKr−k−2.000 để thay thế việc tham gia liên tục. Để đơn giản, vì người ta có thể muốn yêu cầu dù sao đi nữa, chúng tôi vẫn sử dụng PKr−k để mang ít tham số hơn.
Cách thực hiện đơn giản nhất tiếp theo Việc triển khai đơn giản nhất tiếp theo có thể là yêu cầu mỗi khóa công khai sở hữu số lượng tối đa của tiền M, đối với một số M cố định. Giá trị M đủ nhỏ so với tổng số tiền tiền trong hệ thống, sao cho xác suất một khóa thuộc về bộ xác minh gồm nhiều hơn một bước vào —nói— k vòng là không đáng kể. Khi đó, khóa i \(\in\)PKr−k, sở hữu số tiền a(r) tôi ở vòng r, được chọn thuộc SV r,s nếu .H SIGi r, s, Qr−1 \(\leq\)p \(\cdot\) a(r) tôi M . Và tất cả tiến hành như trước đây. Triển khai phức tạp hơn Việc thực hiện cuối cùng “buộc một người giàu có tham gia hệ thống phải sở hữu nhiều chìa khóa”. Một cách triển khai thay thế, được mô tả dưới đây, khái quát hóa khái niệm trạng thái và xem xét mỗi người dùng i bao gồm K + 1 bản sao (i, v), mỗi bản được chọn độc lập để làm người xác minh, và sẽ sở hữu chìa khóa phù du của riêng mình (pkr,s tôi,v,skr,s i,v) trong bước s của vòng r. Giá trị K phụ thuộc về số tiền a(r) tôi thuộc sở hữu của tôi ở vòng r. Bây giờ chúng ta hãy xem một hệ thống như vậy hoạt động chi tiết hơn như thế nào. Số lượng bản sao Đặt n là số lượng phần tử dự kiến mục tiêu của mỗi bộ xác minh và đặt a(r) tôi là số tiền thuộc sở hữu của người dùng i ở vòng r. Gọi Ar là tổng số tiền sở hữu bởi người dùng trong PKr−k ở vòng r, nghĩa là, Ar = X i\(\in\)P Kr−k một(r) tôi . Nếu tôi là người dùng trong PKr−k thì các bản sao của tôi là (i, 1), . . . , (i, K + 1), ở đâu K = $ n \(\cdot\) một(r) tôi Ar % . Ví dụ. Đặt n = 1.000, Ar = 109 và a(r) tôi = 3,7 triệu. Sau đó, K = 103 \(\cdot\) (3,7 \(\cdot\) 106) 109 = ⌊3.7⌋= 3 . Người xác minh và thông tin xác thực Hãy để tôi là người dùng trong PKr−k với K + 1 bản sao. Với mỗi v = 1, . . . , K, copy (i, v) tự động thuộc SV r,s. Nghĩa là, thông tin xác thực của tôi là \(\sigma\)r,s i,v \(\triangleq\)SIGi((i, v), r, s, Qr−1), nhưng điều kiện tương ứng trở thành .H(\(\sigma\)r,s i,v) 1, tức là luôn đúng. Đối với bản sao (i, K + 1), với mỗi Bước s của vòng r, tôi kiểm tra xem .H SIGi (i, K + 1), r, s, Qr−1 \(\leq\)a(r) tôi n Ar −K .
Nếu vậy thì bản sao (i, K+1) thuộc SV r,s. Để chứng minh điều đó, tôi tuyên truyền bằng chứng xác thực \(\sigma\)r,1 i,K+1 = SIGi (i, K + 1), r, s, Qr−1 . Ví dụ. Như trong ví dụ trước, cho n = 1K, a(r) tôi = 3,7M, Ar = 1B, và tôi có 4 bản sao: (i, 1), . . . , (tôi, 4). Sau đó, 3 bản sao đầu tiên sẽ tự động thuộc về SV r,s. Đối với cái thứ 4, về mặt khái niệm, Algorand ′ tung một đồng xu thiên vị một cách độc lập, có xác suất xuất hiện Mặt ngửa là 0,7. Sao chép (i, 4) được chọn khi và chỉ nếu lần tung đồng xu là Ngửa. (Tất nhiên, việc lật xu thiên vị này được thực hiện bằng cách hashing, ký tên và so sánh —như chúng ta đã làm suốt bài viết này—để giúp tôi chứng minh kết quả của mình.) Kinh doanh như bình thường Đã giải thích cách chọn người xác minh và thông tin xác thực của họ như thế nào được tính toán ở mỗi bước của vòng r, việc thực hiện vòng này tương tự như đã được giải thích.
프로토콜 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의 각 단계에서 계산되므로 라운드 실행은 이미 설명한 것과 유사합니다.
Xử lý Fork
Đã giảm xác suất của các nhánh xuống 10−12 hoặc 10−18, thực tế không cần thiết phải xử lý chúng trong khả năng rất xa là chúng sẽ xảy ra. Tuy nhiên, Algorand cũng có thể sử dụng nhiều nhánh khác nhau thủ tục giải quyết, có hoặc không có bằng chứng về công việc. Một cách có thể hướng dẫn người dùng giải quyết các nhánh như sau: • Theo chuỗi dài nhất nếu người dùng nhìn thấy nhiều chuỗi. • Nếu có nhiều hơn một chuỗi dài nhất, hãy làm theo chuỗi có khối không trống ở cuối. Nếu tất cả chúng đều có các khối trống ở cuối, hãy xem xét các khối cuối cùng thứ hai của chúng. • Nếu có nhiều hơn một chuỗi dài nhất với các khối không trống ở cuối, giả sử các chuỗi đó là có độ dài r, theo sau khối có trưởng khối r có thông tin xác thực nhỏ nhất. Nếu có ràng buộc, làm theo khối có khối r có giá trị hash nhỏ nhất. Nếu vẫn còn mối quan hệ, hãy làm theo khối có khối r được sắp xếp theo thứ tự từ điển đầu tiên.
Fork 처리
포크가 발생할 확률을 10-12 또는 10-18로 줄임으로써 실질적으로 처리할 필요가 없습니다. 그런 일이 일어날 가능성은 희박합니다. 그러나 Algorand은 다양한 포크를 사용할 수도 있습니다. 작업 증명 유무에 관계없이 해결 절차. 사용자에게 포크를 해결하도록 지시하는 한 가지 가능한 방법은 다음과 같습니다. • 사용자에게 여러 체인이 표시되는 경우 가장 긴 체인을 따릅니다. • 가장 긴 체인이 두 개 이상인 경우 끝에 비어 있지 않은 블록이 있는 체인을 따릅니다. 만약에 모두 끝에 빈 블록이 있습니다. 마지막 두 번째 블록을 고려하세요. • 끝에 비어 있지 않은 블록이 있는 가장 긴 체인이 두 개 이상 있는 경우 체인은 다음과 같습니다. 길이가 r인 블록 r의 리더가 가장 작은 자격 증명을 가진 블록을 따릅니다. 인연이 있다면, 블록 r 자체가 가장 작은 hash 값을 갖는 블록을 따르십시오. 여전히 동점이 있는 경우 다음을 따르세요. 블록 r이 사전순으로 첫 번째로 정렬된 블록입니다.
Xử lý phân vùng mạng
Như đã nói, chúng tôi giả sử thời gian truyền tin nhắn giữa tất cả người dùng trong mạng bị giới hạn bởi \(\lambda\) và Λ. Đây không phải là một giả định chắc chắn vì Internet ngày nay rất nhanh và mạnh mẽ, và giá trị thực tế của các tham số này là khá hợp lý. Ở đây, chúng ta hãy chỉ ra rằng Algorand ′ 2 tiếp tục hoạt động ngay cả khi Internet thỉnh thoảng bị phân chia thành hai phần. Trường hợp khi Internet được phân chia thành nhiều hơn hai phần là tương tự nhau. 10.1 Phân vùng vật lý Trước hết, việc phân vùng có thể do nguyên nhân vật lý. Ví dụ, một trận động đất lớn có thể cuối cùng đã phá vỡ hoàn toàn mối liên hệ giữa Châu Âu và Châu Mỹ. Trong trường hợp này, những người dùng độc hại cũng bị phân vùng và không có liên lạc giữa hai phần. Như vậy
sẽ có hai Đối thủ, một cho phần 1 và một cho phần 2. Mỗi Đối thủ vẫn cố gắng phá vỡ giao thức trong phần riêng của nó. Giả sử việc phân vùng xảy ra ở giữa vòng r. Sau đó mỗi người dùng vẫn được chọn là một trình xác minh dựa trên PKr-k, với cùng xác suất như trước. Đặt HSV r,s tôi và MSV r,s tôi tương ứng là tập hợp các trình xác minh trung thực và độc hại trong bước s của phần i \(\in\){1, 2}. Chúng tôi có |HSV r,s 1 | + |MSV r,s 1 | + |HSV r,s 2 | + |MSV r,s 2 | = |HSV r,s| + |MSV r,s|. Lưu ý rằng |HSV r,s| + |MSV r,s| < |HSV r,s| + 2|MSV r,s| < 2tH với xác suất áp đảo. Nếu phần nào đó tôi có |HSV r,s tôi | + |MSV r,s tôi | \(\geq\)tH với xác suất không thể bỏ qua, ví dụ 1% thì xác suất |HSV r,s 3−i| + |MSV r,s 3−i| \(\geq\)tH là rất thấp, ví dụ: 10−16 khi F = 10−18. Trong trường hợp này, chúng ta cũng có thể coi phần nhỏ hơn là ngoại tuyến, bởi vì sẽ không có đủ người xác minh trong phần này để tạo chữ ký tH để chứng nhận một khối. Chúng ta hãy xem xét phần lớn hơn, ví dụ phần 1 mà không mất tính tổng quát. Mặc dù |HSV r,s| < tH với xác suất không đáng kể ở mỗi bước s, khi mạng được phân vùng, |HSV r,s 1 | có thể nhỏ hơn tH với xác suất không thể bỏ qua. Trong trường hợp này, Đối phương có thể, với một số xác suất không đáng kể khác, buộc giao thức BA nhị phân vào một ngã ba trong vòng r, với khối Br khác trống và khối trống Br ǫ cả hai đều có chữ ký hợp lệ.25 Ví dụ, trong một Bước Coin-Fixed-To-0 s, tất cả các trình xác minh trong HSV r,s 1 đã ký cho bit 0 và H(Br), và truyền bá chúng tin nhắn. Tất cả các trình xác minh trong MSV r,s 1 cũng đã ký 0 và H(Br), nhưng giữ lại tin nhắn của họ. Bởi vì |HSV r,s 1 | + |MSV r,s 1 | \(\geq\)tH, hệ thống có đủ chữ ký chứng nhận Br. Tuy nhiên, kể từ khi những người xác minh độc hại đã giữ lại chữ ký của họ, người dùng sẽ nhập bước s + 1, đây là bước Coin-Fixed-To1. Vì |HSV r,s 1 | < tH do phân vùng, các bộ xác minh trong HSV r,s+1 1 không thấy tH chữ ký cho bit 0 và tất cả chúng đều ký cho bit 1. Tất cả các trình xác minh trong MSV r,s+1 1 cũng làm như vậy. Bởi vì |HSV r,s+1 1 | + |MSV r,s+1 1 | \(\geq\)tH, hệ thống có đủ chữ ký chứng nhận Br ừ. kẻ thù sau đó tạo một nhánh bằng cách giải phóng chữ ký của MSV r,s 1 cho 0 và H(Br). Theo đó, sẽ có hai Qr, được xác định bởi các khối tương ứng của vòng r. Tuy nhiên, ngã ba sẽ không tiếp tục và chỉ một trong hai nhánh có thể phát triển ở vòng r + 1. Hướng dẫn bổ sung cho Algorand ′ 2. Khi nhìn thấy khối không trống Br và khối trống khối Br ǫ , theo sau cái không trống (và Qr được xác định bởi nó). Thật vậy, bằng cách hướng dẫn người dùng sử dụng khối không trống trong giao thức, nếu một khối lớn số lượng người dùng trung thực trong PKr+1−k nhận ra rằng có một ngã ba ở đầu vòng r +1, sau đó khối trống sẽ không có đủ người theo dõi và sẽ không phát triển. Giả sử đối thủ có thể phân vùng những người dùng trung thực để một số người dùng trung thực nhìn thấy Br (và có lẽ Br ǫ), và một số chỉ nhìn thấy anh ừ. Bởi vì Đối thủ không thể biết ai trong số họ sẽ là người xác minh theo sau Br và ai sẽ là người xác minh. sẽ là người xác minh theo sau Br ǫ , những người dùng trung thực được phân vùng ngẫu nhiên và mỗi người trong số họ vẫn trở thành người xác minh (đối với Br hoặc đối với Br ǫ) ở bước s > 1 với xác suất trang. Đối với những người dùng có ý đồ xấu, mỗi người trong số họ có thể có hai cơ hội để trở thành người xác minh, một cơ hội có Br và người kia với Br ǫ, mỗi cái có xác suất p độc lập. Đặt HSV r+1,s 1;Anh là tập hợp những người xác minh trung thực ở bước s của vòng r+1 theo sau Br. Các ký hiệu khác chẳng hạn như HSV r+1,s 1;Brǫ , MSV r+1,s 1;Anh và MSV r+1,s 1;Brū được xác định tương tự. Bởi Chernoffbound, thật dễ dàng 25Không thể có một nhánh với hai khối không trống có hoặc không có phân vùng, ngoại trừ không đáng kể xác suất.để thấy điều đó với xác suất áp đảo, |HSV r+1,s 1;Anh | + |HSV r+1,s 1;Brū | + |MSV r+1,s 1;Anh | + |MSV r+1,s 1;Brū | < 2tH. Theo đó, hai nhánh không thể cùng có chữ ký phù hợp xác nhận một khối cho vòng r + 1 trong cùng bước s. Hơn nữa, vì xác suất lựa chọn cho hai bước s và s′ là giống nhau và các lựa chọn là độc lập, cũng có xác suất áp đảo |HSV r+1,s 1;Anh | + |MSV r+1,s 1;Anh | + |HSV r+1,s′ 1;Brū | + |MSV r+1,s′ 1;Brū | < 2tH, với hai bước bất kỳ s và s′. Khi F = 10−18, bởi liên minh bị ràng buộc, miễn là Đối thủ không thể phân vùng những người dùng trung thực trong một thời gian dài (ví dụ 104 bước, tức là hơn 55 giờ với \(\lambda\) = 10 giây26), với xác suất cao (ví dụ 1−10−10) nhiều nhất một nhánh sẽ có chữ ký phù hợp tH để chứng nhận một khối ở vòng r + 1. Cuối cùng, nếu phân vùng vật lý đã tạo ra hai phần có kích thước gần giống nhau thì xác suất |HSV r,s tôi | + |MSV r,s tôi | \(\geq\)tH nhỏ đối với mỗi phần i. Sau một phân tích tương tự, ngay cả khi Đối thủ cố gắng tạo ra một ngã ba với xác suất không thể bỏ qua ở mỗi phần đối với vòng r, nhiều nhất một trong bốn nhánh có thể mọc ở vòng r + 1. 10.2 Phân vùng đối nghịch Thứ hai, việc phân vùng có thể do Kẻ thù gây ra nên thông điệp được truyền đi bởi những người dùng trung thực ở một phần sẽ không tiếp cận trực tiếp với những người dùng trung thực ở phần khác, nhưng Đối thủ có thể chuyển tiếp tin nhắn giữa hai phần. Tuy nhiên, một khi một tin nhắn từ một phần này đến được với người dùng trung thực ở phần kia thì nó sẽ được phổ biến ở phần sau như bình thường. Nếu Đối thủ sẵn sàng chi rất nhiều tiền, có thể tưởng tượng rằng anh ta có thể hack được Internet và phân vùng nó như thế này một thời gian. Phân tích tương tự như phân tích đối với phần lớn hơn trong phân vùng vật lý ở trên (phần nhỏ hơn một phần có thể được coi là có dân số 0): Đối thủ có thể tạo một nhánh và mỗi người dùng trung thực chỉ nhìn thấy một trong các nhánh, nhưng nhiều nhất một nhánh có thể phát triển. 10.3 Tổng phân vùng mạng Mặc dù việc phân vùng mạng có thể xảy ra và việc phân nhánh trong một vòng có thể xảy ra dưới các phân vùng, nhưng vẫn có không có gì mơ hồ kéo dài: một đợt fork tồn tại rất ngắn và trên thực tế chỉ kéo dài tối đa một vòng duy nhất. trong tất cả các phần của phân vùng ngoại trừ tối đa một phần, người dùng không thể tạo khối mới và do đó (a) nhận ra rằng có một phân vùng trong mạng và (b) không bao giờ dựa vào các khối sẽ “biến mất”. Lời cảm ơn Trước tiên chúng tôi xin cảm ơn Sergey Gorbunov, đồng tác giả của hệ thống Democoin được trích dẫn. Lời cảm ơn chân thành nhất xin gửi đến Maurice Herlihy, vì nhiều cuộc thảo luận mang tính khai sáng, vì đã chỉ ra chỉ ra rằng đường ống sẽ cải thiện hiệu suất thông lượng của Algorand và cải thiện đáng kể 26Lưu ý rằng người dùng hoàn thành một bước s mà không phải đợi 2\(\lambda\) thời gian chỉ khi anh ta đã nhìn thấy ít nhất tH chữ ký cho bước đó. cùng một tin nhắn. Khi không đủ chữ ký, mỗi bước sẽ kéo dài trong thời gian 2\(\lambda\).
trình bày của một phiên bản trước đó của bài viết này. Rất cám ơn Sergio Rajsbaum vì những nhận xét của ông về phiên bản trước của bài viết này. Cảm ơn Vinod Vaikuntanathan rất nhiều vì nhiều cuộc thảo luận sâu sắc và hiểu biết sâu sắc. Xin gửi lời cảm ơn chân thành đến Yossi Gilad, Rotem Hamo, Georgios Vlachos và Nickolai Zeldovich vì đã bắt đầu thử nghiệm những ý tưởng này cũng như có nhiều nhận xét và thảo luận hữu ích. Silvio Micali xin đích thân cảm ơn Ron Rivest vì vô số cuộc thảo luận và hướng dẫn trong nghiên cứu mật mã trong hơn 3 thập kỷ, vì đã đồng tác giả hệ thống thanh toán vi mô được trích dẫn điều đó đã truyền cảm hứng cho một trong những cơ chế lựa chọn người xác minh của Algorand. Chúng tôi hy vọng sẽ đưa công nghệ này lên một tầm cao mới. Trong khi đó việc đi lại và đồng hành là niềm vui lớn, mà chúng tôi rất biết ơn.
네트워크 파티션 처리
앞서 말했듯이, 우리는 네트워크의 모든 사용자 사이의 메시지 전파 시간이 \(\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의 검증자 선택 메커니즘 중 하나에 영감을 주었습니다. 우리는 이 기술을 다음 단계로 끌어올리기를 희망합니다. 그동안 여행과 교제 정말 재미있어요. 정말 감사해요.