Như tất cả chúng ta đều biết, blockchain là một 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 đôi khi cũng mang lại một số yếu điểm khiến blockchain bị trì trệ hoặc thậm chí là ngưng hoạt động. Vì vậy, Byzantine Fault Tolerance (BFT) được tạo ra để bảo vệ blockchain khỏi những gián đoạn không mong muốn. Vậy Byzantine Fault Tolerance (BFT) là gì? Hãy cùng Mytour khám phá thông qua bài viết dưới đây.

Byzantine Fault Tolerance (BFT) là gì?
Byzantine Fault Tolerance (BFT) là một khái niệm được tạo 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. Lý do chính để tồn tại của BFT là khả năng xử lý lỗi độc lập và không bị trùng lặp với hệ thống xử lý lỗi chính, từ đó đảm bảo tính nhất quán và thống nhất thông tin của mạng.
Như đã được đề 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ả các thiết bị từ laptop, máy tính để bàn đến smartphone và máy tính bảng mà chúng ta đang sử dụng đều là các node trong mạng tập trung. Nếu có thông tin không chính xác, luôn có một thành phần đáng tin cậy trong mạng sẽ đứng ra giải quyết để đảm bảo tính chính xác và sự đồng thuận giữa các bên liên quan.

Ví dụ: Nếu hôm nay bạn có 1 tỷ VND trong ngân hàng nhưng ngày mai bạn lại mất số tiền đó. Lúc này, các bên liên quan như ngân hàng mà bạn gửi tiền và cơ quan cao cấp như Ngân hàng Nhà nước Việt Nam sẽ vào cuộc để kiểm tra và giải quyết 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. Khi đó, bài toán về lòng tin sẽ được giao cho những bên có uy tín và thẩm quyền để xử lý vấn đề.
Tuy nhiên, trong thị trường tiền điện tử và đặc biệt là blockchain, việc tìm ra một bên có uy tín và thẩm quyền để giải quyết vấn đề là vô cùng khó khăn do tính ẩn danh. Thậm chí, nếu một node trong blockchain bị hack hoặc bị kiểm soát và gây hại thì 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 vấn đề này chính là BFT.
Bài toán lâu đời và cách giải quyết của blockchain
Như đã đề cập trước đó, Byzantine Fault Tolerance (BFT) không phải là một khái niệm mới mà đã tồn tại hơn 43 năm tính từ ngày công bố vào năm 1982. Khi đó, Byzantine Fault Tolerance (BFT) đã trở nên phổ biến trong lĩnh vực khoa học máy tính dưới cái tên 'Bài toán vị tướng Byzantine'.
Cụ thể, vấn đề được đặt ra trong bài toán đó là có 3 vị tướng: 1 muốn tấn công, 1 muốn rút lui và 1 kẻ đã liên kết với kẻ thù. Ở đây, dù muốn tiến công hay rút lui, tất cả đều phải đồng lòng nếu cùng tấn công, cùng rút lui. Tuy nhiên, chúng ta lại có 1 vị tướng đã liên kết với kẻ thù, vậy thì làm thế nào để 2 vị tướng còn lại đều đồng thuận mà không rơi vào bẫy của kẻ phản bội?

Thực chất, bài toán trên là ám chỉ sự tiến lù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 hành tạo block mới, công việc sẽ được hoàn thành và phần thưởng sẽ được phân phối. Tuy nhiên, trong điều kiện không hoàn hảo, khi có một hoặc nhiều node gặp sự cố hoặc cố tình gian lận thì làm thế nào để các node còn lại đạt được sự đồng thuận và tin tưởng vào kết quả từ node đúng?
Trong tình huống đó, BFT sẽ can thiệp và tìm ra các node đáng tin cậy, xác định node gặp sự cố hoặc gian lận, giải quyết các xung đột, đảm bảo tính chính xác của thông tin truyền đi, giúp các node còn lại đạt được sự đồng thuận mà không cần quan tâm đến các node gặp sự cố hoặc cố tình tạo ra lỗi. Hơn nữa, BFT còn giúp các node khắc phục các lỗi chính tả, giao tiếp và các hành vi độc hại gây ra bởi các node gặp sự cố.
Cấu trúc và hoạt động của BFT
Byzantine Fault Tolerance được hình thành từ 2 thành phần chính là Node lead và Replica. Cả 2 thành phần này có vai trò riêng biệt nhưng tương tác với nhau theo cách rộng và sâu để 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ý và đồng bộ hóa hoạt động của Replica thì thành phần còn lại có thể được coi là 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 đóng vai trò quan trọng trong quá trình đồng thuận của blockchain. Khi và chỉ khi tất cả các node tuân theo chuẩn này thì sự đồng thuận mới được chấp nhận. Điều này có nghĩa, mỗi node phải hoàn thành đồng thuận trước hạn chót, nếu không sẽ bị loại bỏ khỏi quá trình đồng thuận.
Quá trình đồng thuận diễn ra như sau: Đề xuất được tạo ra bởi một hoặc nhiều node, sau đó chúng được chuyển giao đến các node khác. Các node tiếp nhận sẽ kiểm tra đề xuất và bỏ phiếu đồng ý hoặc không đồng ý.
Tổng kết
Trên đây là các thông tin về Byzantine Fault Tolerance, cách hoạt động và thành phần cấu tạo nên BFT. Hy vọng bài viết đã cung cấp cái nhìn tổng quan về Byzantine Fault Tolerance và vai trò quan trọng của nó trong việc đảm bảo tính nhất quán của blockchain.