Giới thiệu
Trong những năm gần đây, tầm quan trọng của ZKP (Zero-Knowledge Proof - Bằng chứng không tri thức) đã tăng vọt, trở thành một trong những đổi mới quan trọng nhất trong nửa thế kỷ qua của khoa học máy tính. Điều này là do ZKP có thể tăng đáng kể khả năng mở rộng của các nền tảng blockchain như Ethereum.
Một khía cạnh quan trọng của ZKP là chúng có thể tăng số giao dịch mỗi giây (TPS) trên các nền tảng blockchain khác nhau, dựa trên các nguyên lý toán học thay vì niềm tin. Bằng cách cho phép các bên xác thực hợp nhất nhiều giao dịch vào một bằng chứng đơn giản và duy nhất, ZKP đảm bảo tính chính xác và đầy đủ của toàn bộ quá trình.
ZKP cung cấp nhiều tính năng khác, là một phần quan trọng của các giải pháp mở rộng và bảo mật riêng tư khác nhau, bao gồm cả ZK Aggregation như StarkNet, Private ZK Aggregation như Aztec và các loại blockchain Layer 1 như Mina, Filecoin, Manta và Aleo. Tuy nhiên, ZKP cũng có những giới hạn, vì quá trình tạo ra bằng chứng tốn nhiều thời gian và năng lượng. Do cần nhiều phép tính toán phức tạp, chẳng hạn như lũy thừa, nghịch đảo và phép tính ghép cặp song tuyến tính,... nên việc tạo ra bằng chứng thường khá chậm. Do đó, việc tối ưu hóa các giải pháp ZKP để khai thác tối đa tiềm năng của chúng vẫn là một thách thức.
Để giải quyết vấn đề về các cấu trúc ZKP được đề xuất, việc phát triển phương pháp tăng tốc phần cứng là rất cần thiết. Điều này có nghĩa là sử dụng phần cứng đặc biệt như FPGA và ASIC có thể giúp tăng tốc độ lên đến 10 đến 1000 lần.
Zero Knowledge Proofs: zkSNARKs và zkSTARKs
zkSNARK là một loại hệ thống chứng thực không tương tác với khả năng chứng minh bằng zero-knowledge, cho phép người chứng minh thuyết phục người xác thực rằng, người chứng minh biết nhân chứng mà không tiết lộ bất kỳ thông tin nào về nhân chứng đó. Hệ thống này bao gồm bốn thuật toán: Setup, KeyGen, Prove và Verify. Thuật toán Setup tạo ra một số chuỗi tham chiếu được cấu trúc, thuật toán KeyGen sử dụng chuỗi này để tạo ra các khóa chứng thực và khóa xác thực cho một số mạch được chỉ định. Người chứng minh có khóa chứng thực và cặp tuyên bố/chứng cứ, có thể tạo ra chứng thư zero-knowledge bằng cách chỉ định mối quan hệ giữa cặp tuyên bố/chứng cứ và mạch được chỉ định. Người xác thực có thể sử dụng khóa xác thực và tuyên bố để kiểm tra tính hợp lệ của chứng thư zero-knowledge.
zkSNARK là một kỹ thuật được sử dụng trong việc xác thực thông tin mà cần giữ bí mật về nguồn gốc của thông tin đó. Có ba đặc điểm chính của zkSNARK cần được đáp ứng:
- Tính toàn vẹn: Nếu người chứng minh có một chứng cứ, họ có thể tạo ra một chứng minh hợp lệ và người xác minh sẽ luôn chấp nhận nó.
- Tính không biết: Người chứng minh có thể cung cấp chứng cứ cho việc sở hữu một chứng cứ bí mật mà không cần tiết lộ bất kỳ thông tin về chứng cứ bí mật đó cho người xác minh hoặc bất kỳ ai khác.
- Tính đáng tin cậy: Đối với những người chứng minh không trung thực, việc tạo ra một chứng minh hợp lệ mà không có bất kỳ chứng cứ nào là không thể.
Có một biến thể khác được gọi là zkSTARK (Zero-Knowledge Scalable and Transparent ARgument of Knowledge). Giao thức này có thể hoạt động hoàn toàn bảo mật và không tiết lộ bất kỳ thông tin nào về chứng cứ, có thể là giao thức tương tác hoặc phi tương tác.
Khác với zkSNARK, chứng cứ tương tác không cần giai đoạn Setup tin cậy, điều này làm cho hệ thống STARK trở thành lựa chọn tốt hơn. Hệ thống STARK vượt qua nhược điểm này bằng cách sử dụng lĩnh vực chứng cứ trao đổi tương tác (IOP), lĩnh vực này phụ thuộc vào mã Reed-Solomon để nâng cao khả năng mở rộng, từ đó phát triển hệ thống chứng cứ zkSTARK. Ngoài ra, hệ thống dựa trên zkSTARK có độ phức tạp logarit, làm cho nó hiệu quả và ngăn chặn cuộc tấn công từ chối dịch vụ (DoS) vì quá trình tính toán của mỗi bên mất thời gian như nhau.
Một đặc tính đáng chú ý khác của zkSTARK là bảo mật hậu lượng tử có tính đầu cơ của chúng, trong khi zkSNARK không phải do thuật toán lượng tử của Shor. Hệ thống zkSTARK cung cấp bảo mật hậu lượng tử, với điều kiện là hàm băm được sử dụng trong khuôn khổ tự nó có khả năng chống lại các cuộc tấn công điện toán lượng tử.
Trong lĩnh vực công nghệ blockchain, thường sử dụng viết tắt SNARK và STARK để thay thế cho zkSNARK và zkSTARK vì một số nền tảng blockchain không phải lúc nào cũng cần tính năng riêng tư. Do đó, trong bài viết này, chúng ta cũng sẽ sử dụng thuật ngữ đơn giản hóa "ZK" trong các bàn luận và giải thích. ZKP có hai ứng dụng quan trọng:
- Tính toán có thể được xác minh bởi bên thứ ba: Giả sử chúng ta cần thực hiện một phép tính, nhưng vì các hạn chế của nền tảng cơ bản (ví dụ như điện thoại thông minh, Raspberry Pi, máy tính xách tay, hoặc mạng blockchain như Ethereum), phép tính đó có thể tốn kém hoặc không thể chạy được. Trong trường hợp này, chúng ta có thể phải chạy phép tính trên một dịch vụ của bên thứ ba, mà có thể trả kết quả phép tính nhanh chóng và giá rẻ (như các dịch vụ của Chainlink hoặc các hàm Lambda của AWS). Tuy nhiên, trong nhiều trường hợp, chúng ta phải dựa trên giả định rằng việc tính toán đã được thực hiện chính xác, khiến nhà cung cấp dịch vụ có thể tạo ra kết quả không chính xác. Kết quả này có thể gây hậu quả nghiêm trọng và ảnh hưởng đến tính toàn vẹn của hệ thống.
- Tính toán riêng tư: Nếu chi phí để thực hiện tính toán trên máy tính cục bộ không đáng kể, nhưng một số phần cần được giữ bí mật, thì ZKP cũng rất hữu ích. Nói cách khác, ZKP có thể đảm bảo tính toán đã được thực hiện đúng, thậm chí không cần tiết lộ các giá trị riêng tư cho nhà cung cấp dịch vụ bên ngoài. Ví dụ, nếu chúng ta muốn chứng minh chúng ta biết số Fibonacci thứ 1000 mà không tiết lộ con số thực tế, hoặc chứng minh chúng ta đã thực hiện thanh toán hợp lệ mà không tiết lộ danh tính hoặc số tiền thanh toán, thì ZKP có thể giúp đạt được mục tiêu này. Ngoài ra, chúng ta cũng có thể lựa chọn tiết lộ một số giá trị riêng tư và giấu đi các giá trị khác (còn được gọi là tiết lộ lựa chọn) thông qua ZKP.
Trong bối cảnh của blockchain, ZKP có thể được sử dụng như sau:
- Mở rộng Layer 2: Bằng cách kết hợp ZKP vào các tính toán có thể kiểm chứng, các chuỗi khối Layer 1 có thể ủy quyền xử lý giao dịch cho các hệ thống hiệu suất cao ngoài chuỗi, thường được gọi là Layer 2. Phương pháp này cải thiện khả năng mở rộng của blockchain, đồng thời duy trì các biện pháp bảo mật mạnh mẽ, đạt được sự cân bằng giữa hiệu quả và an toàn. StarkWare đã phát triển StarkNet, một nền tảng hợp đồng thông minh có thể mở rộng, sử dụng máy ảo đặc biệt để thực thi mã thân thiện với ZK, trong khi Aztec cho phép các chương trình Layer 2 của họ chạy riêng tư, bảo vệ thông tin giao dịch của người dùng.
- Riêng tư Layer 1: Aleo, Mina, Manta và Zcash là blockchain Layer 1, sử dụng ZKP cho phép các nhà giao dịch ẩn người gửi, người nhận hoặc số tiền.
- Nén dữ liệu: Mina và Celo sử dụng ZKP để nén dữ liệu blockchain cần thiết giúp đồng bộ với trạng thái mới nhất của chuỗi thành chứng minh ngắn gọn.
- Lưu trữ phi tập trung: Filecoin cũng sử dụng ZKP (chạy trên GPU) để chứng minh các nút trong mạng lưu trữ dữ liệu chính xác.
Khi việc áp dụng tiền điện tử được mở rộng, nhu cầu tăng cường hiệu suất và bảo vệ sự riêng tư cũng sẽ tăng lên, đẩy mạnh yêu cầu cho các ứng dụng ZKP phức tạp hơn. Với việc các nhà phát triển tạo ra các ứng dụng và giao thức mới, ZKP sẽ đóng một vai trò then chốt trong việc thúc đẩy các hệ thống phi tập trung an toàn và hiệu quả. Những hệ thống này sẽ có thể xử lý các giao dịch quy mô lớn, đồng thời bảo vệ sự riêng tư của người dùng, đáp ứng được nhu cầu thay đổi liên tục của lĩnh vực tiền điện tử.
Để chứng minh các tính toán sử dụng ZKP, cần phải chuyển đổi tính toán từ chương trình cổ điển sang định dạng thân thiện với ZK. Có hai cách để làm điều này: sử dụng thư viện được viết bằng một ngôn ngữ hiện có, chẳng hạn như Arkworks (trong Rust), hoặc sử dụng ngôn ngữ đặc thù lĩnh vực (DSL), như Cairo hoặc Circom. Các hệ thống này có thể biên dịch thành các nguyên tố cần thiết để tạo ra bằng chứng. Càng phức tạp hành động, thời gian tạo bằng chứng càng lâu. Ngoài ra, một số hành động không thân thiện với ZK, đòi hỏi công việc bổ sung. Ví dụ, các hoạt động bit trong SHA hoặc Keccak có thể không thân thiện với ZKP, dẫn đến thời gian tạo bằng chứng tăng lên. Ngay cả đối với các hoạt động tương đối rẻ trên máy tính truyền thống cũng có thể xảy ra điều này. Sau khi chuyển đổi tính toán sang định dạng thân thiện với ZK, chọn một số đầu vào và gửi chúng đến hệ thống chứng minh, chẳng hạn như Groth16, PLONK, HyperPlonk, UltraPlonk, Sonic, Spartan và STARK. Tất cả các hệ thống này đều có cùng chức năng cơ bản, đó là chấp nhận tính toán thân thiện với ZK có đầu vào và tạo ra bằng chứng là đầu ra. Theo hệ thống chứng minh khác nhau, quá trình tạo bằng chứng có thể khác nhau, nhưng rào cản cuối cùng là tương tự.
Trong lĩnh vực ZKP, có hai tác vụ tính toán chính:
- Phép nhân của các vector số lớn, có thể là trường số hoặc phần tử nhóm. Trong trường hợp này, còn có hai loại phép nhân cụ thể: phép nhân có cơ số thay đổi và phép nhân đa lượng tuyến tính (MSM) với cơ sở cố định.
- Phép biến đổi số học (NTT) và phép nghịch đảo phép biến đổi số học. Tuy nhiên, cũng có các kỹ thuật có sẵn cho các hệ thống chứng thực không sử dụng NTT, như hệ thống HyperPlonk mới nhất.
Trong hệ thống tồn tại cả NTT và MSM, thời gian tạo chứng chỉ chiếm khoảng 60% là MSM, còn lại là NTT. Cả MSM và NTT đều đối mặt với thách thức về hiệu suất và có thể được giải quyết bằng cách:
- MSM có thể được thực thi trên nhiều luồng để hỗ trợ xử lý song song. Tuy nhiên, khi xử lý vector phần tử lớn, ví dụ 67 triệu phần tử, phép nhân vẫn có thể chậm và yêu cầu nhiều tài nguyên bộ nhớ. Ngoài ra, MSM cũng đối mặt với thách thức về khả năng mở rộng, có thể vẫn chậm ngay cả khi được phân tán rộng rãi.
- Việc xáo trộn dữ liệu thường xuyên trong quá trình thuật toán khiến NTT khó để phân tán trên các cụm tính toán và đòi hỏi lượng băng thông lớn khi thực thi trên phần cứng. Ngay cả khi các hoạt động phần cứng nhanh, điều này cũng có thể làm chậm tốc độ. Ví dụ, nếu bộ nhớ của chip phần cứng là 16GB hoặc ít hơn, việc thực thi NTT trên tập dữ liệu lớn 100GB sẽ đòi hỏi tải và gỡ bỏ dữ liệu qua mạng, điều này có thể làm giảm hiệu suất hoạt động.
ZPrize là một sáng kiến cộng đồng trong ngành công nghiệp blockchain, được tạo ra bởi hơn 32 đối tác và nhà tài trợ, họ đã đóng góp thời gian, tài nguyên và nỗ lực của mình để đảm bảo sự thành công của chương trình. Chương trình này cung cấp một loạt thử thách và dự án, khuyến khích người tham gia phát triển các giải pháp sáng tạo, thúc đẩy sự phát triển bền vững và giảm lượng khí thải carbon. Họ tự hào về việc đạt được hai mục tiêu này, đánh dấu sự tiến bộ đáng kể trong lĩnh vực mật mã ZK. Kết quả của ZPrize đã vượt xa dự đoán của họ. Đối với phần lớn các giải thưởng họ nhận được, giá trị đã tăng trung bình hơn năm lần so với giá trị cơ sở. Đáng chú ý, một số giải thưởng liên quan đến FPGA thiếu điểm chuẩn công khai, làm cho các mục này trở thành minh chứng công khai đầu tiên về việc triển khai thuật toán ở dạng nguồn mở. Dưới đây là một số thành tích đáng chú ý:
- Thời gian thực hiện nhân đa thức đa biến trên GPU (hơn 67 triệu phần tử) giảm từ 5,8 giây xuống còn 2,5 giây, giúp hỗ trợ các ứng dụng zkSNARKs phức tạp hơn.
- Việc triển khai hàm băm thân thiện với zero-knowledge Poseidon giảm một nửa số ràng buộc, giảm đáng kể chi phí tạo cây Merkle trong SNARK.
- Thời gian thực hiện nhân đa thức đa biến trên thiết bị di động Android (cho các vấn đề nhỏ hơn)
Các phương pháp kỹ thuật tăng tốc ZKP
Điểm chết của việc tạo chứng minh thường xuất hiện trong việc nhân hàng loạt vector lớn, bao gồm nhân đa thức trường hoặc nhóm, nhân đa số lượng scalar với cả biến số hoặc các cơ sở cố định, cũng như NTT và NTT ngược. Trong hệ thống mã hóa sử dụng đồng thời NTT và MSM, MSM đóng góp khoảng 70% thời gian tạo chứng minh trong khi NTT chiếm phần còn lại. Mặc dù MSM có thể được song song hóa, nhưng vẫn chậm và đòi hỏi nhiều tài nguyên bộ nhớ, thường tiêu tốn hầu hết tài nguyên bộ nhớ có sẵn trên thiết bị. Trong khi đó, NTT phụ thuộc nhiều vào việc trộn dữ liệu thường xuyên, điều này làm cho việc tăng tốc cho các cụm tính toán chạy trên các máy tính trở nên phức tạp hơn. Ngoài ra, NTT yêu cầu một lượng lớn băng thông để chạy trên phần cứng, vì việc tải và xóa dữ liệu qua mạng sẽ làm giảm tốc độ thực hiện, mặc dù các thao tác phần cứng chính thức rất nhanh. Tuy nhiên, có nhiều cách để cải thiện hiệu suất của MSM và NTT nhằm tối ưu hóa quy trình tạo bằng chứng.
MSM thường được triển khai bằng thuật toán Pippenger để giảm thiểu số lượng thao tác thêm nhóm. Phương pháp này có một cài đặt phần cứng đơn giản, bao gồm một đơn vị cộng nhóm và một bảng các thành phần cơ bản. Từ góc độ thiết kế hệ thống, MSM rất thân thiện với việc tăng tốc, vì các lý do sau:
- Bổ sung nhóm là một hoạt động tĩnh (không có luồng điều khiển phụ thuộc vào dữ liệu) với khả năng tính toán chuyên sâu và I/O tương đối nhỏ, khiến nó rất phù hợp với các kiến trúc có đường ống hoàn chỉnh. Điều này cho phép trình tăng tốc đạt được mức sử dụng phần cứng gần như 100%, so với mức sử dụng chỉ 20% trong các triển khai GPU tốt nhất. Nhiều thập kỷ nghiên cứu đã giúp tính năng bổ sung nhóm hoạt động ổn định, vì vậy tính năng này khó có thể bị thay thế trong vòng đời của bộ tăng tốc ASIC.
Điểm khó khăn của MSM được triển khai trên phần cứng song song lớn (chẳng hạn như GPU) với khả năng lập lịch trình toàn cầu tương đối yếu, có thể được giải quyết dễ dàng bằng cách thêm một bộ lập lịch trình phần cứng bổ sung vào máy gia tốc. Ví dụ: các bản cập nhật cho nhiều bảng được xử lý hiệu quả hơn theo cách này, tránh nguy cơ xung đột ghi.
Tóm lại, việc sử dụng phần cứng đặc biệt để tăng tốc MSM là rất có lợi. Tuy nhiên, vấn đề chính là hiện tại trên thị trường đang thiếu phần cứng như vậy. Cycis đã thiết kế một bộ tăng tốc MSM sử dụng FPGA của Xilinx, hiển thị hiệu suất hệ thống tốt nhất cho đến nay (khoảng 40ms MSM cho BN254 curve sau 2 ^ 26 lần MSM). Thật không may, chi phí cho việc mua chip FPGA của người dùng chuyên nghiệp cao hơn so với GPU được thiết kế cho người dùng thông thường. Ngoài ra, thời gian chậm xử lý của FPGA (FPGA là 14nm, GPU là 5nm) cũng là hai nhược điểm đáng kể, khiến lợi thế của bộ tăng tốc dựa trên FPGA bị triệt tiêu.
- NTT (Number-Theoretic Transform) được thực hiện thông qua một chuỗi các bộ xử lý cánh bướm nhiều lớp. Mặc dù việc triển khai NTT theo từng tầng theo cách được mô tả trong sách giáo khoa có thể trở thành chướng ngại vì sử dụng băng thông bộ nhớ (do truy cập giữa các dòng), tuy nhiên vấn đề này có thể được giải quyết bằng cách thực hiện đồng thời nhiều tầng và sắp xếp lại dữ liệu NTT phù hợp trong quá trình tính toán. Theo kinh nghiệm, việc truy cập bộ nhớ có thể được tái cấu trúc thành truy cập theo khối, với độ lớn khối khoảng bằng (kích thước bộ nhớ trên chip) / (căn bậc k của điểm NTT), trong đó k là một tham số điều chỉnh số lượng tầng. Với cách tiếp cận này, cả GPU và bộ tăng tốc đều có thể đạt được hiệu suất tuyệt vời.
- Việc tăng tốc độ bằng phần cứng có thể được thực hiện thông qua việc triển khai các thuật toán tối ưu trên các công nghệ phần cứng khác nhau như GPU, FPGA hoặc ASIC. Kết hợp cải tiến phần mềm và cài đặt thuật toán hiệu quả hơn để tận dụng tối đa tài nguyên hiện có như CPU và GPU, cùng với việc phát triển phần cứng tùy chỉnh và các thuật toán mới được tùy chỉnh cho cấu hình phần cứng cụ thể, có thể thúc đẩy tăng tốc độ phần cứng. Việc làm này có thể cải thiện hiệu suất của mạng blockchain hiện tại, đang bị hạn chế bởi khả năng tính toán và lưu trữ trên chuỗi và băng thông mạng.
Hiện tại và tương lai, đâu là phần cứng tốt nhất?
Để xác định công nghệ phần cứng tốt nhất để triển khai các kỹ thuật tăng tốc nói trên, chúng ta cần cân nhắc đến việc ZKP vẫn đang ở giai đoạn phát triển sớm. Do đó, mức độ tiêu chuẩn hóa trong việc lựa chọn các tham số hệ thống và hệ thống chứng minh, chẳng hạn như chiều rộng FFT hay kích thước bit của các phần tử, còn hạn chế. Ngoài ra, chúng ta còn cần xem xét hai yếu tố:
- Hiệu suất trên mỗi USD: Đây là chỉ số đánh giá bạn cần trả bao nhiêu tiền để đạt được hiệu suất phần cứng. Giá của FPGA và GPU cao cấp khá tương đương, điều này có nghĩa là FPGA cuối cùng sẽ đắt hơn hệ thống GPU khoảng 2,5 lần.
- Hiệu suất trên mỗi watt: Chỉ số này liên quan đến chi phí để duy trì phần cứng, về cơ bản là tiền điện. Ở chỉ số này, FPGA và GPU có mức độ tương đương.
Dựa trên hai chỉ số trên, liệu FPGA có thể vượt qua GPU hay không? Câu trả lời là có. Mặc dù một chip FPGA đơn lẻ không thể cạnh tranh với một card GPU đơn lẻ, nhưng hệ thống FPGA kết nối quy mô lớn có thể đánh bại hệ thống GPU kết nối quy mô lớn. Do giới hạn của khe cắm PCIe, một hệ thống GPU cao cấp chỉ có thể có tối đa 10 thẻ GPU. Tuy nhiên, hàng trăm chip FPGA có thể được kết nối với nhau thông qua kết nối mạng tùy chỉnh, có thể lập trình và có băng thông cao, từ đó đạt được hiệu suất vượt trội hơn so với hệ thống GPU. Hệ thống FPGA kết nối quy mô lớn của Cysic đã chứng minh điều này.
ZKP ASIC thì sao?
ASIC được xem là phần cứng lý tưởng cho ZKP. Tuy nhiên, việc xây dựng ASIC cho ZKP gặp ba vấn đề chính.
- Khả năng lập trình: Với logic của ZKP, ASIC chỉ có thể được lập trình một lần, điều này yêu cầu phải xây dựng lại toàn bộ hệ thống từ đầu nếu có sửa đổi. Ngược lại, FPGA hoặc GPU có thể được lập trình lại nhiều lần, điều này cho phép sử dụng cùng một phần cứng trong các dự án khác nhau với các hệ thống chứng thực khác nhau hoặc với các cập nhật tiềm năng. So với ASIC, tính năng này làm cho FPGA trở thành một giải pháp thay thế linh hoạt hơn.
- Chi phí cao: Xây dựng ASIC là một trò chơi tốn kém vốn. Thiết kế một chip ASIC 28nm hoàn toàn 28nm cần 20 kỹ sư và chi phí khoảng 8 triệu USD, trong khi thiết kế một chip ASIC 5nm/4nm hoàn toàn cần 30 kỹ sư và chi phí khoảng 25 triệu USD.
- Thời gian ra mắt: Thiết kế, sản xuất và triển khai ASIC thường mất từ 12 đến 18 tháng hoặc thậm chí lâu hơn, điều này lâu hơn nhiều so với FPGA/GPU.
Để giải quyết vấn đề đầu tiên, có thể sử dụng một khung lược trong phần cứng được gọi là Kiến trúc Tập lệnh (Instruction-Set Architecture, ISA). ISA là một khung lược và thiết kế trừu tượng của hệ thống phần cứng, chẳng hạn như CPU và bộ tăng tốc phần cứng. Nó đại diện cho một tập hợp các lệnh và thao tác cơ bản mà bộ xử lý có thể thực hiện. Các lệnh này bao gồm các phép tính số học, chuyển dữ liệu, phép tính logic, luồng điều khiển và các chức năng cấp thấp khác. Bằng cách sử dụng ISA, việc tăng tốc phần cứng ZKP có thể được chia thành ba lớp:
- Lớp lược đồ: Nhiều hệ thống bằng chứng ZK nằm trong lớp này, chẳng hạn như Groth16 và Plonk. Lớp trên cùng là lớp hạt nhân để hoàn thành việc tính toán.
- Lớp lõi: Nhiệm vụ của lớp lõi là tính toán các chức năng khác nhau được sử dụng bởi lớp trên. Các chức năng bao gồm phép nhân đa hướng, vận chuyển lý thuyết số, đánh giá đa thức và các hàm băm khác nhau. Dựa vào một lớp hướng dẫn để thực hiện tính toán.
- Tầng hướng dẫn: Tầng này là ISA, bao gồm các hoạt động cơ bản nhất, bao gồm các phép toán số học, di chuyển dữ liệu, hoạt động logic và luồng điều khiển.
Cấu trúc trên được thể hiện trong hình bên dưới:

