Algorand: Menskalakan Perjanjian Bizantium untuk Cryptocurrency

Tác giả Jing Chen and Silvio Micali · 2017

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ệ.

Abstrak

Buku besar publik adalah rangkaian data yang tidak dapat diubah dan dapat dibaca dan ditambah oleh semua orang. Buku besar umum memiliki kegunaan yang tak terhitung banyaknya dan menarik. Mereka dapat mengamankan, di depan mata, segala jenis transaksi —seperti kepemilikan, penjualan, dan pembayaran—sesuai urutan terjadinya. Buku besar publik tidak hanya mengekang korupsi, namun juga memungkinkan penerapan yang sangat canggih —seperti cryptocurrency dan smart contracts. Mereka berdiri untuk merevolusi cara masyarakat demokratis beroperasi. Namun, seperti yang diterapkan saat ini, skalanya buruk dan tidak dapat mencapai potensinya. Algorand adalah cara yang benar-benar demokratis dan efisien untuk mengimplementasikan buku besar publik. Berbeda dengan sebelumnya implementasi berdasarkan bukti kerja, memerlukan jumlah komputasi yang dapat diabaikan, dan menghasilkan riwayat transaksi yang tidak akan “bercabang” dengan probabilitas yang sangat tinggi. Algorand didasarkan pada perjanjian Bizantium (yang baru dan super cepat) yang menyampaikan pesan. Agar lebih konkrit, kami akan mendeskripsikan Algorand hanya sebagai platform uang.

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.

Perkenalan

Uang menjadi semakin virtual. Diperkirakan sekitar 80% dari Amerika Serikat dolar saat ini hanya ada sebagai entri buku besar [5]. Instrumen keuangan lainnya juga mengikuti langkah serupa. Di dunia yang ideal, di mana kita dapat mengandalkan entitas pusat yang dipercaya secara universal, yang kebal terhadap semua kemungkinan serangan dunia maya, uang dan transaksi keuangan lainnya hanya dapat dilakukan secara elektronik. Sayangnya, kita tidak hidup di dunia seperti itu. Oleh karena itu, cryptocurrency terdesentralisasi, seperti itu seperti Bitcoin [29], dan sistem “smart contract”, seperti Ethereum, telah diusulkan [4]. Di inti dari sistem ini adalah buku besar bersama yang mencatat urutan transaksi dengan andal, ∗Ini adalah versi makalah ArXiv yang lebih formal (dan asinkron) oleh penulis kedua [24], sebuah makalah sendiri berdasarkan Gorbunov dan Micali [18]. Teknologi Algorand adalah objek berikut ini permohonan paten: 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,931beragam seperti pembayaran dan kontrak, dengan cara yang tidak dapat diubah. Teknologi pilihan untuk menjamin ketahanan terhadap kerusakan tersebut adalah blockchain. Blockchain berada di balik aplikasi seperti cryptocurrency [29], aplikasi keuangan [4], dan Internet of Things [3]. Beberapa teknik untuk mengelola buku besar berbasis blockchain telah diusulkan: bukti kerja [29], bukti kepemilikan [2], toleransi kesalahan Bizantium praktis [8], atau kombinasi tertentu. Namun saat ini, pengelolaan buku besar menjadi tidak efisien. Misalnya, proof-of-work milik Bitcoin pendekatan (berdasarkan konsep asli [14]) memerlukan banyak perhitungan, boros dan skalanya buruk [1]. Selain itu, secara de facto ia memusatkan kekuasaan di tangan yang sangat sedikit. Oleh karena itu kami ingin mengajukan metode baru untuk mengimplementasikan buku besar publik yang menawarkan kenyamanan dan efisiensi sistem terpusat yang dijalankan oleh otoritas yang terpercaya dan tidak dapat diganggu gugat, tanpa inefisiensi dan kelemahan penerapan desentralisasi saat ini. Kami menyebutnya pendekatan kami Algorand, karena kami menggunakan keacakan algoritmik untuk memilih, berdasarkan buku besar yang dibuat sejauh ini, sekumpulan verifikator yang bertugas membangun blok transaksi valid berikutnya. Tentu saja, kami memastikan bahwa pilihan tersebut terbukti kebal dari manipulasi dan tidak dapat diprediksi hingga saat ini pada menit-menit terakhir, namun juga pada akhirnya menjadi jelas secara universal. Pendekatan Algorand cukup demokratis, dalam artian tidak secara prinsip maupun de facto menciptakan kelas pengguna yang berbeda (sebagai “penambang” dan “pengguna biasa” di Bitcoin). Dalam Algorand “semua kekuasaan ada pada himpunan semua pengguna”. Salah satu properti penting dari Algorand adalah riwayat transaksinya hanya dapat bercabang dengan jumlah yang sangat kecil probabilitas (misalnya, satu dalam satu triliun, atau bahkan 10−18). Algorand juga dapat mengatasi beberapa masalah hukum dan kekhawatiran politik. Pendekatan Algorand berlaku untuk blockchains dan, lebih umum, untuk metode pembangkitan apa pun rangkaian blok yang tahan terhadap kerusakan. Kami sebenarnya mengajukan metode baru—alternatif dari, dan lebih efisien daripada, blockchains— yang mungkin merupakan kepentingan independen. 1.1 Asumsi dan Masalah Teknis Bitcoin Bitcoin adalah sistem yang sangat cerdik dan telah menginspirasi banyak penelitian selanjutnya. Namun, itu juga bermasalah. Mari kita rangkum asumsi mendasar dan masalah teknisnya—yang mana sebenarnya dimiliki oleh semua mata uang kripto yang, seperti Bitcoin, didasarkan pada proof-of-work. Untuk ringkasan ini, perlu diingat bahwa, di Bitcoin, pengguna dapat memiliki beberapa kunci publik skema tanda tangan digital, uang dikaitkan dengan kunci publik, dan pembayaran adalah a tanda tangan digital yang mentransfer sejumlah uang dari satu kunci publik ke kunci publik lainnya. Intinya, Bitcoin mengatur semua pembayaran yang diproses dalam rantai blok, B1, B2, . . ., masing-masing terdiri atas kelipatan pembayaran, sehingga seluruh pembayaran B1, dilakukan dalam urutan apa pun, diikuti oleh pembayaran B2, dalam urutan apa pun, dll., merupakan rangkaian pembayaran yang sah. Setiap blok rata-rata dihasilkan setiap 10 menit. Urutan blok ini adalah sebuah rantai, karena disusun sedemikian rupa untuk memastikan bahwa setiap perubahan terjadi secara merata dalam satu blok, meresap ke semua blok berikutnya, sehingga lebih mudah untuk mengenali perubahan apa pun riwayat pembayaran. (Seperti yang akan kita lihat, hal ini dicapai dengan memasukkan kriptografi ke dalam setiap blok hash dari yang sebelumnya.) Struktur blok seperti itu disebut sebagai blockchain. Asumsi: Mayoritas Kekuatan Komputasi yang Jujur Bitcoin berasumsi bahwa tidak ada yang berbahaya entitas (atau koalisi entitas jahat yang terkoordinasi) mengendalikan sebagian besar komputasi daya yang dikhususkan untuk pembangkitan blok. Faktanya, entitas seperti itu dapat mengubah blockchain,dan dengan demikian menulis ulang riwayat pembayaran, sesuai keinginan. Secara khusus, dapat melakukan pembayaran \(\wp\), memperoleh manfaat yang telah dibayarkan, dan kemudian “menghapus” jejak apa pun dari \(\wp\). Masalah Teknis 1: Limbah Komputasi Pendekatan proof-of-work Bitcoin untuk memblokir pembangkitan membutuhkan jumlah komputasi yang luar biasa. Saat ini, hanya dengan beberapa ratus ribuan kunci publik dalam sistem, hanya dapat dikumpulkan oleh 500 superkomputer terkuat hanya 12,8% persen dari total daya komputasi yang dibutuhkan dari pemain Bitcoin. Ini jumlah komputasi akan meningkat pesat jika semakin banyak pengguna yang bergabung dalam sistem. Masalah Teknis 2: Konsentrasi Kekuasaan Saat ini, karena jumlahnya yang selangit diperlukan komputasi, pengguna, mencoba membuat blok baru menggunakan desktop biasa (apalagi a ponsel), diperkirakan akan kehilangan uang. Memang benar, untuk menghitung blok baru dengan komputer biasa, biaya yang diharapkan dari listrik yang diperlukan untuk menggerakkan komputasi melebihi imbalan yang diharapkan. Hanya menggunakan kumpulan komputer yang dibuat khusus (yang tidak melakukan apa pun selain “menambang blok baru”), satu mungkin berharap mendapat untung dengan menghasilkan blok-blok baru. Oleh karena itu, saat ini, secara de facto, ada dua kelas pengguna yang terpisah: pengguna biasa, yang hanya melakukan pembayaran, dan kumpulan penambangan khusus, yang hanya mencari blok baru. Oleh karena itu, tidak mengherankan bahwa, hingga saat ini, total daya komputasi per blok generasi terletak hanya dalam lima kelompok. Dalam kondisi seperti itu, asumsi mayoritas kekuatan komputasi yang jujur menjadi kurang kredibel. Masalah Teknis 3: Ambiguitas Di Bitcoin, blockchain belum tentu unik. Memang bagian terakhirnya sering kali bercabang: blockchain mungkin —katakanlah— B1, . . . , Bk, B′ k+1, B′ k+2, menurut satu pengguna, dan B1, . . . , Bk, B′′ k+1, B′′ k+2, B′′ k+3 menurut pengguna lain. Baru setelah beberapa blok ada telah ditambahkan ke dalam rantai, dapatkah seseorang yakin bahwa k + 3 blok pertama akan sama untuk semua pengguna. Oleh karena itu, seseorang tidak dapat langsung mengandalkan pembayaran yang terdapat di blok terakhir rantai. Akan lebih bijaksana untuk menunggu dan melihat apakah blok tersebut sudah cukup dalam blockchain dan dengan demikian cukup stabil. Secara terpisah, permasalahan penegakan hukum dan kebijakan moneter juga telah diangkat mengenai Bitcoin.1 1.2 Algorand, Singkatnya Pengaturan Algorand bekerja dalam lingkungan yang sangat sulit. Secara singkat, (a) Lingkungan Tanpa Izin dan Izin. Algorand bahkan bekerja secara efisien dan aman dalam lingkungan yang benar-benar tanpa izin, di mana banyak pengguna diizinkan untuk bergabung secara sewenang-wenang sistem kapan saja, tanpa pemeriksaan atau izin apa pun. Tentu saja, Algorand berhasil bahkan lebih baik di lingkungan yang berizin. 1Anonimitas (semu) yang ditawarkan oleh Bitcoin pembayaran dapat disalahgunakan untuk pencucian uang dan/atau pendanaan individu kriminal atau organisasi teroris. Uang kertas tradisional atau emas batangan, yang pada prinsipnya menawarkan kesempurnaan anonimitas, seharusnya menimbulkan tantangan yang sama, namun fisik mata uang ini secara signifikan memperlambat pergerakan uang transfer dana, sehingga memungkinkan adanya pemantauan pada tingkat tertentu oleh lembaga penegak hukum. Kemampuan untuk “mencetak uang” adalah salah satu kekuatan mendasar suatu negara-bangsa. Oleh karena itu, pada prinsipnya masif Penerapan mata uang yang mengambang secara independen dapat membatasi kekuatan ini. Namun saat ini, Bitcoin masih jauh dari harapan ancaman terhadap kebijakan moneter pemerintah, dan karena masalah skalabilitasnya, hal ini mungkin tidak akan pernah terjadi.(b) Lingkungan yang Sangat Bermusuhan. Algorand bertahan melawan Musuh yang sangat kuat, yang mampu (1) secara instan merusak pengguna mana pun yang dia inginkan, kapan pun dia mau, dengan ketentuan, dalam a lingkungan tanpa izin, 2/3 uang dalam sistem adalah milik pengguna yang jujur. (Dalam a lingkungan yang diizinkan, berapa pun uangnya, cukuplah 2/3 penggunanya jujur.) (2) mengontrol sepenuhnya dan mengoordinasikan dengan sempurna semua pengguna yang rusak; dan (3) menjadwalkan pengiriman semua pesan, dengan ketentuan bahwa setiap pesan dikirim oleh pengguna yang jujur menjangkau 95% pengguna jujur dalam waktu \(\lambda\)m, yang semata-mata bergantung pada ukuran m. Properti Utama Meskipun kehadiran musuh kita yang kuat, di Algorand • Jumlah perhitungan yang diperlukan minimal. Intinya, tidak peduli berapa banyak penggunanya hadir dalam sistem, masing-masing dari seribu lima ratus pengguna harus melakukan paling banyak beberapa detik komputasi. • Blok Baru Dibuat dalam waktu kurang dari 10 menit, dan secara de facto tidak akan pernah meninggalkan blockchain. Misalnya, dalam ekspektasi, waktu untuk menghasilkan blok pada perwujudan pertama lebih sedikit daripada Λ + 12.4\(\lambda\), di mana Λ adalah waktu yang diperlukan untuk menyebarkan sebuah blok, dalam gosip peer-to-peer mode, tidak peduli berapa pun ukuran blok yang dipilih, dan \(\lambda\) adalah waktu untuk menyebarkan 1.500 pesan 200Blong. (Karena dalam sistem yang benar-benar terdesentralisasi, Λ pada dasarnya adalah latensi intrinsik, dalam Algorand faktor pembatas dalam pembuatan blok adalah kecepatan jaringan.) Perwujudan kedua memiliki sebenarnya telah diuji secara eksperimental ( oleh ?), menunjukkan bahwa sebuah blok dihasilkan dalam waktu kurang dari 40 detik. Selain itu, blockchain Algorand hanya dapat bercabang dengan probabilitas yang dapat diabaikan (yaitu, kurang dari satu dalam satu triliun), sehingga pengguna dapat meneruskan pembayaran yang terdapat dalam blok baru segera setelahnya blok muncul. • Semua kekuasaan berada di tangan pengguna itu sendiri. Algorand adalah sistem terdistribusi yang sebenarnya. Khususnya, tidak ada entitas eksogen (seperti “penambang” di Bitcoin), yang dapat mengontrol transaksi mana diakui. Teknik Algorand. 1. Protokol Perjanjian Bizantium yang Baru dan Cepat. Algorand menghasilkan blok baru melalui protokol kriptografi, penyampaian pesan, perjanjian biner Bizantium (BA), BA⋆. Protokol BA⋆tidak hanya memenuhi beberapa properti tambahan (yang akan segera kita bahas), namun juga sangat cepat. Secara kasar, versi input binernya terdiri dari loop 3 langkah, di mana pemain i mengirimkan satu pesan mi ke semua pemain lainnya. Dieksekusi dalam jaringan yang lengkap dan sinkron, dengan lebih banyak lagi dari 2/3 pemain jujur, dengan probabilitas > 1/3, setelah setiap loop berakhirnya protokol persetujuan. (Kami menekankan bahwa protokol BA⋆memenuhi definisi asli perjanjian Bizantium dari Pease, Shostak, dan Lamport [31], tanpa melemah apa pun.) Algorand memanfaatkan protokol BA biner ini untuk mencapai kesepakatan, dalam komunikasi kami yang berbeda model, di setiap blok baru. Blok yang disepakati kemudian disertifikasi, melalui sejumlah yang ditentukan tanda tangan digital dari verifikator yang tepat, dan disebarkan melalui jaringan. 2. Penyortiran Kriptografi. Meskipun sangat cepat, protokol BA⋆ akan mendapatkan manfaat lebih jauh kecepatan saat dimainkan oleh jutaan pengguna. Oleh karena itu, Algorand memilih pemain BA⋆untuk menjadisubset yang jauh lebih kecil dari himpunan semua pengguna. Untuk menghindari jenis konsentrasi kekuasaan yang berbeda masalah, setiap blok baru Br akan dibangun dan disepakati, melalui pelaksanaan BA⋆ baru, oleh sekelompok verifikator terpilih yang terpisah, SV r. Pada prinsipnya, memilih set seperti itu mungkin sama sulitnya memilih Br secara langsung. Kami mengatasi potensi masalah ini dengan pendekatan yang kami sebut merangkul saran mendalam dari Maurice Herlihy, penyortiran kriptografi. Penyortiran adalah praktik memilih pejabat secara acak dari sejumlah besar individu yang memenuhi syarat [6]. (Penyortiran dilakukan selama berabad-abad: misalnya, oleh republik Athena, Florence, dan Venesia. Dalam peradilan modern sistem, pemilihan acak sering digunakan untuk memilih juri. Pengambilan sampel secara acak juga baru-baru ini dilakukan menganjurkan pemilu oleh David Chaum [9].) Dalam sistem desentralisasi tentunya memilih koin acak yang diperlukan untuk memilih secara acak anggota setiap set pemverifikasi SV r bermasalah. Oleh karena itu kami menggunakan kriptografi untuk memilih setiap kumpulan verifikasi, dari populasi semua pengguna, dengan cara yang dijamin otomatis (yaitu tidak memerlukan pertukaran pesan) dan acak. Intinya, kami menggunakan fungsi kriptografi untuk menentukan secara otomatis, dari blok sebelumnya Br−1, pengguna, pemimpin, bertugas mengusulkan blok baru Br, dan pemverifikasi himpunan SV r, di bertugas untuk mencapai kesepakatan mengenai blok yang diusulkan oleh pemimpin. Karena pengguna jahat dapat mempengaruhi komposisi Br−1 (misalnya, dengan memilih beberapa pembayarannya), kami secara khusus membuat dan menggunakannya masukan tambahan untuk membuktikan bahwa pemimpin untuk blok ke-r dan himpunan pemverifikasi SV r memang benar dipilih secara acak. 3. Jumlah (Benih) Qr. Kita menggunakan blok terakhir Br−1 di blockchain untuk melakukannya secara otomatis menentukan set verifikasi berikutnya dan pemimpin yang bertugas membangun blok baru Sdr. Tantangan dalam pendekatan ini adalah, dengan hanya memilih pembayaran yang sedikit berbeda di dalamnya putaran sebelumnya, Musuh kita yang kuat memperoleh kendali luar biasa atas pemimpin berikutnya. Bahkan jika dia hanya mengendalikan 1/1000 pemain/uang dalam sistem, dia dapat memastikan bahwa semua pemimpin demikian berbahaya. (Lihat Intuisi Bagian 4.1.) Tantangan ini penting bagi semua pendekatan proof-of-stake, dan, sepanjang pengetahuan kami, hingga kini masalah ini belum terselesaikan dengan memuaskan. Untuk menghadapi tantangan ini, kami sengaja membangun, dan terus memperbarui, secara terpisah dan hati-hati kuantitas yang ditentukan, Qr, yang terbukti, tidak hanya tidak dapat diprediksi, tetapi juga tidak dapat dipengaruhi, oleh kita Musuh yang kuat. Kita dapat menyebut Qr sebagai benih ke-r, karena dari Qr itulah Algorand memilih, melalui penyortiran kriptografi rahasia, semua pengguna yang akan memainkan peran khusus dalam pembuatannya blok ke-r. 4. Penyortiran Kritografi Rahasia dan Kredensial Rahasia. Secara acak dan jelas menggunakan blok terakhir saat ini, Br−1, untuk memilih himpunan verifikasi dan pemimpin yang bertanggung jawab membangun blok baru, Br, tidaklah cukup. Karena Br−1 harus diketahui sebelum menghasilkan Br, kuantitas terakhir yang tidak dapat dipengaruhi Qr−1 yang terkandung dalam Br−1 harus diketahui juga. Oleh karena itu, demikian adalah verifikator dan pemimpin yang bertugas menghitung blok Br. Jadi, Musuh kita yang kuat mungkin akan langsung merusak semuanya, sebelum mereka terlibat dalam diskusi apa pun tentang Br, untuk mendapatkan kontrol penuh atas blok yang mereka sertifikasi. Untuk mencegah masalah ini, para pemimpin (dan sebenarnya juga para pemeriksa) secara diam-diam mengetahui peran mereka, namun mereka bisa menghitung kredensial yang tepat, yang mampu membuktikan kepada semua orang bahwa memang memiliki peran tersebut. Kapan Ketika pengguna secara diam-diam menyadari bahwa dia adalah pemimpin untuk blok berikutnya, pertama-tama dia secara diam-diam merakit bloknya sendiri sendiri yang mengusulkan blok baru, dan kemudian menyebarkannya (sehingga dapat disertifikasi) bersama dengan blok miliknya kredensial. Dengan cara ini, Musuh akan segera menyadari siapa pemimpin selanjutnya blok tersebut, dan meskipun ia dapat langsung merusaknya, maka sudah terlambat bagi Musuh untuk melakukannya mempengaruhi pilihan blok baru. Memang benar, dia tidak bisa “memanggil kembali” pesan pemimpinnya lagidaripada pemerintah yang kuat dapat memasukkan kembali pesan yang disebarkan secara viral oleh WikiLeaks. Seperti yang akan kita lihat, kita tidak bisa menjamin keunikan pemimpin, dan semua orang juga tidak yakin siapa pemimpinnya adalah, termasuk pemimpinnya sendiri! Namun, pada Algorand, kemajuan pasti akan terjamin. 5. Penggantian Pemain. Setelah dia mengusulkan blok baru, pemimpinnya mungkin akan “mati” (atau mati). dirusak oleh Musuh), karena tugasnya telah selesai. Namun, bagi para verifikator di SV r, keadaannya tidak begitu baik sederhana. Memang, bertugas mengesahkan blok baru Br dengan tanda tangan yang cukup banyak, mereka harus terlebih dahulu menjalankan perjanjian Bizantium pada blok yang diusulkan oleh pemimpinnya. Masalahnya adalah, tidak peduli seberapa efisiennya, BA⋆membutuhkan banyak langkah dan kejujuran> 2/3 pemainnya. Hal ini menjadi masalah karena, demi alasan efisiensi, himpunan pemain BA⋆ terdiri dari himpunan kecil SV r dipilih secara acak di antara kumpulan semua pengguna. Jadi, Musuh kita kuat, meski tidak mampu merusak 1/3 dari seluruh pengguna, tentu dapat merusak seluruh anggota SV r! Untungnya kami akan membuktikan bahwa protokol BA⋆, yang dijalankan dengan menyebarkan pesan dengan cara peer-topeer, dapat digantikan oleh pemain. Persyaratan baru ini berarti protokolnya benar dan mencapai konsensus secara efisien bahkan jika setiap langkahnya dijalankan dengan cara yang benar-benar baru dan acak dan dipilih secara independen, sekelompok pemain. Jadi, dengan jutaan pengguna, masing-masing terdiri dari sekelompok kecil pemain terkait dengan langkah BA⋆kemungkinan besar memiliki perpotongan kosong dengan himpunan berikutnya. Selain itu, kumpulan pemain dengan langkah BA⋆ yang berbeda mungkin akan memiliki karakter yang sangat berbeda kardinalitas. Selain itu, anggota setiap set tidak mengetahui siapa pemain berikutnya jadilah, dan jangan diam-diam melewati keadaan internal apa pun. Properti pemain yang dapat diganti sebenarnya sangat penting untuk mengalahkan yang dinamis dan sangat kuat Musuh yang kami bayangkan. Kami percaya bahwa protokol pemain yang dapat diganti akan terbukti penting dalam banyak hal konteks dan aplikasi. Secara khusus, hal ini akan sangat penting untuk melaksanakan sub-protokol kecil dengan aman tertanam di dunia pemain yang lebih besar dengan musuh yang dinamis, yang bahkan mampu merusak sebagian kecil dari total pemain, tidak mengalami kesulitan untuk merusak semua pemain yang lebih kecil sub-protokol. Properti/Teknik Tambahan: Kejujuran Malas Pengguna yang jujur mengikuti resepnya instruksi, termasuk online dan menjalankan protokol. Karena, Algorand hanya memiliki sedikit saja kebutuhan komputasi dan komunikasi, online dan menjalankan protokol “di latar belakang” bukanlah pengorbanan besar. Tentu saja, ada beberapa “ketidakhadiran” di antara pemain jujur, seperti itu karena hilangnya konektivitas secara tiba-tiba atau perlunya reboot, secara otomatis ditoleransi (karena kami selalu dapat menganggap beberapa pemain tersebut sebagai pemain jahat untuk sementara waktu). Namun, mari kita tunjukkan, bahwa Algorand dapat dengan mudah diadaptasi agar berfungsi dalam model baru, di mana pengguna yang jujur sering kali offline. Model baru kami dapat diperkenalkan secara informal sebagai berikut. Kejujuran yang Malas. Secara kasar, pengguna i malas-tapi-jujur jika (1) dia mengikuti semua yang ditentukan instruksi, ketika dia diminta untuk berpartisipasi dalam protokol, dan (2) dia diminta untuk berpartisipasi ke protokol jarang sekali, dan dengan pemberitahuan terlebih dahulu. Dengan gagasan yang santai tentang kejujuran, kita mungkin bahkan lebih yakin bahwa orang-orang jujur juga demikian tersedia ketika kita membutuhkannya, dan Algorand menjamin bahwa, ketika hal ini terjadi, Sistem beroperasi dengan aman meskipun, pada titik waktu tertentu, mayoritas pemain yang berpartisipasi jahat.1.3 Pekerjaan yang Berhubungan Dekat Pendekatan bukti kerja (seperti [29] dan [4] yang dikutip) cukup ortogonal dengan pendekatan kami. Begitu juga dengan pendekatan yang didasarkan pada persetujuan Bizantium yang menyampaikan pesan atau toleransi kesalahan Bizantium yang praktis (seperti yang dikutip [8]). Memang benar, protokol-protokol ini tidak dapat dijalankan di antara semua pengguna dan tidak dapat, dalam model kami, dibatasi hanya untuk sekelompok kecil pengguna. Faktanya, musuh kita yang kuat adalah saya segera merusak semua pengguna yang terlibat dalam sekelompok kecil yang dibebankan untuk benar-benar menjalankan protokol BA. Pendekatan kami dapat dianggap terkait dengan bukti kepemilikan [2], dalam artian “kekuatan” pengguna dalam pembangunan blok sebanding dengan uang yang mereka miliki dalam sistem (berbeda dengan —katakanlah— untuk uang yang mereka masukkan ke dalam “escrow”). Makalah yang paling dekat dengan kami adalah Model Konsensus Mengantuk dari Pass dan Shi [30]. Untuk menghindari perhitungan berat diperlukan dalam pendekatan proof-of-work, makalah mereka bergantung pada (dan ramah kredit) penyortiran kriptografi rahasia Algorand. Dengan kesamaan aspek penting ini, ada beberapa ada perbedaan yang signifikan antara makalah kami. Khususnya, (1) Pengaturannya hanya diperbolehkan. Sebaliknya, Algorand juga merupakan sistem tanpa izin. (2) Mereka menggunakan protokol gaya Nakamoto, dan dengan demikian blockchain mereka sering kali bercabang. Meskipun tanpa proof-of-work, dalam protokol mereka seorang pemimpin yang dipilih secara diam-diam diminta untuk memperpanjang valid terlama (dalam arti yang lebih kaya) blockchain. Oleh karena itu, percabangan tidak dapat dihindari dan kita harus menunggunya blok tersebut cukup “dalam” di dalam rantai. Memang, untuk mencapai tujuan mereka dengan musuh mampu melakukan korupsi adaptif, mereka memerlukan blok yang memiliki kedalaman poli(N), di mana N mewakili jumlah total pengguna dalam sistem. Perhatikan hal itu, bahkan dengan asumsi bahwa sebuah blok dapat diproduksi dalam satu menit, jika ada N = 1 juta pengguna, maka seseorang harus menunggu sekitar 2 juta tahun untuk bisa mendapatkannya satu blok menjadi sedalam N 2, dan selama sekitar 2 tahun agar satu blok menjadi sedalam N. Sebaliknya, Algorand blockchain bercabang hanya dengan kemungkinan yang dapat diabaikan, meskipun Musuh korup pengguna secara cepat dan adaptif, dan blok-blok barunya dapat segera diandalkan. (3) Mereka tidak menangani perjanjian Bizantium secara individual. Dalam arti tertentu, mereka hanya menjamin “konsensus akhir mengenai rangkaian nilai yang berkembang”. Protokol mereka adalah protokol replikasi negara daripada BA, dan tidak dapat digunakan untuk mencapai kesepakatan Bizantium mengenai nilai kepentingan individu. Sebaliknya, Algorand juga dapat digunakan hanya sekali, jika diinginkan, untuk memungkinkan jutaan pengguna dengan cepat mencapai kesepakatan Bizantium mengenai nilai bunga tertentu. (4) Mereka memerlukan jam yang disinkronkan dengan lemah. Artinya, semua jam pengguna diimbangi dengan waktu yang kecil δ. Sebaliknya, di Algorand, jam hanya perlu memiliki (pada dasarnya) “kecepatan” yang sama. (5) Protokol mereka bekerja dengan pengguna yang malas tapi jujur ​​atau dengan mayoritas pengguna online yang jujur. Mereka dengan hormat memuji Algorand karena telah mengangkat masalah pengguna jujur yang online secara massal, dan untuk mengedepankan model kejujuran yang malas sebagai tanggapannya. Protokol mereka tidak hanya berfungsi pada orang yang malas model kejujuran, tetapi juga dalam model mengantuk permusuhan, di mana musuh memilih pengguna yang mana sedang online dan mana yang offline, asalkan mayoritas pengguna online selalu jujur.2 2Versi asli dari makalah mereka sebenarnya hanya mempertimbangkan keamanan dalam model mengantuk mereka yang bermusuhan. Itu versi asli Algorand, yang mendahului versi mereka, juga secara eksplisit dipertimbangkan dengan asumsi bahwa mayoritas penduduk pemain online selalu jujur, namun secara eksplisit mengecualikannya dari pertimbangan, mendukung model kejujuran yang malas. (Misalnya, jika suatu saat setengah dari pengguna jujur memilih untuk offline, maka mayoritas pengguna online mungkin sangat berbahaya. Jadi, untuk mencegah hal ini terjadi, Musuh harus memaksakan sebagian besar kekuatannya pemain yang korup untuk offline juga, yang jelas-jelas bertentangan dengan kepentingannya sendiri.) Perhatikan bahwa protokol dengan mayoritas Pemain yang malas tapi jujur akan bekerja dengan baik jika mayoritas pengguna online selalu jahat. Hal ini terjadi karena sejumlah pemain jujur, mengetahui bahwa mereka akan menjadi krusial pada suatu saat tertentu, akan memilih tidak boleh offline pada saat-saat itu, juga tidak dapat dipaksa offline oleh Musuh, karena dia tidak tahu siapa yang mungkin pemain jujur yang penting.(6) Mereka memerlukan mayoritas yang sederhana dan jujur. Sebaliknya, versi Algorand saat ini memerlukan mayoritas jujur 2/3. Makalah lain yang dekat dengan kami adalah Ouroboros: Protokol Blockchain Bukti Saham yang Terbukti Aman, oleh Kiayias, Russell, David, dan Oliynykov [20]. Sistem mereka juga muncul setelah sistem kita. Itu juga menggunakan penyortiran kriptografi untuk membuang bukti kerja dengan cara yang dapat dibuktikan. Namun, mereka Sistem ini, sekali lagi, merupakan protokol gaya Nakamoto, yang mana percabangan tidak dapat dihindari dan sering terjadi. (Namun, dalam model mereka, hambatan tidak perlu sedalam model konsensus yang mengantuk.) Selain itu, sistem mereka bergantung pada asumsi berikut: menurut penulisnya sendiri, “(1) the jaringan sangat sinkron, (2) mayoritas pemangku kepentingan terpilih tersedia sesuai kebutuhan untuk berpartisipasi dalam setiap zaman, (3) para pemangku kepentingan tidak harus offline dalam jangka waktu yang lama, (4) adaptasi korupsi tunduk pada penundaan kecil yang diukur dalam putaran linear parameter keamanan.” Sebaliknya, Algorand, dengan kemungkinan besar, bebas fork, dan tidak bergantung pada salah satu dari 4 asumsi ini. Khususnya, di Algorand, Musuh mampu melakukannya secara instan merusak pengguna yang ingin dia kendalikan.

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

Persiapan

