Trong phần đầu tiên , chúng ta đã xem xét cách thức hoạt động của cơ chế đồng thuận PBFT (Practical Byzantine Fault Tolerance) cổ điển và cách hoạt động của phiên bản đầu tiên của HotStuff. Chúng tôi cũng thấy cách MonadBFT giải quyết vấn đề tail fork của HotStuff, trong đó các khối hợp lệ đôi khi bị loại bỏ trong hệ thống đường ống.
Vấn đề về ngã ba đuôi này tạo ra hai vấn đề chính: 1) nó làm gián đoạn phần thưởng cho những người xây dựng khối trung thực và 2) nó có thể khiến mạng bị đình trệ.
MonadBFT đưa ra quy tắc đề xuất lại và cơ chế bỏ phiếu không được hỗ trợ để loại bỏ vấn đề fork đuôi, đảm bảo rằng bất kỳ khối nào được chấp thuận hợp lệ từ người đề xuất trung thực đều có thể vào Chuỗi.
Trong phần hai, chúng ta sẽ khám phá thêm hai tính năng của MonadBFT: 1) tính chất cuối cùng mang tính suy đoán và 2) khả năng phản hồi lạc quan. Chúng tôi cũng sẽ tìm hiểu tác động của MonadBFT đối với các nhà phát triển.
Vòng đơn đầu cơ cuối cùng
Ngoài khả năng chống lại fork đuôi, một tính năng quan trọng khác của MonadBFT là tính cuối cùng của suy đoán trong một vòng.
Trên thực tế, điều này có nghĩa là máy trạm và người dùng có thể nhận được xác nhận giao dịch ngay khi một khối nhận được đa số phiếu bầu, thậm chí trước khi vòng tiếp theo hoàn tất.
Hãy nhớ rằng trong giao thức HotStuff cơ bản, một khối thường trải qua ít nhất hai giai đoạn (như Fast-Hotstuff và Diem-BFT) trước khi được coi là cuối cùng (không thể đảo ngược): một giai đoạn để có được chứng chỉ đủ số phiếu (QC) (khóa khối với ≥2f+1 phiếu bầu) và giai đoạn thứ hai là để người lãnh đạo tiếp theo xây dựng và gửi một khối dựa trên chứng chỉ đủ số phiếu (QC) đó.
Cam kết hai giai đoạn này là cần thiết để đảm bảo an toàn: khi đủ nút trung thực khóa một khối, các khối xung đột không thể đạt được số lượng cần thiết và vòng cam kết tiếp theo sẽ biến nó thành vĩnh viễn. Do đó, máy trạm thường phải đợi đến khối tiếp theo hoặc vòng tiếp theo để biết liệu giao dịch trước đó đã được hoàn tất hay chưa.
Về cơ bản, MonadBFT cho phép các giao dịch được cho rằngcuối cùng (an toàn để vận hành) chỉ sau một vòng bỏ phiếu. Đây được gọi là tính chất quyết định mang tính suy đoán .
Khi người lãnh đạo đề xuất một khối và người xác thực bỏ phiếu để thành lập QC cho khối đó, khối đó sẽ ở trạng thái Đã bỏ phiếu (được khóa theo số lượng đủ để biểu quyết). Trong MonadBFT, khi trình xác thực tạo QC, nó sẽ ngay lập tức thực hiện các giao dịch của khối đó và thậm chí gửi xác nhận sơ bộ cho máy trạm để cho biết khối đó được chấp nhận (theo suy đoán). Điều này giống như nói rằng “ Chúng tôi có phần lớn mọi người đồng ý về khối này. Trừ khi có điều gì đó rất bất ngờ xảy ra, khối này có thể cho rằng đã được xác nhận”.
Sự xác nhận tức thời này là lạc quan. Khối vẫn chưa được ghi vào sổ cái. Điều này sẽ xuất hiện trong đề xuất tiếp theo và hầu hết sẽ xác nhận (QC-on QC), nhưng trong trường hợp bình thường, không có gì có thể hoàn tác được. Trường hợp duy nhất mà lệnh chặn được thực hiện theo suy đoán có thể bị thu hồi là khi người lãnh đạo thực hiện một cuộc tấn công tương đương (tức là đề xuất hai lệnh chặn khác nhau ở cùng độ cao để chia đôi số phiếu bầu).
Bạn có thể coi tính chất cuối cùng mang tính đầu cơ như một sản phẩm phụ tuyệt vời của sự kháng cự đối với fork đuôi. Việc phản đối fork đuôi đảm bảo rằng ngay cả khi người dẫn đầu tiếp theo bị sụp đổ, đề xuất hiện tại sẽ không bị loại bỏ (nhờ đề xuất lại và các quy tắc của NEC). Trường hợp duy nhất mà một khối được thực hiện theo suy đoán bị loại bỏ là nếu người đề xuất ban đầu thực hiện một cuộc tấn công tương đương (lỗi ký kép có thể chứng minh là độc hại), đó là: 1) có thể phát hiện được thông qua các QC xung đột; 2) có thể bị trừng phạt; và 3) cực kỳ hiếm.
Trong các giao thức trước đây, họ không đảm bảo rằng người lãnh đạo tiếp theo sẽ đề xuất lại khối trước đó, do đó có thể có fork đuôi, phá vỡ giả định mang tính suy đoán.
Phản ứng lạc quan
Trong hầu hết các giao thức đồng thuận, đều có thời gian chờ tích hợp sau mỗi vòng, chẳng hạn như thời gian đệm hoặc thời gian chờ. Việc này nhằm đảm bảo rằng tất cả tin nhắn đã đến nơi trước khi tiếp tục. Đây là cơ chế bảo vệ được thiết kế để xử lý các tình huống xấu nhất, chẳng hạn như người đứng đầu bị sập hoặc không gửi bất kỳ tin nhắn nào.
Những khoảng thời gian chờ này thường quá thận trọng. Nếu mạng hoạt động bình thường và tất cả trình xác thực đều hoạt động chính xác thì thời gian chờ cố định sẽ trở thành chi phí không cần thiết. Việc chặn có thể được hoàn thành sớm hơn, nhưng giao thức đã trì hoãn lại như một biện pháp phòng ngừa.
MonadBFT mang lại khả năng phản hồi lạc quan , nghĩa là giao thức có thể tiến hành ngay lập tức dựa trên thông tin mạng thay vì luôn dựa vào bộ hẹn giờ cố định. Nguyên tắc thiết kế ở đây có thể được tóm tắt là " nhanh khi có thể và kiên nhẫn khi cần thiết ".
MonadBFT được thiết kế sao cho trong những trường hợp bình thường và ngay cả trong quá trình phục hồi sau lỗi, nó sẽ không tạm dừng chờ thời gian chờ được xác định trước nếu không cần thiết.
- Trên con đường hạnh phúc (có nghĩa là chúng ta có một nhà lãnh đạo trung thực) : Không có sự chậm trễ cố định trong các đề xuất hoặc bỏ phiếu. Khi đến lượt người dẫn đầu, nó sẽ đề xuất chặn. Ngay khi người xác thực nhận được đề xuất hợp lệ, họ sẽ bỏ phiếu ngay lập tức. Khi người dẫn đầu (hay chính xác hơn là người dẫn đầu tiếp theo, vì trong đường ống HotStuff, phiếu bầu được gửi đến người đề xuất tiếp theo) thu thập được 2f+1 phiếu bầu, QC sẽ được hình thành và có thể được truyền bá. 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.

