Tác giả: Kernel Ventures Turbo Guo

(Các) Biên tập viên: Kernel Ventures Rose, Kernel Ventures Mandy, Kernel Ventures Joshua

TLDR: Bộ đồng xử lý ZK là một giải pháp để các dApp sử dụng tài nguyên điện toán ngoài chuỗi. Bài viết này khám phá các giải pháp hiện có, các ứng dụng khác nhau và sự phát triển của bộ đồng xử lý trong tương lai. Các chủ đề chính được đề cập như sau:

  1. ZkVM của RISC Zero là giải pháp đồng xử lý ZK cho phép các hợp đồng trên chuỗi gọi zkVM ngoài chuỗi để chạy mã Rust cụ thể và trả kết quả về chuỗi, đồng thời cung cấp zkp để xác minh trên chuỗi về tính chính xác của tính toán.

  2. Có nhiều giải pháp khác nhau cho bộ đồng xử lý ZK. Ngoài zkVM, người dùng cũng có thể viết các mạch ZK tùy chỉnh cho chương trình của họ hoặc sử dụng các khung được tạo sẵn để viết mạch, từ đó cho phép các hợp đồng sử dụng tài nguyên điện toán ngoài chuỗi.

  3. Bộ đồng xử lý ZK có thể đóng một vai trò trong DeFi, chẳng hạn như giảm tải các phép tính AMM ngoài chuỗi để thu được giá trị tương tự MEV hoặc kích hoạt logic phức tạp và tính toán chuyên sâu cho AMM. Bộ đồng xử lý ZK cũng có thể tạo điều kiện thuận lợi cho việc tính toán lãi suất theo thời gian thực cho các giao thức cho vay, giúp việc tính toán ký quỹ trở nên minh bạch, cùng nhiều tính năng khác. zkAMM có hai phương pháp triển khai, một phương pháp sử dụng zkVM và phương pháp kia sử dụng zkOracle.

  4. Bộ đồng xử lý ZK cũng có các trường hợp sử dụng tiềm năng khác, chẳng hạn như ví sử dụng nó để thực hiện xác minh danh tính ngoài chuỗi. Nó có thể cho phép tính toán phức tạp hơn cho các trò chơi trên chuỗi và giảm lượng gas cần thiết cho quản trị DAO, cùng với các ứng dụng khác.

  5. Bối cảnh của bộ đồng xử lý ZK vẫn chưa chắc chắn, nhưng so với việc người dùng tự viết mạch, việc sử dụng giải pháp giao tiếp tài nguyên ngoài chuỗi sẽ thân thiện với người dùng hơn. Tuy nhiên, câu hỏi về nhà cung cấp dịch vụ tính toán nào được tích hợp đằng sau giải pháp "giao diện" đó, dù là nhà cung cấp đám mây truyền thống hay mạng chia sẻ tài nguyên phi tập trung, lại là một chủ đề quan trọng khác để thảo luận.

1. Mục đích và ứng dụng của Bộ đồng xử lý ZK

Nguồn: Kernel Ventures

Cốt lõi của bộ đồng xử lý ZK là di chuyển tính toán trên chuỗi ra khỏi chuỗi, sử dụng bằng chứng ZK để đảm bảo độ tin cậy của tính toán ngoài chuỗi, cho phép các hợp đồng thông minh dễ dàng xử lý một lượng lớn tính toán trong khi xác minh độ tin cậy của tính toán. Điều này tương tự như ý tưởng của zkRollups, nhưng Rollups sử dụng tài nguyên điện toán ngoài chuỗi ở lớp giao thức chuỗi, trong khi bộ đồng xử lý ZK được dApps sử dụng để sử dụng tài nguyên ngoài chuỗi.

