Penulis: Kernel Ventures Turbo Guo

Editor: Kernel Ventures Rose, Kernel Ventures Mandy, Kernel Ventures Joshua

TLDR: Koprosesor ZK merupakan solusi bagi dApps untuk memanfaatkan sumber daya komputasi off-chain. Artikel ini membahas solusi yang ada, berbagai aplikasi, dan pengembangan koprosesor di masa mendatang. Topik utama yang dibahas adalah sebagai berikut:

  1. zkVM dari RISC Zero adalah solusi koprosesor ZK yang memungkinkan kontrak on-chain yang memanggil zkVM off-chain untuk menjalankan kode Rust tertentu dan mengembalikan hasilnya ke rantai, sekaligus menyediakan zkp untuk verifikasi on-chain atas kebenaran komputasi.

  2. Ada berbagai solusi untuk koprosesor ZK. Selain zkVM, pengguna juga dapat menulis sirkuit ZK yang disesuaikan untuk program mereka, atau menggunakan kerangka kerja yang telah dibuat sebelumnya untuk menulis sirkuit, sehingga memungkinkan kontrak untuk memanfaatkan sumber daya komputasi off-chain.

  3. Koprosesor ZK dapat berperan dalam DeFi, seperti memindahkan kalkulasi AMM dari jaringan ke jaringan lain untuk menangkap nilai yang mirip dengan MEV atau mengaktifkan logika yang kompleks dan intensif komputasi untuk AMM. Koprosesor ZK juga dapat memfasilitasi kalkulasi suku bunga secara real-time untuk protokol peminjaman, membuat kalkulasi margin menjadi transparan, dan lain sebagainya. zkAMM memiliki dua pendekatan implementasi, satu menggunakan zkVM, dan yang lainnya menggunakan zkOracle.

  4. Koprosesor ZK juga memiliki kasus penggunaan potensial lainnya, seperti dompet yang menggunakannya untuk melakukan verifikasi identitas di luar rantai. Koprosesor ini dapat memungkinkan komputasi yang lebih kompleks untuk permainan di rantai dan mengurangi gas yang diperlukan untuk tata kelola DAO, di antara aplikasi lainnya.

  5. Lanskap untuk koprosesor ZK masih belum pasti, tetapi dibandingkan dengan pengguna yang menulis sirkuit mereka sendiri, menggunakan solusi untuk antarmuka sumber daya di luar rantai lebih mudah digunakan. Namun, pertanyaan tentang penyedia layanan komputasi mana yang terintegrasi di balik solusi "antarmuka" itu, apakah penyedia cloud tradisional atau jaringan berbagi sumber daya yang terdesentralisasi, merupakan topik penting lainnya untuk dibahas.

1. Tujuan dan Aplikasi Koprosesor ZK

Sumber: Kernel Ventures

Inti dari koprosesor ZK adalah memindahkan komputasi on-chain ke off-chain, menggunakan bukti ZK untuk memastikan keandalan komputasi off-chain, yang memungkinkan kontrak pintar menangani sejumlah besar komputasi dengan mudah sambil memverifikasi keandalan komputasi. Ini mirip dengan ide zkRollup, tetapi Rollup menggunakan sumber daya komputasi off-chain pada lapisan protokol rantai, sementara koprosesor ZK digunakan oleh dApp untuk memanfaatkan sumber daya off-chain.

Menggunakan RISC Zero sebagai contoh untuk menjelaskan salah satu solusi koprosesor ZK, RISC Zero telah mengembangkan arsitektur koprosesor Bonsai ZK, yang intinya adalah zkVM RISC Zero. Pengembang dapat membuat zkp pada zkVM untuk "kode Rust tertentu yang dieksekusi dengan benar". Dengan zkVM, proses spesifik penerapan koprosesor ZK adalah:

  1. Pengembang mengirimkan permintaan ke kontrak relai Bonsai, yaitu untuk menjalankan program yang dibutuhkan pengembang di zkVM.

  2. Kontrak relai mengirimkan permintaan ke kumpulan permintaan di luar rantai.

  3. Bonsai mengeksekusi permintaan di zkVM off-chain, melakukan komputasi skala besar, lalu menghasilkan tanda terima.

  4. Bukti-bukti ini, yang juga dikenal sebagai "tanda terima", diterbitkan kembali ke rantai oleh Bonsai melalui kontrak relai.

