Zero Knowledege Proof đang là công nghệ được ứng dụng rộng rãi trong các dự án Crypto hiện tại, do đó đây là thuật ngữ mà nhà đầu tư cần tìm hiểu. Bài viết này sẽ giải đáp toàn bộ thông tin về Zero Knowledge Proof cho các bạn, cũng như cách mà ZKP được ứng dụng trong các dự án Blockchain hiện nay.
Zero Knowledge Proof là gì?
Zero Knowledge Proof (ZKP) hay bằng chứng không kiến thức là công nghệ mật mã, cho phép xác thực thông tin đầu vào mà không cần tiết lộ nội dung của thông tin đó. Để làm được điều này, bên chứng minh sẽ cần đưa ra các bằng chứng liên quan đến nội dung cho người xác minh nhằm xác thực nội dung đó là đúng.
Tại sao lại cần công nghệ Zero Knowledge Proof?
Zero Knowledge Proof giúp gỡ bỏ các rào cản về quyền riêng tư và bảo mật, giải quyết vấn đề an toàn thông tin trên nhiều lĩnh vực khác nhau của con người.
Sau đây là ví dụ sẽ giúp bạn dễ hiểu hơn:
- Bên A có 1 giao dịch buôn bán với bên B và bên B yêu cầu xem chứng minh nhân dân của A để xác thực danh tính. Nhưng A không muốn để lộ thông tin chứng minh nhân dân của mình, do đó đã đưa chứng minh nhân dân vào hệ thống ZKP nhằm tạo bằng chứng được mã hóa. Sau đó bằng chứng sẽ được chuyển sang bên B và B sẽ dùng hệ thống máy tính để xác minh bằng chứng là đúng mà không cần biết nội dung CMND của A.
Đây chính là ứng dụng mà công nghệ ZKP đáp ứng được.
Nội dung dưới đây sẽ giúp bạn hiểu rõ hơn về từng thành phần trong ví dụ trên.
Cơ chế hoạt động Zero Knowledge Proof
Hệ thống vận hành của Zero Knowledge Proof bao gồm:
- Người chứng minh (Prover): Bên chứng minh sẽ có nhiệm vụ cố gắng chứng minh tuyên bố của mình là đúng, mà không để lộ ra thông tin về nhân chứng (Witness).
- Nhân chứng (Witness): Là dữ kiện đầu vào trong hệ thống xác minh (Proving system), qua đó hệ thống sẽ tổng hợp lại các thông tin liên quan đến witness để làm bằng chứng xác thực.
- Hệ thống chứng minh (Proving system): Là hệ thống gồm các thuật toán tạo ra bằng chứng thông qua witness.
- Người xác minh (Verifier): Bên xác minh các bằng chứng mà hệ thống xác minh đã cung cấp. Người xác minh không cần biết nội dung về nhân chứng.
Tương ứng với hệ thống vận hành, dưới đây sẽ là vai trò của từng thành phần trong ví dụ trên:
- Tuyên bố cần chứng minh: Đấy có phải là A không
- Nhân chứng (Witness): Chứng minh nhân dân
- Hệ thống chứng minh ZKP: Có nhiệm vụ xử lý dữ liệu đầu vào (CMND) và mã hóa thành các bằng chứng. A sẽ dùng bằng chứng này đưa bên B, và B sẽ đưa các bằng chứng đã được mã hóa này vào hệ thống ZKP để xác thực thông tin.
- Người chứng minh: Bên A
- Người xác minh: Bên B
Ứng dụng của Zero Knowledge Proof trong Crypto
Thanh toán ẩn danh
Thế giới crypto được tạo nên nhờ vận hành thông qua các mạng lưới và giao dịch trên các mạng lưới đó. Nhưng hiện tại, hầu hết các giao dịch đều được ghi lại trên các chuỗi khối công khai, khiến lộ địa chỉ ví và danh tính của người thực hiện giao dịch.
Nhằm nâng cao tính bảo mật của người dùng, công nghệ ZKP đã được đưa vào áp dụng và cho phép các nodes xác thực giao dịch mà không cần truy cập dữ liệu giao dịch.
Tính toán có thể kiểm chứng (Verifiable Computation)
Là công nghệ cho phép giảm tải việc tính toán của 1 số chức năng khác mà vẫn đảm bảo duy trì các kết quả có thể tính toán chính xác. Đây là công nghệ rất quan trọng giúp cải thiện tốc độ xử lý trên các chuỗi khối mà không làm giảm tính bảo mật.
Khi 1 node thực hiện giao dịch bên ngoài chuỗi khối, mạng lưới đó sẽ gửi ZKP đi để xác minh chính xác danh tính thực hiện ngoài chuỗi. Chứng minh này còn được gọi là Validity Proof.
Giảm thiểu việc gian lận trong bỏ phiếu
Các cơ chế bỏ phiếu của các dự án hiện nay đều được cập nhật onchain và diễn ra công khai. Điều đó dẫn đến tình trạng hối lộ và thông đồng trong bỏ phiếu nhằm trục lợi cho 1 nhóm cá nhân nhất định. Để giải quyết vấn đề này, giải pháp MACI (Minimum Anti-Collusion Infrastructure) đã sử dụng công nghệ ZKP để thực hiện bỏ phiếu onchain 1 cách minh bạch.
Ứng dụng trong bảo mật
Nhờ cơ chế bảo mật thông tin đầu vào, bằng chứng không kiến thức có thể sử dụng cho các hoạt động cần tính an toàn cao. Ví dụ như chia sẻ dữ liệu, lưu trữ dữ liệu, xác minh,…
Các loại bằng chứng không kiến thức
ZK-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)
Được giới thiệu vào 1/2012 bởi nhóm của giáo sư Alessandro Chiesa. ZK SNARK có những đặc điểm như:
- Knowledge: Cũng giống như ZKP, ZK SNARK cho phép bảo mật thông tin đầu vào và chứng minh được tuyên bố của mình là đúng.
- Succinct: Bằng chứng không kiến thức nhỏ hơn nhân chứng, nhờ đó được xác minh nhanh chóng.
- Non-interactive: Non-interactive giúp người chứng minh và người xác minh chỉ tương tác 1 lần, chứ không cần bằng chứng tương tác nhiều vòng khác nhau.
- Argument: Bằng chứng thỏa mãn yêu cầu về tính xác thực
- Of Knowledge: Để bằng chứng không kiến thức hoạt động, người chứng minh phải có quyền truy cập vào thông tin nhân chứng (Witness). Do đó mà Zero Knowledge có tính bảo mật tuyệt đối.
ZK-STARK (Zero-Knowledge Scalable Transparent Argument of Knowledge)
Cũng giống như ZK-SNARK, ZK-STARK sở hữu hầu hết những đặc tính ở trên ngoại trừ:
- Có thể mở rộng: ZK-STARK nhanh hơn ZK-SNARK trong việc tạo và xác minh bằng chứng khi quy mô của nhân chứng lớn hơn.
- Minh bạch: ZK-STARK dựa vào tính ngẫu nhiên có thể xác minh công khai để tạo ra các tham số công khai nhằm chứng minh và xác minh thay vì thiết lập đáng tin cậy. Nhờ vậy mà ZK-STARK sẽ minh bạch hơn.
Tuy nhiên, ZK-STARK tạo ra bằng chứng lớn hơn ZK-SNARK, do đó mà chúng thường có chi phí xác minh cao hơn.
Hạn chế của Zero Knowledge Proof
Chi phí
Để hệ thống Zero Knowledge Proof vận hành sẽ cần 1 khoảng chi phí tương đối. Chi phí này đến từ chi phí phần cứng và chi phí xác minh bằng chứng.
Giả định tin cậy
Trong ZK-SNARK, Chuỗi tham chiếu chung (tham số công khai) được tạo một lần và có sẵn để sử dụng lại cho các bên muốn tham gia vào giao thức không có kiến thức. Các tham số công khai được tạo thông qua một buổi lễ thiết lập đáng tin cậy, trong đó những người tham gia được cho là trung thực.
Nhưng thực sự không có cách nào để người dùng đánh giá được tính trung thực của người tham gia và người dùng phải tin lời các nhà phát triển. ZK-STARK không có các giả định về độ tin cậy vì tính ngẫu nhiên được sử dụng để tạo chuỗi có thể được xác minh công khai. Trong khi chờ đợi, các nhà nghiên cứu đang nghiên cứu các thiết lập không đáng tin cậy cho ZK-SNARK để tăng tính bảo mật của các cơ chế chứng minh.
Các mối đe dọa điện toán lượng tử
K-SNARK sử dụng mật mã đường cong elip để mã hóa. Mặc dù hiện tại bài toán logarit rời rạc trên đường cong elip được cho là khó giải quyết nhưng sự phát triển của máy tính lượng tử có thể phá vỡ mô hình bảo mật này trong tương lai.
ZK-STARK được coi là miễn nhiễm với mối đe dọa của điện toán lượng tử, vì nó chỉ dựa vào các hàm băm chống va chạm để bảo mật. Không giống như các cặp khóa công khai-riêng được sử dụng trong mật mã đường cong elip, thuật toán băm chống va chạm khó bị phá vỡ hơn đối với các thuật toán điện toán lượng tử.
Đọc thêm:
ZKML là gì? Ứng dụng của ZKML trong crypto
SCroll – zkEVM Layer 2 hàng đầu trên thị trường