2.1 Primitif Kriptografi Hash yang Ideal. Kita akan mengandalkan fungsi kriptografi hash yang dapat dihitung secara efisien, H, yang memetakan string panjang sembarang ke string biner dengan panjang tetap. Mengikuti tradisi panjang, kami menjadi model H sebagai oracle acak, pada dasarnya adalah fungsi yang memetakan setiap kemungkinan string s ke secara acak dan string biner yang dipilih secara independen (dan kemudian diperbaiki), H(s), dengan panjang yang dipilih. Dalam makalah ini, H memiliki keluaran sepanjang 256-bit. Memang, panjang tersebut cukup pendek untuk membuat sistem efisien dan cukup lama untuk membuat sistem aman. Misalnya, kita ingin H tahan benturan. Artinya, akan sulit untuk menemukan dua string berbeda x dan y sehingga H(x) = H(y). Ketika H adalah oracle acak dengan output panjang 256-bit, menemukan pasangan string seperti itu memang merupakan hal yang sulit. sulit. (Mencoba secara acak, dan mengandalkan paradoks ulang tahun, akan membutuhkan 2256/2 = 2128 cobaan.) Penandatanganan Digital. Tanda tangan digital memungkinkan pengguna untuk mengotentikasi informasi satu sama lain tanpa membagikan kunci rahasia apa pun. Skema tanda tangan digital terdiri dari tiga cepat algoritma: generator kunci probabilistik G, algoritma penandatanganan S, dan algoritma verifikasi V. Mengingat parameter keamanan k, bilangan bulat yang cukup tinggi, pengguna i menggunakan G untuk menghasilkan sepasang kunci k-bit (yaitu, string): pki kunci “publik” dan ski kunci penandatanganan “rahasia” yang cocok. Yang terpenting, a kunci publik tidak “mengkhianati” kunci rahasianya. Maksudnya, walaupun diberi ilmu pki, tidak orang lain selain saya mampu menghitung ski dalam waktu kurang dari waktu astronomi. Pengguna saya menggunakan ski untuk menandatangani pesan secara digital. Untuk setiap pesan yang mungkin (string biner) m, i terlebih dahulu hashes m lalu jalankan algoritma S pada input H(m) dan ski sehingga menghasilkan string k-bit sigpki(m) \(\triangleq\)S(H(m), ski) .3 3Karena H tahan benturan, maka secara praktis tidak mungkin bahwa, dengan menandatangani m seseorang “secara tidak sengaja menandatangani” tanda yang berbeda pesan m′.String biner sigpki(m) disebut sebagai tanda tangan digital i dari m (relatif terhadap pki), dan dapat berupa lebih sederhana dilambangkan dengan sigi(m), ketika kunci publik pki jelas dari konteksnya. Setiap orang yang mengetahui PKI dapat menggunakannya untuk memverifikasi tanda tangan digital yang dihasilkan oleh i. Secara khusus, pada memasukkan (a) kunci publik pki dari pemain i, (b) pesan m, dan (c) string s, yaitu dugaan i tanda tangan digital dari pesan m, algoritma verifikasi V mengeluarkan output YA atau TIDAK. Properti yang kami perlukan dari skema tanda tangan digital adalah: 1. Tanda tangan yang sah selalu diverifikasi: Jika s = sigi(m), maka V (pki, m, s) = Y ES; dan 2. Tanda tangan digital sulit dipalsukan: Tanpa pengetahuan ski, tidak ada waktu untuk menemukan string seperti itu bahwa V (pki, m, s) = Y ES, untuk pesan m yang tidak pernah ditandatangani oleh i, panjangnya secara astronomis. (Mengikuti persyaratan keamanan yang kuat dari Goldwasser, Micali, dan Rivest [17], ini benar bahkan jika seseorang dapat memperoleh tanda tangan dari pesan lainnya.) Oleh karena itu, untuk mencegah orang lain menandatangani pesan atas namanya, pemain harus mempertahankan miliknya menandatangani kunci rahasia ski (karenanya disebut “kunci rahasia”), dan untuk memungkinkan siapa pun memverifikasi pesan tersebut dia menandatangani, saya tertarik untuk mempublikasikan pki kuncinya (karena itu istilah “kunci publik”). Secara umum, pesan m tidak dapat diambil dari tanda tangannya sigi(m). Untuk bertransaksi secara virtual dengan tanda tangan digital yang memenuhi properti “retrievability” yang secara konseptual mudah digunakan (yaitu, untuk jaminan bahwa penandatangan dan pesan dapat dihitung dengan mudah dari sebuah tanda tangan, kami definisikan SIGpki(m) = (i, m, sigpki(m)) dan SIGi(m) = (i, m, sigi(m)), jika pki jelas. Penandatanganan Digital Unik. Kami juga mempertimbangkan skema tanda tangan digital (G, S, V) yang memuaskan mengikuti properti tambahan. 3. Keunikan. Sulit untuk menemukan string pk′, m, s, dan s′ sedemikian rupa ̸= s′ dan V (pk′, m, s) = V (pk′, m, s′) = 1. (Perhatikan bahwa properti keunikan juga berlaku untuk string pk′ yang tidak dihasilkan secara sah kunci publik. Namun secara khusus, sifat keunikan menyiratkan bahwa, jika seseorang menggunakan generator kunci tertentu G untuk menghitung pk kunci publik bersama dengan kunci rahasia sk yang cocok, dan dengan demikian mengetahui sk, pada dasarnya mustahil baginya untuk menemukan dua digital yang berbeda tanda tangan dari pesan yang sama relatif terhadap pk.) Keterangan • Dari tanda tangan unik hingga fungsi acak yang dapat diverifikasi. Relatif terhadap digital skema tanda tangan dengan properti keunikan, pemetaan m \(\to\) H(sigi(m)) diasosiasikan ke setiap kemungkinan string m, string 256-bit unik yang dipilih secara acak, dan kebenarannya pemetaan dapat dibuktikan dengan diberi tanda tangan sigi(m). Artinya, skema hashing dan tanda tangan digital yang ideal pada dasarnya memenuhi properti keunikan memberikan implementasi dasar dari fungsi acak yang dapat diverifikasi, seperti yang diperkenalkan dan oleh Micali, Rabin, dan Vadhan [27]. (Implementasi awalnya tentu saja lebih kompleks, karena mereka tidak mengandalkan hashing yang ideal.)• Tiga kebutuhan berbeda untuk tanda tangan digital. Di Algorand, pengguna yang saya andalkan adalah digital tanda tangan untuk (1) Mengautentikasi pembayaran saya sendiri. Dalam aplikasi ini, kunci dapat bersifat “jangka panjang” (yaitu, digunakan untuk jangka waktu tertentu). menandatangani banyak pesan dalam jangka waktu yang lama) dan berasal dari skema tanda tangan biasa. (2) Menghasilkan kredensial yang membuktikan bahwa i berhak bertindak pada beberapa langkah s dalam putaran r. Di sini, kuncinya bisa bersifat jangka panjang, tetapi harus berasal dari skema yang memenuhi properti keunikan. (3) Mengautentikasi pesan yang saya kirimkan pada setiap langkah tindakannya. Di sini, kuncinya harus ada bersifat sementara (yaitu, dimusnahkan setelah penggunaan pertama), tetapi dapat berasal dari skema tanda tangan biasa. • Penyederhanaan biaya yang kecil. Untuk mempermudah, kami membayangkan setiap pengguna i memiliki satu kunci jangka panjang. Oleh karena itu, kunci tersebut harus berasal dari skema tanda tangan yang memiliki keunikan properti. Kesederhanaan seperti itu memiliki biaya komputasi yang kecil. Biasanya, sebenarnya, digital unik tanda tangan sedikit lebih mahal untuk diproduksi dan diverifikasi dibandingkan tanda tangan biasa. 2.2 Buku Besar Umum yang Diidealkan Algorand mencoba meniru sistem pembayaran berikut, berdasarkan buku besar umum yang diidealkan. 1. Status Awal. Uang dikaitkan dengan kunci publik individual (dihasilkan secara pribadi dan dimiliki oleh pengguna). Membiarkan pk1, . . . , pkj menjadi kunci publik awal dan a1, . . . , aj masing-masing jumlah awal satuan uang, maka status awalnya adalah S0 = (pk1, a1), . . . , (pkj, aj) , yang dianggap sebagai pengetahuan umum dalam sistem. 2. Pembayaran. Misalkan pk adalah kunci publik yang saat ini mempunyai \(\geq\)0 unit uang, pk′ publik lainnya kunci, dan a′ bilangan non-negatif yang tidak lebih besar dari a. Kemudian, pembayaran (sah) adalah digital tanda tangan, relatif terhadap pk, yang menetapkan transfer unit moneter a′ dari pk ke pk′, secara bersamaan dengan beberapa informasi tambahan. Dalam simbol, \(\wp\)= SIGpk(pk, pk′, a′, I, H(I)), di mana saya mewakili informasi tambahan apa pun yang dianggap berguna tetapi tidak sensitif (misalnya, waktu informasi dan pengidentifikasi pembayaran), dan saya informasi tambahan apa pun yang dianggap sensitif (misalnya, alasan pembayarannya, mungkin identitas pemilik pk dan pk′, dan sebagainya). Kita menyebut pk (atau pemiliknya) sebagai pembayar, setiap pk′ (atau pemiliknya) sebagai penerima pembayaran, dan a′ sebagai jumlah pembayaran \(\wp\). Bergabung Gratis Melalui Pembayaran. Perhatikan bahwa pengguna dapat bergabung dengan sistem kapan pun mereka mau menghasilkan pasangan kunci publik/rahasianya sendiri. Oleh karena itu, kunci publik pk′ yang muncul di pembayaran \(\wp\)di atas mungkin merupakan kunci publik yang baru dibuat dan belum pernah “memiliki” uang apa pun sebelumnya. 3. Buku Besar Ajaib. Dalam Sistem Ideal, semua pembayaran valid dan muncul dalam bukti kerusakan daftar L kumpulan pembayaran yang “diposting di langit” agar semua orang dapat melihatnya: L = BAYAR 1, BAYAR 2, . . . ,Setiap blok PAY r+1 terdiri dari himpunan semua pembayaran yang dilakukan sejak munculnya blok MEMBAYAR r. Dalam sistem ideal, blok baru muncul setelah jangka waktu tertentu (atau terbatas). Diskusi. • Lebih Banyak Pembayaran Umum dan Hasil Transaksi yang Tidak Dibelanjakan. Lebih umum lagi, jika kunci publik pk memiliki sejumlah a, maka pembayaran sah \(\wp\)pk dapat mentransfer sejumlah a′ 1, sebuah′ 2, . . ., masing-masing ke kunci pk′ 1, pk′ 2, . . ., selama P j a′ j \(\leq\)a. Dalam Bitcoin dan sistem serupa, uang yang dimiliki oleh pk kunci publik dipisahkan menjadi beberapa bagian terpisah. jumlah, dan pembayaran yang dilakukan oleh pk harus mentransfer jumlah terpisah a secara keseluruhan. Jika pk ingin mentransfer hanya sebagian kecil a′ < a dari a ke kunci lain, maka pk juga harus mentransfernya saldo, keluaran transaksi yang belum terpakai, ke kunci lain, mungkin pk itu sendiri. Algorand juga berfungsi dengan kunci yang memiliki jumlah terpisah. Namun, untuk fokus pada aspek baru dari Algorand, secara konseptual lebih mudah untuk tetap menggunakan bentuk pembayaran kami yang lebih sederhana dan kunci yang memiliki satu jumlah yang terkait dengannya. • Status Saat Ini. Skema Ideal tidak secara langsung memberikan informasi tentang arus status sistem (yaitu berapa banyak unit uang yang dimiliki setiap kunci publik). informasi ini dapat dikurangkan dari Magic Ledger. Dalam sistem yang ideal, pengguna aktif terus-menerus menyimpan dan memperbarui informasi status terkini, atau dia harus merekonstruksinya, baik dari awal, atau dari yang terakhir kali dia lakukan menghitungnya. (Dalam versi selanjutnya dari makalah ini, kami akan menambah Algorand untuk mengaktifkannya pengguna untuk merekonstruksi status saat ini dengan cara yang efisien.) • Keamanan dan “Privasi”. Tanda tangan digital menjamin bahwa tidak seorang pun dapat memalsukan pembayaran pengguna lain. Dalam pembayaran \(\wp\), kunci publik dan jumlahnya tidak disembunyikan, tetapi sensitif informasi saya. Memang benar, hanya H(I) yang muncul di \(\wp\), dan karena H merupakan fungsi ideal hash, H(I) adalah nilai acak 256-bit, dan karenanya tidak ada cara untuk mengetahui apa yang lebih baik bagi saya selain dengan hanya menebaknya. Namun, untuk membuktikan siapa saya (misalnya, untuk membuktikan alasan pembayaran) tersebut pembayar boleh saja mengungkapkan I. Kebenaran I yang diungkapkan dapat diverifikasi dengan menghitung H(I) dan membandingkan nilai yang dihasilkan dengan item terakhir \(\wp\). Faktanya, karena H tahan benturan, sulit untuk menemukan nilai kedua I′ sehingga H(I) = H(I′). 2.3 Pengertian dan Notasi Dasar Kunci, Pengguna, dan Pemilik Kecuali ditentukan lain, setiap kunci publik (“singkatnya kunci”) bersifat jangka panjang dan relatif terhadap skema tanda tangan digital dengan properti keunikan. Kunci publik yang saya ikuti sistem ketika kunci publik lain j sudah ada di sistem melakukan pembayaran ke i. Untuk warna, kami mempersonifikasikan kunci. Kita mengacu pada kunci i sebagai “dia”, katakan bahwa saya jujur, yang saya kirim dan menerima pesan, dll. Pengguna adalah sinonim untuk kunci. Ketika kita ingin membedakan suatu kunci dari orang yang memilikinya, kami masing-masing menggunakan istilah “kunci digital” dan “pemilik”. Sistem Tanpa Izin dan Berizin. Suatu sistem tidak memiliki izin, jika kunci digitalnya gratis untuk bergabung kapan saja dan pemilik dapat memiliki beberapa kunci digital; dan itu diizinkan, sebaliknya.Representasi Unik Setiap objek di Algorand memiliki representasi unik. Khususnya, setiap himpunan {(x, y, z, . . .) : x \(\in\)X, y \(\in\)Y, z \(\in\)Z, . . .} diurutkan dengan cara yang telah ditentukan sebelumnya: misalnya, pertama secara leksikografis di x, lalu di y, dan seterusnya. Jam Kecepatan Sama Tidak ada jam global: setiap pengguna memiliki jamnya sendiri. Jam pengguna tidak perlu disinkronkan dengan cara apa pun. Namun kami berasumsi bahwa semuanya memiliki kecepatan yang sama. Misalnya, jika waktu menunjukkan pukul 12 siang menurut jam pengguna i, mungkin pukul 14:30 menurut jam pengguna i. jam pengguna lain j, tetapi jika jam menunjukkan pukul 12:01 menurut jam i, maka akan menunjukkan pukul 2:31 ke jam j. Artinya, “satu menit adalah sama (pada dasarnya sama) untuk setiap pengguna”. Putaran Algorand disusun dalam satuan logika, r = 0, 1, . . ., disebut putaran. Kami secara konsisten menggunakan superskrip untuk menunjukkan putaran. Untuk menunjukkan bahwa kuantitas non-numerik Q (misalnya, string, kunci publik, himpunan, tanda tangan digital, dll.) mengacu pada putaran r, kita cukup menulis Qr. Hanya jika Q adalah bilangan asli (sebagai lawan dari string biner yang dapat ditafsirkan sebagai bilangan), lakukan kita tulis Q(r), sehingga simbol r tidak dapat diartikan sebagai eksponen dari Q. Pada (awal a) putaran r > 0, himpunan semua kunci publik adalah PKr, dan status sistemnya adalah Sr = n aku, seorang(kanan) saya, . . .  : saya \(\in\)PKro , di mana (r) saya adalah jumlah uang yang tersedia untuk kunci publik i. Perhatikan bahwa PKr dapat dikurangkan dari Sr, dan Sr tersebut juga dapat menentukan komponen lain untuk setiap kunci publik i. Untuk putaran 0, PK0 adalah himpunan kunci publik awal, dan S0 adalah status awal. Baik PK0 dan S0 diasumsikan sebagai pengetahuan umum dalam sistem. Untuk mempermudah, pada awal putaran r, jadi adalah PK1, . . . , PKr dan S1, . . . , Sr. Pada putaran r, status sistem bertransisi dari Sr ke Sr+1: secara simbolis, Putaran r: Sr −→Sr+1. Pembayaran Di Algorand, pengguna terus melakukan pembayaran (dan menyebarkannya dengan cara dijelaskan dalam sub-bagian 2.7). Pembayaran \(\wp\)dari pengguna i \(\in\)PKr memiliki format dan semantik yang sama seperti dalam Sistem Ideal. Yaitu, \(\wp\)= SIGi(saya, saya′, a, saya, H(Saya)) . Pembayaran \(\wp\)secara individual sah pada putaran r (singkatnya pembayaran putaran-r) jika (1) jumlahnya a lebih kecil atau sama dengan a(r) i , dan (2) tidak muncul di payset resmi mana pun PAY r′ untuk r′ < r. (Seperti dijelaskan di bawah, kondisi kedua berarti \(\wp\) belum menjadi efektif. Sekumpulan pembayaran bulat-r i adalah sah secara kolektif jika jumlah pembayarannya paling banyak adalah a(r) saya. Pembayaran Set pembayaran round-r P adalah himpunan pembayaran round-r sehingga, untuk setiap pengguna i, pembayarannya dari i di P (mungkin tidak ada) yang valid secara kolektif. Himpunan semua pembayaran putaran-r adalah PAY(r). Sebuah putaran-r payset P maksimal jika tidak ada superset dari P yang merupakan payset round-r. Kami sebenarnya menyarankan bahwa pembayaran \(\wp\)juga menentukan putaran \(\rho\), \(\wp\)= SIGi(\(\rho\), i, i′, a, I, H(I)) , dan tidak valid pada putaran mana pun di luar [\(\rho\), \(\rho\) + k], untuk beberapa bilangan bulat non-negatif tetap k.4 4Ini menyederhanakan pemeriksaan apakah \(\wp\) telah menjadi “efektif” (yaitu, menyederhanakan penentuan apakah suatu pembayaran PEMBAYARAN r berisi \(\wp\). Jika k = 0, jika \(\wp\)= SIGi(r, i, i′, a, I, H(I)) , dan \(\wp\)/\(\in\)PAY r, maka saya harus mengirimkan kembali \(\wp\).Pembayaran Resmi Untuk setiap putaran r, Algorand memilih secara publik (dengan cara yang dijelaskan nanti) satu set pembayaran (mungkin kosong), PAY r, set pembayaran resmi putaran tersebut. (Intinya, PAY r mewakili pembayaran putaran-r yang “sebenarnya” telah terjadi.) Seperti pada Sistem Ideal (dan Bitcoin), (1) satu-satunya cara bagi pengguna baru j untuk memasuki sistem adalah menjadi penerima pembayaran yang termasuk dalam set pembayaran resmi PAY r pada putaran r tertentu; dan (2) PAY r menentukan status putaran berikutnya, Sr+1, dari status putaran saat ini, Sr. Secara simbolis, BAYAR r : Sr −→Sr+1. Secara khusus, 1. himpunan kunci publik putaran r + 1, PKr+1, terdiri dari gabungan PKr dan himpunan semua kunci penerima pembayaran yang muncul, untuk pertama kalinya, dalam pembayaran PAY r; dan 2. jumlah uang a(r+1) saya yang dimiliki pengguna i pada putaran r + 1 adalah jumlah dari ai(r) —yaitu, jumlah uang yang saya miliki pada putaran sebelumnya (0 jika i ̸\(\in\)PKr)— dan jumlah jumlahnya dibayarkan kepada saya sesuai dengan pembayaran PAY r. Singkatnya, seperti dalam Sistem Ideal, setiap status Sr+1 dapat dikurangkan dari riwayat pembayaran sebelumnya: BAYAR 0, . . . , BAYAR r. 2.4 Blok dan Blok Terbukti Dalam Algorand0, blok Br yang berhubungan dengan putaran r menentukan: r itu sendiri; kumpulan pembayaran putaran r, BAYAR r; besaran Qr, harus dijelaskan, dan hash dari blok sebelumnya, H(Br−1). Jadi, mulai dari beberapa blok tetap B0, kita mempunyai blockchain tradisional: B1 = (1, BAYAR 1, Q0, H(B0)), B2 = (2, BAYAR 2, Q1, H(B1)), B3 = (3, BAYAR 3, Q2, H(B2)), . . . Di Algorand, keaslian sebuah blok sebenarnya dijamin oleh informasi terpisah, sebuah “sertifikat blok” CERT r, yang mengubah Br menjadi blok terbukti, Br. Oleh karena itu, Buku Besar Ajaib diimplementasikan dengan urutan blok yang terbukti, B1, B2, . . . Diskusi Seperti yang akan kita lihat, CERT r terdiri dari sekumpulan tanda tangan digital untuk H(Br), yaitu a mayoritas anggota SV r, disertai bukti bahwa masing-masing anggota tersebut memang termasuk ke SV r. Tentu saja, kita dapat memasukkan sertifikat CERT r ke dalam blok itu sendiri, namun tetap menemukannya secara konseptual lebih bersih untuk menjaganya tetap terpisah.) Dalam Bitcoin setiap blok harus memenuhi sifat khusus, yaitu harus “berisi solusi a crypto puzzle”, yang membuat pembuatan blok menjadi intensif secara komputasi dan percabangan keduanya tidak dapat dihindari dan tidak jarang. Sebaliknya, blockchain Algorand memiliki dua keunggulan utama: dihasilkan dengan komputasi minimal, dan tidak akan bercabang dengan probabilitas yang sangat tinggi. Setiap blok Bi adalah berakhir dengan aman segera setelah memasuki blockchain.2.5 Kemungkinan Kegagalan yang Dapat Diterima Untuk menganalisis keamanan Algorand kami menentukan probabilitas, F, yang ingin kami gunakan menerima bahwa ada yang tidak beres (misalnya, himpunan pemverifikasi SV r tidak memiliki mayoritas yang jujur). Seperti halnya panjang keluaran fungsi kriptografi hash H, F juga merupakan parameter. Namun, seperti dalam kasus tersebut, kami merasa berguna untuk menetapkan F ke nilai yang konkret, sehingga mendapatkan hasil yang lebih intuitif. memahami fakta bahwa memang mungkin, di Algorand, untuk menikmati keamanan yang memadai secara bersamaan dan efisiensi yang memadai. Untuk menekankan bahwa F adalah parameter yang dapat diatur sesuai keinginan, terlebih dahulu dan perwujudan kedua yang kami tetapkan masing-masing F = 10−12 dan F = 10−18 . Diskusi Perhatikan bahwa 10−12 sebenarnya kurang dari satu dalam satu triliun, dan kami percaya bahwa 10−12 adalah pilihan F memadai dalam aplikasi kita. Mari kita tekankan bahwa 10−12 bukanlah probabilitas yang dengannya Musuh dapat memalsukan pembayaran dari pengguna yang jujur. Semua pembayaran dilakukan secara digital ditandatangani, dan dengan demikian, jika tanda tangan digital yang tepat digunakan, kemungkinan pemalsuan pembayaran adalah kecil jauh lebih rendah dari 10−12, dan pada kenyataannya, pada dasarnya 0. Peristiwa buruk yang ingin kita toleransi dengan probabilitas F adalah garpu Algorand itu blockchain. Perhatikan itu, dengan pengaturan F dan putaran yang panjangnya satu menit, percabangan diperkirakan akan terjadi di Algorand blockchain sesering (kira-kira) sekali dalam 1,9 juta tahun. Sebaliknya, di Bitcoin, percabangan cukup sering terjadi. Orang yang lebih menuntut mungkin menetapkan F ke nilai yang lebih rendah. Untuk tujuan ini, dalam perwujudan kedua kami kami mempertimbangkan untuk menyetel F ke 10−18. Perhatikan bahwa, dengan asumsi bahwa sebuah blok dihasilkan setiap detik, 1018 adalah perkiraan jumlah detik yang dibutuhkan alam semesta sejauh ini: dari Big Bang hingga saat ini waktu. Jadi, dengan F = 10−18, jika sebuah balok dihasilkan dalam sedetik, maka diperkirakan umurnya adalah alam semesta untuk melihat garpu. 2.6 Model Permusuhan Algorand dirancang agar aman dalam model yang sangat bermusuhan. Mari kami jelaskan. Pengguna yang Jujur dan Berbahaya Seorang pengguna dikatakan jujur jika dia mengikuti semua instruksi protokolnya, dan sangat mampu mengirim dan menerima pesan. Seorang pengguna jahat (yaitu, Bizantium, dalam bahasa komputasi terdistribusi) jika dia dapat menyimpang secara sewenang-wenang dari instruksi yang ditentukan. Musuh The Adversary adalah algoritma yang efisien (secara teknis waktu polinomial), dipersonifikasikan untuk warna, yang dapat langsung membuat pengguna berbahaya mana pun yang diinginkannya, kapan pun ia mau (subjek hanya melebihi jumlah pengguna yang dapat dirusaknya). Musuh sepenuhnya mengendalikan dan mengoordinasikan dengan sempurna semua pengguna jahat. Dia mengambil semua tindakan atas nama mereka, termasuk menerima dan mengirim semua pesan mereka, dan dapat membiarkan mereka menyimpang instruksi yang ditentukan mereka dengan cara yang sewenang-wenang. Atau dia dapat dengan mudah mengisolasi pengiriman pengguna yang rusak dan menerima pesan. Mari kita perjelas bahwa tidak ada orang lain yang secara otomatis mengetahui bahwa pengguna i berbahaya, meskipun kejahatan saya mungkin terjadi melalui tindakan yang dilakukan Musuh. Namun musuh yang kuat ini, • Tidak memiliki kekuatan komputasi yang tidak terbatas dan tidak berhasil menempa digital tanda tangan pengguna yang jujur, kecuali kemungkinannya dapat diabaikan; Dan• Tidak boleh mengganggu pertukaran pesan di antara pengguna yang jujur ​​dengan cara apa pun. Selain itu, kemampuannya untuk menyerang pengguna yang jujur ​​dibatasi oleh salah satu asumsi berikut. Kejujuran Mayoritas Uang Kami mempertimbangkan kontinum Mayoritas Uang Jujur (HMM) asumsi: yaitu, untuk setiap bilangan bulat non-negatif k dan real h > 1/2, HHMk > h: pengguna yang jujur di setiap putaran r memiliki sebagian lebih besar dari h dari seluruh uang yang masuk sistem pada putaran r −k. Diskusi. Dengan asumsi bahwa semua pengguna jahat mengoordinasikan tindakan mereka dengan sempurna (seolah-olah dikendalikan oleh satu entitas, Musuh) adalah hipotesis yang agak pesimistis. Koordinasi sempurna di antara mereka juga banyak individu sulit dicapai. Mungkin koordinasi hanya terjadi dalam kelompok yang terpisah dari pemain jahat. Namun, karena tingkat koordinasi pengguna jahat tidak dapat dipastikan semoga kita menikmatinya, lebih baik kita aman daripada menyesal. Dengan asumsi bahwa Musuh juga dapat secara diam-diam, dinamis, dan langsung merusak pengguna pesimis. Lagi pula, secara realistis, mengambil kendali penuh atas operasi pengguna akan memakan waktu. Asumsi HMMk > h menyiratkan, misalnya, jika putaran (rata-rata) dilaksanakan dalam satu menit, sebagian besar uang pada putaran tertentu akan tetap berada di tangan yang jujur paling sedikit dua jam, jika k = 120, dan paling sedikit satu minggu, jika k = 10.000. Perhatikan asumsi HMM dan Kekuatan Komputasi Mayoritas Jujur sebelumnya Asumsi-asumsi tersebut saling terkait dalam arti bahwa, karena daya komputasi dapat dibeli dengan uang, jika pengguna jahat memiliki sebagian besar uang, maka mereka dapat memperoleh sebagian besar daya komputasi. 2.7 Model Komunikasi Kami membayangkan penyebaran pesan —yaitu, “gosip antar teman”5— menjadi satu-satunya cara untuk menyebarkan pesan. komunikasi. Asumsi Sementara: Pengiriman Pesan Tepat Waktu di Seluruh Jaringan. Untuk Pada sebagian besar makalah ini kami berasumsi bahwa setiap pesan yang disebarkan menjangkau hampir semua pengguna yang jujur secara tepat waktu. Kami akan menghapus asumsi ini di Bagian 10, saat kami menangani jaringan partisi, baik yang terjadi secara alami maupun yang disebabkan oleh faktor yang merugikan. (Seperti yang akan kita lihat, kita hanya berasumsi pengiriman pesan tepat waktu dalam setiap komponen jaringan yang terhubung.) Salah satu cara konkrit untuk menangkap pengiriman pesan yang disebarkan secara tepat waktu (di seluruh jaringan) adalah berikut ini: Untuk semua keterjangkauan \(\rho\) > 95% dan ukuran pesan \(\mu\) \(\in\)Z+, terdapat \(\lambda\) \(\rho\),\(\mu\) sehingga, jika pengguna yang jujur menyebarkan pesan \(\mu\)-byte m pada waktu t, kemudian m mencapai, pada saat t + \(\lambda\) \(\rho\),\(\mu\), setidaknya sebagian kecil \(\rho\) dari pengguna yang jujur. 5Intinya, seperti pada Bitcoin, ketika pengguna menyebarkan pesan m, setiap pengguna aktif menerima m untuk pertama kalinya, secara acak dan mandiri memilih sejumlah kecil pengguna aktif, “tetangganya”, kepada siapa dia meneruskan m, mungkin sampai dia menerima pengakuan dari mereka. Propagasi m berakhir ketika tidak ada pengguna yang menerima m untuk pertama kalinya.Namun, properti di atas tidak dapat mendukung protokol Algorand kami, tanpa secara eksplisit dan terpisah membayangkan mekanisme untuk mendapatkan blockchain terbaru —oleh pengguna/penyimpanan/dll. Faktanya, untuk membangun blok Br yang baru, tidak hanya sekelompok verifikator yang tepat yang harus menerima putaran-r secara tepat waktu pesan-pesan, tetapi juga pesan-pesan dari putaran sebelumnya, untuk mengetahui Br−1 dan semua pesan lainnya sebelumnya blok, yang diperlukan untuk menentukan apakah pembayaran dalam Br sah. Berikut ini asumsi saja sudah cukup. Asumsi Propagasi Pesan (MP): Untuk semua \(\rho\) > 95% dan \(\mu\) \(\in\)Z+, terdapat \(\lambda\) \(\rho\),\(\mu\) sedemikian rupa sehingga, untuk semua waktu t dan semua pesan \(\mu\)-byte m disebarkan oleh pengguna yang jujur sebelum t −\(\lambda\) \(\rho\),\(\mu\), m diterima, pada waktu t, oleh setidaknya sebagian kecil \(\rho\) dari pengguna yang jujur. Protokol Algorand ′ sebenarnya menginstruksikan masing-masing sejumlah kecil pengguna (yaitu, pemverifikasi suatu langkah tertentu dalam Algorand ′, untuk menyebarkan pesan terpisah dengan ukuran (kecil) yang ditentukan, dan kita perlu membatasi waktu yang dibutuhkan untuk memenuhi instruksi ini. Kami melakukannya dengan memperkaya anggota parlemen asumsi sebagai berikut. Untuk semua n, \(\rho\) > 95%, dan \(\mu\) \(\in\)Z+, terdapat \(\lambda\)n,\(\rho\),\(\mu\) sehingga, untuk semua waktu t dan semua \(\mu\)-byte pesan m1, . . . , mn, masing-masing disebarkan oleh pengguna yang jujur sebelum t −\(\lambda\)n,\(\rho\),\(\mu\), m1, . . . , banyak diterima, pada waktu t, setidaknya oleh sebagian kecil \(\rho\) dari pengguna yang jujur. Catatan • Asumsi di atas sengaja dibuat sederhana, namun juga lebih kuat dari yang dibutuhkan dalam makalah kami.6 • Untuk mempermudah, kita asumsikan \(\rho\) = 1, sehingga tidak lagi menyebutkan \(\rho\). • Kami secara pesimistis berasumsi, asalkan dia tidak melanggar asumsi MP, maka Musuh sepenuhnya mengontrol pengiriman semua pesan. Apalagi tanpa diketahui oleh orang jujur pengguna, Musuh dia dapat secara sewenang-wenang memutuskan pemain jujur mana yang menerima pesan mana ketika, dan seenaknya mempercepat penyampaian pesan apapun yang diinginkannya.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.

Protokol BA BA⋆dalam Pengaturan Tradisional

Seperti yang telah ditekankan, perjanjian Bizantium adalah unsur utama Algorand. Memang benar, itu sudah selesai penggunaan protokol BA sehingga Algorand tidak terpengaruh oleh fork. Namun, untuk amannya terhadap kami Musuh yang kuat, Algorand harus bergantung pada protokol BA yang memenuhi kemampuan penggantian pemain baru kendala. Selain itu, agar Algorand menjadi efisien, protokol BA seperti itu harus sangat efisien. Protokol BA pertama kali didefinisikan untuk model komunikasi yang diidealkan, lengkap dan sinkron jaringan (jaringan SC). Model seperti ini memungkinkan desain dan analisis protokol BA yang lebih sederhana. 6Mengingat persentase jujur h dan probabilitas kegagalan yang dapat diterima F, Algorand menghitung batas atas, N, ke jumlah maksimum anggota verifikator dalam satu langkah. Jadi, asumsi MP hanya perlu berlaku untuk n \(\leq\)N. Selain itu, sebagaimana dinyatakan, asumsi MP tetap berlaku tidak peduli berapa banyak pesan lain yang dapat disebarkan mj's. Namun, seperti yang akan kita lihat, di Algorand pesan di disebarkan dalam waktu yang pada dasarnya tidak tumpang tindih interval, selama satu blok disebarkan, atau paling banyak N pemverifikasi menyebarkan blok kecil (misalnya, 200B) pesan. Oleh karena itu, kita dapat menyatakan kembali asumsi MP dengan cara yang lebih lemah namun juga lebih kompleks. 7Misalnya, dia bisa langsung mempelajari pesan yang dikirim oleh pemain jujur. Jadi, pengguna jahat i′, siapa diminta untuk menyebarkan pesan secara bersamaan dengan pengguna yang jujur i, selalu dapat memilih pesannya sendiri berdasarkan m′ pesan m sebenarnya disebarkan oleh i. Kemampuan ini terkait dengan bergegas, dalam istilah komputasi terdistribusi sastra.Oleh karena itu, di bagian ini, kami memperkenalkan protokol BA baru, BA⋆, untuk jaringan SC dan mengabaikannya masalah penggantian pemain sama sekali. Protokol BA⋆merupakan kontribusi yang bernilai tersendiri. Memang benar, ini adalah protokol kriptografi BA paling efisien untuk jaringan SC yang dikenal sejauh ini. Untuk menggunakannya dalam protokol Algorand kami, kami memodifikasi sedikit BA⋆, untuk memperhitungkan perbedaan kami model dan konteks komunikasi, namun pastikan, di bagian X, untuk menyoroti bagaimana BA⋆ digunakan dalam protokol kami yang sebenarnya Algorand ′. Kita mulai dengan mengingat model di mana BA⋆ beroperasi dan gagasan perjanjian Bizantium. 3.1 Jaringan Lengkap Sinkron dan Musuh yang Cocok Dalam jaringan SC, terdapat jam umum yang berdetak pada setiap waktu integral r = 1, 2, . . . Pada setiap kali klik r, setiap pemain i secara instan dan bersamaan mengirimkan satu pesan Pak i,j (mungkin pesan kosong) untuk setiap pemain j, termasuk dirinya sendiri. Setiap Tuan i,j diterima pada saat itu klik r+1 oleh pemain j, beserta identitas pengirim i. Sekali lagi, dalam protokol komunikasi, seorang pemain jujur jika dia mengikuti semua yang ditentukan instruksi, dan sebaliknya berbahaya. Semua pemain jahat dikontrol sepenuhnya dan sempurna dikoordinasikan oleh Musuh, yang, khususnya, segera menerima semua pesan yang ditujukan kepadanya pemain jahat, dan memilih pesan yang mereka kirim. Musuh dapat segera membuat pengguna jujur mana pun yang dia inginkan menjadi jahat kapan pun dia mengklik yang diinginkannya, hanya bergantung pada kemungkinan batas atas jumlah pemain jahat. Artinya, Musuh “tidak dapat mengganggu pesan yang telah dikirim oleh pengguna i yang jujur”, yang mana akan terjadi disampaikan seperti biasa. Musuh juga memiliki kemampuan tambahan untuk melihat secara instan, di setiap putaran genap pesan yang dikirim oleh pemain jujur ​​saat ini, dan secara instan menggunakan informasi ini untuk memilih pesan yang dikirim oleh pemain jahat pada saat yang sama dicentang. Keterangan • Kekuatan Musuh. Pengaturan di atas sangat merugikan. Memang dalam perjanjian Bizantium literatur, banyak situasi yang tidak terlalu bermusuhan. Namun, ada beberapa pengaturan yang lebih bermusuhan juga sudah diperhatikan, dimana Musuh setelah melihat pesan yang dikirimkan oleh pemain jujur i pada waktu tertentu klik r, memiliki kemampuan untuk segera menghapus semua pesan ini dari jaringan i yang rusak, pilih pesan yang dikirim oleh i yang sekarang berbahaya pada saat klik r, dan dapatkan pesan tersebut disampaikan seperti biasa. Kekuatan Musuh yang dibayangkan cocok dengan yang dia miliki di lingkungan kita. • Abstraksi Fisik. Model komunikasi yang dibayangkan mengabstraksi model yang lebih fisik, di mana setiap pasangan pemain (i,j) dihubungkan oleh jalur komunikasi terpisah dan pribadi li,j. Artinya, tidak ada orang lain yang dapat menyuntikkan, mengganggu, atau memperoleh informasi tentang pesan yang dikirimkan li,j. Satu-satunya cara bagi Musuh untuk memiliki akses ke li,j adalah dengan merusak i atau j. • Privasi dan Otentikasi. Dalam jaringan SC, privasi dan otentikasi pesan dijamin dengan asumsi. Sebaliknya, dalam jaringan komunikasi kita, tempat pesan disebarkan dari peer to peer, otentikasi dijamin oleh tanda tangan digital, dan privasi tidak ada. Jadi, untuk mengadopsi protokol BA⋆ke pengaturan kami, setiap pesan yang dipertukarkan harus ditandatangani secara digital (lebih lanjut mengidentifikasi negara bagian pengirimannya). Untungnya, protokol BA yang kami miliki pertimbangkan untuk menggunakan di Algorand tidak memerlukan privasi pesan.3.2 Gagasan Perjanjian Bizantium Gagasan perjanjian Bizantium diperkenalkan oleh Pease Shostak dan Lamport [31] untuk kasus biner, yaitu ketika setiap nilai awal terdiri dari sedikit. Namun, hal itu segera diperpanjang ke nilai awal yang sewenang-wenang. (Lihat survei Fischer [16] dan Chor and Dwork [10].) Oleh BA protokol, yang kami maksud adalah protokol yang bernilai arbitrer. Definisi 3.1. Dalam jaringan sinkron, misalkan P adalah protokol n-pemain, yang kumpulan pemainnya sama pengetahuan di antara para pemain, t bilangan bulat positif sehingga n \(\geq\)2t + 1. Kita katakan bahwa P adalah an nilai arbitrer (masing-masing, biner) (n, t)-Protokol perjanjian Bizantium dengan kesehatan \(\sigma\) \(\in\)(0, 1) jika, untuk setiap himpunan nilai V tidak mengandung simbol khusus \(\bot\)(masing-masing, untuk V = {0, 1}), dalam suatu eksekusi di mana paling banyak t pemainnya jahat dan di mana setiap pemain saya memulai dengan sebuah nilai awal vi \(\in\)V , setiap pemain jujur j berhenti dengan probabilitas 1, mengeluarkan nilai outi \(\in\)V \(\cup\){\(\bot\)} untuk memenuhi, dengan probabilitas paling sedikit \(\sigma\), dua kondisi berikut: 1. Kesepakatan: Terdapat \(\in\)V \(\cup\){\(\bot\)} sehingga outi = out untuk semua pemain jujur i. 2. Konsistensi: jika, untuk suatu nilai v \(\in\)V , vi = v untuk semua pemain jujur, maka keluar = v. Kami menyebut out sebagai keluaran P, dan setiap outi sebagai keluaran pemain i. 3.3 Notasi BA # Dalam protokol BA kami, seorang pemain diharuskan menghitung berapa banyak pemain yang mengiriminya pesan tertentu langkah tertentu. Oleh karena itu, untuk setiap kemungkinan nilai v yang mungkin dikirim,

s

saya (v) (atau hanya #i(v) ketika s jelas) adalah jumlah pemain j yang i telah menerima v pada langkah s. Mengingat bahwa seorang pemain i menerima tepat satu pesan dari setiap pemain j, jika jumlahnya pemain adalah n, maka, untuk semua i dan s, P v #s saya(v) = n. 3.4 Protokol Biner BA BBA⋆ Pada bagian ini kami menyajikan protokol BA biner baru, BBA⋆, yang lebih mengandalkan kejujuran dari dua pertiga pemain dan sangat cepat: tidak peduli apa yang mungkin dilakukan pemain jahat, setiap eksekusi loop utamanya membuat para pemain setuju dengan probabilitas 1/3. Setiap pemain memiliki kunci publiknya sendiri dari skema tanda tangan digital yang memenuhi tanda tangan unik properti. Karena protokol ini dimaksudkan untuk dijalankan pada jaringan lengkap yang sinkron, maka tidak ada kebutuhan pemain saya untuk menandatangani setiap pesannya. Tanda tangan digital digunakan untuk menghasilkan bit acak yang cukup umum pada Langkah 3. (Dalam Algorand, tanda tangan digital juga digunakan untuk mengautentikasi semua pesan lainnya.) Protokol memerlukan pengaturan minimal: string acak umum r, tidak tergantung pada pemain kunci. (Dalam Algorand, r sebenarnya diganti dengan kuantitas Qr.) Protokol BBA⋆adalah loop 3 langkah, di mana pemain berulang kali menukar nilai Boolean, dan pemain yang berbeda dapat keluar dari putaran ini pada waktu yang berbeda. Seorang pemain saya keluar dari lingkaran ini dengan menyebarkan, pada langkah tertentu, baik nilai khusus 0∗atau nilai khusus 1∗, sehingga memerintahkan semua pemain untuk “berpura-pura” mereka masing-masing menerima 0 dan 1 dari i di semua langkah selanjutnya. (Atau dikatakan: asumsikanbahwa pesan terakhir yang diterima pemain j dari pemain lain i agak b. Lalu, dalam langkah apa pun di mana dia tidak menerima pesan apa pun dari i, j bertindak seolah-olah saya mengiriminya bit b.) Protokol ini menggunakan penghitung \(\gamma\), yang mewakili berapa kali perulangan 3 langkahnya telah dieksekusi. Pada awal BBA⋆, \(\gamma\) = 0. (Orang mungkin menganggap \(\gamma\) sebagai penghitung global, namun sebenarnya meningkat oleh masing-masing pemain setiap kali loop dijalankan.) Ada n \(\geq\)3t + 1, di mana t adalah jumlah maksimum pemain jahat yang mungkin. Sebuah biner string x diidentifikasi dengan bilangan bulat yang representasi binernya (dengan kemungkinan awalan 0) adalah x; dan lsb(x) menunjukkan bit paling signifikan dari x. Protokol BBA⋆ (Komunikasi) Langkah 1. [Langkah Koin-Tetap-Ke-0] Setiap pemain saya mengirimkan bi. 1.1 Jika #1 i (0) \(\geq\)2t + 1, lalu i set bi = 0, mengirimkan 0∗, keluaran outi = 0, dan BERHENTI. 1.2 Jika #1 i (1) \(\geq\)2t + 1, maka i menetapkan bi = 1. 1.3 Jika tidak, saya menetapkan bi = 0. (Komunikasi) Langkah 2. [Langkah Koin-Tetap-Ke-1] Setiap pemain saya mengirimkan bi. 2.1 Jika #2 i (1) \(\geq\)2t + 1, maka i menetapkan bi = 1, mengirimkan 1∗, keluaran keluari = 1, dan BERHENTI. 2.2 Jika #2 i (0) \(\geq\)2t + 1, maka saya menetapkan bi = 0. 2.3 Jika tidak, saya menetapkan bi = 1. (Komunikasi) Langkah 3. [Langkah Membalik Koin] Setiap pemain i mengirimkan bi dan SIGi(r, \(\gamma\)). 3.1 Jika #3 i (0) \(\geq\)2t + 1, maka i menetapkan bi = 0. 3.2 Jika #3 i (1) \(\geq\)2t + 1, maka i menetapkan bi = 1. 3.3 Selain itu, misalkan Si = {j \(\in\)N yang telah mengirimkan i pesan yang benar pada langkah ini 3 }, saya menetapkan bi = c \(\triangleq\)lsb(minj\(\in\)Si H(SIGi(r, \(\gamma\)))); meningkatkan \(\gamma\)i sebesar 1; dan kembali ke Langkah 1. Teorema 3.1. Kapanpun n \(\geq\)3t + 1, BBA⋆adalah protokol biner (n, t)-BA dengan tingkat kesehatan 1. Bukti Teorema 3.1 diberikan di [26]. Adaptasinya dengan lingkungan kami, dan kemampuan pemainnya untuk diganti properti adalah hal baru. Catatan Sejarah Protokol BA biner probabilistik pertama kali diusulkan oleh Ben-Or di pengaturan asinkron [7]. Protokol BBA⋆adalah adaptasi baru, terhadap pengaturan kunci publik kita, dari protokol biner BA Feldman dan Micali [15]. Protokol mereka adalah yang pertama bekerja sesuai harapan jumlah langkah yang konstan. Ini berhasil dengan meminta para pemainnya sendiri menerapkan koin yang sama, sebuah gagasan yang diajukan oleh Rabin, yang mengimplementasikannya melalui pihak eksternal yang dipercaya [32].3.5 Konsensus Bertingkat dan Protokol GC Mari kita ingat, untuk nilai-nilai yang sewenang-wenang, gagasan konsensus jauh lebih lemah dibandingkan kesepakatan Bizantium. Definisi 3.2. Misalkan P adalah suatu protokol yang himpunan semua pemainnya diketahui secara umum, dan masing-masing pemain saya secara pribadi mengetahui nilai awal yang berubah-ubah v′ saya. Kita katakan bahwa P adalah protokol konsensus dengan tingkat (n, t) jika, dalam setiap eksekusi dengan n pemain, pada kebanyakan dari mereka berbahaya, setiap pemain jujur saya berhenti mengeluarkan pasangan tingkat nilai (vi, gi), dimana gi \(\in\){0, 1, 2}, sehingga memenuhi tiga kondisi berikut: 1. Untuk semua pemain jujur i dan j, |gi −gj| \(\leq\)1. 2. Untuk semua pemain jujur ​​i dan j, gi, gj > 0 ⇒vi = vj. 3. Jika v′ 1 = \(\cdots\) = v′ n = v untuk beberapa nilai v, maka vi = v dan gi = 2 untuk semua pemain jujur i. Catatan Sejarah Gagasan tentang konsensus yang bertingkat berasal dari gagasan yang bertingkat siaran, dikemukakan oleh Feldman dan Micali di [15], dengan memperkuat gagasan tentang tentara salib perjanjian, seperti yang diperkenalkan oleh Dolev [12], dan disempurnakan oleh Turpin dan Coan [33].8 Di [15], penulis juga menyediakan protokol penyiaran bertingkat 3 langkah (n, t), yang disebut gradecast, untuk n \(\geq\)3t+1. Protokol penyiaran bertingkat (n, t) yang lebih kompleks untuk n > 2t+1 kemudian ditemukan oleh Katz dan Koo [19]. Protokol dua langkah GC berikut terdiri dari dua langkah terakhir dari gradecast, yang dinyatakan dalam kami notasi. Untuk menekankan fakta ini, dan untuk mencocokkan langkah-langkah protokol Algorand ′ bagian 4.1, kami masing-masing sebutkan 2 dan 3 langkah-langkah GC. Protokol GC Langkah 2. Setiap pemain saya mengirimkan v′ saya kepada semua pemain. Langkah 3. Setiap pemain i mengirimkan string x ke semua pemain jika dan hanya jika #2 saya (x) \(\geq\)2t + 1. Penentuan Keluaran. Setiap pemain i mengeluarkan pasangan (vi, gi) yang dihitung sebagai berikut: • Jika, untuk beberapa x, #3 i (x) \(\geq\)2t + 1, maka vi = x dan gi = 2. • Jika, untuk beberapa x, #3 i (x) \(\geq\)t + 1, maka vi = x dan gi = 1. • Lain, vi = \(\bot\)dan gi = 0. Teorema 3.2. Jika n \(\geq\)3t + 1, maka GC adalah protokol siaran bergradasi (n, t). Buktinya langsung mengikuti dari protokol gradecast di [15], dan dengan demikian dihilangkan.9 8Intinya, dalam protokol penyiaran bertingkat, (a) masukan dari setiap pemain adalah identitas pemain terkemuka pemain, pengirim, yang memiliki nilai sembarang v sebagai masukan pribadi tambahan, dan (b) keluaran harus memenuhi sifat yang sama 1 dan 2 dari konsensus bertingkat, ditambah sifat berikut 3′: jika pengirimnya jujur, maka vi = v dan gi = 2 untuk semua pemain jujur i. 9Memang, dalam protokol mereka, pada langkah 1, pengirim mengirimkan nilai pribadinya v ke semua pemain, dan setiap pemain i izinkan v′ saya terdiri dari nilai yang sebenarnya dia terima dari pengirim pada langkah 1.3.6 Protokol BA⋆ Kami sekarang menjelaskan protokol BA nilai arbitrer BA⋆melalui protokol BA biner BBA⋆dan protokol konsensus bertingkat GC. Di bawah ini, nilai awal setiap pemain i adalah v′ saya. Protokol BA⋆ Langkah 1 dan 2. Setiap pemain i menjalankan GC, pada input v′ i, untuk menghitung pasangan (vi, gi). Langkah 3,. . . Setiap pemain i mengeksekusi BBA⋆—dengan input awal 0, jika gi = 2, dan 1 sebaliknya— jadi untuk menghitung bit outi. Penentuan Keluaran. Setiap pemain i mengeluarkan vi, jika outi = 0, dan \(\bot\)sebaliknya. Teorema 3.3. Kapanpun n \(\geq\)3t + 1, BA⋆adalah protokol (n, t)-BA dengan tingkat kesehatan 1. Bukti. Pertama-tama kita buktikan Konsistensi, lalu Kesepakatan. Bukti Konsistensi. Asumsikan bahwa, untuk beberapa nilai v \(\in\)V , v′ i = v. Kemudian, berdasarkan sifat 3 dari konsensus dinilai, setelah pelaksanaan GC, semua pemain jujur keluar (v, 2). Oleh karena itu, 0 adalah bagian awal dari semua pemain jujur di akhir eksekusi BBA⋆. Demikian dengan Perjanjian properti perjanjian biner Bizantium, di akhir pelaksanaan BA⋆, outi = 0 untuk semua jujur pemain. Artinya keluaran setiap pemain jujur i di BA⋆adalah vi = v. ✷ Bukti Perjanjian. Karena BBA⋆ juga merupakan protokol BA biner (A) outi = 1 untuk semua pemain jujur i, atau (B) outi = 0 untuk semua pemain jujur i. Dalam kasus A, semua pemain jujur ​​mengeluarkan \(\bot\)di BA⋆, dan dengan demikian Perjanjian berlaku. Pertimbangkan sekarang kasus B.In dalam hal ini, dalam eksekusi BBA⋆, bit awal dari setidaknya satu pemain jujur i adalah 0. (Memang, jika bit awal dari semua pemain jujur adalah 1, maka, dengan properti Konsistensi BBA⋆, kita akan memiliki outj = 1 untuk semua j yang jujur.) Oleh karena itu, setelah eksekusi GC, i mengeluarkan pasangan (v, 2) untuk beberapa nilai v. Jadi, berdasarkan properti 1 dari konsensus bertingkat, gj > 0 untuk semua pemain jujur j. Oleh karena itu, oleh properti 2 dari konsensus bertingkat, vj = v untuk semua pemain jujur j. Ini menyiratkan bahwa, pada akhir BA⋆, setiap pemain jujur j mengeluarkan v. Jadi, Perjanjian berlaku juga dalam kasus B. ✷ Karena Konsistensi dan Perjanjian berlaku, BA⋆adalah protokol BA dengan nilai arbitrer. Catatan Sejarah Turpin dan Coan adalah orang pertama yang menunjukkan bahwa, untuk n \(\geq\)3t+1, biner apa pun (n, t)-BA protokol dapat dikonversi ke protokol dengan nilai arbitrer (n, t)-BA. Pengurangan nilai sewenang-wenang Perjanjian Bizantium terhadap perjanjian biner Bizantium melalui konsensus bertingkat lebih bersifat modular dan lebih bersih, dan menyederhanakan analisis protokol Algorand kami Algorand ′. Generalisasi BA⋆untuk digunakan di Algorand Algorand berfungsi meskipun semua komunikasi dilakukan melalui bergosip. Namun, meski disajikan dalam jaringan komunikasi tradisional dan familiar, tetap saja untuk memungkinkan perbandingan yang lebih baik dengan penemuan sebelumnya dan pemahaman yang lebih mudah, protokol BA⋆berfungsi juga di jaringan gosip. Faktanya, dalam perwujudan rinci Algorand, kami akan menyajikannya langsung untuk jaringan gosip. Kami juga harus menunjukkan bahwa hal ini memenuhi kemampuan pergantian pemain properti yang sangat penting agar Algorand aman dalam model yang sangat bermusuhan.

Protokol apa pun yang dapat diganti oleh pemain BA yang bekerja di jaringan komunikasi gosip dapat digunakan digunakan dengan aman dalam sistem Algorand yang inventif. Khususnya, Micali dan Vaikunthanatan telah memperluas BA⋆untuk bekerja dengan sangat efisien juga dengan mayoritas pemain jujur. Itu protokol juga dapat digunakan di 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  1. Lưu ý rằng n1 << n, vì chúng ta cần ít nhất một thành viên trung thực trung thực trong SV r,1, nhưng ít nhất đa số thành viên trung thực trong mỗi SV r,s với s > 1. • h \(\in\)(0, 1): hằng số lớn hơn 2/3. h là tỷ lệ trung thực trong hệ thống. Đó là, tỷ lệ người dùng trung thực hoặc tiền trung thực, tùy thuộc vào giả định được sử dụng, trong mỗi PKr là ít nhất h. • H: hàm mật mã hash, được mô hình hóa dưới dạng oracle ngẫu nhiên. • \(\bot\): Một chuỗi đặc biệt có cùng độ dài với đầu ra của H. • F \(\in\)(0, 1): tham số xác định xác suất lỗi cho phép. Xác suất \(\leq\)F là được coi là “không đáng kể” và xác suất \(\geq\)1 −F được coi là “áp đảo”. • ph \(\in\)(0, 1): xác suất để người đứng đầu vòng r, \(\ell\)r, trung thực. Lý tưởng nhất là ph = h. Với sự tồn tại của Kẻ thù, giá trị của ph sẽ được xác định trong quá trình phân tích. • k \(\in\)Z+: tham số nhìn lại. Nghĩa là, vòng r −k là nơi chứa các bộ xác minh cho vòng r được chọn từ —cụ thể là SV r \(\subseteq\)PKr−k.15 • p1 \(\in\)(0, 1): đối với bước đầu tiên của vòng r, người dùng trong vòng r −k được chọn ở SV r,1 với xác suất p1 \(\triangleq\) n1 |P Kr−k|. • p \(\in\)(0, 1): với mỗi bước s > 1 của vòng r, người dùng ở vòng r −k được chọn ở SV r,s với xác suất p \(\triangleq\) n |P Kr−k|. • 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. • Br \(\triangleq\)(Br, CERT r) là khối đã được chứng minh. Một người dùng tôi biết Br nếu anh ta sở hữu (và xác minh thành công) cả hai phần của khối đã được chứng minh. Lưu ý rằng CERT mà những người dùng khác nhau nhìn thấy có thể khác nhau. • τ r i : thời gian (địa phương) mà người dùng tôi biết Br. Trong giao thức Algorand mỗi người dùng có đồng hồ riêng. Đồng hồ của những người dùng khác nhau không cần phải được đồng bộ hóa nhưng phải có cùng tốc độ. Chỉ nhằm mục đích phân tích, chúng tôi xem xét đồng hồ tham chiếu và đo lường hiệu suất của người chơi. thời gian liên quan đến nó. • \(\alpha\)r,s tôi và \(\beta\)r,s i : tương ứng là thời gian (cục bộ) mà người dùng i bắt đầu và kết thúc việc thực hiện Bước s của vòng r. • Λ và \(\lambda\): về cơ bản là giới hạn trên tương ứng với thời gian cần thiết để thực hiện Bước 1 và thời gian cần thiết cho bất kỳ bước nào khác của giao thức Algorand. Tham số Λ giới hạn trên thời gian để truyền một khối 1 MB. (Trong ký hiệu của chúng tôi, Λ = \(\lambda\) \(\rho\),1MB. Nhắc lại ký hiệu của chúng tôi, rằng chúng tôi đặt \(\rho\) = 1 để đơn giản và các khối đó là được chọn dài tối đa 1 MB, chúng ta có Λ = \(\lambda\)1,1,1 MB.) 15Nói đúng ra, “r −k” phải là “max{0, r −k}”.Tham số \(\lambda\) vượt quá thời gian truyền một thông báo nhỏ cho mỗi trình xác minh trong Bước s > 1. (Sử dụng, như trong Bitcoin, chữ ký đường cong elip với các phím 32B, thông báo xác minh có độ dài 200B. Do đó, theo ký hiệu của chúng tôi, \(\lambda\) = \(\lambda\)n,\(\rho\),200B.) Chúng tôi giả định rằng Λ = O(\(\lambda\)). quan niệm • Lựa chọn người xác minh. Với mỗi vòng r và bước s > 1, SV r,s \(\triangleq\){i \(\in\)PKr−k : .H(SIGi(r, s, Qr−1)) \(\leq\)p}. Mỗi Người dùng i \(\in\)PKr−k tính toán riêng chữ ký của mình bằng khóa dài hạn và quyết định xem liệu i \(\in\)SV r,s hay không. Nếu i \(\in\)SV r,s thì SIGi(r, s, Qr−1) là thông tin xác thực của i (r, s), được ký hiệu ngắn gọn bởi \(\sigma\)r,s tôi . Đối với bước đầu tiên của vòng r, SV r,1 và \(\sigma\)r,1 tôi được xác định tương tự, với p được thay thế bằng p1. các những người xác minh trong SV r,1 là những người dẫn đầu tiềm năng. • Lựa chọn lãnh đạo. Người dùng i \(\in\)SV r,1 là người dẫn đầu vòng r, ký hiệu là \(\ell\)r, nếu H(\(\sigma\)r,1 i ) \(\leq\)H(\(\sigma\)r,1 j ) với mọi tiềm năng lãnh đạo j \(\in\)SV r,1. Bất cứ khi nào hashes thông tin xác thực của hai người chơi được so sánh, trong trường hợp khó xảy ra trong trường hợp có các ràng buộc, giao thức luôn phá vỡ các ràng buộc theo từ điển theo (công khai lâu dài chìa khóa của) các nhà lãnh đạo tiềm năng. Theo định nghĩa, giá trị hash của thông tin xác thực của người chơi \(\ell\)r cũng là giá trị nhỏ nhất trong số tất cả người dùng trong PKr−k. Lưu ý rằng một nhà lãnh đạo tiềm năng không thể tự mình quyết định xem mình có phải là người lãnh đạo hay không, mà không nhìn thấy thông tin xác thực của các nhà lãnh đạo tiềm năng khác. Vì các giá trị hash là đồng nhất một cách ngẫu nhiên nên khi SV r,1 không trống thì \(\ell\)r luôn tồn tại và trung thực với xác suất ít nhất là h. Tham số n1 đủ lớn để đảm bảo rằng mỗi SV r,1 không trống với xác suất áp đảo. • Cấu trúc khối. Khối không trống có dạng Br = (r, PAY r, SIG\(\ell\)r(Qr−1), H(Br−1)) và khối trống có dạng Br ǫ = (r, \(\emptyset\), Qr−1, H(Br−1)). Lưu ý rằng khối không trống vẫn có thể chứa tập thanh toán trống PAY r, nếu không có khoản thanh toán nào xảy ra trong vòng này hoặc nếu người dẫn đầu có ác ý. Tuy nhiên, một khối không trống ngụ ý rằng danh tính của \(\ell\)r, thông tin xác thực của anh ấy \(\sigma\)r,1 \(\ell\)r và SIG\(\ell\)r(Qr−1) đều đã được tiết lộ kịp thời. Giao thức đảm bảo rằng, nếu người lãnh đạo trung thực thì khối sẽ không trống với xác suất áp đảo. • Hạt giống Qr. Nếu Br không trống thì Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), nếu không thì Qr \(\triangleq\)H(Qr−1, r). Thông số • Mối quan hệ giữa các thông số khác nhau. — Người xác minh và người lãnh đạo tiềm năng của vòng r được chọn từ những người dùng trong PKr−k, trong đó k được chọn để Đối thủ không thể dự đoán Qr−1 ở vòng r −k −1 với xác suất tốt hơn F: nếu không, anh ta sẽ có thể giới thiệu những người dùng độc hại đối với vòng r −k, tất cả đều sẽ là người dẫn đầu/người xác minh tiềm năng ở vòng r, thành công trong

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.

Dua Perwujudan Algorand

Seperti yang telah dibahas, pada tingkat yang sangat tinggi, putaran Algorand idealnya berlangsung sebagai berikut. Pertama, secara acak pengguna yang dipilih, pemimpin, mengusulkan dan mengedarkan blok baru. (Proses ini mencakup awalnya memilih beberapa pemimpin potensial dan kemudian memastikan bahwa, setidaknya dalam jangka waktu tertentu, a muncul satu pemimpin yang sama.) Kedua, komite pengguna yang dipilih secara acak dipilih, dan mencapai persetujuan Bizantium mengenai blok yang diusulkan oleh pemimpinnya. (Proses ini mencakup itu setiap langkah protokol BA dijalankan oleh komite yang dipilih secara terpisah.) Blok yang disepakati kemudian ditandatangani secara digital oleh ambang batas (TH) tertentu dari anggota komite. Tanda tangan digital ini diedarkan sehingga semua orang yakin blok mana yang baru. (Ini termasuk mengedarkan kredensial penandatangan, dan hanya mengautentikasi hash blok baru, memastikan bahwa semua orang dijamin akan mempelajari blok tersebut, setelah hash-nya dibuat jelas.) Pada dua bagian berikutnya, kami menyajikan dua perwujudan dari Algorand, Algorand ′ 1 dan Algorand′ 2, yang bekerja berdasarkan asumsi mayoritas pengguna yang jujur. Di Bagian 8 kami menunjukkan cara menerapkan hal ini perwujudan untuk bekerja di bawah asumsi mayoritas uang yang jujur. Algorand' Saya hanya membayangkan > 2/3 anggota komite jujur. Selain itu, di Algorand' Pada tanggal 1 Januari, jumlah langkah untuk mencapai kesepakatan Bizantium dibatasi pada tingkat yang cukup tinggi nomor, sehingga kesepakatan dijamin akan dicapai dengan probabilitas yang sangat besar dalam a jumlah langkah yang tetap (tetapi mungkin memerlukan waktu lebih lama daripada langkah Algorand ′ 2). Di dalam hal yang jarang terjadi dimana kesepakatan belum tercapai pada langkah terakhir, panitia menyetujuinya blok kosong, yang selalu valid. Algorand ' 2 membayangkan bahwa jumlah anggota yang jujur dalam sebuah komite selalu lebih besar daripada atau sama dengan ambang batas tetap tH (yang menjamin hal tersebut, setidaknya dengan kemungkinan yang sangat besar 2/3 anggota panitia jujur). Selain itu, Algorand′ 2 mengizinkan persetujuan Bizantium untuk dicapai dalam sejumlah langkah yang berubah-ubah (tetapi berpotensi dalam waktu yang lebih singkat dari Algorand ′ 1). Sangat mudah untuk mendapatkan banyak varian dari perwujudan dasar ini. Khususnya, mudah, diberikan Algorand' 2, untuk mengubah Algorand ′ 1 sehingga memungkinkan tercapainya persetujuan Bizantium secara sewenang-wenang sejumlah langkah. Kedua perwujudan tersebut memiliki inti, notasi, gagasan, dan parameter yang sama. 4.1 Inti yang Sama Tujuan Idealnya, untuk setiap putaran r, Algorand akan memenuhi properti berikut: 1. Kebenaran Sempurna. Semua pengguna yang jujur ​​menyetujui blok yang sama Br. 2. Kelengkapan 1. Dengan probabilitas 1, payset Br, PAY r, maksimal.10 10Karena payset didefinisikan berisi pembayaran yang valid, dan pengguna yang jujur hanya melakukan pembayaran yang valid, PAY r berisi pembayaran “yang terutang saat ini” dari semua pengguna yang jujur.Tentu saja, menjamin kebenaran yang sempurna adalah hal yang sepele: setiap orang selalu memilih pejabatnya payset PAY r menjadi kosong. Namun dalam kasus ini, sistem akan memiliki kelengkapan 0. Sayangnya, menjamin kebenaran dan kelengkapan yang sempurna 1 tidaklah mudah di hadapan pihak yang jahat pengguna. Algorand dengan demikian mengadopsi tujuan yang lebih realistis. Secara informal, h menunjukkan persentase dari pengguna yang jujur, h > 2/3, sasaran Algorand adalah Menjamin, dengan kemungkinan besar, kebenaran sempurna dan kelengkapan mendekati h. Mengutamakan kebenaran dibandingkan kelengkapan tampaknya merupakan pilihan yang masuk akal: pembayaran tidak diproses satu putaran dapat diproses pada putaran berikutnya, tetapi garpu harus dihindari, jika memungkinkan. Perjanjian Bizantium yang Dipimpin Kebenaran Sempurna dapat dijamin sebagai berikut. Pada awalnya putaran r, setiap pengguna i membuat blok kandidatnya sendiri Br i , dan kemudian semua pengguna mencapai Bizantium kesepakatan pada satu blok kandidat. Sesuai perkenalan kami, protokol BA yang digunakan memerlukan mayoritas jujur 2/3 dan pemain dapat diganti. Setiap langkahnya dapat dilakukan oleh yang kecil dan kumpulan verifikasi yang dipilih secara acak, yang tidak berbagi variabel dalam apa pun. Sayangnya, pendekatan ini tidak mempunyai jaminan kelengkapan. Hal ini terjadi karena kandidat blok pengguna yang jujur kemungkinan besar sangat berbeda satu sama lain. Jadi, pada akhirnya blok yang disepakati mungkin selalu merupakan blok dengan pembayaran tidak maksimal. Faktanya, hal itu mungkin selalu terjadi blok kosong, B\(\varepsilon\), yaitu blok yang pembayarannya kosong. jadilah default, yang kosong. Algorand ′ menghindari masalah kelengkapan ini sebagai berikut. Pertama, pemimpin putaran r, \(\ell\)r, dipilih. Kemudian, \(\ell\)r menyebarkan blok kandidatnya sendiri, Br \(\ell\)r. Akhirnya, pengguna mencapai kesepakatan tentang pemblokiran tersebut mereka sebenarnya menerima dari \(\ell\)r. Sebab, bilamana jujur, Kebenaran dan Kelengkapan Sempurna 1 keduanya memegang, Algorand ′ memastikan bahwa \(\ell\)r jujur dengan probabilitas mendekati h. (Ketika pemimpinnya adalah jahat, kami tidak peduli apakah blok yang disepakati adalah blok dengan pembayaran kosong. Bagaimanapun, a pemimpin jahat \(\ell\)r mungkin selalu memilih Br \(\ell\)r menjadi blok kosong, dan kemudian jujur menyebarkannya, sehingga memaksa pengguna yang jujur untuk menyetujui blok kosong tersebut.) Seleksi Pemimpin Pada Algorand, blok ke-r berbentuk Br = (r, PAY r, Qr, H(Br−1). Seperti telah disebutkan dalam pendahuluan, besaran Qr−1 dikonstruksikan secara cermat sehingga menjadi pada dasarnya tidak dapat dimanipulasi oleh Musuh kita yang sangat kuat. (Nanti di bagian ini, kita akan melakukannya memberikan beberapa intuisi tentang mengapa hal ini terjadi.) Pada awal putaran r, semua pengguna mengetahui blockchain sejauh ini, B0, . . . , Br−1, yang darinya mereka menyimpulkan himpunan pengguna dari setiap putaran sebelumnya: itu adalah, PK1, . . . , PKr−1. Pemimpin potensial pada putaran r adalah pengguna i sedemikian rupa .H SIGi r, 1, Qr−1 \(\leq\)p. Mari kami jelaskan. Perhatikan bahwa, karena kuantitas Qr−1 adalah bagian dari blok Br−1, dan yang mendasarinya skema tanda tangan memenuhi properti keunikan, SIGi r, 1, Qr−1 adalah string biner secara unik terkait dengan i dan r. Jadi, karena H adalah oracle acak, H SIGi r, 1, Qr−1 adalah 256-bit acak string panjang yang diasosiasikan secara unik ke i dan r. Simbol “.” di depan H SIGi r, 1, Qr−1 adalah titik desimal (dalam kasus kita, biner), sehingga ri \(\triangleq\).H SIGi r, 1, Qr−1 adalah ekspansi biner dari a nomor acak 256-bit antara 0 dan 1 yang dikaitkan secara unik ke i dan r. Jadi kemungkinannya ri kurang dari atau sama dengan p pada dasarnya adalah p. (Mekanisme seleksi calon pemimpin kami telah dilakukan terinspirasi oleh skema pembayaran mikro Micali dan Rivest [28].) Probabilitas p dipilih sehingga, dengan probabilitas yang sangat besar (yaitu, 1 −F), setidaknya ada satu pemverifikasi potensial adalah jujur. (Jika faktanya, p dipilih sebagai probabilitas terkecil.)Perhatikan bahwa, karena i adalah satu-satunya yang mampu menghitung tanda tangannya sendiri, maka hanya dia yang bisa menentukan apakah dia berpotensi menjadi pemverifikasi putaran 1. Namun, dengan mengungkapkan kredensialnya sendiri, \(\sigma\)r saya \(\triangleq\)SIGi r, 1, Qr−1 , saya dapat membuktikan kepada siapa pun sebagai pemverifikasi potensial putaran r. Pemimpin \(\ell\)r didefinisikan sebagai pemimpin potensial yang kredensial hashnya lebih kecil dari pemimpin hashed kredensial semua pemimpin potensial lainnya j: yaitu, H(\(\sigma\)r,s \(\ell\)r ) \(\leq\)H(\(\sigma\)r,s j ). Perhatikan bahwa, karena \(\ell\)r yang jahat mungkin tidak mengungkapkan kredensialnya, pemimpin putaran r yang benar mungkin mengungkapkan kredensialnya tidak pernah diketahui, dan, kecuali ada hubungan yang mustahil, \(\ell\)r memang satu-satunya pemimpin putaran r. Mari kita akhirnya mengemukakan detail terakhir namun penting: pengguna saya bisa menjadi pemimpin potensial (dan dengan demikian pemimpin) dari suatu putaran r hanya jika dia termasuk dalam sistem setidaknya selama k putaran. Ini menjamin non-manipulasi Qr dan semua kuantitas Q di masa depan. Bahkan, salah satu calon pemimpin sebenarnya akan menentukan Qr. Seleksi Verifikasi Setiap langkah s > 1 pada putaran r dieksekusi oleh sekelompok kecil verifier, SV r,s. Sekali lagi, setiap pemverifikasi i \(\in\)SV r,s dipilih secara acak di antara pengguna yang sudah berada dalam putaran k sistem sebelum r, dan lagi melalui kuantitas khusus Qr−1. Secara khusus, i \(\in\)PKr−k adalah pemverifikasi dalam SV r,s, jika .H SIGi r, s, Qr−1 \(\leq\)p′ . Sekali lagi, hanya saya yang tahu apakah dia anggota SV r,s, tapi kalau memang begitu, dia bisa membuktikannya dengan menunjukkan kredensialnya \(\sigma\)r,s saya \(\triangleq\)H(SIGi r, s, Qr−1 ). Pemverifikasi i \(\in\)SV r,s mengirimkan pesan, mr,s saya, di langkah s pada putaran r, dan pesan ini menyertakan kredensialnya \(\sigma\)r,s i , untuk mengaktifkan pemverifikasi f langkah sarang untuk mengenali Tuan itu, s saya adalah pesan langkah yang sah. Probabilitas p′ dipilih untuk memastikan bahwa, dalam SV r,s, membiarkan #good menjadi bilangan pengguna yang jujur dan #buruk jumlah pengguna yang jahat, dengan kemungkinan besar sebagai berikut dua kondisi berlaku. Untuk perwujudan Algorand′ 1: (1) #baik > 2 \(\cdot\) #buruk dan (2) #baik + 4 \(\cdot\) #buruk < 2n, dimana n adalah kardinalitas yang diharapkan dari SV r,s. Untuk perwujudan Algorand′ 2: (1) #baik > tH dan (2) #baik + 2#buruk < 2tH, dengan tH adalah ambang batas yang ditentukan. Kondisi ini menyiratkan bahwa, dengan probabilitas yang cukup tinggi, (a) pada langkah terakhir BA protokol, setidaknya akan ada sejumlah pemain jujur ​​yang menandatangani blok baru secara digital Br, (b) hanya satu blok per putaran yang dapat memiliki jumlah tanda tangan yang diperlukan, dan (c) BA yang digunakan protokol memiliki (di setiap langkah) 2/3 mayoritas jujur yang disyaratkan. Mengklarifikasi Pembuatan Blok Jika pemimpin putaran r \(\ell\)r jujur, maka blok yang sesuai adalah dari bentuk Br = r, BAYAR r, SIG\(\ell\)r Qr−1 , H Br−1 , dimana payset PAY r maksimal. (ingatlah bahwa semua pembayaran, menurut definisi, sah secara kolektif.) Lain (yaitu, jika \(\ell\)r berbahaya), Br memiliki salah satu dari dua kemungkinan bentuk berikut: Br = r, BAYAR r, SIGi Qr−1 , H Br−1 dan Br = Br \(\varepsilon\) \(\triangleq\) r, \(\emptyset\), Qr−1, H Br−1 .Dalam bentuk pertama, PAY r adalah set pembayaran (yang belum tentu maksimal) dan dapat berupa PAY r = \(\emptyset\); dan aku adalah calon pemimpin putaran r. (Namun, saya mungkin bukan pemimpin \(\ell\)r. Hal ini mungkin terjadi jika \(\ell\)r merahasiakan kredensialnya dan tidak mengungkapkan dirinya.) Bentuk kedua muncul ketika, dalam pelaksanaan putaran-r protokol BA, semua pemain jujur menampilkan nilai default, yaitu blok kosong Br \(\varepsilon\) dalam aplikasi kita. (Menurut definisi, kemungkinan keluaran protokol BA menyertakan nilai default, yang secara umum dilambangkan dengan \(\bot\). Lihat bagian 3.2.) Perhatikan bahwa, meskipun payset kosong pada kedua kasus, Br = r, \(\emptyset\), SIGi Qr−1 , H Br−1 dan Sdr \(\varepsilon\) adalah blok yang berbeda secara sintaksis dan muncul dalam dua situasi berbeda: masing-masing, “semua berjalan cukup lancar dalam pelaksanaan protokol BA”, dan “ada yang tidak beres di protokol BA, dan nilai defaultnya adalah keluaran”. Sekarang mari kita jelaskan secara intuitif bagaimana pembangkitan blok Br berlangsung pada putaran r Algorand ′. Pada langkah pertama, setiap pemain yang memenuhi syarat, yaitu setiap pemain i \(\in\)PKr−k, memeriksa apakah dia berpotensi pemimpin. Jika hal ini terjadi, maka saya ditanya, menggunakan semua pembayaran yang telah dilihatnya sejauh ini, dan saat ini blockchain, B0, . . . , Br−1, untuk diam-diam menyiapkan set pembayaran maksimal, MEMBAYAR r aku, dan diam-diam merakit blok kandidatnya, Br = r, BAYAR r saya, SIGi Qr−1 , H Br−1 . Artinya, bukan hanya dia saja termasuk dalam Br i , sebagai komponen kedua dari pembayaran yang baru saja disiapkan, tetapi juga, sebagai komponen ketiga, tanda tangannya sendiri pada Qr−1, komponen ketiga dari blok terakhir, Br−1. Akhirnya, dia menyebarkan miliknya pesan putaran-r-langkah-1, tuan,1 i , yang meliputi (a) blok calonnya Br i , (b) tanda tangannya yang sebenarnya dari blok kandidatnya (yaitu, tanda tangannya pada hash dari Br i , dan (c) kredensialnya sendiri \(\sigma\)r,1 saya, membuktikan bahwa dia memang berpotensi menjadi pemverifikasi putaran r. (Perhatikan bahwa, sampai saya yang jujur menyampaikan pesannya, Tuan,1 saya, Musuh tidak tahu bahwa saya adalah a pemverifikasi potensial. Jika ia ingin merusak calon pemimpin yang jujur, maka Musuh juga akan melakukan hal yang sama pemain jujur acak yang korup. Namun, begitu dia melihat Tuan, 1 i , karena berisi kredensial i, maka Musuh mengetahui dan dapat merusak i, namun tidak dapat mencegah mr,1 i , yang disebarkan secara viral, dari menjangkau semua pengguna di sistem.) Pada langkah kedua, setiap verifikator terpilih j \(\in\)SV r,2 mencoba mengidentifikasi pemimpin putaran. Secara khusus, j mengambil kredensial langkah-1, \(\sigma\)r,1 saya1 , . . . , \(\sigma\)r,1 di , terkandung dalam pesan langkah-1 yang tepat mr,1 saya dia telah menerima; hashes semuanya, yaitu menghitung H  \(\sigma\)r,1 i1  , . . . , H  \(\sigma\)r,1 di  ; menemukan kredensialnya, \(\sigma\)r,1 \(\ell\)j , yang hash minimum secara leksikografis; dan mempertimbangkan \(\ell\)r j menjadi pemimpin ronde r. Ingatlah bahwa setiap kredensial yang dipertimbangkan adalah tanda tangan digital dari Qr−1, yaitu SIGi r, 1, Qr−1 adalah ditentukan secara unik oleh i dan Qr−1, bahwa H acak oracle, dan dengan demikian setiap H(SIGi r, 1, Qr−1 adalah string acak sepanjang 256-bit yang unik untuk setiap calon pemimpin i pada putaran r. Dari sini kita dapat menyimpulkan bahwa, jika string 256-bit Qr−1 adalah dirinya sendiri secara acak dan independen dipilih, sehingga akan menjadi hash kredensial dari semua calon pemimpin putaran r. Faktanya, semuanya calon pemimpin sudah terdefinisi dengan baik, begitu pula kredensial mereka (baik yang benar-benar dihitung atau tidak). tidak). Selanjutnya, himpunan pemimpin potensial pada putaran r adalah himpunan bagian acak dari pengguna putaran r −k, dan calon pemimpin yang jujur saya selalu membangun dan menyebarkan pesannya dengan benar, Tuan saya , yang berisi kredensial saya. Jadi, karena persentase pengguna yang jujur adalah h, berapapun jumlahnya minimum yang mungkin dilakukan oleh calon pemimpin yang jahat (misalnya, mengungkapkan atau menyembunyikan kredensial mereka sendiri). hash kredensial calon pemimpin adalah milik pengguna yang jujur, yang harus diidentifikasi oleh semua orang menjadi pemimpin \(\ell\)r pada ronde r. Oleh karena itu, jika string 256-bit Qr−1 itu sendiri secara acak dan dipilih secara independen, dengan probabilitas tepat h (a) pemimpin \(\ell\)r jujur dan (b) \(\ell\)j = \(\ell\)r untuk semua verifikator langkah-2 yang jujur j. Pada kenyataannya, kredensial hashed, ya, dipilih secara acak, tetapi bergantung pada Qr−1, yaitutidak dipilih secara acak dan independen. Akan tetapi, kita akan membuktikan dalam analisis kita bahwa Qr−1 adalah cukup tidak dapat dimanipulasi untuk menjamin bahwa pemimpin suatu ronde jujur terhadap probabilitas h′ cukup dekat dengan h: yaitu, h′ > h2(1 + h −h2). Misalnya, jika h = 80%, maka h′ > 0,7424. Setelah mengidentifikasi pemimpin ronde (yang mereka lakukan dengan benar jika pemimpinnya jujur), tugas verifikasi langkah ke-2 adalah mulai melaksanakan BA dengan menggunakan nilai awal apa yang mereka yakini menjadi blok pemimpin. Sebenarnya, untuk meminimalkan jumlah komunikasi yang diperlukan, pemverifikasi j \(\in\)SV r,2 tidak menggunakan, sebagai nilai masukannya v′ j ke protokol Bizantium, blok Bj itu dia sebenarnya telah menerima dari \(\ell\)j (pengguna j diyakini sebagai pemimpin), tetapi pemimpinnya, tetapi hash dari blok itu, yaitu v′ j = H(Bi). Jadi, setelah penghentian protokol BA, verifikasi dari langkah terakhir jangan menghitung blok bulat-r yang diinginkan Br, tetapi hitung (otentikasi dan menyebarkan) H(Br). Oleh karena itu, karena H(Br) ditandatangani secara digital oleh cukup banyak verifikasi langkah terakhir dari protokol BA, pengguna dalam sistem akan menyadari bahwa H(Br) adalah hash dari yang baru blok. Namun, mereka juga harus mengambil (atau menunggu, karena eksekusinya cukup asinkron) tersebut blok Br itu sendiri, yang mana protokol memastikan bahwa memang tersedia, tidak peduli apa pun Musuhnya mungkin bisa dilakukan. Asinkroni dan Waktu Algorand' 1 dan Algorand′ 2 memiliki tingkat asinkroni yang signifikan. Hal ini dikarenakan Adversary mempunyai keleluasaan yang luas dalam menjadwalkan pengiriman pesan-pesan yang sedang dilakukannya disebarkan. Selain itu, apakah jumlah langkah dalam satu putaran dibatasi atau tidak, tetap ada varians dikontribusikan oleh jumlah langkah yang sebenarnya diambil. Begitu dia mempelajari sertifikat B0, . . . , Br−1, pengguna i menghitung Qr−1 dan mulai bekerja pada putaran r, memeriksa apakah dia calon pemimpin, atau pemverifikasi pada beberapa langkah s pada putaran r. Dengan asumsi bahwa saya harus bertindak pada langkah s, mengingat ketidaksinkronan yang dibahas, saya bergantung pada berbagai strategi untuk memastikan bahwa dia memiliki informasi yang cukup sebelum dia bertindak. Misalnya, dia mungkin menunggu untuk menerima setidaknya sejumlah pesan dari pemverifikasi langkah sebelumnya, atau tunggu waktu yang cukup untuk memastikan bahwa dia menerima pesan yang cukup banyak pemverifikasi dari langkah sebelumnya. Seed Qr dan Parameter Lihat-Kembali k Ingatlah bahwa, idealnya, besaran Qr seharusnya acak dan independen, meskipun cukup jika mereka tidak dapat dimanipulasi oleh Musuh. Sekilas, kita dapat memilih Qr−1 yang bertepatan dengan H MEMBAYAR r−1 , dan dengan demikian menghindari tentukan Qr−1 secara eksplisit di Br−1. Namun, analisis dasar mengungkapkan bahwa pengguna jahat mungkin saja melakukannya manfaatkan mekanisme seleksi ini.11 Beberapa upaya tambahan menunjukkan bahwa banyak sekali upaya lainnya 11Kita berada di awal ronde r −1. Jadi, Qr−2 = PAY r−2 diketahui publik, dan Musuh diketahui secara pribadi mengetahui siapa calon pemimpin yang ia kendalikan. Asumsikan bahwa Musuh mengendalikan 10% pengguna, dan bahwa, dengan probabilitas yang sangat tinggi, pengguna jahat w adalah calon pemimpin putaran r −1. Artinya, asumsikan itu H SIGw r −2, 1, Qr−2 Jumlahnya sangat kecil sehingga sangat kecil kemungkinannya calon pemimpin yang jujur akan menjadi pemimpin yang jujur pemimpin putaran r −1. (Ingatlah bahwa, karena kita memilih calon pemimpin melalui mekanisme penyortiran kriptografi rahasia, Musuh tidak tahu siapa calon pemimpin yang jujur.) Oleh karena itu, Musuh berada dalam posisi yang patut ditiru. posisi memilih payset PAY ′ yang diinginkannya, dan menjadikannya payset resmi pada putaran r −1. Namun, dia bisa berbuat lebih banyak. Dia juga dapat memastikan bahwa, dengan kemungkinan besar, () salah satu pengguna jahatnya akan menjadi pemimpinnya juga dari putaran r, sehingga dia dapat dengan bebas memilih berapa PAY rnya. (Dan seterusnya. Setidaknya untuk jangka waktu yang lama, yaitu, selama kejadian yang berpeluang tinggi tersebut benar-benar terjadi.) Untuk menjamin (), Musuh bertindak sebagai berikut. Biar BAYAR' menjadi pembayaran yang disukai Musuh untuk putaran r −1. Kemudian, dia menghitung H(PAY ′) dan memeriksa apakah, untuk beberapa hal pemain z yang sudah jahat, SIGz(r, 1, H(PAY ′)) sangat kecil, yaitu cukup kecil sehingga sangat tinggi probabilitas z akan menjadi pemimpin putaran r. Jika hal ini terjadi, maka dia menginstruksikan w untuk memilih blok kandidatnyaalternatif, berdasarkan jumlah blok tradisional mudah dieksploitasi oleh Musuh untuk memastikannya bahwa pemimpin yang jahat sangat sering terjadi. Kami malah mendefinisikan merek kami secara spesifik dan induktif kuantitas baru Qr sehingga dapat membuktikan bahwa ia tidak dapat dimanipulasi oleh Musuh. Yaitu, Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), jika Br bukan blok kosong, dan Qr \(\triangleq\)H(Qr−1, r) sebaliknya. Intuisi mengapa konstruksi Qr ini berhasil adalah sebagai berikut. Anggaplah sejenak demikian Qr−1 benar-benar dipilih secara acak dan independen. Lalu, apakah Qr juga demikian? Ketika \(\ell\)r jujur jawabannya adalah (secara kasar) ya. Hal ini terjadi karena H(SIG\(\ell\)r( \(\cdot\) ), r) : {0, 1}256 −→{0, 1}256 adalah fungsi acak. Namun ketika \(\ell\)r berbahaya, Qr tidak lagi didefinisikan secara univokal dari Qr−1 dan \(\ell\)r. Setidaknya ada dua nilai terpisah untuk Qr. Satu tetap menjadi Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), dan yang lainnya adalah H(Qr−1, r). Pertama-tama mari kita berargumen bahwa, meskipun pilihan kedua agak sewenang-wenang, pilihan kedua mutlak wajib. Alasannya adalah bahwa orang jahat selalu dapat menyebabkan masalah kandidat blok yang benar-benar berbeda untuk diterima oleh pemverifikasi yang jujur pada langkah kedua.12 Sekali jika demikian, mudah untuk memastikan bahwa blok tersebut pada akhirnya disetujui melalui protokol BA putaran r akan menjadi putaran default, dan karenanya tidak akan berisi tanda tangan digital Qr−1 siapa pun. Tapi sistem harus terus berjalan, dan untuk itu diperlukan seorang pemimpin untuk putaran r. Jika pemimpin ini otomatis dan dipilih secara terbuka, maka Musuh akan merusaknya dengan sepele. Jika dipilih oleh sebelumnya Qr−1 melalui proses yang sama, maka \(\ell\)r akan kembali menjadi pemimpin di babak r+1. Kami secara khusus mengusulkan untuk menggunakan mekanisme penyortiran kriptografi rahasia yang sama, tetapi diterapkan pada kuantitas Q baru: yaitu, H(Qr−1, r). Dengan menjadikan kuantitas ini sebagai keluaran H menjamin bahwa keluarannya acak, dan dengan memasukkan r sebagai masukan kedua dari H, sementara semua penggunaan H lainnya memiliki satu atau 3+ masukan, “menjamin” bahwa Qr tersebut dipilih secara independen. Sekali lagi, pilihan khusus kami atas alternatif Qr tidak masalah, yang penting \(\ell\)r punya dua pilihan untuk Qr, sehingga dia bisa menggandakan peluangnya untuk memiliki pengguna jahat lainnya sebagai pemimpin berikutnya. Opsi untuk Qr bahkan mungkin lebih banyak bagi Musuh yang mengendalikan \(\ell\)r jahat. Misalnya, x, y, dan z adalah tiga pemimpin potensial yang berbahaya pada putaran r sedemikian rupa sehingga H \(\sigma\)r,1 x  < H \(\sigma\)r,1 kamu  < H \(\sigma\)r,1 z  dan H  \(\sigma\)r,1 z  sangat kecil. Artinya, sangat kecil sehingga ada kemungkinan besar H  \(\sigma\)r,1 z  adalah lebih kecil dari kredensial hashed dari setiap calon pemimpin yang jujur. Kemudian, dengan meminta x untuk menyembunyikan miliknya kredensial, Musuh memiliki peluang bagus untuk membuat y menjadi pemimpin putaran r −1. Ini menyiratkan bahwa dia memiliki pilihan lain untuk Qr: yaitu SIGy Qr−1 . Demikian pula, Musuh mungkin minta x dan y untuk menahan kredensial mereka, agar z menjadi pemimpin putaran r −1 dan mendapatkan opsi lain untuk Qr: yaitu SIGz Qr−1 . Tentu saja, masing-masing opsi ini dan opsi lainnya mempunyai peluang gagal yang tidak nol, karena Musuh tidak dapat memprediksi hash tanda tangan digital calon pengguna yang jujur. Br−1 saya = (r −1, PAY ′, H(Br−2). Selain itu, dia memiliki dua pengguna jahat lainnya x dan y untuk terus menghasilkan pembayaran baru \(\wp\)′, dari satu ke yang lain, hingga, untuk beberapa pengguna jahat z (atau bahkan untuk beberapa pengguna tetap z) H (SIGz (PAY ′ \(\cup\){\(\wp\)})) adalah sangat kecil juga. Eksperimen ini akan berhenti dengan cepat. Dan ketika itu terjadi, Musuh meminta kami untuk melamar calon blok Br−1 saya = (r −1, BAYAR ′ \(\cup\){\(\wp\)}, H(Br−2). 12Misalnya, untuk membuatnya lebih sederhana (namun ekstrim), “ketika waktu langkah kedua hampir habis”, \(\ell\)r dapat langsung mengirimkan email ke kandidat blok Bi yang berbeda ke setiap pengguna i. Dengan cara ini, siapa pun pemverifikasi langkah ke-2, merekalah yang akan melakukan hal tersebut akan menerima blok yang sangat berbeda.Analisis yang cermat dan mirip rantai Markov menunjukkan hal itu, apa pun opsi yang dipilih Musuh untuk membuat pada putaran r −1, selama dia tidak dapat memasukkan pengguna baru ke dalam sistem, dia tidak dapat menguranginya probabilitas pengguna yang jujur menjadi pemimpin putaran r + 40 jauh di bawah h. Inilah alasannya yang kami minta agar calon pemimpin putaran r adalah pengguna yang sudah ada di putaran r −k. Ini adalah cara untuk memastikan bahwa, pada putaran r −k, Musuh tidak dapat mengubah kemungkinannya sebanyak itu pengguna yang jujur menjadi pemimpin putaran r. Faktanya, tidak peduli pengguna apa yang dia tambahkan ke dalamnya sistem di putaran r −k hingga r, mereka tidak memenuhi syarat untuk menjadi pemimpin potensial (dan a fortiori the pemimpin) putaran r. Jadi parameter lihat kembali k pada akhirnya adalah parameter keamanan. (Meskipun, seperti yang akan kita lihat di bagian 7, ini juga bisa menjadi semacam “parameter kenyamanan”.) Kunci Singkat Meskipun eksekusi protokol kami tidak dapat menghasilkan fork, kecuali dengan probabilitas yang dapat diabaikan, Musuh dapat menghasilkan percabangan, di blok ke-r, setelah blok sah blok r telah dibuat. Secara kasar, setelah Br dihasilkan, Musuh telah mengetahui siapa yang melakukan verifikasi pada setiap langkah dari putaran r adalah. Oleh karena itu, ia dapat merusak semuanya dan mewajibkan mereka untuk mengesahkan blok baru f Sdr. Karena blok palsu ini mungkin disebarkan hanya setelah yang sah, pengguna yang telah melakukannya memperhatikan tidak akan tertipu.13 Meskipun demikian, f Br secara sintaksis benar dan kami ingin dicegah agar tidak diproduksi. Kami melakukannya melalui aturan baru. Pada dasarnya, anggota verifikasi menetapkan SV r,s dari suatu langkah s putaran r menggunakan kunci publik sementara pkr,s saya untuk menandatangani pesan mereka secara digital. Kunci ini hanya sekali pakai dan kunci rahasianya adalah skr,s saya hancur setelah digunakan. Dengan cara ini, jika ada pemverifikasi kemudian dirusak, Musuh tidak dapat memaksanya untuk menandatangani apa pun yang tidak ia tandatangani pada awalnya. Tentu saja, kita harus memastikan bahwa Musuh tidak mungkin menghitung kunci baru g pr,s saya dan meyakinkan pengguna yang jujur bahwa ini adalah kunci pemverifikasi i \(\in\)SV r,s yang tepat untuk digunakan pada langkah s. 4.2 Ringkasan Umum Notasi, Pengertian, dan Parameter Notasi • r \(\geq\)0: bilangan bulat saat ini. • s \(\geq\)1: nomor langkah saat ini pada putaran r. • Br: blok yang dihasilkan pada putaran r. • PKr: himpunan kunci publik pada akhir putaran r −1 dan pada awal putaran r. • Sr: status sistem pada akhir putaran r −1 dan awal putaran r.14 • PAY r : payset yang terdapat pada Br. • \(\ell\)r: pemimpin putaran-r. \(\ell\)r memilih payset PAY r pada putaran r (dan menentukan Qr berikutnya). • Qr: benih dari putaran r, suatu kuantitas (yaitu, string biner) yang dihasilkan pada akhir putaran r dan digunakan untuk memilih pemverifikasi untuk putaran r + 1. Qr tidak bergantung pada pembayaran di blok dan tidak dapat dimanipulasi oleh \(\ell\)r. 13Pertimbangkan untuk merusak pembawa berita di jaringan TV besar, dan memproduksi serta menyiarkan film berita hari ini menunjukkan Menteri Clinton memenangkan pemilihan presiden terakhir. Sebagian besar dari kita akan mengenalinya sebagai tipuan. Tapi seseorang yang baru sadar dari koma mungkin akan tertipu. 14Dalam sistem yang tidak sinkron, pengertian “akhir putaran r −1” dan “awal putaran r” perlu didefinisikan secara hati-hati. Secara matematis, PKr dan Sr dihitung dari status awal S0 dan blok-bloknya B1, . . . , Br−1.• SV r,s: himpunan pemverifikasi yang dipilih untuk langkah s pada putaran r. • SV r: himpunan verifikasi yang dipilih untuk putaran r, SV r = \(\cup\)s\(\geq\)1SV r,s. • MSV r,s dan HSV r,s: masing-masing, himpunan verifier yang jahat dan himpunan verifier yang jujur dalam SV r, s. MSV r,s \(\cup\)HSV r,s = SV r,s dan MSV r,s ∩HSV r,s = \(\emptyset\). • n1 \(\in\)Z+ dan n \(\in\)Z+: masing-masing, jumlah calon pemimpin yang diharapkan di setiap SV r,1, dan jumlah verifikator yang diharapkan dalam setiap SV r,s, untuk s > 1. Perhatikan bahwa n1 << n, karena kita membutuhkan setidaknya satu anggota jujur yang jujur di SV r,1, tapi setidaknya mayoritas anggota jujur di setiap SV r,s untuk s > 1. • h \(\in\)(0, 1): konstanta yang lebih besar dari 2/3. h adalah rasio kejujuran dalam sistem. Artinya, itu sebagian kecil dari pengguna jujur atau uang jujur, tergantung asumsi yang digunakan, dalam setiap PKr setidaknya h. • H: fungsi kriptografi hash, dimodelkan sebagai oracle acak. • \(\bot\): String khusus yang panjangnya sama dengan keluaran H. • F \(\in\)(0, 1): parameter yang menentukan probabilitas kesalahan yang diperbolehkan. Probabilitas \(\leq\)F adalah dianggap “dapat diabaikan”, dan probabilitas \(\geq\)1 −F dianggap “luar biasa”. • ph \(\in\)(0, 1): probabilitas bahwa pemimpin suatu ronde r, \(\ell\)r, adalah jujur. Idealnya ph = h. Dengan adanya Adversary maka nilai ph akan ditentukan dalam analisa. • k \(\in\)Z+: parameter lihat kembali. Artinya, putaran r −k adalah tempat pemverifikasi putaran r berada dipilih dari —yakni, SV r \(\subseteq\)PKr−k.15 • p1 \(\in\)(0, 1): untuk langkah pertama putaran r, pengguna pada putaran r −k dipilih berada di SV r,1 dengan probabilitas p1 \(\triangleq\) n1 |P Kr−k|. • p \(\in\)(0, 1): untuk setiap langkah s > 1 pada putaran r, pengguna pada putaran r −k dipilih untuk berada dalam SV r,s dengan probabilitas p \(\triangleq\) n |P Kr−k|. • CERT r : sertifikat untuk Br. Ini adalah satu set tanda tangan H(Br) dari verifier yang tepat di putaran r. • Br \(\triangleq\)(Br, CERT r) merupakan blok terbukti. Seorang pengguna saya mengenal Br jika dia memiliki (dan berhasil memverifikasi) kedua bagian dari blok yang terbukti. Perhatikan bahwa CERT yang dilihat oleh pengguna yang berbeda mungkin berbeda. • τ r i : waktu (lokal) dimana pengguna yang saya kenal Br. Dalam protokol Algorand, setiap pengguna memiliki miliknya sendiri jam sendiri. Jam pengguna yang berbeda tidak perlu disinkronkan, namun harus memiliki kecepatan yang sama. Hanya untuk tujuan analisis, kami mempertimbangkan jam referensi dan mengukur kinerja para pemain. waktu terkait sehubungan dengan itu. • \(\alpha\)r,s saya dan \(\beta\)r,s i : masing-masing waktu (lokal) pengguna i memulai dan mengakhiri eksekusi Langkah s-nya putaran r. • Λ dan \(\lambda\): pada dasarnya, batas atas, masing-masing, waktu yang dibutuhkan untuk melaksanakan Langkah 1 dan waktu yang diperlukan untuk setiap langkah lain dari protokol Algorand. Parameter Λ membatasi waktu untuk menyebarkan satu blok 1MB. (Dalam notasi kami, Λ = \(\lambda\) \(\rho\),1 MB. Mengingat notasi kita, yang kita tetapkan \(\rho\) = 1 untuk kesederhanaan, dan bloknya adalah dipilih dengan panjang paling banyak 1MB, kita mempunyai Λ = \(\lambda\)1,1,1MB.) 15Sebenarnya, “r −k” seharusnya adalah “maks{0, r −k}”.Parameter \(\lambda\) melampaui waktu untuk menyebarkan satu pesan kecil per pemverifikasi dalam Langkah s > 1. (Menggunakan, seperti pada Bitcoin, tanda tangan kurva elips dengan kunci 32B, panjang pesan verifikasi adalah 200B. Jadi, dalam notasi kita, \(\lambda\) = \(\lambda\)n,\(\rho\),200B.) Kami berasumsi bahwa Λ = O(\(\lambda\)). Gagasan • Pemilihan verifikasi. Untuk setiap putaran r dan langkah s > 1, SV r,s \(\triangleq\){i \(\in\)PKr−k : .H(SIGi(r, s, Qr−1)) \(\leq\)p}. Masing-masing pengguna i \(\in\)PKr−k secara pribadi menghitung tanda tangannya menggunakan kunci jangka panjangnya dan memutuskan apakah i \(\in\)SV r,s atau tidak. Jika i \(\in\)SV r,s, maka SIGi(r, s, Qr−1) adalah kredensial i (r, s), dilambangkan secara kompak oleh \(\sigma\)r,s saya. Untuk langkah pertama putaran r, SV r,1 dan \(\sigma\)r,1 saya didefinisikan dengan cara yang sama, dengan p digantikan oleh p1. Itu penguji di SV r,1 adalah pemimpin potensial. • Pemilihan pemimpin. Pengguna i \(\in\)SV r,1 adalah pemimpin putaran r, dilambangkan dengan \(\ell\)r, jika H(\(\sigma\)r,1 saya ) \(\leq\)H(\(\sigma\)r,1 j ) untuk semua potensi pemimpin j \(\in\)SV r,1. Kapan pun hashes dari kredensial dua pemain dibandingkan, kemungkinannya kecil jika terjadi ikatan, protokol selalu memutus ikatan secara leksikografis menurut (publik jangka panjang kunci dari) calon pemimpin. Berdasarkan definisi, nilai hash kredensial pemain \(\ell\)r juga merupakan yang terkecil di antara semua pengguna di PKr−k. Perhatikan bahwa seorang calon pemimpin tidak dapat secara pribadi memutuskan apakah dia seorang pemimpin atau bukan, tanpa melihat kredibilitas calon pemimpin lainnya. Karena nilai hash seragam secara acak, ketika SV r,1 tidak kosong, \(\ell\)r selalu ada dan jujur dengan probabilitas minimal h. Parameter n1 cukup besar untuk memastikan bahwa masing-masing SV r,1 tidak kosong dengan kemungkinan yang sangat besar. • Struktur blok. Balok tak kosong berbentuk Br = (r, PAY r, SIG\(\ell\)r(Qr−1), H(Br−1)), dan balok kosong berbentuk Br ǫ = (r, \(\emptyset\), Qr−1, H(Br−1)). Perhatikan bahwa blok yang tidak kosong mungkin masih berisi set pembayaran kosong PAY r, jika tidak ada pembayaran yang dilakukan babak ini atau jika pemimpinnya jahat. Namun, blok yang tidak kosong menyiratkan bahwa identitas \(\ell\)r, kredensialnya \(\sigma\)r,1 \(\ell\)r dan SIG\(\ell\)r(Qr−1) semuanya telah terungkap tepat waktu. Protokol menjamin bahwa, jika pemimpinnya jujur, maka blok tersebut tidak akan kosong dengan kemungkinan yang sangat besar. • Benih Qr. Jika Br tidak kosong, maka Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), jika tidak Qr \(\triangleq\)H(Qr−1, r). Parameter • Hubungan antara berbagai parameter. — Pengukur dan calon pemimpin putaran r dipilih dari pengguna di PKr−k, dimana k dipilih sehingga Musuh tidak dapat memprediksi Qr−1 kembali pada putaran r −k −1 dengan probabilitas lebih baik daripada F: jika tidak, ia akan dapat memperkenalkan pengguna jahat untuk putaran r −k, yang semuanya akan menjadi pemimpin/pengukur potensial pada putaran r, yang berhasil

memiliki pemimpin yang jahat atau mayoritas yang jahat di SV r,s untuk beberapa langkah yang diinginkan oleh dia. — Untuk Langkah 1 setiap putaran r, n1 dipilih sehingga dengan probabilitas yang sangat besar, SV r,1 ̸= \(\emptyset\). • Contoh pilihan parameter penting. — Output H panjangnya 256-bit. — jam = 80%, n1 = 35. — Λ = 1 menit dan \(\lambda\) = 10 detik. • Inisialisasi protokol. Protokol dimulai pada waktu 0 dengan r = 0. Karena tidak ada “B−1” atau “CERT −1”, secara sintaksis B−1 adalah parameter publik dengan komponen ketiganya menentukan Q−1, dan semua pengguna mengetahui B−1 pada waktu 0.

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ặc T 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+1 T 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 Di bagian ini, kami membuat versi Algorand ′ yang bekerja dengan asumsi berikut. Asumsi Mayoritas Pengguna Jujur: Lebih dari 2/3 pengguna di setiap PKr adalah jujur. Di Bagian 8, kami menunjukkan cara mengganti asumsi di atas dengan Mayoritas Jujur yang diinginkan Asumsi uang. 5.1 Notasi dan Parameter Tambahan Notasi • m \(\in\)Z+: jumlah langkah maksimum dalam protokol BA biner, kelipatan 3. • Lr \(\leq\)m/3: variabel acak yang mewakili jumlah percobaan Bernoulli yang diperlukan untuk mendapatkan hasil 1, ketika setiap percobaan adalah 1 dengan probabilitas ph 2 dan paling banyak terdapat m/3 percobaan. Jika semua percobaan gagal maka Lr \(\triangleq\)m/3. Lr akan digunakan untuk membatasi waktu yang dibutuhkan untuk menghasilkan blok Br. • tH = 2n 3 + 1: jumlah tanda tangan yang diperlukan dalam kondisi akhir protokol. • CERT r : sertifikat untuk Br. Ini adalah satu set tanda tangan H(Br) dari verifier yang tepat di putaran r. Parameter • Hubungan antara berbagai parameter. — Untuk setiap langkah s > 1 pada putaran r, n dipilih sehingga, dengan probabilitas yang sangat besar, |HSV r,s| > 2|MSV r,s| dan |HSV r,s| + 4|MSV r,s| < 2n. Semakin mendekati 1 nilai h, maka n harus semakin kecil. Secara khusus, kami menggunakan (varian dari) Batas Cherno untuk memastikan kondisi yang diinginkan terpenuhi dengan kemungkinan yang sangat besar. — m dipilih sedemikian rupa sehingga Lr < m/3 dengan probabilitas yang sangat besar. • Contoh pilihan parameter penting. — F = 10−12. — n \(\approx\)1500, k = 40 dan m = 180.5.2 Menerapkan Kunci Ephemeral di Algorand ′ 1 Seperti telah disebutkan, kami berharap bahwa verifier i \(\in\)SV r,s menandatangani pesannya secara digital mr,s saya langkah s pada putaran r, relatif terhadap pkr kunci publik sementara, s i , menggunakan kunci rahasia sementara skr,s saya itu dia segera menghancurkan setelah digunakan. Oleh karena itu, kami memerlukan metode yang efisien untuk memastikan bahwa setiap pengguna dapat melakukannya verifikasi bahwa pkr,s saya memang kunci yang digunakan untuk memverifikasi tanda tangan saya pak saya. Kami melakukannya dengan (untuk yang terbaik sepengetahuan kami) penggunaan baru skema tanda tangan berbasis identitas. Pada tingkat tinggi, dalam skema seperti itu, otoritas pusat A menghasilkan kunci master publik, PMK, dan kunci master rahasia yang sesuai, SMK. Mengingat identitas, U, dari pemain U, A menghitung, melalui SMK, skU kunci tanda tangan rahasia relatif terhadap kunci publik U, dan secara pribadi memberikan skU ke U. (Memang benar, dalam skema tanda tangan digital berbasis identitas, kunci publik dari pengguna U adalah U itu sendiri!) Dengan cara ini, jika A menghancurkan SMK setelah menghitung kunci rahasia pengguna yang ingin dia aktifkan menghasilkan tanda tangan digital, dan tidak menyimpan kunci rahasia apa pun yang dihitung, maka hanya U yang melakukannya dapat menandatangani pesan secara digital relatif terhadap kunci publik U. Jadi, siapa pun yang mengetahui “nama U”, secara otomatis mengetahui kunci publik U, dan dengan demikian dapat memverifikasi tanda tangan U (mungkin juga menggunakan kunci master publik PMK). Dalam aplikasi kita, otoritas A adalah pengguna i, dan himpunan semua kemungkinan pengguna yang bertepatan dengan U pasangan langkah bulat (r, s) di —katakanlah— S = {i}\(\times\){r′, . . . , r′ +106}\(\times\){1, . . . , m+3}, dengan r′ diberikan putaran, dan m + 3 batas atas dengan jumlah langkah yang mungkin terjadi dalam satu putaran. Ini cara, pkr, s saya \(\triangleq\)(i, r, s), sehingga semua orang melihat tanda tangan i SIGr,s pkr, s saya (Tuan, s i ) bisa, dengan luar biasa probabilitasnya, segera verifikasi untuk jutaan putaran pertama r setelah r′. Dengan kata lain saya generate dulu PMK dan SMK. Kemudian, ia mempublikasikan bahwa PMK adalah majikannya kunci publik untuk setiap putaran r \(\in\)[r′, r′ + 106], dan menggunakan SMK untuk memproduksi dan menyimpan rahasia secara pribadi kunci skr,s saya untuk setiap rangkap tiga (i, r, s) \(\in\)S. Selesai, dia menghancurkan SMK. Jika dia memutuskan bahwa dia tidak melakukannya bagian dari SV r,s, maka saya boleh meninggalkan skr,s saya sendirian (karena protokol tidak mengharuskan dia melakukan autentikasi pesan apa pun di Langkah s pada putaran r). Kalau tidak, saya pertama kali menggunakan skr,s saya untuk menandatangani pesannya secara digital, Tuan, s saya, dan lalu hancurkan skr,s saya. Perhatikan bahwa saya dapat mempublikasikan kunci master publik pertamanya ketika dia pertama kali memasuki sistem. Artinya, pembayaran yang sama \(\wp\)yang membawa i ke dalam sistem (pada putaran r′ atau pada putaran yang mendekati r′), juga dapat tentukan, atas permintaan i, bahwa kunci master publik i untuk setiap putaran r \(\in\)[r′, r′ + 106] adalah PMK —misalnya, dengan termasuk sepasang bentuk (PMK, [r′, r′ + 106]). Perhatikan juga bahwa, karena m + 3 adalah jumlah langkah maksimum dalam satu putaran, dengan asumsi bahwa satu putaran membutuhkan waktu satu menit, simpanan kunci sementara yang dihasilkan akan bertahan selama hampir dua tahun. Pada saat yang sama waktu, kunci rahasia sementara ini tidak akan memakan waktu terlalu lama untuk diproduksi. Menggunakan berbasis kurva elips sistem dengan kunci 32B, setiap kunci rahasia dihitung dalam beberapa mikrodetik. Jadi, jika m + 3 = 180, maka seluruh 180 juta kunci rahasia dapat dihitung dalam waktu kurang dari satu jam. Ketika putaran saat ini semakin mendekati r′ + 106, untuk menangani jutaan putaran berikutnya, i menghasilkan pasangan baru (PMK′, SMK′), dan menginformasikan simpanan kunci sementara berikutnya dengan —misalnya— meminta SIGi(PMK′, [r′ + 106 + 1, r′ + 2 \(\cdot\) 106 + 1]) memasukkan blok baru, baik sebagai memisahkan “transaksi” atau sebagai beberapa informasi tambahan yang merupakan bagian dari pembayaran. Dengan melakukan hal itu, saya memberi tahu semua orang bahwa dia harus menggunakan PMK′ untuk memverifikasi tanda tangan sementara saya selanjutnya juta putaran. Dan sebagainya. (Perhatikan bahwa, dengan mengikuti pendekatan dasar ini, cara lain untuk mengimplementasikan kunci sementara tanpa menggunakan tanda tangan berbasis identitas tentu saja dimungkinkan. Misalnya, melalui Merkle trees.16) 16Dalam metode ini, saya membuat pasangan kunci rahasia publik (pkr,s saya, skr, s saya ) untuk setiap pasangan langkah bulat (r, s) di —katakanlah—Cara lain untuk mengimplementasikan kunci sementara tentu saja dimungkinkan —misalnya melalui Merkle trees. 5.3 Mencocokkan Langkah Algorand′ 1 dengan BA⋆ Seperti yang kami katakan, putaran di Algorand ′ 1 memiliki paling banyak m + 3 langkah. Langkah 1. Pada langkah ini, setiap calon pemimpin i menghitung dan menyebarkan calon bloknya Br saya , bersama dengan kredensialnya sendiri, \(\sigma\)r,1 saya. Ingatlah bahwa kredensial ini secara eksplisit mengidentifikasi i. Hal ini terjadi karena \(\sigma\)r,1 saya \(\triangleq\)SIGi(r, 1, Qr−1). Pemverifikasi potensial saya juga menyebarkan, sebagai bagian dari pesannya, tanda tangan digital H(Br saya ). Tidak berurusan dengan pembayaran atau kredensial, tanda tangan i ini bersifat relatif terhadap publiknya yang fana kunci pkr,1 i : yaitu dia menyebarkan sigpkr,1 saya (H(Br saya )). Mengingat konvensi kita, daripada menyebarkan Br saya dan sigpkr,1 saya (H(Br saya )), dia bisa saja SIGpkr yang disebarkan,1 saya (H(Br saya )). Namun, dalam analisis kami, kami perlu memiliki akses eksplisit sigpkr,1 saya (H(Br saya )). Langkah 2. Pada langkah ini, setiap verifier i menetapkan \(\ell\)r saya menjadi calon pemimpin yang memiliki kredensial hash adalah yang terkecil, dan Br saya menjadi blok yang diusulkan oleh \(\ell\)r saya. Karena, demi efisiensi, kami ingin menyetujui H(Br), daripada langsung pada Br, saya menyebarkan pesan yang ingin dia sampaikan disebarkan pada langkah pertama BA⋆dengan nilai awal v′ saya = H(Br saya ). Artinya, dia menyebarkan v′ saya, tentu saja setelah menandatanganinya sebentar. (Yaitu, setelah menandatanganinya relatif terhadap fana yang tepat kunci publik yang dalam hal ini adalah pkr,2 i .) Tentu saja, saya juga mengirimkan kredensialnya sendiri. Karena langkah pertama BA⋆ terdiri dari langkah pertama protokol konsensus bertingkat GC, Langkah 2 dari Algorand ′ sesuai dengan langkah pertama GC. Langkah 3. Pada langkah ini, setiap verifier i \(\in\)SV r,2 menjalankan langkah kedua BA⋆. Artinya, dia mengirimkan pesan yang sama yang akan dia kirimkan pada langkah kedua GC. Sekali lagi, pesan saya bersifat sementara ditandatangani dan disertai dengan kredensial saya. (Mulai sekarang, kami tidak akan lagi mengatakan bahwa verifier secara singkat menandatangani pesannya dan juga menyebarkan kredensialnya.) Langkah 4. Pada langkah ini, setiap verifier i \(\in\)SV r,4 menghitung output dari GC, (vi, gi), dan secara ephemeral menandatangani dan mengirimkan pesan yang sama seperti yang akan dikirimkannya pada langkah ketiga BA⋆, yaitu di langkah pertama BBA⋆, dengan bit awal 0 jika gi = 2, dan 1 sebaliknya. Langkah s = 5, . . . , m + 2. Langkah tersebut, jika pernah tercapai, berhubungan dengan langkah s −1 dari BA⋆, dan dengan demikian menjadi langkah s −3 dari BBA⋆. Karena model propagasi kita cukup asynchronous, kita harus memperhitungkan kemungkinan tersebut bahwa, di tengah langkah s tersebut, pemverifikasi i \(\in\)SV r,s dicapai dengan informasi yang membuktikannya blok Br itu telah dipilih. Dalam hal ini, saya menghentikan eksekusinya sendiri pada putaran r Algorand ′, dan mulai menjalankan instruksi putaran-(r + 1). {R', . . . , r′ + 106} \(\times\) {1, . . . , m+3}. Kemudian dia memesan kunci publik ini dengan cara kanonik, menyimpan publik ke-j memasukkan daun ke-j dari Merkle tree, dan menghitung nilai akar Ri, yang dipublikasikannya. Ketika dia ingin menandatangani pesan relatif terhadap kunci pkr,s saya , saya tidak hanya memberikan tanda tangan sebenarnya, tetapi juga jalur otentikasi untuk pkr,s saya relatif terhadap Ri. Perhatikan bahwa jalur autentikasi ini juga membuktikan bahwa pkr,s saya disimpan di daun ke-j. Sisanya rinciannya dapat dengan mudah diisi.Oleh karena itu, instruksi dari verifier i \(\in\)SV r,s, selain instruksi yang sesuai ke Langkah s −3 dari BBA⋆, termasuk memeriksa apakah eksekusi BBA⋆telah dihentikan sebelumnya Langkah s′. Karena BBA⋆ hanya dapat berhenti pada Langkah Koin-Tetap-ke-0 atau langkah Koin-Tetap-ke-1, maka instruksi membedakan apakah A (Kondisi Akhir 0): s′ −2 ≡0 mod 3, atau B (Kondisi Akhir 1): s′ −2 ≡1 mod 3. Faktanya, dalam kasus A, blok Br tidak kosong, dan dengan demikian diperlukan instruksi tambahan untuk melakukannya memastikan bahwa saya merekonstruksi Br dengan benar, bersama dengan sertifikat CERT r yang sesuai. Dalam kasus B, blok Br kosong, sehingga i diinstruksikan untuk menyetel Br = Br \(\varepsilon\) = (r, \(\emptyset\), H(Qr−1, r), H(Br−1)), dan untuk menghitung CERT r. Jika, selama pelaksanaan langkah s, saya tidak melihat bukti apa pun bahwa blok Br sudah ada telah dihasilkan, lalu dia mengirimkan pesan yang sama seperti yang akan dia kirimkan pada langkah s −3 dari BBA⋆. Langkah m + 3. Jika, pada langkah m + 3, i \(\in\)SV r,m+3 melihat bahwa blok Br telah dihasilkan pada langkah sebelumnya s′, maka dia melanjutkan seperti dijelaskan di atas. Jika tidak, daripada mengirim pesan yang sama yang akan dia kirimkan pada langkah m BBA⋆, i adalah diinstruksikan, berdasarkan informasi yang dimilikinya, untuk menghitung Br dan korespondennya sertifikat CERT r. Ingatlah, faktanya, kita melakukan batas atas sebesar m + 3 jumlah total langkah dalam satu putaran. 5.4 Protokol Aktual Ingatlah bahwa, pada setiap langkah s pada putaran r, pemverifikasi i \(\in\)SV r,s menggunakan pasangan kunci rahasia publik jangka panjangnya untuk menghasilkan kredensialnya, \(\sigma\)r,s saya \(\triangleq\)SIGi(r, s, Qr−1), serta SIGi Qr−1 dalam kasus s = 1. Pemverifikasi i menggunakan kunci rahasia singkatnya skr,s saya untuk menandatangani (r, s) -pesannya tuan, s saya. Untuk mempermudah, kapan r dan s adalah jelas, kami menulis esigi(x) daripada sigpkr,s i (x) untuk menunjukkan tanda tangan sementara yang tepat dari suatu nilai x pada langkah s putaran r, dan tulis ESIGi(x) sebagai ganti SIGpkr,s i (x) untuk menyatakan (i, x, esigi(x)). Langkah 1: Blokir Proposal Instruksi untuk setiap pengguna i \(\in\)PKr−k: Pengguna i memulai Langkah 1 pada putaran r segera setelah dia tahu Br−1. • Pengguna i menghitung Qr−1 dari komponen ketiga Br−1 dan memeriksa apakah i \(\in\)SV r,1 atau tidak. • Jika i /\(\in\)SV r,1, maka i segera menghentikan pelaksanaan Langkah 1. • Jika i \(\in\)SV r,1, yaitu jika i adalah calon pemimpin, maka ia mengumpulkan pembayaran putaran-r yang telah telah disebarkan kepadanya sejauh ini dan menghitung pembayaran maksimal PAY r saya dari mereka. Selanjutnya, dia menghitung “blok kandidatnya” Br i = (r, BAYAR r saya , SIGi(Qr−1), H(Br−1)). Akhirnya, dia menghitung pesannya pak,1 saya = (Sdr saya , esigi(H(Br saya )), \(\sigma\)r,1 i ), menghancurkan skr kunci rahasia fana miliknya,1 saya, dan kemudian menyebarkan Tuan,1 saya.Komentar. Dalam praktiknya, untuk mempersingkat pelaksanaan global Langkah 1, penting bahwa (r, 1)- pesan disebarkan secara selektif. Artinya, untuk setiap pengguna i dalam sistem, untuk yang pertama (r, 1)- pesan yang pernah dia terima dan berhasil diverifikasi,17 pemain saya menyebarkannya seperti biasa. Untuk semua other (r, 1)-pesan yang diterima dan berhasil diverifikasi oleh pemain i, ia menyebarkannya hanya jika hash nilai kredensial yang dikandungnya adalah yang terkecil di antara hash nilai kredensial yang dikandungnya di semua (r, 1)-pesan yang dia terima dan berhasil diverifikasi sejauh ini. Selanjutnya seperti yang disarankan oleh Georgios Vlachos, akan bermanfaat jika setiap calon pemimpin i juga menyebarkan kredensialnya \(\sigma\)r,1 saya secara terpisah: pesan-pesan kecil tersebut berjalan lebih cepat daripada blok, memastikan penyebaran mr,1 secara tepat waktu j's di mana kredensial yang terkandung memiliki nilai hash yang kecil, sedangkan kredensial yang terkandung memiliki nilai hash yang besar menghilang dengan cepat. Langkah 2: Langkah Pertama dari Protokol Konsensus Bertingkat GC Instruksi untuk setiap pengguna i \(\in\)PKr−k: Pengguna i memulai Langkah 2 pada putaran r segera setelah dia tahu Br−1. • Pengguna i menghitung Qr−1 dari komponen ketiga Br−1 dan memeriksa apakah i \(\in\)SV r,2 atau tidak. • Jika i /\(\in\)SV r,2 maka i menghentikan eksekusi Langkah 2 segera. • Jika i \(\in\)SV r,2, maka setelah menunggu beberapa waktu t2 \(\triangleq\) \(\lambda\) + Λ, i bertindak sebagai berikut. 1. Dia menemukan pengguna \(\ell\)sehingga H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j ) untuk semua kredensial \(\sigma\)r,1 j itu adalah bagian dari pesan (r, 1) yang berhasil diverifikasi yang dia terima sejauh ini.a 2. Jika dia telah menerima dari \(\ell\)pesan yang valid, Tuan,1 \(\ell\) = (Sdr \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),b lalu saya set v′ i \(\triangleq\)H(Br \(\ell\)); jika tidak, saya menetapkan v′ saya \(\triangleq\) \(\bot\). 3. saya menghitung pesan mr,2 saya \(\triangleq\)(ESIGi(v′ saya), \(\sigma\)r,2 i ),c menghancurkan kunci rahasia fananya skr,2 i , dan kemudian menyebarkan mr,2 saya. aPada dasarnya, pengguna i secara pribadi memutuskan bahwa pemimpin putaran r adalah pengguna \(\ell\). bSekali lagi, tanda tangan pemain \(\ell\) dan hashes semuanya berhasil diverifikasi, dan MEMBAYAR r \(\ell\)di Br \(\ell\)adalah pembayaran yang valid untuk putaran r —walaupun saya tidak memeriksa apakah MEMBAYAR r \(\ell\)maksimal untuk \(\ell\)atau tidak. cPesan Pak,2 saya menandakan pemain yang saya anggap v′ saya menjadi hash blok berikutnya, atau mempertimbangkan blok berikutnya blok menjadi kosong. 17Artinya, semua tanda tangan sudah benar dan blok serta hash-nya valid —walaupun saya tidak memeriksanya apakah payset yang disertakan sudah maksimal bagi pengusulnya atau tidak.

Langkah 3: Langkah Kedua GC Instruksi untuk setiap pengguna i \(\in\)PKr−k: Pengguna i memulai Langkah ke-3 pada putaran r segera setelah dia tahu Br−1. • Pengguna i menghitung Qr−1 dari komponen ketiga Br−1 dan memeriksa apakah i \(\in\)SV r,3 atau tidak. • Jika i /\(\in\)SV r,3, maka i menghentikan eksekusi Langkah 3 segera. • Jika i \(\in\)SV r,3, maka setelah menunggu beberapa saat t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ, i bertindak sebagai berikut. 1. Jika terdapat nilai v′ ̸= \(\bot\)sehingga, di antara semua pesan valid mr,2 j dia telah menerima, lebih dari 2/3nya berbentuk (ESIGj(v′), \(\sigma\)r,2 j ), tanpa kontradiksi,a lalu dia menghitung pesan mr,3 saya \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 saya ). Jika tidak, dia menghitung mr,3 saya \(\triangleq\) (ESIGi(\(\bot\)), \(\sigma\)r,3 saya ). 2. aku menghancurkan skr kunci rahasianya yang fana,3 i , dan kemudian menyebarkan mr,3 saya. aArtinya, dia belum menerima dua pesan valid yang masing-masing berisi ESIGj(v′) dan ESIGj(v′′) yang berbeda, dari pemain j. Di sini dan mulai sekarang, kecuali dalam Kondisi Akhir yang ditentukan nanti, kapan pun pemain jujur menginginkan pesan dalam bentuk tertentu, pesan yang bertentangan satu sama lain tidak pernah dihitung atau dianggap valid.Langkah 4: Keluaran GC dan Langkah Pertama BBA⋆ Instruksi untuk setiap pengguna i \(\in\)PKr−k: Pengguna i memulai Langkah 4 pada putaran r segera setelah dia tahu Br−1. • Pengguna i menghitung Qr−1 dari komponen ketiga Br−1 dan memeriksa apakah i \(\in\)SV r,4 atau tidak. • Jika i /\(\in\)SV r,4, maka i menghentikan eksekusi Langkah 4 dengan segera. • Jika i \(\in\)SV r,4, maka setelah menunggu beberapa saat t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ, i bertindak sebagai berikut. 1. Dia menghitung vi dan gi, keluaran dari GC, sebagai berikut. (a) Jika terdapat nilai v′ ̸= \(\bot\)sehingga, di antara semua pesan valid mr,3 j dia punya diterima, lebih dari 2/3nya berbentuk (ESIGj(v′), \(\sigma\)r,3 j ), lalu dia mengatur vi \(\triangleq\)v′ dan gi \(\triangleq\)2. (b) Sebaliknya, jika terdapat nilai v′ ̸= \(\bot\)sehingga, di antara semua pesan yang valid Tuan,3 j diterimanya, lebih dari 1/3nya berbentuk (ESIGj(v′), \(\sigma\)r,3 j ), lalu dia menetapkan vi \(\triangleq\)v′ dan gi \(\triangleq\)1.a (c) Jika tidak, ia menetapkan vi \(\triangleq\)H(Br ǫ ) dan gi \(\triangleq\)0. 2. Dia menghitung bi, masukan dari BBA⋆, sebagai berikut: bi \(\triangleq\)0 jika gi = 2, dan bi \(\triangleq\)1 jika tidak. 3. Dia menghitung pesan mr,4 saya \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), menghancurkan kefanaannya kunci rahasia skr,4 i , dan kemudian menyebarkan mr,4 saya. aDapat dibuktikan bahwa v′ pada kasus (b), jika ada, pasti unik.

Langkah s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: Langkah BBA⋆ Koin-Tetap-Ke-0 Instruksi untuk setiap pengguna i \(\in\)PKr−k: Pengguna i memulai Langkahnya sendiri pada putaran r segera setelah dia tahu Br−1. • Pengguna i menghitung Qr−1 dari komponen ketiga Br−1 dan memeriksa apakah i \(\in\)SV r,s. • Jika i /\(\in\)SV r,s, maka i menghentikan eksekusi Langkah s-nya segera. • Jika i \(\in\)SV r,s maka ia bertindak sebagai berikut. – Dia menunggu hingga selang waktu ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3)\(\lambda\) + Λ berlalu. – Kondisi Akhir 0: Jika, selama penantian tersebut dan pada suatu waktu tertentu, terdapat a string v ̸= \(\bot\)dan langkah s′ sedemikian rupa sehingga (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3 —yaitu, Langkah s′ adalah langkah Koin-Tetap-Ke-0, (b) saya telah menerima setidaknya tH = 2n 3 + 1 pesan valid tuan,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),a dan (c) Saya telah menerima pesan yang valid, Tuan,1 j = (Sdr j , esigj(H(Br j )), \(\sigma\)r,1 j ) dengan v = H(Br j ), kemudian, saya langsung menghentikan eksekusi Langkah s (dan faktanya putaran r) tanpanya menyebarkan apa pun; himpunan Br = Br j ; dan menetapkan CERT r miliknya sendiri menjadi kumpulan pesan Tuan, s′−1 j dari sub-langkah (b).b – Kondisi Akhir 1: Jika, selama penantian tersebut dan pada suatu waktu tertentu, terdapat a langkah s′ seperti itu (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3 —yaitu, Langkah s′ adalah langkah Koin-Tetap-Ke-1, dan (b') saya telah menerima setidaknya pesan yang valid tuan,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),c kemudian, saya langsung menghentikan eksekusi Langkah s (dan faktanya putaran r) tanpanya menyebarkan apa pun; himpunan Br = Br ; dan menetapkan CERT r miliknya sendiri menjadi kumpulan pesan Tuan, s′−1 j dari sub-langkah (b'). – Jika tidak, di akhir penantian, pengguna i akan melakukan hal berikut. Ia menetapkan vi sebagai suara terbanyak dari vj pada komponen kedua dari semua yang sah Tuan, s−1 j itu yang dia terima. Dia menghitung bi sebagai berikut. Jika lebih dari 2/3 dari seluruh mr,s−1 yang valid j yang dia terima adalah dalam bentuk (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), lalu dia menetapkan bi \(\triangleq\)0. Lain, jika lebih dari 2/3 dari seluruh mr,s−1 yang valid j yang dia terima adalah dalam bentuk (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), lalu dia menetapkan bi \(\triangleq\)1. Jika tidak, dia menetapkan bi \(\triangleq\)0. Dia menghitung pesan mr, s saya \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), menghancurkan kefanaannya kunci rahasia skr,s i , dan kemudian menyebarkan mr,s saya. aPesan seperti itu dari pemain j dihitung meskipun pemain i juga menerima pesan dari j yang menandatangani untuk 1. Hal serupa untuk Kondisi Akhir 1. Seperti yang ditunjukkan dalam analisis, hal ini dilakukan untuk memastikan bahwa semua pengguna yang jujur mengetahuinya Br dalam waktu \(\lambda\) satu sama lain. pengguna saya sekarang mengetahui Br dan penyelesaian putarannya sendiri. Dia masih membantu menyebarkan pesan sebagai pengguna umum, tapi tidak memulai propagasi apa pun sebagai pemverifikasi (r, s). Secara khusus, dia telah membantu menyebarkan semua pesan di dalamnya CERT r, yang cukup untuk protokol kami. Perhatikan bahwa ia juga harus menetapkan bi \(\triangleq\)0 untuk protokol biner BA, tetapi bi tidak diperlukan dalam kasus ini. Hal serupa untuk semua instruksi di masa depan. cDalam hal ini, tidak menjadi masalah apa pun vjnya.Langkah s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: Langkah BBA⋆ Koin-Tetap-Ke-1 Instruksi untuk setiap pengguna i \(\in\)PKr−k: Pengguna i memulai Langkahnya sendiri pada putaran r segera setelah dia tahu Br−1. • Pengguna i menghitung Qr−1 dari komponen ketiga Br−1 dan memeriksa apakah i \(\in\)SV r,s atau tidak. • Jika i /\(\in\)SV r,s, maka i menghentikan eksekusi Langkah s-nya segera. • Jika i \(\in\)SV r,s maka ia melakukan hal berikut. – Dia menunggu hingga selang waktu ts \(\triangleq\)(2s −3)\(\lambda\) + Λ telah berlalu. – Kondisi Akhir 0: Instruksi yang sama seperti langkah Coin-Fixed-To-0. – Kondisi Akhir 1: Instruksi yang sama seperti langkah Coin-Fixed-To-0. – Jika tidak, di akhir penantian, pengguna i akan melakukan hal berikut. Ia menetapkan vi sebagai suara terbanyak dari vj pada komponen kedua dari semua yang sah Tuan, s−1 j itu yang dia terima. Dia menghitung bi sebagai berikut. Jika lebih dari 2/3 dari seluruh mr,s−1 yang valid j yang dia terima adalah dalam bentuk (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), lalu dia menetapkan bi \(\triangleq\)0. Lain, jika lebih dari 2/3 dari seluruh mr,s−1 yang valid j yang dia terima adalah dalam bentuk (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), lalu dia menetapkan bi \(\triangleq\)1. Jika tidak, dia menetapkan bi \(\triangleq\)1. Dia menghitung pesan mr, s saya \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), menghancurkan kefanaannya kunci rahasia skr,s i , dan kemudian menyebarkan mr,s saya.

