Chuyển tới nội dung chính

Vì sao cần bằng chứng?

Một trình lập chỉ mục quét chuỗi khối PIVX và dựng nên sổ đăng ký tên. Nhưng vì sao lại phải tin nó? Nếu nó:

  • Bịa ra một lần đăng ký chưa từng xảy ra trên chuỗi thì sao?
  • Thu sai phí thì sao?
  • Đăng ký một tên hai lần thì sao?
  • Sửa đổi trạng thái sổ đăng ký thì sao?

Bằng chứng ZK xóa bỏ những câu hỏi này. Mỗi bằng chứng là một chứng chỉ mật mã cho thấy lần đăng ký đã được xử lý đúng. Bất kỳ ai cũng có thể kiểm chứng độc lập.

Mỗi bằng chứng kiểm chứng điều gì

Trình tạo bằng chứng của PIVX dùng SP1 — một máy ảo không tiết lộ tri thức trên kiến trúc RISC-V. Với mỗi giao dịch có tên miền, trình tạo bằng chứng thực hiện các kiểm tra sau bên trong zkVM:

  1. Tính hợp lệ của tên — 1-64 ký tự, chữ thường và số cùng dấu gạch nối, trong một vùng được phép
  2. Tính hợp lệ của địa chỉ — địa chỉ đích là địa chỉ được che chắn PIVX Sapling trên đúng mạng, ở dạng bech32 hiện đại
  3. Chữ ký Ed25519 — chữ ký trên đúng thông điệp được ký là hợp lệ và do đúng khóa mà thao tác yêu cầu tạo ra
  4. Bất biến của thao tác — quyền sở hữu, trạng thái giá và thứ tự nonce nhất quán với thao tác đang thực hiện
  5. Chống phát lại — nonce lớn hơn nghiêm ngặt so với nonce trước đó của bản ghi
  6. Chuyển trạng thái — bằng chứng Merkle dựng lại gốc cũ, và gốc mới suy ra từ việc áp dụng đúng thay đổi này

Nếu bất kỳ kiểm tra nào thất bại, bằng chứng không thể được tạo ra.

Điều bằng chứng không kiểm tra

Ở đây, sự chính xác quan trọng hơn vẻ ấn tượng:

  • Khoản thanh toán không được kiểm chứng bên trong mạch. Việc một giao dịch có trả đúng phí và một lệnh BUY có thực sự chuyển tiền hay không là do nhà đăng ký bảo đảm ngoài chuỗi, và ai phát lại chuỗi bằng khóa xem đã công bố đều kiểm tra được. Chứng minh quyền sở hữu một ghi chú bên trong zkVM sẽ tốn kém hơn nhiều so với chi phí của cả lô hiện nay, và sẽ cho một bảo đảm yếu hơn so với điều mà việc nhân bản vốn đã mang lại: mạch chỉ thấy cam kết của ghi chú, còn trình lập chỉ mục phát lại thì thấy số tiền đã giải mã và memo.
  • Mạch không chứng minh rằng đầu vào chính là chuỗi thật. Nó chứng minh rằng với lô này, phép chuyển tuân theo các quy tắc. Việc lô đó là dòng lệnh thật, đầy đủ và đúng thứ tự thì do nhân bản xác lập — xem Tin cậy & Quyền riêng tư.

Vì thế PiNS làm cho gian lận lộ ra thay vì ngăn chặn nó: một lô sai thì ngay từ đầu đã không thể chứng minh, còn một lô không đến từ chuỗi thật sẽ bị mọi trình lập chỉ mục độc lập bác bỏ.

Đầu ra công khai

Mỗi bằng chứng cam kết với 3 giá trị gắn vĩnh viễn với nó:

Đầu raMô tả
old_rootGốc cây Merkle trước lần đăng ký này
new_rootGốc cây Merkle sau lần đăng ký này
end_block_heightKhối PIVX cuối cùng của lô đăng ký

end_block_height ghim bằng chứng vào một khối PIVX cụ thể, như một điểm kiểm tra. Bất kỳ ai cũng có thể quét chuỗi tới độ cao đó bằng khóa xem đã công bố và xác nhận rằng memo cùng số tiền khớp với điều mà lô đã tuyên bố.