Kể từ khi Bitcoin ra đời vào năm 2008 với tư cách là một hệ thống tài chính điện tử ngang hàng, nhiều loại tiền kỹ thuật số đã được tạo ra, mỗi loại tiền này hoạt động theo một cơ chế đặc biệt. Nhưng có một điểm chung mà tất cả các loại tiền kỹ thuật số đều có là blockchain là thành phần cơ bản trong cấu trúc của chúng.
Tất cả các chuỗi khối đều được thiết kế có chủ ý để phân cấp và với một số ngoại lệ, chúng 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ế đáng tin cậy, nơi các giao dịch tài chính có thể được thực hiện một cách minh bạch và đáng tin cậy mà không cần qua trung gian.
Việc sử dụng tiền kỹ thuật số hiện đang được coi là một giải pháp thay thế khả thi cho các hệ thống ngân hàng truyền thống và phương thức thanh toán phụ thuộc nhiều vào niềm tin.
Giống như trường hợp của 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ử cần phải thường xuyên đồng ý về trạng thái hiện tại mà chuỗi khối hoạt động. Đây 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à bảo mật là một nhiệm vụ rất khó khăn.
Vì 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 ý về việc liệu một số nút có khả năng bị lỗi hoặc hoạt động bất hợp pháp hay không? Đây là câu hỏi cơ bản của cái gọi là Bài toán của các tướng lĩnh Byzantine, từ đó nảy sinh khái niệm Dung sai lỗi Byzantine.
Vấn đề của các tướng Byzantine là gì?
Nói tóm lại, Bài toán các tướng lĩnh Byzantine năm 1982 được hình thành như một tình huống khó xử logic minh họa việc một nhóm tướng lĩnh Byzantine có thể gặp vấn đề trong việc giao tiếp với nhau khi cố gắng thống nhất bước tiếp theo trong kế hoạch 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, mỗi nhóm đóng ở các địa điểm khác nhau xung quanh thành phố mà ông ta định tấn công và mỗi vị tướng phải đồng ý tấn công hoặc rút lui. Việc họ tấn công hay rút lui không thành vấn đề, 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 mục tiêu sau:
Mỗi vị tướng phải quyết định: tấn công hay rút lui (có hoặc không).
Một khi đã đưa ra 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 đề giao tiếp nêu trên liên quan đến việc mỗi thế hệ chỉ có thể giao tiếp với thế hệ khác thông qua tin nhắn được gửi bởi nhà mạng/chuyển phát nhanh. Vì vậy, thách thức chính của vấn đề đối với các tướng lĩnh Byzantine là các tin nhắn có thể bị trì hoãn, bị hư hỏng 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ể (vì bất kỳ lý do gì) chọn hành động ác ý và gửi tin nhắn giả mạo để gây nhầm lẫn cho các tướng khác, dẫn đến nhiệm vụ thất bại hoàn toàn.
Nếu chúng ta áp dụng vấn đề nan giải này trong bối cảnh blockchain, mỗi thế hệ đạ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à có ⅔ (hai phần ba) hoặc nhiều nút trung thực 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 (ví dụ: tấn công 51%).
Khả năng chịu lỗi Byzantine - BFT
Nói tóm lại, khả năng chịu lỗi 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 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 vi nguy hiểm.
Có nhiều giải pháp khả thi cho vấn đề Tướng quân Byzantine và điều này có nghĩa là 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 để 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 ứng dụng phổ biến nhất là Proof of Work (PoW) và Proof of Stake (PoS). Nhưng hãy lấy trường hợp của Bitcoin làm ví dụ.
Mặc dù giao thức Bitcoin quy định các quy tắc cơ bản của hệ thống, nhưng thuật toán đồng thuận được gọi là Bằng chứng công việc (PoW) 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 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 Proof of Work (PoW) không có khả năng chịu lỗi 100% nhưng do quy trình khai thác và kỹ thuật mã hóa tốn kém chi phí, PoW đã được chứng minh là một trong những triển khai an toàn và đáng tin cậy nhất của mạng blockchain.
Do đó, thuật toán Proof of Work do Satoshi Nakamoto thiết kế được nhiều người sử dụng như một trong những giải pháp khéo léo nhất cho các lỗi Byzantine.
Phần kết luận
Vấn đề về các tướng lĩnh Byzantine là một vấn đề nan giải thú vị mà cuối cùng đã dẫn đến sự ra đời của các hệ thống BFT được áp dụng rộng rãi trong các tình huống khác nhau. Ngay cả bên ngoài ngành công nghiệp blockchain, một số trường hợp sử dụ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 tệ kỹ thuật số, việc có một mạng lưới truyền thông hiệu quả cùng với cơ chế đồng thuận là điều quan trọng đối với bất kỳ hệ thống 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 đang nỗ lực khắc phục một số hạn chế (chẳng hạn như khả năng mở rộng). Tuy nhiên, Proof of Work (PoW) và Proof of Stake (PoS) là hai cách tiếp cận rất thú vị đối với hệ thống BFT và các ứng dụng tiềm năng chắc chắn là nguồn cảm hứng rộng rãi.