Langkah s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: Langkah BBA⋆ yang Benar-Benar Dibalik Koin Instruksi untuk setiap pengguna i \(\in\)PKr−k: Pengguna i memulai Langkahnya sendiri pada putaran r segera setelah dia tahu Br−1. • Pengguna i menghitung Qr−1 dari komponen ketiga Br−1 dan memeriksa apakah i \(\in\)SV r,s atau tidak. • Jika i /\(\in\)SV r,s, maka i menghentikan eksekusi Langkah s-nya segera. • Jika i \(\in\)SV r,s maka ia melakukan hal berikut. – Dia menunggu hingga selang waktu ts \(\triangleq\)(2s −3)\(\lambda\) + Λ telah berlalu. – Kondisi Akhir 0: Instruksi yang sama seperti langkah Coin-Fixed-To-0. – Kondisi Akhir 1: Instruksi yang sama seperti langkah Coin-Fixed-To-0. – Jika tidak, di akhir penantian, pengguna i akan melakukan hal berikut. Ia menetapkan vi sebagai suara terbanyak dari vj pada komponen kedua dari semua yang sah Tuan, s−1 j itu yang dia terima. Dia menghitung bi sebagai berikut. Jika lebih dari 2/3 dari seluruh mr,s−1 yang valid j yang dia terima adalah dalam bentuk (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), lalu dia menetapkan bi \(\triangleq\)0. Lain, jika lebih dari 2/3 dari seluruh mr,s−1 yang valid j yang dia terima adalah dalam bentuk (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), lalu dia menetapkan bi \(\triangleq\)1. Jika tidak, misalkan SV r,s−1 saya menjadi himpunan (r, s −1)-pengukur yang darinya ia menerima valid pesan tuan, s−1 j . Dia menetapkan bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 saya H(\(\sigma\)r,s−1 j )). Dia menghitung pesan mr, s saya \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), menghancurkan kefanaannya kunci rahasia skr,s i , dan kemudian menyebarkan mr,s saya.

