Có thể nói rằng Cơ chế đồng thuận Delegated Byzantine Fault Tolerance (dBFT) là mảnh ghép còn thiếu cho công nghệ chuỗi khối để bù đắp thiếu sót cho cơ chế Proof-of-Work (điển hình là Bitcoin) và Proof-of-Stake (ví dụ NXT).
Được phát triển bởi đội ngũ của NEO, bạn có thể hiểu dBFT là “Dung sai lỗi Byzantine uỷ quyền” (trước đây có tên là AntShares) với mục đích nhằm giải thích cho “Bài toán vị tướng Byzantine”. Hệ thống này bao gồm các Node, các đại diện uỷ quyền (người sẽ xác nhận Block) và một người phát ngôn (người sẽ khởi xướng Block kế tiếp).
MỤC LỤC BÀI VIẾT
Bài toán vị tướng Byzantine là gì?
Thời kỳ La Mã, 9 vị tướng trong đế chế Byzantine đã bao vây thành phố Rome bằng quân đội của họ. Để chiếm được thành Rome, các tướng lĩnh phải tấn công hoặc rút lui một cách cùng nhau. Nếu bất kỳ hành động nào trái ngược với quyết định đồng thuận thì đội quân sẽ bị đánh bại. Quyết định tấn công hoặc rút lui được đưa ra từ một cuộc bỏ phiếu và lựa chọn nào nhận được trên 50% số phiếu sẽ được chọn. Vì mỗi Tướng đang chỉ huy quân đội của họ ở các vị trí địa lý riêng biệt xung quanh thành phố, họ sử dụng những người đưa thư để mang phiếu bầu cho các tướng khác.
Hệ thống này tồn tại những sai sót cố hữu. Đầu tiên, bất kỳ tướng quân Byzantine nào cũng có thể bị người La Mã mua chuộc để phản bội quân đội Byzantine, đây sẽ là những tướng quân phản bội. Thứ hai, những người đưa thư mang phiếu bầu của các tướng lĩnh có thể bị người La Mã mua chuộc để thay đổi số phiếu theo cách bất lợi. Và thứ ba, các nhà tướng quân có thể không gửi được thông điệp của họ hoặc gửi thông điệp sai.
Kịch bản của các tướng Byzantine là một sự tương tự cho vấn đề mà các hệ thống máy tính phân tán phải đối mặt: Làm thế nào để chúng ta đạt được sự đồng thuận khi phải đối mặt với các tác nhân không đáng tin cậy và gặp trục trặc đe dọa gây mất ổn định hệ sinh thái?
Delegated Byzantine Fault Tolerance – cơ chế đồng thuật dBFT
Đây là một khái niệm khá trừu tượng và cần tính tập trung. Mời bạn tìm hiểu tiếp cùng VF Ventures:
Để giải thích cách thức hoạt động của dBFT, mình sẽ sử dụng một ví dụ như sau. Có một quốc gia tên là NEO. Mọi công dân đều được trao quyền bầu ra ai sẽ là người đại diện cho họ, người này được gọi là Delegate. Nếu công dân không đồng ý với cách mà Delegate đó bỏ phiếu thì họ có thể bầu ra cho một Delegate khác vào lần tới. Các Delegate này sau đó phải lắng nghe ý dân về những điều mà người dân muốn và đưa vào một cuốn sổ dự luật. Sau đó các dự luật sẽ được các Delegate cùng nhau thông qua, nếu được thông qua sẽ trở thành luật phát cho người dân.
Bây giờ sẽ đến phần thông qua các dự luật cần sự đồng thuận cao nhất từ các Delegate. Trong trường hợp này một Speaker sẽ được chọn ngẫu nhiên từ các Delegate. Speaker sẽ đề ra dự luật mà người dân yêu cầu rồi tính toán luật sẽ ảnh hưởng đến Chỉ Số Hạnh phúc của đất nước như thế nào (thước đo mức độ hạnh phúc của họ). Tiếp theo, Speaker trao tận tay cho các Delegate dự luật đề xuất của mình. Sau đó, các Delegate quyết định xem tính toán của Speaker có khớp với chính họ không và trao đổi với các Delegate khác để xác minh Chỉ Số Hạnh Phúc được tính là chính xác. Nếu trên 66% phần trăm số Delegate đồng ý rằng kết quả tính của Speaker nói là chính xác thì dự luật sẽ được thông qua và được hoàn thiện.
Tất cả các Node hoạt động trung thực với sự đồng thuận 100%. Luật A (khối) sẽ được xác minh.
Nếu ít hơn 66% số Delegate đồng ý thì một Speaker mới được chọn ngẫu nhiên và quá trình bỏ phiếu được lặp lại. Hệ thống này được thiết kế để bảo vệ chống lại những kẻ phản bội và những người muốn phá hoại làm cho kết quả của đồng thuận bị sai.
Áp dụng sự tương tự này vào Neo Blockchain, bất kỳ ai sở hữu NEO đều là công dân. Phần lớn chủ sở hữu NEO là Node thông thường chỉ có thể chuyển hoặc trao đổi tài sản. Giống như công dân ở quốc gia NEO, họ không tham gia xác nhận Block. Các Delegate ở trong NEO sẽ được gọi là Bookkeeping Node. Các Node này xác minh từng Block được ghi vào Blockchain. Để trở thành Bookkeeping Node, cần phải đáp ứng một số yêu cầu chẳng hạn như phải có thiết bị đặc biệt, kết nối Internet chuyên dụng và một lượng GAS nhất định (1.000)
Trong trường hợp này yêu cầu của người dân là các giao dịch được thực hiện bởi chủ sở hữu NEO. Dự luật sẽ là Block hiện tại trong Blockchain và Chỉ Số Hạnh phúc là hàm băm của Block. Bây giờ hãy xem cách hệ thống tự bảo vệ.
Khi Speaker không trung thực
Luôn có cơ hội Speaker, người được chọn ngẫu nhiên từ các Delegate có thể không trung thực. Trong ví dụ sau đây, Speaker gửi một tin nhắn không đúng (dự luật B) đến 2 trong số 3 Delegate và một tin nhắn chính xác (dự luật A) đến 1 Delegate.
Trong kịch bản này, đề xuất dự luật sẽ bị từ chối. Do Delegate ở giữa và Delegate bên phải sẽ không tính được Chỉ Số Hạnh phúc giống như chỉ số đề xuất bởi Speaker và không thể xác minh dự luật, dẫn đến có 2 sự từ chối. Delegate còn lại, người được gửi luật chính xác, sẽ xác nhận Chỉ Số Hạnh phúc được gửi bởi Speaker là chính xác vậy là chỉ có 1 chấp nhận. Đề xuất này sẽ bị từ chối vì nó không nhận được sự đồng thuận 66% (cần 2 phiếu) và một Speaker mới sẽ được chọn ngẫu nhiên, bắt đầu lại quá trình.
Trường hợp Delegate không trung thực
Trong tình huống này, Speaker là trung thực và một trong các Delegate là không trung thực.
Các Delegate trung thực (Trái và Giữa) sẽ có thể xác minh dự luật A được đề xuất bởi Speaker là trung thực và do đó đạt được sự đồng thuận 66%. Các Delegate cũng có thể xác định rằng Delegate phải là không trung thực.
Đánh giá cơ chế đồng thuật dBFT
Ưu điểm
Malcolm Lerider, nhà phát triển cấp cao tại NEO chia sẻ như sau về giao thức dBFT: “dBFT được phát minh ra bởi NEO và đã được chứng minh là hoạt động vô cùng hiệu quả. Nó là một giao thức đồng thuận phát triển với tính hoàn thiện tuyệt đối, đồng nghĩa với việc 100% các giao dịch sẽ được hợp thức hoá và không thể đảo ngược sau lần xác nhận đầu tiên. Blockchain sẽ không thể bị Fork nếu tích hợp dBFT, và các giao dịch xâu chuỗi giá trị cao sẽ được xử lý nhanh hơn. Nó được lồng ghép các quy định quản lý và cả ứng dụng doanh nghiệp vào đó.”
Nhược điểm
Vitalik Buterin lập luận rằng tính bất biến 100% lúc nào cũng chỉ là một khái niệm nằm trên sách vở. Tuy nhiên, Blockchain NEO từ trước đến nay vẫn chưa ghi nhận một lần giao dịch bị đảo ngược mà cho thấy khẳng định của đội ngũ phát triển là sai sự thật.
Mức độ tiếp nhận
dBFT hiện đang được sử dụng bởi NEO.
Kết luận
NEO vẫn đang phát triển cơ chế đồng thuận Delegated Byzantine Fault Tolerance của họ. Bài viết này chỉ với mục đích cung cấp những cái nhìn tổng quát nhất về cơ chế đồng thuận này. Ngoài ra, vì dBFT vẫn đang được phát triển nên nhiều khía cạnh về cách thức hoạt đông của cơ chế này trên NEO blockchain vẫn chưa được công bố. Rất mong trong các bài viết tiếp theo có thể cung cấp thêm những thông tin mới nhất cho bạn đọc về cơ chế này.
Tài liệu tham khảo:
- https://www.reddit.com/r/NEO/comments/6vlatx/dbft_beginners_explanation/
- https://docs.neo.org/developerguide/en/articles/consensus/consensus_algorithm.html
- https://coinrivet.com/delegated-byzantine-fault-tolerance-dbft-explained/
- https://coin68.com/tu-pow-pos-cho-den-dbft-li-giai-ngan-gon-cac-giao-thuc-dong-thuan-cua-tien-dien-tu/