Sumber: RISC Nol

Dalam Bonsai, program yang terbukti disebut Program Tamu, dan tanda terima digunakan untuk membuktikan bahwa program tamu telah dijalankan dengan benar. Tanda terima tersebut mencakup jurnal dan segel. Secara khusus, jurnal memuat keluaran publik dari aplikasi zkVM, sementara segel digunakan untuk membuktikan keabsahan tanda terima, yaitu untuk membuktikan bahwa program tamu telah dijalankan dengan benar. Segel itu sendiri adalah zkSTARK yang dihasilkan oleh pembuktian. Memverifikasi tanda terima memastikan bahwa jurnal dibuat menggunakan sirkuit yang benar, dsb.

Bonsai menyederhanakan proses bagi pengembang untuk mengompilasi kode Rust menjadi bytecode zkVM, mengunggah program, menjalankannya di VM, dan menerima umpan balik pembuktian, yang memungkinkan pengembang untuk lebih fokus pada desain logis. Bonsai memungkinkan tidak hanya logika kontrak parsial tetapi seluruh logika kontrak untuk berjalan di luar rantai. RISC Zero juga memanfaatkan kelanjutan, memecah pembuatan pembuktian besar menjadi bagian-bagian yang lebih kecil, yang memungkinkan pembuatan pembuktian untuk program besar tanpa menghabiskan memori yang berlebihan. Selain RISC Zero, ada proyek lain seperti IronMill, =nil; Foundation, dan Marlin yang menyediakan solusi umum serupa.

2. Aplikasi Koprosesor ZK di DeFi

2.1 AMM - Bonsai sebagai Koprosesor

zkUniswap adalah AMM yang memanfaatkan sumber daya komputasi off-chain. Fitur intinya adalah memindahkan sebagian komputasi swap off-chain, menggunakan Bonsai. Pengguna memulai permintaan swap on-chain. Kontrak relai Bonsai menerima permintaan, memulai komputasi off-chain, dan setelah selesai, mengembalikan hasil komputasi dan bukti ke fungsi panggilan balik EVM. Jika bukti berhasil diverifikasi, swap dijalankan.

Namun, pertukaran tidak dapat diselesaikan sekaligus. Proses permintaan dan eksekusi dilakukan dalam transaksi yang berbeda, yang menimbulkan risiko tertentu. Yaitu, antara pengajuan permintaan dan penyelesaian pertukaran, status pool dapat berubah. Karena verifikasi didasarkan pada status pool pada saat pengajuan permintaan, jika permintaan masih tertunda, dan status pool berubah, maka verifikasi tidak akan valid. Ini merupakan pertimbangan penting dalam desain dan keamanan sistem tersebut.

Untuk mengatasi masalah ini, pengembang telah merancang kunci pool. Saat pengguna mengajukan permintaan, semua operasi selain menyelesaikan swap dikunci sementara hingga komputasi off-chain berhasil memicu swap on-chain atau waktu swap habis (batas waktu akan ditetapkan sebelumnya). Dengan adanya batas waktu, bahkan jika ada masalah dengan relai atau zkp, pool tidak akan dikunci tanpa batas waktu. Batas waktu spesifik mungkin beberapa menit.

zkUniswap memiliki desain unik untuk menangkap MEV, karena pengembang ingin protokol tersebut mendapatkan manfaat dari MEV. Secara teori, zkAMM juga memiliki MEV, karena orang pertama yang mengajukan swap dapat menguncinya dan mendahului orang lain, yang menyebabkan perang gas, dan pembangun masih dapat memprioritaskan urutan transaksi. Namun, zkUniswap mengambil keuntungan MEV untuk dirinya sendiri menggunakan metode yang dikenal sebagai Variable Rate Gradual Dutch Auction (VRGDA). Pendekatan ini memungkinkan zkUniswap untuk mengekstrak nilai MEV untuk protokol tersebut.

