Cảnh báo rủi ro: Đề phòng huy động vốn bất hợp pháp dưới danh nghĩa 'tiền điện tử' và 'blockchain'. — Năm cơ quan bao gồm Ủy ban Giám sát Ngân hàng và Bảo hiểm
Tìm kiếm
Đăng nhập
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
Xem thị trường
Các nhà phát triển ZK phải đọc: các công cụ tùy chọn từ cơ bản đến nâng cao
DAOrayaki
特邀专栏作者
2023-03-04 04:00
Bài viết này có khoảng 5392 từ, đọc toàn bộ bài viết mất khoảng 8 phú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 một hướng dẫn để giúp các nhà phát triển chọn ngăn xếp ZK phù hợp trong quá trình ra quyết định.

Bản gốc: Hướng dẫn dành cho nhà phát triển về zkGalaxy

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 khác nhau (Máy ảo Ethereum không kiến ​​thức). Vitalik xác định và đánh đổi hiệu suất và khả năng tương thích.

Đây là một kinh nghiệm rất hữu ích để phân biệt các phương thức hỗ trợ zkEVM. Tuy nhiên, zkEVM là một 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 kiến ​​thức. Đối với những lập trình viên muốn tận dụng các thuộc tính độc đáo của tính toán zk, cụ thể là tính đơn giản, không cần 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 làm sáng tỏ 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 phù hợp trong quá trình ra quyết định.

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ô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 sâu về toán học và kỹ thuật cơ bản khó khăn. Mặt khác, đã có sự phổ biến của các công cụ dành cho người dùng nâng cao, mang lại cho các chuyên gia zk quyền 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 hơi trực quan -- các nhà phát triển web không cần hiểu sâu về cách hoạt động của một 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 độ 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 biểu cảm cho các lớp cao hơn trong ngăn xếp. Thực hiện đúng cách, điều này cho phép các nhà phát triển 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 toàn bộ ngăn xếp.

Mô tả hình ảnh

Một số ví dụ về công cụ/kỹ thuật cho zk stack và layer

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 triển khai hiệu quả và an toàn cho các thành phần con 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 điểm chung với các thư viện hiện có khác.

lợi thế

lợi thế

Tính linh hoạt thông qua mô đun

giảm 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

sự thiếu sót

sự thiếu sót

Yêu cầu kiến ​​thức chuyên sâu về toàn bộ ngăn xếp 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 yêu cầu 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ý.

zk Ngôn ngữ dành riêng cho miền (DSL)

Để tạo bằng chứng về một số tính toán, trước tiên, tính toán đó phải được thể hiện ở 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 các 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, Circcom, ZoKrates và Aleo's Leo, trong số những ngôn ngữ khác. Hệ thống bằng chứng 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ếp xúc.

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 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ố họ.

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

ZoKrates - ZoKrates là bộ công cụ dành cho các nhu cầu chung về 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ơ đồ bằng chứng và phụ trợ, cho phép các nhà phát triển hoán đổi nóng thông qua các đối số CLI đơn giản.

Circom — Circom là một 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. Ngôn ngữ này không đặc biệt thuận tiện, khiến nhà phát triển nhận thức sâu sắc rằng một mạch đ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 như Rust dành riêng cho các chuyển đổi trạng thái bên trong các 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 chính ngôn ngữ đó, điều đó có nghĩa là nó có thể có giao diện người dùng tùy ý.

cho ai

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

lợi thế

lợi thế

Người dùng không cần 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ó ngày hôm nay

có thể kiểm chứng trên chuỗi

sự thiếu sót

sự thiếu sót

Người dùng cần tìm hiểu một DSL mới

Công cụ và hỗ trợ xung quanh các ngôn ngữ này bị tắt

Ít hoặc không kiểm soát được ngăn xếp bằng chứng cơ bản (hiện tại).

zkEVMs

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 chính xác không có kiến ​​thức ngắn gọn. Như đã đề cập trong bài đăng của Vitalik, có nhiều cách để thực hiện việc này, với sự khác biệt tinh tế và sự đánh đổi tương ứng.

Sự khác biệt kỹ thuật chính giữa tất cả các cách tiếp cận này là nơi chính xác trong ngăn xếp ngôn ngữ, tính toán được chuyển đổi thành một dạng có thể được sử dụng trong hệ thống chứng minh (số học hóa). 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 zkEVM khác cố gắng chứng minh EVM cho đến tận mức opcode. Sự đánh đổi giữa các cách tiếp cận này được đề cập sâu trong bài đăng của Vitalik, nhưng tôi sẽ tóm tắt nó trong một câu. Chuyển đổi/số học xảy ra trên ngăn xếp càng thấp thì hình phạt về hiệu suất càng lớn.

chi phí vận hành cao

Thách thức chính trong việc tạo bằng chứng cho các 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 hiện trong mỗi chương trình, vì vậy nó cần hỗ trợ tất cả chúng.

Trong các mạch có mục đích chung, 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 là trong thực tế, 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ự đánh đổi 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 mà 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 như IVC (Incremental Verifiable Computing), giới hạn này có thể được cải thiện bằng cách chia phép tính 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 tiền biên dịch mật mã như hàm băm và một số hoạt động khác)

Khách hàng lý tưởng cho zkEVM là các ứng dụng hợp đồng thông minh cần có đơn đặt hàng có giá trị lớn 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 các ứng dụng zk từ đầu. Do đó, tốt hơn là viết ứng dụng bằng ngôn ngữ cấp cao 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 yêu cầu nhiều nhất của công nghệ zk.

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

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 càng gần với quá trình phát triển Ethereum hiện tại càng tốt. 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 hơi phi thực tế vì zkEVM cần đánh đổi một số khả năng tương thích để có thể tạo 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à vị trí/thời điểm chúng thực hiện các phép toán số học trên ngăn xếp -- nghĩa là, nơi chúng chuyển đổi 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 ra với các opcode EVM thực tế.

