Mở Rộng Kỹ Thuật Phát Triển Zero-Knowledge Proof Cùng Hướng Dẫn Này

Mùa hè năm ngoái, Vitalik đã viết một bài đăng trên blog phác thảo các loại zkEVM (Máy ảo Ethereum không có kiến ​​thức) khác nhau. Vitalik xác định và đánh đổi hiệu suất và khả năng tương thích.

Mở Rộng Kỹ Thuật Phát Triển Zero-Knowledge Proof Cùng Hướng Dẫn Này

Đây là một phương pháp phỏng đoán rất hữu ích để phân biệt các phương pháp hỗ trợ zkEVM. Tuy nhiên, zkEVM là tập hợp con của tất cả các cách có thể để xây dựng các ứng dụng không cần kiến ​​thức. Đối với những lập trình viên muốn tận dụng các đặc tính độc đáo của tính toán zk, cụ thể là tính đơn giản, không có kiến ​​thức và tính chính xác, zkEVM có thể không phải là lựa chọn tốt nhất. Bằng cách xây dựng toàn bộ bộ công cụ phát triển, bài viết này hy vọng sẽ cung cấp hướng dẫn giúp các nhà phát triển chọn ngăn xếp zk thích hợp trong quá trình ra quyết định.

Những điểm chính:

  • Tính năng mới sử dụng bằng chứng không có kiến ​​thức (ZKP) để cho phép tương tác an toàn và riêng tư.
  • Các nhà phát triển có thể tận dụng ZKP cho nhiều mục đích sử dụng khác nhau, bao gồm xác minh danh tính và ủy quyền giao dịch.
  • Việc tích hợp công nghệ ZKP thể hiện một bước quan trọng hướng tới việc tạo ra một hệ sinh thái blockchain đáng tin cậy và dễ tiếp cận hơn.

Sức mạnh của sự phức tạp trừu tượng

Trong một hoặc hai năm qua, các công cụ zk đã được cải thiện rất nhiều. Các nhà phát triển phần mềm thông thường có thể tận dụng các đặc tính mạnh mẽ của zk mà không cần hiểu biết sâu sắc về toán học và kỹ thuật cơ bản. Mặt khác, ngày càng có nhiều công cụ dành cho người dùng nâng cao, mang lại cho các chuyên gia zk khả năng kiểm soát cực kỳ chi tiết đối với ngăn xếp zk.

Phần mềm hiện đại được xây dựng trên vô số lớp trừu tượng để tối đa hóa năng suất của các chuyên gia. Tính trừu tượng trong kỹ thuật có nhiều ưu điểm mang tính trực quan – các nhà phát triển web không cần hiểu biết sâu sắc về cách hoạt động của hệ điều hành.

Chìa khóa để xây dựng các lớp trừu tượng tốt, có thể tái sử dụng là gói gọn sự phức tạp của một lớp và sau đó cung cấp các giao diện đơn giản nhưng mang tính biểu cảm cho các lớp cao hơn trong ngăn xếp. Thực hiện đúng, điều này cho phép các nhà phát triển thuộc các lĩnh vực chuyên môn và kiến ​​thức khác nhau xây dựng các công cụ hữu ích trên nhiều phương diện.

Không có gì ngạc nhiên khi những nguyên tắc này cũng áp dụng cho các hệ thống zk và các lớp trừu tượng này đang trở nên đủ hoàn thiện để người mới sử dụng zk có thể bắt đầu sử dụng chúng và xây dựng các ứng dụng ngay hôm nay.

Mở khóa các kỹ thuật phát triển bằng chứng không có kiến ​​thức nâng cao với hướng dẫn toàn diện này
ngăn xếp zk và một số ví dụ về công cụ/kỹ thuật cho mỗi lớp

Phát triển zk cấp thấp

Arkworks-rs

Arkworks-rs là một hệ sinh thái gồm các thư viện Rust cung cấp khả năng triển khai hiệu quả và an toàn cho các thành phần phụ của ứng dụng zkSNARK. Arkworks cung cấp cho các nhà phát triển các giao diện cần thiết để tùy chỉnh ngăn xếp phần mềm của các ứng dụng zk mà không cần phải triển khai lại tính phổ biến với các thư viện hiện có khác.