Trên thực tế, điều này có nghĩa là nếu độ trễ mạng giữa nút là 100ms, thì sự đồng thuận 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ó sẽ không đợi, chẳng hạn, một giây đầy đủ của "thời gian chờ" nếu không cần thiết. Điều này khác với mô hình khe cắm và kỷ nguyên được mạng chủ Ethereum sử dụng. Trên Ethereum, khoảng thời gian tạo khối được cố định ở mức 12 giây. Ngay cả khi mọi người đã sẵn sàng trước thì thỏa thuận vẫn sẽ chờ.
Phương pháp của MonadBFT loại bỏ sự chậm trễ không cần thiết . Nó vẫn giữ nguyên cấu trúc HotStuff theo đường ống, nhưng loại bỏ quy tắc cứng nhắc là "phải đợi Δ giây" trong những trường hợp bình thường. Điều này có nghĩa là nó có thể vượt trội hơn các hệ thống bị giới hạn thời gian về khả năng phản hồi mà không ảnh hưởng đến tính an toàn.
- Trên con đường không vui (lỗi của người dẫn đầu) : Trong nhiều giao thức đồng thuận, khi người dẫn đầu không đề xuất một khối, nút khác sẽ không nhận ra điều này cho đến sau thời gian chờ Δ. Ví dụ, nếu Δ là 1 giây, thì về cơ bản thời gian đó bị lãng phí. MonadBFT xử lý vấn đề này theo cách khác. Khi trình xác thực phát hiện ra đề xuất bị mất, họ sẽ ngay lập tức phát đi thông báo hết thời gian (TC hoặc Chứng chỉ hết thời gian). Khi hết thời gian tạm dừng 2f+ lần, người dẫn đầu tiếp theo sẽ tiếp quản. Sự chuyển đổi sang quan điểm mới được kích hoạt bởi bằng chứng dựa trên số phiếu biểu quyết, chứ không phải bởi đồng hồ.