Vì vậy, đối 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ứ vẫn như cũ 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ó, bởi vì nó là một mã byte hoàn toàn khác. Mặc dù Scroll khó có được hiệu suất tốt ngoài bộ hướng dẫn, nhưng nó 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ố tùy chọn khác nhau để phát triển ứng dụng zk, tất cả đều có sự đánh đổi độc đáo của riêng chúng. Sơ đồ 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 mức độ chuyên môn zk và nhu cầu về 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

Người dùng muốn chứng minh một phép tính nào đó có thể chỉ cần thực hiện phép tính đó 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 của nó (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 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 có thể phải nhờ đến người khác có phần cứng để thực hiện. Đối với cơ chế khám phá đối tác này, =nil; Quỹ cũng xây dựng một "thị trường bằng chứng" nơi những người kiểm chứng cạnh tranh để chứng minh tính toán cho những người dùng trả tiền cho họ. Sự năng động của thị trường tự do này sẽ dẫn dắt những 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 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ó thể 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 bằng chứng cho phép chuyên môn hóa các mạch 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 những 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.

lợi thế

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ụ thể"máy ảo"sự thiếu sót

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)

Trao đổi/nâng cấp các thư viện zk nội bộ không phải là chuyện nhỏ (yêu cầu chuyển đổi)

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 tính phổ biến của nó ngày nay. Ngoài các máy ảo mã hóa tùy chỉnh, có một số dự án khác đang làm việc để xây dựng một 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 một 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 làm việc trên các zkVM có mục đích chung này là RISC Zero và zkWASM.

Mô tả hình ảnh

Risc Zero

Kiến trúc cấp cao để tạo bằng chứng Risc Zero

RISC Zero có thể chứng thực bất kỳ tính toán nào đượ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 (ISA) nguồn mở đã trở nên phổ biến. Ý tưởng của RISC (Reduced Instruction Set Computer) 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 giúp 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à các chip ARM đã tận dụng các tập lệnh kiểu RISC và đang bắt đầu chiếm lĩnh 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à tiết kiệm 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 bằng chứng zk. Như đã thảo luận trước đó, khi chứng minh quỹ đạo thực thi của zk, bạn phải trả cho tổng chi phí của tất cả các hướng dẫn cho từng mục trong quỹ đạo, vì vậy đơn giản hơn, tổng số hướng dẫn ít hơn sẽ tốt hơn.

cách làm việc

Từ góc độ của nhà phát triển, việc sử dụng RISC Zero để xử lý bằng chứng zk rất giống với việc 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 bằng cách viết mã đơn giản và dịch vụ này sẽ xử lý mọi vấn đề phức tạp của 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 sẽ chấp nhận tệp ELF được tạo trong quá trình biên dịch làm mã đầu vào cho mạch máy ảo. Các nhà phát triển chỉ cần gọi bằng chứng, trả về một đối tượng biên lai (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 xử lý tất cả những điều 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 để 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 chuỗi khối 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 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 độc đáo.

Ví dụ: các mạch của Tornado Cash có thể được sử dụng lại cho ứng dụng airdrop riêng hoặc ứng dụng bỏ phiếu riêng. 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 đa năng như tiện ích 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 zk moon cơ bản.

Như đã thảo luận chi tiết, có vô số tùy chọn khác nhau để phát triển ứng dụng zk, tất cả đều có sự đánh đổi độc đáo của riêng chúng.

Sơ đồ 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 mức độ chuyên môn zk và nhu cầu về 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

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

cảnh áp dụng

Yêu cầu kiểm soát chi tiết đối với 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 các 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 tìm kiếm giao diện bằng chứng nâng cao

công cụ tùy chọn

Arkworks-rs

2. zk DSLs

cảnh áp dụng

muốn sử dụng một số ngôn ngữ đã thử 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 hóa

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

Circom

Aztec Noir

Cairo

ZoKrates

Leo

3. trình biên dịch zk

cảnh áp dụng

Không muốn chịu chi phí của mạch mục đích chung

Muốn viết mạch bằng ngôn ngữ quen thuộc

Yêu cầu mạch tùy chỉnh cao

không áp dụng

muốn kiểm soát các nguyên tắc mật mã 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

nil zkLLVM

4.zkEVM

cảnh áp dụng

Có một dApp đã chạy trên EVM

Cần cung cấp giao dịch 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 một 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 riêng tư yêu cầu zk

Có một trường hợp sử dụng phi blockchain

công cụ tùy chọn

zksync 2.0 

Polygon zkEVM

Scroll

Starknet

5.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 zk

Không áp dụng

Trong môi trường có độ trễ rất thấp (nó vẫn còn chậm).

Có một chương trình lớn (hiện tại).

công cụ tùy chọn

RISC Zero

zkWASM

6. Các mạch tái sử dụng 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ư ngăn chặn Merkle.

Ít hoặc không có kiến ​​thức chuyên môn về những gì nằm dưới vỏ bọc của 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

Tóm lại là

Manta Network

Semaphore

Tóm lại là

Cảm ơn

Cảm ơn

Quá trình biên soạn bài viết này đã nhận được sự ủng hộ và phản hồi từ cộng đồng DAOrayaki.

Bản gốc: Hướng dẫn dành cho nhà phát triển về zkGalaxy

nhà phát triển
Vitalik
zkSync
công nghệ
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký
https://t.me/Odaily_News
Tài khoản chính thức
https://twitter.com/OdailyChina