Tôi đang xem mô hình giao dịch minh bạch của Dusk và ban đầu bỏ qua một thứ nghe có vẻ gần như quá cơ bản: nonce.

Moonlight là mô hình giao dịch dựa trên tài khoản của Dusk. Mỗi tài khoản có một khóa công khai, số dư và nonce; nonce đóng vai trò như bộ đếm cho các giao dịch được gửi từ tài khoản đó.

Chỉ cái bộ đếm nhỏ bé ấy lại có nhiệm vụ lớn hơn vẻ ngoài ban đầu.

Bản whitepaper liên kết rõ ràng nonce với cơ chế chống phát lại (replay protection). Một giao dịch không chỉ được ủy quyền đơn giản vì chữ ký hợp lệ; chuỗi giao dịch của tài khoản cũng phải có ý nghĩa và khớp đúng trình tự.

Đây là một trong những mảnh ghép hạ tầng blockchain mà người dùng hầu như không bao giờ để ý khi nó hoạt động đúng.

Bạn ký một giao dịch, mạng xử lý nó, số dư của bạn thay đổi và bạn tiếp tục.
Nhưng nếu không có các cơ chế ngăn một giao dịch hợp lệ cũ được chấp nhận lại, thì cùng một sự ủy quyền đó có thể vô tình trở thành một vấn đề bảo mật hoàn toàn khác.

Điều tôi thấy thú vị ở Dusk là Moonlight và Phoenix giải quyết cùng các yêu cầu cơ bản về giao dịch thông qua hai mô hình rất khác nhau.

Moonlight công khai trạng thái tài khoản, số dư và siêu dữ liệu giao dịch. Phoenix chuyển việc xác minh số dư và bảo vệ chống chi tiêu gấp đôi vào các bằng chứng ZK và các nullifier. Dù vậy, cả hai vẫn phải thiết lập quyền sở hữu, ngăn tính khả biến (malleability) và chặn chi tiêu gấp đôi.

Vì vậy, quyết định thiết kế thực sự không chỉ đơn giản là công khai hay riêng tư.

Mà là mạng có thể trực tiếp xác minh được bao nhiêu phần của quá trình chuyển trạng thái, và bao nhiêu phần còn lại phải được chứng minh bằng mật mã.
Điều đó khiến cho nonce—vốn khiêm tốn—trở nên thú vị hơn nhiều so với âm thanh của nó.

Giao dịch “nhìn thấy được” chỉ là bề nổi. Bên dưới nó là một tập hợp các quy tắc đảm bảo rằng cùng một sự ủy quyền không thể chỉ đơn giản được phát lại.

Có bao nhiêu “tính năng” của blockchain thực ra là các giả định bảo mật vô hình, chỉ được người dùng nhận ra khi chúng thất bại?

@Dusk $DUSK #dusk