So sánh với sự đồng thuận của gia đình hotstuff
MonadBFT được xây dựng dựa trên sê-ri giao thức đồng thuận HotStuff, nhưng nổi bật hơn nhờ triển khai sê-ri hợp các tính năng mong muốn . Các giao thức ban đầu thường được tối ưu hóa cho một số khía cạnh, chẳng hạn như thông lượng đường ống hoặc truyền thông tuyến tính, nhưng phải hy sinh các khía cạnh khác. MonadBFT kết hợp độc đáo độ phức tạp của tin nhắn tuyến tính, cam kết theo đường ống, khả năng chống lại tail fork mạnh mẽ, khả năng phản hồi ngay lập tức mà không có độ trễ cố định và cơ chế phục hồi hiệu quả, đồng thời vẫn đảm bảo hoàn thiện nhanh chóng và tính khả dụng cao. Bảng sau đây tóm tắt cách MonadBFT so sánh với các giao thức BFT có đầu xoay khác trên các khía cạnh chính sau:

Điều này có ý nghĩa gì đối với 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à:
- Mô hình xác thực đơn giản hơn: Với MonadBFT, bạn có thể coi một khối có QC (phiếu bầu đa số tuyệt đối) là đã được xác thực hiệu quả, vì giao thức sẽ xác thực khối đó hoặc áp dụng hình phạt. Các nhà phát triển có thể hoạt động an toàn với mức độ tin cậy cao chỉ với xác nhận 1 khối.
- Trải nghiệm người dùng được cải thiện cho ứng dụng của bạn: 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.), độ trễ thấp và khả năng chống fork của MonadBFT sẽ mang lại trải nghiệm người dùng mượt mà hơn. Người dùng sẽ thấy hành động của mình được xác nhận gần như ngay lập tức và không thường xuyên phải đối mặt với việc tổ chức lại hoặc khôi phục lại gây nhầm lẫn. Điều này cho phép bạn thiết kế các ứng dụng hoàn thiện và cập nhật nhanh chóng.
- Hành vi xác định: Các quy tắc chặt chẽ hơn của MonadBFT (chẳng hạn như các yêu cầu đề xuất lại) làm giảm sự không chắc chắn về việc đưa khối vào. Có ít "trường hợp ngoại lệ" hơn khi các khối được đưa vào hoặc bỏ qua do các yếu tố thời gian tinh tế như liệu phiếu bầu hay thời gian chờ có đến tay người dẫn đầu trước hay không. MonadBFT thay thế sự mơ hồ nhạy cảm về 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 được. Điều này giúp dễ dàng hơn trong việc suy luận về tính đúng đắn của giao thức và kiểm tra nó. Nó cũng cung cấp cơ sở rõ ràng để xác định 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 biết họ đã vi phạm giao thức).
- Khoảng trống mở rộng: Nếu bạn là một nhà phát triển quan tâm đến mở rộng, MonadBFT cung cấp cho bạn nhiều khoảng trống hơn trước khi gặp phải tình trạng tắc nghẽn. Bạn có thể tăng kích thước khối hoặc số lượng trình xác thực dễ dàng hơn nhiều so với giao thức lần. Và các tính năng như truyền khối mã hóa xóa có nghĩa là bạn có thể đẩy lượng lớn dữ liệu qua mạng mà không gây quá tải cho một nút nào. Điều này giúp có thể đạt được thông lượng cao hơn, mở ra không gian thiết kế cho các ứng dụng Chuỗi đầy tham vọng hơn.
Đối với người dùng cuối: Người dùng trung bình sẽ không hiểu bất cứ điều gì chúng ta thảo luận ở đây, nhưng họ sẽ cảm nhận được tác động của nó. Với MonadBFT là nền tảng cho Monad Chuỗi, người dùng có thể mong đợi tất cả các tính năng tốt sau mà không phải hy sinh phi tập trung và khả năng chống kiểm duyệt.
- Xác nhận nhanh hơn: Các 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.
- Ít bất ngờ hơn: Trạng thái Chuỗi nhất quán hơn vì những thứ như fork đuôi, về cơ bản là sự tổ chức lại, đã bị loại bỏ.
- Công bằng và minh bạch: Sự đồng thuận được cải thiện gián tiếp có nghĩa là Chuỗi hoạt động công bằng hơn. Không có trình xác thực nào có thể dễ dàng kiểm duyệt các giao dịch hoặc thao túng sắp xếp giữa các khối.
Phần kết luận
Tóm lại, MonadBFT giới thiệu bốn cải tiến cốt lõi dựa trên sự đồng thuận theo phong cách HotStuff:
Khả năng chống lại fork tail fork: MonadBFT là giao thức BFT theo đường ống đầu tiên có khả năng loại bỏ các cuộc tấn công tail fork. Điều này đạt được bằng cách người lãnh đạo tiếp theo đề xuất lại khối đã bỏ phiếu lần trong trường hợp người lãnh đạo trước đó thất bại, hoặc bằng cách trình Giấy chứng nhận không xác nhận (NEC) , chứng minh khối đó không nhận được sự ủng hộ. Điều này đảm bảo rằng bất kỳ khối nào có đa số phiếu ủng hộ sẽ không bị loại bỏ, do đó bảo vệ phần thưởng cho những nhà lãnh đạo trung thực và ngăn chặn các cuộc tổ chức lại có ác ý cũng như rút MEV giữa các khối.
Tính chất quyết định đầu cơ một vòng: Người xác thực có thể xác nhận các khối sau một vòng giao tiếp duy nhất (một đề xuất và phiếu bầu của người dẫn đầu), cung cấp cho máy trạm sự đảm bảo bao gồm ngay lập tức. Sự xác nhận mang tính suy đoán này chỉ có thể phục hồi nếu người lãnh đạo thực hiện một cuộc tấn công tương đương (một hành động có thể được chứng minh và trừng phạt), khiến nó trở thành một giả định an toàn trong thực tế.
Khả năng phản hồi lạc quan: Giao thức chạy ở tốc độ mạng mà không có độ trễ cố hữu. Người lãnh đạo đưa ra sự đồng thuận ngay khi nhận được số phiếu cần thiết và xem những thay đổi diễn ra ngay sau khi hết thời gian biểu quyết, thay vì phải chờ một khoảng thời gian cố định. Thiết kế phản hồi lạc quan này giúp giảm thiểu độ trễ và tối đa hóa thông lượng, đồng thời vẫn mạnh mẽ trước tình trạng không đồng bộ và lỗi.
Giao tiếp tuyến tính: Trên con đường hạnh phúc (tức là người lãnh đạo trung thực), độ phức tạp của thông điệp và xác minh sẽ tăng tuyến tính theo số lượng người xác thực. MonadBFT vẫn giữ nguyên mô hình giao tiếp hiệu quả của HotStuff, sử dụng chữ ký tổng hợp và phát sóng đơn giản từ người dẫn đầu đến người xác thực, cho phép giao thức mở rộng lên hàng trăm người xác thực mà không bị tắc nghẽn hiệu suất.




