Crypto
Bằng chứng không biết (ZKP)
Definition
Bằng chứng không biết (ZKP) là một phương pháp mật mã chứng minh một tuyên bố là đúng mà không tiết lộ dữ liệu bí mật cơ bản.
Bằng chứng không kiến thức (ZKP) là gì?
Một bằng chứng không kiến thức (ZKP) là cách để một bên (người chứng minh) thuyết phục bên khác (người xác minh) rằng một tuyên bố là đúng - mà không tiết lộ thông tin riêng tư làm cho nó đúng. Nói cách khác, người xác minh chỉ học được một điều: tuyên bố đó là đúng.
Điều này đặc biệt hữu ích trong lĩnh vực tiền điện tử vì các blockchain được thiết kế để minh bạch, nhưng nhiều giao dịch và ứng dụng trong thế giới thực yêu cầu tính riêng tư, tiết lộ có chọn lọc hoặc bảo mật.Bằng chứng không kiến thức (ZKP) hoạt động như thế nào?Ở mức độ cao, một ZKP biến “hãy tin tôi” thành “hãy xác minh tôi.” Người chứng minh có một bí mật (như mật khẩu, số dư tài khoản hoặc chữ ký hợp lệ) và muốn chứng minh rằng họ đáp ứng một điều kiện nào đó (như “tôi được phép rút tiền” hoặc “giao dịch này tuân theo quy tắc”) mà không tiết lộ bí mật đó.Hầu hết các hệ thống ZKP được xây dựng dựa trên ba đảm bảo cốt lõi:1.
Tính đầy đủ
: Nếu tuyên bố là đúng và người chứng minh tuân theo giao thức, người xác minh sẽ chấp nhận bằng chứng. 2.
Tính chính xác
: Nếu tuyên bố là sai, một người chứng minh gian lận không nên có khả năng lừa dối người xác minh một cách nhất quán. 3. Không kiến thức: Bằng chứng không rò rỉ bí mật - chỉ có sự thật của tuyên bố.Một cách đơn giản để nghĩ về nó trong các thuật ngữ tiền điện tử như sau:1. Định nghĩa tuyên bố: Ví dụ, “Tôi biết một khóa bí mật điều khiển địa chỉ này,” hoặc “giao dịch này không tạo ra đồng tiền từ không khí.” 2.
Mã hóa các quy tắc
: Tuyên bố được diễn đạt dưới dạng một tập hợp các ràng buộc toán học (thường được mô tả như một “mạch” trong các hệ thống ZK). 3. Tạo bằng chứng: Người chứng minh sử dụng các đầu vào riêng tư của họ (bí mật) và các đầu vào công khai (những gì mọi người có thể thấy) để tính toán một bằng chứng ngắn gọn. 4. Xác minh bằng chứng: Người xác minh kiểm tra bằng chứng bằng cách sử dụng thông tin công khai.
Nếu nó được xác minh, người xác minh tin rằng các quy tắc đã được tuân theo - mà không học được các đầu vào riêng tư.Một phép ẩn dụ hữu ích: hãy tưởng tượng chứng minh rằng bạn đủ tuổi để vào một địa điểm mà không cần cho biết ngày sinh của bạn. Thay vì đưa ra ID của bạn (cái mà tiết lộ thêm chi tiết), bạn trình bày một bằng chứng mật mã “có/không” rằng tuổi của bạn ít nhất là ngưỡng yêu cầu.
Người bảo vệ chỉ biết rằng bạn đủ điều kiện, không phải tuổi chính xác hay chi tiết danh tính của bạn.Trong các hệ thống blockchain, ZKP thường xuất hiện trong hai mô hình rộng:Bằng chứng riêng tư: Ẩn chi tiết giao dịch (như số tiền hoặc người tham gia) trong khi vẫn chứng minh rằng giao dịch là hợp lệ.Bằng chứng tính hợp lệ: Chứng minh rằng một lô các phép toán hoặc giao dịch đã được thực hiện đúng cách, cho phép người khác tin tưởng vào kết quả mà không cần làm lại tất cả công việc.
Bằng chứng không kiến thức (ZKP) trong thực tiễn
ZKP đã được sử dụng trên nhiều phần của hệ sinh thái tiền điện tử.
- ZK rollups (mở rộng): Nhiều mạng Layer 2 sử dụng ZKP để chứng minh rằng các lô giao dịch lớn đã được xử lý đúng cách ngoài chuỗi, sau đó đăng một bằng chứng ngắn gọn lên một blockchain Layer 1. Điều này giảm chi phí và tăng thông lượng trong khi thừa hưởng bảo mật của chuỗi cơ sở.
- Giao dịch riêng tư và dữ liệu được bảo vệ: Các giao thức tập trung vào quyền riêng tư sử dụng ZKP để giữ các chi tiết giao dịch nhạy cảm ẩn trong khi vẫn thực thi các quy tắc cốt lõi (không có chi tiêu gấp đôi, số dư cộng dồn, chi tiêu được ủy quyền,
v.v.
).
- Danh tính và tuân thủ với tiết lộ có chọn lọc: ZKP có thể hỗ trợ các quy trình “chứng minh một thuộc tính, không phải dữ liệu” - chẳng hạn như chứng minh rằng bạn không có trong danh sách trừng phạt, hoặc rằng bạn trên một độ tuổi nhất định, mà không tiết lộ danh tính đầy đủ của bạn. Ý tưởng này ngày càng trở nên quan trọng đối với danh tính trên chuỗi, kiểm soát truy cập và các trường hợp sử dụng có quy định.
- [Oracles] và dữ liệu ngoài chuỗi [chứng thực]: Một số thiết kế oracle sử dụng các kỹ thuật mật mã liên quan đến không kiến thức để chứng minh rằng dữ liệu đến từ một nguồn cụ thể hoặc đáp ứng các điều kiện nhất định, trong khi giữ dữ liệu cơ sở ẩn. Điều này có thể quan trọng khi hợp đồng thông minh cần phản ứng với thông tin độc quyền hoặc nhạy cảm.
- Tại sao Bằng chứng không kiến thức (ZKP) lại quan trọngBằng chứng không kiến thức quan trọng vì chúng giúp hòa giải một căng thẳng cốt lõi trong crypto:
- tính khả verifiable công khai so với quyền riêng tư.Các blockchain mạnh mẽ chính vì bất kỳ ai cũng có thể xác minh rằng các quy tắc đã được tuân thủ—nhưng sự minh bạch đó có thể phơi bày hành vi người dùng, mối quan hệ kinh doanh và dữ liệu tài chính nhạy cảm.ZKPs cung cấp một con đường giữa thực tiễn:Người dùng
được hưởng lợi từ quyền riêng tư tốt hơn và xác thực an toàn hơn (ít dữ liệu cá nhân được chia sẻ có nghĩa là ít dữ liệu bị rò rỉ).
Các nhà phát triểncó thể xây dựng các ứng dụng yêu cầu tính bảo mật—như bỏ phiếu riêng tư, vị trí DeFi riêng tư, hoặc quy trình làm việc doanh nghiệp—mà không phải từ bỏ tính khả verifiable.Các mạng
có thể mở rộng hiệu quả hơn khi ZKPs được sử dụng làm bằng chứng tính hợp lệ, vì một bằng chứng nhỏ có thể thay thế cho một lượng tính toán lớn.
- Nếu không có ZKPs, nhiều hệ thống phải lựa chọn giữa (a) tiết lộ quá nhiều thông tin để chứng minh tính chính xác hoặc (b) dựa vào các trung gian đáng tin cậy và cơ sở dữ liệu riêng tư. ZKPs giảm thiểu sự đánh đổi đó bằng cách làm cho “quyền riêng tư không cần tin tưởng” và “tính toán có thể xác minh” trở nên khả thi hơn trên cơ sở hạ tầng công cộng.
Frequently Asked Questions
Bằng chứng không kiến thức (ZKP) là gì trong những thuật ngữ đơn giản?
Bằng chứng không kiến thức cho phép bạn chứng minh rằng một điều gì đó là đúng mà không cần tiết lộ các chi tiết bí mật làm cho điều đó đúng. Người xác minh chỉ biết rằng tuyên bố của bạn là hợp lệ, chứ không phải dữ liệu cơ sở.
Bằng chứng không kiến thức hoạt động như thế nào trên blockchain?
Một người dùng tạo ra một bằng chứng mật mã rằng một giao dịch hoặc phép toán tuân theo các quy tắc, sau đó mạng xác minh bằng chứng đó bằng cách sử dụng thông tin công khai. Chuỗi có thể chấp nhận kết quả mà không cần thấy các đầu vào riêng tư như số tiền, danh tính hoặc các bước trung gian.
Ba thuộc tính của bằng chứng không kiến thức là gì?
Chúng là tính đầy đủ (các tuyên bố đúng có thể được chứng minh), tính hợp lệ (các tuyên bố sai không thể được chứng minh bởi những kẻ gian lận), và không kiến thức (bằng chứng không tiết lộ thông tin bí mật nào ngoài tính hợp lệ). Những thuộc tính này xác định điều gì làm cho một bằng chứng vừa đáng tin cậy vừa riêng tư.
ZKPs chỉ dành cho quyền riêng tư phải không?
Không—ZKPs cũng được sử dụng rộng rãi cho khả năng mở rộng và hiệu quả. Các bằng chứng tính hợp lệ có thể xác nhận rằng nhiều giao dịch đã được xử lý đúng mà không cần buộc mỗi người xác minh phải thực hiện lại tất cả các phép toán.
Sự khác biệt giữa không kiến thức và không tin cậy là gì?
Không kiến thức là một kỹ thuật mật mã để chứng minh các tuyên bố mà không tiết lộ bí mật. Không tin cậy là một mô hình bảo mật giả định rằng không có người dùng hoặc thiết bị nào nên được tin tưởng theo mặc định và yêu cầu xác minh liên tục; ZKPs có thể là một công cụ được sử dụng trong một hệ thống không tin cậy.