
Penulis: Kernel Ventures Turbo Guo
Peninjau: Kernel Ventures Mandy, Kernel Ventures Joshua
TLDR:
Koprosesor ZK adalah solusi yang memungkinkan dApps memanfaatkan sumber daya komputasi off-chain. Artikel ini terutama membahas implementasi koprosesor, berbagai aplikasi, dan arah pengembangan di masa depan.
ZkVM RISC Zero adalah solusi koprosesor ZK yang memungkinkan kontrak on-chain memanggil zkVM off-chain untuk menjalankan kode Rust tertentu dan mengembalikan hasilnya ke rantai, sekaligus memberikan zkp untuk kontrak guna memverifikasi apakah penghitungannya benar.
Koprosesor ZK memiliki metode implementasi yang berbeda. Selain zkVM, pengguna juga dapat menulis sirkuit ZK yang disesuaikan untuk program mereka sendiri, atau menggunakan kerangka kerja prefabrikasi untuk menulis sirkuit, sehingga kontrak dapat memanfaatkan sumber daya komputasi off-chain.
Koprosesor ZK dapat berperan dalam DeFi, seperti menempatkan penghitungan AMM di luar rantai, memungkinkan protokol menangkap nilai mirip MEV, atau memungkinkan AMM mengimplementasikan logika operasi yang kompleks dan intensif komputasi. Koprosesor ZK juga memungkinkan protokol peminjaman menghitung suku bunga secara real time, membuat penghitungan margin transparan, dll. Ada dua implementasi zkAMM, satu menggunakan zkVM dan yang lainnya menggunakan zkOracle.
Ada potensi penggunaan lain dari koprosesor ZK. Misalnya, dompet dapat menggunakan koprosesor ZK untuk melakukan verifikasi identitas secara off-chain. Koprosesor juga dapat mengaktifkan permainan on-chain untuk melakukan penghitungan yang lebih kompleks dan mengurangi bahan bakar yang diperlukan untuk tata kelola DAO. Tunggu.
Pola koprosesor ZK masih ragu-ragu, tetapi dibandingkan dengan pengguna yang menulis sirkuit mereka sendiri, akan lebih ramah menggunakan proyek sebagai antarmuka untuk memanggil sumber daya off-chain, tetapi penyedia layanan komputasi apa (vendor cloud tradisional, vendor cloud tradisional, dll.) terhubung di belakang proyek "antarmuka"? Pembagian sumber daya terdesentralisasi) adalah masalah lain yang perlu didiskusikan.
1. Arti dan penerapan koprosesor ZK

Sumber gambar: Kernel Ventures
Inti dari koprosesor ZK adalah untuk memindahkan penghitungan on-chain ke luar rantai, dan menggunakan ZK untuk membuktikan keandalan proses penghitungan di luar rantai, memungkinkan kontrak pintar dengan mudah menangani penghitungan dalam jumlah besar, sekaligus memungkinkan kontrak memverifikasi keandalannya. perhitungan. Ini mirip dengan ide zkRollup, tetapi Rollup adalah lapisan protokol rantai yang menggunakan sumber daya komputasi off-chain, sedangkan koprosesor ZK adalah dApp yang menggunakan sumber daya off-chain.
RISC Zero digunakan di sini untuk menjelaskan implementasi koprosesor ZK, namun ada banyak implementasi koprosesor ZK yang akan diperkenalkan nanti. RISC Zero mengembangkan arsitektur koprosesor Bonsai ZK, yang intinya adalah zkVM RISC Zero. Pengembang dapat menghasilkan zkp di zkVM jika "sebagian kode Rust dijalankan dengan benar". Dengan zkVM, proses spesifik untuk mengimplementasikan koprosesor ZK adalah:
Pengembang memulai permintaan ke kontrak relai Bonsai, yaitu program yang diminta oleh pengembang dijalankan di zkVM.
Kontrak relai mengirimkan permintaan ke kumpulan permintaan off-chain
Bonsai mengeksekusi permintaan di zkVM off-chain, melakukan operasi skala besar di luar rantai, dan kemudian menghasilkan tanda terima untuk itu.
Bukti-bukti ini, juga disebut “tanda terima”, diterbitkan kembali ke rantai oleh Bonsai melalui kontrak estafet.