Trước Arkworks, cách duy nhất để tạo ứng dụng zk mới là xây dựng mọi thứ từ đầu. Ưu điểm chính của Arkworks-rs là mức độ linh hoạt, giảm việc tái thiết kế và giảm nỗ lực kiểm toán so với các công cụ tích hợp theo chiều dọc tùy chỉnh. Các đường giao diện hợp lý giữa các thành phần Arkworks cho phép tốc độ nâng cấp có thể giữ cho ngăn xếp phù hợp khi công nghệ zk đổi mới nhanh chóng mà không buộc nhóm phải xây dựng lại mọi thứ từ đầu.

Lợi thế

  • Tính linh hoạt thông qua tính mô-đun
  • giảm sự trùng lặp mã
  • Giảm chi phí kỹ thuật
  • Giảm diện tích bề mặt kiểm tra/lỗi
  • Nâng cấp bất kỳ thành phần nào mà không cần tái cấu trúc lớn
  • Dễ dàng thử nghiệm các nguyên thủy mới trong môi trường zk đang phát triển nhanh chóng.

Sự thiếu sót

  • Yêu cầu kiến ​​thức chuyên sâu về toàn bộ phần mềm
  • Nếu không hiểu đúng, kiểm soát quá nhiều có thể dẫn đến súng ngắn
  • Kiểm soát chi tiết đòi hỏi chuyên môn ở tất cả các cấp độ của ngăn xếp
  • Arkworks cung cấp một số giá trị mặc định hợp lý.

Ngôn ngữ cụ thể của miền zk (DSL)

Để tạo bằng chứng về một số tính toán, trước tiên, tính toán này phải được thể hiện dưới dạng mà hệ thống zkSNARK có thể hiểu được. Một số ngôn ngữ dành riêng cho miền đã tạo ra các ngôn ngữ lập trình cho phép các nhà phát triển ứng dụng thể hiện tính toán của họ theo cách này. Những ngôn ngữ này bao gồm Aztec Noir, Starknet’s Cairo, Circom, ZoKrates và Aleo’s Leo, cùng một số ngôn ngữ khác. Hệ thống chứng minh cơ bản và các chi tiết toán học thường không được các nhà phát triển ứng dụng tiết lộ.

Kinh nghiệm của nhà phát triển

Các nhà phát triển zkApps phải thành thạo viết chương trình bằng các ngôn ngữ dành riêng cho miền. Một số ngôn ngữ này trông rất giống các ngôn ngữ lập trình quen thuộc, trong khi những ngôn ngữ khác có thể khá khó học. Hãy phân tích một vài trong số chúng.

Cairo – Starkware DSL cần thiết để xây dựng các ứng dụng trên Starknet. Được biên dịch sang ngôn ngữ hợp ngữ dành riêng cho Cairo, có thể được giải thích bởi Cairo zkVM.

Xem Thêm  Meta Pool là gì? Thông tin chi tiết về dự án và token META

ZoKrates – ZoKrates là bộ công cụ đáp ứng nhu cầu chung của SNARK, bao gồm ngôn ngữ cấp cao để viết mạch. ZoKrates cũng có một số tính linh hoạt về đường cong, sơ đồ chứng minh và phần phụ trợ, cho phép các nhà phát triển trao đổi nóng thông qua các tham số CLI đơn giản.

Circom – Circom là ngôn ngữ chuyên dụng để xây dựng các mạch điện. Hiện tại, nó là ngôn ngữ thực tế để sản xuất mạch điện. Ngôn ngữ này không đặc biệt tiện lợi, khiến nhà phát triển nhận thức sâu sắc rằng một mạch điện đang được viết.

Leo – Leo được phát triển làm ngôn ngữ của chuỗi khối Aleo. Leo có một số cú pháp giống Rust dành riêng cho việc chuyển đổi trạng thái bên trong chuỗi khối.

Noir – Cú pháp lấy cảm hứng từ Rust. Được xây dựng xung quanh IR chứ không phải ngôn ngữ, điều đó có nghĩa là nó có thể có giao diện người dùng tùy ý.

Mở khóa các kỹ thuật phát triển bằng chứng không có kiến ​​thức nâng cao với hướng dẫn toàn diện này

Cho ai

Bất kỳ nhà phát triển ứng dụng nào muốn tận dụng các đặc tính độc đáo của zk trong ứng dụng của họ.

