Bài viết này bao gồm những nội dung sau: 1. Bằng chứng không kiến thức là gì? 2. Tại sao chúng ta cần bằng chứng không kiến thức? 3. Các kịch bản ứng dụng bằng chứng không kiến thức. 4. Cách thức hoạt động của bằng chứng không kiến thức. 5. Phân loại và các trường hợp ứng dụng của zero-knowledge proofs. 6. Lỗ hổng của bằng chứng không kiến thức.
PHẦN.01
Bằng chứng tri thức bằng không là gì
**Bằng chứng không kiến thức (Zero-Knowledge Proof) được đề xuất bởi S.Goldwasser, S.Micali và C.Rackoff vào đầu những năm 1980. Nó đề cập đến khả năng của người chứng minh thuyết phục người xác minh rằng một khẳng định nào đó là đúng mà không cung cấp bất kỳ thông tin hữu ích nào cho người xác minh. **
Lấy một ví dụ đơn giản, Puff nói rằng anh ấy là một đầu bếp và có thể nấu các món ăn Trung Quốc, Hàn Quốc và Ý. Mẹ tôi tỏ ra không tin vì tôi chưa nấu một bữa cơm nào ở nhà. Vậy làm sao tôi có thể chứng minh rằng tôi có thể nấu ăn vào thời điểm này?
Tôi có thể để mẹ xem tôi hoàn thành bữa ăn trong bếp và chứng minh rằng tôi thực sự biết nấu ăn. Nhưng em không muốn mẹ nhìn thấy em đang nấu nướng bừa bộn trong bếp, hay lại mè nheo nữa, vậy em phải làm sao? Tôi vào bếp một mình, bố mẹ tôi đang đợi ở ngoài, sau khi tôi nấu nướng và thu dọn xong xuôi, tôi mang bát đĩa ra. Điều này vẫn chứng tỏ rằng tôi có thể nấu ăn. Về phần tôi dùng nguyên liệu gì, gia vị gì, trong quá trình làm bếp lộn xộn như thế nào, tôi không cần, chỉ cần mẹ biết tôi nấu được cơm, chứng tỏ tôi không phải là nằm.
Nói một cách đơn giản: Bằng chứng không kiến thức đang cố gắng thiết lập niềm tin giữa hai bên với lượng thông tin trao đổi tối thiểu. Không tiết lộ thêm thông tin, một bên (người chứng minh, người chứng minh) có thể chứng minh cho bên kia (người xác minh, người xác minh) một điều là đúng.
PHẦN.02
Tại sao bạn cần bằng chứng không kiến thức
** Bảo vệ dữ liệu riêng tư **
Các nhà cung cấp lừa đảo muốn thu thập càng nhiều dữ liệu người dùng càng tốt và một số biên lai không liên quan gì đến hoạt động kinh doanh của họ cũng yêu cầu người dùng cấp quyền (thực sự ghét họ). Họ đưa thông tin nhận dạng cá nhân (PII) của người dùng được thu thập vào cơ sở dữ liệu tập trung. Những cơ sở dữ liệu này rất dễ bị tấn công. Một khi bị tấn công, thông tin nhận dạng cá nhân sẽ bị rò rỉ, dẫn đến nhiều vấn đề lừa đảo khác nhau.
Xác thực
Khi sử dụng trang web, người dùng có thể chứng minh với trang web rằng anh ta có khóa riêng hoặc biết câu trả lời mà chỉ mình anh ta biết. Trang web không cần biết khóa nhưng có thể xác nhận danh tính của người dùng thông qua bằng chứng không kiến thức. Thông qua lưu trữ phi tập trung, máy chủ có thể Chứng minh với người dùng rằng dữ liệu được bảo quản đúng cách và không bị rò rỉ.
Tính toán nén và mở rộng chuỗi khối
Trong kiến trúc khối truyền thống, cùng một phép tính được lặp lại nhiều lần, chẳng hạn như xác minh chữ ký, xác minh tính hợp lệ của giao dịch, thực hiện hợp đồng thông minh, v.v., bởi vì với bằng chứng tính toán, cùng một phép tính không cần lặp lại nhiều lần, quá trình tính toán có thể được chứng minh nén bằng công nghệ không kiến thức.
**Bằng chứng không kiến thức thực sự giải quyết được sự tin cậy của dữ liệu, thực hiện việc bảo vệ dữ liệu riêng tư và làm cho chuỗi khối thực sự nhận ra khái niệm máy móc đáng tin cậy. **
PHẦN.03
Kịch bản ứng dụng bằng chứng không kiến thức
**Các tình huống ứng dụng chính của bằng chứng không kiến thức là: thanh toán ẩn danh, bằng chứng nhận dạng, tính toán có thể kiểm chứng và bỏ phiếu ẩn danh. **
Thanh toán ẩn danh
Các giao dịch tiền điện tử được hiển thị công khai trên chuỗi công khai. Người dùng giao dịch ẩn danh, nhưng cũng được liên kết với danh tính trong thế giới thực (ví dụ: bằng cách đưa địa chỉ ETH vào hồ sơ Twitter hoặc GitHub của họ) hoặc danh tính trong thế giới thực của họ có thể được lấy thông qua phân tích dữ liệu trên chuỗi và ngoài chuỗi.
Có những "đồng tiền riêng tư" cụ thể được thiết kế cho các giao dịch hoàn toàn ẩn danh. Các ví dụ bao gồm Zcash và Monero, che giấu các chi tiết giao dịch bao gồm địa chỉ người gửi/người nhận, loại tài sản, số lượng và dòng thời gian giao dịch. Bằng cách kết hợp các kỹ thuật không có kiến thức vào các giao thức, mạng chuỗi khối tập trung vào quyền riêng tư cho phép các nút xác minh giao dịch mà không cần truy cập vào dữ liệu giao dịch.
Bằng chứng không kiến thức cũng đã được áp dụng cho các giao dịch ẩn danh trên các chuỗi khối công khai. Chẳng hạn như Tornado Cash, một dịch vụ phi tập trung cho phép người dùng thực hiện các giao dịch riêng tư trên Ethereum. Tornado Cash sử dụng bằng chứng không có kiến thức để làm xáo trộn chi tiết giao dịch và đảm bảo quyền riêng tư tài chính.
ID cá nhân
Với tiền đề không tiết lộ thông tin nhận dạng cụ thể, một chứng chỉ nhận dạng cụ thể sẽ được cấp. Ví dụ: sử dụng các dịch vụ trực tuyến yêu cầu chứng minh danh tính của người dùng và quyền truy cập các nền tảng đó. Điều này thường yêu cầu cung cấp thông tin cá nhân như tên, địa chỉ email, ngày sinh, v.v.
Bằng chứng không kiến thức có thể đơn giản hóa việc xác thực nền tảng và người dùng. Bằng chứng ZK được tạo bằng cách sử dụng đầu vào công khai (ví dụ: dữ liệu chứng minh rằng người dùng là thành viên của nền tảng) và đầu vào riêng tư (ví dụ: thông tin chi tiết của người dùng), mà người dùng có thể chỉ cần xuất trình để xác minh danh tính của họ khi họ cần truy cập dịch vụ. Ví dụ, để chứng minh người dùng có phải là người lớn hay không thì không cần đưa ra thông tin CMND, năm sinh cụ thể mà chỉ cần kết luận người dùng đủ 18 tuổi hay chưa.
Tính toán có thể kiểm chứng
Khi thiết bị của người dùng không thể hỗ trợ tính toán cần thiết hoặc chi phí tính toán cục bộ quá cao, các dịch vụ của bên thứ ba sẽ được xem xét. Các dịch vụ của bên thứ ba này có thể trả lại kết quả đầu ra cho người dùng một cách nhanh chóng và rẻ tiền (chẳng hạn như dịch vụ tiên tri của Chainlink). Bằng chứng không kiến thức trong trường hợp này cho phép các nhà cung cấp năng lượng điện toán bên thứ ba đưa ra bằng chứng về tính toàn vẹn của tính toán để đảm bảo rằng kết quả đầu ra mà người dùng nhận được là chính xác.
Bỏ phiếu ẩn danh
Với tiền đề không tiết lộ danh tính cụ thể, danh tính của người dùng được chứng minh và có được quyền bỏ phiếu để hoàn thành việc bỏ phiếu.
PHẦN.04
Cách thức hoạt động của Bằng chứng không kiến thức
Bằng chứng không kiến thức lần đầu tiên được đề xuất bởi Shafi Goldwasser và Silvio Micali của MIT trong một bài báo năm 1985 có tiêu đề "Sự phức tạp về kiến thức của các hệ thống bằng chứng tương tác". Tác giả đã đề cập trong bài báo rằng người chứng minh có thể thuyết phục người xác minh về tính xác thực của dữ liệu mà không cần tiết lộ dữ liệu cụ thể. Bằng chứng không kiến thức có thể tương tác, nghĩa là người chứng minh phải chứng minh tính xác thực của dữ liệu một lần cho từng người xác minh; nó cũng có thể không tương tác, nghĩa là người chứng minh tạo ra một bằng chứng và bất kỳ ai sử dụng bằng chứng này đều có thể được xác minh. Hiện tại có nhiều triển khai bằng chứng không kiến thức, chẳng hạn như zk-SNARKS, zk-STARKS, PLONK và Bulletproofs. Mỗi phương pháp đều có những ưu điểm và nhược điểm riêng về quy mô bằng chứng, thời gian chứng minh và thời gian xác minh.
Bằng chứng không kiến thức có ba tính năng cơ bản, đó là:
Chính trực: Nếu tuyên bố là đúng, người xác minh trung thực có thể tin tưởng rằng người chứng minh trung thực có thông tin chính xác.
Độ tin cậy: Nếu tuyên bố là sai, không người chứng minh không trung thực nào có thể thuyết phục người xác minh trung thực rằng anh ta có thông tin chính xác.
Không biết gì: Nếu tuyên bố là đúng, người xác minh không biết gì ngoại trừ tuyên bố đó là đúng từ người tục ngữ.
Tóm lại, để tạo ra một bằng chứng không có kiến thức, người xác minh cần làm cho người chứng thực thực hiện một chuỗi các hoạt động mà người chứng thực chỉ có thể thực hiện chính xác nếu nó biết thông tin cơ bản. Nếu người chứng minh đánh lừa một kết quả, thì rất có thể người kiểm chứng sẽ tìm ra và chứng minh được sai lầm của mình trong cuộc kiểm chứng.
PHẦN.05
Phân loại bằng chứng không kiến thức
Bằng chứng không kiến thức có thể được chia thành "bằng chứng không kiến thức tương tác" và "bằng chứng không kiến thức không tương tác" theo phương pháp tương tác.
Bằng chứng không kiến thức tương tác
Người xác minh và người xác minh cần tương tác nhiều lần, người xác minh sẽ tiếp tục đặt câu hỏi để thách thức người xác minh và người xác minh sẽ tiếp tục trả lời các câu hỏi này cho đến khi người xác minh bị thuyết phục.
Bằng chứng không kiến thức tương tác - Trò chơi mù màu
Alice bị mù màu, nhưng Bob không mù màu. Bob có hai quả bóng có hình dạng và kích thước giống nhau, nhưng màu sắc của hai quả bóng này khác nhau. Một quả bóng màu xanh và quả bóng còn lại màu đỏ. Vì Alice bị mù màu nên Alice không thể biết hai quả bóng có giống nhau hay không, Bob cần chứng minh cho Alice thấy hai quả bóng đó khác nhau. Ở đây, Alice được gọi là người xác minh, anh ta cần xác minh xem câu nói của Bob có đúng hay không, Bob được gọi là người chứng minh, anh ta cần chứng minh câu nói của mình (có hai quả bóng có màu khác nhau). quả bóng, hãy chứng minh cho Alice thấy rằng màu của hai quả bóng là khác nhau, điều này phù hợp với định nghĩa về bằng chứng không kiến thức.
Alice nhặt hai quả bóng trước mặt Bob, quả bóng xanh ở tay trái và quả bóng đỏ ở tay phải, sau đó đưa cả hai tay ra sau lưng để Bob không nhìn thấy quả bóng trong tay Alice và Alice trao đổi ngẫu nhiên quả bóng hai quả bóng ở tay trái và phải sau lưng, sau khi đổi bóng xong Alice đưa tay ra hỏi Bob xem hai quả bóng có đổi vị trí cho nhau không, nếu Bob có thể nhìn thấy màu sắc trên quả bóng thì mỗi lần Alice đổi vị trí của quả bóng, Bob có thể trả lời đúng câu hỏi của Alice.
Lần đầu tiên, Alice bí mật hoán đổi vị trí của quả bóng trong tay, sau đó Alice hỏi Bob rằng cô ấy có đổi vị trí của quả bóng không, nếu Bob trả lời Có thì xác suất Alice có thể phân biệt được màu của quả bóng là 50%. hai quả bóng, bởi vì Bob Có 1/2 cơ hội chọn đúng, nên Alice có thể thử lại. Nếu Bob trả lời Không, thì Alice có thể chắc chắn rằng Bob không thể phân biệt được màu của hai quả bóng.
Lần thứ hai, Alice không hoán đổi vị trí của các quả bóng trên tay, sau đó Alice hỏi Bob liệu anh ta có đổi vị trí của các quả bóng không. Nếu Bob trả lời Không, thì Alice có 75% xác suất tin rằng Bob có thể phân biệt màu của hai quả bóng.
Sau lần lặp đầu tiên, Alice có thể nói rằng khẳng định của Bob có 50% xác suất là đúng. Nếu Bob trả lời đúng lần thứ hai, thì Alice có thể nói rằng tuyên bố của Bob là đúng với xác suất là 75%. Sau lần lặp thứ ba, nó sẽ là 87,5%. Nếu Bob vượt qua lần kiểm tra n lần liên tiếp, Alice có xác suất là 1-(1/2)^n và có thể nghĩ rằng những gì Bob nói là đúng, và hai quả bóng thực sự có màu đỏ và xanh.
Chứng minh tương tác không kiến thức là một phương pháp xác minh dựa trên xác suất. Người xác minh đặt câu hỏi cho người chứng minh dựa trên sự ngẫu nhiên nhất định. Nếu người chứng minh có thể đưa ra câu trả lời chính xác, điều đó có nghĩa là người chứng minh có xác suất cao có tất cả các bằng chứng mà anh ta có .Được xưng là "kiến thức". Bằng chứng không kiến thức không phải là bằng chứng theo nghĩa toán học, bởi vì nó có xác suất sai nhỏ và người chứng minh gian dối có thể đánh lừa người xác minh thông qua các tuyên bố sai. Nói cách khác, bằng chứng không kiến thức là bằng chứng xác suất chứ không phải bằng chứng xác định, nhưng có những kỹ thuật có thể giảm lỗi xuống giá trị không đáng kể.
Cách tiếp cận tương tác này có một số hạn chế:
Mỗi lần xác minh yêu cầu cả một quá trình dài.
Cả người chứng minh và người xác minh cần phải có mặt cùng một lúc, dù trực tuyến hay gặp mặt trực tiếp.
Chỉ có thể tin cậy một người xác minh. Nếu muốn tin cậy nhiều người xác minh, thì mỗi người xác minh cần phải trải qua một quy trình chứng minh.
** BẰNG CHỨNG KHÔNG CÓ KIẾN THỨC KHÔNG TƯƠNG TÁC **
Bằng chứng không kiến thức tương tác yêu cầu hai bên phải sẵn sàng và tương tác nhiều lần. Ngay cả khi người xác minh chắc chắn rằng người chứng minh là trung thực, bằng chứng không thể được sử dụng để xác minh độc lập (việc tính toán một bằng chứng mới yêu cầu một bộ thông báo mới giữa người chứng minh và người xác minh).
Để giải quyết các vấn đề mà bằng chứng không kiến thức tương tác gặp phải, bằng chứng không kiến thức không tương tác đã ra đời. Manuel Blum, Paul Feldman và Silvio Micali đã đề xuất các bằng chứng không kiến thức tương tác đầu tiên - trong đó người chứng minh và người xác minh có một bí mật chung. Điều này cho phép một người chứng minh chứng minh kiến thức của họ về một số thông tin mà không cần cung cấp thông tin đó.
Bằng chứng không kiến thức không tương tác---Trò chơi Sudoku
Sudoku là một trò chơi toán học có nguồn gốc từ Thụy Sĩ vào thế kỷ 18. Đây là một trò chơi logic sử dụng giấy và bút để thực hiện các phép tính. Người chơi cần suy ra số của tất cả các ô còn lại dựa trên các số đã biết trên bảng 9×9 và thỏa mãn rằng các số trong mỗi hàng, mỗi cột và mỗi cung có nét đậm (3*3) chứa 1- 9. nhắc lại.
Để chứng minh với Bob rằng cô ấy đã giải được câu đố Sudoku, Alice đã tạo ra một cỗ máy chống giả mạo cho việc này. Alice đặt câu trả lời Sudoku đã tạo vào máy và máy có thể gửi bằng chứng cho Bob. Máy của Alice tuân theo giao thức có thể kiểm chứng công khai sau đây: Đầu tiên, Alice đặt câu đố Sudoku gốc chưa giải được vào máy và ba thẻ câu đố trong Sudoku ngửa lên. Tiếp theo, Alice đặt câu trả lời của mình úp xuống ô tương ứng trên máy, đồng thời đặt ba thẻ vào mỗi ô. Cuối cùng, Bob nhận được bằng chứng từ máy và máy trả lại 27 túi cho Bob:
Máy lấy ra 9 thẻ từ mỗi hàng Sudoku, trộn riêng và cho vào túi, tổng cộng có 9 hàng và sử dụng 9 túi; máy lấy 9 thẻ từ mỗi hàng Sudoku, trộn chúng và đặt chúng vào Đặt chúng vào một cái túi, có tổng cộng 9 cột và 9 túi được sử dụng; máy lấy các thẻ trong mỗi cung đường dày (3*3) trong Sudoku, trộn chúng lên và đặt chúng vào một túi, tổng cộng 9 túi, sử dụng hết 9 túi;
Bob kiểm tra từng túi trong số 27 túi riêng lẻ và nếu các thẻ trong mỗi túi chứa các số từ 1 đến 9 và không có số nào bị thiếu hoặc lặp lại, thì Bob có thể xác nhận rằng Alice thực sự đã giải Sudoku và Bob đã không lấy bất kỳ số nào từ máy. Bất kỳ kiến thức nào về lời giải Sudoku đều có thể thu được từ bằng chứng được trả về, bởi vì dữ liệu do máy trả về túi của Bob được xáo trộn ngẫu nhiên.
Bằng chứng không kiến thức không tương tác khắc phục một số thiếu sót của bằng chứng không kiến thức tương tác, không yêu cầu tương tác trực tuyến dài, có thể được nhiều người (hoặc thậm chí tất cả mọi người) tin tưởng và bằng chứng luôn hợp lệ, nhưng các máy móc và chương trình bổ sung có thể được yêu cầu để xác định Thứ tự thử nghiệm. Ví dụ, trong trường hợp Sudoku, chương trình sẽ quyết định xác minh cột hoặc hàng nào. Trình tự xác minh phải được giữ bí mật, nếu không người xác minh có thể vượt qua quá trình xác minh mà không biết "kiến thức" thực sự.
Bằng chứng không kiến thức tương tác VS bằng chứng không kiến thức không tương tác
Mỗi lần xác minh bằng chứng tương tác yêu cầu một vòng giao tiếp mới và bằng chứng không tương tác chỉ yêu cầu một vòng giao tiếp giữa những người tham gia (người chứng minh và người xác minh). Người châm ngôn chuyển thông tin bí mật tới một thuật toán đặc biệt để tính toán bằng chứng không có kiến thức. Bằng chứng này được gửi đến người xác minh, người này sử dụng một thuật toán khác để kiểm tra xem người xác minh có biết bí mật hay không.
Bằng chứng không tương tác làm giảm giao tiếp giữa người chứng minh và người xác minh, làm cho bằng chứng ZK hiệu quả hơn. Ngoài ra, một khi bằng chứng được tạo ra, nó có thể được xác minh bởi bất kỳ ai khác (có quyền truy cập vào thuật toán xác minh và bí mật được chia sẻ).
**PHẦN.**06
Giải pháp kỹ thuật và ứng dụng của bằng chứng không kiến thức
Công nghệ không kiến thức cho phép các nhà phát triển không chỉ tận dụng tính bảo mật của các chuỗi khối cơ bản như Ethereum, mà còn cải thiện thông lượng và tốc độ giao dịch cho dApps, đồng thời đưa thông tin cá nhân của người dùng ra khỏi chuỗi để bảo vệ quyền riêng tư của người dùng. Các giao dịch sẽ được đóng gói và tải lên chuỗi để giảm chi phí sử dụng cho người dùng cuối. Cuối cùng, các dự án có thể tận dụng các khả năng này để tạo các dApp nâng cao không chỉ cạnh tranh với các hệ thống Web2 về hiệu suất mà còn duy trì các lợi ích phân cấp của Web3.
(Nguồn hình ảnh: Chainlink)
Trong Lớp 2, zk-rollup sẽ đóng gói nhiều giao dịch lại với nhau và xuất bản chúng trên chuỗi khối Lớp 1, đồng thời xuất bản bằng chứng không có kiến thức để xác minh tính hợp lệ của phép tính. Bằng chứng được đăng trên chuỗi còn được gọi là "bằng chứng hợp lệ". **Công nghệ chứng minh tính hợp lệ được chia thành hai loại: SNARK và STARK. **
zk-SNAR
Tên đầy đủ của SNARK là "bằng chứng về kiến thức không tương tác ngắn gọn không có kiến thức về kiến thức" (succinct non-interactive zero-knowledge proof). Đây là một bằng chứng mật mã rằng tệp nhỏ và có thể kiểm chứng dễ dàng. Nó tạo ra một bằng chứng mật mã bằng cách sử dụng một đường cong elip giả định rằng không thể tìm thấy logarit rời rạc của một phần tử đường cong elip ngẫu nhiên từ một điểm cơ sở công khai. Chi phí tính toán của đường cong elip thấp hơn hàm băm của STARK, do đó chi phí gas của giao thức SNARK thấp hơn.
Trường hợp:Zcash, Loopring, zkSync1.0, zkSync 2.0, Zigzag, Mine
zk-STARK
Tên đầy đủ của STARK là “bằng chứng minh bạch về kiến thức có thể mở rộng bằng không kiến thức” (zero-knowledge scalable, transparent knowledge proof). Bằng chứng mật mã này hầu như không yêu cầu tương tác giữa người chứng minh và người xác minh. Ưu điểm lớn nhất của STARK so với SNARK là thời gian chứng minh ngắn hơn và dễ dàng mở rộng hơn. Ngoài ra, vì STARK sử dụng hàm băm nên chúng cũng có khả năng chống lại các cuộc tấn công lượng tử.
Điều đáng nói là người phát minh ra STARK là Eli Ben-Sasson, người đồng sáng lập StarkWare, nhóm cũng đã phát triển StarkEx và StarkNet.
Ví dụ: StarkEx, StarkNet, Immutable X, Starkware
PHẦN.07
Nhược điểm của bằng chứng không kiến thức
Chi phí phần cứng cao
Tùy thuộc vào hệ thống bằng chứng, quy trình tạo bằng chứng không kiến thức là khác nhau. Nhưng cuối cùng, bạn sẽ phải đối mặt với các bài toán khó: phép nhân vectơ số lớn (trường hoặc nhóm), đặc biệt là phép nhân đa hướng (MSM) với cơ số cố định và biến đổi, hay phép biến đổi Fourier nhanh (FFT) và FFT nghịch đảo.
Cả MSM và FFT đều hoạt động chậm. Trong một hệ thống tồn tại cả FFT và MSM, khoảng 70% thời gian tạo bằng chứng được dành cho MSM và 30% cho FFT. Tăng tốc phần cứng là cần thiết để thực hiện trong các tính toán phức tạp. Người ta thường cho rằng công nghệ quan trọng nhất để tăng tốc phần cứng ZK là FPGA chứ không phải GPU (do chi phí và hiệu quả năng lượng) hoặc ASIC (do tính không linh hoạt và chu kỳ lặp dài của chúng). Các FPGA hàng đầu rẻ hơn khoảng 3 lần so với các GPU hàng đầu. Ngoài ra, FPGA tiết kiệm năng lượng hơn gấp 10 lần so với GPU, chủ yếu là do GPU cần được kết nối với thiết bị chủ, vốn tiêu thụ rất nhiều điện năng.
Chi phí xác minh
Việc xác minh bằng chứng đòi hỏi nhiều tính toán phức tạp, điều này cũng làm tăng chi phí tính toán. Ví dụ: ZK-rolluos cần trả khoảng 500.000 gas để xác minh một bằng chứng AK-SNARK duy nhất trên Ethereum và ZK-STARK yêu cầu mức phí cao hơn.
Giả định tin tưởng
Tiền đề của bằng chứng không có kiến thức là cả hai bên đều trung thực và muốn biết câu trả lời thực sự và sẽ không làm sai lệch dữ liệu. Trong ZK-SNARK, việc tạo các tham số công khai một lần có thể được các bên tham gia giao thức không kiến thức sử dụng lại, điều đó có nghĩa là dữ liệu do những người tham gia cung cấp là chính xác theo mặc định.
Nhưng trên thực tế, người dùng không có cách nào để đánh giá sự trung thực của người tham gia, thậm chí nếu người tham gia nhập sai dữ liệu thì người dùng cũng phải tin. Không có giả định về độ tin cậy trong ZK-STARK và hiện tại, các nhà nghiên cứu đang nghiên cứu các cài đặt không đáng tin cậy cho ZK-SNARK để cải thiện tính bảo mật của cơ chế bằng chứng.
Mối đe dọa điện toán lượng tử
ZK-SNARK sử dụng Thuật toán Chữ ký số Đường cong Elliptic (ECDSA) để mã hóa, có vẻ như thuật toán ECDSA hiện tại là an toàn, nhưng sự phát triển của máy tính lượng tử trong tương lai có thể sẽ phá vỡ thuật toán này.
Người ta thường tin rằng ZK-STARK sẽ không bị đe dọa bởi điện toán lượng tử vì nó được mã hóa bằng cách sử dụng hàm băm chống xung đột.Không giống như cặp khóa công khai-riêng tư của ECDSA, hàm băm chống xung đột khó bị bẻ khóa hơn bằng điện toán lượng tử.
Xem bản gốc
Nội dung chỉ mang tính chất tham khảo, không phải là lời chào mời hay đề nghị. Không cung cấp tư vấn về đầu tư, thuế hoặc pháp lý. Xem Tuyên bố miễn trừ trách nhiệm để biết thêm thông tin về rủi ro.
Giải thích bằng chứng không kiến thức
Bài viết này bao gồm những nội dung sau: 1. Bằng chứng không kiến thức là gì? 2. Tại sao chúng ta cần bằng chứng không kiến thức? 3. Các kịch bản ứng dụng bằng chứng không kiến thức. 4. Cách thức hoạt động của bằng chứng không kiến thức. 5. Phân loại và các trường hợp ứng dụng của zero-knowledge proofs. 6. Lỗ hổng của bằng chứng không kiến thức.
PHẦN.01
Bằng chứng tri thức bằng không là gì
**Bằng chứng không kiến thức (Zero-Knowledge Proof) được đề xuất bởi S.Goldwasser, S.Micali và C.Rackoff vào đầu những năm 1980. Nó đề cập đến khả năng của người chứng minh thuyết phục người xác minh rằng một khẳng định nào đó là đúng mà không cung cấp bất kỳ thông tin hữu ích nào cho người xác minh. **
Lấy một ví dụ đơn giản, Puff nói rằng anh ấy là một đầu bếp và có thể nấu các món ăn Trung Quốc, Hàn Quốc và Ý. Mẹ tôi tỏ ra không tin vì tôi chưa nấu một bữa cơm nào ở nhà. Vậy làm sao tôi có thể chứng minh rằng tôi có thể nấu ăn vào thời điểm này?
Tôi có thể để mẹ xem tôi hoàn thành bữa ăn trong bếp và chứng minh rằng tôi thực sự biết nấu ăn. Nhưng em không muốn mẹ nhìn thấy em đang nấu nướng bừa bộn trong bếp, hay lại mè nheo nữa, vậy em phải làm sao? Tôi vào bếp một mình, bố mẹ tôi đang đợi ở ngoài, sau khi tôi nấu nướng và thu dọn xong xuôi, tôi mang bát đĩa ra. Điều này vẫn chứng tỏ rằng tôi có thể nấu ăn. Về phần tôi dùng nguyên liệu gì, gia vị gì, trong quá trình làm bếp lộn xộn như thế nào, tôi không cần, chỉ cần mẹ biết tôi nấu được cơm, chứng tỏ tôi không phải là nằm.
Nói một cách đơn giản: Bằng chứng không kiến thức đang cố gắng thiết lập niềm tin giữa hai bên với lượng thông tin trao đổi tối thiểu. Không tiết lộ thêm thông tin, một bên (người chứng minh, người chứng minh) có thể chứng minh cho bên kia (người xác minh, người xác minh) một điều là đúng.
PHẦN.02
Tại sao bạn cần bằng chứng không kiến thức
** Bảo vệ dữ liệu riêng tư **
Các nhà cung cấp lừa đảo muốn thu thập càng nhiều dữ liệu người dùng càng tốt và một số biên lai không liên quan gì đến hoạt động kinh doanh của họ cũng yêu cầu người dùng cấp quyền (thực sự ghét họ). Họ đưa thông tin nhận dạng cá nhân (PII) của người dùng được thu thập vào cơ sở dữ liệu tập trung. Những cơ sở dữ liệu này rất dễ bị tấn công. Một khi bị tấn công, thông tin nhận dạng cá nhân sẽ bị rò rỉ, dẫn đến nhiều vấn đề lừa đảo khác nhau.
Xác thực
Khi sử dụng trang web, người dùng có thể chứng minh với trang web rằng anh ta có khóa riêng hoặc biết câu trả lời mà chỉ mình anh ta biết. Trang web không cần biết khóa nhưng có thể xác nhận danh tính của người dùng thông qua bằng chứng không kiến thức. Thông qua lưu trữ phi tập trung, máy chủ có thể Chứng minh với người dùng rằng dữ liệu được bảo quản đúng cách và không bị rò rỉ.
Tính toán nén và mở rộng chuỗi khối
Trong kiến trúc khối truyền thống, cùng một phép tính được lặp lại nhiều lần, chẳng hạn như xác minh chữ ký, xác minh tính hợp lệ của giao dịch, thực hiện hợp đồng thông minh, v.v., bởi vì với bằng chứng tính toán, cùng một phép tính không cần lặp lại nhiều lần, quá trình tính toán có thể được chứng minh nén bằng công nghệ không kiến thức.
**Bằng chứng không kiến thức thực sự giải quyết được sự tin cậy của dữ liệu, thực hiện việc bảo vệ dữ liệu riêng tư và làm cho chuỗi khối thực sự nhận ra khái niệm máy móc đáng tin cậy. **
PHẦN.03
Kịch bản ứng dụng bằng chứng không kiến thức
**Các tình huống ứng dụng chính của bằng chứng không kiến thức là: thanh toán ẩn danh, bằng chứng nhận dạng, tính toán có thể kiểm chứng và bỏ phiếu ẩn danh. **
Thanh toán ẩn danh
Các giao dịch tiền điện tử được hiển thị công khai trên chuỗi công khai. Người dùng giao dịch ẩn danh, nhưng cũng được liên kết với danh tính trong thế giới thực (ví dụ: bằng cách đưa địa chỉ ETH vào hồ sơ Twitter hoặc GitHub của họ) hoặc danh tính trong thế giới thực của họ có thể được lấy thông qua phân tích dữ liệu trên chuỗi và ngoài chuỗi.
Có những "đồng tiền riêng tư" cụ thể được thiết kế cho các giao dịch hoàn toàn ẩn danh. Các ví dụ bao gồm Zcash và Monero, che giấu các chi tiết giao dịch bao gồm địa chỉ người gửi/người nhận, loại tài sản, số lượng và dòng thời gian giao dịch. Bằng cách kết hợp các kỹ thuật không có kiến thức vào các giao thức, mạng chuỗi khối tập trung vào quyền riêng tư cho phép các nút xác minh giao dịch mà không cần truy cập vào dữ liệu giao dịch.
Bằng chứng không kiến thức cũng đã được áp dụng cho các giao dịch ẩn danh trên các chuỗi khối công khai. Chẳng hạn như Tornado Cash, một dịch vụ phi tập trung cho phép người dùng thực hiện các giao dịch riêng tư trên Ethereum. Tornado Cash sử dụng bằng chứng không có kiến thức để làm xáo trộn chi tiết giao dịch và đảm bảo quyền riêng tư tài chính.
ID cá nhân
Với tiền đề không tiết lộ thông tin nhận dạng cụ thể, một chứng chỉ nhận dạng cụ thể sẽ được cấp. Ví dụ: sử dụng các dịch vụ trực tuyến yêu cầu chứng minh danh tính của người dùng và quyền truy cập các nền tảng đó. Điều này thường yêu cầu cung cấp thông tin cá nhân như tên, địa chỉ email, ngày sinh, v.v.
Bằng chứng không kiến thức có thể đơn giản hóa việc xác thực nền tảng và người dùng. Bằng chứng ZK được tạo bằng cách sử dụng đầu vào công khai (ví dụ: dữ liệu chứng minh rằng người dùng là thành viên của nền tảng) và đầu vào riêng tư (ví dụ: thông tin chi tiết của người dùng), mà người dùng có thể chỉ cần xuất trình để xác minh danh tính của họ khi họ cần truy cập dịch vụ. Ví dụ, để chứng minh người dùng có phải là người lớn hay không thì không cần đưa ra thông tin CMND, năm sinh cụ thể mà chỉ cần kết luận người dùng đủ 18 tuổi hay chưa.
Tính toán có thể kiểm chứng
Khi thiết bị của người dùng không thể hỗ trợ tính toán cần thiết hoặc chi phí tính toán cục bộ quá cao, các dịch vụ của bên thứ ba sẽ được xem xét. Các dịch vụ của bên thứ ba này có thể trả lại kết quả đầu ra cho người dùng một cách nhanh chóng và rẻ tiền (chẳng hạn như dịch vụ tiên tri của Chainlink). Bằng chứng không kiến thức trong trường hợp này cho phép các nhà cung cấp năng lượng điện toán bên thứ ba đưa ra bằng chứng về tính toàn vẹn của tính toán để đảm bảo rằng kết quả đầu ra mà người dùng nhận được là chính xác.
Bỏ phiếu ẩn danh
Với tiền đề không tiết lộ danh tính cụ thể, danh tính của người dùng được chứng minh và có được quyền bỏ phiếu để hoàn thành việc bỏ phiếu.
PHẦN.04
Cách thức hoạt động của Bằng chứng không kiến thức
Bằng chứng không kiến thức lần đầu tiên được đề xuất bởi Shafi Goldwasser và Silvio Micali của MIT trong một bài báo năm 1985 có tiêu đề "Sự phức tạp về kiến thức của các hệ thống bằng chứng tương tác". Tác giả đã đề cập trong bài báo rằng người chứng minh có thể thuyết phục người xác minh về tính xác thực của dữ liệu mà không cần tiết lộ dữ liệu cụ thể. Bằng chứng không kiến thức có thể tương tác, nghĩa là người chứng minh phải chứng minh tính xác thực của dữ liệu một lần cho từng người xác minh; nó cũng có thể không tương tác, nghĩa là người chứng minh tạo ra một bằng chứng và bất kỳ ai sử dụng bằng chứng này đều có thể được xác minh. Hiện tại có nhiều triển khai bằng chứng không kiến thức, chẳng hạn như zk-SNARKS, zk-STARKS, PLONK và Bulletproofs. Mỗi phương pháp đều có những ưu điểm và nhược điểm riêng về quy mô bằng chứng, thời gian chứng minh và thời gian xác minh.
Bằng chứng không kiến thức có ba tính năng cơ bản, đó là:
Tóm lại, để tạo ra một bằng chứng không có kiến thức, người xác minh cần làm cho người chứng thực thực hiện một chuỗi các hoạt động mà người chứng thực chỉ có thể thực hiện chính xác nếu nó biết thông tin cơ bản. Nếu người chứng minh đánh lừa một kết quả, thì rất có thể người kiểm chứng sẽ tìm ra và chứng minh được sai lầm của mình trong cuộc kiểm chứng.
PHẦN.05
Phân loại bằng chứng không kiến thức
Bằng chứng không kiến thức có thể được chia thành "bằng chứng không kiến thức tương tác" và "bằng chứng không kiến thức không tương tác" theo phương pháp tương tác.
Bằng chứng không kiến thức tương tác
Người xác minh và người xác minh cần tương tác nhiều lần, người xác minh sẽ tiếp tục đặt câu hỏi để thách thức người xác minh và người xác minh sẽ tiếp tục trả lời các câu hỏi này cho đến khi người xác minh bị thuyết phục.
Bằng chứng không kiến thức tương tác - Trò chơi mù màu
Alice bị mù màu, nhưng Bob không mù màu. Bob có hai quả bóng có hình dạng và kích thước giống nhau, nhưng màu sắc của hai quả bóng này khác nhau. Một quả bóng màu xanh và quả bóng còn lại màu đỏ. Vì Alice bị mù màu nên Alice không thể biết hai quả bóng có giống nhau hay không, Bob cần chứng minh cho Alice thấy hai quả bóng đó khác nhau. Ở đây, Alice được gọi là người xác minh, anh ta cần xác minh xem câu nói của Bob có đúng hay không, Bob được gọi là người chứng minh, anh ta cần chứng minh câu nói của mình (có hai quả bóng có màu khác nhau). quả bóng, hãy chứng minh cho Alice thấy rằng màu của hai quả bóng là khác nhau, điều này phù hợp với định nghĩa về bằng chứng không kiến thức.
Alice nhặt hai quả bóng trước mặt Bob, quả bóng xanh ở tay trái và quả bóng đỏ ở tay phải, sau đó đưa cả hai tay ra sau lưng để Bob không nhìn thấy quả bóng trong tay Alice và Alice trao đổi ngẫu nhiên quả bóng hai quả bóng ở tay trái và phải sau lưng, sau khi đổi bóng xong Alice đưa tay ra hỏi Bob xem hai quả bóng có đổi vị trí cho nhau không, nếu Bob có thể nhìn thấy màu sắc trên quả bóng thì mỗi lần Alice đổi vị trí của quả bóng, Bob có thể trả lời đúng câu hỏi của Alice.
Lần đầu tiên, Alice bí mật hoán đổi vị trí của quả bóng trong tay, sau đó Alice hỏi Bob rằng cô ấy có đổi vị trí của quả bóng không, nếu Bob trả lời Có thì xác suất Alice có thể phân biệt được màu của quả bóng là 50%. hai quả bóng, bởi vì Bob Có 1/2 cơ hội chọn đúng, nên Alice có thể thử lại. Nếu Bob trả lời Không, thì Alice có thể chắc chắn rằng Bob không thể phân biệt được màu của hai quả bóng.
Lần thứ hai, Alice không hoán đổi vị trí của các quả bóng trên tay, sau đó Alice hỏi Bob liệu anh ta có đổi vị trí của các quả bóng không. Nếu Bob trả lời Không, thì Alice có 75% xác suất tin rằng Bob có thể phân biệt màu của hai quả bóng.
Sau lần lặp đầu tiên, Alice có thể nói rằng khẳng định của Bob có 50% xác suất là đúng. Nếu Bob trả lời đúng lần thứ hai, thì Alice có thể nói rằng tuyên bố của Bob là đúng với xác suất là 75%. Sau lần lặp thứ ba, nó sẽ là 87,5%. Nếu Bob vượt qua lần kiểm tra n lần liên tiếp, Alice có xác suất là 1-(1/2)^n và có thể nghĩ rằng những gì Bob nói là đúng, và hai quả bóng thực sự có màu đỏ và xanh.
Chứng minh tương tác không kiến thức là một phương pháp xác minh dựa trên xác suất. Người xác minh đặt câu hỏi cho người chứng minh dựa trên sự ngẫu nhiên nhất định. Nếu người chứng minh có thể đưa ra câu trả lời chính xác, điều đó có nghĩa là người chứng minh có xác suất cao có tất cả các bằng chứng mà anh ta có .Được xưng là "kiến thức". Bằng chứng không kiến thức không phải là bằng chứng theo nghĩa toán học, bởi vì nó có xác suất sai nhỏ và người chứng minh gian dối có thể đánh lừa người xác minh thông qua các tuyên bố sai. Nói cách khác, bằng chứng không kiến thức là bằng chứng xác suất chứ không phải bằng chứng xác định, nhưng có những kỹ thuật có thể giảm lỗi xuống giá trị không đáng kể.
Cách tiếp cận tương tác này có một số hạn chế:
** BẰNG CHỨNG KHÔNG CÓ KIẾN THỨC KHÔNG TƯƠNG TÁC **
Bằng chứng không kiến thức tương tác yêu cầu hai bên phải sẵn sàng và tương tác nhiều lần. Ngay cả khi người xác minh chắc chắn rằng người chứng minh là trung thực, bằng chứng không thể được sử dụng để xác minh độc lập (việc tính toán một bằng chứng mới yêu cầu một bộ thông báo mới giữa người chứng minh và người xác minh).
Để giải quyết các vấn đề mà bằng chứng không kiến thức tương tác gặp phải, bằng chứng không kiến thức không tương tác đã ra đời. Manuel Blum, Paul Feldman và Silvio Micali đã đề xuất các bằng chứng không kiến thức tương tác đầu tiên - trong đó người chứng minh và người xác minh có một bí mật chung. Điều này cho phép một người chứng minh chứng minh kiến thức của họ về một số thông tin mà không cần cung cấp thông tin đó.
Bằng chứng không kiến thức không tương tác---Trò chơi Sudoku
Sudoku là một trò chơi toán học có nguồn gốc từ Thụy Sĩ vào thế kỷ 18. Đây là một trò chơi logic sử dụng giấy và bút để thực hiện các phép tính. Người chơi cần suy ra số của tất cả các ô còn lại dựa trên các số đã biết trên bảng 9×9 và thỏa mãn rằng các số trong mỗi hàng, mỗi cột và mỗi cung có nét đậm (3*3) chứa 1- 9. nhắc lại.
Để chứng minh với Bob rằng cô ấy đã giải được câu đố Sudoku, Alice đã tạo ra một cỗ máy chống giả mạo cho việc này. Alice đặt câu trả lời Sudoku đã tạo vào máy và máy có thể gửi bằng chứng cho Bob. Máy của Alice tuân theo giao thức có thể kiểm chứng công khai sau đây: Đầu tiên, Alice đặt câu đố Sudoku gốc chưa giải được vào máy và ba thẻ câu đố trong Sudoku ngửa lên. Tiếp theo, Alice đặt câu trả lời của mình úp xuống ô tương ứng trên máy, đồng thời đặt ba thẻ vào mỗi ô. Cuối cùng, Bob nhận được bằng chứng từ máy và máy trả lại 27 túi cho Bob:
Máy lấy ra 9 thẻ từ mỗi hàng Sudoku, trộn riêng và cho vào túi, tổng cộng có 9 hàng và sử dụng 9 túi; máy lấy 9 thẻ từ mỗi hàng Sudoku, trộn chúng và đặt chúng vào Đặt chúng vào một cái túi, có tổng cộng 9 cột và 9 túi được sử dụng; máy lấy các thẻ trong mỗi cung đường dày (3*3) trong Sudoku, trộn chúng lên và đặt chúng vào một túi, tổng cộng 9 túi, sử dụng hết 9 túi;
Bob kiểm tra từng túi trong số 27 túi riêng lẻ và nếu các thẻ trong mỗi túi chứa các số từ 1 đến 9 và không có số nào bị thiếu hoặc lặp lại, thì Bob có thể xác nhận rằng Alice thực sự đã giải Sudoku và Bob đã không lấy bất kỳ số nào từ máy. Bất kỳ kiến thức nào về lời giải Sudoku đều có thể thu được từ bằng chứng được trả về, bởi vì dữ liệu do máy trả về túi của Bob được xáo trộn ngẫu nhiên.
Bằng chứng không kiến thức không tương tác khắc phục một số thiếu sót của bằng chứng không kiến thức tương tác, không yêu cầu tương tác trực tuyến dài, có thể được nhiều người (hoặc thậm chí tất cả mọi người) tin tưởng và bằng chứng luôn hợp lệ, nhưng các máy móc và chương trình bổ sung có thể được yêu cầu để xác định Thứ tự thử nghiệm. Ví dụ, trong trường hợp Sudoku, chương trình sẽ quyết định xác minh cột hoặc hàng nào. Trình tự xác minh phải được giữ bí mật, nếu không người xác minh có thể vượt qua quá trình xác minh mà không biết "kiến thức" thực sự.
Bằng chứng không kiến thức tương tác VS bằng chứng không kiến thức không tương tác
Mỗi lần xác minh bằng chứng tương tác yêu cầu một vòng giao tiếp mới và bằng chứng không tương tác chỉ yêu cầu một vòng giao tiếp giữa những người tham gia (người chứng minh và người xác minh). Người châm ngôn chuyển thông tin bí mật tới một thuật toán đặc biệt để tính toán bằng chứng không có kiến thức. Bằng chứng này được gửi đến người xác minh, người này sử dụng một thuật toán khác để kiểm tra xem người xác minh có biết bí mật hay không.
Bằng chứng không tương tác làm giảm giao tiếp giữa người chứng minh và người xác minh, làm cho bằng chứng ZK hiệu quả hơn. Ngoài ra, một khi bằng chứng được tạo ra, nó có thể được xác minh bởi bất kỳ ai khác (có quyền truy cập vào thuật toán xác minh và bí mật được chia sẻ).
**PHẦN.**06
Giải pháp kỹ thuật và ứng dụng của bằng chứng không kiến thức
Công nghệ không kiến thức cho phép các nhà phát triển không chỉ tận dụng tính bảo mật của các chuỗi khối cơ bản như Ethereum, mà còn cải thiện thông lượng và tốc độ giao dịch cho dApps, đồng thời đưa thông tin cá nhân của người dùng ra khỏi chuỗi để bảo vệ quyền riêng tư của người dùng. Các giao dịch sẽ được đóng gói và tải lên chuỗi để giảm chi phí sử dụng cho người dùng cuối. Cuối cùng, các dự án có thể tận dụng các khả năng này để tạo các dApp nâng cao không chỉ cạnh tranh với các hệ thống Web2 về hiệu suất mà còn duy trì các lợi ích phân cấp của Web3.
(Nguồn hình ảnh: Chainlink)
Trong Lớp 2, zk-rollup sẽ đóng gói nhiều giao dịch lại với nhau và xuất bản chúng trên chuỗi khối Lớp 1, đồng thời xuất bản bằng chứng không có kiến thức để xác minh tính hợp lệ của phép tính. Bằng chứng được đăng trên chuỗi còn được gọi là "bằng chứng hợp lệ". **Công nghệ chứng minh tính hợp lệ được chia thành hai loại: SNARK và STARK. **
zk-SNAR
Tên đầy đủ của SNARK là "bằng chứng về kiến thức không tương tác ngắn gọn không có kiến thức về kiến thức" (succinct non-interactive zero-knowledge proof). Đây là một bằng chứng mật mã rằng tệp nhỏ và có thể kiểm chứng dễ dàng. Nó tạo ra một bằng chứng mật mã bằng cách sử dụng một đường cong elip giả định rằng không thể tìm thấy logarit rời rạc của một phần tử đường cong elip ngẫu nhiên từ một điểm cơ sở công khai. Chi phí tính toán của đường cong elip thấp hơn hàm băm của STARK, do đó chi phí gas của giao thức SNARK thấp hơn.
Trường hợp:Zcash, Loopring, zkSync1.0, zkSync 2.0, Zigzag, Mine
zk-STARK
Tên đầy đủ của STARK là “bằng chứng minh bạch về kiến thức có thể mở rộng bằng không kiến thức” (zero-knowledge scalable, transparent knowledge proof). Bằng chứng mật mã này hầu như không yêu cầu tương tác giữa người chứng minh và người xác minh. Ưu điểm lớn nhất của STARK so với SNARK là thời gian chứng minh ngắn hơn và dễ dàng mở rộng hơn. Ngoài ra, vì STARK sử dụng hàm băm nên chúng cũng có khả năng chống lại các cuộc tấn công lượng tử.
Điều đáng nói là người phát minh ra STARK là Eli Ben-Sasson, người đồng sáng lập StarkWare, nhóm cũng đã phát triển StarkEx và StarkNet.
Ví dụ: StarkEx, StarkNet, Immutable X, Starkware
PHẦN.07
Nhược điểm của bằng chứng không kiến thức
Chi phí phần cứng cao
Tùy thuộc vào hệ thống bằng chứng, quy trình tạo bằng chứng không kiến thức là khác nhau. Nhưng cuối cùng, bạn sẽ phải đối mặt với các bài toán khó: phép nhân vectơ số lớn (trường hoặc nhóm), đặc biệt là phép nhân đa hướng (MSM) với cơ số cố định và biến đổi, hay phép biến đổi Fourier nhanh (FFT) và FFT nghịch đảo.
Cả MSM và FFT đều hoạt động chậm. Trong một hệ thống tồn tại cả FFT và MSM, khoảng 70% thời gian tạo bằng chứng được dành cho MSM và 30% cho FFT. Tăng tốc phần cứng là cần thiết để thực hiện trong các tính toán phức tạp. Người ta thường cho rằng công nghệ quan trọng nhất để tăng tốc phần cứng ZK là FPGA chứ không phải GPU (do chi phí và hiệu quả năng lượng) hoặc ASIC (do tính không linh hoạt và chu kỳ lặp dài của chúng). Các FPGA hàng đầu rẻ hơn khoảng 3 lần so với các GPU hàng đầu. Ngoài ra, FPGA tiết kiệm năng lượng hơn gấp 10 lần so với GPU, chủ yếu là do GPU cần được kết nối với thiết bị chủ, vốn tiêu thụ rất nhiều điện năng.
Chi phí xác minh
Việc xác minh bằng chứng đòi hỏi nhiều tính toán phức tạp, điều này cũng làm tăng chi phí tính toán. Ví dụ: ZK-rolluos cần trả khoảng 500.000 gas để xác minh một bằng chứng AK-SNARK duy nhất trên Ethereum và ZK-STARK yêu cầu mức phí cao hơn.
Giả định tin tưởng
Tiền đề của bằng chứng không có kiến thức là cả hai bên đều trung thực và muốn biết câu trả lời thực sự và sẽ không làm sai lệch dữ liệu. Trong ZK-SNARK, việc tạo các tham số công khai một lần có thể được các bên tham gia giao thức không kiến thức sử dụng lại, điều đó có nghĩa là dữ liệu do những người tham gia cung cấp là chính xác theo mặc định.
Nhưng trên thực tế, người dùng không có cách nào để đánh giá sự trung thực của người tham gia, thậm chí nếu người tham gia nhập sai dữ liệu thì người dùng cũng phải tin. Không có giả định về độ tin cậy trong ZK-STARK và hiện tại, các nhà nghiên cứu đang nghiên cứu các cài đặt không đáng tin cậy cho ZK-SNARK để cải thiện tính bảo mật của cơ chế bằng chứng.
Mối đe dọa điện toán lượng tử
ZK-SNARK sử dụng Thuật toán Chữ ký số Đường cong Elliptic (ECDSA) để mã hóa, có vẻ như thuật toán ECDSA hiện tại là an toàn, nhưng sự phát triển của máy tính lượng tử trong tương lai có thể sẽ phá vỡ thuật toán này.
Người ta thường tin rằng ZK-STARK sẽ không bị đe dọa bởi điện toán lượng tử vì nó được mã hóa bằng cách sử dụng hàm băm chống xung đột.Không giống như cặp khóa công khai-riêng tư của ECDSA, hàm băm chống xung đột khó bị bẻ khóa hơn bằng điện toán lượng tử.