Sumber gambar: RISC Nol
Program yang disertifikasi dalam Bonsai disebut Program Tamu, dan tanda terimanya digunakan untuk membuktikan bahwa program tamu telah dilaksanakan dengan benar. Kredensial termasuk jurnal dan stempel. Secara khusus, Jurnal membawa keluaran publik dari aplikasi zkVM, dan segelnya digunakan untuk membuktikan keabsahan sertifikat, yaitu untuk membuktikan bahwa program tamu dijalankan dengan benar. Segel itu sendiri juga merupakan zkSTARK yang dihasilkan oleh pemberi sertifikasi . Memverifikasi kredensial memastikan bahwa jurnal dibuat dengan sirkuit yang benar, dll.
Bonsai menyederhanakan proses bagi pengembang mulai dari kompilasi kode Rust hingga bytecode zkVM, pengunggahan program, eksekusi di VM, dan umpan balik bukti, memungkinkan pengembang untuk lebih fokus pada desain logis program. Dan tidak hanya sebagian dari logika kontrak, tetapi seluruh logika kontrak dapat dijalankan secara off-chain. RISC Zero juga menggunakan kelanjutan, yang membagi pembuatan bukti besar menjadi beberapa bagian dan kemudian membuktikan setiap bagian secara independen. Hal ini memungkinkan bukti dihasilkan untuk program besar tanpa menghabiskan terlalu banyak memori. Selain RISC Zero, beberapa proyek seperti IronMill, =nil Foundation dan Marlin juga memberikan solusi umum serupa.
2. Penerapan koprosesor ZK di DeFi
2.1 AMM - Bonsai sebagai koprosesor
zkUniswap adalah AMM yang memanfaatkan sumber daya komputasi off-chain. Intinya adalah menempatkan bagian dari perhitungan swap di luar rantai, dan menggunakan Bonsai. Pengguna memulai permintaan swap pada rantai. Kontrak relai Bonsai menerima permintaan dan memulai penghitungan off-chain. Setelah Bonsai menyelesaikan penghitungan, ia mengembalikan hasil penghitungan dan bukti ke fungsi panggilan balik di EVM. Jika bukti berhasil diverifikasi, swap akan dijalankan.
Namun swap tidak diselesaikan sekaligus, proses permintaan dan eksekusi berada dalam transaksi yang berbeda. Hal ini membawa risiko tertentu, yaitu status pool dapat berubah setelah permintaan diajukan dan sebelum swap selesai. Karena validasi didasarkan pada keadaan pool saat permintaan diajukan. Jika status kumpulan berubah saat permintaan masih menunggu, verifikasi akan gagal.
Untuk mengatasi masalah ini, pengembang merancang kunci kolam renang. Saat pengguna memulai permintaan, semua operasi kecuali pertukaran penyelesaian akan dikunci hingga off-chain berhasil memicu pertukaran on-chain atau waktu pertukaran habis (kali ini akan ditentukan sebelumnya). Jika ada batasan waktu, meskipun ada masalah pada relay atau zkp, pool tidak akan terkunci selamanya. Batas waktu spesifiknya mungkin beberapa menit.
zkUniswap memiliki desain khusus untuk MEV, yaitu pengembang ingin protokol menangkap nilai MEV. Secara teori, zkAMM juga memiliki MEV, karena orang pertama yang mengirimkan transaksi dapat menguncinya, sehingga semua orang akan tetap bersaing untuk mendapatkan bahan bakar, dan pembangun juga dapat mengurutkan transaksi yang diminta. Tapi zkUniswap akan memakan pendapatan MEV itu sendiri, menggunakan variabel lelang Belanda gradien tingkat suku bunga (VRGDA).
zkUniswap mengeluarkan kunci tersebut dan melelangnya dengan harga yang lebih murah. Jika kunci tersebut dijual dengan cepat, protokol akan mengetahui bahwa permintaan saat ini tinggi, dan kemudian secara otomatis akan menaikkan harga. protokol akan menurunkan harga. Ini akan menjadi sumber pendapatan baru. Begitu pula dengan perjanjian tersebut memberikan hal baru untuk menentukan tata cara transaksi, dan uang dari harga yang kompetitif langsung diberikan kepada pihak proyek melalui hal baru.
2.2 AMM - zkOracle sebagai koprosesor
Selain menggunakan zkVM, beberapa orang telah mengusulkan penggunaan zkOracle untuk mewujudkan pemanfaatan sumber daya komputasi off-chain, dan zkOracle adalah oracle yang memperhitungkan input dan output. Secara umum ada dua jenis oracle, satu adalah oracle masukan, dan yang lainnya adalah oracle keluaran. Oracle masukan mengurutkan (menghitung) data off-chain dan memasukkannya ke dalam rantai, dan oracle keluaran mengurutkan (menghitung) data tersebut. data on-chain. ) dan kemudian diberikan ke off-chain. Oracle I/O (input dan output) (zkOracle) melakukan output terlebih dahulu dan kemudian input, sehingga memungkinkan rantai untuk memanfaatkan sumber daya komputasi off-chain.
Di satu sisi, zkOracle menggunakan data on-chain sebagai sumber data. Di sisi lain, zkOracle menggunakan ZK untuk memastikan bahwa penghitungan node Oracle tidak curang, dan dapat mewujudkan fungsi co-processor. Oleh karena itu, penghitungan inti AMM dapat ditempatkan di zkOracle. Saat mengimplementasikan fungsi AMM tradisional, zkOracle juga dapat digunakan untuk mengimplementasikan operasi yang lebih kompleks dan memakan sumber daya komputasi.

