Byzantine Fault Tolerance (BFT) là gì? Tìm hiểu về hệ thống đảm bảo tính nhất quán của blockchain
Như chúng ta đều biết, blockchain là mạng phân tán và ẩn danh, điều này giúp bảo vệ danh tính của người dùng một cách tối đa. Tuy nhiên, sự phân tán ấy đôi khi cũng mang lại một số yếu điểm khiến blockchain đính trệ hoặc tệ hơn là ngưng hoạt động. Do đó, Byzantine Fault Tolerance (BFT) được ra đời nhằm bảo vệ blockchain khỏi những gián đoạn không đáng có. Vậy Byzantine Fault Tolerance (BFT) là gì? Hãy cùng Coin68 tìm hiểu thông qua bài viết dưới đây.
Byzantine Fault Tolerance (BFT) là gì?
Byzantine Fault Tolerance (BFT) là gì?
Byzantine Fault Tolerance (BFT) là khái niệm được sinh ra trong quá trình sáng tạo và phát triển mạng phân tán từ những năm 80 của thế kỷ trước. Nguyên nhân BFT tồn tại chính là vì khả năng xử lý lỗi độc lập và không bị overlap với hệ thống xử lý lỗi chính, từ đó đảm bảo tính nhất quán và đồng thuận thông tin của mạng.
Như đã đề cập trong bài viết: “Node là gì? Những bước cơ bản cần chuẩn bị trước khi chạy node” thì tất cả những thiết bị chúng ta đang sử dụng từ laptop, máy tính để bàn đến smartphone và máy tính bảng đều là những node trong một mạng tập trung. Nếu có một thông tin sai lệch thì sẽ luôn có một thành tố đáng tin cậy trong mạng đứng ra phân giải để đảm bảo tính đúng đắn và sự đồng thuận giữa các bên liên quan.
Ví dụ: Nếu hôm nay bạn đang có 1 tỷ VND trong ngân hàng nhưng ngày mai bạn lại mất số tiền đó. Khi này, các bên liên quan là ngân hàng nơi bạn gửi tiền và cao hơn là Ngân hàng Nhà nước Việt Nam sẽ vào cuộc để đối soát và kiểm tra các giao dịch của tài khoản nhằm tìm ra nguyên nhân của vụ việc. Lúc ấy, bài toán về lòng tin đã được đặt vào tay những bên có uy tín và thẩm quyền để xử lý vụ việc.
Tuy nhiên trong thị trường tiền mã hoá và cụ thể là blockchain, việc có một bên đủ uy tín và thẩm quyền để giải quyết vụ việc là cực kỳ khó vì tính ẩn danh. Thậm chí, nếu có một node trong blockchain bị hack hoặc bị chiếm quyền và gây nguy hại thì lúc này làm sao để blockchain có thể xử lý và kiểm soát các hậu quả của vấn đề? Giải pháp cho bài toán hóc búa trên chính là BFT.
Bài toán 50 năm và cách giải quyết của blockchain
Như đã nói ở trên, Byzantine Fault Tolerance (BFT) không phải là một khái niệm mới mà nó đã tồn tại được gần 43 năm tính từng ngày nó được công bố vào năm 1982. Ngày đó, Byzantine Fault Tolerance (BFT) được biết đến rộng rãi trong ngành khoa học máy tính với cái tên “Bài toán các vị tướng Byzantine”.
Cụ thể, vấn đề được nêu ra trong bài toán đó chính là có 3 vị tướng: 1 muốn tấn công, 1 muốn rút lui và 1 kẻ đã bắt tay với kẻ thù. Khi này, dù muốn thành công hay rút quân, cả 3 đều phải thống nhất nếu đánh cùng đánh, nếu rút thì cùng rút. Nhưng ở đây chúng ta có 1 vị tướng đã bắt tay với kẻ thù, vậy thì làm cách nào để 2 vị tướng còn lại đều đạt được đồng thuận và không bị mắc mưu của kẻ phản bội?
Thực chất, bài toán trên ám chỉ thế tiến thoái lưỡng nan của các bên phân quyền trong blockchain. Trong điều kiện hoàn hảo, khi tất cả các node đạt được sự đồng thuận và tiến đến việc tạo block mới, công việc được hoàn thành và phần thưởng sẽ được phân phối. Tuy nhiên, trong những điều kiện kém hoàn hảo hơn, khi có một hoặc nhiều node bị lỗi hoặc cố tình gian lận thì làm thế nào để những node còn lại đạt được đồng thuận và tin tưởng kết quả của đúng node?
Khi này BFT sẽ can thiệp và tìm các node đáng tin cậy, xác định node bị lỗi hoặc gian lận, giải quyết các vấn đề xung đột, đảm bảo tính chuẩn xác của các thông tin được truyền đi, giúp các node còn lại đạt được sự đồng thuận mà không phải quan tâm đến các node bị lỗi hoặc cố tình tạo lỗi. Bên cạnh đó, BFT còn giúp các node giải quyết các lỗi chính tả, giao tiếp và các hoạt động độc hại gây ra bởi các node bị lỗi.
Thành phần và cách hoạt động của BFT
Byzantine Fault Tolerance được cấu tạo từ 2 thành phần chính đó chính là Node lead và Replica. Cả 2 thành tố này đóng vai trò riêng biệt nhưng tương tác với nhau theo chiều sâu và rộng nhất để bảo vệ tính liên tục của blockchain. Trong khi node lead đóng vai trò như một node chủ điều phối, quản lý cũng như đồng bộ các hoạt động Replica thì thành tố còn lại có thể xem như một bên phân phối, lưu trữ, sao chép và xử lý các yêu cầu liên quan.
Node lead và Replica là 2 thành phần đóng vai trò một mẫu của đồng thuận và khi và chỉ khi tất cả các node thống nhất theo mẫu này thì sự đồng thuận mới được chấp nhận. Điều này có nghĩa, tất cả các node đều có một deadline để đồng thuận, nếu vượt qua đó, node sẽ bị loại bỏ khỏi quá trình đồng thuận.
Quá trình đồng thuận sẽ được diễn ra như sau: Đề xuất được tạo bởi một hoặc nhiều node, sau đó chúng được chuyển tiếp đến các node còn lại. Sau đó, các node này sẽ kiểm tra đề xuất và biểu quyết đồng ý hoặc không đồng ý.
Tổng kết
Bên trên là những thông tin về Byzantine Fault Tolerance, cấu trúc hoạt động cũng như thành phần cấu tạo nên BFT. Thông qua bài viết, hy vọng Coin68 đã mang đến cho người đọc những thông tin tổng quan về Byzantine Fault Tolerance cũng như công dụng của nó trong việc bảo vệ tính nhất quán của blockchain.