ISA này cung cấp một giải pháp hỗ trợ nhiều hệ thống ZK và cập nhật tiềm năng. AZK (ASIC cho ZK) có thể được lập trình bằng ZK-ISA để hỗ trợ tính đa chức năng cho các hệ thống ZK.
Các vấn đề khác liên quan đến việc xây dựng ASIC đều được quyết định bởi thị trường. Tổng giá trị ước tính của các dự án liên quan đến ZK hiện nay là hơn 10 tỷ USD. Với việc chi khoảng 10 triệu USD để xây dựng ASIC nhằm tăng cường hiệu quả của việc tạo chứng thư ZK là đáng giá. Thời gian đưa sản phẩm lên kệ là một vấn đề tất yếu trong thiết kế ASIC. May mắn thay, vấn đề về chuỗi cung ứng của ASIC hiện nay đã tốt hơn rất nhiều so với trước đây. Cách duy nhất để giải quyết vấn đề này là bắt đầu sớm và tận dụng hết tiềm năng của chuỗi cung ứng. Khi ASIC được tung ra thị trường, nó có thể hủy hoại bất kỳ hình thức phần cứng ZK nào khác.
Lời kết
ZKP có tiềm năng thúc đẩy hệ thống thanh toán mở rộng và riêng tư, cùng với nền tảng hợp đồng thông minh, đồng thời tăng đáng kể tính khả dụng và an toàn của công nghệ blockchain. ZKP thật sự đã giải quyết các chi phí quản lý từng cản trở việc ứng dụng trong quá khứ. Những yếu tố như chi phí tính toán và xác minh, cũng như sự phức tạp trong việc triển khai hệ thống dựa trên ZKP, có thể gây ra rào cản đối với nhiều nhà phát triển. Tuy nhiên, các nghiên cứu và phát triển đang được tiến hành trong lĩnh vực ZKP để giải quyết những thách thức này gi đơn giản hóa việc triển khai và ứng dụng thực tiễn của công nghệ này.
Với những ưu điểm về tính linh hoạt, dễ triển khai và hiệu suất dự kiến của GPU, chúng tôi tin rằng các công ty tập trung vào giải pháp GPU có khả năng phát triển mạnh mẽ trong những tháng tới trước khi ASIC xuất hiện. Nếu ASIC đạt được quy mô và ổn định của nó, chúng có thể trở thành phần cứng tối ưu cho các thuật toán tối ưu. Do đó, ZKP có thể đóng một vai trò quan trọng trong các hệ thống blockchain ngày càng tiên tiến và an toàn hơn trong tương lai.