Kể từ khi Bitcoin được tạo ra vào năm 2008, với tư cách là một hệ thống thanh toán điện tử ngang hàng, nhiều loại tiền điện tử khác đã được tạo ra, mỗi loại có một cơ chế hoạt động cụ thể. Nhưng có một điểm chung mà hầu hết tất cả các loại tiền điện tử đều có là blockchain, một yếu tố trung tâm trong kiến ​​trúc của chúng.

Với một số ngoại lệ, chuỗi khối được thiết kế có chủ ý để phân cấp và hoạt động như một sổ cái kỹ thuật số được quản lý bởi một mạng lưới các nút máy tính phân tán. Trong bối cảnh này, công nghệ chuỗi khối cho phép tạo ra các hệ thống kinh tế không cần đến sự tin cậy, trong đó các giao dịch tài chính minh bạch và đáng tin cậy có thể được thực hiện mà không cần sử dụng trung gian. Tiền điện tử đang được áp dụng như một giải pháp thay thế khả thi cho các hệ thống thanh toán và ngân hàng truyền thống vốn phụ thuộc nhiều vào niềm tin.

Giống như hầu hết các hệ thống máy tính phân tán, những người tham gia mạng tiền điện tử phải thường xuyên đồng ý về trạng thái của blockchain, điều này được gọi là đạt được sự đồng thuận. Tuy nhiên, việc đạt được sự đồng thuận trên các mạng phân tán một cách an toàn và đáng tin cậy không phải là một nhiệm vụ dễ dàng.

Vậy làm thế nào một mạng phân tán gồm các nút máy tính có thể đồng ý đưa ra quyết định nếu một số nút có khả năng bị lỗi hoặc hành động không trung thực? Đây là câu hỏi cơ bản của cái gọi là bài toán tướng Byzantine, đã đưa đến khái niệm về khả năng chịu lỗi của Byzantine.


Có chuyện gì với các tướng Byzantine vậy?

Nói một cách đơn giản, Bài toán các vị tướng Byzantine được hình thành vào năm 1982 như một tình huống khó xử logic mô tả cách một nhóm tướng lĩnh Byzantine có thể gặp vấn đề về giao tiếp khi cố gắng thống nhất về bước đi chiến lược tiếp theo của họ.

Tình huống tiến thoái lưỡng nan giả định rằng mỗi vị tướng đều có quân đội riêng và mỗi nhóm vũ trang đóng tại các địa điểm khác nhau xung quanh thành phố mà họ muốn bao vây. Các tướng phải đồng ý tấn công hoặc rút lui. Dù tấn công hay rút lui, tất cả các tướng đều phải đạt được sự đồng thuận, tức là thống nhất một quyết định chung để phối hợp thực hiện.

Vì vậy, chúng ta có thể xem xét các mục tiêu sau:

  • Mỗi 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 thì không thể thay đổi được.

  • Tất cả các tướng phải thống nhất một quyết định và thực hiện đồng bộ.

Các vấn đề liên lạc nói trên có liên quan đến việc một vị tướng chỉ có thể liên lạc với một vị tướng khác thông qua các tin nhắn do sứ giả truyền đi. Vì vậy, thách thức trọng tâm của bài toán về các tướng lĩnh Byzantine là: các thông điệp có thể bị trì hoãn, bị phá hủy hoặc bị thất lạc.

Ngoài ra, ngay cả khi tin nhắn được gửi thành công, một hoặc nhiều tướng có thể chọn (vì bất kỳ lý do gì) hành động ác ý và gửi tin nhắn lừa đảo nhằm gây nhầm lẫn cho các tướng khác, dẫn đến thất bại hoàn toàn.

Nếu chúng ta áp dụng tình huống khó xử vào bối cảnh của blockchain, mỗi vị tướng đại diện cho một nút mạng và các nút phải đạt được sự đồng thuận về trạng thái hiện tại của hệ thống. Nói cách khác, phần lớn những người tham gia 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 hoàn toàn.

Do đó, cách duy nhất để đạt được sự đồng thuận trong các loại hệ thống phân tán này là phải có ít nhất ⅔ nút mạng trung thực và đáng tin cậy. Điều này có nghĩa là nếu phần lớn mạng quyết định hành động độc hại thì hệ thống sẽ dễ bị lỗi và bị tấn công (như cuộc tấn công 51%).


Dung sai lỗi Byzantine (BFT)

Tóm lại, Dung sai lỗi Byzantine (BFT) mô tả một hệ thống có khả năng chống lại một loạt lỗi bắt nguồn từ Bài toán chung của Byzantine. Đ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 có hành động nguy hiểm.

Có nhiều hơn một giải pháp khả thi cho vấn đề về tướng Byzantine và do đó có nhiều cách để xây dựng hệ thống BFT. Tương tự như vậy, có nhiều cách tiếp cận khác nhau để một blockchain đạt được khả năng chịu lỗi Byzantine, điều này dẫn chúng ta đến các thuật toán đồng thuận.


Thuật toán đồng thuận chuỗi khối

Chúng ta có thể định nghĩa thuật toán đồng thuận là một cơ chế mà mạng blockchain đạt được sự đồng thuận. Việc triển khai phổ biến nhất là bằng chứng công việc và bằng chứng cổ phần. Nhưng hãy lấy trường hợp Bitcoin làm ví dụ.

Mặc dù giao thức Bitcoin quy định các quy tắc chính của hệ thống, nhưng thuật toán đồng thuận PoW sẽ xác định cách tuân thủ các quy tắc này để đạt được sự đồng thuận (ví dụ: khi xác minh và xác thực các giao dịch).

Mặc dù khái niệm bằng chứng công việc có từ lâu đời hơn tiền điện tử nhưng Satoshi Nakamoto đã phát triển một phiên bản sửa đổi của nó thành thuật toán và hệ thống BFT cho phép tạo ra Bitcoin.

Lưu ý rằng thuật toán PoW không thể chấp nhận 100% các lỗi Byzantine, nhưng do quá trình khai thác tốn kém và các kỹ thuật mã hóa cơ bản, PoW đã được chứng minh là một trong những triển khai an toàn và đáng tin cậy nhất cho mạng blockchain. Theo nghĩa này, thuật toán đồng thuận Proof of Work, do Satoshi Nakamoto thiết kế, được nhiều người coi là một trong những giải pháp phù hợp nhất cho những sai lầm của Byzantine.


Phần kết luận

Bài toán các vị tướng Byzantine là một vấn đề nan giải hấp dẫn mà cuối cùng đã dẫn đến sự ra đời của các hệ thống BFT, được sử dụng rộng rãi trong nhiều tình huống khác nhau. Ngoài lĩnh vực blockchain, một số trường hợp sử dụng cho hệ thống BFT bao gồm lĩnh vực hàng không, vũ trụ và năng lượng hạt nhân.

Trong bối cảnh tiền điện tử, giao tiếp mạng hiệu quả cùng với cơ chế đồng thuận tốt là điều cần thiết cho bất kỳ hệ sinh thái blockchain nào. Việc bảo mật các hệ thống này là một nỗ lực không ngừng và các thuật toán đồng thuận hiện tại vẫn cần khắc phục một số hạn chế (chẳng hạn như khả năng mở rộng). Tuy nhiên, PoW và PoS là những cách tiếp cận rất thú vị với tư cách là hệ thống BFT và các ứng dụng tiềm năng của chúng chắc chắn đòi hỏi sự đổi mới rộng rãi.