Zero-knowledge Proof là gì? Ưu điểm và hạn chế của công nghệ ZKP
Zero-knowledge proof (ZKP) là gì?
Zero-knowledge Proof (ZKP) là công nghệ mật mã học (cryptography), dùng để xác thực thông tin mà không cần tiết lộ nội dung của chính thông tin đó.
Cốt lõi cơ chế hoạt động của nó là phương pháp mà một bên (người chứng minh) có thể chứng minh với bên khác (người xác minh) rằng họ biết một giá trị x, mà không cần tiết lộ bất kỳ thông tin nào về việc họ biết giá trị x.
Tại sao cần có Zero-knowledge Proof (ZKP)?
Mục đích chính của công nghệ Zero-knowledge Proof là giữ nguyên tính bảo mật của thông tin đầu vào (input) nhưng vẫn xác thực được tính đúng đắn của thông tin đó.
Ví dụ: Bạn Trang bị mất thẻ xe, làm sao để chứng minh với bác bảo vệ rằng đây là xe của Trang?
Giải pháp 1: Sử dụng bằng lái xe
Thông tin cá nhân của Trang lúc này sẽ được nhập vào hệ thống lưu trữ thông tin của bác bảo vệ. Giả sử kho dữ liệu này bị hack, thông tin của Trang sẽ bị lộ, điều này có thể làm ảnh hưởng đến cá nhân Trang.
Vấn đề đặt ra: Làm thế nào để không cung cấp thông tin cá nhân nhưng vẫn được lấy xe về?
Giải pháp 2: Sử dụng bằng chứng được tạo từ công nghệ Zero-knowledge Proof
Trang sử dụng bằng lái xe của mình để hệ thống ZKP tạo bằng chứng nhằm xác thực đây là xe của Trang.
Bác bảo vệ sẽ kiểm tra và xác thực bằng chứng Trang đưa, nếu như tất cả đều đúng thì Trang sẽ được lấy xe về.
Trong trường hợp này, thông tin cá nhân của Trang không bị tiết lộ mà bác bảo vệ vẫn xác thực được việc đây là xe của Trang.
Để thấy cách các thành phần này xuất hiện trong hệ thống ZKP như thế nào, mình sẽ giải thích ở bên dưới.
Zero-knowledge Proof hoạt động như thế nào?
Trong một hệ thống ZKP bao gồm 2 thành phần chính là người chứng minh và người xác minh. Bên cạnh đó còn có một số thực thể liên quan. Vai trò như sau:
- Người chứng minh (Prover): bên cố gắng chứng minh tuyên bố (statement) là đúng, mà không tiết lộ bất cứ thông tin nào về nhân chứng của mình.
- Nhân chứng (Witness): những thông tin đóng vai trò là đầu vào (input) cho hệ thống chứng minh (proving system) để tạo bằng chứng, chứng minh tính đúng đắn của một tuyên bố.
- Hệ thống chứng minh (Proving system) (cũng có thể gọi là hệ thống ZKP): là hệ thống bao gồm các thuật toán nhằm tạo ra bằng chứng thông qua nhân chứng. Bằng chứng được tạo ra từ hệ thống này được hiển thị dưới dạng thuật toán và được gọi là zero-knowledge proof (bằng chứng không kiến thức).
- Người xác minh (Verifier): bên xác minh sự thật của tuyên bố thông qua bằng chứng mà người chứng minh đưa. Người xác minh không cần biết thông tin đầu vào của bằng chứng.
Tiếp tục sử dụng ví dụ trên, chúng ta có các thành phần được làm rõ như sau:
- Tuyên bố cần chứng minh: “Xe có phải của Trang không?”
- Bằng lái xe (nhân chứng): Là thông tin đầu vào cho hệ thống ZKP tạo bằng chứng.
- Hệ thống chứng minh ZKP: Sử dụng dữ liệu đầu vào và các thuật toán để tạo ra bằng chứng. Trang cung cấp thông tin nhân chứng cho hệ thống, hệ thống trả lại cho Trang bằng chứng (một dãy số hiển thị dưới dạng thuật toán để máy tính có thể hiểu), Trang gửi lại bằng chứng cho bác bảo vệ. Sau đó, bác bảo vệ đưa dãy số này cho hệ thống ZKP để xác minh kết quả. Các thông tin đầu vào sẽ được hệ thống mã hóa thành các con số, sau đó thiết lập các thuật toán để đưa ra dữ liệu cuối.
- Trang (người chứng minh): Cung cấp các thông tin cần thiết (nhân chứng) cho hệ thống ZKP để tạo bằng chứng cho tuyên bố cần chứng minh.
- Bác bảo vệ (người xác minh): Nhận bằng chứng từ Trang và tiến hành xác minh. Hệ thống ZKP sẽ trả lại kết quả là “Yes (1)” hoặc “No (0)” cho tuyên bố cần chứng minh.
Nếu kết quả trả lại là (1), bác bảo vệ xác minh được xe là của Trang mà không cần xem xét các thông tin khác.
Nếu kết quả trả lại là (0), bác bảo vệ xác minh xe không phải là của Trang.
Interactive và Non-interactive Zero-knowledge Proof là gì?
Interactive Zero-knowledge Proof (ZKP có tương tác)
Giả sử trong quá trình chứng minh “Xe có phải của Trang không”:
Bạn Trang cung cấp Nhân chứng 1, bác bảo vệ kiểm tra, thấy thắc mắc và quay lại hỏi bạn Trang.
Bạn Trang tiếp tục cung cấp Nhân chứng 2, bác bảo vệ tiếp tục kiểm tra.
Bạn Trang cung cấp Nhân chứng N, bác bảo vệ kiểm tra và xác minh rằng xe là của bạn Trang.
Lúc này, bạn Trang đã chứng minh được tuyên bố của mình là đúng.
Quá trình hỏi đáp này được gọi là Interactive Zero-knowledge Proof (ZKP có tương tác). Rõ ràng, nó tồn tại nhiều hạn chế:
- Chi phí lưu trữ thông tin lớn: vì cần nhiều dữ liệu xác minh thông tin qua nhiều lần hỏi đáp nên chi phí lưu trữ lớn
- Thời gian lâu, độ trễ cao: quá trình hỏi đáp này yêu cầu người hỏi và người đáp phải luôn có mặt và liên tục tương tác, khiến cho độ trễ của giao dịch cao
- Mất đi tính phi tập trung của mạng lưới: việc tương tác qua lại khiến cho giao dịch bị phụ thuộc, không còn tính phi tập trung
Non-interactive Zero-knowledge Proof (ZKP không tương tác)
Non-interactive ZKP ra đời nhằm giải quyết các hạn chế của interactive ZKP. Sự khác biệt của nó là người chứng minh và người xác minh chỉ cần tương tác một lần duy nhất.
Với phương pháp này, hệ thống chứng minh đã được nâng cấp.
Non-interactive ZKP làm giảm giao tiếp giữa người chứng minh và người xác minh, giúp cho quy trình chứng minh hiệu quả hơn. Bên cạnh đó, sau khi bằng chứng được tạo, bất kỳ ai cũng có thể xác minh bằng chứng.
Đọc thêm: Cập nhật các dự án Zero-knowledge Proof nổi bật đầu 2023
Cấu trúc Zero-knowledge Proof phổ biến
ZKP có 2 cấu trúc phổ biến:
- ZK-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge): SNARK được giới thiệu chính thức vào tháng 1/2012 bởi Giáo sư Alessandro Chiesa của UC Berkeley và nhóm của ông (co-inventor Zerocash, co-founder Zcash, co-founder StarkWare Industries).
- ZK-STARK (Zero-Knowledge Scalable Transparent Argument of Knowledge): STARK ra đời muộn hơn, nó được giới thiệu chính thức vào năm 2018 bởi Eli Ben-Sasson và nhóm của anh ấy (Starware hiện tại).
Điểm chung là cả SNARK và STARK đều là các hệ thống ZKP không tương tác (Non-interactive), nhưng chúng có các giả định bảo mật và đặc điểm hiệu suất khác nhau.
Ưu điểm và hạn chế của Zero-knowledge Proof
Giống như tất cả các dạng công nghệ khác, Zero-knowledge Proof (ZKP) cũng có một loạt các ưu điểm và hạn chế riêng:
Ưu điểm của Zero knowledge proof (ZKP)
- Khả năng mở rộng cho Blockchain: Các giải pháp Zk Rollup sử dụng công nghệ ZKP để tăng thông lượng và khả năng mở rộng cho các blockchain Layer 1, một số dự án tiêu biểu là StarkNET, Loopring và Zksync.
- Quyền riêng tư và bảo mật: Công nghệ ZKP giúp xác minh tính đầy đủ và đúng đắn của dữ liệu mà không cần tiết lộ những thông tin quan trọng. Vì vậy ngoài ứng dụng trong các Layer 2 giúp tăng khả năng mở rộng, công nghệ ZKP còn được ứng dụng trong các lớp ứng dụng về bảo mật và quyền riêng tư, ví dụ: Monero, Zcash...
Hạn chế của Zero knowledge Proof (ZKP)
- Yêu cầu một lượng lớn sức mạnh tính toán: Các giao thức ZKP thường dựa trên các phương trình toán học phức tạp. Vì vậy, chúng yêu cầu một sức mạnh tính toán lớn để vận hành và tính toán. Điều này đồng nghĩa sẽ khó để các máy tính phổ thông có thể tham gia vào quá trình xác thực giao dịch.
- Không thân thiện với các nhà phát triển: Một trong những ứng dụng chính của ZKP là sử dụng cho các công nghệ Layer 2 để cải thiện khả năng mở rộng cho blockchain. Nhưng ở thời điểm hiện tại, các ứng dụng của Zk Rollup hiện chỉ giới hạn trong các khoản thanh toán đơn giản và giao dịch. Ngoài ra, Zk Rollup hiện tại không hỗ trợ khả năng tổng hợp, các ứng dụng Zk Rollup khác nhau không thể tương tác với nhau trong cùng một Layer 2.
Hai ứng dụng phổ biến của ZKP
Sử dụng công nghệ ZKP trong lĩnh vực Blockchain
Công nghệ ZKP hứa hẹn là một trong những giải pháp mở rộng cho trung và dài hạn cho Blockchain.
Với các giải pháp Zk Rollup, chúng cho phép Ethereum và blockchain layer 1 khác mở rộng mạnh mẽ khi cho phép quá trình xác minh - xác nhận tính hợp lệ của giao dịch một cách nhanh chóng.
Bên cạnh đó, các Blockchain ứng dụng công nghệ ZKP như Mina Protocol hứa hẹn tạo ra thế hệ Blockchain hàng đầu trong lĩnh vực Crypto.
Ứng dụng bảo mật thông tin
Các ứng dụng truyền thống yêu cầu người dùng xác minh danh tính của họ với một máy chủ tập trung. Với công nghệ ZKP, nó có thể được dùng để mã hóa dữ liệu end-to-end trong các ứng dụng, cho phép các thông tin được gửi một cách riêng tư.
Ngoài ra, ZKP có thể giúp một một cá nhân có thể chứng minh danh tính của họ mà không cần tiết lộ thêm thông tin cá nhân.
Tổng kết
Mình hy vọng các nội dung này sẽ giúp các bạn có thể nắm bắt được những thông tin tổng quan về Zero-knowledge proof (ZKP) là gì? Ưu điểm và hạn chế của công nghệ ZKP, cũng như điểm danh một số dự án Blockchain nổi bật có sử dụng công nghệ ZKP.