Konsep zkUniswap cukup menarik. Konsep ini melibatkan penurunan harga aset terkunci dalam lelang, dan jika aset terkunci tersebut terjual dengan cepat, protokol tersebut mengenali permintaan yang tinggi dan menaikkan harga secara otomatis. Jika penjualan aset terkunci melambat, protokol tersebut menurunkan harga. Pendekatan inovatif ini berpotensi menjadi sumber pendapatan baru. Pada dasarnya, protokol tersebut memperkenalkan mekanisme unik untuk memprioritaskan transaksi, dan persaingan untuk mendapatkan harga menguntungkan proyek secara langsung melalui mekanisme ini.

2.2 AMM - zkOracle sebagai Koprosesor

Selain menggunakan zkVM, beberapa pihak telah mengusulkan penggunaan zkOracle untuk memanfaatkan sumber daya komputasi off-chain, perlu dicatat bahwa zkOracle adalah oracle I/O (input dan output) yang menangani input dan output. Secara umum, ada dua jenis oracle, satu adalah oracle input, dan yang lainnya adalah oracle output. Oracle input memproses (menghitung) data off-chain dan menaruhnya di on-chain, sedangkan oracle output memproses (menghitung) data on-chain dan menyediakannya di off-chain. Oracle I/O (zkOracle) pertama-tama melakukan output, kemudian input, yang memungkinkan chain untuk memanfaatkan sumber daya komputasi off-chain.

Di satu sisi, zkOracle menggunakan data on-chain sebagai sumber data, dan di sisi lain, ia menggunakan ZK untuk memastikan bahwa komputasi node oracle jujur, sehingga mencapai fungsi koprosesor. Oleh karena itu, komputasi inti AMM dapat ditempatkan di dalam zkOracle, yang memungkinkan fungsionalitas AMM tradisional sekaligus memungkinkan operasi yang lebih kompleks dan intensif komputasi menggunakan zkOracle.

Sumber: github fewwwww/zkAMM

2.3 Perhitungan Suku Bunga Kredit, Perhitungan Margin, dan Aplikasi Lainnya

Selain metode implementasi, dengan penambahan koprosesor ZK, banyak fungsi dapat dicapai. Misalnya, protokol peminjaman dapat menyesuaikan suku bunga menurut parameter waktu nyata, bukan kondisi yang telah ditetapkan sebelumnya. Misalnya, menaikkan suku bunga untuk menarik pasokan saat permintaan pinjaman tinggi, dan menurunkan suku bunga saat permintaan menurun. Hal ini mengharuskan protokol peminjaman untuk memperoleh sejumlah besar data on-chain secara waktu nyata, melakukan praproses data, dan menghitung parameter di luar rantai (kecuali jika biaya on-chain sangat rendah).

Perhitungan yang rumit seperti menentukan saldo margin, laba/rugi yang belum terealisasi, dan lain-lain, juga dapat menggunakan koprosesor untuk eksekusi. Keuntungan menggunakan koprosesor adalah membuat aplikasi ini lebih transparan dan dapat diverifikasi. Logika mesin margin tidak lagi menjadi kotak hitam rahasia. Meskipun perhitungan dilakukan di luar jaringan, pengguna dapat sepenuhnya mempercayai kebenaran eksekusinya. Pendekatan ini juga berlaku untuk perhitungan opsi.

3. Aplikasi Lain dari Koprosesor ZK

3.1 Dompet - Menggunakan Bonsai sebagai Koprosesor

Bonfire Wallet menggunakan zkVM untuk memindahkan komputasi verifikasi identitas di luar rantai. Tujuan dompet ini adalah untuk memungkinkan pengguna membuat dompet burner menggunakan informasi biometrik (sidik jari) atau perangkat keras terenkripsi yubikey. Secara khusus, Bonfire Wallet menggunakan WebAuthn, standar autentikasi web umum, untuk memungkinkan pengguna menyelesaikan verifikasi identitas web secara langsung dengan perangkat tanpa kata sandi. Jadi di Bonfire Wallet, pengguna membuat kunci publik dengan WebAuthn (bukan di rantai, tetapi untuk WebAuthn), lalu menggunakannya untuk membuat dompet. Setiap dompet Burner memiliki kontrak di rantai, yang berisi kunci publik WebAuthn. Kontrak perlu memverifikasi tanda tangan WebAuthn pengguna. Namun, komputasi ini besar, jadi Bonsai digunakan untuk memindahkan komputasi ini di luar rantai, melalui program tamu zkVM untuk memverifikasi tanda tangan di luar rantai, dan menghasilkan zkp untuk verifikasi di rantai.