Một số ngôn ngữ này đã được thử nghiệm trên chiến trường với hàng tỷ đô la chảy vào các chuỗi như ZCash và Starknet. Mặc dù một số dự án mà chúng ta sẽ thảo luận vẫn chưa hoàn toàn sẵn sàng để sản xuất, nhưng việc viết mạch bằng một trong những ngôn ngữ này cho đến nay vẫn là chiến lược tốt nhất trừ khi bạn cần khả năng kiểm soát tốt hơn mà bộ công cụ như Arkworks cung cấp.

Lợi thế

  • Người dùng không cần phải hiểu chi tiết zk cơ bản
  • Với một số kinh nghiệm sản xuất, bạn có thể sử dụng nó ngay hôm nay
  • Có thể xác minh trên chuỗi
  • Hệ sinh thái là bất khả tri.

Sự thiếu sót

  • Người dùng cần tìm hiểu DSL mới
  • Công cụ và hỗ trợ xung quanh các ngôn ngữ này được giữ kín
  • Có rất ít hoặc không có quyền kiểm soát đối với ngăn xếp bằng chứng cơ bản (hiện tại).

zkEVM

Mục tiêu chính của zkEVM là thực hiện các chuyển đổi trạng thái Ethereum và chứng minh tính hợp lệ của chúng bằng cách sử dụng các bằng chứng ngắn gọn về tính chính xác không có kiến ​​thức. Như đã đề cập trong bài viết của Vitalik, có nhiều cách để làm điều này, với những khác biệt nhỏ và sự đánh đổi tương ứng.

Sự khác biệt chính về mặt kỹ thuật giữa tất cả các phương pháp này là ở chỗ chính xác trong ngăn xếp ngôn ngữ, phép tính được chuyển thành dạng có thể được sử dụng trong hệ thống chứng minh (tính thẩm mỹ). Trong một số zkEVM, điều này xảy ra ở ngôn ngữ cấp cao (Solidity, Vyper, Yul), trong khi những ngôn ngữ khác cố gắng chứng minh EVM đến tận cấp độ opcode. Sự cân bằng giữa các phương pháp này được trình bày chi tiết trong bài viết của Vitalik, nhưng tôi sẽ tóm tắt chúng trong một câu. Số chuyển đổi/thuật toán xảy ra trên ngăn xếp càng thấp thì hiệu suất bị phạt càng lớn.

Mở khóa các kỹ thuật phát triển bằng chứng không có kiến ​​thức nâng cao với hướng dẫn toàn diện này

Chi phí vận hành cao

Thách thức chính trong việc tạo bằng chứng cho máy ảo là kích thước của mạch tăng tỷ lệ thuận với kích thước của tất cả các lệnh có thể có cho mỗi lệnh được thực thi. Điều này là do mạch không biết lệnh nào sẽ được thực thi trong mỗi chương trình nên nó cần hỗ trợ tất cả các lệnh đó.

Mở khóa các kỹ thuật phát triển bằng chứng không có kiến ​​thức nâng cao với hướng dẫn toàn diện này

Trong các mạch đa năng, chi phí của mỗi lệnh được thực hiện tỷ lệ thuận với tổng của tất cả các lệnh được hỗ trợ.

Điều này có nghĩa trong thực tế là bạn phải trả (chi phí thực hiện) cho lệnh đắt nhất, ngay cả khi bạn chỉ thực hiện lệnh đơn giản nhất. Điều này dẫn đến sự cân bằng trực tiếp giữa tính tổng quát và hiệu suất – khi bạn thêm nhiều hướng dẫn hơn cho tính tổng quát, bạn phải trả tiền cho mỗi hướng dẫn bạn chứng minh! Đây là vấn đề cơ bản với các mạch có mục đích chung.

Nhưng với những phát triển mới trong các kỹ thuật như IVC (Máy tính có thể xác minh tăng dần), hạn chế này có thể được cải thiện bằng cách chia tính toán thành các phần nhỏ hơn, mỗi phần có các mạch con chuyên dụng, nhỏ hơn.

Việc triển khai zkEVM ngày nay sử dụng các chiến lược khác nhau để giảm thiểu vấn đề này…ví dụ: zkSync loại bỏ các hoạt động tốn kém hơn (chủ yếu là các hoạt động biên dịch trước mật mã như hàm băm và một số hoạt động khác).