Langkah m + 3: Langkah Terakhir BBA⋆a Petunjuk untuk setiap pengguna i \(\in\)PKr−k: Pengguna i memulai Langkahnya sendiri m + 3 putaran r segera setelah dia tahu Br−1. • Pengguna i menghitung Qr−1 dari komponen ketiga Br−1 dan memeriksa apakah i \(\in\)SV r,m+3 atau tidak. • Jika i /\(\in\)SV r,m+3, maka i menghentikan eksekusi Langkah m + 3 segera. • Jika i \(\in\)SV r,m+3 maka ia melakukan hal berikut. – Dia menunggu sampai selang waktu tm+3 \(\triangleq\)tm+2 + 2\(\lambda\) = (2m + 3)\(\lambda\) + Λ telah berlalu. – Kondisi Akhir 0: Instruksi yang sama seperti langkah Coin-Fixed-To-0. – Kondisi Akhir 1: Instruksi yang sama seperti langkah Coin-Fixed-To-0. – Jika tidak, di akhir penantian, pengguna i akan melakukan hal berikut. Dia menetapkan outi \(\triangleq\)1 dan Br \(\triangleq\)Br . Dia menghitung pesan mr,m+3 saya = (ESIGi(outi), ESIGi(H(Br)), \(\sigma\)r,m+3 saya ), menghancurkan miliknya kunci rahasia sementara skr,m+3 saya , dan kemudian menyebarkan mr,m+3 saya untuk mensertifikasi Br.b aDengan kemungkinan besar BBA⋆telah berakhir sebelum langkah ini, dan kami menetapkan langkah ini sebagai penyelesaian. sertifikat bA dari Langkah m + 3 tidak harus menyertakan ESIGi(outi). Kami menyertakannya untuk keseragaman saja: the sertifikat kini memiliki format yang seragam, apa pun langkah pembuatannya.Rekonstruksi Blok Round-r oleh Non-Verifiers Petunjuk untuk setiap pengguna i dalam sistem: Pengguna i memulai putarannya sendiri r segera setelah dia mengetahuinya Br−1, dan tunggu informasi blok sebagai berikut. – Jika, selama penantian tersebut dan pada suatu waktu tertentu, terdapat string v dan langkah s′ seperti itu itu (a) 5 \(\leq\)s′ \(\leq\)m + 3 dengan s′ −2 ≡0 mod 3, (b) saya telah menerima setidaknya pesan yang valid tuan,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ), dan (c) Saya telah menerima pesan yang valid, Tuan,1 j = (Sdr j , esigj(H(Br j )), \(\sigma\)r,1 j ) dengan v = H(Br j ), kemudian, saya segera menghentikan eksekusi putaran r-nya sendiri; himpunan Br = Br j; dan menetapkan CERT r-nya sendiri menjadi himpunan pesan mr,s′−1 j dari sub-langkah (b). – Jika, selama penantian tersebut dan pada suatu waktu tertentu, terdapat langkah s′ sedemikian rupa sehingga (a’) 6 \(\leq\)s′ \(\leq\)m + 3 dengan s′ −2 ≡1 mod 3, dan (b') saya telah menerima setidaknya pesan yang valid tuan,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ), kemudian, saya segera menghentikan eksekusi putaran r-nya sendiri; himpunan Br = Br ; dan menetapkan CERT r-nya sendiri menjadi himpunan pesan mr,s′−1 j dari sub-langkah (b'). – Jika, selama penantian tersebut dan pada suatu waktu, saya telah menerima setidaknya pesan yang valid Tuan, m+3 j = (ESIGj(1), ESIGj(H(Br ǫ )), \(\sigma\)r,m+3 j ), lalu saya menghentikan eksekusinya sendiri pada putaran r segera, himpunan Br = Br ǫ , dan menetapkan CERT r miliknya sendiri menjadi kumpulan pesan mr,m+3 j untuk 1 dan H(Br ). 5.5 Analisis Algorand′ 1 Kami memperkenalkan notasi berikut untuk setiap putaran r \(\geq\)0, yang digunakan dalam analisis. • Misalkan T r adalah waktu ketika pengguna pertama yang jujur ​​mengetahui Br−1. • Misalkan Ir+1 adalah interval [T r+1, T r+1 + \(\lambda\)]. Perhatikan bahwa T 0 = 0 dengan inisialisasi protokol. Untuk setiap s \(\geq\)1 dan i \(\in\)SV r,s, ingat kembali hal tersebut \(\alpha\)r,s saya dan \(\beta\)r,s saya masing-masing adalah waktu mulai dan waktu berakhirnya langkah pemain i. Selain itu, ingat bahwa ts = (2s −3)\(\lambda\) + Λ untuk setiap 2 \(\leq\)s \(\leq\)m + 3. Sebagai tambahan, misalkan I0 \(\triangleq\){0} dan t1 \(\triangleq\)0. Terakhir, ingatlah bahwa Lr \(\leq\)m/3 adalah variabel acak yang mewakili jumlah percobaan Bernoulli diperlukan untuk melihat angka 1, ketika setiap percobaan adalah 1 dengan probabilitas ph 2 dan paling banyak terdapat m/3 percobaan. Jika semua uji coba gagal maka Lr \(\triangleq\)m/3. Dalam analisis kami mengabaikan waktu komputasi, karena pada kenyataannya waktu tersebut dapat diabaikan dibandingkan dengan waktu yang dibutuhkan untuk menyebarkan pesan. Bagaimanapun, dengan menggunakan \(\lambda\) dan Λ yang sedikit lebih besar, waktu komputasi bisa dimasukkan ke dalam analisis secara langsung. Sebagian besar pernyataan di bawah ini menyatakan “dengan luar biasa probabilitasnya,” dan kami mungkin tidak berulang kali menekankan fakta ini dalam analisis.5.6 Teorema Utama Teorema 5.1. Properti berikut ini memiliki probabilitas yang sangat besar untuk setiap putaran r \(\geq\)0: 1. Semua pengguna yang jujur menyetujui blok yang sama Br. 2. Ketika pemimpin \(\ell\)r jujur, blok Br dihasilkan oleh \(\ell\)r, Br berisi payset maksimal diterima oleh \(\ell\)r pada waktu \(\alpha\)r,1 \(\ell\)r , T r+1 \(\leq\)T r + 8\(\lambda\) + Λ dan semua pengguna yang jujur mengetahui Br pada waktunya interval Ir+1. 3. Ketika pemimpin \(\ell\)r jahat, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ dan semua pengguna yang jujur mengetahui Br dalam selang waktu Ir+1. 4. ph = h2(1 + h −h2) untuk Lr, dan pemimpin \(\ell\)r jujur ​​dengan probabilitas paling sedikit ph. Sebelum membuktikan teorema utama kita, mari kita buat dua catatan. Perkataan. • Pembuatan Blok dan Latensi Sejati. Waktu untuk membangkitkan blok Br didefinisikan sebagai T r+1 −T r. Artinya, ini didefinisikan sebagai perbedaan antara pertama kali beberapa pengguna yang jujur mempelajari Br dan pertama kalinya beberapa pengguna yang jujur mempelajari Br−1. Ketika pemimpin putaran-r jujur, Properti 2 milik kita teorema utama menjamin bahwa waktu yang tepat untuk menghasilkan Br adalah waktu 8\(\lambda\) + Λ, tidak peduli berapa pun nilai yang tepat dari h > 2/3 mungkin. Ketika pemimpinnya jahat, Properti 3 menyiratkan bahwa waktu yang diharapkan untuk menghasilkan Br dibatasi oleh ( 12 ph + 10)\(\lambda\) + Λ, sekali lagi tidak peduli berapa tepatnya nilai h.18 Namun, waktu yang diharapkan untuk menghasilkan Br bergantung pada nilai h yang tepat. Memang benar, berdasarkan Sifat 4, ph = h2(1 + h −h2) dan pemimpinnya jujur dengan probabilitas paling sedikit ph, dengan demikian 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\) + Λ). Misalnya, jika h = 80%, maka E[T r+1 −T r] \(\leq\)12.7\(\lambda\) + Λ. • \(\lambda\) vs. Λ. Perhatikan bahwa ukuran pesan yang dikirim oleh verifikasi pada langkah Algorand ′ didominasi berdasarkan panjang kunci tanda tangan digital, yang dapat tetap, meskipun jumlahnya pengguna sangatlah besar. Perhatikan juga bahwa, pada setiap langkah s > 1, jumlah n verifikator yang diharapkan sama dapat digunakan apakah jumlah penggunanya 100K, 100M, atau 100M. Hal ini terjadi karena n semata-mata bergantung pada h dan F. Oleh karena itu, kecuali ada kebutuhan mendadak untuk menambah panjang kunci rahasia, nilai \(\lambda\) harus tetap sama tidak peduli seberapa besar jumlah pengguna di dalamnya masa depan yang dapat diperkirakan. Sebaliknya, untuk tingkat transaksi apa pun, jumlah transaksi bertambah seiring dengan jumlah pengguna. Oleh karena itu, untuk memproses semua transaksi baru secara tepat waktu, ukuran satu blok harus tepat juga bertambah seiring dengan jumlah pengguna, menyebabkan Λ pun bertambah. Jadi, dalam jangka panjang, kita harus melakukannya \(\lambda\) << Λ. Oleh karena itu, wajar jika memiliki koefisien yang lebih besar untuk \(\lambda\), dan sebenarnya koefisien dari 1 untuk Λ. Bukti Teorema 5.1. Kami membuktikan Properti 1–3 dengan induksi: dengan asumsi properti tersebut berlaku untuk putaran r −1 (tanpa kehilangan keumumannya, mereka secara otomatis berlaku untuk “putaran -1” ketika r = 0), kami membuktikannya putaran r. 18Memang benar, E[T r+1 −T r] \(\leq\)(6E[Lr] + 10)\(\lambda\) + Λ = (6 \(\cdot\) 2 ph + 10)\(\lambda\) + Λ = ( 12 ph + 10)\(\lambda\) + Λ.Karena Br−1 didefinisikan secara unik oleh hipotesis induktif, himpunan SV r,s didefinisikan secara unik untuk setiap langkah s pada putaran r. Dengan pilihan n1, SV r,1 ̸= \(\emptyset\)dengan probabilitas yang sangat besar. Kami sekarang nyatakan dua lemma berikut, dibuktikan dalam Bagian 5.7 dan 5.8. Sepanjang induksi dan masuk pembuktian kedua lemma, analisa putaran 0 hampir sama dengan langkah induktif, dan kami akan menyoroti perbedaannya ketika hal itu terjadi. Lemma 5.2. [Lemma Kelengkapan] Dengan Asumsi Properti 1–3 berlaku untuk ronde r−1, saat menjadi pemimpin \(\ell\)r jujur, dengan kemungkinan yang sangat besar, • Semua pengguna yang jujur menyetujui blok Br yang sama, yang dihasilkan oleh \(\ell\)r dan berisi maksimal payset diterima oleh \(\ell\)r pada waktu \(\alpha\)r,1 \(\ell\)r \(\in\)Ir; dan • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ dan semua pengguna yang jujur mengetahui Br pada interval waktu Ir+1. Lemma 5.3. [Lemma Kesehatan] Dengan Asumsi Properti 1–3 berlaku untuk ronde r −1, saat menjadi pemimpin \(\ell\)r berbahaya, dengan kemungkinan besar, semua pengguna jujur menyetujui blok yang sama Br, T r+1 \(\leq\) T r + (6Lr + 10)\(\lambda\) + Λ dan semua pengguna yang jujur mengetahui Br dalam interval waktu Ir+1. Sifat 1–3 berlaku dengan menerapkan Lemmas 5.2 dan 5.3 pada r = 0 dan pada langkah induktif. Akhirnya, kami menyatakan kembali Properti 4 sebagai lemma berikut, dibuktikan di Bagian 5.9. Lemma 5.4. Sifat yang diberikan 1–3 untuk setiap putaran sebelum r, ph = h2(1 + h −h2) untuk Lr, dan pemimpin \(\ell\)r jujur dengan probabilitas setidaknya ph. Dengan menggabungkan ketiga lemma di atas, Teorema 5.1 berlaku. ■ Lemma di bawah menyatakan beberapa sifat penting tentang putaran r mengingat induktifnya hipotesis, dan akan digunakan dalam pembuktian ketiga lemma di atas. Lemma 5.5. Asumsikan Properti 1–3 berlaku untuk putaran r −1. Untuk setiap langkah s \(\geq\)1 putaran r dan setiap pemverifikasi jujur saya \(\in\)HSV r,s, kami punya itu (a) \(\alpha\)r,s saya \(\in\)Ir; (b) jika pemain i telah menunggu selama beberapa waktu ts, maka \(\beta\)r,s saya \(\in\)[T r + ts, T r + \(\lambda\) + ts] untuk r > 0 dan \(\beta\)r, s saya = ts untuk r = 0; dan (c) jika pemain i telah menunggu selama beberapa waktu ts, maka dalam waktu \(\beta\)r,s i, dia telah menerima semua pesan dikirim oleh semua verifikator yang jujur j \(\in\)HSV r,s′ untuk semua langkah s′ < s. Selain itu, untuk setiap langkah s \(\geq\)3, kita memilikinya (d) tidak terdapat dua pemain berbeda i, i′ \(\in\)SV r,s dan dua nilai berbeda v, v′ yang sama panjangnya, sehingga kedua pemain telah menunggu sejumlah waktu ts, lebih dari 2/3 dari keseluruhan waktu pesan yang valid tuan,s−1 j pemain yang saya terima telah menandatangani v, dan lebih dari 2/3 dari semuanya valid pesan tuan, s−1 j pemain yang saya terima telah menandatangani v ′. Bukti. Properti (a) mengikuti langsung hipotesis induktif, karena pemain i mengetahui Br−1 di interval waktu Ir dan segera memulai langkahnya sendiri. Properti (b) mengikuti langsung dari (a): sejak pemain saya telah menunggu beberapa saat sebelum bertindak, \(\beta\)r,s saya = \(\alpha\)r,s saya + ts. Perhatikan bahwa \(\alpha\)r,s saya = 0 untuk r = 0. Sekarang kita buktikan Properti (c). Jika s = 2, maka berdasarkan Properti (b), untuk semua verifikasi j \(\in\)HSV r,1 kita punya \(\beta\)r, s saya = \(\alpha\)r,s saya + ts \(\geq\)T r + ts = T r + \(\lambda\) + Λ \(\geq\) \(\beta\)r,1 j + Λ.Karena setiap verifier j \(\in\)HSV r,1 mengirimkan pesannya pada waktu \(\beta\)r,1 j dan pesannya sampai kepada semua orang dengan jujur pengguna paling banyak dalam waktu Λ, dalam waktu \(\beta\)r,s saya pemain saya telah menerima pesan yang dikirim oleh semua verifikator masuk HSV r,1 sesuai keinginan. Jika s > 2, maka ts = ts−1 + 2\(\lambda\). Berdasarkan Properti (b), untuk semua langkah s′ < s dan semua verifikasi j \(\in\)HSV r,s′, \(\beta\)r, s saya = \(\alpha\)r,s saya + 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\). Karena setiap verifier j \(\in\)HSV r,s′ mengirimkan pesannya pada waktu \(\beta\)r,s′ j dan pesannya sampai kepada semua orang dengan jujur pengguna paling banyak dalam waktu \(\lambda\), dalam waktu \(\beta\)r,s saya pemain saya telah menerima semua pesan yang dikirim oleh semua verifikasi yang jujur dalam HSV r,s′ untuk semua s′ < s. Dengan demikian Properti (c) berlaku. Terakhir, kita buktikan Properti (d). Perhatikan bahwa verifikator j \(\in\)SV r,s−1 menandatangani paling banyak dua hal Langkah s −1 menggunakan kunci rahasia sementaranya: nilai vj yang panjangnya sama dengan keluaran dari fungsi hash, dan juga sedikit bj \(\in\){0, 1} jika s −1 \(\geq\)4. Itu sebabnya dalam pernyataan lemma kita mengharuskan v dan v′ memiliki panjang yang sama: banyak verifier yang mungkin telah menandatangani kedua nilai hash v dan sedikit b, sehingga keduanya melewati ambang batas 2/3. Asumsikan demi kontradiksi bahwa terdapat verifier i, i′ dan nilai v, v′ yang diinginkan. Perhatikan bahwa beberapa pengverifikasi jahat di MSV r,s−1 mungkin telah menandatangani v dan v′, tetapi masing-masing verifikasi jujur pemverifikasi di HSV r,s−1 telah menandatangani paling banyak salah satunya. Berdasarkan Sifat (c), baik i maupun i′ telah diterima semua pesan yang dikirim oleh semua verifikator yang jujur di HSV r,s−1. Misalkan HSV r,s−1(v) adalah himpunan verifikator jujur (r, s −1) yang telah menandatangani v, MSV r,s−1 saya set dari pemverifikasi jahat (r, s −1) yang darinya saya telah menerima pesan yang valid, dan MSV r,s−1 saya (v) itu bagian dari MSV r,s−1 saya dari siapa saya menerima pesan yang sah penandatanganan v. Dengan persyaratan untuk aku dan v, kita punya rasio \(\triangleq\)|HSV r,s−1(v)| + |MSV r,s−1 saya (v)| |HSV r,s−1| + |MSV r,s−1 saya |