Sumber gambar: github somewwww/zkAMM
2.3 Perhitungan suku bunga pinjaman, perhitungan margin dan aplikasi lainnya
Terlepas dari implementasinya, banyak fungsi yang dapat dicapai dengan koprosesor ZK. Misalnya, perjanjian pinjaman tidak lagi dapat mengatur parameternya, tetapi menyesuaikan tingkat suku bunga berdasarkan kondisi pinjaman secara real-time. Misalnya, menaikkan suku bunga untuk menarik pasokan ketika permintaan untuk meminjam uang tinggi, dan kemudian menurunkan suku bunga ketika permintaan rendah. Hal ini memerlukan protokol peminjaman untuk memperoleh data on-chain secara real-time dan melakukan sejumlah besar penghitungan untuk mendapatkan parameter yang sesuai, yang memerlukan penghitungan off-chain (kecuali biaya on-chain sangat rendah).
Operasi kompleks seperti menghitung saldo margin, keuntungan dan kerugian yang belum direalisasi, jumlah likuidasi, dll. juga dapat ditransfer ke co-processor untuk dieksekusi. Keuntungan menggunakan koprosesor adalah membuat aplikasi ini lebih transparan dan dapat diverifikasi, dan logika mesin margin bukan lagi kotak hitam rahasia. Meskipun komputasi dilakukan secara off-chain, pengguna dapat memiliki kepercayaan penuh terhadap kebenaran eksekusinya. Selain itu, pendekatan ini juga berlaku untuk penghitungan opsi.
3. Aplikasi lain dari koprosesor ZK
3.1 Dompet menggunakan Bonsai sebagai co-processor
Bonfire Wallet menggunakan zkVM untuk memindahkan perhitungan verifikasi identitas secara off-chain. Tujuan dari dompet ini adalah untuk memungkinkan pengguna membuat dompet burner dengan informasi biometrik (sidik jari), atau perangkat keras kriptografi yubikey.
Secara khusus, Bonfire Wallet menggunakan WebAuthn, standar otentikasi halaman web umum, yang memungkinkan pengguna untuk langsung menggunakan perangkat mereka untuk menyelesaikan otentikasi pada halaman web tanpa kata sandi. Jadi di dompet Bonfire, pengguna membuat kunci publik melalui WebAuthn (bukan pada rantai, untuk WebAuthn), dan kemudian menggunakannya untuk membuat dompet.
Setiap dompet Burner memiliki kontrak pada rantainya, yang berisi kunci publik WebAuthn. Kontrak tersebut perlu memverifikasi tanda tangan WebAuthn pengguna. Namun jumlah kalkulasinya sangat besar, sehingga Bonsai digunakan untuk meletakkan kalkulasi off-chain, memverifikasi tanda tangan off-chain melalui program tamu zkVM, dan menghasilkan zkp untuk verifikasi on-chain.

