Cách hoạt động
Dịch vụ Tên PIVX (PiNS) cho phép đăng ký tên miền dễ đọc (như myname.pivx), đổi địa chỉ mà chúng phân giải tới, chuyển cho chủ sở hữu khác và rao bán trên chợ, đồng thời ánh xạ chúng an toàn tới địa chỉ PIVX.
Vì PIVX là chuỗi khối dựa trên UTXO và không có hợp đồng thông minh đa dụng, nó không thể tự vận hành một hệ cơ sở dữ liệu phức tạp như sổ đăng ký tên miền. Để giải quyết, PiNS dùng kiến trúc kiểu rollup: các thao tác chạy ngoài chuỗi, dữ liệu nằm trên PIVX, còn bảo mật được neo trên BNB Smart Chain.
Hệ thống gồm năm thành phần liên kết với nhau:
1. Chuỗi khối PIVX: tầng sẵn sàng dữ liệu
Mọi hành động của người dùng — đăng ký tên (REG), đổi địa chỉ (UPD), chuyển quyền sở hữu (CHG), rao bán trên chợ (LST), gỡ khỏi chợ (ULT) hay mua (BUY) — đều bắt đầu như một giao dịch PIVX thông thường. Giao dịch chứa một lệnh văn bản có cấu trúc trong trường memo (ví dụ PiNS:1:REG:domain:address:pubkey:nonce:signature).
- Nguồn sự thật là chuỗi PIVX. Nó lưu vĩnh viễn mọi lệnh tên miền. Không thể có thay đổi trạng thái nào nếu không có giao dịch PIVX được ghi lại.
2. Nút nhà đăng ký: bộ tuần tự
Một nút nhà đăng ký tự động quét chuỗi khối PIVX. Nó đọc các lệnh tên miền, kiểm tra người dùng đã trả đúng phí và xếp các thao tác vào hàng đợi. Cứ mỗi 10 phút, nhà đăng ký gom các thao tác đó thành một lô (batch).
3. SP1 zkVM: động cơ không tiết lộ tri thức (của Succinct)
Lô giao dịch được gửi tới Máy ảo Không Tiết lộ Tri thức SP1 (zkVM). zkVM chạy một chương trình khách bằng Rust chuyên biệt, đóng vai trọng tài nghiêm ngặt của giao thức. Trình tạo bằng chứng kiểm tra từng giao dịch trong lô:
- Chữ ký có hợp lệ và có do đúng chủ sở hữu tên miền tạo ra không?
- Các nonce có tăng nghiêm ngặt để ngăn tấn công phát lại không?
- Tiền tố tên miền có đúng định dạng không?
- Giao dịch
BUYcó trả đúng mức giá ghi trong giao dịchLSTkhông? old_rootcó chuyển đúng sangnew_roottheo các bằng chứng Merkle toán học không?
Nếu mọi quy tắc đều thỏa, zkVM tạo ra một bằng chứng mật mã ZK-SNARK (dùng Groth16). Bằng chứng này là một chứng chỉ tí hon tuyên bố về mặt toán học: «Bắt đầu từ gốc trạng thái A, sau khi áp dụng lô giao dịch hợp lệ này, gốc trạng thái mới là B.»
Mỗi phiên bản biên dịch của chương trình khách này cho ra một định danh mật mã duy nhất gọi là khóa xác minh (vkey). vkey là băm 32 byte của chính cấu trúc chương trình khách đã biên dịch. Chỉ cần sửa một dòng mã kiểm tra, chương trình sẽ biên dịch thành một vkey hoàn toàn khác.
4. Hợp đồng trên BNB Smart Chain: mỏ neo
Bằng chứng ZK đã tạo cùng các đầu vào công khai của nó được gửi tới hợp đồng thông minh PiNSAnchor trên BNB Smart Chain. Hợp đồng đóng vai cổng thanh toán bù trừ.
- Ràng buộc mật mã: bên trong hợp đồng thông minh,
programVkey(băm 32 byte kỳ vọng của chương trình khách) được lưu trên chuỗi. Khi một bằng chứng được nộp, hợp đồng chuyển tiếp nó cùngprogramVkeytới Cổng Xác minh SP1 của Succinct. - Kiểm tra khóa - ổ khóa: cổng xác minh chỉ chấp thuận bằng chứng nếu nó được tạo bởi đúng chương trình khách khớp với
programVkeyđã đăng ký. - Nếu bằng chứng hợp lệ và được xác minh với
programVkeyđã đăng ký, hợp đồng cập nhật gốc trạng thái chính thức, được công nhận toàn cục, thànhBvà lưu vào lịch sử của nó. - Nếu chỉ một quy tắc bị vi phạm, hoặc bằng chứng được tạo bằng chương trình khách đã bị sửa đổi (sẽ cho ra
vkeykhác), hợp đồng từ chối giao dịch, ngăn chặn các chuyển trạng thái trái phép.
Vì sao chọn BNB Smart Chain
Nhiệm vụ duy nhất của chuỗi neo là lưu một gốc và kiểm chứng một bằng chứng, nên điều quan trọng chỉ là một điểm kiểm tra trở nên chung cuộc nhanh đến đâu và ta tin chắc đến mức nào rằng nó sẽ giữ nguyên như vậy.
- Thời gian khối khoảng 2 giây, nên một lô được neo gần như ngay khi được chứng minh, và các trình lập chỉ mục nhanh chóng hội tụ về điểm kiểm tra mới.
- Trên thực tế không có tái tổ chức sâu, nên điểm kiểm tra mà một trình lập chỉ mục đã đồng bộ tới sẽ không bị rút khỏi dưới chân nó. Một chuỗi neo có tái tổ chức sâu sẽ buộc các trình lập chỉ mục phải hoàn tác trạng thái mà chúng đã coi là chung cuộc.
- Việc kiểm chứng bằng chứng có chi phí trên chuỗi cố định và rẻ bất kể kích thước lô — một lần kiểm chứng Groth16 bao trùm mọi thao tác trong lô.
5. Trình lập chỉ mục phân tán: bộ phân giải
Bất kỳ ai cũng có thể chạy một nút lập chỉ mục độc lập. Các trình lập chỉ mục quét chuỗi khối PIVX để tìm giao dịch tên miền, và quét hợp đồng trên BNB Smart Chain để tìm các điểm kiểm tra gốc đã được xác minh. Chúng áp dụng giao dịch cục bộ, tự tính cây Merkle của mình và kiểm tra rằng gốc cục bộ khớp với điểm kiểm tra trên chuỗi.
- Nhờ vậy, mọi trình lập chỉ mục, dù chạy ở đâu, luôn phân giải tên miền tới đúng cùng một địa chỉ đích (duy trì một trạng thái thống nhất trên các đầu phân tán).