Mở khóa các kỹ thuật phát triển bằng chứng không có kiến ​​thức nâng cao với hướng dẫn toàn diện này

Khách hàng lý tưởng cho zkEVM là các ứng dụng hợp đồng thông minh cần có mức giá rẻ hơn so với giao dịch trên L1 Ethereum. Những nhà phát triển này không nhất thiết phải có chuyên môn hoặc băng thông để viết ứng dụng zk từ đầu. Do đó, tốt nhất nên viết ứng dụng bằng ngôn ngữ cấp cao hơn quen thuộc, chẳng hạn như Solidity.

Nhiều nhóm phát triển

Mở rộng quy mô Ethereum hiện là ứng dụng có nhu cầu cao nhất về công nghệ zk.

zkEVM là một giải pháp mở rộng quy mô Ethereum giúp giảm bớt tình trạng tắc nghẽn đang hạn chế các nhà phát triển dApp L1 một cách dễ dàng.

Kinh nghiệm của nhà phát triển

Mục tiêu của zkEVM là hỗ trợ trải nghiệm của nhà phát triển gần nhất có thể với sự phát triển Ethereum hiện tại. Hỗ trợ đầy đủ cho Solidity có nghĩa là các nhóm không phải xây dựng và duy trì nhiều cơ sở mã. Điều này có phần không thực tế vì zkEVM cần đánh đổi một số khả năng tương thích để có thể tạo ra bằng chứng có kích thước hợp lý trong một khoảng thời gian hợp lý.

zkSync và cuộn

Sự khác biệt chính giữa zkSync và Scroll là ở đâu/khi chúng thực hiện các phép tính số học trên ngăn xếp – tức là ở đó chúng chuyển từ cấu trúc EVM thông thường sang biểu diễn thân thiện với SNARK. Đối với zkSync, điều này xảy ra khi họ chuyển đổi mã byte YUL thành tập lệnh zk tùy chỉnh của riêng họ. Đối với Scroll, điều này xảy ra ở cuối, khi dấu vết thực thi thực tế được tạo bằng các mã hoạt động EVM thực tế.

Xem Thêm  Đế chế AAA Imperium Super Reverse đầu tiên của Avalanche đã đóng thành công khoản tài trợ hạt giống 2,1 triệu đô la

Vì vậy, với zkSync, mọi thứ đều giống như tương tác với EVM cho đến khi mã byte zk được tạo. Với Scroll, mọi thứ đều giống nhau cho đến khi mã byte thực tế được thực thi. Đây là một sự khác biệt tinh tế đánh đổi hiệu suất để được hỗ trợ. Ví dụ: zkSync sẽ không hỗ trợ các công cụ mã byte EVM như trình gỡ lỗi sẵn có vì đây là một mã byte hoàn toàn khác. Mặc dù Scroll khó có được hiệu suất tốt từ tập lệnh nhưng điều này không được thiết kế cho zk. Cả hai chiến lược đều có ưu và nhược điểm, và cuối cùng có nhiều yếu tố ngoại sinh có thể ảnh hưởng đến thành công tương đối của chúng.

Trình biên dịch mạch zkLLVM

Như đã thảo luận chi tiết, có vô số lựa chọn khác nhau để phát triển ứng dụng zk, tất cả đều có những điểm cân bằng riêng. Biểu đồ này sẽ giúp tóm tắt ma trận quyết định này để chọn công cụ tốt nhất cho công việc dựa trên trình độ chuyên môn zk và nhu cầu hiệu suất của bạn. Đây không phải là danh sách đầy đủ và sẽ được cập nhật khi zk phát triển.

zkLLVM được thiết kế như một phần mở rộng của cơ sở hạ tầng LLVM hiện có, một chuỗi công cụ tiêu chuẩn công nghiệp hỗ trợ nhiều ngôn ngữ cấp cao như Rust, C, C++, v.v.

Làm thế nào để chạy

Mở khóa các kỹ thuật phát triển bằng chứng không có kiến ​​thức nâng cao với hướng dẫn toàn diện này

Người dùng muốn chứng minh một số phép tính có thể chỉ cần thực hiện nó trong C++. zkLLVM lấy mã nguồn cấp cao được hỗ trợ bởi trình biên dịch clang đã sửa đổi (hiện tại là C++) và tạo ra một số biểu diễn trung gian của mạch. Tại thời điểm này, mạch đã sẵn sàng để xác minh, nhưng người dùng có thể muốn xác minh mạch dựa trên một số đầu vào động.

