Dalam posting ini, kita akan melihat konsep-konsep yang baru-baru ini populer dari zkCoprocessor dan zkOracle dan membandingkan perbedaan-perbedaan mereka.
Ketika sebuah istilah diciptakan, maknanya sebenarnya tidak ditentukan oleh dirinya sendiri. Kami telah melihat hal ini sangat banyak dalam kasus blockchain.
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.
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'.
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.
Untuk merangkum, kami menyimpulkan bahwa ada dua jenis zkCoprocessor dalam praktik, dan mereka adalah sebagai berikut:
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.
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:
Ketika kita membandingkan langsung dua jenis zkCoprocessor dengan zkOracle, kita dapat melihat bahwa zkOracle memiliki semua fitur zkCoprocessor secara bersamaan:
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.
Pilih yang mana saat membangun?
Dalam urutan langkah demi langkah, kita dapat membuat beberapa keputusan tentang membangun sebuah aplikasi.
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.
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:
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:
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:
Kami telah membahas bagaimana zkOracle berbagi kemampuan kedua zkCoprocessors, sambil memenuhi dua persyaratan fungsional pertama. Bagaimana zkOracle memenuhi fitur autonom dan bagaimana zkCoprocessor tidak?
Jadi apa arti ketiadaan otonom dalam zkCoprocessor: itu
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.
Dalam posting ini, kita akan melihat konsep-konsep yang baru-baru ini populer dari zkCoprocessor dan zkOracle dan membandingkan perbedaan-perbedaan mereka.
Ketika sebuah istilah diciptakan, maknanya sebenarnya tidak ditentukan oleh dirinya sendiri. Kami telah melihat hal ini sangat banyak dalam kasus blockchain.
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.
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'.
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.
Untuk merangkum, kami menyimpulkan bahwa ada dua jenis zkCoprocessor dalam praktik, dan mereka adalah sebagai berikut:
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.
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:
Ketika kita membandingkan langsung dua jenis zkCoprocessor dengan zkOracle, kita dapat melihat bahwa zkOracle memiliki semua fitur zkCoprocessor secara bersamaan:
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.
Pilih yang mana saat membangun?
Dalam urutan langkah demi langkah, kita dapat membuat beberapa keputusan tentang membangun sebuah aplikasi.
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.
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:
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:
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:
Kami telah membahas bagaimana zkOracle berbagi kemampuan kedua zkCoprocessors, sambil memenuhi dua persyaratan fungsional pertama. Bagaimana zkOracle memenuhi fitur autonom dan bagaimana zkCoprocessor tidak?
Jadi apa arti ketiadaan otonom dalam zkCoprocessor: itu
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.