Sumber: Dompet Bonfire

3.2 Pengambilan Data On-Chain - Sirkuit ZK Ditulis oleh Pengguna

Axiom adalah aplikasi yang tidak menggunakan zkVM tetapi menggunakan solusi koprosesor yang berbeda. Pertama-tama mari kita perkenalkan tujuan Axiom. Aplikasi ini memanfaatkan koprosesor ZK untuk memungkinkan kontrak mengakses informasi historis on-chain. Pada kenyataannya, memungkinkan kontrak untuk membaca data historis cukup menantang, karena kontrak pintar biasanya memperoleh data on-chain secara real-time, yang bisa sangat mahal. Sulit bagi kontrak untuk mengakses data on-chain yang berharga seperti saldo akun historis atau catatan transaksi.

Sumber: Demo Axiom

Node Axiom mengakses data on-chain yang dibutuhkan dan melakukan komputasi yang ditentukan di luar rantai, lalu menghasilkan bukti tanpa pengetahuan untuk komputasi tersebut, yang membuktikan bahwa hasilnya dihitung dengan benar berdasarkan data on-chain yang valid. Bukti ini diverifikasi di rantai, yang memastikan bahwa kontrak dapat mempercayai hasil ini.

Untuk menghasilkan zkp untuk komputasi off-chain, program perlu dikompilasi ke dalam sirkuit ZK. Sebelumnya kami juga menyebutkan penggunaan zkVM untuk ini, tetapi Axiom menyarankan bahwa ada banyak solusi untuk ini, dan perlu menyeimbangkan kinerja, fleksibilitas, dan pengalaman pengembangan:

  1. Sirkuit Khusus: jika pengembang menyesuaikan sirkuit untuk program mereka, kinerjanya pasti akan menjadi yang terbaik, tetapi butuh waktu untuk mengembangkannya;

  2. eDSL/DSL: pengembang masih menulis sirkuit mereka, tetapi ada beberapa kerangka kerja opsional untuk membantu pengembang memecahkan masalah terkait zk, sehingga menyeimbangkan kinerja dan pengalaman pengembangan.

  3. zkVM: pengembang langsung menjalankan ZK pada mesin virtual yang ada, yang sangat praktis, tetapi Axiom yakin itu tidak efisien.

Oleh karena itu, Axiom memilih opsi kedua, dan menyediakan kepada pengguna seperangkat modul ZK yang dioptimalkan, sehingga memungkinkan mereka mendesain sirkuit mereka sendiri.

Proyek yang mirip dengan Axiom meliputi Herodotus, yang bertujuan menjadi middleware untuk pengiriman pesan lintas rantai. Karena pemrosesan informasi dilakukan di luar rantai, masuk akal untuk mengizinkan rantai yang berbeda memperoleh data yang diproses. Proyek lain, Space and Time, menggunakan arsitektur yang mirip untuk mengimplementasikan pengindeksan data.

3.3 Game On-Chain, Tata Kelola DAO, dan Aplikasi Lainnya

Selain permainan on-chain di atas, tata kelola DAO juga dapat menggunakan koprosesor ZK. RISC Zero percaya bahwa setiap komputasi yang membutuhkan lebih dari 250 ribu gas akan lebih murah menggunakan koprosesor ZK, tetapi bagaimana ini dihitung masih harus diselidiki lebih lanjut. Tata kelola DAO juga dapat menggunakan koprosesor ZK, karena melibatkan banyak orang dan banyak kontrak, yang sangat intensif secara komputasi. RISC Zero mengklaim bahwa penggunaan Bonsai dapat mengurangi biaya gas hingga 50%. Banyak proyek ZKML, seperti Modulus Labs dan Giza, menggunakan solusi yang sama dengan koprosesor ZK, tetapi konsep koprosesor ZK lebih luas.