Để xử lý các đầu vào động, zkLLVM có một thành phần bổ sung được gọi là bộ cấp phát, tạo ra một bảng phân bổ chứa tất cả các đầu vào và nhân chứng đã được xử lý trước đầy đủ và sẵn sàng được chứng minh cùng với mạch.

Hai thành phần này được yêu cầu để tạo ra bằng chứng. Về lý thuyết, người dùng có thể tự tạo ra bằng chứng, nhưng vì đây là một nhiệm vụ tính toán hơi chuyên biệt nên người khác có thể phải tốn phần cứng để thực hiện việc đó. Đối với cơ chế phát hiện đối tác này, =nil; Tổ chức cũng xây dựng một “thị trường bằng chứng” nơi những người chứng minh cạnh tranh để chứng minh tính toán cho những người dùng trả tiền cho họ. Động lực của thị trường tự do này sẽ giúp người chứng minh tối ưu hóa các nhiệm vụ chứng minh có giá trị nhất.

Cân nhắc những ưu và nhược điểm

Vì mỗi nhiệm vụ tính toán cần chứng minh là duy nhất và tạo ra các mạch khác nhau nên số lượng mạch mà người chứng minh cần có khả năng xử lý là vô hạn. Tính tổng quát bắt buộc này làm cho việc tối ưu hóa các mạch riêng lẻ trở nên khó khăn. Sự ra đời của thị trường chứng minh cho phép chuyên môn hóa các mạch điện mà thị trường cho là có giá trị. Nếu không có thị trường này, sẽ rất khó thuyết phục người xác minh tối ưu hóa mạch này do vấn đề khởi động nguội tự nhiên này.

Một sự cân bằng khác là sự trừu tượng hóa cổ điển so với sự kiểm soát. Những người dùng sẵn sàng chấp nhận giao diện dễ sử dụng này đang nhường lại quyền kiểm soát các nguyên tắc mã hóa cơ bản. Đối với nhiều người dùng, đây là một sự đánh đổi rất hợp lý, vì tốt hơn hết bạn nên để chuyên gia mật mã đưa ra những quyết định này cho bạn.

Lợi thế

Người dùng có thể viết mã bằng ngôn ngữ cấp cao quen thuộc
Tất cả các cấu trúc bên trong zk đều được trừu tượng hóa và không bị ảnh hưởng bởi người dùng
Không dựa vào các mạch “máy ảo” cụ thể để bổ sung thêm chi phí.

Sự thiếu sót

Mỗi chương trình có một mạch khác nhau. Khó tối ưu hóa. (chứng tỏ thị trường phần nào giải quyết được vấn đề này)
Việc hoán đổi/nâng cấp thư viện zk nội bộ không phải là chuyện nhỏ (cần phải fork).

zkVM

zkVM mô tả một siêu bộ của tất cả các máy ảo zk, trong khi zkEVM là một loại zkVM cụ thể xứng đáng có một chủ đề riêng do mức độ phổ biến của nó ngày nay. Ngoài các máy ảo tiền điện tử tùy chỉnh, một số dự án khác đang nỗ lực xây dựng zkVM dựa trên ISA tổng quát hơn.

Thay vì chứng nhận EVM, hệ thống có thể chứng nhận kiến ​​trúc tập lệnh (ISA) khác, chẳng hạn như RISC-V hoặc WASM, trong VM mới. Hai dự án hoạt động trên các zkVM có mục đích chung này là RISC Zero và zkWASM.

Chúng ta hãy đi sâu vào RISC Zero tại đây để chứng minh cách thức hoạt động của chiến lược này và một số ưu điểm/nhược điểm của nó.

Không có rủi ro

hình ảnh 1839

RISC Zero có thể chứng thực mọi tính toán được thực hiện trên kiến ​​trúc RISC-V. RISC-V là một tiêu chuẩn kiến ​​trúc tập lệnh mã nguồn mở (ISA) ngày càng phổ biến. Ý tưởng của RISC (Máy tính tập lệnh rút gọn) là xây dựng một tập lệnh cực kỳ đơn giản với độ phức tạp tối thiểu. Điều này có nghĩa là các nhà phát triển ở cấp cao hơn trong ngăn xếp sẽ phải chịu tải lớn hơn khi triển khai các hướng dẫn sử dụng kiến ​​trúc này đồng thời làm cho việc triển khai phần cứng trở nên đơn giản hơn.

