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