ZK-SNARK là gì?
Zk-SNARK viết tắt của 'Zero-Knowledge Succinct Non-Interactive Argument of Knowledge'. Đó là chứng minh mật mã cho phép một bên chứng minh rằng họ sở hữu một số thông tin nhất định mà không cần phải tiết lộ thông tin đó. Chứng minh này được thực hiện bằng cách sử dụng một khóa bí mật được tạo ra trước khi giao dịch diễn ra. Zk-SNARK được sử dụng như một phần của giao thức cho tiền điện tử Zcash.
Những điểm chính
- Zk-SNARK là giao thức chứng minh không có kiến thức được sử dụng trong mã hóa và viết tắt của 'Zero-Knowledge Succinct Non-Interactive Argument of Knowledge'.
- Chứng minh này được phát triển và giới thiệu lần đầu vào cuối những năm 1980 và hiện đang được sử dụng bởi tiền điện tử Zcash để giải quyết vấn đề về độ vô danh của các blockchain kiểu Bitcoin.
- Chứng minh Zk-SNARK trước đây phụ thuộc vào hệ thống 'hệ thống tin cậy' ban đầu đã được thay thế vào năm 2022 bằng một hệ thống không đòi hỏi sự tin cậy.
Hiểu về ZK-SNARK
Với nhiều thành viên sáng lập của cộng đồng tiền điện tử - chủ yếu là cộng đồng Bitcoin - sự riêng tư được coi là mục tiêu và tính năng mặc định của các loại tiền điện tử. Tuy nhiên, sự riêng tư luôn là mối quan tâm thứ hai, bởi vì tiền điện tử cần phải tạo ra một hệ thống không đòi hỏi sự tin cậy để đảm bảo tính toàn vẹn của tiền điện tử điện tử và các giao dịch số.
Vào đầu những năm 2010, người dùng Bitcoin đôi khi cho rằng các giao dịch của họ là ẩn danh vì danh tính ngoại tuyến của họ không được liên kết với khóa công khai của người dùng. Nhưng vào cuối thập kỷ đó, những nỗ lực phối hợp của các nhà khoa học dữ liệu, tin tặc và các cơ quan chức năng đã chứng minh rằng việc nhận diện lại những người đã cung cấp dữ liệu giả danh cho nhiều nguồn là không chỉ có khả năng mà còn tương đối dễ dàng.
Do sự thiếu riêng tư được cho là của một số loại tiền điện tử ban đầu như Bitcoin, các nhà phát triển đã bắt đầu làm việc trên các đồng tiền tập trung vào riêng tư. Đáng chú ý nhất trong số này là Zcash, được hỗ trợ bởi một khái niệm riêng tư được biết đến với tên gọi zk-SNARKs.
Chứng minh không có kiến thức
Một zk-SNARK ('Zero-Knowledge Succinct Non-Interactive Argument of Knowledge') sử dụng khái niệm gọi là 'bằng chứng không chứng minh tương tác rõ ràng về kiến thức'. Đơn giản, đây là trường hợp mà mỗi trong hai bên trong giao dịch có thể xác minh với nhau rằng họ có một tập hợp cụ thể thông tin, trong khi không tiết lộ thông tin đó.
Ý tưởng đằng sau những bằng chứng này được phát triển lần đầu trong những năm 1980.
Đối với hầu hết các loại chứng minh khác, ít nhất một trong hai bên phải có quyền truy cập vào tất cả thông tin. Một chứng minh truyền thống có thể được so sánh với mật khẩu được sử dụng để truy cập vào mạng trực tuyến. Người dùng gửi mật khẩu và chính mạng lưới kiểm tra nội dung của mật khẩu để xác minh rằng nó chính xác. Để làm điều này, mạng lưới cũng phải có quyền truy cập vào nội dung của mật khẩu.
Phiên bản bằng chứng không chứng minh của tình huống này sẽ bao gồm người dùng chứng minh cho mạng lưới (thông qua chứng minh toán học) rằng họ có mật khẩu chính xác mà không cần tiết lộ mật khẩu chính xác đó. Các lợi ích về bảo mật và sự riêng tư trong tình huống này rõ ràng: Nếu mạng lưới không lưu trữ mật khẩu ở một nơi nào đó để mục đích xác minh, mật khẩu không thể bị đánh cắp.
Cơ sở toán học của zk-SNARKS là phức tạp. Tuy nhiên, các bằng chứng loại này cho phép một bên chứng minh không chỉ rằng một bit thông tin cụ thể tồn tại mà còn cho biết bên đó nhận thức được thông tin đó. Trong trường hợp của Zcash, zk-SNARKs có thể được xác minh gần như ngay lập tức và giao thức không yêu cầu bất kỳ tương tác nào giữa người chứng minh và người xác minh.
Ví dụ về ZK-SNARK
Vì zk-SNARKs khó hiểu, nên tốt nhất là sử dụng một ví dụ đơn giản để giải thích chúng. Hãy tưởng tượng bạn có một hòm an toàn có khóa kết hợp tại một ngân hàng với một tờ ghi chú bên trong. Tờ ghi chú có chữ ký và tên được in trên đó. Bạn tin rằng chỉ có mình bạn biết nội dung của nó. Bạn đang thảo luận về nó với một người bạn nhưng chưa tiết lộ bất cứ điều gì về tờ ghi chú ngoài việc nó tồn tại trong hòm an toàn đó.
Người bạn nói với bạn rằng họ biết nội dung của tờ ghi chú và sau đó nêu tên trên tờ ghi chú đó. Họ đã cung cấp bằng chứng cho việc họ biết mật mã và nội dung của tờ ghi chú mà không tiết lộ nó.
Trên blockchain, việc này phức tạp hơn nhiều, nhưng ý tưởng chung vẫn như vậy. Ai đó cung cấp bằng chứng cho việc họ biết một điều gì đó mà không tiết lộ nó.
Phê bình về ZK-SNARKs
Tất nhiên, có những lo ngại liên quan đến zk-SNARKs. Ví dụ, nếu ai đó có thể truy cập vào khóa bí mật được sử dụng để tạo ra các tham số của giao thức chứng minh, họ có thể tạo ra các bằng chứng giả mạo nhưng vẫn có vẻ hợp lệ với người xác minh. Điều này sẽ cho phép người đó tạo ra các token Zcash mới thông qua một quy trình làm giả. Để ngăn chặn điều này xảy ra, Zcash được thiết kế để phức tạp hóa các giao thức chứng minh và phân tán chúng qua nhiều bên.
Mặc dù quá trình xây dựng chứng minh Zcash đã hoàn thành một cách để giảm thiểu khả năng làm giả token thông qua các bằng chứng giả, vẫn có ít nhất một vấn đề liên quan đến tiền điện tử này. Zcash được tạo ra với một 'thuế' 20% được áp dụng trên tất cả các khối được tạo ra trong vài năm đầu tiên của token. Thuế này được gọi là 'thuế của người sáng lập' và được sử dụng để bồi thường các nhà phát triển của tiền điện tử.
Các nhà phê bình đã đề xuất rằng các nhà sáng lập có thể tiềm năng sử dụng mặt này của hệ thống để tạo ra một số lượng vô hạn token Zcash mà không có ai khác biết về sự tồn tại của những token đó. Vì lý do đó, không hoàn toàn có thể biết được số lượng chính xác của token Zcash đang tồn tại vào thời điểm này.
Kể từ năm 2019, một số nhà phát triển đã làm việc để cải thiện zk-SNARKs bằng cách loại bỏ thiết lập tin cậy. Vào năm 2022, các nhà phát triển Zcash đã triển khai hệ thống chứng minh Halo 2, loại bỏ một trong những vấn đề bảo mật quan trọng nhất của blockchain. Halo 2 không yêu cầu thiết lập tin cậy giữa các người dùng.
Một Ví dụ về Zk-SNARK là gì?
Trong các blockchain, zk-SNARK là một bằng chứng cho thấy một thực thể có một cái gì đó (kiến thức, dữ liệu, v.v.) nhưng không tiết lộ cho một thực thể khác. Ví dụ, nếu một blockchain yêu cầu một khóa công khai và bí mật cho một giao dịch, một giải pháp băm có thể được tạo ra bởi một bên, và bên kia có thể tạo ra một giải pháp nằm trong một phạm vi cụ thể, chứng minh rằng họ có thông tin cần thiết.
Mạch ZK-SNARK là gì?
Một mạch điện tử đôi khi được sử dụng để mô tả cách zk-SNARK hoạt động hoặc khi thiết kế quy trình không chứng minh vì có các thuật ngữ điện tử như 'cổng' và 'chip' được sử dụng khi tạo ra quy trình làm việc.
Sự khác biệt giữa ZK-SNARK và ZK-STARK là gì?
Zk-STARK viết tắt của Zero-Knowledge Scalable Transparent Argument of Knowledge và hiệu quả hơn nhiều khi có nhiều chứng nhân tham gia hơn zk-SNARK.
Điểm Quan Trọng
Zk-SNARKs là bằng chứng cho thấy rằng một người dùng có thông tin mà không tiết lộ nó. Đây là một quy trình toán học nhanh chóng nhưng phức tạp được sử dụng trong các blockchain để bảo vệ sự riêng tư của người dùng.