Triết lý này cũng áp dụng cho điện toán nói chung và chip ARM đã và đang tận dụng các tập lệnh kiểu RISC và đang bắt đầu thống trị thị trường chip di động. Hóa ra các tập lệnh đơn giản hơn cũng tiết kiệm năng lượng và diện tích chip hơn.

Sự tương tự này áp dụng khá tốt cho hiệu quả của việc tạo ra bằng chứng zk. Như đã thảo luận trước đó, khi chứng minh quỹ đạo thực hiện của zk, bạn phải trả tổng chi phí của tất cả các hướng dẫn cho từng mục trong quỹ đạo, do đó, đơn giản hơn và tổng số hướng dẫn ít hơn sẽ tốt hơn.

Xem Thêm  Cập nhật PancakeSwap là gì? Hướng dẫn sử dụng PancakeSwap từ A-Z

Cách làm việc

Từ quan điểm của nhà phát triển, việc sử dụng RISC Zero để xử lý các bằng chứng zk cũng giống như sử dụng các hàm AWS Lambda để xử lý kiến ​​trúc máy chủ phụ trợ. Các nhà phát triển tương tác với RISC Zero hoặc AWS Lambda chỉ bằng cách viết mã và dịch vụ sẽ xử lý mọi vấn đề phức tạp ở phần phụ trợ.

