Giới thiệu

Kể từ khi Bitcoin lần đầu tiên được giới thiệu như một hệ thống tiền điện tử vào năm 2008; nhiều loại tiền tệ khác được tạo ra sau đó, mỗi loại có cơ chế riêng. Tuy nhiên, có một điểm chung mà hầu hết tất cả các loại tiền kỹ thuật số đều có là thành phần kiến ​​trúc cơ bản của chúng, đó là công nghệ Blockchain.

Với một vài ngoại lệ, blockchain được thiết kế để 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 phi tập trung. Do đó, công nghệ blockchain cho phép tạo ra một hệ thống kinh tế không cần sự tin cậy, trong đó tính minh bạch và độ tin cậy của các giao dịch tài chính có thể xảy ra mà không cần đến người trung gian. Tiền kỹ thuật số sẽ được sử dụng như một phương tiện thanh toán thay thế ngân hàng và hệ thống thanh toán 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 kỹ thuật số phải nhất trí định kỳ về trạng thái hiện tại của chuỗi khối và đây là điều mà chúng tôi 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 lưới phân tán một cách trung thực và an toàn là rất khó đạt được.

Vì 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 thống nhất được một quyết định? Nếu một số nút có thể bị lỗi hoặc hoạt động không trung thực? Đây là một câu hỏi cơ bản được gọi là bài toán Byzantine tổng quát, đã dẫn đến một khái niệm gọi là Dung sai lỗi Byzantine.


Đó có phải là vấn đề phổ biến của Byzantine không?

Nói tóm lại, bài toán tổng quát Byzantine ra đời vào năm 1982 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 giao tiếp để thống nhất về bước đi tiếp theo của họ.

Tình thế tiến thoái lưỡng nan này giả định rằng mỗi vị tướng đều có quân đội riêng và mỗi nhóm được bố trí ở một địa điểm khác nhau trong thành phố mà họ muốn tấn công. Các tướng cần phải thống nhất về việc họ sẽ tấn công hay rút lui. Vấn đề không phải là tấn công hay rút lui, miễn là các tướng lĩnh đạt được sự đồng thuận, chẳng hạn: nhất trí về một quyết định sẽ thi hành theo mệnh lệnh.


Vì vậy, có một số điều cần phải được xác định:

  • Mỗi vị tướng phải quyết định; nên 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;

  • Mỗi vị tướng phải đồng ý với cùng một quyết định và thực hiện nó theo các quy tắc đã được thiết lập cùng một lúc.

Các vấn đề liên lạc được mô tả ở trên có liên quan đến thực tế là 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 gửi bởi người đưa tin. Điều tương tự thách thức Bài toán Byzantine chung khiến việc gửi tin nhắn bị cản trở đôi chút, có thể bị phá hủy hoặc bị thất lạc.

Hơn nữa, 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 phản hồi nhằm mục đích gây nhầm lẫn cho các tướng khác, điều này có thể dẫn đến cuộc tấn công thất bại.

Nếu chúng ta áp dụng vấn đề nan giải này vào bối cảnh blockchain, thì mỗi vị tướng đại diện cho một nút mạng và 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 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 cho loại hệ thống phân tán này là phải có ⅔ nút mạng trở lên trung thực và đáng tin cậy. Điều này cũng có thể có nghĩa là nếu phần lớn những người tham gia mạng quyết định hành động độc hại thì hệ thống sẽ rất dễ bị lỗi và bị tấn công (chẳng hạn như tấn công 51%).


Dung sai lỗi Byzantine (BFT)

Nói cách khác, Dung sai lỗi Byzantine là đặc tính của một hệ thống có thể ngăn chặn các lỗi do tình huống khó xử Vấn đề chung của Byzantine gây ra. Điều này cũng 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 hoạt động không đúng.

Có một số giải pháp cho Bài toán Byzantine tổng quát và cũng có một số cách để xây dựng hệ thống BFT. Hơn nữa, có một số cách tiếp cận blockchain có thể đạt được BFT và điều này sẽ dẫn chúng ta đến 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à một cơ chế để mạng blockchain đạt được sự đồng thuận. cách 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 Bitcoin làm ví dụ.

Giao thức Bitcoin xác định các quy tắc chính cho hệ thống Bitcoin và chính thuật toán đồng thuận PoW xác định cách tuân theo các quy tắc đó để đạ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 Proof of Work đã cũ hơn các loại tiền kỹ thuật số khác, Satoshi Nakamoto đã phát triển một phiên bản sửa đổi như một thuật toán cho phép sử dụng quy trình tạo Bitcoin làm hệ thống BFT.

Cần lưu ý rằng thuật toán PoW không có khả năng chịu lỗi Byzantine 100%, nhưng do quá trình khai thác rất tốn kém và các kỹ thuật mã hóa cơ bản, PoW đã chứng tỏ mình là triển khai mạng blockchain an toàn và đáng tin cậy nhất. Trong trường hợp 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 giải pháp thiên tài cho Lỗi Byzantine.


Phần kết luận

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

Trong bối cảnh tiền tệ kỹ thuật số, 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à rất quan trọng đối với bất kỳ hệ sinh thái blockchain nào. Bảo mật các hệ thống này là một nỗ lực không ngừng nghỉ 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ế mà chúng vẫn gặp phải (chẳng hạn như mở rộng quy mô). Mặc dù vậy, PoW và PoS là một cách tiếp cận không kém phần thú vị so với các hệ thống BFT và các ứng dụng tiềm năng của chúng truyền cảm hứng cho sự đổi mới rộng rãi.