Trong phần đầu tiên, chúng tôi đã nghiên cứu cách thức hoạt động của đồng thuận PBFT (Hệ thống chịu lỗi Byzantine) cổ điển và cách thức hoạt động của các phiên bản sớm của HotStuff. Chúng tôi cũng đã tìm hiểu cách MonadBFT giải quyết vấn đề phân nhánh cuối của HotStuff, tức là vấn đề các khối hợp lệ đôi khi bị bỏ qua trong hệ thống theo dòng.
Vấn đề đuôi fork này gây ra hai vấn đề chính: 1) Nó làm rối loạn phần thưởng của những người xây dựng khối trung thực, 2) Nó có thể dẫn đến sự tắc nghẽn của mạng.
MonadBFT đã giới thiệu quy tắc đề xuất lại và cơ chế bỏ phiếu không có sự chứng thực để loại bỏ vấn đề phân nhánh ở phần đuôi, đảm bảo rằng bất kỳ khối nào từ những người đề xuất trung thực được phê duyệt hợp lý đều có thể vào chuỗi.
Trong phần thứ hai, chúng ta sẽ khám phá hai đặc điểm khác của MonadBFT: 1) tính cuối cùng dự đoán và 2) khả năng phản hồi lạc quan. Chúng ta cũng sẽ xem xét tác động của MonadBFT đối với các nhà phát triển.
Tính cuối cùng của đầu cơ một vòng
Ngoài việc chống lại các phân nhánh ở cuối, một đặc điểm chính khác của MonadBFT là tính cuối cùng của sự đầu cơ trong một vòng.
Trong thực tế, điều này có nghĩa là khách hàng và người dùng có thể ngay lập tức nhận được xác nhận giao dịch sau khi khối nhận được đa số phiếu, thậm chí trước khi hoàn thành vòng tiếp theo.
Hãy nhớ rằng, trong giao thức HotStuff cơ bản, một khối thường phải trải qua ít nhất hai giai đoạn (như Fast-Hotstuff và Diem-BFT) mới được coi là đã được xác nhận cuối cùng (không thể đảo ngược): một giai đoạn nhận chứng nhận số lượng hợp pháp (QC) (để khóa khối với ≥2f+1 phiếu bầu), giai đoạn tiếp theo là nhà lãnh đạo tiếp theo dựa trên chứng nhận số lượng hợp pháp (QC) để xây dựng và nộp khối.
Hai giai đoạn nộp này là cần thiết để đảm bảo an toàn: một khi có đủ nhiều nút trung thực khóa một khối, khối mâu thuẫn với nó không thể đạt được số lượng cần thiết, và vòng nộp tiếp theo sẽ làm cho nó trở nên vĩnh viễn. Do đó, khách hàng thường có thể cần phải chờ đến khối tiếp theo hoặc vòng tiếp theo được tạo ra, để biết giao dịch trước đó có được xác nhận cuối cùng hay không.
MonadBFT cơ bản cho phép giao dịch chỉ qua một vòng bỏ phiếu được coi là đủ cuối cùng (có thể hoạt động an toàn). Đây được gọi là tính cuối cùng suy đoán.
Khi người lãnh đạo đề xuất một khối, các xác thực viên bỏ phiếu để hình thành QC của khối đó, khối đó sẽ ở trạng thái đã được bỏ phiếu (đã được số lượng tối thiểu khóa lại). Trong MonadBFT, một khi các xác thực viên hình thành QC, họ sẽ ngay lập tức thực hiện giao dịch của khối đó, thậm chí sẽ gửi cho khách hàng một xác nhận ban đầu, cho thấy khối đó đã được (chấp nhận một cách đầu cơ). Điều này giống như nói "chúng tôi có sự đồng thuận của đa số cho khối này. Trừ khi có một tình huống rất bất ngờ xảy ra, thì có thể coi khối này đã được xác nhận."
Xác nhận ngay lập tức này là lạc quan. Khối chưa được nộp vào sổ cái. Điều này sẽ xảy ra khi đề xuất tiếp theo xuất hiện và xác nhận nó (QC-on QC), nhưng trong tình huống bình thường, không có gì có thể hủy bỏ nó. Tình huống duy nhất có thể hủy bỏ khối thực thi suy đoán là khi người lãnh đạo xảy ra tấn công tương đương (tức là đề xuất hai khối khác nhau ở cùng một độ cao để phân tán phiếu bầu).
Bạn có thể xem tính cuối cùng của đầu tư mạo hiểm như một sản phẩm phụ tốt để chống lại phân nhánh phần đuôi. Việc chống lại phân nhánh phần đuôi đảm bảo rằng ngay cả khi nhà lãnh đạo tiếp theo sụp đổ, đề xuất hiện tại cũng sẽ không bị loại bỏ (điều này nhờ vào việc đề xuất lại và quy tắc NEC). Tình huống duy nhất mà khối thực thi mạo hiểm bị loại bỏ là khi người đề xuất ban đầu xảy ra tấn công tương đương (lỗi ký kết kép có thể chứng minh là độc hại), và tình huống này: 1) có thể được phát hiện qua QC xung đột; 2) có thể bị trừng phạt; 3) cực kỳ hiếm.
Trong các giao thức trước đó, họ không đảm bảo rằng nhà lãnh đạo tiếp theo sẽ đưa ra khối trước đó, vì vậy phần đuôi fork là có thể, từ đó phá vỡ giả thuyết đầu cơ.
Phản ứng lạc quan
Trong hầu hết các giao thức nhận thức chung, sau mỗi vòng sẽ có một khoảng thời gian chờ tích hợp, chẳng hạn như thời gian đệm hoặc thời gian chờ. Điều này nhằm đảm bảo rằng tất cả các tin nhắn đã đến trước khi tiếp tục. Đây là một cơ chế bảo vệ, nhằm xử lý các trường hợp tồi tệ nhất, chẳng hạn như sự sụp đổ của người lãnh đạo hoặc hoàn toàn không gửi bất kỳ thông tin nào.
Những thời gian chờ này thường quá bảo thủ. Nếu mạng hoạt động bình thường và tất cả các xác thực viên hành động đúng, thì việc chờ cố định sẽ trở thành chi phí không cần thiết. Khối có thể hoàn thành nhanh hơn, nhưng giao thức lại trì hoãn để phòng trường hợp.
MonadBFT đã giới thiệu tính phản hồi lạc quan, điều này có nghĩa là giao thức có thể tiến lên ngay lập tức dựa trên thông tin mạng, thay vì luôn phụ thuộc vào bộ đếm thời gian cố định. Nguyên tắc thiết kế ở đây có thể được tóm tắt là "có thể nhanh thì nhanh, chỉ kiên nhẫn khi cần kiên nhẫn".
Thiết kế của MonadBFT cho phép nó không tạm dừng chờ thời gian chờ đã định trong các trường hợp bình thường, thậm chí trong quá trình phục hồi lỗi, nếu không cần thiết.
Trên con đường vui vẻ (có nghĩa là chúng ta có một nhà lãnh đạo trung thực): Không có độ trễ tích hợp trong việc đề xuất hoặc bỏ phiếu. Khi đến lượt nhà lãnh đạo, họ sẽ đề xuất một khối. Ngay khi các xác thực viên nhận được đề xuất hợp lệ, họ sẽ ngay lập tức bỏ phiếu. Khi nhà lãnh đạo (hoặc chính xác hơn, nhà lãnh đạo tiếp theo, vì trong dòng chảy HotStuff, việc bỏ phiếu sẽ được gửi đến người đề xuất tiếp theo) thu thập được 2f+1 phiếu bầu, QC được hình thành và có thể được phát tán. Trong thiết kế phản hồi lạc quan, điều này sẽ ngay lập tức kích hoạt giai đoạn tiếp theo.
Trong thực tế, điều này có nghĩa là nếu độ trễ mạng giữa các nút là 100 mili giây, thì nhận thức chung có thể chỉ mất vài trăm mili giây để hoàn thành một vòng (cộng với chi phí tính toán và tổng hợp).
Nếu không cần thiết, nó sẽ không chờ đợi, ví dụ, "thời gian khe" kéo dài một giây. Điều này khác với mô hình slot-and-epoch mà mạng chính Ethereum áp dụng. Trên Ethereum, khoảng thời gian sản xuất khối được cố định là 12 giây. Ngay cả khi mọi người đã chuẩn bị sẵn sàng, giao thức vẫn sẽ chờ đợi.
Phương pháp MonadBFT loại bỏ độ trễ không cần thiết. Nó giữ lại cấu trúc HotStuff theo dạng chuỗi, nhưng loại bỏ quy định cứng rằng "phải chờ Δ giây" trong điều kiện bình thường. Điều này có nghĩa là nó có thể vượt trội hơn trong khả năng phản hồi so với các hệ thống có ràng buộc thời gian mà không hy sinh tính an toàn.
Trên con đường không hạnh phúc (thất bại của lãnh đạo): Trong nhiều giao thức nhận thức chung, khi lãnh đạo không thể đề xuất khối, các nút khác chỉ nhận ra điều này sau khi hết thời gian Δ. Ví dụ, nếu Δ là 1 giây, thì thời gian này về cơ bản bị lãng phí. Cách xử lý của MonadBFT thì khác. Khi các xác thực viên phát hiện ra rằng đề xuất đã bị mất, họ sẽ ngay lập tức phát sóng thông điệp hết thời gian (TC hoặc chứng chỉ hết thời gian). Khi có 2f+1 lần hết thời gian, lãnh đạo tiếp theo sẽ tiếp quản. Việc chuyển đổi sang quan điểm mới được kích hoạt bởi chứng cứ dựa trên số lượng hợp pháp, chứ không phải do đồng hồ kích hoạt.
So sánh với Nhận thức chung hotstuff-family
MonadBFT được xây dựng dựa trên nền tảng của giao thức nhận thức chung HotStuff, nhưng nổi bật nhờ việc thực hiện sự kết hợp của một loạt các đặc tính lý tưởng. Các giao thức ban đầu thường được tối ưu hóa cho một số khía cạnh nhất định, chẳng hạn như thông lượng theo chuỗi hoặc giao tiếp tuyến tính, nhưng phải hy sinh các khía cạnh khác. MonadBFT độc đáo kết hợp độ phức tạp tin nhắn tuyến tính, cam kết theo chuỗi, khả năng kháng fork mạnh mẽ ở cuối, khả năng phản hồi ngay lập tức không có độ trễ cố định và cơ chế phục hồi hiệu quả, trong khi vẫn giữ được việc xác nhận nhanh chóng và đảm bảo tính khả dụng cao. Bảng dưới đây tóm tắt sự so sánh giữa MonadBFT và các giao thức BFT lãnh đạo luân phiên khác trên những khía cạnh chính này:
Điều này có ý nghĩa gì đối với các nhà phát triển và người dùng?
Đối với các nhà phát triển, MonadBFT có nghĩa là vài điểm:
Mô hình xác định cuối cùng đơn giản hơn: Sử dụng MonadBFT, bạn có thể coi khối có QC (phiếu bầu đa số tuyệt đối) là thực sự đã được xác định cuối cùng, vì giao thức sẽ xác định nó cuối cùng hoặc thực hiện hình phạt. Các nhà phát triển có thể tự tin thực hiện an toàn 1 xác nhận khối.
Cải thiện trải nghiệm người dùng của ứng dụng: Nếu bạn đang xây dựng một ứng dụng có thông lượng cao (sàn giao dịch, trò chơi, v.v.), đặc điểm độ trễ thấp và khả năng chống fork của MonadBFT sẽ chuyển thành trải nghiệm người dùng mượt mà hơn. Người dùng gần như có thể ngay lập tức thấy giao dịch của họ được xác nhận và không thường xuyên gặp phải tình trạng tái cấu trúc hoặc quay lại gây nhầm lẫn. Như vậy, bạn có thể thiết kế ứng dụng có tính cuối cùng và cập nhật nhanh.
Hành vi xác định: Quy tắc nghiêm ngặt hơn của MonadBFT (như yêu cầu đề xuất lại) giảm bớt sự không chắc chắn trong việc bao gồm khối. Do các yếu tố thời gian tinh vi như việc phiếu bầu hoặc thời gian hết hạn đến với nhà lãnh đạo trước, có ít "tình huống biên" hơn trong việc khối được bao gồm hoặc bị bỏ qua. MonadBFT thay thế sự mơ hồ nhạy cảm với thời gian này bằng các quy tắc rõ ràng và bằng chứng có thể xác minh. Điều này làm cho việc suy diễn tính chính xác của giao thức và kiểm tra trở nên dễ dàng hơn. Nó cũng cung cấp một cơ sở rõ ràng để nhận diện các nút lỗi (ví dụ, nếu ai đó không đề xuất lại hoặc đề xuất một khối xung đột, bạn sẽ biết họ đã vi phạm giao thức).
Không gian mở rộng: Nếu bạn là một nhà phát triển quan tâm đến khả năng mở rộng, MonadBFT cung cấp cho bạn không gian nhiều hơn trước khi gặp phải các nút thắt. So với giao thức thứ cấp, bạn có thể dễ dàng tăng kích thước khối hoặc số lượng người xác thực hơn. Hơn nữa, các chức năng như truyền khối mã hóa xóa có nghĩa là bạn có thể đẩy một lượng lớn dữ liệu qua mạng mà không tiêu tốn quá mức một nút đơn. Điều này giúp nhắm đến thông lượng cao hơn trở nên khả thi, mở ra không gian thiết kế cho các ứng dụng trên chuỗi tham vọng hơn.
Đối với người dùng cuối: Người dùng thông thường sẽ không hiểu bất kỳ nội dung nào mà chúng tôi thảo luận ở đây, nhưng họ sẽ cảm nhận được ảnh hưởng của nó. Với MonadBFT làm nền tảng cho chuỗi Monad, người dùng có thể mong đợi tất cả các đặc tính tốt mà không phải hy sinh sự phi tập trung và khả năng chống kiểm duyệt.
Xác nhận nhanh hơn: Giao dịch (như gửi token, trao đổi tài sản, đúc NFT, thực hiện giao dịch) sẽ được xác nhận nhanh chóng.
Giảm thiểu sự cố: Tính nhất quán của trạng thái chuỗi cao hơn, vì những thứ như fork cuối cùng, vốn thuộc về tái cấu trúc, đã được loại bỏ.
Công bằng và minh bạch: Cải thiện nhận thức chung đồng nghĩa với việc hoạt động của chuỗi công bằng hơn. Không một xác thực đơn lẻ nào có thể dễ dàng kiểm tra giao dịch hoặc thao tác sắp xếp giữa các khối.
Kết luận
Tóm tắt lại, MonadBFT đã giới thiệu bốn đổi mới cốt lõi dựa trên sự đồng thuận theo phong cách HotStuff theo kiểu chuỗi:
Kháng cự phân nhánh đuôi: MonadBFT là giao thức BFT theo kiểu pipeline đầu tiên loại bỏ cuộc tấn công phân nhánh đuôi. Nó đạt được điều này bằng cách để lãnh đạo tiếp theo đề xuất lại khối đã bỏ phiếu lần trước trong trường hợp lãnh đạo trước thất bại, hoặc trình bày chứng chỉ không cần chứng thực (NEC), chứng minh rằng khối đó thiếu sự hỗ trợ. Điều này đảm bảo rằng bất kỳ khối nào nhận được sự hỗ trợ áp đảo đều không bị bỏ qua, từ đó bảo vệ phần thưởng cho lãnh đạo trung thực và ngăn chặn việc tái tổ chức ác ý cũng như khai thác MEV xuyên khối.
Tính cuối cùng của đầu cơ một vòng: Các xác nhận viên có thể xác nhận khối sau một lần truyền thông một vòng (một người lãnh đạo đề xuất và bỏ phiếu), cung cấp cho khách hàng sự đảm bảo bao gồm ngay lập tức. Sự xác nhận đầu cơ này chỉ được khôi phục khi có cuộc tấn công tương đương của người lãnh đạo (một hành động có thể được chứng minh và trừng phạt), khiến nó trở thành giả thuyết an toàn trong thực tế.
Phản hồi lạc quan: Giao thức hoạt động với tốc độ mạng, không có độ trễ cố hữu. Lãnh đạo ngay lập tức thúc đẩy Nhận thức chung sau khi nhận được các phiếu cần thiết, thay đổi tầm nhìn xảy ra ngay lập tức sau khi quan sát thấy thời gian quá hạn của số người hợp lệ, thay vì chờ đợi khoảng thời gian cố định. Thiết kế phản hồi lạc quan này tối thiểu hóa thời gian chờ và tối đa hóa thông lượng, đồng thời vẫn có thể xử lý một cách vững chắc khi xảy ra bất đồng bộ và lỗi.
Giao tiếp tuyến tính: Trên đường hạnh phúc (tức là khi người lãnh đạo là trung thực), độ phức tạp của thông điệp và xác minh có mối quan hệ tuyến tính với số lượng người xác minh. MonadBFT giữ lại mô hình giao tiếp hiệu quả của HotStuff, sử dụng chữ ký tổng hợp và lãnh đạo đơn giản để phát sóng đến người xác minh, cho phép giao thức mở rộng đến hàng trăm người xác minh mà không gặp phải tắc nghẽn hiệu suất.
Xem bản gốc
Nội dung chỉ mang tính chất tham khảo, không phải là lời chào mời hay đề nghị. Không cung cấp tư vấn về đầu tư, thuế hoặc pháp lý. Xem Tuyên bố miễn trừ trách nhiệm để biết thêm thông tin về rủi ro.
Giải thích MonadBFT (phần 2): Điều này có nghĩa là gì đối với các nhà phát triển và người dùng
Trong phần đầu tiên, chúng tôi đã nghiên cứu cách thức hoạt động của đồng thuận PBFT (Hệ thống chịu lỗi Byzantine) cổ điển và cách thức hoạt động của các phiên bản sớm của HotStuff. Chúng tôi cũng đã tìm hiểu cách MonadBFT giải quyết vấn đề phân nhánh cuối của HotStuff, tức là vấn đề các khối hợp lệ đôi khi bị bỏ qua trong hệ thống theo dòng.
Vấn đề đuôi fork này gây ra hai vấn đề chính: 1) Nó làm rối loạn phần thưởng của những người xây dựng khối trung thực, 2) Nó có thể dẫn đến sự tắc nghẽn của mạng.
MonadBFT đã giới thiệu quy tắc đề xuất lại và cơ chế bỏ phiếu không có sự chứng thực để loại bỏ vấn đề phân nhánh ở phần đuôi, đảm bảo rằng bất kỳ khối nào từ những người đề xuất trung thực được phê duyệt hợp lý đều có thể vào chuỗi.
Trong phần thứ hai, chúng ta sẽ khám phá hai đặc điểm khác của MonadBFT: 1) tính cuối cùng dự đoán và 2) khả năng phản hồi lạc quan. Chúng ta cũng sẽ xem xét tác động của MonadBFT đối với các nhà phát triển.
Tính cuối cùng của đầu cơ một vòng
Ngoài việc chống lại các phân nhánh ở cuối, một đặc điểm chính khác của MonadBFT là tính cuối cùng của sự đầu cơ trong một vòng.
Trong thực tế, điều này có nghĩa là khách hàng và người dùng có thể ngay lập tức nhận được xác nhận giao dịch sau khi khối nhận được đa số phiếu, thậm chí trước khi hoàn thành vòng tiếp theo.
Hãy nhớ rằng, trong giao thức HotStuff cơ bản, một khối thường phải trải qua ít nhất hai giai đoạn (như Fast-Hotstuff và Diem-BFT) mới được coi là đã được xác nhận cuối cùng (không thể đảo ngược): một giai đoạn nhận chứng nhận số lượng hợp pháp (QC) (để khóa khối với ≥2f+1 phiếu bầu), giai đoạn tiếp theo là nhà lãnh đạo tiếp theo dựa trên chứng nhận số lượng hợp pháp (QC) để xây dựng và nộp khối.
Hai giai đoạn nộp này là cần thiết để đảm bảo an toàn: một khi có đủ nhiều nút trung thực khóa một khối, khối mâu thuẫn với nó không thể đạt được số lượng cần thiết, và vòng nộp tiếp theo sẽ làm cho nó trở nên vĩnh viễn. Do đó, khách hàng thường có thể cần phải chờ đến khối tiếp theo hoặc vòng tiếp theo được tạo ra, để biết giao dịch trước đó có được xác nhận cuối cùng hay không.
MonadBFT cơ bản cho phép giao dịch chỉ qua một vòng bỏ phiếu được coi là đủ cuối cùng (có thể hoạt động an toàn). Đây được gọi là tính cuối cùng suy đoán.
Khi người lãnh đạo đề xuất một khối, các xác thực viên bỏ phiếu để hình thành QC của khối đó, khối đó sẽ ở trạng thái đã được bỏ phiếu (đã được số lượng tối thiểu khóa lại). Trong MonadBFT, một khi các xác thực viên hình thành QC, họ sẽ ngay lập tức thực hiện giao dịch của khối đó, thậm chí sẽ gửi cho khách hàng một xác nhận ban đầu, cho thấy khối đó đã được (chấp nhận một cách đầu cơ). Điều này giống như nói "chúng tôi có sự đồng thuận của đa số cho khối này. Trừ khi có một tình huống rất bất ngờ xảy ra, thì có thể coi khối này đã được xác nhận."
Xác nhận ngay lập tức này là lạc quan. Khối chưa được nộp vào sổ cái. Điều này sẽ xảy ra khi đề xuất tiếp theo xuất hiện và xác nhận nó (QC-on QC), nhưng trong tình huống bình thường, không có gì có thể hủy bỏ nó. Tình huống duy nhất có thể hủy bỏ khối thực thi suy đoán là khi người lãnh đạo xảy ra tấn công tương đương (tức là đề xuất hai khối khác nhau ở cùng một độ cao để phân tán phiếu bầu).
Bạn có thể xem tính cuối cùng của đầu tư mạo hiểm như một sản phẩm phụ tốt để chống lại phân nhánh phần đuôi. Việc chống lại phân nhánh phần đuôi đảm bảo rằng ngay cả khi nhà lãnh đạo tiếp theo sụp đổ, đề xuất hiện tại cũng sẽ không bị loại bỏ (điều này nhờ vào việc đề xuất lại và quy tắc NEC). Tình huống duy nhất mà khối thực thi mạo hiểm bị loại bỏ là khi người đề xuất ban đầu xảy ra tấn công tương đương (lỗi ký kết kép có thể chứng minh là độc hại), và tình huống này: 1) có thể được phát hiện qua QC xung đột; 2) có thể bị trừng phạt; 3) cực kỳ hiếm.
Trong các giao thức trước đó, họ không đảm bảo rằng nhà lãnh đạo tiếp theo sẽ đưa ra khối trước đó, vì vậy phần đuôi fork là có thể, từ đó phá vỡ giả thuyết đầu cơ.
Phản ứng lạc quan
Trong hầu hết các giao thức nhận thức chung, sau mỗi vòng sẽ có một khoảng thời gian chờ tích hợp, chẳng hạn như thời gian đệm hoặc thời gian chờ. Điều này nhằm đảm bảo rằng tất cả các tin nhắn đã đến trước khi tiếp tục. Đây là một cơ chế bảo vệ, nhằm xử lý các trường hợp tồi tệ nhất, chẳng hạn như sự sụp đổ của người lãnh đạo hoặc hoàn toàn không gửi bất kỳ thông tin nào.
Những thời gian chờ này thường quá bảo thủ. Nếu mạng hoạt động bình thường và tất cả các xác thực viên hành động đúng, thì việc chờ cố định sẽ trở thành chi phí không cần thiết. Khối có thể hoàn thành nhanh hơn, nhưng giao thức lại trì hoãn để phòng trường hợp.
MonadBFT đã giới thiệu tính phản hồi lạc quan, điều này có nghĩa là giao thức có thể tiến lên ngay lập tức dựa trên thông tin mạng, thay vì luôn phụ thuộc vào bộ đếm thời gian cố định. Nguyên tắc thiết kế ở đây có thể được tóm tắt là "có thể nhanh thì nhanh, chỉ kiên nhẫn khi cần kiên nhẫn".
Thiết kế của MonadBFT cho phép nó không tạm dừng chờ thời gian chờ đã định trong các trường hợp bình thường, thậm chí trong quá trình phục hồi lỗi, nếu không cần thiết.
Trên con đường vui vẻ (có nghĩa là chúng ta có một nhà lãnh đạo trung thực): Không có độ trễ tích hợp trong việc đề xuất hoặc bỏ phiếu. Khi đến lượt nhà lãnh đạo, họ sẽ đề xuất một khối. Ngay khi các xác thực viên nhận được đề xuất hợp lệ, họ sẽ ngay lập tức bỏ phiếu. Khi nhà lãnh đạo (hoặc chính xác hơn, nhà lãnh đạo tiếp theo, vì trong dòng chảy HotStuff, việc bỏ phiếu sẽ được gửi đến người đề xuất tiếp theo) thu thập được 2f+1 phiếu bầu, QC được hình thành và có thể được phát tán. Trong thiết kế phản hồi lạc quan, điều này sẽ ngay lập tức kích hoạt giai đoạn tiếp theo.
Trong thực tế, điều này có nghĩa là nếu độ trễ mạng giữa các nút là 100 mili giây, thì nhận thức chung có thể chỉ mất vài trăm mili giây để hoàn thành một vòng (cộng với chi phí tính toán và tổng hợp).
Nếu không cần thiết, nó sẽ không chờ đợi, ví dụ, "thời gian khe" kéo dài một giây. Điều này khác với mô hình slot-and-epoch mà mạng chính Ethereum áp dụng. Trên Ethereum, khoảng thời gian sản xuất khối được cố định là 12 giây. Ngay cả khi mọi người đã chuẩn bị sẵn sàng, giao thức vẫn sẽ chờ đợi.
Phương pháp MonadBFT loại bỏ độ trễ không cần thiết. Nó giữ lại cấu trúc HotStuff theo dạng chuỗi, nhưng loại bỏ quy định cứng rằng "phải chờ Δ giây" trong điều kiện bình thường. Điều này có nghĩa là nó có thể vượt trội hơn trong khả năng phản hồi so với các hệ thống có ràng buộc thời gian mà không hy sinh tính an toàn.
Trên con đường không hạnh phúc (thất bại của lãnh đạo): Trong nhiều giao thức nhận thức chung, khi lãnh đạo không thể đề xuất khối, các nút khác chỉ nhận ra điều này sau khi hết thời gian Δ. Ví dụ, nếu Δ là 1 giây, thì thời gian này về cơ bản bị lãng phí. Cách xử lý của MonadBFT thì khác. Khi các xác thực viên phát hiện ra rằng đề xuất đã bị mất, họ sẽ ngay lập tức phát sóng thông điệp hết thời gian (TC hoặc chứng chỉ hết thời gian). Khi có 2f+1 lần hết thời gian, lãnh đạo tiếp theo sẽ tiếp quản. Việc chuyển đổi sang quan điểm mới được kích hoạt bởi chứng cứ dựa trên số lượng hợp pháp, chứ không phải do đồng hồ kích hoạt.
So sánh với Nhận thức chung hotstuff-family
MonadBFT được xây dựng dựa trên nền tảng của giao thức nhận thức chung HotStuff, nhưng nổi bật nhờ việc thực hiện sự kết hợp của một loạt các đặc tính lý tưởng. Các giao thức ban đầu thường được tối ưu hóa cho một số khía cạnh nhất định, chẳng hạn như thông lượng theo chuỗi hoặc giao tiếp tuyến tính, nhưng phải hy sinh các khía cạnh khác. MonadBFT độc đáo kết hợp độ phức tạp tin nhắn tuyến tính, cam kết theo chuỗi, khả năng kháng fork mạnh mẽ ở cuối, khả năng phản hồi ngay lập tức không có độ trễ cố định và cơ chế phục hồi hiệu quả, trong khi vẫn giữ được việc xác nhận nhanh chóng và đảm bảo tính khả dụng cao. Bảng dưới đây tóm tắt sự so sánh giữa MonadBFT và các giao thức BFT lãnh đạo luân phiên khác trên những khía cạnh chính này:
Điều này có ý nghĩa gì đối với các nhà phát triển và người dùng?
Đối với các nhà phát triển, MonadBFT có nghĩa là vài điểm:
Mô hình xác định cuối cùng đơn giản hơn: Sử dụng MonadBFT, bạn có thể coi khối có QC (phiếu bầu đa số tuyệt đối) là thực sự đã được xác định cuối cùng, vì giao thức sẽ xác định nó cuối cùng hoặc thực hiện hình phạt. Các nhà phát triển có thể tự tin thực hiện an toàn 1 xác nhận khối.
Cải thiện trải nghiệm người dùng của ứng dụng: Nếu bạn đang xây dựng một ứng dụng có thông lượng cao (sàn giao dịch, trò chơi, v.v.), đặc điểm độ trễ thấp và khả năng chống fork của MonadBFT sẽ chuyển thành trải nghiệm người dùng mượt mà hơn. Người dùng gần như có thể ngay lập tức thấy giao dịch của họ được xác nhận và không thường xuyên gặp phải tình trạng tái cấu trúc hoặc quay lại gây nhầm lẫn. Như vậy, bạn có thể thiết kế ứng dụng có tính cuối cùng và cập nhật nhanh.
Hành vi xác định: Quy tắc nghiêm ngặt hơn của MonadBFT (như yêu cầu đề xuất lại) giảm bớt sự không chắc chắn trong việc bao gồm khối. Do các yếu tố thời gian tinh vi như việc phiếu bầu hoặc thời gian hết hạn đến với nhà lãnh đạo trước, có ít "tình huống biên" hơn trong việc khối được bao gồm hoặc bị bỏ qua. MonadBFT thay thế sự mơ hồ nhạy cảm với thời gian này bằng các quy tắc rõ ràng và bằng chứng có thể xác minh. Điều này làm cho việc suy diễn tính chính xác của giao thức và kiểm tra trở nên dễ dàng hơn. Nó cũng cung cấp một cơ sở rõ ràng để nhận diện các nút lỗi (ví dụ, nếu ai đó không đề xuất lại hoặc đề xuất một khối xung đột, bạn sẽ biết họ đã vi phạm giao thức).
Không gian mở rộng: Nếu bạn là một nhà phát triển quan tâm đến khả năng mở rộng, MonadBFT cung cấp cho bạn không gian nhiều hơn trước khi gặp phải các nút thắt. So với giao thức thứ cấp, bạn có thể dễ dàng tăng kích thước khối hoặc số lượng người xác thực hơn. Hơn nữa, các chức năng như truyền khối mã hóa xóa có nghĩa là bạn có thể đẩy một lượng lớn dữ liệu qua mạng mà không tiêu tốn quá mức một nút đơn. Điều này giúp nhắm đến thông lượng cao hơn trở nên khả thi, mở ra không gian thiết kế cho các ứng dụng trên chuỗi tham vọng hơn.
Đối với người dùng cuối: Người dùng thông thường sẽ không hiểu bất kỳ nội dung nào mà chúng tôi thảo luận ở đây, nhưng họ sẽ cảm nhận được ảnh hưởng của nó. Với MonadBFT làm nền tảng cho chuỗi Monad, người dùng có thể mong đợi tất cả các đặc tính tốt mà không phải hy sinh sự phi tập trung và khả năng chống kiểm duyệt.
Xác nhận nhanh hơn: Giao dịch (như gửi token, trao đổi tài sản, đúc NFT, thực hiện giao dịch) sẽ được xác nhận nhanh chóng.
Giảm thiểu sự cố: Tính nhất quán của trạng thái chuỗi cao hơn, vì những thứ như fork cuối cùng, vốn thuộc về tái cấu trúc, đã được loại bỏ.
Công bằng và minh bạch: Cải thiện nhận thức chung đồng nghĩa với việc hoạt động của chuỗi công bằng hơn. Không một xác thực đơn lẻ nào có thể dễ dàng kiểm tra giao dịch hoặc thao tác sắp xếp giữa các khối.
Kết luận
Tóm tắt lại, MonadBFT đã giới thiệu bốn đổi mới cốt lõi dựa trên sự đồng thuận theo phong cách HotStuff theo kiểu chuỗi:
Kháng cự phân nhánh đuôi: MonadBFT là giao thức BFT theo kiểu pipeline đầu tiên loại bỏ cuộc tấn công phân nhánh đuôi. Nó đạt được điều này bằng cách để lãnh đạo tiếp theo đề xuất lại khối đã bỏ phiếu lần trước trong trường hợp lãnh đạo trước thất bại, hoặc trình bày chứng chỉ không cần chứng thực (NEC), chứng minh rằng khối đó thiếu sự hỗ trợ. Điều này đảm bảo rằng bất kỳ khối nào nhận được sự hỗ trợ áp đảo đều không bị bỏ qua, từ đó bảo vệ phần thưởng cho lãnh đạo trung thực và ngăn chặn việc tái tổ chức ác ý cũng như khai thác MEV xuyên khối.
Tính cuối cùng của đầu cơ một vòng: Các xác nhận viên có thể xác nhận khối sau một lần truyền thông một vòng (một người lãnh đạo đề xuất và bỏ phiếu), cung cấp cho khách hàng sự đảm bảo bao gồm ngay lập tức. Sự xác nhận đầu cơ này chỉ được khôi phục khi có cuộc tấn công tương đương của người lãnh đạo (một hành động có thể được chứng minh và trừng phạt), khiến nó trở thành giả thuyết an toàn trong thực tế.
Phản hồi lạc quan: Giao thức hoạt động với tốc độ mạng, không có độ trễ cố hữu. Lãnh đạo ngay lập tức thúc đẩy Nhận thức chung sau khi nhận được các phiếu cần thiết, thay đổi tầm nhìn xảy ra ngay lập tức sau khi quan sát thấy thời gian quá hạn của số người hợp lệ, thay vì chờ đợi khoảng thời gian cố định. Thiết kế phản hồi lạc quan này tối thiểu hóa thời gian chờ và tối đa hóa thông lượng, đồng thời vẫn có thể xử lý một cách vững chắc khi xảy ra bất đồng bộ và lỗi.
Giao tiếp tuyến tính: Trên đường hạnh phúc (tức là khi người lãnh đạo là trung thực), độ phức tạp của thông điệp và xác minh có mối quan hệ tuyến tính với số lượng người xác minh. MonadBFT giữ lại mô hình giao tiếp hiệu quả của HotStuff, sử dụng chữ ký tổng hợp và lãnh đạo đơn giản để phát sóng đến người xác minh, cho phép giao thức mở rộng đến hàng trăm người xác minh mà không gặp phải tắc nghẽn hiệu suất.