2 3. (1) Kami tampilkan dulu |MSV r,s−1 saya (v)| \(\leq\)|HSV r,s−1(v)|. (2) Dengan asumsi sebaliknya, berdasarkan hubungan antar parameter, dengan kemungkinan yang sangat besar |HSV r,s−1| > 2|MSV r,s−1| \(\geq\)2|MSV r,s−1 saya |, dengan demikian rasio < |HSV r,s−1(v)| + |MSV r,s−1 saya (v)| 3|MSV r,s−1 saya | < 2|MSV r,s−1 saya (v)| 3|MSV r,s−1 saya | \(\leq\)2 3, bertentangan dengan Ketimpangan 1. Selanjutnya, dengan Pertidaksamaan 1 yang kita dapatkan 2|HSV r,s−1| + 2|MSV r,s−1 saya | < 3|HSV r,s−1(v)| + 3|MSV r,s−1 saya (v)| \(\leq\) 3|HSV r,s−1(v)| + 2|MSV r,s−1 saya | + |MSV r,s−1 saya (v)|. Dikombinasikan dengan Ketimpangan 2, 2|HSV r,s−1| < 3|HSV r,s−1(v)| + |MSV r,s−1 saya (v)| \(\leq\)4|HSV r,s−1(v)|, yang menyiratkan |HSV r,s−1(v)| > 1 2|HSV r,s−1|.Demikian pula, dengan persyaratan untuk i′ dan v′, kita punya |HSV r,s−1(v′)| > 1 2|HSV r,s−1|. Karena pemverifikasi yang jujur j \(\in\)HSV r,s−1 menghancurkan kunci rahasia sementaranya skr,s−1 j sebelum disebarkan pesannya, Musuh tidak dapat memalsukan tanda tangan j untuk nilai yang tidak ditandatangani oleh j setelahnya mengetahui bahwa j adalah pemverifikasi. Jadi, kedua pertidaksamaan di atas menyiratkan |HSV r,s−1| \(\geq\)|HSV r,s−1(v)| + |HSV r,s−1(v′)| > |HSV r,s−1|, sebuah kontradiksi. Oleh karena itu, i, i′, v, v′ yang diinginkan tidak ada, dan Properti (d) dimiliki. ■ 5.7 Kelengkapan Lemma Lemma 5.2. [Lemma Kelengkapan, dinyatakan kembali] Dengan asumsi Properti 1–3 berlaku untuk putaran r−1, kapan pemimpinnya jujur, dengan kemungkinan besar, • Semua pengguna yang jujur menyetujui blok Br yang sama, yang dihasilkan oleh \(\ell\)r dan berisi maksimal payset diterima oleh \(\ell\)r pada waktu \(\alpha\)r,1 \(\ell\)r \(\in\)Ir; dan • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ dan semua pengguna yang jujur mengetahui Br pada interval waktu Ir+1. Bukti. Berdasarkan hipotesis induktif dan Lemma 5.5, untuk setiap langkah s dan pemverifikasi i \(\in\)HSV r,s, \(\alpha\)r,s saya \(\in\)Ir. Di bawah ini kami menganalisis protokol langkah demi langkah. Langkah 1. Berdasarkan definisinya, setiap pemverifikasi yang jujur i \(\in\)HSV r,1 menyebarkan pesan yang diinginkan mr,1 saya di waktu \(\beta\)r,1 saya = \(\alpha\)r,1 saya , dimana tuan,1 saya = (Sdr saya , esigi(H(Br saya )), \(\sigma\)r,1 saya ), Sdr i = (r, BAYAR r saya , SIGi(Qr−1), H(Br−1)), dan MEMBAYAR r i adalah pembayaran maksimal di antara semua pembayaran yang telah saya lihat pada waktu \(\alpha\)r,1 saya. Langkah 2. Perbaiki secara sewenang-wenang pemverifikasi yang jujur i \(\in\)HSV r,2. Oleh Lemma 5.5, ketika pemain i selesai menunggu pada waktu \(\beta\)r,2 saya = \(\alpha\)r,2 saya + t2, dia telah menerima semua pesan yang dikirim oleh verifikator di HSV r,1, termasuk Tuan, 1 \(\ell\)r. Berdasarkan definisi \(\ell\)r, tidak ada pemain lain di PKr−k yang kredensialnya hash nilainya lebih kecil dari H(\(\sigma\)r,1 \(\ell\)r ). Tentu saja Musuh dapat merusak \(\ell\)r setelah melihat H(\(\sigma\)r,1 \(\ell\)r ) sangat kecil, tetapi pada saat itu pemain \(\ell\)r telah menghancurkan kunci sementaranya dan pesan mr,1 \(\ell\)r telah disebarkan. Jadi pemverifikasi saya menetapkan pemimpinnya sendiri menjadi pemain \(\ell\)r. Oleh karena itu, pada waktu \(\beta\)r,2 saya , pemverifikasi saya menyebarkan Pak,2 saya = (ESIGi(v′ saya), \(\sigma\)r,2 saya ), di mana v′ saya = H(Br \(\ell\)r). Ketika r = 0, satu-satunya perbedaan apakah itu \(\beta\)r,2 saya = t2 daripada berada dalam jangkauan. Hal serupa dapat dikatakan untuk langkah-langkah masa depan dan kita tidak akan menekankannya lagi. Langkah 3. Sewenang-wenang memperbaiki pemverifikasi yang jujur i \(\in\)HSV r,3. Oleh Lemma 5.5, ketika pemain i selesai menunggu pada waktu \(\beta\)r,3 saya = \(\alpha\)r,3 saya + t3, dia telah menerima semua pesan yang dikirim oleh verifikator di HSV r,2. Berdasarkan hubungan antar parameter, dengan probabilitas yang sangat besar |HSV r,2| > 2|MSV r,2|. Selain itu, tidak ada verifikasi yang jujur yang akan menandatangani pesan-pesan yang bertentangan, dan Musuh tidak dapat memalsukan tanda tangan pemeriksa yang jujur setelah pemeriksa tersebut memusnahkan tanda tangannya kunci rahasia sementara. Jadi lebih dari 2/3 dari semua pesan valid (r, 2) yang saya terima berasal dari verifikator yang jujur dan dalam bentuk Tuan,2 j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,2 j ), tanpa kontradiksi. Oleh karena itu, pada waktu \(\beta\)r,3 saya pemain saya menyebarkan mr,3 saya = (ESIGi(v′), \(\sigma\)r,3 saya ), dimana v′ = H(Br \(\ell\)r).Langkah 4. Memperbaiki secara sewenang-wenang pemverifikasi yang jujur i \(\in\)HSV r,4. Dengan Lemma 5.5, pemain saya telah menerima semuanya pesan yang dikirim oleh verifikator di HSV r,3 setelah selesai menunggu pada waktu \(\beta\)r,4 saya = \(\alpha\)r,4 saya + t4. Mirip dengan Langkah 3, lebih dari 2/3 dari semua pesan valid (r, 3) yang saya terima berasal dari verifikator yang jujur dan dari bentuk tuan,3 j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,3 j ). Oleh karena itu, pemain i menetapkan vi = H(Br \(\ell\)r), gi = 2 dan bi = 0. Pada waktu \(\beta\)r,4 saya = \(\alpha\)r,4 saya +t4 dia menyebar Tuan, 4 saya = (ESIGi(0), ESIGi(H(Br \(\ell\)r)), \(\sigma\)r,4 saya ). Langkah 5. Perbaiki secara sewenang-wenang pemverifikasi yang jujur i \(\in\)HSV r,5. Dengan Lemma 5.5, pemain yang saya inginkan menerima semua pesan yang dikirim oleh verifikator di HSV r,4 jika dia menunggu sampai waktu \(\alpha\)r,5 saya + t5. Perhatikan itu |HSV r,4| \(\geq\)tH.19 Perhatikan juga bahwa semua verifikator di HSV r,4 telah menandatangani H(Br \(\ell\)r). Sebagai |MSV r,4| < tH, tidak ada v′ ̸= H(Br \(\ell\)r) yang bisa saja ditandatangani oleh tH pemverifikasi di SV r,4 (yang tentu saja jahat), jadi pemain i tidak berhenti sebelum dia melakukannya menerima pesan yang valid, Tuan, 4 j = (ESIGj(0), ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,4 j ). Biarkan T menjadi waktu kapan peristiwa terakhir terjadi. Beberapa pesan tersebut mungkin berasal dari pemain jahat, tetapi karena |MSV r,4| < tH, setidaknya salah satunya berasal dari verifikator yang jujur di HSV r,4 dan dikirim setelah waktu tertentu T r + t4. Oleh karena itu, T \(\geq\)T r +t4 > T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\)r +Λ, dan pada saat T pemain saya juga telah menerimanya pesannya pak,1 \(\ell\)r. Dengan konstruksi protokol, pemain i berhenti pada waktu \(\beta\)r,5 saya = T tanpa menyebarkan apa pun; himpunan Br = Br \(\ell\)r; dan menetapkan CERT r miliknya sendiri menjadi himpunan (r, 4)-pesan untuk 0 dan H(Br \(\ell\)r) yang diterimanya. Langkah s > 5. Demikian pula, untuk setiap langkah s > 5 dan setiap pemverifikasi i \(\in\)HSV r,s, pemain i akan memiliki menerima semua pesan yang dikirim oleh verifikator di HSV r,4 jika dia telah menunggu hingga waktu \(\alpha\)r,s saya + ts. Oleh analisa yang sama, pemain i berhenti tanpa menyebarkan apapun, setting Br = Br \(\ell\)r (dan mengatur sendiri CERT r dengan benar). Tentu saja, pemverifikasi jahat tidak boleh berhenti dan dapat menyebar secara sewenang-wenang pesan, tetapi karena |MSV r,s| < tH, dengan induksi tidak ada v′ lain yang dapat ditandatangani oleh pemeriksa tersebut pada setiap langkah 4 \(\leq\)s′ < s, sehingga verifikator yang jujur hanya berhenti karena mereka telah menerima validitas (r, 4)-pesan untuk 0 dan H(Br \(\ell\)r). Rekonstruksi Blok Round-r. Analisis pada Langkah 5 berlaku untuk kejujuran umum pengguna saya hampir tanpa perubahan apa pun. Memang, pemain i memulai putarannya sendiri r pada interval Ir dan hanya akan berhenti pada waktu T ketika dia telah menerima pesan (r, 4) yang valid untuk H(Br \(\ell\)r). Sekali lagi karena setidaknya satu dari pesan tersebut berasal dari verifikasi yang jujur dan dikirim setelah waktu T r + t4, pemain i punya juga menerima Tuan, 1 \(\ell\)r dengan waktu T. Jadi dia menetapkan Br = Br \(\ell\)r dengan CERT yang tepat r. Yang tersisa hanyalah menunjukkan bahwa semua pengguna yang jujur ​​menyelesaikan putarannya r dalam interval waktu Ir+1. Berdasarkan analisis pada Langkah 5, setiap verifier yang jujur i \(\in\)HSV r,5 mengetahui Br pada atau sebelum \(\alpha\)r,5 saya + t5 \(\leq\) T r + \(\lambda\) + t5 = T r + 8\(\lambda\) + Λ. Karena T r+1 adalah waktu ketika pengguna pertama yang jujur mengetahui Br, maka kita mengetahuinya T r+1 \(\leq\)T r + 8\(\lambda\) + Λ sesuai keinginan. Apalagi ketika pemain mengenal Br, dia sudah membantu menyebarkan pesan-pesan yang masuk CERT-nya r. Perhatikan bahwa semua pesan tersebut akan diterima oleh semua pengguna yang jujur dalam waktu \(\lambda\), meskipun 19Sebenarnya, hal ini terjadi dengan probabilitas yang sangat tinggi namun tidak terlalu besar. Namun, ini probabilitas sedikit mempengaruhi waktu berjalannya protokol, namun tidak mempengaruhi kebenarannya. Bila h = 80%, maka |HSV r,4| \(\geq\)tH dengan probabilitas 1 −10−8. Jika peristiwa ini tidak terjadi, maka protokol akan dilanjutkan ke peristiwa lain 3 langkah. Karena kemungkinan hal ini tidak terjadi pada dua langkah dapat diabaikan, maka protokol akan selesai pada Langkah 8. Dalam ekspektasinya, maka jumlah langkah yang dibutuhkan hampir 5.pemain saya adalah pemain pertama yang menyebarkannya. Apalagi berikut analisa diatas yang kami miliki T r+1 \(\geq\)T r + t4 \(\geq\) \(\beta\)r,1 \(\ell\)r + Λ, jadi semua pengguna jujur telah menerima mr,1 \(\ell\)r menurut waktu T r+1 + \(\lambda\). Oleh karena itu, semua pengguna yang jujur mengetahui Br dalam selang waktu Ir+1 = [T r+1, T r+1 + \(\lambda\)]. Terakhir, untuk r = 0 sebenarnya kita mempunyai T 1 \(\leq\)t4 + \(\lambda\) = 6\(\lambda\) + Λ. Menggabungkan semuanya bersama-sama, Lemma 5.2 berlaku. ■ 5.8 Lemma Kesehatan Lemma 5.3. [Lemma Kesehatan, dinyatakan kembali] Dengan asumsi Properti 1–3 berlaku untuk putaran r −1, kapan pemimpin \(\ell\)r jahat, dengan kemungkinan besar, semua pengguna jujur ​​setuju pada blok yang sama Br, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ dan semua pengguna yang jujur mengetahui Br dalam selang waktu Ir+1. Bukti. Kami mempertimbangkan dua bagian protokol, GC dan BBA⋆, secara terpisah. hal. Berdasarkan hipotesis induktif dan Lemma 5.5, untuk setiap langkah s \(\in\){2, 3, 4} dan setiap langkah jujur pemverifikasi i \(\in\)HSV r,s, ketika pemain i bertindak pada waktu \(\beta\)r,s saya = \(\alpha\)r,s saya + ts, dia telah menerima semua pesan yang dikirim oleh semua pemverifikasi yang jujur pada langkah s′ < s. Kami membedakan dua kemungkinan kasus untuk langkah 4. Kasus 1. Tidak ada pemverifikasi i \(\in\)HSV r,4 menetapkan gi = 2. Dalam hal ini, menurut definisi bi = 1 untuk semua verifier i \(\in\)HSV r,4. Artinya, mereka memulai dengan kesepakatan pada 1 dalam protokol BA biner. Mereka mungkin tidak memiliki kesepakatan mengenai vi mereka, tapi ini tidak masalah seperti yang akan kita lihat di BA biner. Kasus 2. Terdapat pemverifikasi ˆi \(\in\)HSV r,4 sehingga gˆi = 2. Dalam hal ini, kami menunjukkan hal itu (1) gi \(\geq\)1 untuk semua i \(\in\)HSV r,4, (2) terdapat nilai v′ sehingga vi = v′ untuk semua i \(\in\)HSV r,4, dan (3) ada pesan yang valid mr,1 \(\ell\) dari beberapa pemverifikasi \(\ell\) \(\in\)SV r,1 sehingga v′ = H(Br \(\ell\)). Memang benar, karena pemain ˆi jujur dan menetapkan gˆi = 2, lebih dari 2/3 dari semua pesan valid mr,3 j yang dia terima adalah untuk nilai yang sama v′ ̸= \(\bot\), dan dia telah menetapkan vˆi = v′. Berdasarkan Sifat (d) dalam Lemma 5.5, untuk pemverifikasi i lainnya yang jujur (r, 4), tidak lebih dari itu. dari 2/3 dari semua pesan valid mr,3 j yang i′ terima bernilai sama v′′ ̸= v′. Oleh karena itu, jika saya menetapkan gi = 2, maka haruslah saya telah melihat > 2/3 mayoritas untuk v′ juga dan menetapkan vi = v′, sesuai keinginan. Sekarang pertimbangkan pemverifikasi sembarang i \(\in\)HSV r,4 dengan gi < 2. Mirip dengan analisis Properti (d) pada Lemma 5.5, karena pemain i telah memperoleh > 2/3 mayoritas untuk v′, lebih dari 1 2|HSV r,3| jujur (r, 3)-penguji telah menandatangani v′. Karena saya telah menerima semua pesan dari verifikasi yang jujur (r, 3). waktu \(\beta\)r,4 saya = \(\alpha\)r,4 saya + t4, dia secara khusus menerima lebih dari 1 2|HSV r,3| pesan dari mereka untuk v′. Karena |HSV r,3| > 2|MSV r,3|, saya telah melihat > ​​1/3 mayoritas untuk v′. Oleh karena itu, pemain i menetapkan gi = 1, dan Properti (1) berlaku. Apakah pemain i harus menyetel vi = v′? Asumsikan terdapat nilai yang berbeda v′′ ̸= \(\bot\)sehingga pemain yang saya juga lihat > 1/3 mayoritas untuk v′′. Beberapa dari pesan tersebut mungkin berasal dari pesan jahat penguji, tapi paling tidak salah satu dari mereka berasal dari penguji yang jujur j \(\in\)HSV r,3: tentu saja, karena |HSV r,3| > 2|MSV r,3| dan saya telah menerima semua pesan dari HSV r,3, kumpulan berbahaya pemverifikasi yang darinya saya menerima pesan valid (r, 3) dihitung < 1/3 dari semua pesan valid pesan yang dia terima.Berdasarkan definisi, pemain j harus melihat > 2/3 mayoritas untuk v′′ di antara semua pesan (r, 2) yang valid dia telah menerima. Namun, kami sudah mengetahui hal yang telah dilihat oleh beberapa pengverifikasi (r, 3) yang jujur 2/3 mayoritas untuk v′ (karena mereka menandatangani v′). Berdasarkan Sifat (d) Lemma 5.5, hal ini tidak bisa terjadi dan nilai v′′ seperti itu tidak ada. Jadi pemain i harus mengatur vi = v′ sesuai keinginan, dan Properti (2) dimiliki. Akhirnya, mengingat bahwa beberapa pengverifikasi (r, 3) yang jujur telah mendapatkan > 2/3 mayoritas untuk v′, beberapa (sebenarnya, lebih dari separuh) verifikator yang jujur (r, 2) telah menandatangani v′ dan menyebarkan pesan-pesan mereka. Dengan dibangunnya protokol tersebut, para verifikator yang jujur (r, 2) harus sudah mendapatkan surat keterangan yang sah pesan Pak, 1 \(\ell\) dari beberapa pemain \(\ell\) \(\in\)SV r,1 dengan v′ = H(Br \(\ell\)), dengan demikian Properti (3) berlaku. BBA⋆. Kami sekali lagi membedakan dua kasus. Kasus 1. Semua verifikator i \(\in\)HSV r,4 mempunyai bi = 1. Hal ini terjadi setelah Kasus 1 GC. Sebagai |MSV r,4| < tH, dalam hal ini tidak ada verifier di SV r,5 dapat mengumpulkan atau menghasilkan pesan yang valid (r, 4) untuk bit 0. Dengan demikian, tidak ada pemverifikasi yang jujur di HSV r,5 akan berhenti karena mengetahui blok yang tidak kosong Br. Selain itu, meskipun setidaknya ada pesan (r, 4) yang valid untuk bit 1, s′ = 5 tidak memuaskan s′ −2 ≡1 mod 3, sehingga tidak ada verifikator yang jujur di HSV r,5 yang akan berhenti karena dia mengetahui Br = Br . Sebaliknya, setiap pemverifikasi i \(\in\)HSV r,5 bertindak pada waktu \(\beta\)r,5 saya = \(\alpha\)r,5 saya + t5, saat dia telah menerima semuanya pesan yang dikirim oleh HSV r,4 mengikuti Lemma 5.5. Jadi pemain yang saya lihat > 2/3 mayoritas untuk 1 dan himpunan bi = 1. Pada Langkah 6 yang merupakan langkah Koin-Tetap-Ke-1, meskipun s′ = 5 memenuhi s′ −2 ≡0 mod 3, terdapat tidak ada pesan (r, 4) yang valid untuk bit 0, sehingga tidak ada pemverifikasi di HSV r,6 yang akan berhenti karena dia mengetahui blok yang tidak kosong Br. Namun, dengan s′ = 6, s′ −2 ≡1 mod 3 dan memang ada |HSV r,5| \(\geq\)tH valid (r, 5)-pesan untuk bit 1 dari HSV r,5. Untuk setiap verifier i \(\in\)HSV r,6, mengikuti Lemma 5.5, pada atau sebelum waktu \(\alpha\)r,6 saya + pemain t6 i telah menerima semua pesan dari HSV r,5, jadi saya berhenti tanpa menyebarkan apa pun dan menyetel Br = Br . CERT r-nya adalah kumpulan pesan (r, 5) yang valid mr,5 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j ) diterima olehnya ketika dia berhenti. Selanjutnya, biarkan pemain i menjadi pemverifikasi yang jujur pada langkah s > 6 atau pengguna umum yang jujur (yaitu, non-verifikasi). Mirip dengan pembuktian Lemma 5.2, pemain i menetapkan Br = Br ǫ dan menetapkan miliknya sendiri CERT r menjadi himpunan pesan (r, 5) yang valid mr,5 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j ) dia punya diterima. Terakhir, mirip dengan Lemma 5.2, Tr+1 \(\leq\) menit i\(\in\)HSV r,6 \(\alpha\)r,6 saya + t6 \(\leq\)T r + \(\lambda\) + t6 = T r + 10\(\lambda\) + Λ, dan semua pengguna jujur mengetahui Br pada interval waktu Ir+1, karena pengguna jujur pertama adalah siapa mengetahui Br telah membantu menyebarkan pesan (r, 5) di CERT r-nya. Kasus 2. Terdapat verifier ˆi \(\in\)HSV r,4 dengan bˆi = 0. Hal ini terjadi setelah Kasus 2 GC dan merupakan kasus yang lebih kompleks. Dengan analisis GC, dalam hal ini terdapat pesan yang valid mr,1 \(\ell\) sehingga vi = H(Br \(\ell\)) untuk semua i \(\in\)HSV r,4. Catatan bahwa pemverifikasi di HSV r,4 mungkin tidak memiliki kesepakatan mengenai bi mereka. Untuk setiap langkah s \(\in\){5, . . . , m + 3} dan pemverifikasi i \(\in\)HSV r,s, oleh pemain Lemma 5.5 saya akan memiliki menerima semua pesan yang dikirim oleh semua verifikator yang jujur di HSV r,4 \(\cup\) \(\cdots\) \(\cup\)HSV r,s−1 jika dia telah menunggu untuk waktu ts.Sekarang kita perhatikan kejadian berikut E: terdapat langkah s∗\(\geq\)5 sehingga, untuk langkah pertama waktu dalam biner BA, beberapa pemain i∗\(\in\)SV r,s∗(baik jahat atau jujur) harus berhenti tanpa menyebarkan apa pun. Kita menggunakan “harus berhenti” untuk menekankan fakta bahwa, jika pemain i∗ berbahaya, maka dia mungkin berpura-pura tidak berhenti sesuai dengan protokol dan menyebarkan pesan pilihan Musuh. Apalagi dengan konstruksi protokolnya juga (E.a) i∗mampu mengumpulkan atau menghasilkan setidaknya pesan yang valid mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ) untuk v dan s′ yang sama, dengan 5 \(\leq\)s′ \(\leq\)s∗dan s′ −2 ≡0 mod 3; atau (E.b) i∗mampu mengumpulkan atau menghasilkan setidaknya pesan yang valid mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ) untuk s′ yang sama, dengan 6 \(\leq\)s′ \(\leq\)s∗dan s′ −2 ≡1 mod 3. Karena pesan jujur (r, s′ −1) diterima oleh semua pemeriksa jujur (r, s′) sebelum mereka selesai menunggu di Langkah s′, dan karena Musuh menerima semuanya selambat-lambatnya pengguna yang jujur, tanpa kehilangan sifat umum yang kami miliki s′ = s∗dan pemain i∗berbahaya. Perhatikan itu kami tidak mengharuskan nilai v di E.a menjadi hash dari blok yang valid: karena akan menjadi jelas dalam analisis, v = H(Br \(\ell\)) dalam sub-acara ini. Di bawah ini pertama-tama kita menganalisis Kasus 2 setelah peristiwa E, dan kemudian menunjukkan bahwa nilai s∗ pada dasarnya adalah didistribusikan sesuai dengan Lr (jadi kejadian E terjadi sebelum Langkah m + 3 dengan luar biasa probabilitas mengingat hubungan untuk parameter). Pertama-tama, untuk setiap langkah 5 \(\leq\)s < s∗, setiap pemverifikasi yang jujur i \(\in\)HSV r,s telah menunggu waktu ts dan menetapkan vi sebagai suara terbanyak dalam pemilu. valid (r, s−1)-pesan yang diterimanya. Sejak pemain i telah menerima semua pesan jujur (r, s−1). mengikuti Lemma 5.5, karena semua verifikator yang jujur di HSV r,4 telah menandatangani H(Br \(\ell\)) Kasus berikut 2 dari GC, dan sejak |HSV r,s−1| > 2|MSV r,s−1| untuk setiap s, dengan induksi kita mempunyai pemain i telah ditetapkan vi = H(Br \(\ell\)). Hal yang sama berlaku untuk setiap verifikator yang jujur i \(\in\)HSV r,s∗yang tidak berhenti tanpa menyebarkan apa pun. Sekarang kita pertimbangkan Langkah s∗dan membedakan empat subkasus. Kasus 2.1.a. Peristiwa E.a terjadi dan terdapat pemverifikasi yang jujur i′ \(\in\)HSV r,s∗siapa yang harus juga berhenti tanpa menyebarkan apa pun. Dalam hal ini, kita mempunyai s∗−2 ≡0 mod 3 dan Langkah s∗adalah langkah Koin-Tetap-Ke-0. Oleh definisinya, pemain i′ telah menerima setidaknya pesan (r, s∗−1) yang valid dalam bentuk (ESIGj(0), ESIGj(v), \(\sigma\)r,s∗−1 j ). Karena semua verifikator di HSV r,s∗−1 telah menandatangani H(Br \(\ell\)) dan |MSV r,s∗−1| < tH, kita mempunyai v = H(Br \(\ell\)). Karena setidaknya tH −|MSV r,s∗−1| \(\geq\)1 dari (r, s∗−1)-pesan yang diterima oleh i′ untuk 0 dan v dikirim oleh verifikator di HSV r,s∗−1 setelah waktu T r +ts∗−1 \(\geq\)T r +t4 \(\geq\)T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\) +Λ, pemain saya′ telah menerima tuan,1 \(\ell\) pada saat dia menerima pesan (r, s∗−1) tersebut. Jadi pemain aku berhenti tanpa menyebarkan apa pun; himpunan Br = Br \(\ell\); dan menetapkan CERT r miliknya sendiri menjadi kumpulan pesan valid (r, s∗−1) untuk 0 dan v yang telah diterimanya. Selanjutnya, kami tunjukkan bahwa, pemverifikasi lainnya i \(\in\)HSV r,s∗telah berhenti dengan Br = Br \(\ell\), atau telah menetapkan bi = 0 dan menyebarkan (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s saya ). Memang, karena Langkah s∗ adalah pertama kalinya beberapa verifikator berhenti tanpa menyebarkan apa pun, ternyata tidak ada langkah s′ < s∗dengan s′ −2 ≡1 mod 3 sehingga pengverifikasi tH (r, s′ −1) telah menandatangani 1. Oleh karena itu, tidak ada verifikasi di HSV r,s∗berhenti dengan Br = Br .Terlebih lagi, seperti semua verifier yang jujur ​​pada langkah {4, 5, . . . , s∗−1} telah menandatangani H(Br \(\ell\)), memang ada tidak ada langkah s′ \(\leq\)s∗dengan s′ −2 ≡0 mod 3 sehingga pengverifikasi tH (r, s′ −1) telah menandatangani beberapa v′′ ̸= H(Br \(\ell\)) —memang, |MSV r,s′−1| < th. Oleh karena itu, tidak ada pemverifikasi di HSV r,s∗stops dengan Br ̸= Br ǫ dan Br ̸= Br \(\ell\). Artinya, jika pemain i \(\in\)HSV r,s∗telah berhenti tanpa menyebarkan apa pun, dia pasti menetapkan Br = Br \(\ell\). Jika seorang pemain i \(\in\)HSV r,s∗telah menunggu waktu ts∗dan menyebarkan pesan pada waktu \(\beta\)r,s∗ saya = \(\alpha\)r,s∗ saya + ts∗, dia telah menerima semua pesan dari HSV r,s∗−1, termasuk setidaknya tH −|MSV r,s∗−1| dari mereka untuk 0 dan v. Jika saya melihat > 2/3 mayoritas untuk 1, maka dia telah melihat lebih dari 2(tH −|MSV r,s∗−1|) valid (r, s∗−1)-pesan untuk 1, dengan lebih banyak dari 2tH −3|MSV r,s∗−1| di antaranya dari pengverifikasi (r, s∗−1) yang jujur. Namun, hal ini menyiratkan |HSV r,s∗−1| \(\geq\)tH−|MSV r,s∗−1|+2tH−3|MSV r,s∗−1| > 2n−4|MSV r,s∗−1|, bertentangan fakta itu |HSV r,s∗−1| + 4|MSV r,s∗−1| < 2n, yang berasal dari hubungan untuk parameter. Oleh karena itu, saya tidak melihat > 2/3 mayoritas untuk 1, dan dia menetapkan bi = 0 karena Langkah s∗adalah langkah Koin-Tetap-Ke-0. Seperti yang kita miliki terlihat, vi = H(Br \(\ell\)). Jadi saya menyebarkan (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s i ) seperti yang kita inginkan menunjukkan. Untuk Langkah s∗+ 1, karena pemain i′ telah membantu menyebarkan pesan di CERT r-nya pada atau sebelum waktu \(\alpha\)r,s∗ saya′ + ts∗, semua verifikator yang jujur di HSV r,s∗+1 telah menerima setidaknya pesan (r, s∗−1) yang valid untuk bit 0 dan nilai H(Br \(\ell\)) pada atau sebelum selesai menunggu. Selanjutnya, pengverifikasi di HSV r,s∗+1 tidak akan berhenti sebelum menerima (r, s∗−1)- pesan, karena tidak ada pesan lain yang valid (r, s′ −1) untuk bit 1 dengan s′ −2 ≡1 mod 3 dan 6 \(\leq\)s′ \(\leq\)s∗+ 1, berdasarkan definisi Langkah s∗. Secara khusus, Langkah s∗+ 1 sendiri merupakan langkah Coin-Fixed-To-1, namun tidak ada verifier yang jujur di HSV r,s∗ yang telah disebarkan pesan untuk 1, dan |MSV r,s∗| < th. Jadi semua verifier yang jujur di HSV r,s∗+1 berhenti tanpa menyebarkan apa pun dan menetapkan Br = Sdr \(\ell\): seperti sebelumnya, mereka telah menerima tuan,1 \(\ell\) sebelum mereka menerima pesan (r, s∗−1) yang diinginkan.20 Hal yang sama juga berlaku untuk semua pemverifikasi yang jujur pada langkah selanjutnya dan semua pengguna yang jujur secara umum. Secara khusus, mereka semua mengetahui Br = Br \(\ell\)dalam selang waktu Ir+1 dan T r+1 \(\leq\) \(\alpha\)r,s∗ saya′ + ts∗\(\leq\)T r + \(\lambda\) + ts∗. Kasus 2.1.b. Peristiwa E.b terjadi dan terdapat pemverifikasi yang jujur i′ \(\in\)HSV r,s∗siapa yang harus juga berhenti tanpa menyebarkan apa pun. Dalam hal ini kita mempunyai s∗−2 ≡1 mod 3 dan Langkah s∗adalah langkah Koin-Tetap-Ke-1. Analisisnya mirip dengan Kasus 2.1.a dan banyak rincian yang dihilangkan. 20Jika \(\ell\)berniat jahat, dia mungkin akan mengirim Tuan, 1 \(\ell\) terlambat, berharap beberapa pengguna/verifikasi yang jujur belum menerima mr,1 \(\ell\) belum ketika mereka menerima sertifikat yang diinginkan untuk itu. Namun, karena verifier ˆi \(\in\)HSV r,4 telah menetapkan bˆi = 0 dan vˆi = H(Br \(\ell\)), sebagai sebelum kita mengetahui bahwa lebih dari separuh pengverifikasi yang jujur i \(\in\)HSV r,3 telah menetapkan vi = H(Br \(\ell\)). Hal ini semakin menyiratkan lebih banyak lagi dari separuh pengverifikasi yang jujur i \(\in\)HSV r,2 telah menetapkan vi = H(Br \(\ell\)), dan (r, 2)-verifier semuanya telah menerima mr,1 \(\ell\). Sebagai Musuh tidak dapat membedakan verifikator dari non-verifikasi, ia tidak dapat menargetkan penyebaran mr,1 \(\ell\) ke (r, 2)-pengverifikasi tanpa orang yang bukan pemverifikasi melihatnya. Faktanya, dengan probabilitas tinggi, lebih dari setengah (atau pecahan konstan yang bagus) dari semua pengguna jujur telah melihat mr,1 \(\ell\) setelah menunggu t2 dari awal rondenya sendiri r. Mulai sekarang, itu waktu \(\lambda\)′ yang dibutuhkan untuk mr,1 \(\ell\) untuk menjangkau pengguna jujur lainnya jauh lebih kecil dari Λ, dan demi kesederhanaan, kami tidak melakukannya tuliskan dalam analisis. Jika 4\(\lambda\) \(\geq\) \(\lambda\)′ maka analisis berjalan tanpa perubahan apa pun: pada akhir Langkah 4, semua pengguna yang jujur akan menerima mr,1 \(\ell\). Jika ukuran balok menjadi sangat besar dan 4\(\lambda\) < \(\lambda\)′, maka pada Langkah 3 dan 4, protokol dapat meminta setiap pemverifikasi untuk menunggu \(\lambda\)′/2 daripada 2\(\lambda\), dan analisis terus berlanjut.Seperti sebelumnya, pemain i′ harus menerima setidaknya tH valid (r, s∗−1)-pesan dalam bentuk (ESIGj(1), ESIGj(vj), \(\sigma\)r,s∗−1 j ). Sekali lagi berdasarkan definisi s∗, tidak ada langkah 5 \(\leq\)s′ < s∗dengan s′ −2 ≡0 mod 3, dimana setidaknya tH (r, s′ −1)-pengverifikasi telah menandatangani 0 dan v yang sama. Jadi pemain i′ berhenti tanpa menyebarkan apa pun; himpunan Br = Br ; dan set CERT r miliknya sendiri menjadi himpunan pesan valid (r, s∗−1) untuk bit 1 yang telah diterimanya. Selain itu, pemverifikasi i \(\in\)HSV r,s∗ lainnya telah berhenti pada Br = Br , atau telah menetapkan bi = 1 dan diperbanyak (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ saya ). Sejak player i′ telah membantu propagasi pesan (r, s∗−1) di CERT-nya r pada waktu \(\alpha\)r,s∗ saya′ + ts∗, sekali lagi semua verifier yang jujur masuk HSV r,s∗+1 berhenti tanpa menyebarkan apa pun dan mengatur Br = Br . Demikian pula semuanya jujur pengguna mengetahui Br = Br ǫ dalam interval waktu Ir+1 dan T r+1 \(\leq\) \(\alpha\)r,s∗ saya′ + ts∗\(\leq\)T r + \(\lambda\) + ts∗. Kasus 2.2.a. Peristiwa E.a terjadi dan tidak terdapat pemeriksa yang jujur i′ \(\in\)HSV r,s∗who juga harus berhenti tanpa menyebarkan apa pun. Dalam hal ini, perhatikan bahwa pemain i∗dapat memiliki CERT r yang valid i∗terdiri dari tH yang diinginkan (r, s∗−1)-pesan yang dapat dikumpulkan atau dihasilkan oleh Musuh. Namun, yang jahat pemeriksa mungkin tidak membantu menyebarkan pesan-pesan tersebut, jadi kami tidak dapat menyimpulkan bahwa mereka jujur pengguna akan menerimanya tepat waktu \(\lambda\). Faktanya, |MSV r,s∗−1| dari pesan-pesan itu mungkin berasal pengverifikasi (r, s∗−1) jahat, yang tidak menyebarkan pesan mereka sama sekali dan hanya mengirim mereka ke pemverifikasi jahat di langkah s∗. Mirip dengan Kasus 2.1.a, di sini kita memiliki s∗−2 ≡0 mod 3, Langkah s∗adalah langkah Koin-Tetap-Ke-0, dan pesan (r, s∗−1) di CERT r i∗adalah untuk bit 0 dan v = H(Br \(\ell\)). Memang semuanya jujur (r, s∗−1)-verifier menandatangani v, sehingga Musuh tidak dapat menghasilkan pesan-pesan (r, s∗−1) yang valid untuk v′ yang berbeda. Terlebih lagi, semua pengverifikasi yang jujur (r, s∗) telah menunggu waktu ts∗dan tidak melihat > 2/3 mayoritas untuk bit 1, sekali lagi karena |HSV r,s∗−1| + 4|MSV r,s∗−1| < 2n. Demikianlah setiap verifikator yang jujur i \(\in\)HSV r,s∗set bi = 0, vi = H(Br \(\ell\)) dengan suara terbanyak, dan memperbanyak mr,s∗ saya = (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s∗ saya ) pada waktu \(\alpha\)r,s∗ saya + ts∗. Sekarang pertimbangkan pemverifikasi yang jujur ​​pada Langkah s∗+ 1 (yang merupakan langkah Koin-Tetap-Ke-1). Jika Musuh sebenarnya mengirimkan pesan di CERT r i∗kepada beberapa di antaranya dan menyebabkannya stop, lalu mirip dengan Kasus 2.1.a, semua pengguna yang jujur mengetahui Br = Br \(\ell\)dalam interval waktu Ir+1 dan T r+1 \(\leq\)T r + \(\lambda\) + ts∗+1. Jika tidak, semua verifikator yang jujur pada Langkah s∗+1 telah menerima semua pesan (r, s∗) untuk 0 dan H(Br \(\ell\)) dari HSV r,s∗setelah waktu tunggu ts∗+1, yang menghasilkan > 2/3 mayoritas, karena |HSV r,s∗| > 2|MSV r,s∗|. Jadi semua verifikator di HSV r,s∗+1 menyebarkan pesan mereka 0 dan H(Br \(\ell\)) sesuai dengan itu. Perhatikan bahwa verifier di HSV r,s∗+1 tidak berhenti pada Br = Br \(\ell\), karena Langkah s∗+ 1 bukanlah langkah Koin-Tetap-Ke-0. Sekarang pertimbangkan pemverifikasi yang jujur ​​pada Langkah s∗+2 (yang merupakan langkah Pembalikan Koin). Jika Musuh mengirimkan pesan dalam CERT r i∗kepada beberapa dari mereka dan menyebabkan mereka berhenti, sekali lagi semua pengguna yang jujur mengetahui Br = Br \(\ell\)dalam selang waktu Ir+1 dan T r+1 \(\leq\)T r + \(\lambda\) + ts∗+2.Jika tidak, semua verifikasi yang jujur pada Langkah s∗+ 2 telah menerima semua pesan (r, s∗+ 1) untuk 0 dan H(Br \(\ell\)) dari HSV r,s∗+1 setelah waktu tunggu ts∗+2, sehingga menghasilkan > 2/3 mayoritas. Dengan demikian mereka semua menyebarkan pesannya untuk 0 dan H(Br \(\ell\)) sesuai dengan itu: itulah yang mereka lakukan bukan “melempar koin” dalam kasus ini. Sekali lagi, perhatikan bahwa mereka tidak berhenti tanpa menyebar, karena Langkah s∗+ 2 bukanlah langkah Koin-Tetap-Ke-0. Yang terakhir, bagi pemverifikasi yang jujur pada Langkah s∗+3 (yang merupakan langkah Koin-Tetap-Ke-0 lainnya), semua dari mereka akan menerima setidaknya pesan yang valid untuk 0 dan H(Br \(\ell\)) dari HSV s∗+2, jika mereka benar-benar menunggu waktu ts∗+3. Jadi, apakah Musuh mengirimkan pesan atau tidak di CERT r i∗ke salah satu dari mereka, semua verifier di HSV r,s∗+3 berhenti dengan Br = Br \(\ell\), tanpa menyebarkan apa pun. Bergantung pada bagaimana Musuh bertindak, beberapa di antaranya mungkin pernah melakukannya CERT r mereka sendiri yang terdiri dari pesan-pesan (r, s∗−1) di CERT r i∗, dan yang lainnya punya CERT mereka sendiri r yang terdiri dari pesan-pesan (r, s∗+ 2). Bagaimanapun, semua pengguna yang jujur tahu Br = Br \(\ell\)dalam selang waktu Ir+1 dan T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3. Kasus 2.2.b. Peristiwa E.b terjadi dan tidak terdapat pemeriksa yang jujur i′ \(\in\)HSV r,s∗who juga harus berhenti tanpa menyebarkan apa pun. Analisis dalam kasus ini mirip dengan Kasus 2.1.b dan Kasus 2.2.a, sehingga banyak rinciannya. telah dihilangkan. Secara khusus, CERT r i∗terdiri dari pesan-pesan (r, s∗−1) yang diinginkan untuk bit 1 yang dapat dikumpulkan atau dihasilkan oleh Musuh, s∗−2 ≡1 mod 3, Langkah s∗is a Langkah Coin-Fixed-To-1, dan tidak ada pemverifikasi (r, s∗) yang jujur yang dapat memperoleh > 2/3 mayoritas untuk 0. Jadi, setiap pemverifikasi i \(\in\)HSV r,s∗set bi = 1 dan menyebarkan mr,s∗ saya = (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ saya ) pada waktu \(\alpha\)r,s∗ saya + ts∗. Mirip dengan Kasus 2.2.a, dalam paling banyak 3 langkah lagi (yaitu protokol mencapai Langkah s∗+3, yang merupakan langkah Koin-Tetap-Ke-1 lainnya), semua pengguna yang jujur mengetahui Br = Br ǫ dalam selang waktu Ir+1. Selain itu, T r+1 mungkin \(\leq\)T r+\(\lambda\)+ts∗+1, atau \(\leq\)T r+\(\lambda\)+ts∗+2, atau \(\leq\)T r + \(\lambda\) + ts∗+3, bergantung pada kapan pertama kalinya verifikator yang jujur dapat menghentikan tanpa menyebar. Menggabungkan empat sub-kasus, kami mendapatkan bahwa semua pengguna yang jujur mengetahui Br dalam interval waktu tersebut Ir+1, dengan T r+1 \(\leq\)T r + \(\lambda\) + ts∗dalam Kasus 2.1.a dan 2.1.b, dan T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 dalam Kasus 2.2.a dan 2.2.b. Tetap pada batas atas s∗dan dengan demikian T r+1 untuk Kasus 2, dan kami melakukannya dengan mempertimbangkan bagaimana berkali-kali langkah-langkah yang Dibalik Koin sebenarnya dijalankan dalam protokol: yaitu, beberapa pemverifikasi yang jujur sebenarnya telah melakukan lemparan koin. Secara khusus, perbaiki secara sewenang-wenang langkah Koin-Benar-Terbalik s′ (yaitu, 7 \(\leq\)s′ \(\leq\)m + 2 dan s′ −2 ≡2 mod 3), dan misalkan \(\ell\)′ \(\triangleq\)arg minj\(\in\)SV r,s′−1 H(\(\sigma\)r,s′−1 j ). Untuk saat ini mari kita asumsikan s′ < s∗, karena jika tidak, tidak ada pemverifikasi yang jujur yang benar-benar melempar koin pada Langkah s′, menurut langkah sebelumnya diskusi. Berdasarkan definisi SV r,s′−1, nilai hash dari kredensial \(\ell\)′ juga merupakan yang terkecil di antara semua pengguna di PKr−k. Karena fungsi hash adalah oracle acak, idealnya pemain \(\ell\)′ jujur dengan probabilitas setidaknya h. Seperti yang akan kami tunjukkan nanti, meskipun Musuh mencoba yang terbaik untuk memprediksinya keluaran oracle acak dan memiringkan probabilitas, pemain \(\ell\)′ masih jujur dengan probabilitaspaling tidak ph = h2(1 + h −h2). Di bawah ini kami mempertimbangkan kasus ketika hal tersebut benar-benar terjadi: yaitu, \(\ell\)′ \(\in\)HSV r,s′−1. Perhatikan bahwa setiap pemverifikasi yang jujur i \(\in\)HSV r,s′ telah menerima semua pesan dari HSV r,s′−1 pada waktu \(\alpha\)r,s′ saya + ts′. Jika pemain i perlu melempar koin (yaitu, dia belum melihat > 2/3 mayoritas untuk bit yang sama b \(\in\){0, 1}), lalu ia menetapkan bi = lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )). Jika ada yang lain jujur pemverifikasi i′ \(\in\)HSV r,s′ yang telah melihat > 2/3 mayoritas untuk bit b \(\in\){0, 1}, maka berdasarkan Properti (d) dari Lemma 5.5, tidak ada pemverifikasi yang jujur di HSV r,s′ yang akan memperoleh > 2/3 mayoritas untuk sementara waktu b′ ̸= b. Sejak lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) = b dengan probabilitas 1/2, semua verifier yang jujur di HSV r,s′ dapat dijangkau kesepakatan pada b dengan probabilitas 1/2. Tentu saja, jika pemverifikasi i′ tersebut tidak ada, maka semuanya ada pemverifikasi yang jujur di HSV r,s′ menyetujui bit lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) dengan probabilitas 1. Menggabungkan probabilitas untuk \(\ell\)′ \(\in\)HSV r,s′−1, kita mendapatkan bahwa pemverifikasi yang jujur dalam HSV r,s′ mencapai kesepakatan pada bit b \(\in\){0, 1} dengan probabilitas paling sedikit ph 2 = h2(1+h−h2) 2 . Selain itu, dengan induksi pada suara mayoritas seperti sebelumnya, semua verifier yang jujur di HSV r,s′ telah menetapkan vinya menjadi H(Br \(\ell\)). Jadi, setelah kesepakatan tentang b tercapai pada Langkah s′, T r+1 adalah baik \(\leq\)T r + \(\lambda\) + ts′+1 atau \(\leq\)T r + \(\lambda\) + ts′+2, tergantung pada apakah b = 0 atau b = 1, mengikuti analisis Kasus 2.1.a dan 2.1.b. Di khususnya, tidak ada langkah Pembalikan Koin lebih lanjut yang akan dijalankan: yaitu, pemverifikasi di langkah-langkah tersebut masih memeriksa apakah merekalah yang melakukan verifikasi dan dengan demikian menunggu, namun langkah-langkah tersebut akan berhenti jika tidak dilakukan menyebarkan apa pun. Oleh karena itu, sebelum Langkah s∗, berapa kali langkah Coin-GenuinelyFlipped dijalankan didistribusikan sesuai dengan variabel acak Lr. Membiarkan Langkah s′ menjadi langkah terakhir yang Benar-Benar Dibalik Koin menurut Lr, dengan konstruksi protokol kita punya s′ = 4 + 3Lr. Kapan Musuh harus membuat Langkah itu terjadi jika dia ingin menunda T r+1 sebanyak itu mungkin? Kita bahkan dapat berasumsi bahwa Musuh mengetahui realisasi Lr terlebih dahulu. Jika s∗> s′ maka percuma saja, karena verifikator yang jujur sudah mencapai kesepakatan Langkah s′. Yang pasti, dalam kasus ini s∗akan menjadi s′ +1 atau s′ +2, sekali lagi bergantung pada apakah b = 0 atau b = 1. Namun, ini sebenarnya Kasus 2.1.a dan 2.1.b, dan T r+1 yang dihasilkan sama persis dengan sama seperti dalam kasus itu. Lebih tepatnya, T r+1 \(\leq\)T r + \(\lambda\) + ts∗\(\leq\)T r + \(\lambda\) + ts′+2. Jika s∗< s′ −3 —yaitu, s∗adalah sebelum langkah kedua terakhir yang Membalik Koin— maka dengan analisis Kasus 2.2.a dan 2.2.b, T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 < T r + \(\lambda\) + ts′. Maksudnya, pihak Adversary sebenarnya membuat kesepakatan mengenai Br terjadi lebih cepat. Jika s∗= s′ −2 atau s′ −1 —yaitu, langkah Koin-Tetap-Ke-0 atau langkah Koin-Tetap-Ke-1 tepat sebelum Langkah s′— kemudian dengan analisis empat sub-kasus, verifikator yang jujur masuk Langkah s′ tidak perlu lagi melempar koin, karena sudah berhenti tanpa menyebar, atau telah melihat > 2/3 mayoritas untuk bit yang sama b. Oleh karena itu kita punya T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 \(\leq\)T r + \(\lambda\) + ts′+2.Singkatnya, apa pun masalahnya, kita punya 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\) + Λ, seperti yang ingin kami tunjukkan. Kasus terburuk adalah ketika s∗= s′ −1 dan Kasus 2.2.b terjadi. Menggabungkan Kasus 1 dan 2 dari protokol BA biner, Lemma 5.3 berlaku. ■ 5.9 Keamanan Benih Qr dan Kemungkinan Pemimpin yang Jujur Masih harus membuktikan Lemma 5.4. Ingatlah bahwa pemverifikasi pada putaran r diambil dari PKr−k dan dipilih berdasarkan kuantitas Qr−1. Alasan memperkenalkan parameter lihat kembali k adalah untuk memastikan bahwa, kembali ke putaran r −k, ketika Musuh dapat menambahkan pengguna jahat baru untuk PKr−k, dia tidak dapat memprediksi kuantitas Qr−1 kecuali dengan probabilitas yang dapat diabaikan. Perhatikan bahwa Fungsi hash adalah oracle acak dan Qr−1 adalah salah satu inputnya ketika memilih verifier untuk putaran r. Jadi, tidak peduli seberapa jahatnya pengguna yang ditambahkan ke PKr−k, dari sudut pandang Musuh masing-masing salah satu dari mereka masih terpilih menjadi pemverifikasi pada langkah putaran r dengan probabilitas yang diperlukan p (atau p1 untuk Langkah 1). Lebih tepatnya, kita mempunyai lemma berikut. Lemma 5.6. Dengan k = O(log1/2 F), untuk setiap putaran r, dengan kemungkinan besar Musuh tidak menanyakan Qr−1 ke oracle acak pada putaran r −k. Bukti. Kami melanjutkan dengan induksi. Asumsikan bahwa untuk setiap putaran \(\gamma\) < r, Musuh tidak mengajukan pertanyaan Q\(\gamma\)−1 ke oracle acak kembali pada ronde \(\gamma\) −k.21 Perhatikan permainan mental berikut yang dimainkan oleh Musuh di ronde r −k, mencoba memprediksi Qr−1. Pada Langkah 1 setiap putaran \(\gamma\) = r −k, . . . , r −1, diberikan Q\(\gamma\)−1 spesifik yang tidak ditanyakan secara acak oracle, dengan mengurutkan pemain i \(\in\)PK\(\gamma\)−k sesuai dengan nilai hash H(SIGi(\(\gamma\), 1, Q\(\gamma\)−1)) semakin banyak, kita mendapatkan permutasi acak atas PK\(\gamma\)−k. Menurut definisi, pemimpin \(\ell\) \(\gamma\) adalah pengguna pertama dalam permutasi dan jujur dengan probabilitas h. Apalagi bila PK\(\gamma\)−k besar cukup, untuk sembarang bilangan bulat x \(\geq\)1, probabilitas bahwa pengguna x pertama dalam permutasi semuanya adalah berbahaya tetapi (x + 1) yang jujur adalah (1 −h)xh. Jika \(\ell\) \(\gamma\) jujur, maka Q\(\gamma\) = H(SIG\(\ell\) \(\gamma\)(Q\(\gamma\)−1), \(\gamma\)). Karena Musuh tidak dapat memalsukan tanda tangannya dari \(\ell\) \(\gamma\), Q\(\gamma\) didistribusikan secara seragam secara acak dari sudut pandang Musuh dan, kecuali dengan probabilitas yang sangat kecil,22 tidak ditanyakan ke H pada putaran r −k. Sejak masing-masing Q\(\gamma\)+1, Q\(\gamma\)+2, . . . , Qr−1 masing-masing adalah keluaran dari H dengan Q\(\gamma\), Q\(\gamma\)+1, . . . , Qr−2 sebagai salah satu masukan, mereka semua terlihat acak bagi Musuh dan Musuh tidak mungkin menanyakan Qr−1 hingga H di putaran r −k. Oleh karena itu, satu-satunya kasus di mana Musuh dapat memprediksi Qr−1 dengan probabilitas yang baik pada putaran tersebut r−k adalah saat semua pemimpin \(\ell\)r−k, . . . , \(\ell\)r−1 berbahaya. Sekali lagi pertimbangkan putaran \(\gamma\) \(\in\){r−k . . . , r−1} dan permutasi acak pada PK\(\gamma\)−k yang disebabkan oleh nilai hash yang sesuai. Jika untuk beberapa orang x \(\geq\)2, pengguna x −1 pertama dalam permutasi semuanya jahat dan ke-x jujur, maka Musuh mempunyai x kemungkinan pilihan untuk Q\(\gamma\): salah satu dari bentuk H(SIGi(Q\(\gamma\)−1, \(\gamma\))), dimana i adalah salah satu dari 21Karena k adalah bilangan bulat kecil, tanpa kehilangan keumumannya, kita dapat berasumsi bahwa k putaran pertama dari protokol dijalankan dalam lingkungan yang aman dan hipotesis induktif berlaku untuk putaran tersebut. 22Artinya, panjang keluaran H bersifat eksponensial. Perhatikan bahwa probabilitas ini jauh lebih kecil daripada F.pengguna jahat x−1 pertama, dengan menjadikan pemain i sebagai pemimpin putaran \(\gamma\); atau H(Q\(\gamma\)−1, \(\gamma\)), oleh memaksa B\(\gamma\) = B\(\gamma\) . Jika tidak, pemimpin putaran \(\gamma\) akan menjadi pengguna jujur pertama dalam permutasi tersebut dan Qr−1 menjadi tidak dapat diprediksi oleh Musuh. Manakah dari opsi x Q\(\gamma\) di atas yang harus dilakukan oleh Musuh? Untuk membantu Musuh jawab pertanyaan ini, dalam permainan mental kita sebenarnya membuatnya lebih kuat dari dia sebenarnya adalah, sebagai berikut. Pertama-tama, pada kenyataannya, Musuh tidak dapat menghitung hash pengguna yang jujur tanda tangan, sehingga tidak dapat memutuskan, untuk setiap Q\(\gamma\), jumlah x(Q\(\gamma\)) pengguna jahat di awal dari permutasi acak pada putaran \(\gamma\) + 1 yang diinduksi oleh Q\(\gamma\). Dalam permainan mental, kami memberinya angka x(Q\(\gamma\)) gratis. Yang kedua, pada kenyataannya, memiliki x pengguna pertama dalam permutasi semuanya bersikap jahat tidak berarti mereka semua bisa dijadikan pemimpin, karena hash nilai tanda tangannya juga harus kurang dari p1. Kami telah mengabaikan kendala mental ini permainan, memberikan Musuh lebih banyak keuntungan. Sangat mudah untuk melihat bahwa dalam permainan mental, pilihan optimal untuk Musuh, dilambangkan dengan Q\(\gamma\), adalah salah satu yang menghasilkan urutan pengguna jahat terpanjang di awal acak permutasi pada putaran \(\gamma\) + 1. Memang, mengingat Q\(\gamma\) tertentu, protokolnya tidak bergantung pada Q\(\gamma\)−1 lagi dan Musuh hanya bisa fokus pada permutasi baru di babak \(\gamma\) + 1, yang memiliki distribusi yang sama untuk jumlah pengguna jahat di awal. Oleh karena itu, di setiap putaran \(\gamma\), ˆQ\(\gamma\) yang disebutkan di atas memberinya jumlah opsi terbesar untuk Q\(\gamma\)+1 dan dengan demikian memaksimalkan kemungkinan bahwa pemimpin berturut-turut semuanya jahat. Oleh karena itu, dalam permainan mental Musuh mengikuti Rantai Markov dari putaran r −k untuk membulatkan r −1, dengan ruang keadaan menjadi {0} \(\cup\){x : x \(\geq\)2}. Negara 0 mewakili fakta bahwa pengguna pertama dalam permutasi acak pada putaran saat ini \(\gamma\) adalah jujur, sehingga Musuh gagal dalam permainan untuk memprediksi Qr−1; dan setiap negara bagian x \(\geq\)2 mewakili fakta bahwa pengguna x −1 pertama di permutasi berbahaya dan x-th jujur, sehingga Musuh memiliki opsi x untuk Q\(\gamma\). Itu probabilitas transisi P(x, y) adalah sebagai berikut. • P(0, 0) = 1 dan P(0, y) = 0 untuk sembarang y \(\geq\)2. Artinya, Musuh gagal dalam permainan satu kali saja pengguna dalam permutasi menjadi jujur. • P(x, 0) = hx untuk sembarang x \(\geq\)2. Artinya, dengan probabilitas hx, semua x permutasi acak mempunyai pengguna pertama mereka bersikap jujur, sehingga Musuh gagal dalam permainan di babak berikutnya. • Untuk setiap x \(\geq\)2 dan y \(\geq\)2, P(x, y) adalah probabilitas bahwa, di antara x permutasi acak diinduksi oleh opsi x dari Q\(\gamma\), urutan terpanjang dari pengguna jahat di awal beberapa di antaranya adalah y −1, sehingga Musuh memiliki opsi y untuk Q\(\gamma\)+1 di babak berikutnya. Artinya, P(x, kamu) = kamu−1 X saya=0 (1 −h)ih !x - kamu−2 X saya=0 (1 −h)ih !x = (1 −(1 −h)y)x −(1 −(1 −h)y−1)x. Perhatikan bahwa keadaan 0 adalah keadaan penyerap unik dalam matriks transisi P, dan setiap keadaan lainnya x mempunyai probabilitas positif untuk menuju ke 0. Kita tertarik untuk membatasi bilangan k dari putaran yang diperlukan agar Rantai Markov menyatu ke 0 dengan probabilitas yang sangat besar: yaitu, tidak tidak peduli di negara bagian mana rantai itu dimulai, dengan kemungkinan besar Musuh kalah dalam permainan dan gagal memprediksi Qr−1 pada putaran r −k. Pertimbangkan matriks transisi P (2) \(\triangleq\)P \(\cdot\) P setelah dua putaran. Sangat mudah untuk melihat bahwa P (2)(0, 0) = 1 dan P (2)(0, x) = 0 untuk sembarang x \(\geq\)2. Untuk setiap x \(\geq\)2 dan y \(\geq\)2, karena P(0, y) = 0, kita mempunyai 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, kamu).Membiarkan ¯h \(\triangleq\)1 −h, kita punya P(x, y) = (1 −¯hy)x −(1 −¯hy−1)x dan P (2)(x, kamu) = X z\(\geq\)2 [(1 −¯hz)x −(1 −¯hz−1)x][(1 −¯hy)z −(1 −¯hy−1)z]. Di bawah ini kita menghitung limit P (2)(x,y) P (x, y) saat h menjadi 1 —yaitu, ¯h menjadi 0. Perhatikan bahwa yang tertinggi orde ¯h pada P(x, y) adalah ¯hy−1, dengan koefisien x. Oleh karena itu, batas jam \(\to\) 1 P (2)(x, kamu) P(x, kamu) = lim ¯ jam \(\to\) 0 P (2)(x, kamu) P(x, kamu) = lim ¯ jam \(\to\) 0 P (2)(x, kamu) x¯hy−1 + O(¯hy) = batas ¯ jam \(\to\) 0 hal z\(\geq\)2[x¯hz−1 + O(¯hz)][z¯hy−1 + O(¯hy)] x¯hy−1 + O(¯hy) = lim ¯ jam \(\to\) 0 2x¯hy + O(¯hy+1) x¯hy−1 + O(¯hy) = batas ¯ jam \(\to\) 0 2x¯hy x¯hy−1 = lim ¯jam \(\to\) 0 2¯jam = 0. Ketika h cukup mendekati 1,23, kita punya P (2)(x, kamu) P(x, kamu) \(\leq\)1 2 untuk setiap x \(\geq\)2 dan y \(\geq\)2. Dengan induksi, untuk sembarang k > 2, P (k) \(\triangleq\)P k sedemikian rupa sehingga • P (k)(0, 0) = 1, P (k)(0, x) = 0 untuk sembarang x \(\geq\)2, dan • untuk setiap x \(\geq\)2 dan 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 . Karena P(x, y) \(\leq\)1, setelah putaran 1−log2 F, probabilitas transisi ke keadaan mana pun y \(\geq\)2 dapat diabaikan, dimulai dengan keadaan apa pun x \(\geq\)2. Meskipun ada banyak negara bagian y, mudah untuk melihatnya batas kamu→+∞ P(x, kamu) P(x, y + 1) = batas kamu→+∞ (1 −¯hy)x −(1 −¯hy−1)x (1 −¯hy+1)x −(1 −¯hy)x = batas kamu→+∞ ¯hy−1 −¯hy ¯hy −¯hy+1 = 1 ¯ jam = 1 1 jam. Oleh karena itu setiap baris x matriks transisi P berkurang sebagai barisan geometri dengan laju 1 1−jam > 2 ketika y cukup besar, dan hal yang sama berlaku untuk P (k). Oleh karena itu, ketika k cukup besar namun tetap pada urutan log1/2 F, P y\(\geq\)2 P (k)(x, y) < F untuk setiap x \(\geq\)2. Artinya, dengan kemungkinan yang sangat besar Musuh kalah dalam permainan dan gagal memprediksi Qr−1 pada ronde r −k. Untuk h \(\in\)(2/3, 1], lebih analisis kompleks menunjukkan bahwa terdapat konstanta C yang sedikit lebih besar dari 1/2, sehingga mencukupi untuk mengambil k = O(logC F). Demikianlah Lemma 5.6 berlaku. ■ Lemma 5.4. (disajikan kembali) Sifat yang diberikan 1–3 untuk setiap putaran sebelum r, ph = h2(1 + h −h2) untuk Lr, dan pemimpin \(\ell\)r jujur dengan probabilitas setidaknya ph. 23Misalnya, h = 80% seperti yang disarankan oleh pilihan parameter tertentu.

