Quy trình làm việc
Dịch vụ đặt tên ZCash (zNS) cho phép người dùng đăng ký, cập nhật địa chỉ phân giải, chuyển cho chủ sở hữu khác và liệt kê trên thị trường các tên miền mà con người có thể đọc được (chẳng hạn như myname.zcash) và ánh xạ chúng một cách an toàn tới các địa chỉ ZCash.
Vì ZCash là một blockchain dựa trên UTXO không có hợp đồng thông minh có mục đích chung nên nó không thể chạy một hệ thống cơ sở dữ liệu phức tạp như cơ quan đăng ký tên miền. Để giải quyết vấn đề này, zNS sử dụng Kiến trúc kiểu cuộn để thực thi các hoạt động ngoài chuỗi, lưu trữ dữ liệu trên ZCash và duy trì bảo mật trên Arbitrum.
Hệ thống được cung cấp bởi năm thành phần được kết nối với nhau:
1. ZCash Blockchain: Lớp sẵn có của dữ liệu
Mọi hành động mà người dùng thực hiện - đăng ký tên (REG), cập nhật địa chỉ (UPD), chuyển quyền sở hữu (CHG), niêm yết trên thị trường (LST), hủy niêm yết (ULT) hoặc mua (BUY) - đều bắt đầu dưới dạng giao dịch ZCash gốc. Giao dịch chứa lệnh văn bản có cấu trúc trong trường bản ghi nhớ giao dịch (ví dụ: zNS:1:REG:domain:address:pubkey:nonce:signature).
- Chuỗi ZCash là nguồn gốc của sự thật. Nó lưu trữ vĩnh viễn mọi lệnh miền. Không có thay đổi trạng thái nào có thể xảy ra nếu không có giao dịch ZCash được ghi lại.
2. Nút đăng ký: Trình sắp xếp thứ tự
Nút đăng ký tự động quét chuỗi khối ZCash. Nó đọc các lệnh miền, xác minh rằng người dùng đã thanh toán đúng phí giao dịch và xếp hàng các hoạt động. Cứ sau 10 phút, nhà đăng ký sẽ gộp các hoạt động này thành một Đợt duy nhất.
3. SP1 zkVM: Công cụ không kiến thức (bởi Succinct)
Lô giao dịch được gửi đến Máy ảo không kiến thức SP1 (zkVM). ZkVM chạy một chương trình khách Rust chuyên dụng hoạt động như một trọng tài giao thức nghiêm ngặt. Người chứng minh kiểm tra mọi giao dịch trong lô:
- Chữ ký có hợp lệ và được ký bởi chủ sở hữu tên miền thực tế không?
- Số nonces có tăng lên một cách nghiêm ngặt để ngăn chặn các cuộc tấn công lặp lại không?
- Tiền tố tên miền có được định dạng chính xác không?
- Giao dịch
BUYcó thanh toán theo mức giá chính xác được chỉ định trong giao dịchLSTkhông? old_rootcó chuyển đổi chính xác sangnew_rootbằng cách sử dụng bằng chứng Merkle toán học không?
Nếu tất cả các quy tắc đều được đáp ứng, zkVM sẽ tạo bằng chứng mật mã ZK-SNARK (sử dụng Groth16). Bằng chứng này là một chứng chỉ nhỏ tuyên bố về mặt toán học: "Bắt đầu từ trạng thái gốc A, sau khi áp dụng lô giao dịch hợp lệ này, trạng thái gốc mới là B."
Mỗi phiên bản được biên dịch của chương trình khách này đều mang lại một mã định danh mật mã duy nhất được gọi là Khóa xác minh (vkey). vkey là hàm băm 32 byte của chính cấu trúc của chương trình khách đã biên dịch. Nếu ngay cả một dòng mã xác minh bị sửa đổi, chương trình sẽ biên dịch thành vkey hoàn toàn khác.
4. Hợp đồng thông minh Arbitrum: Mỏ neo
Bằng chứng ZK được tạo và thông tin đầu vào công khai của nó sẽ được gửi tới hợp đồng thông minh zNSANchor trên Arbitrum. Hợp đồng đóng vai trò là cổng thanh toán.
- Ràng buộc mật mã: Bên trong hợp đồng thông minh,
programVkey(băm 32 byte dự kiến của chương trình khách) được lưu trữ trên chuỗi. Khi bằng chứng được gửi, hợp đồng sẽ chuyển tiếp bằng chứng vàprogramVkeytới Cổng xác minh Succinct SP1. - Xác thực khóa phím: Cổng xác minh sẽ chỉ phê duyệt bằng chứng nếu bằng chứng đó được tạo bởi chương trình khách chính xác khớp với
programVkeyđã đăng ký. - Nếu bằng chứng hợp lệ và được xác minh dựa trên
programVkeyđã đăng ký, hợp đồng sẽ cập nhật gốc tiểu bang chính thức, được chấp nhận trên toàn cầu thànhBvà lưu nó vào lịch sử của nó. - Nếu một quy tắc duy nhất bị vi phạm hoặc nếu bằng chứng được tạo bằng chương trình khách đã sửa đổi (sẽ tạo ra một
vkeykhác), thì hợp đồng sẽ từ chối giao dịch, ngăn chặn việc chuyển đổi trạng thái trái phép.
5. Bộ lập chỉ mục phân tán: Bộ giải quyết
Bất kỳ ai cũng có thể chạy Nút lập chỉ mục độc lập. Người lập chỉ mục quét chuỗi khối ZCash để tìm các giao dịch tên miền và quét hợp đồng Arbitrum để tìm các điểm kiểm tra gốc đã được xác minh. Họ áp dụng các giao dịch cục bộ, tính toán Cây Merkle của riêng mình và xác minh rằng gốc cục bộ của họ khớp với điểm kiểm tra Arbitrum.
- Điều này đảm bảo rằng tất cả những người lập chỉ mục, bất kể chúng chạy ở đâu, luôn phân giải các miền đến chính xác cùng một địa chỉ đích (duy trì một trạng thái thống nhất duy nhất ở các đầu được phân phối).