Giải thích về thuật toán đồng thuận Byzantine Fault Tolerance (BFT)

Byzantine Fault Tolerance (hay Hệ thống chịu lỗi Byzantine – BFT) được cho là có thể giải quyết được vấn đề của bài toán Byzantine. Điều này có nghĩa là thuật toán đồng thuận này có thể tiếp tục hoạt động ngay cả khi một số node bị lỗi.

Byzantine Fault Tolerance là gì?

Byzantine Fault Tolerance (hay Hệ thống chịu lỗi Byzantine – BFT) là hệ thống có thể giải quyết được vấn đề của bài toán Byzantine. Điều này có nghĩa là hệ thống BFT có thể tiếp tục hoạt động ngay cả khi một số node bị lỗi hoặc thực hiện hành động gây hại cho mạng chung.

Có nhiều giải pháp khả thi cho vấn đề cho bài toán các vị tướng Byzantine, do đó, có nhiều cách để xây dựng một Hệ thống chịu lỗi Byzantine (BFT). Tương tự như vậy, có nhiều cách khác nhau để một blockchain đạt được hệ thống chịu lỗi Byzantine và điều mà chúng ta có ở đây chính là các thuật toán đồng thuận (consensus).

Hệ thống chịu lỗi Byzantine

Bài toán các vị tướng Byzantine

Bài toán các vị tướng Byzantine được đưa ra bởi 3 nhà khoa học máy tính Leslie Lamport, Robert Shostak và Marshall Pease trong một báo cáo khoa học mang tên “The Byzantine Generals Problem” vào năm 1982. Đây là bài toán tổng quát hoá của bài toán 2 vị tướng quân.

Bài toán các vị tướng Byzantine miêu tả về một nhóm các vị tướng trong đội quân Byzantine (quân đội đế quốc Đông La Mã), tiến hành vây hãm 1 thành phố. Các vị tướng cần trao đổi để đạt được đến 1 thoả thuận về kế hoạch tấn công thành phố đó. Trong trường hợp đơn giản nhất, họ thoả thuận về việc nên tấn công hay rút lui.

Một số có thể muốn tấn công, nhưng một số thì lại muốn rút lui, và vấn đề là nếu chỉ có một bộ phận tấn công riêng lẻ, thì họ sẽ gặp thất bại, và đó là kế hoạch tồi tệ hơn việc cùng tấn công hoặc cùng rút lui.

Mọi thứ sẽ trở nên phức tạp khi mà một vị tướng sẽ có thể gửi tin nhắn đi cho các vị tướng khác. Chẳng hạn như trong trường hợp có 5 vị tướng, 2 ông đã phát tín hiệu muốn tấn công, 2 ông đã phát tín hiệu muốn rút lui, còn ông thứ 5 lại chơi trò 2 mang, nhắn với 2 ông muốn tấn công rằng mình muốn tấn công, còn nhắn với 2 ông muốn rút lui rằng mình sẽ rút lui.

Khi đó phe tấn công nghĩ rằng tấn công là lựa chọn đa số và họ tấn công (và sẽ thất bại), phe rút lui thì nghĩ rằng rút lui là lựa chọn đa số và họ rút lui. Họ đã không đạt được sự đồng thuận (về việc có cùng ý kiến).

Kịch bản của các tướng Byzantine là một sự tương tự cho vấn đề mà các hệ thống máy tính phân tán phải đối mặt: Làm thế nào để chúng ta đạt được sự đồng thuận khi phải đối mặt với các tác nhân không đáng tin cậy và gặp trục trặc đe dọa gây mất ổn định hệ sinh thái?

Hệ thống tập trung và phân cấp (Centralized and Decentralized)

Chỉ các hệ thống phi tập trung mới phải đối mặt với vấn đề của Byzantine, vì chúng không có nguồn thông tin đáng tin cậy và không có cách nào để xác minh thông tin mà chúng nhận được từ các thành viên khác trong mạng.

Ngược lại, trong các hệ thống tập trung, một cơ quan có thẩm quyền được tin cậy để công bố thông tin đúng sự thật và ngăn chặn thông tin sai lệch hoặc gian lận được lan truyền trên toàn mạng.

Ví dụ: Trong hệ thống tài chính truyền thống, các ngân hàng được tin tưởng trong việc hiển thị số dư và lịch sử giao dịch của người dùng. Nếu một ngân hàng cố gắng nói dối hoặc lừa gạt khách hàng của họ, thì một ngân hàng trung ương hoặc chính phủ sẽ đứng ra để khắc phục hành vi phạm lòng tin.

Cách Bitcoin giải quyết vấn đề chung của lỗi Byzantine

Bitcoin đã giải quyết vấn đề chung của Byzantine bằng cách sử dụng cơ chế đồng thuận Proof of Work để thiết lập một bộ quy tắc rõ ràng, khách quan cho blockchain.

Để thêm thông tin, được gọi là khối (block) vào blockchain, một thành viên của mạng phải xuất bản bằng chứng rằng họ đã đầu tư công sức đáng kể vào việc tạo ra khối. Công việc này đặt ra chi phí lớn cho người sáng tạo (creator) và do đó khuyến khích họ xuất bản thông tin trung thực.

Bởi vì các quy tắc là khách quan, không thể có bất đồng hoặc can thiệp vào thông tin trên mạng Bitcoin. Ngoài ra, một khi một khối đã được thêm vào chuỗi khối, nó sẽ rất khó để loại bỏ, khiến quá khứ của Bitcoin trở nên bất biến.

Do đó, tại mọi thời điểm, các thành viên của mạng Bitcoin có thể đồng ý về trạng thái của blockchain và tất cả các giao dịch trong đó. Mỗi node tự xác minh xem các khối có hợp lệ hay không dựa trên yêu cầu Proof of Work, và liệu các giao dịch có hợp lệ hay không dựa trên các yêu cầu khác.

Nếu bất kỳ thành viên nào của mạng cố gắng phát đi thông tin sai lệch, tất cả các node trên mạng sẽ ngay lập tức, nhận ra nó là không hợp lệ một cách khách quan và bỏ qua nó. Bởi vì mỗi node có thể xác minh tất cả thông tin trên chính mạng Bitcoin, nên không cần phải tin tưởng vào các thành viên khác của mạng, điều này làm cho Bitcoin trở thành một hệ thống cần sự tin cậy (trustless).

Lưu ý rằng thuật toán PoW không đảm bảo 100% khả năng chịu lỗi Byzantine, nhưng nhờ vào quá trình đào tốn kém và các kỹ thuật mã hóa đằng sau, PoW đã chứng tỏ là một trong những thuật toán đồng thuận an toàn và đáng tin cậy nhất cho các mạng blockchain.

Lời kết

Ngoài PoW thì hiện tại các thuật toán phổ biến nhất là PoS (Proof of Stake) và các biến thể của nó như dPoS (Delegated Proof of Stake), PoA (Proof of authority), dPow (Delayed Proof of work)….

PCB Tổng hợp

Leave a Reply

Your email address will not be published. Required fields are marked *

Back To Top