Sử dụng RISC Zero làm ví dụ để giải thích một giải pháp về bộ đồng xử lý ZK, RISC Zero đã phát triển kiến ​​trúc bộ đồng xử lý Bonsai ZK, có cốt lõi là zkVM của RISC Zero. Các nhà phát triển có thể tạo zkp trên zkVM để "một mã Rust nhất định được thực thi chính xác". Với zkVM, quy trình cụ thể để triển khai bộ đồng xử lý ZK là:

  1. Các nhà phát triển gửi yêu cầu đến hợp đồng chuyển tiếp của Bonsai, tức là để chạy chương trình được yêu cầu của nhà phát triển trong zkVM.

  2. Hợp đồng chuyển tiếp sẽ gửi yêu cầu đến nhóm yêu cầu ngoài chuỗi.

  3. Bonsai thực hiện yêu cầu trong zkVM ngoài chuỗi, thực hiện các tính toán quy mô lớn và sau đó tạo biên nhận.

  4. Những bằng chứng này, còn được gọi là "biên lai", được Bonsai công bố trở lại chuỗi thông qua hợp đồng chuyển tiếp.

Nguồn: RISC Zero

Trong Bonsai, chương trình đã được kiểm chứng được gọi là Chương trình Khách mời và biên nhận được sử dụng để chứng minh rằng chương trình Khách mời đã được thực hiện chính xác. Biên nhận bao gồm nhật ký và con dấu. Cụ thể, tạp chí mang đầu ra công khai của ứng dụng zkVM, trong khi con dấu được sử dụng để chứng minh tính hợp lệ của biên nhận, tức là để chứng minh rằng chương trình khách đã được thực thi chính xác. Bản thân con dấu là zkSTARK được tạo bởi người hoạt ngôn. Việc xác minh biên nhận đảm bảo rằng nhật ký được xây dựng bằng cách sử dụng đúng mạch, v.v.

Bonsai đơn giản hóa quy trình để các nhà phát triển biên dịch mã Rust thành mã byte zkVM, tải chương trình lên, thực thi chúng trong VM và nhận phản hồi bằng chứng, cho phép các nhà phát triển tập trung hơn vào thiết kế logic. Nó cho phép không chỉ logic hợp đồng một phần mà toàn bộ logic hợp đồng chạy ngoài chuỗi. RISC Zero cũng sử dụng tính năng tiếp tục, chia nhỏ việc tạo bản thử nghiệm lớn thành các phần nhỏ hơn, cho phép tạo bản thử nghiệm cho các chương trình lớn mà không tiêu tốn quá nhiều bộ nhớ. Ngoài RISC Zero, còn có các dự án khác như IronMill, =nil; Foundation và Marlin cung cấp các giải pháp chung tương tự.

2. Ứng dụng Bộ đồng xử lý ZK trong DeFi

2.1 AMM - Cây cảnh như một bộ đồng xử lý

zkUniswap là một AMM tận dụng các tài nguyên điện toán ngoài chuỗi. Tính năng cốt lõi của nó là giảm tải một phần tính toán hoán đổi ngoài chuỗi bằng cách sử dụng Bonsai. Người dùng bắt đầu yêu cầu hoán đổi trên chuỗi. Hợp đồng chuyển tiếp của Bonsai nhận được yêu cầu, bắt đầu tính toán ngoài chuỗi và sau khi hoàn thành, trả về kết quả tính toán và bằng chứng cho chức năng gọi lại của EVM. Nếu bằng chứng được xác minh thành công, việc hoán đổi sẽ được thực hiện.

Tuy nhiên, việc trao đổi không được hoàn thành trong một lần. Quá trình yêu cầu và thực hiện nằm trong các giao dịch khác nhau nên mang lại những rủi ro nhất định. Nghĩa là, giữa việc gửi yêu cầu và hoàn thành trao đổi, trạng thái của nhóm có thể thay đổi. Vì việc xác minh dựa trên trạng thái của nhóm tại thời điểm gửi yêu cầu, nếu yêu cầu vẫn đang chờ xử lý và trạng thái của nhóm thay đổi thì việc xác minh sẽ không hợp lệ. Đây là một cân nhắc quan trọng trong việc thiết kế và bảo mật của các hệ thống như vậy.

