zkOracle dan zkCoprocessor

Menengah1/7/2024, 1:23:40 PM
Artikel ini menjelaskan konsep zkCorprocessor dan zkOracle, menyoroti perbedaan antara keduanya dan menguraikan skenario di mana setiap jenis zk cocok untuk kasus penggunaan yang berbeda.

0. Pengenalan

Dalam posting ini, kita akan melihat konsep-konsep yang baru-baru ini populer dari zkCoprocessor dan zkOracle dan membandingkan perbedaan-perbedaan mereka.

1. Definisi dari zkCoprocessor

Ketika sebuah istilah diciptakan, maknanya sebenarnya tidak ditentukan oleh dirinya sendiri. Kami telah melihat hal ini sangat banyak dalam kasus blockchain.

  1. ZK: Meskipun akademisi sering mengacu pada fitur privasi Zero Knowledge, dalam konteks blockchain, ZK sering hanya berarti kekompakan dan validitas teknologi. Bahkan proyek-proyek yang dibangun di atas ZK Rollup menyebut diri mereka sendiri sebagai zkSomething.
  2. DA: Sampai saat ini, banyak orang sebenarnya tidak menyadari bahwa Ketersediaan Data bukan Penyimpanan Data, jadi untuk mengatasi masalah terminologi ini, beberapa orang telah disarankan mengganti DA dengan DP (Data Publishing), atau membuat seluruh arti DA menjadi Data Publishing + Data Storage (1, 2).

Kami melihat fenomena serupa dalam istilah zkCoprocessor. Semua orang menggunakan istilah tersebut, tetapi mereka tidak selalu merujuk pada hal yang sama.

Jadi kami ingin mengungkapkan apa yang proyek ini pikirkan tentang zkCoprocessor, apa yang komunitas pahami tentang zkCoprocessor, dan apa yang zkCoprocessor benar-benar artinya dan lakukan dari sudut pandang kami.

a) Dari Pro Themselves

Definisi 1 dari Axiom: zkCoprocessor membuktikan data historis onchain.

Konsep zkCoprocessor dipopulerkan oleh Axiom, yang awalnya dipikirkan sebagai zkAttestor. Dari gagasan Axiom, zkCoprocessor mewakili komponen yang “membuktikan data historis on-chain dan menggunakan data tersebut dalam kontrak pintar tanpa kepercayaan”.

Perhatikan bahwa tim Brevis mengatakan bahwa jenis zkCoprocessors ini pada dasarnya merupakan lapisan API/DSL di atas sirkuit zk yang mendasarinya. Jadi ini tidak dapat diprogram.

Definisi 2 dari RISC Zero: zkCoprocessor mengalihkan komputasi dari onchain ke offchain.

RISC Zero juga sering merujuk pada dirinya sendiri sebagai zkCoprocessor. Dari sudut pandang mereka, mereka melihat zkCoprocessor sebagai konsep yang lebih luas, 'sebuah alat untuk menggunakan ZKPs untuk memindahkan komputasi dari on-chain ke off-chain'.

b) Dari Komunitas

Definisi dari Peteris (sama seperti 1): zkCoprocessor dapat mengakses keadaan historis onchain.

Peteris dari Aera Financepercayabahwa zkCoprocessor sangat mirip dengan oracle negara, dengan fungsi utama adalah akses ke data historis. Pada saat yang sama, dia dan Rishabh dari BananaHQpercaya bahwa deskripsi definisi 2 lebih mirip dengan zkVM daripada subclass dari zkCoprocessor.

Definisi dari Messari, Modular Media, dan Kobi (sama dengan 2): zkCoprocessor memindahkan komputasi dari onchain ke offchain.

Messari juga memberikan definisi sendiri tentang zkCoprocessor. Sami, seorang peneliti di Messari, percayazkCoprocessor memungkinkan pengembang kontrak pintar untuk dengan mudah memindahkan logika kompleks ke luar rantai tanpa asumsi kepercayaan baru. Modular Media jugamemberikan konsep yang sama. Kobi dari Geometrymembandingkan rollup dengan sebuah koprocesor, Brevis menambahkan bahwa zkCoprocessorperdagangan biaya memelihara penyimpanan keadaan permanen terhadap kinerja hiper-boosted, Taiko datang dengan desain dari Booster Rollupyang lebih jauh menjelajahi gagasan Rollup Coprocessor. Ini memiliki definisi yang sama dengan RISC Zero.