Sumber gambar: Dompet Api Unggun
3.2 Pengambilan data on-chain - pengguna menulis sirkuit ZK sendiri
Aksioma adalah aplikasi yang tidak menggunakan zkVM tetapi menggunakan solusi koprosesor lain. Pertama-tama mari kita perkenalkan apa yang ingin dilakukan Axiom. Ia berharap dapat menggunakan koprosesor ZK untuk memungkinkan kontrak mengakses informasi rantai historis. Faktanya, sulit bagi kontrak untuk membaca data historis, karena kontrak pintar umumnya memperoleh data on-chain secara real-time, dan sangat mahal bagi kontrak untuk mendapatkan data on-chain yang berharga seperti saldo akun masa lalu atau catatan transaksi.

Sumber gambar: Demo aksioma
Node aksioma mengakses data on-chain yang diperlukan dan melakukan perhitungan off-chain yang ditentukan, kemudian menghasilkan bukti tanpa pengetahuan untuk perhitungan tersebut yang membuktikan bahwa hasilnya dihitung dengan benar berdasarkan data on-chain yang valid. Bukti ini diverifikasi secara on-chain, memastikan bahwa kontrak dapat mempercayai hasilnya.
Untuk menghasilkan zkp untuk perhitungan off-chain, Anda perlu mengkompilasi program ke dalam sirkuit ZK. Saya juga menyebutkan penggunaan zkVM untuk melakukan ini, dan Axiom secara resmi menunjukkan bahwa ada banyak solusi untuk masalah ini, yang perlu mempertimbangkan kinerja, fleksibilitas. dan pengalaman pengembangan.
Sirkuit yang disesuaikan: Pengembang menyesuaikan sirkuit untuk program tersebut, yang pasti akan memiliki kinerja terbaik, tetapi akan membutuhkan waktu untuk berkembang;
eDSL/DSL: Pengembang masih menulis sirkuit mereka sendiri, tetapi ada beberapa kerangka kerja opsional yang membantu pengembang memecahkan masalah terkait ZK, yang dapat menyeimbangkan kinerja dan pengalaman pengembangan.
zkVM: Pengembang langsung menggunakan mesin virtual siap pakai untuk menjalankan ZK, yang sangat nyaman tetapi Axiom secara resmi percaya bahwa efisiensinya sangat rendah.
Oleh karena itu, Axiom memilih opsi kedua, dan tim proyek juga menyediakan serangkaian modul ZK yang dioptimalkan kepada pengguna sehingga mereka dapat merancang sirkuit mereka sendiri.
Proyek yang mirip dengan Axiom adalah Herodotus, tetapi yang ingin dilakukannya adalah middleware untuk transmisi informasi lintas rantai. Karena pemrosesan informasi bersifat off-chain, merupakan ide yang masuk akal untuk membiarkan rantai yang berbeda memperoleh data yang diproses. Proyek lain, Ruang dan Waktu, menggunakan arsitektur serupa untuk mengimplementasikan pengindeksan data.
3.3 Game on-chain, tata kelola DAO, dan aplikasi lainnya
Selain itu, koprosesor ZK dapat digunakan untuk game on-chain dan tata kelola DAO. RISC Zero yakin bahwa perhitungan apa pun yang memerlukan lebih dari 250 ribu gas akan lebih murah jika menggunakan koprosesor ZK, namun cara menentukan hal ini masih harus dilihat. Tata kelola DAO juga dapat menggunakan koprosesor ZK, karena melibatkan banyak orang dan banyak kontrak, yang menghabiskan sumber daya komputasi. RISC Zero mengklaim biaya bahan bakar bisa berkurang 50% setelah menggunakan Bonsai. ZKML pada dasarnya adalah ide koprosesor ZK, jadi Modulus Labs dan Giza juga merupakan proyek di bidang ini, tetapi konsep koprosesor ZK lebih besar.
Selain itu, ada beberapa proyek tambahan di bidang koprosesor ZK, seperti ezkl, yang menyediakan kompiler untuk membuat sirkuit ZK, rangkaian alat untuk penerapan ZK, alat untuk memindahkan perhitungan on-chain ke off-chain, dll.
4. Prospek masa depan
Koprosesor memungkinkan aplikasi on-chain memiliki sumber daya komputasi eksternal seperti "cloud", yang menyediakan penghitungan dalam jumlah besar yang relatif murah, sementara hanya penghitungan yang diperlukan yang diproses dalam rantai. Dalam situasi sebenarnya, zkVM juga dapat berjalan di cloud. Koprosesor ZK pada dasarnya adalah sebuah arsitektur, cara untuk menempatkan komputasi on-chain secara off-chain, dan tidak ada batasan bagi siapa yang menyediakan sumber daya komputasi off-chain.
Pada dasarnya, sumber daya komputasi off-chain digunakan bersama oleh produsen besar tradisional, bahkan sumber daya komputasi terdesentralisasi, dan perangkat lokal. Masing-masing dari ketiga arah ini berbeda. Produsen besar tradisional dapat menyediakan solusi komputasi off-chain yang relatif matang. Di masa depan, "kekokohan" sumber daya komputasi terdesentralisasi mungkin lebih kuat, dan komputasi lokal pengguna juga memiliki imajinasi yang besar. Namun, banyak proyek koprosesor ZK saat ini memilih untuk menyediakan layanan dalam tahap sumber tertutup, karena jalur hulu dan hilir belum terbentuk, dan layanan tidak dapat disempurnakan dan diserahkan ke proyek yang berbeda :
Ada banyak proyek yang bersaing untuk setiap aspek koprosesor ZK
Sebuah proyek dengan pengalaman pelayanan yang baik menempati sebagian besar pasar
Dari sudut pandang pengembang, mereka hanya boleh menggunakan satu proyek "antarmuka" saat menggunakan koprosesor ZK. Inilah sebabnya Amazon Cloud menempati sebagian besar pasar, dan pengembang akan terbiasa dengan satu metode penerapan. Namun sebagai proyek "antarmuka" untuk sumber daya komputasi off-chain, penyedia layanan komputasi (vendor cloud tradisional, berbagi sumber daya terdesentralisasi) yang terhubung di belakangnya adalah masalah lain yang layak untuk didiskusikan.
Kernel Ventures adalah dana modal ventura kripto yang didorong oleh komunitas penelitian dan pengembangan dengan lebih dari 70 investasi tahap awal yang berfokus pada infrastruktur, middleware, dApps, terutama ZK, Rollup, DEX, blockchain modular, dan area Vertikal untuk miliaran pengguna kripto di masa depan, seperti abstraksi akun, ketersediaan data, skalabilitas, dll. Selama tujuh tahun terakhir, kami telah berkomitmen untuk mendukung pertumbuhan komunitas pengembangan inti dan asosiasi blockchain universitas di seluruh dunia.
Referensi:
Panduan Koprosesor ZK untuk Skalabilitas:https://www.risczero.com/news/a-guide-to-zk-coprocessors-for-scalability
Mendefinisikan zkOracle untuk Ethereum:https://ethresear.ch/t/defining-zkoracle-for-ethereum/15131
zkUniswap: zkAMM pertama dari jenisnya:https://ethresear.ch/t/zkuniswap-a-first-of-its-kind-zkamm/16839
Apa itu Koprosesor ZK?:https://blog.axiom.xyz/what-is-a-zk-coprocessor/
Pengantar Singkat tentang Koprosesor:https://crypto.mirror.xyz/BFqUfBNVZrqYau3Vz9WJ-BACw5FT3W30iUX3mPlKxtA
Aplikasi Terbaru yang Dibuat di Hyper Oracle (Bonus: Hal yang Dapat Anda Bangun Sekarang):https://mirror.xyz/hyperoracleblog.eth/Tik3nBI9mw05Ql_aHKZqm4hNxfxaEQdDAKn7JKcx0xQ
Dompet Api Unggun:https://ethglobal.com/showcase/bonfire-wallet-n1dzp