Để giải quyết vấn đề này, các nhà phát triển đã thiết kế khóa hồ bơi. Khi người dùng bắt đầu một yêu cầu, tất cả các hoạt động ngoài việc giải quyết trao đổi sẽ tạm thời bị khóa cho đến khi tính toán ngoài chuỗi kích hoạt thành công trao đổi trên chuỗi hoặc hết thời gian trao đổi (thời hạn sẽ được đặt trước). Với giới hạn thời gian được áp dụng, ngay cả khi có vấn đề với rơle hoặc zkp, nhóm sẽ không bị khóa vô thời hạn. Giới hạn thời gian cụ thể có thể là vài phút.

zkUniswap có thiết kế độc đáo để nắm bắt MEV, vì các nhà phát triển mong muốn được hưởng lợi từ giao thức MEV. Về mặt lý thuyết, zkAMM cũng có MEV, vì người đầu tiên gửi hoán đổi có thể khóa nó và dẫn trước những người khác, dẫn đến chiến tranh khí đốt và các nhà xây dựng vẫn có thể ưu tiên trình tự giao dịch. Tuy nhiên, zkUniswap lấy lợi nhuận MEV cho chính mình bằng cách sử dụng một phương pháp được gọi là Đấu giá Hà Lan dần dần theo tỷ lệ thay đổi (VRGDA). Cách tiếp cận này cho phép zkUniswap trích xuất giá trị MEV cho giao thức.

Ý tưởng của zkUniswap khá thú vị. Nó liên quan đến việc hạ giá tài sản bị khóa trong một cuộc đấu giá và nếu tài sản bị khóa được bán nhanh chóng, giao thức sẽ nhận ra nhu cầu cao và tự động tăng giá. Nếu việc bán tài sản bị khóa chậm lại, giao thức sẽ giảm giá. Cách tiếp cận sáng tạo này có khả năng trở thành một nguồn doanh thu mới. Về cơ bản, giao thức giới thiệu một cơ chế duy nhất để ưu tiên các giao dịch và sự cạnh tranh về giá mang lại lợi ích trực tiếp cho dự án thông qua cơ chế này.

2.2 AMM - zkOracle với tư cách là Bộ đồng xử lý

Bên cạnh việc sử dụng zkVM, một số người đã đề xuất sử dụng zkOracle để sử dụng các tài nguyên điện toán ngoài chuỗi, điều đáng chú ý là zkOracle là một oracle I/O (đầu vào và đầu ra) xử lý cả đầu vào và đầu ra. Nói chung, có hai loại oracle, một là oracle đầu vào và một là oracle đầu ra. Oracle đầu vào xử lý (tính toán) dữ liệu ngoài chuỗi và đưa nó vào chuỗi, trong khi oracle đầu ra xử lý (tính toán) dữ liệu trên chuỗi và cung cấp dữ liệu đó ngoài chuỗi. Nhà tiên tri I/O (zkOracle) trước tiên thực hiện đầu ra, sau đó là đầu vào, cho phép chuỗi sử dụng các tài nguyên điện toán ngoài chuỗi.

Một mặt, zkOracle sử dụng dữ liệu trên chuỗi làm nguồn dữ liệu và mặt khác, nó sử dụng ZK để đảm bảo rằng các tính toán của các nút oracle là trung thực, do đó đạt được chức năng của bộ đồng xử lý. Do đó, tính toán cốt lõi của AMM có thể được đặt trong zkOracle, cho phép thực hiện chức năng AMM truyền thống đồng thời cho phép các hoạt động phức tạp và tính toán chuyên sâu hơn bằng cách sử dụng zkOracle.

Nguồn: github fewwwww/zkAMM

2.3 Tính toán lãi suất cho vay, tính toán ký quỹ và các ứng dụng khác

