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
Dưới đây, mình sẽ giải thích về bài toán Byzantine và các vấn đề của nó để anh em hiểu rõ hơn về 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 vào năm 1982. Bài toán mô tả việc một nhóm các vị tướng Byzantine gặp các vấn đề liên lạc khi cố gắng đạt sự đồng thuận về bước đi tiếp.
Nếu tất cả các tướng tấn công cùng một lúc, họ sẽ thắng, nhưng nếu họ tấn công vào những thời điểm khác nhau, họ sẽ thua. Các vị tướng không có kênh liên lạc an toàn với nhau vì bất kỳ thông điệp nào họ gửi hoặc nhận có thể đã bị chặn hoặc lừa bởi những kẻ thù. Làm thế nào để các tướng có thể tổ chức tấn công cùng một lúc?
Bài toán các vị tướng Byzantine là một bài toán về lý thuyết trò chơi, mô tả khó khăn mà các bên phân quyền (Decentralized) gặp phải trong việc đạt được sự đồng thuận mà không cần dựa vào một bên trung tâm đáng tin cậy.
Trong một mạng lưới mà không thành viên nào có thể xác minh được danh tính của các thành viên khác, thì làm sao các thành viên có thể đồng ý với nhau về một sự thật nào đó?
Bài toán các vị tướng Byzantine
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.
Cách hoạt động của Thuật toán đồng thuận Proof of Work
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 không đáng 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.
Ngoài PoW thì hiện tại các thuật toán phổ biến nhất là Proof of Stake (PoS) và các biến thể của nó như dPoS (Delegated Proof of Stake), PoA (Proof of authority),….
Theo C98