Bukti. Mengikuti Lemma 5.6, Musuh tidak dapat memprediksi kembali Qr−1 pada putaran r −k kecuali dengan probabilitas yang dapat diabaikan. Perlu dicatat bahwa hal ini tidak berarti kemungkinan untuk mendapatkan pemimpin yang jujur adalah hal yang mustahil setiap putaran. Memang, mengingat Qr−1, tergantung pada berapa banyak pengguna jahat di awal permutasi acak PKr−k, Musuh mungkin mempunyai lebih dari satu pilihan untuk Qr dan dengan demikian dapat meningkatkan kemungkinan munculnya pemimpin jahat di putaran r + 1 —sekali lagi kita memberikannya beberapa kelebihan yang tidak realistis seperti pada Lemma 5.6, sehingga dapat menyederhanakan analisis. Namun, untuk setiap Qr−1 yang tidak ditanyakan ke H oleh Musuh pada putaran r −k, untuk setiap x \(\geq\)1, dengan probabilitas (1 −h)x−1h pengguna jujur pertama muncul pada posisi x dalam hasil permutasi acak dari PKr−k. Jika x = 1, peluang munculnya pemimpin yang jujur pada putaran r + 1 adalah memang h; sedangkan ketika x = 2, Musuh memiliki dua pilihan Qr dan probabilitas yang dihasilkan adalah h2. Hanya dengan mempertimbangkan dua kasus ini, kita mempunyai kemungkinan untuk mendapatkan pemimpin yang jujur r + 1 setidaknya h \(\cdot\) h + (1 −h)h \(\cdot\) h2 = h2(1 + h −h2) sesuai keinginan. Perhatikan bahwa probabilitas di atas hanya mempertimbangkan keacakan protokol dari putaran r −k untuk membulatkan r. Ketika semua keacakan dari putaran 0 hingga putaran r dipertimbangkan, Qr−1 adalah bahkan lebih sulit diprediksi oleh Musuh dan kemungkinan pemimpin yang jujur di babak r + 1 adalah paling sedikit h2(1 + h −h2). Mengganti r + 1 dengan r dan menggeser semuanya kembali satu putaran, pemimpin \(\ell\)r jujur dengan probabilitas paling sedikit h2(1 + h −h2), sesuai keinginan. Demikian pula, dalam setiap langkah Pembalikan Koin, “pemimpin” dari langkah tersebut —yaitu pemverifikasi pada SV r,s yang kredensialnya mempunyai nilai hash terkecil, jujur dengan probabilitas paling sedikit h2(1 + jam −h2). Jadi ph = h2(1 + h −h2) untuk Lr dan Lemma 5.4 berlaku. ■

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 Di bagian ini, kami membuat versi Algorand ′ yang bekerja dengan asumsi berikut. Asumsi Mayoritas Pengguna Jujur: Lebih dari 2/3 pengguna di setiap PKr adalah jujur. Di Bagian 8, kami menunjukkan cara mengganti asumsi di atas dengan Mayoritas Jujur yang diinginkan Asumsi uang. 6.1 Notasi dan Parameter Tambahan untuk Algorand ′ 2 Notasi • \(\mu\) \(\in\)Z+: batas atas pragmatis terhadap jumlah langkah yang, dengan kemungkinan sangat besar, sebenarnya akan diambil dalam satu putaran. (Seperti yang akan kita lihat, parameter \(\mu\) mengontrol berapa banyak ephemeral kunci yang disiapkan pengguna sebelumnya untuk setiap putaran.) • Lr: variabel acak yang mewakili jumlah percobaan Bernoulli yang diperlukan untuk mendapatkan angka 1, ketika masing-masing percobaan percobaan adalah 1 dengan probabilitas ph 2. Lr akan digunakan untuk membatasi waktu yang diperlukan untuk menghasilkan blok Br. • tH: batas bawah jumlah verifikator yang jujur pada langkah s > 1 pada putaran r, sehingga dengan probabilitas yang sangat besar (mengingat n dan p), ada > pemverifikasi yang jujur di SV r,s. Parameter • Hubungan antara berbagai parameter. — Untuk setiap langkah s > 1 pada putaran r, n dipilih sehingga, dengan probabilitas yang sangat besar,