Đặt phương pháp triển khai sang một bên, với việc bổ sung bộ đồng xử lý ZK, có thể đạt được nhiều chức năng. Ví dụ: các giao thức cho vay có thể điều chỉnh lãi suất theo các thông số thời gian thực thay vì các điều kiện được xác định trước. Chẳng hạn, tăng lãi suất để thu hút nguồn cung khi nhu cầu vay vốn lớn và giảm lãi suất khi nhu cầu vay giảm. Điều này yêu cầu giao thức cho vay phải thu được một lượng lớn dữ liệu trên chuỗi trong thời gian thực, xử lý trước dữ liệu và tính toán các tham số ngoài chuỗi (trừ khi chi phí trên chuỗi cực kỳ thấp).

Các phép tính phức tạp như xác định số dư ký quỹ, lãi/lỗ chưa thực hiện, v.v., cũng có thể sử dụng bộ đồng xử lý để thực thi. Ưu điểm của việc sử dụng bộ đồng xử lý là làm cho các ứng dụng này trở nên minh bạch và dễ kiểm chứng hơn. Logic của công cụ ký quỹ không còn là hộp đen bí mật nữa. Mặc dù các phép tính được thực hiện ngoài chuỗi nhưng người dùng hoàn toàn có thể tin tưởng vào tính chính xác của việc thực hiện chúng. Cách tiếp cận này cũng có thể áp dụng cho các tính toán tùy chọn.

3. Các ứng dụng khác của Bộ đồng xử lý ZK

3.1 Ví - Sử dụng Bonsai làm Bộ đồng xử lý

Ví Bonfire sử dụng zkVM để giảm tải việc tính toán xác minh danh tính ngoài chuỗi. Mục tiêu của ví này là cho phép người dùng tạo ví ghi bằng cách sử dụng thông tin sinh trắc học (dấu vân tay) hoặc ybikey phần cứng được mã hóa. Cụ thể, Bonfire Wallet sử dụng WebAuthn, một tiêu chuẩn xác thực web phổ biến, cho phép người dùng hoàn tất xác minh danh tính web trực tiếp bằng các thiết bị không cần mật khẩu. Vì vậy, trong Bonfire Wallet, người dùng tạo khóa chung bằng WebAuthn (không phải trên chuỗi mà dành cho WebAuthn), sau đó sử dụng khóa đó để tạo ví. Mỗi ví Burner có một hợp đồng trực tuyến chứa khóa chung của WebAuthn. Hợp đồng cần xác minh chữ ký WebAuthn của người dùng. Nhưng tính toán này rất lớn, vì vậy Bonsai được sử dụng để giảm tải tính toán này ngoài chuỗi, thông qua chương trình khách zkVM để xác minh chữ ký ngoài chuỗi và tạo zkp để xác minh trên chuỗi.

Nguồn: Ví Bonfire

3.2 Truy xuất dữ liệu trên chuỗi - Mạch ZK do người dùng viết

Axiom là một ứng dụng không sử dụng zkVM mà sử dụng giải pháp bộ đồng xử lý khác. Trước tiên hãy giới thiệu mục đích của Axiom. Nó tận dụng bộ đồng xử lý ZK để cho phép các hợp đồng truy cập thông tin lịch sử trên chuỗi. Trên thực tế, việc cho phép hợp đồng đọc dữ liệu lịch sử khá khó khăn vì hợp đồng thông minh thường thu được dữ liệu trên chuỗi theo thời gian thực, điều này có thể rất tốn kém. Rất khó để các hợp đồng truy cập vào dữ liệu có giá trị trên chuỗi như số dư tài khoản lịch sử hoặc hồ sơ giao dịch.

Nguồn: Bản demo tiên đề

Các nút tiên đề truy cập dữ liệu cần thiết trên chuỗi và thực hiện tính toán ngoài chuỗi được chỉ định, sau đó tạo bằng chứng không có kiến ​​thức cho tính toán, chứng minh rằng kết quả được tính toán chính xác dựa trên dữ liệu hợp lệ trên chuỗi. Bằng chứng này được xác minh trên chuỗi, đảm bảo rằng hợp đồng có thể tin cậy vào kết quả này.