Đối với RISC Zero, các nhà phát triển viết Rust hoặc C++ (cuối cùng là bất kỳ thứ gì nhắm mục tiêu RISC-V). Sau đó, hệ thống chấp nhận tệp ELF được tạo trong quá trình biên dịch và sử dụng nó làm mã đầu vào của mạch máy ảo. Các nhà phát triển chỉ cần gọi bằng chứng, đối tượng này trả về một đối tượng biên nhận (bằng chứng zk chứa dấu vết thực thi) và bất kỳ ai cũng có thể gọi `xác minh’ từ bất kỳ đâu. Theo quan điểm của nhà phát triển, không cần thiết phải hiểu cách thức hoạt động của zk, hệ thống cơ bản sẽ xử lý tất cả những vấn đề phức tạp này.

Để hỗ trợ một giao diện chung như vậy, cần có rất nhiều chi phí (về kích thước bằng chứng và tốc độ tạo).

Cần có những cải tiến đáng kể đối với các kỹ thuật tạo bằng chứng để có thể hỗ trợ rộng rãi cho các thư viện hiện có.

Mạch tái sử dụng được xây dựng sẵn

Đối với một số mạch cơ bản và có thể tái sử dụng, đặc biệt hữu ích cho các ứng dụng blockchain hoặc nơi khác, nhóm có thể đã xây dựng và tối ưu hóa các mạch này cho bạn. Bạn chỉ cần cung cấp đầu vào cho trường hợp sử dụng cụ thể của mình. Ví dụ: Bằng chứng bao gồm Merkle là thứ thường cần thiết trong các ứng dụng tiền điện tử (danh sách airdrop, Tornado Cash, v.v.). Với tư cách là nhà phát triển ứng dụng, bạn luôn có thể sử dụng lại các hợp đồng đã được thử nghiệm trong trận chiến này và chỉ cần sửa đổi một số lớp trên cùng để tạo một ứng dụng duy nhất.

Ví dụ: các mạch của Tornado Cash có thể được tái sử dụng cho ứng dụng airdrop riêng tư hoặc ứng dụng bỏ phiếu riêng tư. Manta và Semaphore đang xây dựng một bộ công cụ hoàn chỉnh, bao gồm các tiện ích mạch có mục đích chung như thế này, có thể được sử dụng trong các hợp đồng Solidity mà không cần hoặc có rất ít kiến ​​thức về toán học mặt trăng zk cơ bản.

Như đã thảo luận chi tiết, có vô số lựa chọn khác nhau để phát triển ứng dụng zk, tất cả đều có những điểm cân bằng riêng.

Biểu đồ này sẽ giúp tóm tắt ma trận quyết định này để chọn công cụ tốt nhất cho công việc dựa trên trình độ chuyên môn zk và nhu cầu hiệu suất của bạn. Đây không phải là danh sách đầy đủ và sẽ được cập nhật khi zk phát triển.

Hướng dẫn dành cho nhà phát triển ứng dụng zkGalaxy

Thư viện Snark cấp thấp

Cảnh áp dụng

  • Yêu cầu kiểm soát chi tiết trên toàn bộ ngăn xếp bằng chứng
  • Tránh xây dựng lại các thành phần phổ biến
  • Hãy thử chứng minh sự kết hợp khác nhau của sơ đồ, đường cong và các nguyên hàm cấp thấp khác.

Không áp dụng

  • Người mới đang tìm kiếm giao diện nâng cao.

Công cụ tùy chọn

zk DSL

  • Cảnh áp dụng
  • Muốn sử dụng một số ngôn ngữ đã được thử nghiệm và kiểm tra
  • Yêu cầu kích thước mạch tối thiểu, sẵn sàng từ bỏ sự trừu tượng

Không áp dụng

Yêu cầu kiểm soát chi tiết đối với các chương trình phụ trợ bằng chứng (hiện tại, các chương trình phụ trợ có thể được hoán đổi cho một số DSL)

Công cụ tùy chọn

  • rạp xiếc
  • Aztec Noir
  • Cairo
  • ZoKrates
  • Sư Tử

trình biên dịch zk

Cảnh áp dụng

  • Không muốn chịu chi phí cho mạch điện đa năng
  • Muốn viết mạch bằng ngôn ngữ quen thuộc
  • Yêu cầu mạch tùy biến cao

Không áp dụng

  • Muốn kiểm soát các nguyên tắc mã hóa cơ bản
  • Yêu cầu một mạch đã được tối ưu hóa cao
  • Công cụ tùy chọn
  • không có zkLLVM

ZkEVM

Cảnh áp dụng

  • Có một dApp đã chạy trên EVM
  • Cần đưa ra những ưu đãi rẻ hơn cho người dùng
  • Muốn giảm thiểu nỗ lực cần thiết để triển khai sang chuỗi mới
  • Chỉ quan tâm đến sự đơn giản của zk (nén)

Không áp dụng

  • Yêu cầu tương đương EVM hoàn hảo
  • Thuộc tính bảo mật yêu cầu zk
  • Có trường hợp sử dụng không phải blockchain

Công cụ tùy chọn

  • zksync2.0
  • Đa giác zkEVM
  • Cuộn
  • Starknet

zkVM

Cảnh áp dụng

  • Muốn viết mã bằng ngôn ngữ cấp cao
  • Cần chứng minh tính đúng đắn của việc thực hiện
  • Cần ẩn một số thông tin đầu vào cho việc thực thi này khỏi trình xác minh
  • Ít hoặc không có chuyên môn về zk

Không áp dụng

  • Trong môi trường có độ trễ rất thấp (vẫn chậm)
  • Có một chương trình lớn (hiện tại)

Công cụ tùy chọn

Mạch tái sử dụng được xây dựng sẵn

Cảnh áp dụng

  • Có một ứng dụng hợp đồng thông minh dựa trên các khối xây dựng zk phổ biến, chẳng hạn như bao gồm Merkle.
  • Có rất ít hoặc không có kiến ​​thức chuyên môn về những gì nằm sâu trong zk

Không áp dụng

  • Có nhu cầu chuyên môn cao
  • Trường hợp sử dụng không được hỗ trợ bởi các mạch dựng sẵn
  • Công cụ tùy chọn
  • Mạng Manta
  • Semaphore

Phần kết luận

zk là công nghệ tiên tiến nhất và việc xây dựng nó đòi hỏi sự hiểu biết sâu sắc về toán học, mật mã, khoa học máy tính và kỹ thuật phần cứng. Tuy nhiên, với ngày càng có nhiều lớp trừu tượng xuất hiện mỗi ngày, các nhà phát triển ứng dụng không cần bằng tiến sĩ. để tận dụng sức mạnh của zk. Theo thời gian, bằng cách tối ưu hóa tất cả các cấp của ngăn xếp, các ràng buộc về thời gian kiểm chứng sẽ dần dần được dỡ bỏ và chúng ta có thể thấy các công cụ đơn giản hơn dành cho nhà phát triển trung bình.

 

--------

Hệ sinh thái các cộng đồng của BD Ventures: https://linktr.ee/bdventures

Điểm đánh giá post