Khi nói về sự đồng thuận của Dusk, tôi nhận ra một điểm thường bị dẫn dắt sai lệch: nhiều người chỉ nhìn vào “mấy giây tạo khối” rồi vội kết luận nó là phiên bản PoS tốc độ cao. Nhưng khi đọc kỹ whitepaper, tôi mới thấy phần mà SBA thực sự dụng tâm không nằm ở sự nhanh, mà nằm ở cách nâng “chi phí gian lận” lên một mức khiến người khác không dám đụng vào.
Trước hết nói về phần chữ ký theo ngưỡng. Xác minh truyền thống dựa vào việc hàng loạt nút tự chạy bỏ phiếu rồi phát tới tất cả mọi người. n nút xác nhận lẫn nhau, nên lượng truyền thông là O(n²). Nút càng nhiều thì mạng càng bắt đầu nghẽn. Nhưng cách làm của Dusk lại khác: nó cho phép mọi người xác thực trước tiên cùng tạo ra một khóa công khai tổng hợp, rồi theo ý tưởng chữ ký phân mảnh để cùng ký vào cùng một khối. Mỗi nút chỉ gửi ra một đoạn nhỏ, sau khi thu đủ thì ghép lại thành một chữ ký BLS hoàn chỉnh.
Nhờ vậy, lượng truyền thông giảm thẳng xuống O(n), và thời gian chờ xác nhận khi tạo khối cũng rút ngắn rõ rệt. Khi tôi chạy mô phỏng mạng trong phòng lab, với vài chục nút thì chênh lệch này đặc biệt dễ thấy: thời gian để xác minh một nhóm chữ ký gần như hằng định, gần như không phụ thuộc nhiều vào số lượng người tham gia.
Nhưng điều khiến tôi thấy thú vị nhất lại nằm ở nửa sau — cơ chế cấp phép và cơ chế trách nhiệm (slashing). #dusk không phải ai cũng có thể tùy tiện trở thành người xác thực. Bạn phải đi qua một quy trình gia nhập, và khi đã vào rồi thì còn có một bộ cơ chế Slashing đảm bảo “phía sau”: làm điều sai thì bị phạt bằng tiền ký quỹ. Đây thực chất là cách bịt một lỗ hổng khá kín đáo trong PoS — “xác minh không tốn chi phí” trong tấn công Sybil.
Nói thẳng ra: kẻ tấn công dùng hàng loạt danh tính giả để “đi kèm miễn phí” bên cạnh các trình xác thực trung thực. Họ không làm gì hoặc không bỏ tiền, nhưng từ bên ngoài nhìn vào vẫn giống như là phi tập trung, trong khi quyền lực lại lặng lẽ bị tập trung. Cấp phép trước giúp chặn hàng loạt danh tính giả, còn trách nhiệm sau đảm bảo mọi thứ đều có tiền thật nằm trong đó. Hai lớp này chồng lên nhau, nên chi phí để làm điều ác không còn là “0”, mà là một khoản lỗ có thể tính ra một cách rõ ràng. @Dusk $DUSK
Ban đầu tôi nghĩ những thiết kế này là để “ổn định”, sau đó tôi mới nhận ra: nó đang dùng lý thuyết trò chơi để định giá cho “niềm tin”. Chuyện đồng thuận, có khi sự thận trọng lại chính là sự táo bạo.
Trước hết nói về phần chữ ký theo ngưỡng. Xác minh truyền thống dựa vào việc hàng loạt nút tự chạy bỏ phiếu rồi phát tới tất cả mọi người. n nút xác nhận lẫn nhau, nên lượng truyền thông là O(n²). Nút càng nhiều thì mạng càng bắt đầu nghẽn. Nhưng cách làm của Dusk lại khác: nó cho phép mọi người xác thực trước tiên cùng tạo ra một khóa công khai tổng hợp, rồi theo ý tưởng chữ ký phân mảnh để cùng ký vào cùng một khối. Mỗi nút chỉ gửi ra một đoạn nhỏ, sau khi thu đủ thì ghép lại thành một chữ ký BLS hoàn chỉnh.
Nhờ vậy, lượng truyền thông giảm thẳng xuống O(n), và thời gian chờ xác nhận khi tạo khối cũng rút ngắn rõ rệt. Khi tôi chạy mô phỏng mạng trong phòng lab, với vài chục nút thì chênh lệch này đặc biệt dễ thấy: thời gian để xác minh một nhóm chữ ký gần như hằng định, gần như không phụ thuộc nhiều vào số lượng người tham gia.
Nhưng điều khiến tôi thấy thú vị nhất lại nằm ở nửa sau — cơ chế cấp phép và cơ chế trách nhiệm (slashing). #dusk không phải ai cũng có thể tùy tiện trở thành người xác thực. Bạn phải đi qua một quy trình gia nhập, và khi đã vào rồi thì còn có một bộ cơ chế Slashing đảm bảo “phía sau”: làm điều sai thì bị phạt bằng tiền ký quỹ. Đây thực chất là cách bịt một lỗ hổng khá kín đáo trong PoS — “xác minh không tốn chi phí” trong tấn công Sybil.
Nói thẳng ra: kẻ tấn công dùng hàng loạt danh tính giả để “đi kèm miễn phí” bên cạnh các trình xác thực trung thực. Họ không làm gì hoặc không bỏ tiền, nhưng từ bên ngoài nhìn vào vẫn giống như là phi tập trung, trong khi quyền lực lại lặng lẽ bị tập trung. Cấp phép trước giúp chặn hàng loạt danh tính giả, còn trách nhiệm sau đảm bảo mọi thứ đều có tiền thật nằm trong đó. Hai lớp này chồng lên nhau, nên chi phí để làm điều ác không còn là “0”, mà là một khoản lỗ có thể tính ra một cách rõ ràng. @Dusk $DUSK
Ban đầu tôi nghĩ những thiết kế này là để “ổn định”, sau đó tôi mới nhận ra: nó đang dùng lý thuyết trò chơi để định giá cho “niềm tin”. Chuyện đồng thuận, có khi sự thận trọng lại chính là sự táo bạo.