Để tạo zkp cho tính toán ngoài chuỗi, cần phải biên dịch các chương trình thành các mạch ZK. Trước đây chúng tôi cũng đã đề cập đến việc sử dụng zkVM cho việc này, nhưng Axiom gợi ý rằng có nhiều giải pháp cho việc này và cần phải cân bằng giữa hiệu suất, tính linh hoạt và trải nghiệm phát triển:

  1. Mạch tùy chỉnh: nếu nhà phát triển tùy chỉnh mạch cho chương trình của họ thì hiệu suất chắc chắn sẽ là tốt nhất, nhưng cần có thời gian để phát triển;

  2. eDSL/DSL: các nhà phát triển vẫn viết mạch của họ, nhưng có một số khung tùy chọn để giúp các nhà phát triển giải quyết các vấn đề liên quan đến zk, nhờ đó cân bằng giữa hiệu suất và trải nghiệm phát triển.

  3. zkVM: các nhà phát triển trực tiếp chạy ZK trên máy ảo hiện có, điều này rất thuận tiện, nhưng Axiom cho rằng nó không hiệu quả.

Do đó, Axiom đã chọn tùy chọn thứ hai và cung cấp cho người dùng một bộ mô-đun ZK được tối ưu hóa, cho phép họ thiết kế các mạch của riêng mình.

Các dự án tương tự như Axiom bao gồm Herodotus, nhằm mục đích trở thành phần mềm trung gian cho việc nhắn tin xuyên chuỗi. Vì việc xử lý thông tin diễn ra ngoài chuỗi nên việc cho phép các chuỗi khác nhau thu được dữ liệu đã xử lý là điều hợp lý. Một dự án khác, Không gian và Thời gian, sử dụng kiến ​​trúc tương tự để triển khai lập chỉ mục dữ liệu.

3.3 Trò chơi trên chuỗi, Quản trị DAO và các ứng dụng khác

Ngoài các trò chơi trên chuỗi ở trên, quản trị DAO cũng có thể sử dụng bộ đồng xử lý ZK. RISC Zero tin rằng bất kỳ tính toán nào cần hơn 250 nghìn gas sẽ rẻ hơn khi sử dụng bộ đồng xử lý ZK, nhưng cách tính toán này vẫn còn phải được nghiên cứu thêm. Quản trị DAO cũng có thể sử dụng bộ đồng xử lý ZK, vì nó liên quan đến nhiều người và nhiều hợp đồng, đòi hỏi tính toán rất chuyên sâu. RISC Zero tuyên bố rằng sử dụng Bonsai có thể giảm 50% phí gas. Nhiều dự án ZKML, chẳng hạn như Modulus Labs và Giza, đang sử dụng cùng một giải pháp với bộ đồng xử lý ZK, nhưng khái niệm về bộ đồng xử lý ZK rộng hơn.

Điều đáng nói là có một số dự án phụ trợ trong lĩnh vực bộ đồng xử lý ZK, chẳng hạn như ezkl, cung cấp trình biên dịch cho các mạch ZK, bộ công cụ để triển khai ZK và các công cụ để giảm tải tính toán trên chuỗi ngoài chuỗi.

4. Triển vọng tương lai

Bộ đồng xử lý cung cấp cho các ứng dụng trên chuỗi các tài nguyên tính toán bên ngoài giống như "đám mây", cung cấp tính toán phong phú và hiệu quả về mặt chi phí, trong khi xử lý trên chuỗi tập trung vào các tính toán thiết yếu. Trong thực tế, zkVM cũng có thể chạy trên đám mây. Về cơ bản, bộ đồng xử lý ZK là một phương pháp kiến ​​trúc giúp di chuyển hoạt động tính toán trên chuỗi ra khỏi chuỗi, với nguồn tài nguyên tính toán ngoài chuỗi không giới hạn.

