Xin chân thành cảm ơn Barnabé , Luca , Dankrad và Francesco vì đã cùng nhau thảo luận và đóng góp ý kiến, đặc biệt là Luca vì đã giới thiệu cho tôi một bài báo quan trọng và Dankrad vì đã giúp đỡ tôi với HoneyBadger.
I. TƯ DUY ĐẰNG SAU DỰ ÁN NÀY VÀ THẢO LUẬN VỀ “KHÔNG CÓ LÃNH ĐẠO”
A. Các giao thức đồng thuận có người lãnh đạo so với các giao thức đồng thuận không có người lãnh đạo
B. Những điều cần cân nhắc khi hoạt động “không có người lãnh đạo”
II. KẾT QUẢ NGHIÊN CỨU — NHỮNG MỐC QUAN TRỌNG
A. Cột mốc I
B. Điểm chung về thuật toán
1. Ví dụ (1): Đồng thuận Byzantine nhị phân không đồng bộ không cần chữ ký với t < n/3, O(n²) tin nhắn và thời gian dự kiến O(1)
2. Ví dụ (2): Con lửng mật ong của BFTs
B. Nguyên tắc/Các yếu tố cấu thành nên giao thức đồng thuận không cần người lãnh đạo
1. Phát sóng đáng tin cậy
2. Thỏa thuận Byzantine nhị phân
3. Đồng xu chung được dùng làm yếu tố quyết định trong trường hợp hòa
4. Việc “ bắt buộc” đưa vào các “khối nhỏ” hoặc các bộ giao dịch nhỏ (các đề xuất đa/nhất trí)
D. Phân tích thuộc tính
E. Cột mốc II — Triển khai và những cân nhắc thực tiễn
III. NHỮNG BƯỚC TIẾP THEO
A. Động lực hình thành Ethereum
IV. TÀI LIỆU THAM KHẢO
I. TƯ DUY ĐẰNG SAU DỰ ÁN NÀY VÀ THẢO LUẬN VỀ “KHÔNG CÓ LÃNH ĐẠO”
Khi tôi bắt đầu hành trình khám phá – hay chính xác hơn là tái khám phá – những nguyên tắc cơ bản đằng sau các giao thức đồng thuận mạng phi tập trung, có hai loại động lực. Loại thứ nhất đến từ những câu hỏi ngây thơ về cách tiếp cận tốt nhất đối với kiến trúc và thiết kế blockchain. Ví dụ, làm thế nào để hệ thống trở nên dân chủ và dễ tiếp cận hơn với càng nhiều người càng tốt, với yêu cầu phần cứng thấp nhất có thể; một kiểu suy nghĩ thể hiện lý do tư tưởng khiến nhiều người trong chúng ta tham gia vào ngành công nghiệp blockchain ngay từ đầu. Luôn có một niềm tin chân thành rằng blockchain sẽ mang lại sự cởi mở, minh bạch và riêng tư cùng một lúc, cách mạng hóa ngành công nghệ; rằng bản thân blockchain là sự kết hợp của những phẩm chất này, hòa quyện với nhau để tạo thành một mô hình mới trong công nghệ, sẽ tiếp tục thúc đẩy những giá trị đó thông qua sự phát triển của chính nó. Loại động lực thứ hai xuất phát từ sự tò mò thuần túy về việc liệu các giao thức đồng thuận do người lãnh đạo dẫn dắt có trở thành tiêu chuẩn ngành hay không là do hiệu ứng mạng lưới nào đó đã tạo nên sự phổ biến của chúng; hay chỉ đơn giản là sự thật rằng các cơ chế đồng thuận không có người lãnh đạo không thể cạnh tranh một cách có ý nghĩa về hiệu suất.
Bên cạnh những mối quan tâm cá nhân này, năm 2024 chúng ta cũng chứng kiến sự gia tăng mối quan tâm của công chúng từ các nhà nghiên cứu blockchain đối với các thuật toán không người dẫn đầu. Paradigm đã đưa ra đề xuất đấu giá không người dẫn đầu, Sreeram từ Eigenlayer đã đồng tác giả một bài báo cho BigDipper, trong đó đề cập đến một loại lược đồ đa người đề xuất, và Max Resnick, cựu thành viên SMG, đã suy nghĩ về BRAID — một kiến trúc đa chuỗi tiềm năng (một dạng đa người đề xuất) cho Ethereum.
Nghiên cứu về các giao thức đồng thuận không có người lãnh đạo hiện nay càng trở nên quan trọng hơn bao giờ hết; nhưng trước khi thảo luận về các đề xuất phản hồi cho những câu hỏi này, chúng ta hãy làm rõ ý nghĩa của một “giao thức đồng thuận thực sự không có người lãnh đạo”.
A. Các giao thức đồng thuận có người lãnh đạo so với các giao thức đồng thuận không có người lãnh đạo
Mặc dù các giao thức đồng thuận có người dẫn dắt và không có người dẫn dắt tồn tại trên cùng một phổ ở hai đầu đối lập của chúng, nhưng việc định nghĩa giao thức có người dẫn dắt dễ dàng hơn nhiều so với việc định nghĩa giao thức không có người dẫn dắt. Thuật toán có người dẫn dắt đề cập đến một giao thức trong đó một người tổ chức trung tâm điều khiển tiến trình của giao thức, chẳng hạn như điều phối các vòng giao tiếp hoặc là người ra quyết định trong một vòng. Trong hầu hết các giao thức đồng thuận có người dẫn dắt cổ điển, người dẫn dắt thường có nghĩa là một loại tiến trình đơn lẻ được chỉ định, bầu chọn hoặc được chọn trước (ví dụ: người tham gia nút, bản sao) thu thập thông điệp từ các tiến trình khác hoặc đưa ra đề xuất cho toàn bộ giao thức (thường chỉ trong một vòng và điều này không ngăn cản nó trở thành người dẫn dắt một lần nữa).
BFT do người lãnh đạo dẫn dắt có hiệu quả theo hai cách sau: (1) người lãnh đạo đóng vai trò là điều phối viên tập trung trong việc thu thập các thông điệp giao thức (tất cả-đến-một) thay vì kịch bản xấu nhất (tất cả-đến-tất cả), do đó làm giảm đáng kể độ phức tạp của giao tiếp; (2) một quy trình duy nhất đưa ra đề xuất hợp lệ hiệu quả hơn nhiều quy trình đưa ra nhiều đề xuất vì nó loại bỏ các vòng mà các quy trình phải truyền đạt các đề xuất khác nhau và tìm cách chọn rồi đồng ý với đề xuất “tốt nhất”.
Những điểm yếu lớn nhất của các giao thức do người lãnh đạo dẫn dắt là tính dễ bị mua chuộc và các cuộc tấn công DDOS có chủ đích (vì người lãnh đạo rõ ràng được biết đến công khai trên mạng). Các thuật toán không có người lãnh đạo mạnh mẽ hơn các thuật toán do người lãnh đạo dẫn dắt vì (1) chúng được thiết kế để hoạt động trong điều kiện bất đồng bộ; điều này ngụ ý (2) chúng không dễ bị tổn thương hoặc tiếp xúc với một quy trình duy nhất có thể ảnh hưởng đến toàn bộ mạng vì chúng có thể chịu được các thành viên tham gia không phản hồi. Đồng thời, các giao thức không có người lãnh đạo bất đồng bộ gặp khó khăn với độ trễ và thông lượng khi giao thức vượt quá hàng trăm quy trình.
Việc định nghĩa hoặc giải thích khái niệm "không người lãnh đạo" khó hơn vì bản thân khái niệm này khá mơ hồ; theo một cách nào đó, nó thiên về việc nó KHÔNG phải là gì hơn là nó là gì. Một số người định nghĩa các giao thức không người lãnh đạo là giao thức mà việc dừng bất kỳ quy trình nào cũng không cản trở tiến trình của toàn bộ giao thức. Chúng ta cũng có thể sử dụng cách hiểu rộng hơn về "không người lãnh đạo", đó là các vòng không bị chi phối bởi bất kỳ quy trình nào và điều này càng đúng thì giao thức càng "không người lãnh đạo". Nó cũng có thể được xem là việc xây dựng sự đồng thuận càng mang tính hợp tác thì giao thức càng "không người lãnh đạo". Dưới đây là ba ví dụ về các giao thức đồng thuận không người lãnh đạo và vị trí của chúng trên phổ này (từ ít "không người lãnh đạo" nhất đến nhiều "không người lãnh đạo" nhất):
BFT Dân chủ (DBFT): DBFT cho phép tất cả các quy trình đưa ra và nhận các đề xuất nhị phân với sự trợ giúp của một điều phối viên "yếu"; trớ trêu thay, đây lại là ví dụ kém dân chủ nhất trong ba ví dụ này ;
Mir: một giao thức đa đề xuất trong đó nhiều người lãnh đạo đưa ra đề xuất song song với nhau (không xung đột); đây là giải pháp trung dung .
HoneyBadger BFT: các tiến trình liên tục nhận các giao dịch và trong mỗi kỷ nguyên sẽ đề xuất một tập hợp con các giao dịch này để đưa vào đề xuất khối cuối cùng; tất cả các tập hợp giao dịch phải được bao gồm trong đề xuất cuối cùng để được chấp thuận; đây là một hình thức xây dựng khối đồng thuận mang tính hợp tác cao và là hình thức gần nhất trong ba hình thức này với khía cạnh "dân chủ" thuần túy của mô hình không có người lãnh đạo .
Chúng ta có thể tạm dừng ở đây và suy ngẫm xem liệu việc xây dựng khối hợp tác có phải là "dân chủ nhất trong tất cả" hay không? Nếu chúng ta nghĩ về ý nghĩa của dân chủ trong bối cảnh blockchain, chúng ta có thể hiểu rằng số lượng người tham gia tối đa đều có ít nhất quyền quyết định ngang nhau về việc đề xuất nào được chọn. Điều này có thể áp dụng cho cả các đề xuất được đưa ra/xem xét và tất nhiên là đề xuất nào được chọn để thêm vào. Trong thiết kế có người lãnh đạo, điều này có thể được thực hiện thông qua các cơ chế như lựa chọn người lãnh đạo ngẫu nhiên, ủy quyền bỏ phiếu của người tham gia đồng thuận hoặc bỏ phiếu có trọng số (ví dụ: cổ phần kinh tế càng lớn, càng có nhiều cơ hội trở thành người đề xuất khối và quyết định khối tiếp theo). Điều này có thể được đối chiếu với các giao thức đồng thuận không có người lãnh đạo, về bản chất phù hợp với các nguyên tắc như "dân chủ cho tất cả" vì các thiết kế này có thể hướng tới sự bình đẳng tối đa giữa tất cả các quy trình riêng lẻ, với sự thỏa hiệp tối thiểu về các chỉ số hiệu suất như độ phức tạp và độ trễ giao tiếp, v.v.
Trong một cuộc trò chuyện bên lề, một câu hỏi thường xuyên được đặt ra là liệu giao thức đồng thuận Nakamoto mà Bitcoin sử dụng có được coi là không có người lãnh đạo hay không. Không cần phải nói thẳng ra, câu trả lời là tôi nghĩ là không. Về mặt triết học, câu hỏi này có thể được xem xét từ hai khía cạnh chính. (1) Đồng thuận Nakamoto chia sẻ một số đặc tính giống với cơ chế không có người lãnh đạo nhưng kết quả của nó không giống như vậy; ý tôi là nó đạt được điều mà chúng ta có thể gọi là “dân chủ dựa trên cơ hội”, được định nghĩa ở đây là: mọi tiến trình đều có cơ hội ngang nhau để “thắng” khối và có tiếng nói (bỏ qua chi phí ngày càng tăng của các yêu cầu phần cứng), nhưng điều quan trọng là phải xem xét điều đó; (2) chỉ có một “người thắng cuộc” cho mỗi vòng và người thắng cuộc đó “quyết định” toàn bộ khối giao dịch. Về cơ bản, mỗi tiến trình đều có cơ hội để có tiếng nói nhưng cuối cùng chỉ có một tiến trình có tiếng nói. Thêm vào đó, thực tế là với yêu cầu/đầu tư về thiết bị khai thác ở giai đoạn này, ngay cả khi người tham gia tham gia thông qua các nhóm khai thác, thì về mặt thực tiễn, giao thức này dường như không còn thực sự dân chủ nữa vì giá cả quá cao khiến hầu hết mọi người/người mới tham gia không thể tiếp cận. Điều đáng chú ý ở đây là Ethereum hiện cũng đang vướng vào một cuộc tranh luận về đạo đức xoay quanh việc ưu tiên những người khai thác cá nhân hoặc có vốn đầu tư thấp, điều này quay trở lại nguyên tắc dân chủ so với hiệu quả và "tiến bộ". Tuy nhiên, cuộc tranh luận này nằm ngoài phạm vi của báo cáo này.
Giờ đây, chúng ta tiếp tục so sánh hai loại giao thức đồng thuận — không có người lãnh đạo và có người lãnh đạo — dưới một câu hỏi cơ bản khác: liệu có giới hạn nào về hiệu quả của một giao thức không có người lãnh đạo, đặc biệt là so với các giao thức có người lãnh đạo? Câu hỏi đặt ra là, ngay cả khi các thuật toán đồng thuận BFT không có người lãnh đạo được ưa chuộng hơn về mặt lý thuyết, liệu chúng có thể được thiết kế theo cách hiệu quả tối thiểu và thực tế tương đương, nếu không muốn nói là hiệu quả hơn, so với các giao thức có người lãnh đạo (dựa trên tính khả thi trong triển khai hay lý thuyết) hay không?
Xét về mặt lịch sử, hướng nghiên cứu này hầu như chưa được khám phá hoặc khám phá rất ít. Phần lớn lý do chính khiến các giao thức đồng thuận do người lãnh đạo dẫn dắt trở nên phổ biến là vì chúng dễ thiết kế hơn và hoạt động tốt với hầu hết các giao thức blockchain đang được sử dụng hiện nay. Trong mô hình hiện tại, người dùng và các nhà thiết kế giao thức tự động cam kết với kiểu dân chủ mà chúng ta trải nghiệm với cơ chế đồng thuận Nakamoto — nơi chúng ta tập trung nỗ lực vào quá trình dân chủ để trở thành người lãnh đạo, mà bỏ qua một quá trình xây dựng khối thực sự dân chủ và hợp tác hơn, nơi tất cả những người tham gia cùng quyết định một khối.
B. Những điều cần cân nhắc khi hoạt động “không có người lãnh đạo”
Vậy tại sao việc xem xét lại các giao thức đồng thuận, và cụ thể hơn là hướng tới các giao thức đồng thuận không có người lãnh đạo (hoặc ít nhất là chuyển đổi khỏi các giao thức có người lãnh đạo), lại quan trọng đối với ngành công nghiệp của chúng ta ngay lúc này? Bên cạnh thực tế là một giao thức đồng thuận thực sự không có người lãnh đạo sẽ thúc đẩy các đặc tính lý tưởng mà blockchain luôn hướng tới; nó có thể là một yếu tố thay đổi cuộc chơi thú vị đối với một giao thức như Ethereum để giảm thiểu hoặc khắc phục hoàn toàn (cụ thể là làm cho một số vấn đề trở nên không liên quan hoặc không phải là vấn đề) nhằm cân bằng lại các sự đánh đổi hiện có mà lớp L1 đang gặp phải. Trong bối cảnh của Ethereum nói riêng, chúng ta có thể tìm thấy những cơ hội và đặc tính mong muốn và có lợi với một lớp đồng thuận không có người lãnh đạo giúp giảm thiểu các vấn đề xung quanh các trò chơi thời gian và làm cho các chủ đề khác như sự tách biệt giữa người đề xuất và người xây dựng biến mất, do đó chấm dứt "sự độc quyền của người đề xuất". Hơn nữa, một giao thức đồng thuận không có người lãnh đạo cung cấp khả năng chống kiểm duyệt và chống MEV theo mặc định nhờ bản chất hợp tác toàn diện và các yêu cầu đối với việc xây dựng khối không có người lãnh đạo.
Chúng ta kết thúc cuộc thảo luận này bằng một lưu ý về suy nghĩ sâu sắc hơn về sự đồng thuận nằm ở đâu đó giữa các lập luận về ý thức hệ và lập luận về hiệu quả. Chúng ta cần phải nhận thức rõ ràng ở đây rằng sự đồng thuận là vô cùng quan trọng đối với ngành công nghiệp trên cả hai mặt (ý thức hệ và hiệu quả) bởi vì blockchain chính là sự đồng thuận. Nếu sự đồng thuận quyết định "sự thật" của chuỗi là gì và chuỗi nào là hợp lệ hoặc chuẩn mực, thì chúng ta muốn đảm bảo rằng những quyết định này được đưa ra một cách trung thực và chính xác nhất có thể và vì lợi ích (lớn hơn) của cộng đồng. Do đó, cách thức đưa ra các quyết định đồng thuận phải công bằng, bình đẳng và được thực hiện với thiện chí. Mục đích của báo cáo này không phải là đi sâu vào quá trình tư duy triết học và cố gắng biện minh cho cách thức quản trị blockchain, nhưng chúng ta hiện tại muốn nêu ra rằng có thể có cách tiếp cận khác đối với lập trình đồng thuận và các thuật toán đồng thuận không có người lãnh đạo có thể là lựa chọn tốt nhất.
Vậy nên, với chuyến tham quan ngắn gọn này về lý do tại sao việc khám phá và thậm chí chấp nhận các giao thức đồng thuận không có người lãnh đạo lại quan trọng, chúng ta hãy cùng xem xét một vài phát hiện thú vị hơn từ các nghiên cứu hiện có và các nguyên tắc liên quan. Những phát hiện này sẽ giúp chúng ta thiết lập nền tảng để trước tiên trả lời câu hỏi liệu một giao thức đồng thuận không có người lãnh đạo có đủ hiệu quả hay không, và thứ hai, cung cấp cho chúng ta các khối xây dựng để bắt đầu suy nghĩ về một thiết kế tương thích với Ethereum.
III. KẾT QUẢ NGHIÊN CỨU — NHỮNG MỐC QUAN TRỌNG
A. Mốc quan trọng I: Xem xét toàn diện các tài liệu BFT có liên quan (bao gồm cả các tài liệu BFT bất đồng bộ có liên quan). Xem xét bất kỳ khái niệm tính toán thú vị nào có thể liên quan và hữu ích cho các giao thức không cần người dẫn đầu.
Phần này đề cập đến Cột mốc I. Đối với bài tập nghiên cứu chuyên sâu này, tôi đã xem xét hơn 40 ấn phẩm về các giao thức đồng thuận ( vui lòng tham khảo Phụ lục ở cuối báo cáo này để biết danh sách các tài liệu tham khảo liên quan nhất) . Các bài báo về thuật toán đồng thuận không có người dẫn đầu được đọc theo trình tự thời gian để hiểu được cách tư duy lý thuyết đằng sau chúng có thể được xây dựng dựa trên nhau như thế nào. Thật vậy, sự trùng lặp về chủ đề trong quá trình tư duy và những điểm tương đồng rõ ràng giữa các thuật toán đã được quan sát thấy, đặc biệt là khi nói đến các khối xây dựng cụ thể được sử dụng.
B. Điểm chung về thuật toán
Các thuật toán đồng thuận không người lãnh đạo đầy hứa hẹn hơn có những điểm chung rõ ràng và nằm trong số những nghiên cứu ban đầu về đồng thuận không người lãnh đạo. Trên thực tế, các thành phần được sử dụng trong bài báo năm 2015 có tiêu đề “Đồng thuận Byzantine nhị phân bất đồng bộ không cần chữ ký với t < n/3, O(n²) tin nhắn và thời gian dự kiến O(1)” đã trình bày các khối xây dựng nền tảng mà hầu hết các nghiên cứu đồng thuận có người lãnh đạo sau này đều sử dụng. Để chuẩn bị cho việc phân tích các thành phần này, chúng tôi sẽ phân tích bằng ngôn ngữ đơn giản cấu trúc của hai giao thức không người lãnh đạo quan trọng minh họa cho việc sử dụng chúng.
1. Ví dụ (1): Đồng thuận Byzantine nhị phân không đồng bộ không cần chữ ký với t < n/3, O(n²) tin nhắn và thời gian dự kiến O(1)
Giao thức đồng thuận này sử dụng Thỏa thuận Byzantine nhị phân. Mỗi tiến trình đề xuất một giá trị nhị phân (0 hoặc 1). Thuật toán phân tán đạt được sự đồng thuận về một giá trị nhị phân duy nhất, sao cho:
1. Tất cả các quy trình trung thực đều cho ra cùng một giá trị;
2. Giá trị đã được thỏa thuận được đề xuất thông qua ít nhất một quy trình trung thực.
Giao thức này xây dựng "Thỏa thuận Byzantine nhị phân" (DSBV) như sau: mỗi tiến trình bắt đầu bằng cách đặt ước tính của mình thành giá trị được đề xuất cục bộ; sau đó thuật toán chạy lặp đi lặp lại các phiên bản của DSBV (được giải thích bên dưới) cho đến khi một giá trị duy nhất xuất hiện, thay thế ước tính cục bộ bằng giá trị ngẫu nhiên từ đồng xu chung bất cứ khi nào một tiến trình gặp phải giá trị chưa được quyết định hoặc giá trị mặc định.
Để đạt được điều này, bài báo xây dựng một bộ thuật toán phân tán ngày càng mạnh hơn:
Phát sóng Giá trị nhị phân (BV): mỗi tiến trình phát sóng giá trị đề xuất của nó.
Nếu một tiến trình nhận được một thông điệp nhất định từ ít nhất t+1 tiến trình khác, nó sẽ phát sóng thông điệp này đến tất cả các tiến trình;
Nếu một tiến trình nhận được một thông báo nhất định từ ít nhất 2t+1 tiến trình khác, nó sẽ cộng giá trị của thông báo đó vào đầu ra.
Giải thích trực quan: Các thông báo chỉ có trong hệ thống Byzantine được lọc bỏ vì chỉ những thông báo được nhận bởi 2t+1 (tỷ lệ tối thiểu các tiến trình cần thiết để đảm bảo số lượng tiến trình trung thực nhiều hơn tiến trình độc hại) mới được BV xuất ra.
Tuy nhiên, nó chưa phải là thuật toán đồng thuận vì nó có thể xuất ra cả hai giá trị và cũng không có điểm kết thúc.
Phát sóng giá trị nhị phân đồng bộ/mạnh (SBV): Thuật toán này mở rộng BV bằng cách cung cấp đầu ra và kết thúc. Tuy nhiên, nó không đủ mạnh để cung cấp sự đồng thuận nhị phân hoàn toàn, vì nó có thể xuất ra một giá trị duy nhất hoặc một tập hợp cả hai giá trị cùng một lúc; tuy nhiên, điều kiện là tất cả các tiến trình xuất ra một giá trị duy nhất khi kết thúc đều xuất ra cùng một giá trị. Việc triển khai sử dụng hai lần gọi liên tiếp của phát sóng BV.
Phát sóng Giá trị nhị phân đồng bộ kép (DSBV): Đây là một bước cải tiến của SBV. Khi một tiến trình xuất ra cả hai giá trị, nó sẽ được thay thế bằng một giá trị mặc định; tuy nhiên, nó vẫn có thể xuất ra hai giá trị (trong trường hợp này là một trong các giá trị nhị phân cộng với giá trị mặc định), nhưng không bao giờ xuất ra cả hai giá trị nhị phân. Nó được thực hiện bằng hai lần gọi SBV liên tiếp.
Trong trường hợp một số quy trình không thể đưa ra quyết định, có thể sử dụng một đồng xu chung yếu. Đồng xu chung là một công cụ dự đoán ngẫu nhiên mà tất cả người tham gia đều có thể quan sát được nhưng đối thủ không thể dự đoán được (điều này đòi hỏi giá trị của đồng xu chung không thể có sẵn cho đến khi ít nhất một quy trình trung thực yêu cầu nó). Hầu hết các bài báo đều tham khảo "Các tướng lĩnh Byzantine ngẫu nhiên" của Rabin như là khung lý thuyết về Đồng xu chung.
2. Ví dụ (2): Con lửng mật ong của BFTs
HoneyBadger sử dụng multicast CKPS01, một phương pháp rút gọn từ ACS (được định nghĩa sau) thành Reliable Broadcast và Asynchronous Binary Byzantine Agreement (ABA). HoneyBadger bắt đầu bằng việc nhận thấy rằng cơ chế Asynchronous Common Subset (ACS) được giới thiệu trong CKPS01 cho phép xây dựng một hệ thống xử lý giao dịch không cần người dẫn đầu (tức là blockchain) bằng cách cho phép các tiến trình đề xuất các giao dịch để đưa vào các khối. Tuy nhiên, việc triển khai trong CKPS01 quá kém hiệu quả và HoneyBadger tiếp tục bằng cách triển khai một cơ chế ACS mới bằng cách kết hợp Reliable Broadcast với Asynchronous Binary Byzantine Agreement (ABA) thành một hệ thống ACS hiệu quả hơn.
Mỗi tiến trình sử dụng Phát sóng Nguyên tử từ ACS để đề xuất B/N (B trong tổng số tiến trình trong Mạng) giao dịch từ hàng đợi của nó. Các tiến trình đề xuất các giao dịch được chọn ngẫu nhiên từ B giao dịch đầu tiên (FIFO) trong mỗi hàng đợi. Ý tưởng: điều này thúc đẩy việc kết hợp hầu hết các giao dịch khác nhau. Các tập con giao dịch này được mã hóa và chỉ được giải mã sau khi ACS hoàn tất. Ý tưởng: bằng cách chỉ giải mã sau khi ACS hoàn tất và sử dụng lược đồ mã hóa ngưỡng được quy định (TPKE); tập hợp được xác định trước khi kẻ thù có thể biết nội dung của bất kỳ đề xuất nào, tức là khi ít nhất một tiến trình trung thực đã tiết lộ phần giải mã của nó.
N tiến trình sử dụng Thỏa thuận Byzantine nhị phân để thống nhất về vectơ các giá trị được đề xuất được xác nhận là có trong tập hợp cuối cùng. Trực giác: các tiến trình có thể quan sát thấy các bản phát sóng hoàn thành theo thứ tự khác nhau nên chúng không đề xuất giá trị âm (tức là 0) cho đến khi chúng chắc chắn rằng vectơ cuối cùng sẽ có ít nhất Nf bit dương (1).
C. Nguyên tắc/Các yếu tố cấu thành nên giao thức đồng thuận không cần người lãnh đạo
1. Phát sóng đáng tin cậy
Khái niệm Phát sóng Đáng tin cậy ban đầu được cho là do Gabriel Bracha và Sam Toueg đề xuất trong cuốn sách “Giao thức Đồng thuận Bất đồng bộ và Phát sóng”. Phát sóng Đáng tin cậy phải đáp ứng ít nhất các điều kiện cần thiết về tính hợp lệ, sự đồng thuận và tính toàn vẹn như sau:
Tính hợp lệ: Nếu một quy trình chính xác xuất ra một tập hợp v, thì |v| >= Nf và v chứa đầu vào của ít nhất N — 2f quy trình chính xác;
Thỏa thuận: Nếu một quy trình chính xác cho ra kết quả v, thì mọi quy trình khác cũng cho ra kết quả v;
Tính toàn thể: Nếu Nf tiến trình đúng nhận được đầu vào, thì tất cả các tiến trình đúng đều tạo ra đầu ra.
2. Thỏa thuận Byzantine nhị phân*
*Thỏa thuận Byzantine nhị phân có thể được sửa đổi để phù hợp với nhiều giá trị.
Thuật toán phải có khả năng giải quyết sự đồng thuận trong các hệ thống mà các quy trình có thể thất bại theo kiểu Byzantine — hay do hành vi độc hại — (ví dụ, do tác nhân Byzantine). Để giải quyết thành công vấn đề này, các điều kiện sau phải được đáp ứng:
Tính hợp lệ: Một giá trị đã được quyết định được đề xuất bởi một quy trình chính xác (không có giá trị nào được đề xuất chỉ bởi các quy trình sai sót có thể được coi là đã được quyết định);
Thỏa thuận: Không có hai quy trình đúng nào lại cho ra các giá trị khác nhau;
Quyết định: Mỗi quy trình đúng đắn đều đưa ra quyết định.
Nhân đây, một nguyên tắc cơ bản tương tự cũng đôi khi được sử dụng trong các giao thức đồng thuận không có người lãnh đạo là Phân tán Thông tin Có thể Kiểm chứng Bất đồng bộ (AVID-FP). Khái niệm này được trình bày trong bài báo năm 2004 có tựa đề “Phân tán Thông tin Có thể Kiểm chứng Bất đồng bộ” của Christian Cachin và Stefano Tessaro. Phương pháp này kết hợp một giao thức phát sóng đáng tin cậy với mã hóa xóa để đạt được khả năng kiểm chứng cho các mạng phân tán thông tin trong môi trường bất đồng bộ, đồng thời có khả năng chống lại lỗi Byzantine một cách tối ưu.
3. Đồng xu chung được dùng làm yếu tố quyết định trong trường hợp hòa
Trong trường hợp kết quả giao thức không rõ ràng và không đạt được thỏa thuận, một oracle tạo ra tính ngẫu nhiên sẽ được sử dụng. Các đồng tiền chung có thể yếu hoặc mạnh và mục đích của nó là giải quyết sự mơ hồ/bế tắc vào cuối quy trình chính.
4. Việc “ bắt buộc” đưa vào các “khối nhỏ” hoặc các bộ giao dịch nhỏ (các đề xuất đa/nhất trí)
Một số giao thức đồng thuận không có người lãnh đạo như HoneyBadger, BigDipper và Mir thực thi sự đồng thuận không có người lãnh đạo hiệu quả bằng cách chứa một yêu cầu giao thức rằng tất cả những người lãnh đạo (hoặc tất cả các tiến trình hoặc một tập hợp con nhất định của các tiến trình) phải đề xuất ít nhất một phần các tập hợp giao dịch của vòng đó. Sau đó, các giao dịch này phải được đưa vào đề xuất khối cuối cùng.
D. Phân tích thuộc tính
Dưới đây là những đặc điểm/giả định phổ biến mà chúng ta thường thấy trong các thiết kế giao thức đồng thuận không có người lãnh đạo.
Khả năng phục hồi tối ưu: yêu cầu n >= 3f+1 để chịu đựng f quy trình Byzantine hoặc lỗi.
Sự phức tạp của giao tiếp toàn diện.
Hoạt động trong môi trường mạng không đồng bộ hoặc đồng bộ một phần (tức là đồng bộ một phần).
Có tính xác định; điều đáng lưu ý là không có giao thức đồng thuận bất đồng bộ nào có tính xác định có thể chịu đựng được dù chỉ một lỗi không phải lỗi Byzantine; trong môi trường không xác định, giao thức không thể chịu đựng được nhiều hơn N/3 tiến trình không trung thực.
Không cần chữ ký: nhiều thuật toán đồng thuận không có người dẫn đầu là không cần chữ ký, điều này có thể thực hiện được nhờ các kênh giao tiếp trực tiếp giữa tất cả các tiến trình theo cách toàn diện. Các tiến trình phải được phép có một mức độ riêng tư nhất định trong giao tiếp giữa các tiến trình để có thể đạt được sự đồng thuận một cách an toàn (trong bối cảnh của các tác nhân Byzantine).
Mã hóa ngưỡng: giúp đảm bảo nội dung của một đề xuất được giữ bí mật khỏi các tác nhân Byzantine (ví dụ: những người đang cố gắng sắp xếp lại hoặc kiểm duyệt các giao dịch) trước khi đạt được sự đồng thuận.
Một câu hỏi quan trọng và thú vị cần được xem xét ở thời điểm này là liệu bất kỳ thuộc tính nào trong số này có phải là đặc tính tất yếu của một giao thức đồng thuận không có người lãnh đạo hay không. Câu trả lời là không có thuộc tính nào trong số này là quy tắc bất biến hoặc phải tuân theo về mặt logic — theo nghĩa là, về mặt lý thuyết, một giao thức đồng thuận không có người lãnh đạo không thể tồn tại trừ khi nó tuân thủ bất kỳ thuộc tính nào trong số này. Với sự tự do này, chúng ta có thể tiến lên phía trước mà không bị ràng buộc bởi những quy tắc như vậy trong thiết kế một giao thức đồng thuận không có người lãnh đạo tương thích với Ethereum.
E. Cột mốc II — Triển khai và những cân nhắc thực tiễn
Trả lời hai câu hỏi: (1) Về mặt lý thuyết, liệu giao thức BFT không có người lãnh đạo có luôn kém hiệu quả (về mặt hiệu suất và tính thực tiễn) hơn giao thức có người lãnh đạo hay không, và (2) nếu có, thì kém hơn bao nhiêu (chúng ta có thể định lượng điều này không?)?
Chúng tôi không chạy bất kỳ thuật toán nào được nghiên cứu trong dự án này, nhưng đã xem xét các chỉ số hiệu suất được quan sát từ các thí nghiệm do các tác giả của bài báo thực hiện. Các chỉ số này chỉ có ý nghĩa khi được xem xét trong bối cảnh của một tiêu chuẩn so sánh và tất nhiên đối với dự án này, việc lấy trạng thái L1 hiện tại của Ethereum làm tiêu chuẩn so sánh là hợp lý; tuy nhiên, thuật toán đồng thuận và thiết kế tổng thể của Ethereum rất phức tạp và chứa nhiều chi tiết khiến việc so sánh với các giao thức đơn giản hóa, trừu tượng hơn như HoneyBadger trở nên khó khăn.
Hiện tại, các giao thức khác này chưa ở trạng thái có thể sử dụng được cho Ethereum, vì vậy, kết luận hợp lý nhất hiện nay là việc đánh giá một thiết kế giao thức đồng thuận không có người dẫn đầu cho Ethereum sẽ đòi hỏi một giao thức hoàn thiện với các chi tiết cấp thấp có liên quan, điều này có thể ảnh hưởng đến hiệu suất và tính khả thi.
Những bài báo này cung cấp bằng chứng về mặt khái niệm rằng nhìn chung có những thiết kế giao thức đồng thuận không cần người lãnh đạo hiệu quả, điều này tạo động lực mạnh mẽ cho chúng ta tiến lên phía trước. Điều này đặc biệt thú vị trong trường hợp của HoneyBadger, dự án đã thực hiện một thí nghiệm trên mạng WAN phân tán về mặt địa lý (5 châu lục) với 104 tiến trình và thông lượng 1.500 giao dịch được xác nhận mỗi giây.
IV. NHỮNG BƯỚC TIẾP THEO
Vậy, những phát hiện này có cho chúng ta biết rằng các giao thức không có người lãnh đạo là tuyệt vời không? Chúng ta có nên đón nhận chúng nhiều hơn không? Chúng có hiệu suất cao hơn không? Chúng ta có thể thiết kế thành công một giao thức đồng thuận không có người lãnh đạo tương thích với Ethereum không? Liệu nó có thực sự giải quyết và/hoặc loại bỏ một số vấn đề kinh niên mà Ethereum đang gặp phải hiện nay không?
Để trả lời những câu hỏi này, chúng ta hãy cùng điểm qua nhanh những vấn đề mà chúng tôi tin rằng một giao thức đồng thuận không cần người lãnh đạo có thể giải quyết, cụ thể như sau.
A. Động lực hình thành Ethereum
Trò chơi tính thời gian
Các nhà sản xuất khối được khuyến khích gửi đề xuất khối càng muộn càng tốt trong mỗi khoảng thời gian quy định, vì đề xuất càng gần "hạn chót" thì phần thưởng khối càng cao; lý do của hiện tượng này là cơ hội biến động giá và do đó là chênh lệch giá tài sản (trong các giao dịch) có xác suất cao nhất khi thời gian kể từ lần biến động giá trước đó (tức là khối cuối cùng) càng dài.
Kháng cự kiểm duyệt
Ngăn chặn các nhà sản xuất khối bỏ sót một số giao dịch nhất định khỏi đề xuất khối. Yếu — bỏ sót khỏi khối của chính họ. Mạnh — ngăn chặn người khác đưa một số khối nhất định vào.
MEV
MEV (Giá trị có thể trích xuất tối đa) đề cập đến lợi nhuận có thể “trích xuất” hoặc thu được từ hoạt động blockchain nhờ thiết kế/kiến trúc kỹ thuật vốn có của chuỗi. Cụ thể, MEV đề cập đến lợi nhuận vượt quá phần thưởng khối, phí và tiền boa. Về cơ bản, MEV khả thi trên Ethereum dựa trên hai nguyên tắc chính: (1) Có thể dự đoán với mức độ tin cậy hợp lý về kết quả hoặc tác động dự kiến của một khối đã được xác nhận nhờ các mempool công khai và bản chất tuyến tính của việc xây dựng khối. (2) Điều này sau đó làm cho những người tìm kiếm MEV hợp lý có thể thao túng thứ tự hoặc việc đưa vào/loại trừ một số giao dịch nhất định trong một khối hoặc thậm chí giữa các khối hoặc trên các chuỗi để nắm bắt cơ hội chênh lệch giá. Chênh lệch giá ở đây được sử dụng một cách lỏng lẻo theo nghĩa là có sự bất đối xứng về thông tin/thị trường/giá cả mà việc hành động dựa trên đó sẽ mang lại lợi nhuận.
Phân tách giữa người đề xuất và người xây dựng
Đã có sự quan tâm đến việc tách biệt vai trò người đề xuất và người xây dựng nhằm giảm sự phụ thuộc vào các dịch vụ ngoài giao thức như MEV-Boost, vốn đã trở thành các dịch vụ tập trung và đòi hỏi sự tin tưởng của Ethereum (và người dùng của nó). Mặc dù người xây dựng không phải lúc nào cũng là người đề xuất, nhưng việc tách biệt hai vai trò này không phải là bắt buộc.
Người đề xuất Độc quyền
Như đã thảo luận ở phần đầu báo cáo này, một số người cho rằng việc chỉ có một người đề xuất khối chính cho mỗi vị trí là không dân chủ cả về bản chất lẫn thực tiễn.
Trong một giao thức đồng thuận không có người lãnh đạo, có một vài công cụ và cơ chế có thể được tích hợp để giảm thiểu tác động của các vấn đề nêu trên. Ví dụ, tất nhiên vấn đề "độc quyền người đề xuất" sẽ không tồn tại trong một giao thức đồng thuận không có người lãnh đạo. Vai trò đồng thuận và thực thi sẽ hợp nhất trong các hoạt động xây dựng khối, điều này sẽ loại bỏ nhu cầu tách biệt người đề xuất và người xây dựng, vốn hiện nay có thể được mô tả như một giải pháp chắp vá hơn là giải pháp gốc rễ cho mối lo ngại của Ethereum về các dịch vụ ngoài giao thức. Các vấn đề cố hữu khó giải quyết hơn như khả năng chống kiểm duyệt, MEV và các trò chơi định thời có thể được giảm thiểu bằng một thiết kế thực thi tính ngẫu nhiên giao dịch thông qua việc xây dựng khối hợp tác, đồng thời tính đến các lỗi thực thi và các động lực kinh tế.
Ngoài những lý do do Ethereum đưa ra để xem xét một giao thức đồng thuận không có người lãnh đạo, các thuộc tính tiêu chuẩn của giao thức đồng thuận không có người lãnh đạo cũng phù hợp với giai đoạn phát triển hiện tại của Ethereum. Ví dụ, khái niệm bắt buộc đưa các khối nhỏ vào phù hợp với đề xuất của Ethereum về danh sách bao gồm, về nguyên tắc, thông qua việc bắt buộc đưa một số giao dịch nhất định vào, đây là một sản phẩm phụ không mong muốn nhằm mục đích kiểm tra một cách không ác ý đối với các tiến trình tham gia khi nói đến khả năng chống kiểm duyệt.
Mục tiêu cuối cùng của dự án nghiên cứu thuần túy này là tạo ra một khung sườn tương đối hoàn chỉnh của giao thức không cần người lãnh đạo, có thể hoạt động trên nền tảng Ethereum cốt lõi. Liên quan đến Cột mốc III và IV, chúng tôi nhận thấy rằng sau khi hoàn thành hai cột mốc đầu tiên, tiềm năng tạo ra một giao thức BFT không cần người lãnh đạo có thể đạt hiệu suất cao và đáp ứng các tiêu chuẩn mạnh mẽ tương tự là rất lớn.
IV. TÀI LIỆU THAM KHẢO
Borran, F. (2009). Thuật toán đồng thuận Byzantine không cần người dẫn đầu.
Lamport, L. (2011). Paxos Byzantine không có người lãnh đạo.
Mostéfaoui, A., Moumen, H., & Raynal, M. (2015). Đồng thuận Byzantine nhị phân không đồng bộ không cần chữ ký với t < n/3, O(n²) thông điệp và thời gian dự kiến O(1).
Miller, A., Xia, Y., Croman, K., Shi, E., & Song, D. (2016). Con lửng mật của các giao thức BFT.
Duan, S., Reiter, MK, & Zhang, H. (2018). BEAT: Ứng dụng thực tiễn BFT bất đồng bộ.
Crain, T., Gramoli, V., Larrea, M., & Raynal, M. (2018). DBFT: Đồng thuận Byzantine không người lãnh đạo hiệu quả và SMR.
Gągol, A., et al. (2019). Aleph: Phát sóng nguyên tử hiệu quả trong mạng không đồng bộ.
“Đội Rocket.” (2020). Avalanche: Sự đồng thuận BFT không người lãnh đạo có thể mở rộng và xác suất thông qua trạng thái không ổn định.
Antoniadis, P., và cộng sự. (2021/2022). Sự đồng thuận không có người lãnh đạo
Stathakopoulou, C., et al. (2021). Mir-BFT: BFT mạnh mẽ với thông lượng cao dành cho mạng lưới phi tập trung.
Spiegelman, A., et al. (2022). Bullshark: Các giao thức DAG BFT được đơn giản hóa.
Flamini, A., et al. (2022). Cob: Thỏa thuận Byzantine không người lãnh đạo cho các tập giá trị tùy ý.
Danezis, G., và cộng sự. (2022). Narwhal và Tusk: Mempool dựa trên DAG và sự đồng thuận BFT hiệu quả.
Müller, S., et al. (2022). Tangle 2.0: Một giao thức đồng thuận xác suất dựa trên DAG.
Xue, J., et al. (2023). BigDipper: Khả năng chịu lỗi Byzantine có thể mở rộng thông qua tổng hợp khối nhỏ.
Niu, J., et al. (2023). EBFT: Khả năng chịu lỗi Byzantine hiệu quả với các đề xuất ngẫu nhiên.
Morais, R., và cộng sự. (2023). Nero: BFT không có chỉ huy xác định cho hệ thống DAG.
Gelashvili, R., et al. (2024). Jolteon và Ditto: Cơ chế đồng thuận hiệu quả thích ứng mạng với khả năng dự phòng bất đồng bộ.
Castro, M., & Liskov, B. (1999). Khả năng chịu lỗi Byzantine thực tiễn.
Lamport, L. (2006). Paxos nhanh.
Moraru, I., Andersen, DG, & Kaminsky, M. (2013). EPaxos: Sự đồng thuận bình đẳng.
Zhang, I., và cộng sự (2015). Xây dựng các giao dịch nhất quán với sự sao chép không nhất quán.
Buchman, E., Kwon, J., & Milosevic, Z. (2018). Những tin đồn mới nhất về sự đồng thuận BFT.
Bonniot, L., et al. (2019). PnyxDB: Cơ sở dữ liệu chịu lỗi Byzantine với tính nhất quán cuối cùng.
Guo, S., et al. (2020). Dumbo: Các giao thức BFT bất đồng bộ nhanh hơn.
Qin, T. (2020). Khả năng chịu lỗi Byzantine không cần người dẫn đầu.
Niu, J., và cộng sự (2020). Cơ chế đồng thuận chịu lỗi Byzantine không cần người lãnh đạo.
Tollman, S., et al. (2021). EPaxos được xem xét lại.
Du, H., et al. (2021). Sao chép xác nhận người dẫn đầu để đạt được sự đồng thuận trong mili giây trên các chuỗi riêng tư.
Wang, X., et al. (2022). Một giao thức chịu lỗi Byzantine phân cấp dựa trên uy tín của nút.
Lu, H., và cộng sự (2023). Aurora: Cơ chế đồng thuận không người dẫn đầu với thông lượng cao.
Lu, H., et al. (2023). Arena: Khả năng chịu lỗi Byzantine đồng bộ đa lãnh đạo.
Dwork, C., Lynch, N., & Stockmeyer, L. (1988). Sự đồng thuận khi có sự đồng bộ một phần.
Abraham, I., et al. (2018). Thỏa thuận Byzantine bất đồng bộ đã được xác thực với khả năng phục hồi và hiệu quả tối ưu.
Kleppmann, M. (2020). Tính nhất quán cuối cùng của Byzantine và giới hạn của cơ sở dữ liệu ngang hàng.
Wang, G. (2021). SoK: Hiểu về cơ chế đồng thuận BFT trong kỷ nguyên blockchain.
Stathakopoulou, C., et al. (2022). Đơn giản hóa khả năng mở rộng sao chép máy trạng thái.
Zhang, Q., et al. (2023). Đạt được sự đồng thuận trong đế chế Byzantine: Một đánh giá toàn diện về các thuật toán BFT.





