#dusk $DUSK
Các giải pháp chống chi tiêu hai lần xuất hiện trong hai phần khác nhau của cùng bộ tài liệu giao thức, và tôi đã tiếp tục coi chúng là cùng một ý cho đến khi xem xét kỹ cả hai.

Moonlight nonce: một bộ đếm đơn giản. Tài khoản của bạn có nonce hiện tại. Mọi giao dịch phải bao gồm đúng current_nonce + 1. Mạng sẽ từ chối mọi thứ khác. Rõ ràng, tuần tự, có thể kiểm chứng công khai.

Phoenix nullifier: một giá trị mật mã được suy ra từ khóa bí mật của note. Khi bạn chi một note, bạn gửi nullifier. Mạng sẽ thêm nó vào danh sách nullifier. Không ai có thể gửi lại cùng một nullifier — chi tiêu hai lần bị chặn. Nullifier không tiết lộ gì về note hay số tiền.

Trên mainnet, giao dịch được hoàn tất trong dưới 10 giây. Cả hai cơ chế hoạt động trong khoảng thời gian đó — dù bạn dùng mô hình nào, việc kiểm tra chống chi tiêu hai lần sẽ được giải quyết trước khối tiếp theo.

Nonce của Moonlight được minh bạch theo thiết kế: nó cho phép bất kỳ ai xác minh rằng một giao dịch thực sự là giao dịch mới. Nullifier của Phoenix được bảo mật theo thiết kế: nó chứng minh tính duy nhất mà không tiết lộ đã chi note nào.

Sự so sánh còn thú vị hơn vẻ bề ngoài: cùng một đảm bảo nền tảng — lần chuyển này là mới và không thể lặp lại — được thực thi bằng việc tiết lộ thông tin hoàn toàn khác nhau. Một bên phát đi bộ đếm. Bên còn lại chứng minh tính duy nhất mà không cho thấy gì.

Cách tiếp cận nào mở rộng tốt hơn khi lượng giao dịch cao — trạng thái tuần tự hiển thị hay các tập nullifier riêng tư? @Dusk

$DUSK #dusk