c) Dari Kami

Untuk merangkum, kami menyimpulkan bahwa ada dua jenis zkCoprocessor dalam praktik, dan mereka adalah sebagai berikut:

  1. Akses Data zkCoprocessor: terutama memberikan data tertentu (blok historis, status historis) ke tempat tertentu (kontrak pintar).
  2. zkVM Compute zkCoprocessor: menghitung oleh zkVM offchain, kemudian memberikan hasil kembali ke onchain.Mengompresi perhitungan O(n) menjadi hanya verifikasi O(1).

2. Definisi zkOracle

a) Oracle

Hyper Oracle memberikan kami penjelasan tentang Oracle di Mendefinisikan zkOracle untuk Ethereum.

Oracle praktis mencakup "infra" dalam setiap ruang blockchain, seperti definisi yang lebih baik daripada coprocessor.

Jika input ke infra/oracle adalah data off-chain dan outputnya on-chain, maka itu adalah input oracle (misalnya Chainlink Price Feed). Sebaliknya, ini adalah oracle keluaran (misalnya The Graph). Jika oracle output adalah yang pertama, maka oracle input, maka itu adalah oracle I / O (misalnya Gelato Network).

Singkatnya, oracle sangat mirip dengan konsep koprosesor, tetapi pada saat yang sama memiliki karakteristik akses data dan komputasi.

b) zkOracle

Mengambil Hyper Oracle sebagai contoh, apa hubungan antara zkOracledan sebuah zkCoprocessor?

zkOracle yang dibahas dalam Mendefinisikan zkOracle untuk Ethereum sebenarnya memiliki kemampuan dari kedua zkCoprocessors.

Sebagai contoh, sebuah zkOracle seperti Hyper Oracle:

  1. Akses ke data historis dengan cara yang tidak dapat dipercaya.
  2. Dapat melakukan komputasi yang dapat diprogram.

3. zkCoprocessor dan zkOracle

Ketika kita membandingkan langsung dua jenis zkCoprocessor dengan zkOracle, kita dapat melihat bahwa zkOracle memiliki semua fitur zkCoprocessor secara bersamaan:

  1. pengolahan asinkron untuk kontrak pintar
  2. berinteraksi dengan dan meningkatkan kemampuan aplikasi yang sudah ada di L1 atau L2
  3. meng-offload komputasi dalam sistem yang terbatas sumber daya

Dengan perbandingan langsung, zkOracle adalah solusi yang lebih end-to-end yang dapat memberikan pengembang dengan tumpukan teknologi yang lebih lengkap.

Kedua zkCoprocessors memperluas pada vertikal masing-masing, misalnya, zkCoprocessor Akses Data membuka skenario lintas-rantai, dan zkCoprocessor Komputasi zkVM mewakili zk rollup berbasis zkVM.

4. Bangun dengan zkCoprocessor atau zkOracle

Pilih yang mana saat membangun?

Dalam urutan langkah demi langkah, kita dapat membuat beberapa keputusan tentang membangun sebuah aplikasi.

a) DApp dengan Kontrak Pintar Murni

Pertama, implementasi Solidity murni dari kontrak pintar masih merupakan pilihan yang sangat baik. Meskipun kontrak pintar murni tidak menyediakan beberapa fitur novel terbaik, mereka masih mencukupidalam beberapa skenarioSelain itu, ketersediaan Arbitrum Stylus saat ini telah membuka banyak aplikasi baru dengan kontrak pintar murni.

b) DApp yang Membutuhkan Akses Data yang Lebih Kaya

Dalam banyak kasus, pengembang mungkin ingin menggunakan Data Access zkCoprocessor atau zkOracle untuk kontrak cerdas untuk mengakses sumber data yang lebih kaya.