|HSV r,s| > ini dan |HSV r,s| + 2|MSV r,s| < 2tH. Perhatikan bahwa kedua pertidaksamaan di atas secara bersama-sama menyiratkan |HSV r,s| > 2|MSV r,s|: yaitu disana adalah 2/3 mayoritas yang jujur di antara verifikator terpilih. Semakin mendekati 1 nilai h, maka n harus semakin kecil. Secara khusus, kami menggunakan (varian dari) Batas Cherno untuk memastikan kondisi yang diinginkan terpenuhi dengan kemungkinan yang sangat besar. • Contoh pilihan parameter penting. — F = 10−18. — n \(\approx\)4000, tH \(\approx\)0,69n, k = 70. 6.2 Menerapkan Kunci Ephemeral di Algorand ′ 2 Ingatlah bahwa pemverifikasi i \(\in\)SV r,s secara digital menandatangani pesannya mr,s saya langkah s di putaran r, relatif terhadap pkr kunci publik sementara i , menggunakan kunci rahasia sementara skr,s saya yang segera dia hancurkan setelah menggunakan. Ketika jumlah langkah yang mungkin diambil dalam suatu putaran dibatasi oleh jumlah langkah tertentu bilangan bulat \(\mu\), kita telah melihat cara menangani kunci sementara secara praktis. Misalnya seperti kita sudah dijelaskan di Algorand′ 1 (di mana \(\mu\) = m + 3), untuk menangani semua kemungkinan kunci sementaranya, dari putaran r′ ke putaran r′ + 106, i menghasilkan pasangan (PMK, SMK), dimana PMK public master kunci skema tanda tangan berbasis identitas, dan SMK kunci master rahasianya yang sesuai. Pengguna i mempublikasikan PMK dan menggunakan SMK untuk menghasilkan kunci rahasia dari setiap kemungkinan kunci publik sementara (dan menghancurkan SMK setelah melakukannya). Kumpulan kunci publik sementara i untuk relevan putarannya adalah S = {i} \(\times\) {r′, . . . , r′ + 106} \(\times\) {1, . . . , \(\mu\)}. (Seperti yang telah dibahas, saat putaran r′ + 106 mendekat, saya “menyegarkan” pasangannya (PMK, SMK).) Dalam prakteknya, jika \(\mu\) cukup besar, putaran Algorand ′ 2 tidak akan memakan waktu lebih dari \(\mu\) langkah. Di prinsipnya, bagaimanapun, ada kemungkinan kecil bahwa, untuk beberapa putaran r jumlah langkah sebenarnya diambil akan melebihi \(\mu\). Jika ini terjadi, saya tidak akan bisa menandatangani pesannya, Tuan saya untuk setiap langkah s > \(\mu\), karena dia telah mempersiapkan sebelumnya hanya \(\mu\) kunci rahasia untuk putaran r. Apalagi dia tidak dapat menyiapkan dan mempublikasikan simpanan kunci sementara yang baru, seperti yang telah dibahas sebelumnya. Faktanya, untuk melakukan jadi, dia perlu memasukkan PMK′ kunci master publik baru di blok baru. Tapi, harus mengitari sungai mengambil lebih banyak langkah, tidak ada blok baru yang akan dihasilkan. Namun, solusinya ada. Misalnya, saya dapat menggunakan kunci sementara terakhir dari putaran r, pkr,\(\mu\) saya , sebagai berikut. Dia menghasilkan simpanan pasangan kunci lainnya untuk putaran r —misalnya, dengan (1) menghasilkan pasangan kunci lainnya pasangan kunci utama (PMK, SMK); (2) menggunakan pasangan ini untuk menghasilkan yang lain, katakanlah, 106 kunci sementara, sk r,\(\mu\)+1 saya , . . . , sk r,\(\mu\)+106 saya , sesuai dengan langkah \(\mu\)+1, ..., \(\mu\)+106 putaran r; (3) menggunakan skr,\(\mu\) saya ke secara digital tanda tangani PMK (dan pesan (r, \(\mu\)) apa pun jika i \(\in\)SV r,\(\mu\)), relatif terhadap pkr,\(\mu\) saya ; dan (4) menghapus SMK dan skr,\(\mu\) saya . Haruskah saya menjadi pemverifikasi pada langkah \(\mu\) + s dengan s \(\in\){1, . . . , 106}, lalu saya menandatanganinya secara digital (r, \(\mu\) + s)- pesan tuan,\(\mu\)+s saya relatif terhadap pk kunci barunya r,\(\mu\)+s saya = (i, r, \(\mu\) + s). Tentu saja untuk memverifikasi tanda tangan ini dari i, yang lain perlu memastikan bahwa kunci publik ini sesuai dengan PMK kunci publik i yang baru. Jadi, selain tanda tangan ini, saya mengirimkan tanda tangan digital PMK relatif terhadap pkr,\(\mu\) saya . Tentu saja, pendekatan ini dapat diulang sebanyak yang diperlukan jika putaran r terus berlanjut untuk lebih banyak langkah! Kunci rahasia sementara terakhir digunakan untuk mengautentikasi publik master baru kunci, dan dengan demikian kumpulan kunci fana lainnya untuk putaran r. Dan sebagainya.6.3 Protokol Sebenarnya Algorand ′ 2 Ingat kembali bahwa, pada setiap langkah s pada putaran r, pemverifikasi i \(\in\)SV r,s menggunakan rahasia publik jangka panjangnya pasangan kunci untuk menghasilkan kredensialnya, \(\sigma\)r,s saya \(\triangleq\)SIGi(r, s, Qr−1), serta SIGi Qr−1 dalam kasus s = 1. Verifier i menggunakan pasangan kunci fana miliknya, (pkr,s saya, skr, s i ), untuk menandatangani pesan lain yang mungkin ada diperlukan. Untuk mempermudah, kami menulis esigi(m), bukan sigpkr,s i (m), untuk menunjukkan kefanaan i yang sebenarnya tanda tangan m pada langkah ini, dan tulis ESIGi(m) sebagai pengganti SIGpkr,s saya (m) \(\triangleq\)(saya, m, esigi(m)). Langkah 1: Blokir Proposal Instruksi untuk setiap pengguna i \(\in\)PKr−k: Pengguna i memulai Langkah 1 pada putaran r segera setelah ia menyelesaikannya CERT r−1, yang memungkinkan i menghitung H(Br−1) dan Qr−1 secara jelas. • Pengguna i menggunakan Qr−1 untuk memeriksa apakah i \(\in\)SV r,1 atau tidak. Jika i /\(\in\)SV r,1, dia tidak melakukan apa pun untuk Langkah 1. • Jika i \(\in\)SV r,1, yaitu jika i adalah calon pemimpin, maka ia melakukan hal berikut. (a) Jika saya telah melihat B0, . . . , Br−1 sendiri (setiap Bj = Bj ǫ dapat dengan mudah diturunkan dari nilai hash-nya di CERT j dan dengan demikian diasumsikan “terlihat”), lalu dia mengumpulkan pembayaran putaran-r yang dimilikinya telah disebarkan kepadanya sejauh ini dan menghitung pembayaran maksimal PAY r saya dari mereka. (b) Jika saya belum melihat semua B0, . . . , Br−1 lagi, lalu dia menetapkan PAY r saya = \(\emptyset\). (c) Selanjutnya, saya menghitung “blok kandidat” nya Br i = (r, BAYAR r saya , SIGi(Qr−1), H(Br−1)). (c) Akhirnya, saya menghitung pesan mr,1 saya = (Sdr saya , esigi(H(Br saya )), \(\sigma\)r,1 i ), menghancurkan kefanaannya kunci rahasia skr,1 i , dan kemudian menyebarkan dua pesan, mr,1 saya dan (SIGi(Qr−1), \(\sigma\)r,1 saya ), secara terpisah namun bersamaan.a aKetika i adalah pemimpinnya, SIGi(Qr−1) memungkinkan orang lain menghitung Qr = H(SIGi(Qr−1), r).

Propagasi Selektif Untuk mempersingkat pelaksanaan global Langkah 1 dan keseluruhan putaran, penting bahwa (r, 1)- pesan disebarkan secara selektif. Artinya, untuk setiap pengguna j dalam sistem, • Untuk (r, 1)-pesan pertama yang pernah diterimanya dan berhasil diverifikasi,a apakah pesan tersebut berisi sebuah blok atau hanya kredensial dan tanda tangan dari Qr−1, pemain j menyebarkannya seperti biasa. • Untuk semua pesan (r, 1) lainnya yang diterima dan berhasil diverifikasi oleh pemain j, ia menyebarkan hanya jika nilai hash dari kredensial yang dikandungnya adalah yang terkecil di antara nilai hash dari kredensial yang terkandung dalam semua (r, 1)-pesan yang telah dia terima dan berhasil diverifikasi jauh. • Namun, jika j menerima dua pesan berbeda dalam bentuk mr,1 saya dari pemain yang sama i,b he membuang yang kedua tidak peduli berapa pun nilai hash dari kredensial i. Perhatikan bahwa, dalam propagasi selektif, akan bermanfaat jika setiap pemimpin potensial menyebarkan idenya sendiri kredensial \(\sigma\)r,1 saya terpisah dari Tuan,1 i :c pesan-pesan kecil itu menyebar lebih cepat daripada blok, pastikan propagasi tepat waktu dari mr,1 di mana kredensial yang terkandung memiliki nilai hash yang kecil, sedangkan membuat yang memiliki nilai hash besar menghilang dengan cepat. aArtinya, semua tanda tangan sudah benar dan jika berbentuk bapak,1 i , blok dan hash-nya valid —walaupun j tidak memeriksa apakah payset yang disertakan sudah maksimal untuk i atau tidak. bYang berarti saya jahat. cKami berterima kasih kepada Georgios Vlachos yang telah menyarankan hal ini.Langkah 2: Langkah Pertama dari Protokol Konsensus Bertingkat GC Instruksi untuk setiap pengguna i \(\in\)PKr−k: Pengguna i memulai Langkah 2 pada putaran r segera setelah ia menyelesaikannya CERT r−1. • Pengguna i menunggu selama waktu maksimum t2 \(\triangleq\) \(\lambda\) + Λ. Sambil menunggu, saya bertindak sebagai berikut. 1. Setelah menunggu waktu 2\(\lambda\), dia menemukan pengguna \(\ell\)sehingga H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j ) untuk semua kredensial \(\sigma\)r,1 j yang merupakan bagian dari pesan (r, 1) yang berhasil diverifikasi yang diterimanya sejauh ini.a 2. Jika dia memiliki diterima sebuah blok Br−1, yang mana cocok itu hash nilai H(Br−1) terkandung dalam CERT r−1,b dan jika dia telah menerima dari \(\ell\) pesan yang valid mr,1 \(\ell\) = (Br \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),c lalu saya berhenti menunggu dan menyetel v′ i \(\triangleq\)(H(Br \(\ell\)), \(\ell\)). 3. Jika tidak, ketika waktu t2 habis, saya menetapkan v′ saya \(\triangleq\) \(\bot\). 4. Ketika nilai v′ i telah ditetapkan, i menghitung Qr−1 dari CERT r−1 dan memeriksa apakah i \(\in\)SV r,2 atau tidak. 5. Jika i \(\in\)SV r,2, i menghitung pesan mr,2 saya \(\triangleq\)(ESIGi(v′ saya), \(\sigma\)r,2 i ),d menghancurkan kefanaannya kunci rahasia skr,2 i , dan kemudian menyebarkan mr,2 saya. Jika tidak, saya berhenti tanpa menyebarkan apa pun. aPada dasarnya, pengguna i secara pribadi memutuskan bahwa pemimpin putaran r adalah pengguna \(\ell\). bTentu saja, jika CERT r−1 menunjukkan bahwa Br−1 = Br−1 ǫ , maka saya sudah “menerima” Br−1 pada saat dia menerimanya CERT r−1. cSekali lagi, tanda tangan pemain \(\ell\) dan hashes semuanya berhasil diverifikasi, dan MEMBAYAR r \(\ell\)di Br \(\ell\)adalah pembayaran yang valid untuk putaran r —walaupun saya tidak memeriksa apakah MEMBAYAR r \(\ell\)maksimal untuk \(\ell\)atau tidak. Jika Sdr \(\ell\)berisi set pembayaran kosong sebenarnya i tidak perlu melihat Br−1 sebelum memverifikasi apakah Br \(\ell\) valid atau tidak. dPesan Pak,2 saya memberi sinyal bahwa pemain i menganggap komponen pertama dari v′ saya menjadi hash blok berikutnya, atau menganggap blok berikutnya kosong.