Perlu disebutkan bahwa ada beberapa proyek tambahan di bidang koprosesor ZK, seperti ezkl, yang menyediakan kompiler untuk sirkuit ZK, perangkat untuk menyebarkan ZK, dan perangkat untuk memindahkan komputasi on-chain ke luar rantai.

4. Prospek Masa Depan

Koprosesor menyediakan aplikasi on-chain dengan sumber daya komputasi eksternal yang mirip dengan "cloud", menawarkan komputasi yang hemat biaya dan berlimpah, sementara pemrosesan on-chain berfokus pada kalkulasi penting. Dalam praktiknya, zkVM juga dapat berjalan di cloud. Pada dasarnya, koprosesor ZK adalah pendekatan arsitektur yang memindahkan komputasi on-chain ke luar rantai, dengan sumber daya komputasi luar rantai yang tidak terbatas.

Pada dasarnya, sumber daya komputasi off-chain dapat disediakan oleh penyedia cloud tradisional, bahkan berbagi sumber daya komputasi terdesentralisasi, dan perangkat lokal. Ketiga arah ini masing-masing memiliki karakteristiknya sendiri. Penyedia cloud tradisional dapat menyediakan solusi komputasi off-chain yang relatif matang, "ketahanan" sumber daya komputasi terdesentralisasi di masa mendatang mungkin lebih kuat, dan komputasi lokal juga memiliki banyak potensi. Namun saat ini, banyak proyek koprosesor ZK berada dalam tahap penyedia layanan sumber tertutup karena ekosistem untuk layanan ini belum sepenuhnya terbentuk dan spesialisasi layanan di antara berbagai proyek belum ditentukan. Dua skenario yang mungkin untuk masa mendatang adalah:

  1. Setiap bagian dari koprosesor ZK memiliki sejumlah besar proyek yang bersaing satu sama lain.

  2. Satu proyek tunggal dengan pengalaman layanan yang unggul dapat mendominasi pasar.

Dari sudut pandang pengembang, saat menggunakan koprosesor ZK, mereka mungkin hanya berinteraksi dengan satu proyek "antarmuka". Hal ini serupa dengan alasan mengapa Amazon Web Services memiliki pangsa pasar yang besar, karena pengembang cenderung terbiasa dengan metode penyebaran tertentu. Namun, pertanyaan tentang penyedia layanan komputasi mana (perusahaan cloud tradisional, berbagi sumber daya terdesentralisasi) yang terintegrasi di balik proyek "antarmuka" sumber daya komputasi off-chain ini adalah topik lain yang layak dibahas.

Kernel Ventures adalah komunitas penelitian & pengembangan yang digerakkan oleh dana VC kripto dengan lebih dari 70 investasi tahap awal, yang berfokus pada infrastruktur, middleware, dApps, khususnya ZK, Rollup, DEX, Modular Blockchain, dan vertikal yang akan mendatangkan satu miliar pengguna berikutnya dalam kripto seperti Abstraksi Akun, Ketersediaan Data, Skalabilitas, dan lain-lain. Selama tujuh tahun terakhir, kami telah berkomitmen untuk mendukung pertumbuhan komunitas pengembangan inti dan Asosiasi Blockchain Universitas di seluruh dunia.

REFERENSI:

  1. Panduan untuk Koprosesor ZK untuk Skalabilitas:https://www.risczero.com/news/a-guide-to-zk-coprocessors-for-scalability

  2. Mendefinisikan zkOracle untuk Ethereum:https://ethresear.ch/t/defining-zkoracle-for-ethereum/15131

  3. zkUniswap: zkAMM pertama di jenisnya:https://ethresear.ch/t/zkuniswap-zkamm-pertama-di-jenisnya/16839

  4. Apa itu Koprosesor ZK?:https://blog.axiom.xyz/what-is-a-zk-coprocessor/

  5. Pengantar Singkat tentang Koprosesor: https://crypto.mirror.xyz/BFqUfBNVZrqYau3Vz9WJ-BACw5FT3W30iUX3mPlKxtA

  6. Aplikasi Terbaru yang Dibangun di Hyper Oracle (Bonus: Hal yang Dapat Anda Bangun Sekarang):https://mirror.xyz/hyperoracleblog.eth/Tik3nBI9mw05Ql_aHKZqm4hNxfxaEQdDAKn7JKcx0xQ

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