Dalam skenario ini, jika Data Access zkCoprocessor digunakan sendirian, komputasi masih dikelola dalam kontrak pintar. Peran zkCoprocessor adalah untuk mengurangi kompleksitas dalam mendapatkan data secara tradisional, namun bukan untuk membuat kontrak pintar lebih bertenaga komputasi.

Dalam skenario ini, kita melihat banyak proyek terkait data kecil, daripada DApps lengkap dalam arti tradisional:

  1. Menggunakan Aksiom zkCoprocessor: Manajemen LP yang Lebih Baik, Pengembalian Rebate MEVictim
  2. Menggunakan zkOracle Hyper Oracle: Monitor Harga Uniswap v2, Aktivitas Perdagangan OpenSea, dan Volume USDT

c) DApp yang Membutuhkan Komputasi Berat

Seringkali, beberapa algoritma kompleks tidak dapat dihitung langsung di rantai, untuk permainan, logika komputasinya sangat kompleks, seperti etherquake dan GameOfLife yang membutuhkan biaya $2k untuk menjalankan satu langkah. Atau algoritma kompleks terkait ML. Atau algoritma kompleks terkait ML yang tidak mungkin dijalankan di rantai. Oleh karena itu, kita memerlukan zkVM zkCoprocessor atau zkOracle untuk menjalankan komputasi di luar rantai, dan kemudian mengirimkannya ke rantai sebagai ZKP.

Dalam contoh ini, kita dapat melihat beberapa potensi komputasi tak terbatas mereka:

  1. Menggunakan zkCoprocessor Bonsai: Zeth (Buktikan Reth di zkVM), sentimen-zk
  2. Menggunakan zkOracle Hyper Oracle atau zkWASM: zkGo (Bukti L2-Geth dalam zkVM, zkEVM Tipe-0), zkAMM

d) Aplikasi DApp Generasi Berikutnya dengan Fitur Lengkap (DeFi 3.0)

Akhirnya, kami membahas aplikasi yang hanya dapat dibangun dengan zkOracle. Mengambil aplikasi DeFi sebagai contoh, DeFi lengkap sangat kompleks. Generasi berikutnya dari aplikasi DeFi, atau DeFi 3.0 DApps, akan membutuhkan:

  1. Akses Data yang Lebih Kaya
  2. Komputasi Tanpa Batas
  3. Otonom (untuk likuidasi, pembaruan parameter, tata kelola protokol)

Kami telah membahas bagaimana zkOracle berbagi kemampuan kedua zkCoprocessors, sambil memenuhi dua persyaratan fungsional pertama. Bagaimana zkOracle memenuhi fitur autonom dan bagaimana zkCoprocessor tidak?

  1. zkOracle: Tidak ada campur tangan manusia yang diperlukan. Akses data dan tugas komputasi dapat sepenuhnya ditentukan dan dieksekusi secara terprogram dan otomatis. Semua panggilan onchain selalu tanpa kepercayaan dan valid.
  2. zkCoprocessor: Membutuhkan pemantauan dan penyaringan onchain dari respons komputasi oleh relayer, atau penambahan mekanisme kompleks tambahan.

Jadi apa arti ketiadaan otonom dalam zkCoprocessor: itu

  1. Desentralisasi yang tidak memadai
  2. Risiko dari mekanisme yang mungkin kompleks
  3. Beban mental pengembang

Oleh karena itu, zkOracle adalah pilihan yang sempurna dan memadai untuk aplikasi lengkap seperti DeFi.

Perlu dicatat bahwa Hooks juga dapat menangani beberapa fungsi yang hilang dari zkCoprocessor, tetapi HANYA dalam skenario seperti DeFi, dan tidak secara universal.

Penolakan:

  1. Artikel ini dicetak ulang dari [cermin]. Semua hak cipta milik penulis asli [SevenX Ventures]. Jika ada keberatan terhadap cetak ulang ini, silakan hubungi Belajar Gatetim, dan mereka akan menanganinya dengan segera.
  2. Penafian Tanggung Jawab: Pandangan dan opini yang terdapat dalam artikel ini semata-mata milik penulis dan tidak merupakan saran investasi apa pun.
  3. Terjemahan artikel ke dalam bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel yang diterjemahkan dilarang.

zkOracle dan zkCoprocessor

