Kể từ năm 2008, khi Bitcoin ra đời như một hệ thống tiền điện tử ngang hàng, nhiều loại tiền kỹ thuật số khác đã dần xuất hiện, mỗi loại có cơ chế riêng. Nhưng hầu hết các loại tiền kỹ thuật số đều có một điểm chung: đó là kiến trúc cốt lõi dựa trên blockchain.
Trong đa số trường hợp, blockchain được thiết kế như một sổ cái điện tử phi tập trung, được duy trì bởi một mạng lưới các nút phân tán. Do đó, hệ thống blockchain cho phép các giao dịch tài chính được thực hiện một cách minh bạch và đáng tin cậy mà không cần trung gian. Tiền kỹ thuật số đang dần thay thế các hệ thống thanh toán ngân hàng truyền thống đòi hỏi độ tin cậy cao.
Giống như hầu hết các hệ thống tính toán phân tán, những người tham gia mạng lưới tiền kỹ thuật số cần thường xuyên thảo luận và thống nhất về trạng thái hiện tại của blockchain—đây được gọi là đạt được sự đồng thuận. Tuy nhiên, việc đạt được sự đồng thuận trong một mạng phân tán một cách an toàn và hiệu quả không hề dễ dàng.
Vậy, làm thế nào một mạng lưới các nút máy tính phân tán có thể thống nhất về quyết định khi một số nút có thể gặp sự cố hoặc hành động không trung thực? Đây chính là bản chất của vấn đề được gọi là "Bài toán các vị tướng Byzantine", từ đó sinh ra khái niệm Khả năng chịu lỗi Byzantine (BFT).
Bài toán các vị tướng Byzantine là gì?
Nói một cách đơn giản, vào năm 1982, Bài toán các vị tướng Byzantine được coi là một tình huống khó xử về logic, minh họa những thách thức trong giao tiếp khi một nhóm các vị tướng Byzantine cố gắng thống nhất về hành động tiếp theo.
Tình huống này giả định rằng mỗi vị tướng có quân đội riêng, mỗi đội quân đóng ở các vị trí khác nhau xung quanh thành phố mà họ định tấn công. Các vị tướng cần thống nhất về việc tấn công hay rút lui. Miễn là tất cả các vị tướng đạt được đồng thuận—tức là phối hợp và quyết định hành động cùng nhau—thì việc chọn tấn công hay rút lui không quan trọng.
Do đó, chúng ta có thể xem xét các điều kiện sau:
-
Mỗi vị tướng phải đưa ra quyết định: tấn công hay rút lui (có hoặc không);
-
Một khi quyết định được đưa ra, không thể thay đổi;
-
Tất cả các vị tướng phải thống nhất về một quyết định chung và thực hiện đồng bộ.
Vấn đề giao tiếp nói trên liên quan đến thực tế là một vị tướng chỉ có thể liên lạc với vị tướng khác thông qua tin nhắn được truyền bởi sứ giả. Do đó, thách thức cốt lõi của Bài toán các vị tướng Byzantine là thông tin có thể bị trì hoãn, bị hỏng hoặc bị mất.
Hơn nữa, ngay cả khi tin nhắn được truyền thành công, một hoặc nhiều vị tướng có thể (vì bất kỳ lý do gì) hành động gian lận và gửi tin nhắn giả mạo để đánh lừa những người khác, dẫn đến thất bại trong hành động.
Nếu chúng ta áp dụng tình huống này vào blockchain, mỗi vị tướng đại diện cho một nút mạng, và các nút cần thống nhất về trạng thái hiện tại của hệ thống. Nói cách khác, đa số người tham gia trong mạng phân tán phải đồng ý và thực hiện cùng một hành động để tránh thất bại.
Do đó, cách duy nhất để đạt được sự đồng thuận trong các hệ thống phân tán kiểu này là có ít nhất hai phần ba hoặc hơn các nút mạng đáng tin cậy và trung thực. Điều này có nghĩa là nếu đa số các nút trong mạng quyết định hành động gian lận, hệ thống sẽ dễ bị tấn công và gặp sự cố (ví dụ: tấn công 51%).
Khả năng chịu lỗi Byzantine (BFT)
Nói một cách đơn giản, Khả năng chịu lỗi Byzantine (BFT) là thuộc tính của hệ thống có thể chống lại các lỗi do Bài toán các vị tướng Byzantine gây ra. Điều này có nghĩa là một hệ thống BFT có thể tiếp tục hoạt động ngay cả khi một số nút gặp sự cố hoặc hành động gian lận.
Có nhiều giải pháp khả thi cho Bài toán các vị tướng Byzantine, và do đó, có nhiều cách để xây dựng các hệ thống chịu lỗi Byzantine. Tương tự, blockchain có nhiều phương pháp khác nhau để đạt được BFT—đây chính là các thuật toán đồng thuận.
Thuật toán đồng thuận blockchain
Chúng ta có thể định nghĩa thuật toán đồng thuận là cơ chế mà mạng blockchain đạt được sự đồng thuận. Ví dụ phổ biến nhất là Proof of Work (PoW) và Proof of Stake (PoS). Ở đây, chúng ta sẽ lấy Bitcoin làm ví dụ.
Giao thức Bitcoin quy định các quy tắc chính của hệ thống, và thuật toán đồng thuận Proof of Work giải thích cách tuân theo các quy tắc này để đạt được sự đồng thuận (ví dụ: trong quá trình xác thực và xác nhận giao dịch).
Mặc dù khái niệm Proof of Work có trước tiền kỹ thuật số, nhưng Satoshi Nakamoto đã sửa đổi phiên bản gốc và phát triển một thuật toán PoW cải tiến, biến Bitcoin thành một hệ thống chịu lỗi Byzantine.
Lưu ý rằng thuật toán PoW này không hoàn toàn miễn nhiễm với lỗi Byzantine, nhưng nhờ quá trình đào tốn kém và công nghệ mã hóa cơ bản, PoW đã chứng minh là một trong những phương pháp an toàn và đáng tin cậy nhất trong mạng blockchain. Theo nghĩa này, thuật toán đồng thuận PoW do Satoshi Nakamoto thiết kế được nhiều người coi là một trong những giải pháp thông minh nhất cho Khả năng chịu lỗi Byzantine.
Kết luận
Bài toán các vị tướng Byzantine là một tình huống khó xử thú vị, cuối cùng đã dẫn đến việc tạo ra các hệ thống chịu lỗi Byzantine, hiện đang được ứng dụng rộng rãi trong nhiều lĩnh vực. Ngoài ngành công nghiệp blockchain, một số ứng dụng của hệ thống BFT bao gồm hàng không, vũ trụ và ngành công nghiệp điện hạt nhân.
Trong lĩnh vực tiền kỹ thuật số, giao tiếp mạng hiệu quả và cơ chế đồng thuận mạnh mẽ là rất quan trọng đối với bất kỳ hệ sinh thái blockchain nào. Bảo vệ các hệ thống này đòi hỏi nỗ lực liên tục, và các thuật toán đồng thuận hiện có vẫn chưa thể khắc phục một số hạn chế (ví dụ: khả năng mở rộng). Tuy nhiên, cả Proof of Work và Proof of Stake đều là những phương pháp hiệu quả cho hệ thống chịu lỗi Byzantine, và các ứng dụng tiềm năng của chúng sẽ tiếp tục thúc đẩy nhiều đổi mới hơn nữa.