
Phân tích MonadBFT (Phần 2): Ý nghĩa đối với nhà phát triển và người dùng
Tuyển chọn TechFlowTuyển chọn TechFlow

Phân tích MonadBFT (Phần 2): Ý nghĩa đối với nhà phát triển và người dùng
MonadBFT giới thiệu bốn đổi mới cốt lõi dựa trên cơ chế đồng thuận kiểu流水线 HotStuff: chống phân nhánh đuôi, hoàn tất trong một vòng bỏ phiếu theo hướng tấn công, phản hồi tích cực và giao tiếp tuyến tính.
Trong phần đầu tiên, chúng tôi đã tìm hiểu 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 thức vận hành của các phiên bản HotStuff ban đầu. Chúng tôi cũng đã tìm hiểu cách MonadBFT giải quyết vấn đề phân nhánh đuôi (tail fork), tức là các khối hợp lệ đôi khi bị loại bỏ trong hệ thống pipeline.
Vấn đề phân nhánh đuôi này gây 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, 2) Có thể dẫn đến tình trạng mạng bị đình trệ.
MonadBFT giới thiệu quy tắc đề xuất lại và cơ chế bỏ phiếu không cần ủng hộ trước (NEC - No-Endorsement Commit) để loại bỏ hoàn toàn vấn đề phân nhánh đuôi, đảm bảo rằng mọi khối được phê duyệt đúng cách từ một người đề xuất trung thực đều sẽ được đưa vào chuỗi.
Trong phần thứ hai này, chúng ta sẽ khám phá thêm hai đặc điểm khác của MonadBFT: 1) Tính tất toán đầu cơ một vòng và 2) Phản hồi tích cực. Chúng ta cũng sẽ xem xét ảnh hưởng của MonadBFT đối với các nhà phát triển.
Tất toán đầu cơ một vòng
Bên cạnh khả năng chống phân nhánh đuôi, một đặc điểm chính khác của MonadBFT là tất toán đầu cơ 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ể nhận được xác nhận giao dịch ngay sau khi 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ớ lại 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à cuối cùng (không thể đảo ngược): giai đoạn đầu tiên đạt được chứng chỉ hội đủ điều kiện (QC) (khóa khối bằng ≥2f+1 phiếu bầu), giai đoạn thứ hai là người lãnh đạo tiếp theo xây dựng và đề xuất khối dựa trên chứng chỉ hội đủ điều kiện (QC) đó.
Việc xác nhận hai giai đoạn này là cần thiết để đảm bảo an toàn: một khi đủ nhiều nút trung thực khóa một khối, thì bất kỳ khối nào mâu thuẫn với nó đều không thể đạt được hội đủ điều kiện, và việc xác nhận ở vòng tiếp theo sẽ làm cho nó trở nên vĩnh viễn. Do đó, khách hàng thường có thể phải chờ đợi đến khi khối tiếp theo hoặc vòng tiếp theo được tạo ra mới biết được giao dịch trước đó đã được xác nhận hay chưa.
MonadBFT về cơ bản cho phép giao dịch được coi là đủ cuối cùng (an toàn để thao tác) chỉ sau một vòng bỏ phiếu. Đây chính là thứ được gọi là tất toán đầu cơ.
Khi người lãnh đạo đề xuất một khối và các trình xác thực bỏ phiếu để hình thành QC cho khối đó, khối đó được coi là đã được bỏ phiếu (được hội đủ điều kiện khóa). Trong MonadBFT, ngay khi hình thành QC, các trình xác thực sẽ lập tức thực thi các giao dịch trong khối đó, thậm chí gửi xác nhận sơ bộ tới khách hàng, cho thấy khối đã được chấp nhận (một cách đầu cơ). Điều này giống như đang nói rằng “Chúng tôi đã có đa số đồng thuận về khối này. Trừ khi xảy ra tình huống rất bất ngờ, khối này có thể được coi là đã được xác nhận.”
Xác nhận tức thời này mang tính lạc quan. Khối vẫn chưa được cam kết vào sổ cái. Việc này sẽ xảy ra khi có đề xuất tiếp theo xác nhận nó (QC-on-QC), nhưng trong điều kiện bình thường, sẽ không có gì đảo ngược lại nó. Trường hợp duy nhất khiến khối thực thi đầu cơ bị hủy là khi người lãnh đạo tấn công tương đương (tức là đề xuất hai khối khác nhau tại cùng một độ cao nhằm chia rẽ phiếu bầu).
Bạn có thể xem tính tất toán đầu cơ như một sản phẩm phụ tuyệt vời của việc chống phân nhánh đuôi. Khả năng chống phân nhánh đuôi đảm bảo rằng ngay cả khi người lãnh đạo tiếp theo sập, đề xuất hiện tại cũng sẽ không bị loại bỏ (nhờ vào quy tắc đề xuất lại và NEC). Trường hợp duy nhất khiến khối thực thi đầu cơ bị loại là khi người đề xuất gốc thực hiện tấn công tương đương (lỗi ký kép có thể chứng minh là ác ý), và trường hợp này: 1) có thể được phát hiện thông qua QC xung đột; 2) có thể bị phạt; 3) rất 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 đó phân nhánh đuôi là có thể xảy ra, phá vỡ giả định đầu cơ.
Phản hồi tích cực
Trong hầu hết các giao thức đồng thuận, sau mỗi vòng sẽ có mộtkhoảng chờ tích hợp, ví dụ như khoảng đệm hoặc thời gian chờ. Đây là để đảm bảo tất cả tin nhắn đều đã đến trước khi tiếp tục tiến lên. Đây là một cơ chế bảo vệ nhằm xử lý trường hợp xấu nhất, ví dụ như người lãnh đạo sập hoặc hoàn toàn không gửi thông tin nào.
Những khoảng 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 hành xử đúng, thì khoảng chờ cố định sẽ trở thành chi phí không cần thiết. Các khối có thể được hoàn thành nhanh hơn, nhưng giao thức lại trì hoãn để phòng ngừa rủi ro.
MonadBFT giới thiệu phản hồi tích cự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à “nhanh khi có thể, kiên nhẫn chỉ khi cần”.
Thiết kế của MonadBFT giúp nó trong điều kiện bình thường, thậm chí khi phục hồi lỗi, sẽ không tạm dừng chờ đợi thời gian chờ định sẵn nếu không cần thiết.
- Trên con đường thuận lợi (có nghĩa là chúng ta có một người lãnh đạo trung thực): Không có độ trễ tích hợp nào trong việc đề xuất hoặc bỏ phiếu. Ngay khi đến lượt người lãnh đạo, anh ta sẽ đề xuất một khối. Các trình xác thực ngay lập tức bỏ phiếu ngay khi nhận được đề xuất hợp lệ. Khi người lãnh đạo (hoặc chính xác hơn là người lãnh đạo tiếp theo, vì trong HotStuff kiểu pipeline, phiếu bầu được gửi tới người đề xuất tiếp theo) thu thập được 2f+1 phiếu, QC được hình thành và có thể lan truyền. Trong thiết kế phản hồi tích cực, điều này sẽ kích hoạt ngay 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ì đồng thuận có thể hoàn thành một vòng chỉ trong vài trăm mili giây (cộng thêm chi phí tính toán và tổng hợp).
Nó sẽ không chờ đợi nếu không cần, ví dụ như cả một giây cho "thời gian khe". Điều này khác với mô hình khe và kỷ nguyên mà Ethereum mainnet á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 đã sẵn sàng sớm hơn, giao thức 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ó giữ lại cấu trúc HotStuff kiểu pipeline, nhưng loại bỏ quy định cứng nhắc “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 các hệ thống ràng buộc thời gian về mặt phản hồi, mà không hy sinh tính an toàn.
- Trên con đường không thuận lợi (người lãnh đạo thất bại): Trong nhiều giao thức đồng thuận, khi người lãnh đạo không đề xuất khối, các nút khác chỉ nhận ra điều này sau khi chờ quá thời gian Δ. Ví dụ, nếu Δ là 1 giây, thì khoảng thời gian này về cơ bản bị lãng phí. Cách xử lý của MonadBFT khác biệt. Khi các trình xác thực phát hiện mất đề xuất, họ sẽ ngay lập tức phát tán tin nhắn timeout (TC hoặc chứng chỉ timeout). Ngay khi có 2f+1 lần timeout, người lãnh đạo tiếp theo sẽ tiếp quản. Việc chuyển sang quan điểm mới được kích hoạt bởi bằng chứng dựa trên hội đủ điều kiện, chứ không phải do đồng hồ kích hoạt.