Menengah1/7/2024, 1:23:40 PM
Artikel ini menjelaskan konsep zkCorprocessor dan zkOracle, menyoroti perbedaan antara keduanya dan menguraikan skenario di mana setiap jenis zk cocok untuk kasus penggunaan yang berbeda.

0. Pengenalan

Dalam posting ini, kita akan melihat konsep-konsep yang baru-baru ini populer dari zkCoprocessor dan zkOracle dan membandingkan perbedaan-perbedaan mereka.

1. Definisi dari zkCoprocessor

Ketika sebuah istilah diciptakan, maknanya sebenarnya tidak ditentukan oleh dirinya sendiri. Kami telah melihat hal ini sangat banyak dalam kasus blockchain.

  1. ZK: Meskipun akademisi sering mengacu pada fitur privasi Zero Knowledge, dalam konteks blockchain, ZK sering hanya berarti kekompakan dan validitas teknologi. Bahkan proyek-proyek yang dibangun di atas ZK Rollup menyebut diri mereka sendiri sebagai zkSomething.
  2. DA: Sampai saat ini, banyak orang sebenarnya tidak menyadari bahwa Ketersediaan Data bukan Penyimpanan Data, jadi untuk mengatasi masalah terminologi ini, beberapa orang telah disarankan mengganti DA dengan DP (Data Publishing), atau membuat seluruh arti DA menjadi Data Publishing + Data Storage (1, 2).

Kami melihat fenomena serupa dalam istilah zkCoprocessor. Semua orang menggunakan istilah tersebut, tetapi mereka tidak selalu merujuk pada hal yang sama.

Jadi kami ingin mengungkapkan apa yang proyek ini pikirkan tentang zkCoprocessor, apa yang komunitas pahami tentang zkCoprocessor, dan apa yang zkCoprocessor benar-benar artinya dan lakukan dari sudut pandang kami.

a) Dari Pro Themselves

Definisi 1 dari Axiom: zkCoprocessor membuktikan data historis onchain.

Konsep zkCoprocessor dipopulerkan oleh Axiom, yang awalnya dipikirkan sebagai zkAttestor. Dari gagasan Axiom, zkCoprocessor mewakili komponen yang “membuktikan data historis on-chain dan menggunakan data tersebut dalam kontrak pintar tanpa kepercayaan”.

Perhatikan bahwa tim Brevis mengatakan bahwa jenis zkCoprocessors ini pada dasarnya merupakan lapisan API/DSL di atas sirkuit zk yang mendasarinya. Jadi ini tidak dapat diprogram.

Definisi 2 dari RISC Zero: zkCoprocessor mengalihkan komputasi dari onchain ke offchain.

RISC Zero juga sering merujuk pada dirinya sendiri sebagai zkCoprocessor. Dari sudut pandang mereka, mereka melihat zkCoprocessor sebagai konsep yang lebih luas, 'sebuah alat untuk menggunakan ZKPs untuk memindahkan komputasi dari on-chain ke off-chain'.

b) Dari Komunitas

Definisi dari Peteris (sama seperti 1): zkCoprocessor dapat mengakses keadaan historis onchain.

Peteris dari Aera Financepercayabahwa zkCoprocessor sangat mirip dengan oracle negara, dengan fungsi utama adalah akses ke data historis. Pada saat yang sama, dia dan Rishabh dari BananaHQpercaya bahwa deskripsi definisi 2 lebih mirip dengan zkVM daripada subclass dari zkCoprocessor.

Definisi dari Messari, Modular Media, dan Kobi (sama dengan 2): zkCoprocessor memindahkan komputasi dari onchain ke offchain.

Messari juga memberikan definisi sendiri tentang zkCoprocessor. Sami, seorang peneliti di Messari, percayazkCoprocessor memungkinkan pengembang kontrak pintar untuk dengan mudah memindahkan logika kompleks ke luar rantai tanpa asumsi kepercayaan baru. Modular Media jugamemberikan konsep yang sama. Kobi dari Geometrymembandingkan rollup dengan sebuah koprocesor, Brevis menambahkan bahwa zkCoprocessorperdagangan biaya memelihara penyimpanan keadaan permanen terhadap kinerja hiper-boosted, Taiko datang dengan desain dari Booster Rollupyang lebih jauh menjelajahi gagasan Rollup Coprocessor. Ini memiliki definisi yang sama dengan RISC Zero.

