
Một trong những yếu tố chính khiến công nghệ blockchain được ưa chuộng rộng rãi là nhờ tính đáng tin cậy vốn có. Các chuyên gia xem blockchain như một giải pháp nâng cao hiệu quả và minh bạch cho các hệ thống truyền thống, vốn thường kém tin cậy, chi phí cao và dễ bị gian lận. Vậy blockchain tạo dựng niềm tin như thế nào? Câu trả lời nằm ở khả năng chịu lỗi Byzantine (Byzantine Fault Tolerance - BFT).
Chịu lỗi Byzantine là khả năng của một hệ thống phi tập trung, không cần cấp phép trong việc phát hiện và loại bỏ thông tin sai lệch. Một hệ thống giải quyết được Bài toán các vị tướng Byzantine thông thường được coi là có khả năng chịu lỗi Byzantine. Đây là yếu tố then chốt bởi trong các hệ thống phi tập trung không cần cấp phép, bất kỳ ai cũng có thể xâm nhập mạng lưới và tung tin giả, đe dọa tính tin cậy của hệ thống. Cơ chế BFT đảm bảo hệ thống vẫn đáng tin cậy ngay cả khi có một số thành viên tham gia hành động độc hại hoặc không còn hoạt động đúng chức năng.
Bài toán các vị tướng Byzantine là một khái niệm trong lý thuyết trò chơi, sử dụng phép ẩn dụ dễ hiểu để diễn giải các lỗi hệ thống trong lập trình. Các chuyên gia dùng phép ẩn dụ này để mô tả những thách thức mà các thực thể phi tập trung (các vị tướng) gặp phải khi cố gắng đồng thuận mà không có một trung tâm đáng tin cậy (chỉ huy).
Bài toán giả định một tình huống với nhiều đạo quân của quân đội Byzantine đóng quân cách xa nhau bên ngoài một thành phố bị bao vây. Mỗi vị tướng chỉ huy một đạo quân và phải tự quyết định tấn công hoặc rút lui. Quyết định của họ rất quan trọng vì chỉ có các cuộc tấn công đồng loạt mới dẫn đến chiến thắng. Nếu không tấn công cùng lúc, nguy cơ thất bại tăng cao.
Khó khăn ở chỗ không có trung tâm chỉ huy trên chiến trường này. Các vị tướng cũng không có phương tiện liên lạc an toàn (như đuốc, khói hiệu hay điện thoại hiện đại) để phối hợp. Nếu truyền thông không đáng tin cậy, gián điệp đối phương có thể chặn, phá hoại hoặc bóp méo tín hiệu, hoặc thông điệp có thể bị thất lạc. Dù thông điệp đến nơi, vẫn còn vấn đề then chốt: Thông điệp đó có đáng tin không? Liệu kẻ phản bội có thể bắt được người đưa tin và thay đổi nội dung nhằm đánh lừa tướng nhận thông điệp không?
Để giải quyết khó khăn này, các vị tướng cần bảo đảm bốn điều kiện sau:
Blockchain là một hệ thống phi tập trung có thể giải quyết vấn đề này mà không cần trung tâm đáng tin cậy. Mạng lưới các nút blockchain tương ứng với các vị tướng trong bài toán lý thuyết trò chơi. Các nút này không có trung tâm đáng tin cậy để đảm bảo liên lạc an toàn, nhưng họ phải đồng thuận để mạng hoạt động suôn sẻ. Các nút cũng đối mặt với bài toán tương tự: phải thống nhất quy trình và thực hiện cùng lúc (tấn công địch).
Tháng 10 năm 2008, khi Satoshi Nakamoto công bố sách trắng Bitcoin, giải pháp cho Bài toán các vị tướng Byzantine đã ra đời: cơ chế đồng thuận Proof-of-Work (PoW). Trong hệ thống này, thành viên mạng xác nhận tính hợp lệ của khối khi nó có bằng chứng công việc hợp lệ dưới dạng hàm băm. Điều đó cho thấy toàn bộ các nút trong mạng blockchain đã đồng thuận và các nút đào có thể thêm khối vào chuỗi.
Hàm băm PoW chứng minh rằng đã thực hiện công sức để tạo ra khối. Công sức này là khoản đầu tư tài chính, khi thợ đào Bitcoin phải đầu tư vào điện năng và thiết bị để khai thác và sản xuất khối. Việc đầu tư này khiến hành vi xấu đối với mạng lưới trở nên rủi ro cao vì thợ đào đã đặt cược tài sản lớn. Quá trình khai thác tốn kém giúp blockchain Bitcoin cực kỳ an toàn và đáng tin cậy.
Các blockchain khác giải quyết Bài toán các vị tướng Byzantine bằng các thuật toán đồng thuận khác nhau. Ví dụ, Ethereum sử dụng Proof-of-Stake (PoS), trong đó thành viên mạng phải khóa 32 ETH (tùy hình thức staking) để hạn chế hành vi gây rối. Người staking không trung thực có thể bị phạt mất đến một nửa số 32 ETH đã khóa nếu phát hiện hành vi xấu.
Practical Byzantine Fault Tolerance (pBFT) là thuật toán đồng thuận nâng cao khả năng chịu lỗi Byzantine về mặt tốc độ và ứng dụng thực tiễn. Barbara Liskov và Miguel Castro đã giới thiệu pBFT tại bài báo học thuật năm 1999 mang tên "Practical Byzantine Fault Tolerance".
pBFT là phiên bản cải tiến của các thuật toán BFT trước đó. Mô hình này giả định các nút có thể lỗi độc lập và gửi thông điệp sai (là các hàm băm của khối trước). Thuật toán giải quyết các thách thức này bằng quy trình cấu trúc nhằm đạt đồng thuận giữa các nút phân tán.
Trong pBFT, các nút phải chứng minh thông điệp xuất phát từ một nút ngang hàng cụ thể. Theo quy tắc thuật toán, các nút phải xác minh thông điệp không bị thay đổi khi truyền tải. Cụ thể, pBFT hoạt động trên giả định không quá một phần ba tổng số nút trong mạng là độc hại. Về toán học, khi hệ thống có nhiều nút hơn, xác suất một phần ba (33%) nút độc hại giảm dần, kể cả khi một số nút gặp lỗi. Như vậy, độ tin cậy của đồng thuận được đảm bảo về mặt toán học.
Trong hệ thống pBFT, một nút sẽ làm nút chính (leader), các nút còn lại là nút dự phòng (backup). Hầu hết mọi nút đều có thể trở thành nút chính. Nếu nút chính gặp sự cố, một nút dự phòng sẽ lên thay. Vị trí leader thay đổi theo các vòng đồng thuận pBFT. Ngoài ra, đa số nút trung thực có thể bỏ phiếu loại bỏ leader lỗi và thay thế bằng nút tiếp theo.
Quy trình đồng thuận pBFT như sau:
Hyperledger Fabric, Zilliqa và Tendermint đều là nền tảng blockchain sử dụng thuật toán đồng thuận pBFT. Hyperledger Fabric dùng pBFT có cấp phép, Zilliqa kết hợp PoW và pBFT, còn Tendermint sử dụng Delegated Proof-of-Stake kết hợp pBFT.
Lỗi Byzantine có hai nhóm chính. Nhóm đầu là lỗi "fail-stop", khi một nút gặp sự cố và ngừng vận hành. Nhóm thứ hai là lỗi "nút tùy ý", xảy ra trong bốn trường hợp cụ thể:
Các loại lỗi này là những hình thức mà nút có thể hoạt động sai hoặc độc hại và hệ thống BFT phải thiết kế để xử lý được tất cả các trường hợp này.
pBFT có ba ưu điểm lớn so với các thuật toán đồng thuận khác, đặc biệt là Proof-of-Work:
Chốt giao dịch ngay: pBFT cho phép chốt giao dịch ngay, không cần xác nhận nhiều lần. Khi các nút đồng thuận về tính hợp lệ của khối, các giao dịch đó được chốt ngay tức thì. Điều này khác với PoW, khi mỗi nút xác minh riêng giao dịch trước khi thợ đào thêm vào chuỗi. Ví dụ, với Bitcoin, xác nhận khối có thể mất từ 10 đến 60 phút tùy số nút. Với pBFT, không còn thời gian chờ đợi, giúp giao dịch nhanh và nâng cao trải nghiệm người dùng.
Tiết kiệm điện năng: Không như PoW, pBFT không yêu cầu giải toán phức tạp, nên mức tiêu thụ điện năng rất thấp. Đào Bitcoin tiêu tốn điện lớn do PoW, còn hệ thống pBFT vận hành với yêu cầu năng lượng tối thiểu, thân thiện môi trường và tiết kiệm chi phí hơn.
Phân phối phần thưởng công bằng: Trong pBFT, mọi nút đều thực hiện yêu cầu khách hàng, nên phần thưởng chia đều. Điều này tạo ra hệ thống công bằng, tránh tình trạng phần thưởng dồn vào nhóm đào có sức mạnh tính toán lớn như PoW.
Dù có nhiều ưu điểm, blockchain pBFT gặp khó khăn về mở rộng do phải liên tục giao tiếp giữa các nút. Khi số nút tăng, mạng cần nhiều thời gian hơn để phản hồi yêu cầu khách hàng. Giao tiếp quá tải có thể là điểm nghẽn khi mạng lớn, hạn chế khả năng mở rộng.
Blockchain pBFT cũng dễ bị tấn công Sybil. Tấn công Sybil xảy ra khi một thực thể kiểm soát nhiều nút để phá vỡ đồng thuận. Tuy nhiên, số nút càng lớn, nguy cơ bị tấn công Sybil càng giảm. Dù vậy, vấn đề mở rộng có thể buộc nhà phát triển kết hợp pBFT với cơ chế đồng thuận khác, như Zilliqa kết hợp cả PoW và pBFT để khắc phục hạn chế này.
Chịu lỗi Byzantine quan trọng vì cho phép mạng blockchain vận hành bình thường dù có nút gửi sai thông tin hoặc ngừng hoạt động. Đối với người dùng tiền điện tử, điều này giúp họ an tâm về bảo mật giao dịch. Hiểu rõ đặc tính BFT của blockchain bạn đầu tư sẽ giúp trải nghiệm tự tin, chủ động hơn.
BFT bảo đảm hệ thống phi tập trung giữ được tính toàn vẹn và tiếp tục hoạt động bất chấp tác nhân độc hại hoặc hỏng hóc kỹ thuật. Năng lực này là nền tảng cho tính không cần tin cậy của blockchain, giúp người dùng giao dịch an toàn mà không cần phụ thuộc tổ chức trung gian hoặc bên thứ ba.
Mức chịu lỗi Byzantine của blockchain phụ thuộc vào thuật toán đồng thuận mà nhà phát triển chọn. Các blockchain khác nhau có thể có mức chịu lỗi Byzantine khác nhau. Tuy vậy, các thuật toán đồng thuận phổ biến gồm:
Mỗi cơ chế đồng thuận tiếp cận vấn đề chịu lỗi Byzantine theo cách khác nhau, tạo ra sự đánh đổi về bảo mật, khả năng mở rộng, hiệu quả năng lượng và mức độ phi tập trung. Lựa chọn thuật toán đồng thuận ảnh hưởng lớn đến đặc tính vận hành và khả năng ứng dụng của blockchain.
Các mạng blockchain cần cơ chế đồng thuận hiệu quả để hoạt động thành công. Thị trường có nhiều thuật toán đồng thuận với cách vận hành khác biệt. Không có mạng blockchain nào hoàn hảo tuyệt đối. Tuy nhiên, xét về khả năng giải quyết các bài toán nan giải như Bài toán các vị tướng Byzantine, Proof-of-Work và Proof-of-Work BFT nổi bật là những giải pháp hàng đầu.
Các cơ chế đồng thuận không ngừng phát triển khi nhà phát triển tìm cách tối ưu cân bằng giữa bảo mật, mở rộng và hiệu quả. Hiểu rõ các cơ chế này và đặc tính chịu lỗi Byzantine là điều cần thiết với bất kỳ ai tham gia blockchain, dù là nhà phát triển, nhà đầu tư hay người dùng. Khi hệ sinh thái blockchain trưởng thành, sẽ xuất hiện thêm nhiều đổi mới trong thuật toán đồng thuận, khắc phục hạn chế hiện tại mà vẫn giữ nguyên tắc chịu lỗi Byzantine cốt lõi.
Byzantine Fault Tolerance là thuật toán đồng thuận giúp hệ thống phân tán đạt đồng thuận ngay cả khi một số nút bị lỗi hoặc có hành vi độc hại. Trong blockchain, BFT đảm bảo an ninh mạng và chốt giao dịch, cho phép hệ thống đồng thuận dù tồn tại các nút đối kháng, duy trì tính toàn vẹn dữ liệu và độ tin cậy của hệ thống.
Bài toán các vị tướng Byzantine minh họa cách hệ thống phân tán phải đạt đồng thuận dù có nút bị lỗi hoặc độc hại. Bài toán này cho thấy hệ thống cần giao thức mạnh để giữ nhất quán ngay cả khi một số thành phần hành động không trung thực hoặc khó lường, đòi hỏi cơ chế chịu lỗi như thuật toán đồng thuận.
Các thuật toán đồng thuận BFT phổ biến gồm PBFT, SBFT và Raft. PBFT đảm bảo chịu lỗi Byzantine với tính nhất quán mạnh, song yêu cầu n >= 3f+1 nút. Các thuật toán khác như PoW, PoS và DPoS phục vụ các cơ chế đồng thuận khác nhau cho mạng blockchain.
Chịu lỗi Byzantine, nhất là Practical Byzantine Fault Tolerance (PBFT), có thể chịu tối đa 1/3 số nút bị lỗi hoặc độc hại mà vẫn giữ tính toàn vẹn và đồng thuận. Điều này thực hiện thông qua cơ chế xác nhận 2f+1.
BFT không cần sức mạnh tính toán, dựa vào đồng thuận giữa các nút; PoW đòi hỏi thợ đào giải toán phức tạp. BFT hiệu quả, tiêu tốn ít năng lượng hơn, PoW lại được minh chứng bảo mật cao. BFT phù hợp mạng có cấp phép; PoW phù hợp hệ thống phi tập trung.
PBFT bầu một nút chính gửi thông điệp View-new đồng bộ các nút. Yêu cầu khách hàng được xử lý qua nút chính, nút này phối hợp đồng thuận giữa các nút sao chép qua các pha pre-prepare, prepare, commit nhằm bảo đảm chịu lỗi.
Byzantine Fault Tolerance giúp mạng đạt đồng thuận dù có nút độc hại, bảo đảm ổn định và an ninh cho hệ thống phi tập trung, nơi không có trung tâm xác nhận giao dịch hoặc ngăn chặn tấn công.
Các dự án blockchain triển khai chịu lỗi Byzantine qua nhiều thuật toán đồng thuận, chủ yếu dựa trên PBFT cải tiến. Nhiều dự án ứng dụng các thuật toán BFT nâng cao để nâng hiệu suất, bảo mật, mở rộng mà vẫn đảm bảo khả năng chịu lỗi trong môi trường phi tập trung.
Điểm nghẽn lớn của BFT là độ phức tạp giao tiếp O(N²) gây áp lực băng thông. Tối ưu có thể giảm vòng truyền thông điệp, ứng dụng giao thức Gossip, chuyển đổi leader động, dùng mô hình đồng thuận phân tầng để mở rộng quy mô.
Ở chuỗi private, Byzantine Fault Tolerance ít cần thiết do chi phí cao và thành viên tin tưởng lẫn nhau. Chuỗi public dùng BFT để xử lý bất nhất giữa nhiều nút, nhưng đồng thời làm tăng độ phức tạp và chi phí vận hành.











