/** code Hien thi Favicon */ /** Ket thuc code Hien thi Favicon */
Zero Knowledge Proof là gì? - HiddenGem Team

Zero Knowledge Proof là gì?

Knowledge

Zero Knowledge Proof là gì?

Knowledge

Zero Knowledge Proof là gì?

Knowledge

Zero Knowledge Proof là gì?

ZK Proofs là một cách xác thực dữ liệu mà không tiết lộ dữ liệu đó. Khái niệm này được thiết kế để đảm bảo rằng Người dùng (có dữ liệu cần xác minh) không chia sẻ dữ liệu một cách không cần thiết với Người xác minh (Verifier). Đồng thời, Người xác minh có thể chắc chắn rằng dữ liệu của Người trình bày là hợp lệ.

Vì Người xác minh không biết thông tin thực sự đang được xác minh – họ chỉ biết rằng dữ liệu là đúng – những thông tin này được gọi là ‘Bằng chứng không có kiến ​​thức’ hay zero knowledge.

Zero Knowledge Proof hoạt động như thế nào?

Đây là một khái niệm rất thú vị. Hãy coi cơ chế đồng thuận này là quá trình bảo vệ bí mật. Alice biết một bí mật (Người chứng minh – Prover) cần được xác minh bởi Bob, Charles, Dylan và Eunice (Người xác minh – Verifier). Nhưng cô ấy không thể nói cho những người xác minh bí mật là gì.

Trong tình huống như vậy, bốn người xác minh sẽ yêu cầu Alice thực hiện các nhiệm vụ cụ thể mà cô ấy chỉ có thể thực hiện nếu biết bí mật. Nếu cô ấy hoàn thành chúng, những người xác minh sẽ tự động biết rằng bí mật của Alice là thật mà không cần biết chính bí mật đó. Các nhiệm vụ đóng vai trò là ZK Proof (bằng chứng ZK) cho người xác minh.

Nếu Alice tiếp tục đoán, bốn người kia sẽ bắt cô nói dối trong khi kiểm tra cô với các nhiệm vụ được xác định trước. Điều này hoạt động trực tiếp – khi Alice đang thực hiện các nhiệm vụ trước bốn người xác minh. Tuy nhiên, blockchain là một mạng phân tán và người dùng (User) có thể sẽ không bao giờ tương tác với các người xác minh (Verifier). Vậy thì điều gì sẽ thực sự xảy ra?

Trong trường hợp đó, mạng lưới sẽ sử dụng bản ghi nhớ và các người xác minh (Verifier) sẽ thấy Alice thực hiện các nhiệm vụ này và sau đó quyết định liệu cô ấy có biết bí mật hay không. Và để đảm bảo tính công bằng hoàn toàn, xúc xắc cũng được sử dụng để ngẫu nhiên hóa các nhiệm vụ.

Người xác minh yêu cầu Alice tung một con xúc xắc và chọn một nhiệm vụ dựa trên số cô ấy tung. Điều này được ghi lại và hiển thị cho những người xác minh, họ sẽ tin rằng Alice đã thực hiện một nhiệm vụ ngẫu nhiên và cô ấy vẫn hoàn thành nó. Điều đáng chú ý là ngay cả những người mới xác minh cũng không cần phải biết bí mật của cô ấy để xác nhận rằng cô ấy biết điều đó.

Các loại Zero Knowledge Proofs?

Có hai loại Bằng chứng ZK:

Interactive ZK Proofs: Khi Người chứng minh (Prover) và Người xác minh (Validator) tương tác với nhau để thiết lập tính hợp lệ của dữ liệu, các nhiệm vụ sẽ được giám sát ​​trực tiếp. Chúng được gọi là ‘Interactive ZK Proofs’ hay ‘ZK Proof có tương tác’. Đối với ví dụ trên, sự tương tác của Alice với Bob, Charles, Dylan và Eunice thuộc về ‘ZK Proof có tương tác’.

Non-interactive ZK Proofs: Đôi khi, Người chứng minh và Người xác minh hoàn toàn không tương tác. Thay vào đó, họ đồng ý với phán quyết của một bên đáng tin cậy, do đó có thuật ngữ ‘ZK Proof không tương tác.’ Đối với ví dụ trên, việc sử dụng bản ghi nhớ để chứng minh Alice biết về bí mật và bí mật đó được bảo vệ bởi cơ chế ‘ZK-Proof không tương tác’. Bên thực hiện bản ghi nhớ là bên nhận được sự tin tưởng và ủy thác.

Công nghệ sử dụng khái niệm ZK Proofs để cung cấp năng lượng cho cơ chế đồng thuận của nó được gọi là Zero-Knowledge Succinct Non-Interactive Argument of Knowledge hay còn gọi là zk-SNARK.

ZCash là một trong những dự án đáng chú ý nhất sử dụng zk-SNARK để đảm bảo quyền riêng tư của người dùng. Khi các giao dịch được xử lý trên ZCash, blockchain chỉ biết số tiền chuyển và điểm đến của người gửi / người nhận. Danh tính thực tế hoàn toàn được bảo mật. Công nghệ này cho phép các blockchain duy trì tính ẩn danh hoàn toàn trong khi vẫn đảm bảo giao dịch an toàn và chống giả mạo.

Công nghệ này bao gồm ba thuật toán khác nhau:

  • Trình tạo khóa (Key Generator): Trình tạo khóa thiết lập một tham số để tạo cặp khóa. Ở đây, một nguồn đáng tin cậy có thể tạo một cặp khóa riêng tư hoặc công khai và sau đó phá hủy nó. Sau đó, sử dụng phần công khai đã tạo ra một cặp khóa khác. Ở đây, một cái sẽ được sử dụng để chứng minh cái khác để xác minh.
  • Người chứng minh (Prover): Người chứng minh phải lấy chìa khóa chứng minh và một số thông tin đầu vào để chứng minh thông tin của mình.
  • Người xác minh (Verifier): Việc xác minh sẽ cần khóa xác minh để đảm bảo tuyên bố là đúng hay sai. Anh ta phải xem xét thông tin đầu vào và bằng chứng để đánh giá xem điều đó đúng hay sai.

Ngoài ba thứ này, zk-SNARKS cũng cần duy trì:

  • Zero knowledge: Người xác minh sẽ không biết bất cứ điều gì khác ngoài tuyên bố là đúng. Các nhiệm vụ cần phải thực sự nhỏ để có thể chứng minh nó trong vòng vài mili giây.
  • Không tương tác (Non-interactive): Người dùng chỉ có thể gửi trạng thái đến người xác minh và không có gì khác. Người xác minh sẽ không thể tương tác thêm với người chứng minh.
  • Lập luận (Argument): Bằng chứng sẽ giữ tính hợp lý và sẽ bị ràng buộc bởi thời gian.
  • Kiến thức: Prover và Verifier không thể thực hiện quy trình mà không có nhân chứng đáng tin cậy (bên thứ ba).

Tổng kết

Bằng cách kết hợp bản chất minh bạch vốn có của mạng blockchain với thiết kế bảo vệ quyền riêng tư của Zero-Knowledge Proofs, các doanh nghiệp và tổ chức được hưởng lợi từ những điều tốt nhất của cả hai thế giới: họ có thể giữ các tập dữ liệu nội bộ của mình ở chế độ riêng tư trong khi vẫn tận dụng chúng trong môi trường thực thi đáng tin cậy của hợp đồng thông minh (smart contract).