c) Dari Kami

Untuk merangkum, kami menyimpulkan bahwa ada dua jenis zkCoprocessor dalam praktik, dan mereka adalah sebagai berikut:

  1. Akses Data zkCoprocessor: terutama memberikan data tertentu (blok historis, status historis) ke tempat tertentu (kontrak pintar).
  2. zkVM Compute zkCoprocessor: menghitung oleh zkVM offchain, kemudian memberikan hasil kembali ke onchain.Mengompresi perhitungan O(n) menjadi hanya verifikasi O(1).

2. Definisi zkOracle

a) Oracle

Hyper Oracle memberikan kami penjelasan tentang Oracle di Mendefinisikan zkOracle untuk Ethereum.

Oracle praktis mencakup "infra" dalam setiap ruang blockchain, seperti definisi yang lebih baik daripada coprocessor.

Jika input ke infra/oracle adalah data off-chain dan outputnya on-chain, maka itu adalah input oracle (misalnya Chainlink Price Feed). Sebaliknya, ini adalah oracle keluaran (misalnya The Graph). Jika oracle output adalah yang pertama, maka oracle input, maka itu adalah oracle I / O (misalnya Gelato Network).

Singkatnya, oracle sangat mirip dengan konsep koprosesor, tetapi pada saat yang sama memiliki karakteristik akses data dan komputasi.

b) zkOracle

Mengambil Hyper Oracle sebagai contoh, apa hubungan antara zkOracledan sebuah zkCoprocessor?

zkOracle yang dibahas dalam Mendefinisikan zkOracle untuk Ethereum sebenarnya memiliki kemampuan dari kedua zkCoprocessors.

Sebagai contoh, sebuah zkOracle seperti Hyper Oracle:

  1. Akses ke data historis dengan cara yang tidak dapat dipercaya.
  2. Dapat melakukan komputasi yang dapat diprogram.

3. zkCoprocessor dan zkOracle

Ketika kita membandingkan langsung dua jenis zkCoprocessor dengan zkOracle, kita dapat melihat bahwa zkOracle memiliki semua fitur zkCoprocessor secara bersamaan:

  1. pengolahan asinkron untuk kontrak pintar
  2. berinteraksi dengan dan meningkatkan kemampuan aplikasi yang sudah ada di L1 atau L2
  3. meng-offload komputasi dalam sistem yang terbatas sumber daya

Dengan perbandingan langsung, zkOracle adalah solusi yang lebih end-to-end yang dapat memberikan pengembang dengan tumpukan teknologi yang lebih lengkap.

Kedua zkCoprocessors memperluas pada vertikal masing-masing, misalnya, zkCoprocessor Akses Data membuka skenario lintas-rantai, dan zkCoprocessor Komputasi zkVM mewakili zk rollup berbasis zkVM.

4. Bangun dengan zkCoprocessor atau zkOracle

Pilih yang mana saat membangun?

Dalam urutan langkah demi langkah, kita dapat membuat beberapa keputusan tentang membangun sebuah aplikasi.

a) DApp dengan Kontrak Pintar Murni

Pertama, implementasi Solidity murni dari kontrak pintar masih merupakan pilihan yang sangat baik. Meskipun kontrak pintar murni tidak menyediakan beberapa fitur novel terbaik, mereka masih mencukupidalam beberapa skenarioSelain itu, ketersediaan Arbitrum Stylus saat ini telah membuka banyak aplikasi baru dengan kontrak pintar murni.

b) DApp yang Membutuhkan Akses Data yang Lebih Kaya

Dalam banyak kasus, pengembang mungkin ingin menggunakan Data Access zkCoprocessor atau zkOracle untuk kontrak cerdas untuk mengakses sumber data yang lebih kaya.

Dalam skenario ini, jika Data Access zkCoprocessor digunakan sendirian, komputasi masih dikelola dalam kontrak pintar. Peran zkCoprocessor adalah untuk mengurangi kompleksitas dalam mendapatkan data secara tradisional, namun bukan untuk membuat kontrak pintar lebih bertenaga komputasi.