So sánh với các giao thức đồng thuận dòng hotstuff-family
MonadBFT được xây dựng trên nền tảng các giao thức đồng thuận dòng HotStuff, nhưng nổi bật nhờ thực hiện được tổ hợp một loạt đặc tính lý tưởng. Các giao thức trước thường được tối ưu hóa theo một số chiều nhất định, như thông lượng pipeline hay độ phức tạp thông điệp tuyến tính, nhưng phải đánh đổi ở những khía cạnh khác. MonadBFT độc đáo khi kết hợp đồng thời độ phức tạp thông điệp tuyến tính, cam kết pipeline, khả năng chống phân nhánh đuôi mạnh mẽ, phản hồi tức thời không có độ trễ cố định, cơ chế phục hồi hiệu quả, đồng thời vẫn giữ được đảm bảo tất toán nhanh và khả năng sẵn sàng cao. Bảng dưới đây tóm tắt so sánh MonadBFT với các giao thức BFT luân phiên lãnh đạo khác theo các chiều quan trọng này:

Điều này có ý nghĩa gì đối với nhà phát triển và người dùng?
Đối với nhà phát triển, MonadBFT mang lại một số điểm sau:
- Mô hình tất toán đơn giản hơn: Với MonadBFT, bạn có thể coi các khối có QC (đa số phiếu bầu) là về cơ bản đã cuối cùng, vì giao thức sẽ hoặc là xác nhận nó hoặc là trừng phạt. Các nhà phát triển có thể thao tác an toàn với xác nhận 1 khối với độ tự tin cao.
- Cải thiện trải nghiệm người dùng ứng dụng: Nếu bạn đang xây dựng một ứng dụng thông lượng cao (sàn giao dịch, trò chơi, v.v.), đặc tính độ trễ thấp và chống phân nhánh 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ư ngay lập tức thấy thao tác của họ được xác nhận, và sẽ không thường xuyên gặp phải việc tái tổ chức hay hoàn tác gây bối rối. Nhờ vậy, bạn có thể thiết kế các ứng dụng có tính tất toán và cập nhật nhanh.
- Hành vi chắc chắn: Các quy tắc nghiêm ngặt hơn của MonadBFT (như yêu cầu đề xuất lại) làm giảm sự bất định trong việc đưa khối vào. Có ít trường hợp “biên” hơn về việc khối bị đưa vào hay bỏ qua do các yếu tố thời gian tinh vi như liệu phiếu bầu hay timeout đến người lãnh đạo trước. 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ể kiểm chứng. Điều này làm cho việc suy luận tính đúng đắn của giao thức và kiểm thử dễ dàng hơ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 khối xung đột, bạn biết rằng 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 mở rộng, MonadBFT cung cấp cho bạn nhiều không gian hơn trước khi gặp瓶颈. So với các giao thức bậc hai, bạn có thể dễ dàng tăng kích thước khối hoặc số lượng trình xác thực hơn. Và các tính năng như truyền khối mã hóa xóa (erasure coding) có nghĩa là bạn có thể đẩy lượng lớn dữ liệu qua mạng mà không làm quá tải từng nút riêng lẻ. Điều này khiến việc hướng tới thông lượng cao hơn trở nên khả thi, mở rộng 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 cứ điều gì chúng tôi đang 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 sau mà không phải hy sinh tính 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 bất ngờ: Trạng thái chuỗi ổn định hơn vì những thứ về cơ bản là tái tổ chức như phân nhánh đuôi đã bị loại bỏ.
- Công bằng và minh bạch: Sự cải thiện trong đồng thuận gián tiếp có nghĩa là chuỗi hoạt động công bằng hơn. Không một trình xác thực đơn lẻ nào có thể dễ dàng kiểm duyệt giao dịch hay can thiệp vào thứ tự giữa các khối.
Kết luận
Tóm lại, MonadBFT giới thiệu bốn đổi mới cốt lõi dựa trên mô hình đồng thuận kiểu HotStuff pipeline:
Chống phân nhánh đuôi: MonadBFT là giao thức BFT pipeline đầu tiên loại bỏ hoàn toàn tấn công phân nhánh đuôi. Nó đạt được điều này bằng cách yêu cầu người lãnh đạo tiếp theo đề xuất lại khối vừa được bỏ phiếu nếu người lãnh đạo trước thất bại, hoặc cung cấp chứng chỉ không ủng hộ (NEC) để chứng minh 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 đa số ủng hộ sẽ không bị loại bỏ, từ đó bảo vệ phần thưởng cho người 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ất toán đầu cơ một vòng: Các trình xác thực có thể xác nhận khối sau một vòng truyền thông (một người đề xuất và bỏ phiếu), cung cấp đảm bảo tức thì về việc đưa vào cho khách hàng. Việc xác nhận đầu cơ này chỉ bị đảo ngược khi xảy ra tấn công tương đương từ người lãnh đạo (hành vi có thể chứng minh và trừng phạt), khiến nó trở thành một giả định an toàn trong thực tiễn.
Phản hồi tích cực: Giao thức hoạt động với tốc độ mạng, không có độ trễ vốn có. Người lãnh đạo ngay lập tức thúc đẩy đồng thuận ngay khi nhận được phiếu bầu cần thiết, việc chuyển quan điểm xảy ra ngay khi quan sát thấy số lượng timeout đủ điều kiện, thay vì chờ khoảng thời gian timeout cố định. Thiết kế phản hồi tích cực này giảm thiểu thời gian chờ và tối đa hóa thông lượng, đồng thời vẫn xử lý vững chắc khi xảy ra bất đồng bộ và lỗi.
Thông tin liên lạc tuyến tính: Trên con đường thuận lợi (tức là người lãnh đạo trung thực), độ phức tạp của thông điệp và xác thực tỷ lệ tuyến tính với số lượng trình xác thực. MonadBFT giữ lại mô hình truyền thông 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 lãnh đạo tới các trình xác thực, giúp giao thức có thể mở rộng đến hàng trăm trình xác thực mà không gặp瓶颈 hiệu suất.
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News