Langkah 3: Langkah Kedua GC Instruksi untuk setiap pengguna i \(\in\)PKr−k: Pengguna i memulai Langkah ke-3 pada putaran r segera setelah ia menyelesaikannya CERT r−1. • Pengguna i menunggu selama waktu maksimum t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ. Sambil menunggu, aku berperan sebagai berikut. 1. Jika terdapat nilai v sehingga dia telah menerima setidaknya pesan yang valid mr,2 j dari bentuk (ESIGj(v), \(\sigma\)r,2 j ), tanpa kontradiksi apa pun,a lalu dia berhenti menunggu dan mulai terbenam v′ = v. 2. Jika tidak, ketika waktu t3 habis, ia menetapkan v′ = \(\bot\). 3. Ketika nilai v′ telah ditetapkan, saya menghitung Qr−1 dari CERT r−1 dan memeriksa apakah i \(\in\)SV r,3 atau tidak. 4. Jika i \(\in\)SV r,3, maka i menghitung pesan mr,3 saya \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 i ), menghancurkan miliknya skr kunci rahasia sementara,3 i , dan kemudian menyebarkan mr,3 saya. Kalau tidak, aku akan berhenti tanpanya menyebarkan apa pun. aArtinya, dia belum menerima dua pesan valid yang masing-masing berisi ESIGj(v) dan ESIGj(ˆv) yang berbeda, dari pemain j. Di sini dan mulai sekarang, kecuali dalam Kondisi Akhir yang ditentukan nanti, kapan pun pemain jujur menginginkan pesan dalam bentuk tertentu, pesan yang bertentangan satu sama lain tidak pernah dihitung atau dianggap valid.

Langkah 4: Keluaran GC dan Langkah Pertama BBA⋆ Instruksi untuk setiap pengguna i \(\in\)PKr−k: Pengguna i memulai Langkah 4 pada putaran r segera setelah dia menyelesaikan Langkah 3 miliknya sendiri. • Pengguna i menunggu selama waktu maksimum 2\(\lambda\).a Saat menunggu, i bertindak sebagai berikut. 1. Dia menghitung vi dan gi, keluaran dari GC, sebagai berikut. (a) Jika terdapat nilai v′ ̸= \(\bot\)sehingga dia telah menerima setidaknya pesan yang valid Tuan,3 j = (ESIGj(v′), \(\sigma\)r,3 j ), lalu dia berhenti menunggu dan menetapkan vi \(\triangleq\)v′ dan gi \(\triangleq\)2. (b) Jika dia telah menerima setidaknya pesan yang valid, Tuan,3 j = (ESIGj(\(\bot\)), \(\sigma\)r,3 j ), lalu dia berhenti menunggu dan menyetel vi \(\triangleq\) \(\bot\)dan gi \(\triangleq\)0.b (c) Sebaliknya, ketika waktu 2\(\lambda\) habis, jika terdapat nilai v′ ̸= \(\bot\)sehingga ia mempunyai menerima setidaknya ⌈tH 2 ⌉pesan yang valid pak, j j = (ESIGj(v′), \(\sigma\)r,3 j ), lalu dia menetapkan vi \(\triangleq\)v′ dan gi \(\triangleq\)1.c (d) Jika tidak, ketika waktu 2\(\lambda\) habis, ia menetapkan vi \(\triangleq\) \(\bot\)dan gi \(\triangleq\)0. 2. Ketika nilai vi dan gi telah ditetapkan, i menghitung bi, masukan dari BBA⋆, sebagai berikut: bi \(\triangleq\)0 jika gi = 2, dan bi \(\triangleq\)1 jika tidak. 3. i menghitung Qr−1 dari CERT r−1 dan memeriksa apakah i \(\in\)SV r,4 atau tidak. 4. Jika i \(\in\)SV r,4, ia menghitung pesan mr,4 saya \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), menghancurkan miliknya skr kunci rahasia sementara,4 i , dan menyebarkan mr,4 saya. Jika tidak, saya berhenti tanpa menyebarkan apa pun. aJadi, total waktu maksimum sejak i memulai Langkah 1 pada putaran r adalah t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ. bApakah Langkah (b) ada dalam protokol atau tidak, tidak mempengaruhi kebenarannya. Namun, kehadiran Langkah (b) memungkinkan Langkah 4 berakhir dalam waktu kurang dari 2\(\lambda\) jika cukup banyak pemverifikasi Langkah-3 yang “menandatangani \(\bot\).” cDapat dibuktikan bahwa v′ dalam hal ini, jika ada, pasti unik.Langkah s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: Langkah BBA⋆ Koin-Tetap-Ke-0 Instruksi untuk setiap pengguna i \(\in\)PKr−k: Pengguna i memulai Langkahnya sendiri pada putaran r segera setelah dia menyelesaikan Langkahnya sendiri s −1. • Pengguna i menunggu selama waktu maksimum 2\(\lambda\).a Saat menunggu, i bertindak sebagai berikut. – Kondisi Akhir 0: Jika suatu titik terdapat string v ̸= \(\bot\)dan langkah s′ sedemikian rupa sehingga (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3 —yaitu, Langkah s′ adalah langkah Koin-Tetap-Ke-0, (b) saya telah menerima setidaknya pesan yang valid tuan,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),b dan (c) saya telah menerima pesan yang valid (SIGj(Qr−1), \(\sigma\)r,1 j ) dengan j menjadi yang kedua komponen v, kemudian, saya berhenti menunggu dan mengakhiri eksekusi Langkah s-nya sendiri (dan sebenarnya putaran r) segera tanpa menyebarkan apa pun sebagai pemverifikasi (r, s); menetapkan H(Br) menjadi yang pertama komponen v; dan menetapkan CERT r miliknya sendiri menjadi kumpulan pesan mr,s′−1 j langkah (b) bersama dengan (SIGj(Qr−1), \(\sigma\)r,1 j ).c – Kondisi Akhir 1: Jika suatu saat terdapat langkah s′ sedemikian rupa (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3 —yaitu, Langkah s′ adalah langkah Koin-Tetap-Ke-1, dan (b') saya telah menerima setidaknya pesan yang valid tuan,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),d kemudian, saya berhenti menunggu dan mengakhiri eksekusinya sendiri pada Langkah s (dan sebenarnya putaran r) dengan benar pergi tanpa menyebarkan apa pun sebagai pemverifikasi (r, s); himpunan Br = Br ; dan menetapkan miliknya sendiri CERT r menjadi himpunan pesan mr,s′−1 j dari sub-langkah (b'). – Jika di apapun titik dia memiliki diterima di setidaknya itu sah Tuan, s−1 j itu dari itu bentuk (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), lalu dia berhenti menunggu dan menyetel bi \(\triangleq\)1. – Jika di apapun titik dia memiliki diterima di setidaknya itu sah Tuan, s−1 j itu dari itu bentuk (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), tetapi mereka tidak sepakat pada v yang sama, lalu dia berhenti menunggu dan menyetel bi \(\triangleq\)0. – Jika tidak, ketika waktu 2\(\lambda\) habis, i menetapkan bi \(\triangleq\)0. – Ketika nilai bi telah ditetapkan, i menghitung Qr−1 dari CERT r−1 dan memeriksa apakah saya \(\in\)SV r,s. – Jika i \(\in\)SV r,s, i menghitung pesan mr,s saya \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) dengan vi menjadi nilai yang telah dia hitung pada Langkah 4, menghancurkan skr,s kunci rahasia fananya saya, dan kemudian menyebarkan Tuan, s saya. Jika tidak, saya berhenti tanpa menyebarkan apa pun. aJadi, total waktu maksimum sejak i memulai Langkah 1 pada putaran r adalah ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3)\(\lambda\) + Λ. bPesan seperti itu dari pemain j dihitung meskipun pemain i juga menerima pesan dari j yang menandatangani untuk 1. Hal serupa untuk Kondisi Akhir 1. Seperti yang ditunjukkan dalam analisis, ini untuk memastikan bahwa semua pengguna yang jujur mengetahuinya CERT r dalam waktu \(\lambda\) satu sama lain. Pengguna i sekarang mengetahui H(Br) dan penyelesaian putarannya sendiri. Dia hanya perlu menunggu hingga blok Br benar-benar berada disebarkan kepadanya, yang mungkin memerlukan waktu tambahan. Dia masih membantu menyebarkan pesan sebagai pengguna umum, tetapi tidak memulai propagasi apa pun sebagai pemverifikasi (r, s). Secara khusus, dia telah membantu menyebarkan semua pesan di dalamnya CERT r-nya, yang cukup untuk protokol kami. Perhatikan bahwa ia juga harus menetapkan bi \(\triangleq\)0 untuk protokol biner BA, tapi bi tidak diperlukan dalam hal ini. Hal serupa untuk semua instruksi di masa depan. dDalam hal ini, tidak peduli apa vjnya. 65Langkah s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: Langkah BBA⋆ Koin-Tetap-Ke-1 Instruksi untuk setiap pengguna i \(\in\)PKr−k: Pengguna i memulai Langkahnya sendiri pada putaran r segera setelah dia menyelesaikan Langkahnya sendiri s −1. • Pengguna i menunggu maksimal 2\(\lambda\). Sambil menunggu, saya bertindak sebagai berikut. – Kondisi Akhir 0: Instruksi yang sama seperti pada langkah Koin-Tetap-Ke-0. – Kondisi Akhir 1: Instruksi yang sama seperti pada langkah Koin-Tetap-Ke-0. – Jika di apapun titik dia memiliki diterima di setidaknya itu sah Tuan, s−1 j itu dari itu bentuk (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), lalu dia berhenti menunggu dan menyetel bi \(\triangleq\)0.a – Jika tidak, ketika waktu 2\(\lambda\) habis, i menetapkan bi \(\triangleq\)1. – Ketika nilai bi telah ditetapkan, i menghitung Qr−1 dari CERT r−1 dan memeriksa apakah saya \(\in\)SV r,s. – Jika i \(\in\)SV r,s, i menghitung pesan mr,s saya \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) dengan vi menjadi nilai yang telah dia hitung pada Langkah 4, menghancurkan skr,s kunci rahasia fananya saya, dan kemudian menyebarkan Tuan, s saya. Jika tidak, saya berhenti tanpa menyebarkan apa pun. aPerhatikan bahwa menerima pesan valid (r, s −1) yang ditandatangani untuk 1 berarti Kondisi Akhir 1. Langkah s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: Langkah BBA⋆ yang Benar-Benar Dibalik Koin Instruksi untuk setiap pengguna i \(\in\)PKr−k: Pengguna i memulai Langkahnya sendiri pada putaran r segera setelah dia menyelesaikan langkahnya sendiri s −1. • Pengguna i menunggu maksimal 2\(\lambda\). Sambil menunggu, saya bertindak sebagai berikut. – Kondisi Akhir 0: Instruksi yang sama seperti pada langkah Koin-Tetap-Ke-0. – Kondisi Akhir 1: Instruksi yang sama seperti pada langkah Koin-Tetap-Ke-0. – Jika di apapun titik dia memiliki diterima di setidaknya itu sah Tuan, s−1 j itu dari itu bentuk (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), lalu dia berhenti menunggu dan menyetel bi \(\triangleq\)0. – Jika di apapun titik dia memiliki diterima di setidaknya itu sah Tuan, s−1 j itu dari itu bentuk (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), lalu dia berhenti menunggu dan menyetel bi \(\triangleq\)1. – Jika tidak, ketika waktu 2\(\lambda\) habis, biarkan SV r,s−1 saya menjadi himpunan (r, s −1)-pengukur dari kepada siapa dia telah menerima pesan yang valid tuan,s−1 j , saya menyetel bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 saya H(\(\sigma\)r,s−1 j )). – Ketika nilai bi telah ditetapkan, i menghitung Qr−1 dari CERT r−1 dan memeriksa apakah saya \(\in\)SV r,s. – Jika i \(\in\)SV r,s, i menghitung pesan mr,s saya \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) dengan vi menjadi nilai yang telah dia hitung pada Langkah 4, menghancurkan skr,s kunci rahasia fananya saya, dan kemudian menyebarkan Tuan, s saya. Jika tidak, saya berhenti tanpa menyebarkan apa pun. Komentar. Pada prinsipnya, sebagaimana dibahas dalam sub-bagian 6.2, protokol dapat mengambil banyak hal secara sewenang-wenang langkah dalam beberapa putaran. Jika hal ini terjadi, seperti yang dibahas, pengguna i \(\in\)SV r,s dengan s > \(\mu\) telah habis

simpanan kunci sementara yang telah dibuat sebelumnya dan harus mengautentikasi pesan (r, s)-nya, mr,s saya oleh a “cascade” dari kunci-kunci fana. Dengan demikian pesan saya menjadi sedikit lebih panjang dan penyampaiannya menjadi lebih lama pesan akan memakan waktu lebih lama. Oleh karena itu, setelah begitu banyak langkah dalam suatu putaran tertentu, nilai parameter \(\lambda\) secara otomatis akan meningkat sedikit. (Tetapi itu kembali ke \(\lambda\) asli sekali lagi blok diproduksi dan babak baru dimulai.) Rekonstruksi Blok Round-r oleh Non-Verifiers Petunjuk untuk setiap pengguna i dalam sistem: Pengguna i memulai putarannya sendiri r segera setelah ia melakukannya CERT r−1. • Saya mengikuti instruksi dari setiap langkah protokol, berpartisipasi dalam penyebaran semuanya pesan, tetapi tidak memulai propagasi apa pun dalam suatu langkah jika dia bukan pemverifikasi di dalamnya. • i mengakhiri putarannya sendiri r dengan memasukkan Kondisi Akhir 0 atau Kondisi Akhir 1 di beberapa bagian langkah, dengan CERT r yang sesuai. • Dari sana, dia memulai putarannya r + 1 sambil menunggu untuk menerima blok Br yang sebenarnya (kecuali dia sudah menerimanya), yang hash H(Br)-nya telah ditembaki oleh CERT r. Sekali lagi, jika CERT r menunjukkan bahwa Br = Br ǫ, saya tahu Br saat dia memiliki CERT r. 6.4 Analisis Algorand′ 2 Analisis Algorand′ 2 dengan mudah diturunkan dari Algorand ′ 1. Intinya, di Algorand ′ 2, dengan kemungkinan besar, (a) semua pengguna yang jujur menyetujui blok yang sama Br; pemimpin yang baru blok jujur dengan probabilitas paling sedikit 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.

Menangani pengguna Offline Jujur

Seperti yang kami katakan, pengguna yang jujur mengikuti semua instruksi yang ditentukan, termasuk instruksi online dan menjalankan protokol. Hal ini tidak menjadi beban besar di Algorand, karena perhitungan dan bandwidth yang dibutuhkan dari pengguna yang jujur cukup sederhana. Namun, izinkan kami menunjukkan bahwa Algorand bisa dapat dengan mudah dimodifikasi agar dapat berfungsi dalam dua model, di mana pengguna yang jujur diperbolehkan untuk offline di angka yang besar. Sebelum membahas kedua model ini, mari kita tunjukkan persentase pemain yang jujur adalah 95%, Algorand masih dapat dijalankan dengan mengatur semua parameter dengan asumsi h = 80%. Oleh karena itu, Algorand akan terus berfungsi dengan baik meskipun sebagian besar pemain jujur memilih untuk offline (memang merupakan kasus utama “ketidakhadiran”). Faktanya, setidaknya kapan saja 80% pemain online akan jujur. Dari Partisipasi Terus-menerus hingga Kejujuran yang Malas Seperti yang kita lihat, Algorand ′ 1 dan Algorand′ 2 pilih parameter lihat kembali k. Sekarang mari kita tunjukkan bahwa memilih k yang besar dengan benar memungkinkan seseorang untuk menghapus persyaratan Partisipasi Berkelanjutan. Persyaratan ini memastikan properti penting: yaitu, bahwa protokol BA yang mendasari BBA⋆memiliki mayoritas yang jujur. Sekarang mari kita jelaskan betapa malasnya kejujuran memberikan cara alternatif dan menarik untuk memuaskan properti ini.

Ingatlah bahwa pengguna i malas-tapi-jujur jika (1) dia mengikuti semua instruksi yang ditentukan, kapan dia diminta untuk berpartisipasi dalam protokol, dan (2) dia diminta untuk berpartisipasi dalam protokol saja sangat jarang —misalnya, seminggu sekali— dengan pemberitahuan awal yang sesuai, dan berpotensi menerima penerimaan yang signifikan imbalan ketika dia berpartisipasi. Untuk mengizinkan Algorand bekerja dengan pemain seperti itu, cukup dengan “memilih pemverifikasi putaran saat ini di antara pengguna yang sudah berada dalam sistem pada putaran sebelumnya.” Memang benar, ingatlah itu pemverifikasi untuk putaran r dipilih dari pengguna pada putaran r −k, dan pemilihan dibuat berdasarkan pada kuantitas Qr−1. Perhatikan bahwa seminggu terdiri dari sekitar 10.000 menit, dan asumsikan bahwa a putaran memakan waktu kira-kira (misalnya, rata-rata) 5 menit, jadi dalam seminggu ada sekitar 2.000 putaran. Asumsikan bahwa, pada suatu saat, pengguna ingin merencanakan waktunya dan mengetahui apakah dia akan merencanakan waktunya pemverifikasi dalam minggu mendatang. Protokol sekarang memilih pemverifikasi untuk putaran r dari pengguna di putaran r −k −2.000, dan pilihannya didasarkan pada Qr−2.001. Pada ronde r, pemain yang sudah saya kenal nilai Qr−2,000, . . . , Qr−1, karena mereka sebenarnya adalah bagian dari blockchain. Kemudian, untuk setiap M antara 1 dan 2.000, i adalah pemverifikasi pada langkah s pada putaran r + M jika dan hanya jika .H SIGi r + M, s, Qr+M−2,001 \(\leq\)p. Jadi, untuk memeriksa apakah dia akan dipanggil untuk bertindak sebagai verifikator dalam 2.000 putaran berikutnya, saya harus hitung \(\sigma\)M,s saya = SIGi r + M, s, Qr+M−2,001 untuk M = 1 sampai 2.000 dan untuk setiap langkah s, dan periksa apakah .H(\(\sigma\)M,s saya ) \(\leq\)p untuk beberapa di antaranya. Jika penghitungan tanda tangan digital membutuhkan waktu satu milidetik, maka seluruh operasi ini akan memakan waktu sekitar 1 menit komputasi. Jika dia tidak terpilih sebagai verifikator di salah satu ronde ini, maka dia bisa offline dengan “hati nurani yang jujur”. Apakah dia terus menerus berpartisipasi, pada dasarnya dia akan mengambil 0 langkah dalam 2.000 putaran berikutnya! Sebaliknya, jika dia terpilih menjadi verifier di salah satu putaran ini, lalu dia mempersiapkan diri (misalnya, dengan mendapatkan semua informasi yang diperlukan) untuk bertindak sebagai verifikator yang jujur pada putaran yang tepat. Dengan bertindak demikian, calon verifikator yang malas tapi jujur hanya akan ketinggalan berpartisipasi dalam propagasi pesan. Namun penyebaran pesan biasanya kuat. Selain itu, pembayar dan penerima pembayaran pembayaran yang baru-baru ini disebarkan diharapkan online untuk melihat apa yang terjadi pada pembayaran mereka, dan dengan demikian mereka akan berpartisipasi dalam penyebaran pesan, jika mereka jujur.

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.

Protokol Algorand ′ dengan Mayoritas Uang yang Jujur

Kini, pada akhirnya, kami menunjukkan cara mengganti asumsi Mayoritas Pengguna yang Jujur dengan asumsi yang lebih banyak lagi asumsi Mayoritas Uang yang Jujur dan bermakna. Ide dasarnya adalah (dalam rasa proof-of-stake) “untuk memilih pengguna i \(\in\)PKr−k untuk menjadi anggota SV r,s dengan bobot (yaitu, kekuatan keputusan) sebanding dengan jumlah uang yang dimiliki oleh i.”24 Dengan asumsi HMM kita, kita dapat memilih apakah jumlah tersebut harus dimiliki pada putaran r −k atau di (awal) putaran r. Dengan asumsi bahwa kami tidak keberatan dengan partisipasi terus-menerus, kami memilih untuk ikut serta pilihan terakhir. (Untuk menghilangkan partisipasi yang berkelanjutan, kita akan memilih pilihan yang pertama. Lebih baik dikatakan, untuk jumlah uang yang dimiliki pada putaran r −k −2, 000.) Ada banyak cara untuk mengimplementasikan ide ini. Cara paling sederhana adalah dengan menahan setiap kunci paling banyak 1 satuan uang lalu pilih secara acak n pengguna i dari PKr−k sehingga a(r) saya = 1. 24Kita harus menyatakan PKr−k−2.000 untuk menggantikan partisipasi yang berkelanjutan. Untuk kesederhanaan, karena seseorang mungkin ingin membutuhkannya bagaimanapun, kita tetap menggunakan PKr−k seperti sebelumnya, sehingga mengurangi satu parameter.

Implementasi Paling Sederhana Berikutnya Implementasi paling sederhana berikutnya adalah dengan menuntut agar setiap kunci publik memiliki jumlah maksimum uang M, untuk beberapa M tetap. Nilai M cukup kecil dibandingkan dengan jumlah total uang dalam sistem, sedemikian rupa sehingga kemungkinan suatu kunci dimiliki oleh himpunan pemverifikasi lebih dari satu langkah dalam —katakanlah— k putaran dapat diabaikan. Kemudian, kunci i \(\in\)PKr−k, memiliki sejumlah uang a(r) saya pada putaran r, dipilih menjadi anggota SV r,s jika .H SIGi r, s, Qr−1 \(\leq\)p \(\cdot\) a(r) saya M . Dan semuanya berjalan seperti sebelumnya. Implementasi yang Lebih Kompleks Implementasi terakhir “memaksa peserta kaya dalam sistem untuk memiliki banyak kunci”. Implementasi alternatif, dijelaskan di bawah, menggeneralisasi pengertian status dan pertimbangan setiap pengguna i terdiri dari K + 1 salinan (i, v), yang masing-masing dipilih secara independen untuk menjadi pemverifikasi, dan akan memiliki kunci fananya sendiri (pkr,s saya,v,skr,s i,v) dalam satu langkah s pada putaran r. Nilai K tergantung pada jumlah uang a(r) saya dimiliki oleh i pada putaran r. Sekarang mari kita lihat bagaimana sistem tersebut bekerja secara lebih rinci. Jumlah Salinan Misalkan n adalah kardinalitas yang diharapkan dari masing-masing himpunan pemverifikasi, dan misalkan a(r) saya menjadi jumlah uang yang dimiliki oleh pengguna i pada putaran r. Misalkan Ar adalah jumlah uang yang dimiliki oleh pengguna di PKr−k pada putaran r, yaitu, Ar = X i\(\in\)P Kr−k sebuah (kanan) saya. Jika i adalah pengguna di PKr−k, maka salinan i adalah (i, 1), . . . , (i, K + 1), dimana K = $ n \(\cdot\) sebuah(r) saya Ar % . Contoh. Misal n = 1.000, Ar = 109, dan a(r) saya = 3,7 juta. Lalu, K = 103 \(\cdot\) (3,7 \(\cdot\) 106) 109  = ⌊3.7⌋= 3 . Verifikasi dan Kredensial Biarkan saya menjadi pengguna di PKr−k dengan K + 1 salinan. Untuk setiap v = 1, . . . , K, salin (i, v) milik SV r,s secara otomatis. Artinya, kredensial saya adalah \(\sigma\)r, s i,v \(\triangleq\)SIGi((i, v), r, s, Qr−1), namun kondisinya menjadi .H(\(\sigma\)r,s i,v) \(\leq\)1, yaitu selalu benar. Untuk salinan (i, K + 1), untuk setiap Langkah s pada putaran r, i memeriksa apakah .H SIGi (saya, K + 1), r, s, Qr−1 \(\leq\)a(r) saya n Ar −K .

Jika ya, salinan (i, K + 1) milik SV r,s. Untuk membuktikannya, saya menyebarkan kredensial \(\sigma\)r,1 saya,K+1 = SIGi (saya, K + 1), r, s, Qr−1 . Contoh. Seperti pada contoh sebelumnya, misalkan n = 1K, a(r) saya = 3,7M, Ar = 1B, dan i punya 4 salinan: (i, 1), . . . , (saya, 4). Kemudian, 3 salinan pertama menjadi milik SV r,s secara otomatis. Untuk yang ke 4, secara konseptual, Algorand ′ secara mandiri melempar koin yang bias, yang probabilitas Kepalanya adalah 0,7. Salin (i, 4) dipilih jika dan hanya jika pelemparan koin adalah Kepala. (Tentu saja, pelemparan koin yang bias ini diterapkan dengan hashing, menandatangani, dan membandingkan —seperti yang kita lakukan telah saya lakukan selama ini dalam makalah ini— sehingga memungkinkan saya membuktikan hasilnya.) Bisnis seperti Biasa Setelah menjelaskan bagaimana verifikator dipilih dan bagaimana kredensial mereka dihitung pada setiap langkah putaran r, pelaksanaan putaran serupa dengan yang telah dijelaskan.

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.

Menangani Fork

Setelah mengurangi kemungkinan percabangan menjadi 10−12 atau 10−18, hal ini praktis tidak perlu ditangani mereka dalam kemungkinan kecil hal itu terjadi. Algorand, bagaimanapun, juga dapat menggunakan berbagai fork prosedur penyelesaian, dengan atau tanpa bukti kerja. Salah satu cara yang mungkin untuk menginstruksikan pengguna untuk menyelesaikan percabangan adalah sebagai berikut: • Ikuti rantai terpanjang jika pengguna melihat beberapa rantai. • Jika terdapat lebih dari satu rantai terpanjang, ikuti rantai yang tidak ada blok kosong di ujungnya. Jika semuanya memiliki blok kosong di akhir, pertimbangkan blok kedua terakhirnya. • Jika terdapat lebih dari satu rantai terpanjang dengan blok-blok kosong di ujungnya, katakanlah rantai tersebut adalah dengan panjang r, ikuti salah satu yang pemimpin blok r mempunyai kredensial terkecil. Jika ada ikatan, ikuti yang blok rnya sendiri memiliki nilai hash terkecil. Jika masih ada ikatan, ikuti yang blok rnya diurutkan pertama secara leksikografis.

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.

Menangani Partisi Jaringan

Seperti yang dikatakan, kami berasumsi waktu propagasi pesan di antara semua pengguna di jaringan dibatasi oleh \(\lambda\) dan Λ. Ini bukanlah asumsi yang kuat, karena Internet saat ini cepat dan tangguh nilai sebenarnya dari parameter ini cukup masuk akal. Di sini, izinkan kami menunjukkan bahwa Algorand ′ 2 terus berfungsi meskipun Internet kadang-kadang dipartisi menjadi dua bagian. Kasus kapan Internet dipartisi menjadi lebih dari dua bagian serupa. 10.1 Partisi Fisik Pertama-tama, partisi tersebut mungkin disebabkan oleh alasan fisik. Misalnya, gempa bumi besar mungkin terjadi akhirnya memutuskan hubungan antara Eropa dan Amerika. Dalam hal ini, pengguna jahat juga dipartisi dan tidak ada komunikasi antara kedua bagian. Jadi

akan ada dua Musuh, satu untuk bagian 1 dan satu lagi untuk bagian 2. Masing-masing Musuh masih mencoba untuk melanggar protokol di bagiannya sendiri. Asumsikan partisi terjadi di tengah putaran r. Kemudian setiap pengguna masih dipilih sebagai a verifier berdasarkan PKr−k, dengan probabilitas yang sama seperti sebelumnya. Biarkan HSV r,s saya dan MSV r,s saya masing-masing jadilah himpunan pemverifikasi yang jujur dan jahat dalam langkah s di bagian i \(\in\){1, 2}. Kita punya |HSV r,s 1 | + |MSV r,s 1 | + |HSV r,s 2 | + |MSV r,s 2 | = |HSV r,s| + |MSV r,s|. Perhatikan bahwa |HSV r,s| + |MSV r,s| < |HSV r,s| + 2|MSV r,s| < 2tH dengan kemungkinan yang sangat besar. Jika beberapa bagian saya memiliki |HSV r,s saya | + |MSV r,s saya | \(\geq\)tH dengan probabilitas yang tidak dapat diabaikan, misalnya 1%, maka probabilitas bahwa |HSV r,s 3−i| + |MSV r,s 3−i| \(\geq\)tH sangat rendah, misalnya 10−16 ketika F = 10−18. Dalam hal ini, sebaiknya kita menganggap bagian yang lebih kecil saja tidak berfungsi, karena tidak akan ada cukup verifikasi yang masuk bagian ini untuk menghasilkan tanda tangan untuk mengesahkan suatu blok. Mari kita pertimbangkan bagian yang lebih besar, katakanlah bagian 1 tanpa kehilangan sifat umum. Meskipun |HSV r,s| < tH dengan probabilitas yang dapat diabaikan di setiap langkah s, ketika jaringan dipartisi, |HSV r,s 1 | mungkin kurang dari tH dengan probabilitas yang tidak dapat diabaikan. Dalam hal ini Musuh mungkin, dengan beberapa pihak probabilitas lain yang tidak dapat diabaikan, memaksa protokol biner BA menjadi percabangan pada putaran r, dengan blok kosong Br dan blok kosong Br ǫ keduanya mempunyai tanda tangan yang sah.25 Misalnya, pada a Langkah Koin-Tetap-Ke-0, semua verifier di HSV r,s 1 ditandatangani untuk bit 0 dan H(Br), dan menyebarkannya pesan. Semua pemverifikasi di MSV r,s 1 juga menandatangani 0 dan H(Br), tetapi menahan pesan mereka. Karena |HSV r,s 1 | + |MSV r,s 1 | \(\geq\)tH, sistem mempunyai cukup tanda tangan untuk mengesahkan Br. Namun, sejak itu pemverifikasi jahat menahan tanda tangan mereka, pengguna memasukkan langkah s + 1, yang merupakan langkah Coin-Fixed-To1. Karena |HSV r,s 1 | < tH karena partisi, pemverifikasi di HSV r,s+1 1 tidak melihat itu tanda tangan untuk bit 0 dan semuanya menandatangani untuk bit 1. Semua verifier di MSV r,s+1 1 melakukan hal yang sama. Karena |HSV r,s+1 1 | + |MSV r,s+1 1 | \(\geq\)tH, sistem mempunyai cukup tanda tangan untuk mengesahkan Br . Musuh kemudian membuat fork dengan melepaskan tanda tangan MSV r,s 1 untuk 0 dan H(Br). Oleh karena itu, akan ada dua Qr, yang ditentukan oleh blok-blok putaran r yang bersesuaian. Namun, percabangan tidak akan berlanjut dan hanya satu dari dua cabang yang dapat tumbuh pada putaran r + 1. Petunjuk Tambahan untuk Algorand ′ 2. Saat melihat blok Br yang tidak kosong dan kosong blok Br ǫ , ikuti yang tidak kosong (dan Qr yang ditentukan olehnya). Memang benar, dengan menginstruksikan pengguna untuk menggunakan blok yang tidak kosong dalam protokol, jika berukuran besar sejumlah pengguna jujur di PKr+1−k menyadari ada percabangan di awal putaran r +1, maka blok kosong tidak akan memiliki cukup pengikut dan tidak akan berkembang. Asumsikan Musuh berhasil melakukannya partisi pengguna yang jujur sehingga beberapa pengguna yang jujur melihat Br (dan mungkin Br ǫ), dan ada pula yang hanya melihat Sdr . Karena Musuh tidak bisa membedakan mana di antara mereka yang akan menjadi verifikasi setelah Br dan yang mana akan menjadi verifikator menyusul Sdr , pengguna yang jujur dipartisi secara acak dan masing-masing pengguna tetap menjadi verifikator (baik terhadap Br maupun terhadap Br ǫ) dalam satu langkah s > 1 dengan probabilitas hal. Untuk pengguna jahat, masing-masing dari mereka mungkin memiliki dua peluang untuk menjadi pemverifikasi, satu dengan Br dan satu lagi dengan Br ǫ, masing-masing dengan probabilitas p secara independen. Misalkan HSV r+1,s 1;Br jadilah himpunan verifikator yang jujur pada langkah s putaran r+1 setelah Br. Notasi lainnya seperti HSV r+1,s 1;Br, MSV r+1,s 1;Br dan MSV r+1,s 1;Br didefinisikan dengan cara yang sama. Dengan terikat Cherno, itu mudah 25Memiliki percabangan dengan dua blok yang tidak kosong tidak mungkin dilakukan dengan atau tanpa partisi, kecuali dengan partisi yang dapat diabaikan. kemungkinan.untuk melihatnya dengan kemungkinan yang sangat besar, |HSV r+1,s 1;Br | + |HSV r+1,s 1;Br| + |MSV r+1,s 1;Br | + |MSV r+1,s 1;Br| < 2tH. Oleh karena itu, kedua cabang tidak dapat memiliki tanda tangan yang tepat untuk mengesahkan blok untuk putaran r + 1 pada langkah yang sama s. Terlebih lagi, karena probabilitas seleksi untuk dua langkah s dan s′ adalah sama dan pilihannya independen, juga dengan kemungkinan yang sangat besar |HSV r+1,s 1;Br | + |MSV r+1,s 1;Br | + |HSV r+1,s′ 1;Br | + |MSV r+1,s′ 1;Br | < 2tH, untuk dua langkah s dan s′. Ketika F = 10−18, dengan ikatan gabungan, selama Musuh tidak bisa mempartisi pengguna yang jujur untuk waktu yang lama (katakanlah 104 langkah, yaitu lebih dari 55 jam dengan \(\lambda\) = 10 detik26), dengan probabilitas tinggi (katakanlah 1−10−10) paling banyak satu cabang akan memiliki tanda tangan yang tepat untuk mensertifikasi blok di putaran r + 1. Terakhir, jika partisi fisik telah membuat dua bagian dengan ukuran yang kira-kira sama, maka probabilitas bahwa |HSV r,s saya | + |MSV r,s saya | \(\geq\)tH kecil untuk setiap bagian i. Mengikuti analisis serupa, bahkan jika Musuh berhasil membuat percabangan dengan probabilitas yang tidak dapat diabaikan di setiap bagiannya untuk putaran r, paling banyak satu dari empat cabang dapat tumbuh pada putaran r + 1. 10.2 Partisi Musuh Kedua, partisi tersebut mungkin disebabkan oleh Musuh, sehingga pesan disebarkan oleh pengguna jujur di satu bagian tidak akan menjangkau pengguna jujur di bagian lain secara langsung, namun Musuh mampu meneruskan pesan antara dua bagian. Tetap saja, pernah ada pesan dari seseorang bagian mencapai pengguna yang jujur di bagian lain, itu akan disebarkan di pengguna yang jujur seperti biasa. Jika Musuh rela mengeluarkan banyak uang, bisa dibayangkan dia bisa meretasnya Internet dan partisi seperti ini untuk sementara waktu. Analisisnya mirip dengan bagian yang lebih besar pada partisi fisik di atas (yang lebih kecil bagian dapat dianggap memiliki populasi 0): Musuh mungkin dapat membuat garpu dan setiap pengguna yang jujur hanya melihat satu cabang, tetapi paling banyak satu cabang dapat tumbuh. 10.3 Partisi Jaringan dalam Jumlah Meskipun partisi jaringan dapat terjadi dan percabangan dalam satu putaran dapat terjadi di bawah partisi, namun demikian tidak ada ambiguitas yang tersisa: sebuah garpu berumur sangat pendek, dan pada kenyataannya hanya bertahan paling banyak satu putaran. Di semua bagian partisi kecuali paling banyak satu, pengguna tidak dapat membuat blok baru dan karenanya (a) menyadari adanya partisi dalam jaringan dan (b) jangan pernah mengandalkan blok yang akan “hilang”. Ucapan Terima Kasih Pertama-tama kami ingin mengucapkan terima kasih kepada Sergey Gorbunov, salah satu penulis sistem Democoin yang dikutip. Terima kasih yang paling tulus kami sampaikan kepada Maurice Herlihy, atas banyak diskusi yang mencerahkan, atas petunjuknya mengetahui bahwa pipeline akan meningkatkan kinerja throughput Algorand, dan untuk meningkatkan secara signifikan 26Perhatikan bahwa pengguna menyelesaikan langkah tanpa menunggu 2\(\lambda\) waktu hanya jika dia telah melihat setidaknya tanda tangan untuk pesan yang sama. Jika tanda tangan tidak mencukupi, setiap langkah akan berlangsung selama 2\(\lambda\) kali.

eksposisi versi sebelumnya dari makalah ini. Terima kasih banyak kepada Sergio Rajsbaum, atas komentarnya versi sebelumnya dari makalah ini. Terima kasih banyak kepada Vinod Vaikuntanathan, atas beberapa diskusi mendalam dan wawasan. Terima kasih banyak kepada Yossi Gilad, Rotem Hamo, Georgios Vlachos, dan Nickolai Zeldovich untuk mulai menguji ide-ide ini, dan untuk banyak komentar dan diskusi yang bermanfaat. Silvio Micali secara pribadi ingin mengucapkan terima kasih kepada Ron Rivest atas diskusi dan bimbingannya yang tak terhitung jumlahnya dalam penelitian kriptografi selama lebih dari 3 dekade, karena ikut menulis sistem pembayaran mikro yang dikutip yang menginspirasi salah satu mekanisme seleksi verifikator Algorand. Kami berharap dapat membawa teknologi ini ke tingkat berikutnya. Sementara itu perjalanan dan persahabatan sangat menyenangkan, dan kami sangat berterima kasih.