Về cơ bản, tài nguyên điện toán ngoài chuỗi có thể được cung cấp bởi các nhà cung cấp đám mây truyền thống, thậm chí là chia sẻ tài nguyên máy tính phi tập trung và các thiết bị cục bộ. Ba hướng này đều có những đặc tính riêng. Các nhà cung cấp đám mây truyền thống có thể cung cấp các giải pháp điện toán ngoài chuỗi tương đối hoàn thiện, “độ mạnh” của tài nguyên điện toán phi tập trung trong tương lai có thể mạnh hơn và điện toán cục bộ cũng có nhiều tiềm năng. Nhưng hiện tại, nhiều dự án bộ đồng xử lý ZK đang trong giai đoạn cung cấp dịch vụ nguồn đóng vì hệ sinh thái cho các dịch vụ này chưa được hình thành đầy đủ và sự chuyên môn hóa dịch vụ giữa các dự án khác nhau vẫn chưa được xác định. Hai kịch bản có thể xảy ra trong tương lai là:

  1. Mỗi bộ phận của bộ đồng xử lý ZK đều có một số lượng lớn các dự án cạnh tranh với nhau.

  2. Một dự án duy nhất có trải nghiệm dịch vụ xuất sắc có thể chiếm lĩnh thị trường.

Từ góc độ của nhà phát triển, khi sử dụng bộ đồng xử lý ZK, họ chỉ có thể tương tác với một dự án "giao diện" duy nhất. Điều này tương tự với lý do tại sao Amazon Web Services có thị phần đáng kể, vì các nhà phát triển có xu hướng quen với một phương pháp triển khai cụ thể. Tuy nhiên, câu hỏi về nhà cung cấp dịch vụ điện toán nào (các công ty đám mây truyền thống, chia sẻ tài nguyên phi tập trung) được tích hợp đằng sau dự án “giao diện” tài nguyên tính toán ngoài chuỗi này là một chủ đề khác đáng thảo luận.

Kernel Ventures là quỹ đầu tư mạo hiểm về tiền điện tử do cộng đồng nghiên cứu và phát triển điều khiển với hơn 70 khoản đầu tư giai đoạn đầu, tập trung vào cơ sở hạ tầng, phần mềm trung gian, dApps, đặc biệt là ZK, Rollup, DEX, Blockchain mô-đun và các ngành dọc sẽ thu hút hàng tỷ người dùng tiếp theo trong lĩnh vực tiền điện tử chẳng hạn như Trừu tượng hóa tài khoản, Tính sẵn có của dữ liệu, Khả năng mở rộng, v.v. Trong bảy năm qua, chúng tôi đã cam kết hỗ trợ sự phát triển của cộng đồng nhà phát triển cốt lõi và Hiệp hội Blockchain đại học trên toàn thế giới.

THẨM QUYỀN GIẢI QUYẾT:

  1. Hướng dẫn về Bộ đồng xử lý ZK để có khả năng mở rộng:https://www.risczero.com/news/a-guide-to-zk-coprocessors-for-scalability

  2. Xác định zkOracle cho Ethereum:https://ethresear.ch/t/defining-zkoracle-for-ethereum/15131

  3. zkUniswap: zkAMM đầu tiên:https://ethresear.ch/t/zkuniswap-a-first-of-its-kind-zkamm/16839

  4. Bộ đồng xử lý ZK là gì?:https://blog.axiom.xyz/what-is-a-zk-coprocessor/

  5. Giới thiệu ngắn gọn về Bộ đồng xử lý:https://crypto.mirror.xyz/BFqUfBNVZrqYau3Vz9WJ-BACw5FT3W30iUX3mPlKxtA

  6. Các ứng dụng mới nhất được xây dựng trên Hyper Oracle (Phần thưởng: Những thứ bạn có thể xây dựng ngay bây giờ):https://mirror.xyz/hyperoracleblog.eth/Tik3nBI9mw05Ql_aHKZqm4hNxfxaEQdDAKn7JKcx0xQ

  7. Ví Bonfire: https://ethglobal.com/showcase/bonfire-wallet-n1dzp