Tôi đang cố gắng hiểu bằng chứng tri thức Zero và các ứng dụng của nó, bản chất đầu tiên của tôi là một chuỗi khối (tôi sẽ sử dụng giống như Bitcoin vì mục đích đơn giản)
Tôi đang cố gắng hiểu nó bằng cách mô tả các bước hợp lý cho một giao dịch chuỗi khối công khai. Mọi thứ tôi đọc đều nói về việc cung cấp các giá trị cho người khác bằng cách trao đổi tin nhắn với một bên khác (zkp tương tác), nhưng tôi không tìm thấy gì để kiểm tra xem các giá trị đó có hợp lệ hay không trong không gian công cộng (zkp không tương tác), để tránh chi tiêu gấp đôi hoặc thậm chí lưu trữ dữ liệu một cách an toàn. Trực giác của tôi là nó cũng yêu cầu đánh giá đồng hình trên các giá trị để chỉ người nhận thực sự có thể biết giá trị nào được lưu trữ nhưng cũng cho phép so sánh giữa các giá trị được mã hóa. Cho đến nay đây là những gì tôi có (theo các bước hợp lý)
A và B là các cặp khóa có các thuộc tính sau;
A(pub): Khóa công khai
A(priv): Khóa riêng
A(env): Khóa công khai (đánh giá)
V là trình xác thực
A muốn chuyển 12 xu cho B và có 15 xu trong ví của anh ấy, dựa trên UTxI cuối cùng được cộng vào.
A mã hóa các giá trị UTxI và UTxO (12 và 3) của Tx với (B)env nên bây giờ nó là H(i) và H(o)
A tạo bằng chứng cho từng giá trị được mã hóa (H) dưới dạng PH(i) và PH(o), đồng thời gửi giao dịch.
Tx = H, UTxI => H(i), UTxO => H(o), In => A(pub), Out => B(pub), Proof of In => PH(i), Proof of Out = > PH(o),
V muốn biết liệu A có đủ tiền để gửi Tx cho B hay không.
V sử dụng đánh giá đồng cấu để thêm tất cả UTxO (H(o)) của TX và so sánh với tất cả đầu vào trên A(pub), cũng được mã hóa.
V cũng làm tương tự với UTxI + UTxO, để kiểm tra xem chúng có bằng số dư trong A(pub) không
V xác minh bằng chứng PH(i) và PH(o), nếu hợp lệ, tiến hành chấp nhận Tx.
B nhận được Tx và có thể giải mã tất cả UTxI và UTxO để biết anh ấy đã nhận được bao nhiêu xu bằng cách sử dụng (B)priv
và B(env) để đảo ngược phép tính đồng cấu.
Anh ta cũng có bằng chứng về từng người trong số họ để các bên thứ ba xác thực rằng anh ta có số tiền đó một cách chính xác.
Ví dụ này sử dụng một số Bitcoin như hệ thống UTx trong đó số lượng tiền trong ví được tính bằng cách cộng các đầu vào giao dịch chưa sử dụng vào địa chỉ này (xin lỗi nếu nó có một số lỗi về logic), nhưng điều tôi đang cố gắng hiểu ở trên là làm thế nào chuỗi khối cần được nâng cấp để cho phép các giao dịch hoàn toàn riêng tư và vẫn được các bên thứ ba xác thực.
Là logic được mô tả đúng hay tôi đang thiếu một cái gì đó?
Cảm ơn vì thời gian bạn dành cho tôi!