Vấn đề của các tướng Byzantine
Vào ngày 5 tháng 7 năm 1982, Leslie Lamport (nhà phát triển LaTeX ban đầu, Nhà nghiên cứu của Microsoft và người chiến thắng Giải thưởng Turing 2013), Robert Shostak và Marshall Pease đã xuất bản một bài báo có tên là “Vấn đề của các vị tướng Byzantine” (The Byzantine Generals’ Problem).
Nhóm đã nghĩ ra một thí nghiệm tư duy cho một vấn đề thỏa thuận trừu tượng.
Họ tưởng tượng rằng một số sư đoàn của quân đội Byzantine đang cắm trại bên ngoài một thành phố của kẻ thù, mỗi sư đoàn được chỉ huy bởi tướng của mình. Các tướng chỉ có thể liên lạc với nhau bằng tin nhắn. Sau khi quan sát kẻ thù, họ phải quyết định một kế hoạch hành động chung.
Ở dạng đơn giản nhất, các tướng chỉ phải quyết định tấn công hay rút lui. Một số tướng có thể thích tấn công, trong khi những người khác thích rút lui. Điều quan trọng là mọi tướng đều đồng ý về một quyết định chung, vì một cuộc tấn công nửa vời của một vài tướng sẽ có khả năng thất bại cao hơn một cuộc tấn công phối hợp hoặc rút lui phối hợp.
Vì không thể biết tướng nào là kẻ phản bội đang cố gắng ngăn các tướng trung thành đạt được thỏa thuận, nên các tướng phải có một thuật toán để đảm bảo rằng tất cả các tướng trung thành quyết định theo cùng một kế hoạch hành động và một số ít kẻ phản bội có thể gây ra các tướng trung thành để thông qua một kế hoạch xấu.
Tướng phản bội
Nếu chín tướng đang bỏ phiếu, bốn người trong số họ ủng hộ tấn công trong khi bốn tướng khác ủng hộ rút lui, thì tướng thứ chín (tướng phản bội) có thể gửi phiếu rút lui cho những tướng đó ủng hộ rút lui và bỏ phiếu tấn công cho những người còn lại. Những người nhận được một cuộc bỏ phiếu rút lui từ vị tướng thứ chín sẽ rút lui, phần còn lại sẽ tấn công.
Sứ giả phản bội
Để làm cho vấn đề tồi tệ hơn, các tướng bị tách biệt về mặt địa lý và phải gửi phiếu bầu của họ thông qua những sứ giả đưa ti, và thậm chí chính người đó có thể phản bội bằng cách không gửi phiếu bầu hoặc có thể giả mạo phiếu bầu sai.
Hệ thống dung sai lỗi Byzantine là gì?
Ánh xạ điển hình của câu chuyện này lên các hệ thống máy tính là các máy tính là các tướng và các liên kết hệ thống truyền thông kỹ thuật số của chúng là các sứ giả.
Nói một cách đơn giản, lỗi Byzantine là một lỗi biểu hiện các triệu chứng khác nhau cho các nhà quan sát khác nhau. Tương tự, Lỗi Byzantine là mất thành phần hệ thống do Lỗi Byzantine trong một hệ thống phân tán đòi hỏi sự đồng thuận.
Vì vậy, lý do là mục tiêu của hệ thống dung sai lỗi Byzantine là có thể phòng thủ trước những thất bại của Byzantine.
Một hệ thống dung sai lỗi Byzantine được triển khai chính xác sẽ vẫn có thể cung cấp dịch vụ, giả sử rằng phần lớn các thành phần vẫn còn khỏe mạnh.
Đạt được dung sai lỗi Byzantine
Một số kiến trúc hệ thống đã được thiết kế để thực hiện Byzantine Fault Tolerance. Triển khai rất cụ thể cho trường hợp sử dụng của họ. Tuy nhiên, có hai giải pháp nổi bật mà các hệ thống này có thể sẽ thực hiện:
Chữ ký tin nhắn không thể giả mạo. Điều này có thể đạt được bằng cách sử dụng mật mã khóa công khai.
Phát sóng nguyên tử. Nếu hệ thống thông báo là lệnh được truyền đi đồng thời cho tất cả những người tham gia, sau đó A không thể gửi một tin nhắn khác cho C và B.
Các giải pháp này không loại trừ lẫn nhau, vì vậy các hệ thống cần có khả năng chịu lỗi rất cao thường kết thúc việc thực hiện một biến thể bao gồm cả hai.
SN_Nour