Byzantine Fault Tolerance (BFT) là gì? Bitcoin đã giải quyết lỗi Byzantine như thế nào?

Byzantine Fault Tolerance (Hệ thống chịu lỗi – BFT) là một thuật toán đồng thuận Blockchain khá nổi tiếng hiện nay.
Blockchain, cũng giống như các hệ thống tính toán phân tán, cần phải có sự đồng thuận về trạng thái. Tuy nhiên, việc đạt được sự đồng thuận trên mạng lưới phân tán một cách an toàn và đáng tin cậy không phải là một điều dễ dàng.
Bài toán đặt ra là, làm thế nào một mạng lưới phân tán gồm các nút máy tính đạt được sự đồng thuận khi xử lý một quyết định, nếu một số các nút trong đó có khả năng là sẽ thất bại hoặc không đáng tin? Đây là câu hỏi cơ bản của vấn đề được đặt tên là bài toán các vị tướng Byzantine, từ đó làm khai sinh ra khái niệm về hệ thống chịu lỗi Byzantine.
Vậy Hệ thống chịu lỗi Byzantine là gì? Và Blockchain Bitcoin đã giải quyết bài toán các vị tướng Byzantine như thế nào? Cùng tìm hiểu kỹ hơn trong bài viết dưới đây.
1. Bài toán của các vị tướng Byzantine
BFT dựa trên truyền thuyết giả định về cuộc tấn công Byzantine, được đưa ra vào năm 1982. Trong đó có nhiều đội quân, mỗi đội quân có một vị tướng tấn công cùng một lúc vào thành trì để tạo nên sức mạnh tổng hợp. Các đội quân này ở xa nhau, mỗi vị tướng chỉ có thể liên lạc bằng bồ câu đưa thư. Vấn đề đặt ra là các vị tướng cần thống nhất thời gian, thời điểm tấn công cùng lúc. Hay nói đơn giản, cần cố gắng đạt sự đồng thuận trong những bước đi kế 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?
Để chiến thắng cần phải có sự đồng thuận trong chiến lược
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? Đấy là lí do hệ thống chịu lỗi Byzantine Fault Tolerance ra đời.
2. Byzantine Fault Tolerance là gì?

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 các vị tướng quân Byzantine.
Byzantine Fault Tolerance đảm bảo cho một mạng máy tính phân tán hoạt động như mong muốn và đạt được sự đồng thuận chính xác. Đ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ố nút bị lỗi hoặc thực hiện hành động gây hại.
Các giao thức dựa trên BFT tìm cách giảm thiểu ảnh hưởng mà các nút độc hại có thể gây ra trên mạng lưới nhằm đảm bảo cho các nút trung thực vẫn duy trì được hoạt động đúng và đạt được sự đồng thuận. Có rất nhiều các giao thức đồng thuận khác được thiết kế dựa trên nguyên tắc này.
3. Hệ thống nào sẽ gặp vấn đề Byzantine?

Chỉ các hệ thống phi tập trung (Decentralized) 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.
Còn trong các hệ thống tập trung (Centralized), 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 lừa gạt khách hàng của họ, thì ngân hàng trung ương hoặc chính phủ sẽ đứng ra để khắc phục hành vi sai trái này, đảm bảo được uy tín với khách hàng.
4. Cách Bitcoin giải quyết vấn đề chung của lỗi Byzantine
Có nhiều giải pháp khả thi cho vấn đề cho bài toán các vị tướng Byzantine, điều này có nghĩa là cũng có nhiều cách để xây dựng một Hệ thống chịu lỗi Byzantine (BFT). Các blockchain nổi tiếng đã giải quyết bài toán này bằng các thuật toán đồng thuận (consensus).
Khi Bitcoin, blockchain đầu tiên ra đời, cha đẻ của nó, Satoshi Nakamoto cũng đã giới thiệu một một phương pháp để giải quyết bài toán các vị tướng quân, được gọi dưới cái tên Proof-of-Work (PoW).

Nhờ PoW, tại mọi thời điểm, các thành viên của mạng Bitcoin có thể đồng thuận 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 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 nhờ 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.
Bên cạnh PoW, ngày nay các blockchain còn có sử dụng nhiều thuật toán đồng thuận khác.
Ví dụ như NEO dùng Delegated Byzantine Fault Tolerance, hay nền tảng Hyperledge Fabric của Linux Foundation dùng Practical Byzantine Fault Tolerance (PBFT), gần giống với giải pháp consensus mà Tendermint cung cấp.
Tổng kết
Bài viết đã cung cấp cho anh em các thông tin về Byzantine Fault Tolerance (BFT) và cách Bitcoin giải quyết bài toán Byzantine. Anh em có suy nghĩ như thế nào về hệ thống chịu lỗi Byzantine? Cùng để lại bình luận để thảo luận với các admin của BlockSolFi nhé!