Giao dịch Shielded của Zcash(ZEC) được thiết kế để ngăn chi tiêu hai lần (double spending) và phát hành tài sản giả mạo, trong khi vẫn giữ kín số tiền giao dịch cũng như thông tin người gửi, người nhận. Cách làm là chỉ công khai phần thông tin cần thiết để xác thực, còn lại được mã hóa.
Giao dịch Shielded của Zcash sử dụng bốn thành phần: nullifier, bằng chứng không tiết lộ thông tin (zero-knowledge proof), cam kết giá trị (value commitment) và chữ ký ràng buộc (binding signature). Mỗi thành phần đảm nhận một vai trò riêng: xác nhận tài sản đã được sử dụng hay chưa, xác minh quyền sử dụng, và kiểm tra sự cân bằng giá trị trước và sau giao dịch.
Tài sản trên Zcash được quản lý theo đơn vị gọi là “note”. Trong giao dịch Shielded, số tiền và người nhận ghi trong note không được công khai. Thay vào đó, hệ thống ghi lại trên blockchain một “cam kết note” (note commitment) — giá trị được khóa chặt về mặt mật mã để xác nhận tính hợp lệ mà không tiết lộ nội dung thật của note.
Cam kết note giống một chiếc hộp đã niêm phong. Người ngoài không thấy được bên trong, nhưng vẫn có thể kiểm tra xem giá trị ban đầu có bị thay đổi hay không, nhờ đó xác nhận được tài sản giao dịch đúng là tài sản đã cam kết từ đầu.
Lớp xác thực đầu tiên là nullifier. Khi người dùng sử dụng một note, hệ thống không công khai chính note đó mà chỉ công khai một giá trị duy nhất được suy ra từ note ấy. Nếu note đó bị dùng lại, giá trị nullifier tương ứng sẽ xuất hiện lần nữa.
Mạng lưới sẽ kiểm tra xem nullifier đã từng được đăng ký hay chưa. Nếu giá trị đó xuất hiện lần thứ hai, giao dịch sẽ bị từ chối. Nhờ vậy, hệ thống chặn được hành vi chi tiêu hai lần mà không cần tiết lộ note nào đã được dùng hay ai là chủ sở hữu.
Lớp xác thực thứ hai là bằng chứng không tiết lộ thông tin. Người dùng phải chứng minh mình thực sự sở hữu note, có quyền sử dụng tài sản đó và tuân thủ đúng quy tắc giao dịch.
Trong quá trình này, số tiền chính xác hay thông tin nhận diện của note không hề bị công khai. Mạng lưới vẫn có thể xác nhận giao dịch hợp lệ mà không cần biết chi tiết tài sản bên trong.
Lớp xác thực thứ ba là kiểm tra giá trị. Vì số tiền giao dịch bị ẩn, nếu không có cơ chế kiểm soát, người dùng có thể tạo ra lượng tài sản vượt quá số họ thực sự sở hữu. Vì vậy hệ thống phải xác nhận riêng mối quan hệ giá trị trước và sau giao dịch.
Cam kết giá trị khóa chặt số tiền thực về mặt mật mã mà không công khai con số đó. Ví dụ, nếu một người chỉ có 10 ZEC nhưng cố tạo ra và gửi đi 20 ZEC, phép tính trước và sau giao dịch sẽ không khớp, khiến giao dịch không thể vượt qua bước xác thực.
Cam kết giá trị và bằng chứng không tiết lộ thông tin cùng xác nhận sự cân bằng giá trị trước và sau giao dịch, còn chữ ký ràng buộc đảm bảo sự cân bằng đó gắn chặt với đúng nội dung giao dịch đang xét. Nếu điều kiện xác thực không khớp, giao dịch sẽ không thể tạo ra chữ ký hợp lệ và bị từ chối.
Nói cách khác, mỗi giao dịch Shielded của Zcash phải trả lời được ba câu hỏi: tài sản đã được dùng trước đó hay chưa, người thực hiện có thực sự có quyền sử dụng hay không, và số tiền có bị thổi phồng trong quá trình giao dịch hay không.
Nếu Bitcoin(BTC) xác nhận việc di chuyển và sử dụng tài sản thông qua một sổ cái công khai, thì Zcash chỉ công khai những thông tin mật mã cần thiết cho việc xác thực, thay vì phơi bày chi tiết giao dịch. Đây là cách giữ được quyền riêng tư mà vẫn duy trì khả năng kiểm tra tính hợp lệ của giao dịch.
Bình luận: cấu trúc này cho thấy tính năng bảo mật của Zcash không đơn thuần là che giấu thông tin giao dịch. Độ tin cậy của một giao dịch được bảo vệ dựa trên việc kiểm tra riêng biệt ba yếu tố — note có bị dùng trùng hay không, người dùng có quyền sử dụng hay không, và giá trị giao dịch có được bảo toàn hay không.
Zcash dự kiến sẽ phân tích sâu hơn về khả năng tồn tại lỗ hổng trong hệ thống xác thực giao dịch Shielded cũng như hướng khắc phục trong bài viết kỹ thuật tiếp theo. Trước đó, bài viết về Zcash khắc phục lỗ hổng Orchard và cấu trúc giao dịch mới cũng là bối cảnh cần theo dõi song song giữa bảo mật và xác thực quyền riêng tư.
Bình luận 0