Dalam skenario ini, kita melihat banyak proyek terkait data kecil, daripada DApps lengkap dalam arti tradisional:

  1. Menggunakan Aksiom zkCoprocessor: Manajemen LP yang Lebih Baik, Pengembalian Rebate MEVictim
  2. Menggunakan zkOracle Hyper Oracle: Monitor Harga Uniswap v2, Aktivitas Perdagangan OpenSea, dan Volume USDT

c) DApp yang Membutuhkan Komputasi Berat

Seringkali, beberapa algoritma kompleks tidak dapat dihitung langsung di rantai, untuk permainan, logika komputasinya sangat kompleks, seperti etherquake dan GameOfLife yang membutuhkan biaya $2k untuk menjalankan satu langkah. Atau algoritma kompleks terkait ML. Atau algoritma kompleks terkait ML yang tidak mungkin dijalankan di rantai. Oleh karena itu, kita memerlukan zkVM zkCoprocessor atau zkOracle untuk menjalankan komputasi di luar rantai, dan kemudian mengirimkannya ke rantai sebagai ZKP.

Dalam contoh ini, kita dapat melihat beberapa potensi komputasi tak terbatas mereka:

  1. Menggunakan zkCoprocessor Bonsai: Zeth (Buktikan Reth di zkVM), sentimen-zk
  2. Menggunakan zkOracle Hyper Oracle atau zkWASM: zkGo (Bukti L2-Geth dalam zkVM, zkEVM Tipe-0), zkAMM

d) Aplikasi DApp Generasi Berikutnya dengan Fitur Lengkap (DeFi 3.0)

Akhirnya, kami membahas aplikasi yang hanya dapat dibangun dengan zkOracle. Mengambil aplikasi DeFi sebagai contoh, DeFi lengkap sangat kompleks. Generasi berikutnya dari aplikasi DeFi, atau DeFi 3.0 DApps, akan membutuhkan:

  1. Akses Data yang Lebih Kaya
  2. Komputasi Tanpa Batas
  3. Otonom (untuk likuidasi, pembaruan parameter, tata kelola protokol)

Kami telah membahas bagaimana zkOracle berbagi kemampuan kedua zkCoprocessors, sambil memenuhi dua persyaratan fungsional pertama. Bagaimana zkOracle memenuhi fitur autonom dan bagaimana zkCoprocessor tidak?

  1. zkOracle: Tidak ada campur tangan manusia yang diperlukan. Akses data dan tugas komputasi dapat sepenuhnya ditentukan dan dieksekusi secara terprogram dan otomatis. Semua panggilan onchain selalu tanpa kepercayaan dan valid.
  2. zkCoprocessor: Membutuhkan pemantauan dan penyaringan onchain dari respons komputasi oleh relayer, atau penambahan mekanisme kompleks tambahan.

Jadi apa arti ketiadaan otonom dalam zkCoprocessor: itu

  1. Desentralisasi yang tidak memadai
  2. Risiko dari mekanisme yang mungkin kompleks
  3. Beban mental pengembang

Oleh karena itu, zkOracle adalah pilihan yang sempurna dan memadai untuk aplikasi lengkap seperti DeFi.

Perlu dicatat bahwa Hooks juga dapat menangani beberapa fungsi yang hilang dari zkCoprocessor, tetapi HANYA dalam skenario seperti DeFi, dan tidak secara universal.

Penolakan:

  1. Artikel ini dicetak ulang dari [cermin]. Semua hak cipta milik penulis asli [SevenX Ventures]. Jika ada keberatan terhadap cetak ulang ini, silakan hubungi Belajar Gatetim, dan mereka akan menanganinya dengan segera.
  2. Penafian Tanggung Jawab: Pandangan dan opini yang terdapat dalam artikel ini semata-mata milik penulis dan tidak merupakan saran investasi apa pun.
  3. Terjemahan artikel ke dalam bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel yang diterjemahkan dilarang.
今すぐ始める
登録して、
$100
のボーナスを獲得しよう!