Kể từ khi Bitcoin ra đời vào năm 2008, với tư cách là một hệ thống tiề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ế cụ thể. Nhưng có một điểm chung mà gần như tất cả các loại tiền điện tử đều có là blockchain, là yếu tố cốt lõi trong kiến ​​trúc của chúng.

Với một vài trường hợp ngoại lệ, chuỗi khối được thiết kế có chủ ý để phân cấp, hoạt động như một sổ cái kỹ thuật số được duy trì bởi một mạng lưới các nút máy tính phân tán. Vì lý do này, công nghệ blockchain cho phép tạo ra các hệ thống kinh tế không cần sự tin cậy, nơi 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 đến 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 điện toán phân tán, những người tham gia mạng tiền điện tử cần phải thường xuyên đồng ý về trạng thái hiện tại của blockchain và đó là điều mà chúng tôi gọi là thành tựu đồng thuận. Tuy nhiên, đạt được sự đồng thuận trên các mạng phân tán một cách an toàn và hiệu quả không phải là một nhiệm vụ dễ dàng.

Vì vậy, làm thế nào một mạng lưới 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 Các vị tướng Byzantine, đã khai sinh ra khái niệm về khả năng chịu lỗi của Byzantine.


Vấn đề của các vị tướng Byzantine là gì?

Nói một cách ngắn gọn, Vấn đề của các tướng lĩnh Byzantine được hình thành vào năm 1982 như một tình huống khó xử logic minh họa 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 tiếp theo của họ.

Tình thế tiến thoái lưỡng nan giả định rằng mỗi vị tướng có quân đội riêng và mỗi nhóm đóng ở các địa điểm khác nhau xung quanh thành phố mà họ định tấn công. Các tướng cần phải thống nhất về việc tấn công hoặc rút lui. Việc họ tấn công hay rút lui không quan trọng, miễn là tất cả các tướng đạt được sự đồng thuận, tức là đồng ý về 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 yêu cầu sau:

  • Mỗi tướng phải quyết định: tấn công hay rút lui (có hoặc không);

  • Sau 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 tin nhắn được chuyển tiếp bởi người đưa thư. Do đó, thách thức chính của Vấn đề của các vị tướng 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 bằng cách nào đó.

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 vấn đề nan giải 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 cần đạ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 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 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à có ít nhất ⅔ nút mạng trung thực và đáng tin cậy hơn. Đ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 (chẳng hạn như cuộc tấn công 51%).


Dung sai lỗi Byzantine (BFT)

Nói một cách ngắn gọn, khả năng chịu lỗi của Byzantine (BFT) là đặc tính của một hệ thống có khả năng chống lại loại lỗi bắt nguồn từ Bài toán của các vị tướng 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 giải pháp khả thi cho Vấn đề của các 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 và điều này dẫn chúng ta đến cái gọi là 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à cơ chế mà qua đó mạng blockchain đạt được sự đồng thuận. Các triển khai phổ biến nhất là Bằng chứng công việc (PoW) và Bằng chứng cổ phần (PoS). Nhưng hãy lấy trường hợp Bitcoin làm ví dụ.

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

Mặc dù khái niệm Proof of Work có lịch sử 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ó như một thuật toán cho phép tạo ra Bitcoin dưới dạng hệ thống BFT.

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 đó, 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 thiên tài nhất cho các lỗi Byzantine.


Suy nghĩ cuối cùng

Bài toán của 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, hệ thống này đang được áp dụng rộng rãi trong nhiều tình huống khác nhau. Ngoài ngành công nghiệp blockchain, một số trường hợp sử dụng hệ thống BFT bao gồm ngành 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ử, việc có mạng lưới giao tiếp hiệu quả cùng với cơ chế đồng thuận tốt là điều quan trọng đối với 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 chưa khắc phục đượ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 chắc chắn đang truyền cảm hứng cho sự đổi mới rộng rãi.