Pada KTT ETHShanghai 2023, pendiri Axiom Yi Sun memperkenalkan koprosesor ZK Ethereum Axiom dan kepentingannya dalam hal akses data dan daya komputasi. Axiom menyadari perluasan akses data dan kalkulasi melalui konsep operasi Refleksi, dan menyadari validitas kueri dengan memverifikasi rantai hash dan memelihara cache. Aplikasi untuk Axiom mencakup aplikasi berbiaya tinggi, akses data yang lebih besar, aplikasi berdasarkan protokol manajemen data historis, dan banyak lagi. Melalui Axiom, smart contract dapat memperoleh data dan daya komputasi yang lebih luas, yang selanjutnya mendorong pengembangan aplikasi Ethereum.
Teks berikut adalah terjemahan bahasa Mandarin dari pidato Yi Sun, dan tautannya adalah video langsung:
Pertama, mari kita pahami perjalanan pengguna untuk benar-benar mengakses informasi Ethereum. Ketika kami pertama kali menggunakan Ethereum, cara kami benar-benar menerima informasi tentang apa yang terjadi di rantai adalah melalui panggilan JSON-RPC untuk mengarsipkan anotasi. Tujuan JSON-RPC API adalah untuk benar-benar menyajikan informasi tentang riwayat on-chain kepada pengguna. Pada dasarnya, semua informasi yang kami lihat tentang blockchain diekstraksi dari panggilan API ini dan disajikan sebagai entri di situs web untuk dibaca pengguna.
Sekarang, karena pengguna menjadi lebih mahir dalam berinteraksi dengan blockchain, kami mulai membutuhkan tampilan rantai yang semakin kompleks. Oleh karena itu, berbagai jenis node arsip sedang dikembangkan untuk pengorbanan pengguna yang berbeda. Jadi ada Geth, Erigon, Nethermind, dan sekarang Reth. Kita dapat memilih simpul arsip yang paling sesuai dengan kebutuhan kita sendiri.
Jika pengguna tidak puas dengan API JSON-RPC yang terpisah, pengindeks dapat dipilih untuk menerapkan pasca-pemrosesan saat melacak transaksi. Untuk aplikasi yang berbeda, pengguna mungkin tertarik dengan data yang dikembalikan dari The Graph atau Covalent.
Baru-baru ini, ada juga dompet dan produk lain yang menawarkan simulasi transaksi di atas node arsip. Ini berarti kita dapat melihat hasil sebenarnya dari transaksi virtual sebelum melakukannya. Secara keseluruhan, sebagai pengguna akhir, cara kami berinteraksi dengan Ethereum semakin canggih, menggunakan lebih banyak komputasi selain data yang kami baca.
Sekarang, jika kita memikirkannya bukan dari sudut pandang pengguna, tetapi dari sudut pandang smart contract di Ethereum. Tentu saja, kontrak juga ingin dapat mengakses data dan melakukan komputasi, tetapi ini lebih menantang. Faktanya, jika kita membuka OpenSea dan melihat daftar CryptoPunk, kita akan menemukan bahwa dari semua informasi di halaman tersebut, hanya sebagian kecil yang dapat diakses dalam kontrak pintar di rantai tersebut.
Faktanya, untuk daftar CryptoPunk, informasi ini hanya untuk pemegang saat ini. Tentu saja, ada banyak informasi lain di halaman tersebut, tetapi semua informasi terkait informasi transfer historis, harga historis, dan pemilik historis sebenarnya tidak dapat diakses oleh smart contract karena termasuk dalam sejarah masa lalu. Sejarah ini merupakan informasi on-chain, tetapi tidak tersedia untuk kontrak pintar karena kita perlu menghindari memaksa setiap node Ethereum penuh untuk mempertahankan informasi ini dalam akses acaknya untuk memverifikasi transaksi.
Selain itu, seperti yang dapat dikatakan oleh pengembang blockchain mana pun kepada Anda, menjalankan komputasi on-chain sangat mahal, meskipun Ethereum memiliki operasi mesin virtual (VM) yang relatif efisien, dan prakompilasi membuat jenis operasi tertentu lebih murah. Misalnya, Ethereum memberikan dukungan yang relatif murah untuk operasi kurva eliptik pada kurva BN254. Namun, untuk beberapa aplikasi tertentu, Mesin Virtual Ethereum masih merupakan lingkungan runtime yang sangat mahal. Saat mendesain mesin virtual blockchain, seseorang harus memilih serangkaian operasi yang melekat yang perlu diukur dengan hati-hati untuk memastikan bahwa setiap node dapat memverifikasi transaksi pada waktu yang konsisten. Selain itu, keamanan terburuk dan stabilitas konsensus juga harus dipertimbangkan. Jadi tantangannya di sini adalah bagaimana menerapkan penskalaan khusus aplikasi untuk aplikasi on-chain. Axiom bertujuan untuk memperluas akses data dan kemampuan komputasi untuk smart contract guna memenuhi kebutuhan ekspansi berbagai aplikasi.
Apa yang sedang dibangun Axiom adalah apa yang disebutnya Ethereum Coprocessor (ZK Coprocessor), yang memungkinkan kontrak pintar tertentu untuk didelegasikan tanpa kepercayaan ke sistem off-chain kami sehingga mereka dapat mendelegasikan pembacaan data dan komputasi yang dapat diverifikasi ke Axiom . Untuk mengeluarkan kueri ke Axiom, smart contract dapat mengirim transaksi ke sistem on-chain kami. Node offline kami akan menerima transaksi dan menghasilkan hasil berdasarkan kueri historis Ethereum, dan melampirkan bukti tanpa pengetahuan untuk membuktikan kebenaran hasilnya. Terakhir, kami memverifikasi hasil secara on-chain dan secara kredibel mengirimkan hasilnya ke kontrak cerdas hilir.
Ini mirip dengan bagaimana CPU di komputer mendelegasikan perhitungan ke GPU, dan mengambil kembali hasilnya saat diketahui. Konsep ini disebut koprosesor (Coprocesso) pada awalnya. Pada slide saya menunjukkan gambar coprocesso matematika tingkat lanjut dari awal 1990-an yang serupa dengan apa yang dilakukan Axiom.
Kita dapat memperoleh wawasan tentang jenis operasi apa yang dapat dilakukan Axiom Setiap kueri ke Axiom dapat dipecah menjadi tiga bagian.
Yang pertama adalah bagian membaca, yaitu bagaimana kueri Axiom dimasukkan - kita dapat membaca data on-chain historis dengan andal.
Bagian kedua adalah kita dapat menjalankan perhitungan validasi pada data ini. Ini mungkin dimulai dari analisis dasar, seperti menjumlahkan beberapa angka, mencari maksimum atau minimum, hingga perhitungan yang lebih kompleks. Misalnya, beberapa agregasi atau verifikasi tanda tangan dari kriptografi, dan bahkan pembelajaran mesin berbasis nol pengetahuan, seperti memverifikasi pengoperasian algoritme reputasi tertentu pada data sosial di rantai atau menggunakan algoritme pembelajaran mesin tertentu dalam aplikasi keuangan. Pada akhirnya, kami akan menyediakan fungsi komposit komputasi yang dapat diprogram melalui mesin virtual.
Bagian terakhir, setelah langkah baca dan hitung, kita mendapatkan hasil dan selalu memasangkan hasil tersebut dengan bukti tanpa pengetahuan bahwa perhitungan hasil tersebut valid. Oleh karena itu, kami memverifikasi bukti ini dalam kontrak pintar Ethereum, dan kemudian menyimpan hasilnya untuk digunakan oleh kontrak tersebut.
Karena semua hasil yang dikembalikan oleh Axiom sebenarnya diverifikasi dengan bukti tanpa pengetahuan, ini berarti bahwa keamanan semua yang dikembalikan oleh Axiom secara kriptografis setara dengan keamanan Ethereum itu sendiri. Filosofi Axiom adalah bahwa kami tidak ingin memaksakan asumsi tambahan pada pengguna di luar asumsi kriptografi yang sudah mereka miliki saat menggunakan Ethereum.
Selanjutnya, saya akan memperkenalkan prinsip implementasinya secara rinci, yang melibatkan konsep operasi Refleksi yang disebutkan dalam judul pidato. Prinsip inti yang memungkinkan semuanya adalah bahwa setiap blok di blockchain berisi riwayat lengkap. Kita bisa mulai dari blok Ethereum saat ini dan kembali ke blok sebelumnya yang kita minati. Dengan mengambil semua header blok antara blok sebelumnya dan blok saat ini, dan dengan memverifikasi rantai hash dari header blok ini, kita sebenarnya dapat membalikkan komitmen blok sebelumnya ke blok saat ini.
Lalu apa saja manfaat Refleksi?
Kami dapat mengambil blok Ethereum saat ini dan kembali ke blok sebelumnya yang kami minati. Jika kita mendapatkan header blok antara blok sebelumnya dan blok saat ini, kita dapat membalikkan komitmen blok sebelumnya ke blok saat ini dengan memverifikasi jalur hash antara header blok ini. Kemudian, jika kami tertarik dengan beberapa informasi dari blok sebelumnya, kami dapat memberikan bukti penyertaan dalam komitmen blok tersebut. Secara khusus, ini bisa menjadi bukti Merkle Patricia Trie bahwa informasi tersebut ada di trie status blok, trie transaksi, atau trie tanda terima. Dalam EVM, setidaknya pada prinsipnya, setiap informasi masa lalu pada rantai hanya dapat diakses melalui pengetahuan hash blok terbaru.
Sayangnya, melakukan ini di EVM mahal. Seperti yang baru saja disebutkan, Anda harus memverifikasi rantai hash dan bukti Merkle dari semua header blok, yang melibatkan banyak kalkulasi hash Keccak pada sejumlah besar data. Jadi begitu Anda kembali ke masa lalu, itu menjadi sangat sulit. Oleh karena itu, kami menerapkan operasi Refleksi dengan membungkus bukti ini dengan ZK di EVM. Jadi alih-alih meletakkan semua header blok sebelumnya dan semua bukti Merkle ini di rantai dan kemudian memverifikasinya, kami memeriksa tanpa pengetahuan apakah ada urutan header blok sebelumnya dan beberapa bukti verifikasi.
Ini memiliki dua keuntungan. Pertama, ini menyelamatkan kita dari keharusan memasukkan data bukti ke dalam data panggilan. Kedua, ini memungkinkan kita mengumpulkan bukti, yang tidak terpikirkan tanpa menggunakan ZK. Idenya di sini adalah bahwa ketika memverifikasi sejumlah perhitungan pada Ethereum, biaya gas adalah tetap, sehingga kita dapat menggunakan bukti ZK tunggal untuk memverifikasi sejumlah besar akses data historis.
Izinkan saya menyentuh secara singkat trade-off dari konsep operasi Refleksi berbasis ZK.
Ada dua cara untuk mengakses data. Yang pertama adalah cara Anda mengetahuinya sebelumnya - Anda dapat mengakses data di Ethereum langsung dari kontrak pintar. Ini memiliki keuntungan yang sangat besar karena aksesnya sinkron. Oleh karena itu, Anda dapat langsung memanggil fungsi baca di smart contract untuk mendapatkan nilai saat ini. Misalnya, saat Anda berdagang di Uniswap, Anda memerlukan sinkronisitas ini. Namun, itu juga memiliki banyak keterbatasan. Daya komputasi Anda dibatasi oleh biaya bahan bakar dan Anda tidak memiliki akses ke data historis apa pun.
Kedua, jika Anda ingin memanfaatkan kemampuan ZK untuk merefleksikan Ethereum, karena Anda harus membuat bukti bahwa akses Anda benar, tidak ada cara untuk melakukannya secara sinkron. Jadi sebenarnya tidak ada akses langsung ke status on-chain saat ini, karena Anda harus membuktikan suatu status.
Di sisi lain, jika Anda membiarkan diri Anda mengakses data historis secara asinkron, Anda dapat menerapkan perhitungan yang hampir tidak terbatas dan memiliki akses ke data dalam jumlah besar. Oleh karena itu, dengan melonggarkan konsep sinkronisasi, akses data operasional Refleksi berbasis ZK dapat sangat diperluas.
Kami kemudian melihat bagaimana menerapkan operasi Refleksi melalui Axiom.
Pertama, kami benar-benar harus menyimpan cache dari semua blok sebelumnya di kontrak pintar kami. Di EVM, 256 hash blok terakhir tersedia secara native. Kita dapat membuktikan bahwa di setiap kumpulan 1024 blok, hash dari blok terakhir dari kumpulan sebelumnya dilakukan di blok berikutnya. Demikian pula, hash dari blok kedua hingga terakhir di batch sebelumnya dilakukan di blok terakhir, dan seterusnya. Oleh karena itu, kami dapat memverifikasi balik rantai hash ini dan membuktikan validitas rantai hash ini melalui nol pengetahuan.
Ini memungkinkan kita untuk menyimpan hash blok mulai dari blok terbaru hingga blok genesis. Faktanya, kami telah mengimplementasikan ini dalam kontrak pintar mainnet kami, yang berisi jalur Merkle yang di-cache setiap 1024 hash blok dari blok genesis.
Fitur lain yang kami tambahkan adalah Merkle Mountain Range. Itu dibangun di atas cache hash blok ini, sebuah struktur data yang memungkinkan kita untuk mereferensikan setiap hash blok di Ethereum dalam DNA terbatas.
Setelah kami membuat cache, kami dapat meminta Axiom dengan memvalidasi blok di cache. Agar ini berfungsi, kami harus membuktikan bahwa setiap bagian data dalam sejarah Ethereum yang kami coba akses sebenarnya berkomitmen untuk berada di cache beberapa blok. Kedua, kita harus membuktikan bahwa semua perhitungan yang kita lakukan pada kueri ini benar. Untuk memeriksa on-chain ini, kami memverifikasi validitas bukti tanpa pengetahuan. Kami juga memeriksa apakah itu berkorelasi dengan informasi yang telah kami rekam secara on-chain. Kami selalu membangun kepercayaan pada cache kami atau memblokir cache dan mencocokkan informasi di cache blok tersebut dengan informasi publik dalam bukti tanpa pengetahuan.
Sekarang mari kita bicara tentang kemungkinan penerapan operasi Refleksi yang dibayangkan.
Sumbu horizontal merepresentasikan kompleksitas data, berapa banyak data yang sebenarnya perlu diakses untuk mengimplementasikan aplikasi. Sumbu vertikal mewakili kompleksitas komputasi, yaitu berapa banyak sumber daya komputasi yang sebenarnya perlu diterapkan untuk menyelesaikan tugas.
Oleh karena itu, jenis aplikasi pertama adalah aplikasi yang Axiom atau semua jenis mekanisme operasi Refleksi dapat diimplementasikan di Ethereum, tetapi biayanya sedikit lebih tinggi.
Beberapa contohnya termasuk membaca nonces tingkat konsensus dari header blok di lapisan konsensus Ethereum, memverifikasi usia akun historis, atau membaca berbagai jenis data oracle dari informasi harga historis. Dalam EVM, berbagai solusi dapat digunakan untuk mengimplementasikan aplikasi ini, tetapi dengan menempatkan solusi ini dalam pengetahuan nol, efisiensi dapat ditingkatkan.
Sekarang, ada kelas aplikasi lain yang umumnya membutuhkan lebih banyak akses data dan karenanya lebih banyak komputasi. Menurut pendapat saya, aplikasi ini tidak akan mungkin dilakukan tanpa menggunakan koprosesor ZK.
Sebagai contoh, aplikasi yang menarik adalah mengizinkan Roll-up pada Ethereum untuk membaca status lapisan dasar atau Roll-up lainnya dengan cara tepercaya, menggunakan pengetahuan nol untuk berinteraksi. Salah satu aplikasi tersebut mungkin memungkinkan Roll-up membaca snapshot saldo penuh token ERC20.
Jika kita mengalihkan perhatian kita dari penyimpanan ke riwayat transaksi akun, Anda dapat membayangkan membangun reputasi tepercaya, identitas, atau sistem penilaian kredit dengan mencatat riwayat lengkap alamat Ethereum. Ini dapat digunakan untuk penilaian kredit, atau memberi Anda akses ke beberapa jenis DAO on-chain, atau memberi Anda akses untuk menerbitkan NFT khusus.
Ada juga kelas aplikasi yang menggunakan data historis on-chain untuk benar-benar mengelola protokol. Umumnya dikenal sebagai akuntansi perjanjian.
Idenya di sini adalah bahwa ada protokol untuk mengoordinasikan perilaku peserta, dan prinsip dasar koordinasi adalah kemampuan untuk memberi penghargaan atau menghukum peserta atas perilaku mereka. Jika Anda melihat banyak protokol di Ethereum, catatan tindakan para peserta sebenarnya disimpan sepenuhnya dalam rantai. Jadi, dengan Axiom, kita dapat membayangkan bahwa berdasarkan rangkaian lengkap tindakan peserta protokol, protokol dapat menentukan struktur pembayaran, atau bahkan mengenakan beberapa jenis penalti pada peserta, yang menurut kami benar-benar dapat memperluas ruang desain protokol. aplikasi.
Terakhir, jika kita benar-benar meningkatkan level komputasi, menurut kami akan sangat menarik untuk menggunakan model pembelajaran mesin untuk menyetel parameter on-chain. Jika Anda berpikir tentang aplikasi keuangan tradisional, sangat umum untuk memodelkan parameter masa depan yang kompleks berdasarkan sejumlah besar data historis, seperti data harga, data ekonomi, dll. Dan ketika kita melihat DeFi saat ini, jauh dari mencapai level itu. Saya tidak berpikir bahwa DeFi harus bekerja dengan cara yang persis sama seperti keuangan tradisional, tetapi kami berpikir bahwa menyuntikkan beberapa basis data historis dan model serta informasi berbasis pembelajaran mesin dapat membantu menciptakan protokol DeFi yang lebih dinamis.
Ini hanya beberapa ide tentang apa yang dapat dibawa oleh operasi Refleksi ke blockchain.
Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
Membongkar keunggulan teknis koprosesor Ethereum ZK Axiom
Pertama, mari kita pahami perjalanan pengguna untuk benar-benar mengakses informasi Ethereum. Ketika kami pertama kali menggunakan Ethereum, cara kami benar-benar menerima informasi tentang apa yang terjadi di rantai adalah melalui panggilan JSON-RPC untuk mengarsipkan anotasi. Tujuan JSON-RPC API adalah untuk benar-benar menyajikan informasi tentang riwayat on-chain kepada pengguna. Pada dasarnya, semua informasi yang kami lihat tentang blockchain diekstraksi dari panggilan API ini dan disajikan sebagai entri di situs web untuk dibaca pengguna.
Sekarang, karena pengguna menjadi lebih mahir dalam berinteraksi dengan blockchain, kami mulai membutuhkan tampilan rantai yang semakin kompleks. Oleh karena itu, berbagai jenis node arsip sedang dikembangkan untuk pengorbanan pengguna yang berbeda. Jadi ada Geth, Erigon, Nethermind, dan sekarang Reth. Kita dapat memilih simpul arsip yang paling sesuai dengan kebutuhan kita sendiri.
Jika pengguna tidak puas dengan API JSON-RPC yang terpisah, pengindeks dapat dipilih untuk menerapkan pasca-pemrosesan saat melacak transaksi. Untuk aplikasi yang berbeda, pengguna mungkin tertarik dengan data yang dikembalikan dari The Graph atau Covalent.
Baru-baru ini, ada juga dompet dan produk lain yang menawarkan simulasi transaksi di atas node arsip. Ini berarti kita dapat melihat hasil sebenarnya dari transaksi virtual sebelum melakukannya. Secara keseluruhan, sebagai pengguna akhir, cara kami berinteraksi dengan Ethereum semakin canggih, menggunakan lebih banyak komputasi selain data yang kami baca.
Sekarang, jika kita memikirkannya bukan dari sudut pandang pengguna, tetapi dari sudut pandang smart contract di Ethereum. Tentu saja, kontrak juga ingin dapat mengakses data dan melakukan komputasi, tetapi ini lebih menantang. Faktanya, jika kita membuka OpenSea dan melihat daftar CryptoPunk, kita akan menemukan bahwa dari semua informasi di halaman tersebut, hanya sebagian kecil yang dapat diakses dalam kontrak pintar di rantai tersebut.
Faktanya, untuk daftar CryptoPunk, informasi ini hanya untuk pemegang saat ini. Tentu saja, ada banyak informasi lain di halaman tersebut, tetapi semua informasi terkait informasi transfer historis, harga historis, dan pemilik historis sebenarnya tidak dapat diakses oleh smart contract karena termasuk dalam sejarah masa lalu. Sejarah ini merupakan informasi on-chain, tetapi tidak tersedia untuk kontrak pintar karena kita perlu menghindari memaksa setiap node Ethereum penuh untuk mempertahankan informasi ini dalam akses acaknya untuk memverifikasi transaksi.
Selain itu, seperti yang dapat dikatakan oleh pengembang blockchain mana pun kepada Anda, menjalankan komputasi on-chain sangat mahal, meskipun Ethereum memiliki operasi mesin virtual (VM) yang relatif efisien, dan prakompilasi membuat jenis operasi tertentu lebih murah. Misalnya, Ethereum memberikan dukungan yang relatif murah untuk operasi kurva eliptik pada kurva BN254. Namun, untuk beberapa aplikasi tertentu, Mesin Virtual Ethereum masih merupakan lingkungan runtime yang sangat mahal. Saat mendesain mesin virtual blockchain, seseorang harus memilih serangkaian operasi yang melekat yang perlu diukur dengan hati-hati untuk memastikan bahwa setiap node dapat memverifikasi transaksi pada waktu yang konsisten. Selain itu, keamanan terburuk dan stabilitas konsensus juga harus dipertimbangkan. Jadi tantangannya di sini adalah bagaimana menerapkan penskalaan khusus aplikasi untuk aplikasi on-chain. Axiom bertujuan untuk memperluas akses data dan kemampuan komputasi untuk smart contract guna memenuhi kebutuhan ekspansi berbagai aplikasi.
Apa yang sedang dibangun Axiom adalah apa yang disebutnya Ethereum Coprocessor (ZK Coprocessor), yang memungkinkan kontrak pintar tertentu untuk didelegasikan tanpa kepercayaan ke sistem off-chain kami sehingga mereka dapat mendelegasikan pembacaan data dan komputasi yang dapat diverifikasi ke Axiom . Untuk mengeluarkan kueri ke Axiom, smart contract dapat mengirim transaksi ke sistem on-chain kami. Node offline kami akan menerima transaksi dan menghasilkan hasil berdasarkan kueri historis Ethereum, dan melampirkan bukti tanpa pengetahuan untuk membuktikan kebenaran hasilnya. Terakhir, kami memverifikasi hasil secara on-chain dan secara kredibel mengirimkan hasilnya ke kontrak cerdas hilir.
Ini mirip dengan bagaimana CPU di komputer mendelegasikan perhitungan ke GPU, dan mengambil kembali hasilnya saat diketahui. Konsep ini disebut koprosesor (Coprocesso) pada awalnya. Pada slide saya menunjukkan gambar coprocesso matematika tingkat lanjut dari awal 1990-an yang serupa dengan apa yang dilakukan Axiom.
Kita dapat memperoleh wawasan tentang jenis operasi apa yang dapat dilakukan Axiom Setiap kueri ke Axiom dapat dipecah menjadi tiga bagian.
Yang pertama adalah bagian membaca, yaitu bagaimana kueri Axiom dimasukkan - kita dapat membaca data on-chain historis dengan andal.
Bagian kedua adalah kita dapat menjalankan perhitungan validasi pada data ini. Ini mungkin dimulai dari analisis dasar, seperti menjumlahkan beberapa angka, mencari maksimum atau minimum, hingga perhitungan yang lebih kompleks. Misalnya, beberapa agregasi atau verifikasi tanda tangan dari kriptografi, dan bahkan pembelajaran mesin berbasis nol pengetahuan, seperti memverifikasi pengoperasian algoritme reputasi tertentu pada data sosial di rantai atau menggunakan algoritme pembelajaran mesin tertentu dalam aplikasi keuangan. Pada akhirnya, kami akan menyediakan fungsi komposit komputasi yang dapat diprogram melalui mesin virtual.
Bagian terakhir, setelah langkah baca dan hitung, kita mendapatkan hasil dan selalu memasangkan hasil tersebut dengan bukti tanpa pengetahuan bahwa perhitungan hasil tersebut valid. Oleh karena itu, kami memverifikasi bukti ini dalam kontrak pintar Ethereum, dan kemudian menyimpan hasilnya untuk digunakan oleh kontrak tersebut.
Karena semua hasil yang dikembalikan oleh Axiom sebenarnya diverifikasi dengan bukti tanpa pengetahuan, ini berarti bahwa keamanan semua yang dikembalikan oleh Axiom secara kriptografis setara dengan keamanan Ethereum itu sendiri. Filosofi Axiom adalah bahwa kami tidak ingin memaksakan asumsi tambahan pada pengguna di luar asumsi kriptografi yang sudah mereka miliki saat menggunakan Ethereum.
Selanjutnya, saya akan memperkenalkan prinsip implementasinya secara rinci, yang melibatkan konsep operasi Refleksi yang disebutkan dalam judul pidato. Prinsip inti yang memungkinkan semuanya adalah bahwa setiap blok di blockchain berisi riwayat lengkap. Kita bisa mulai dari blok Ethereum saat ini dan kembali ke blok sebelumnya yang kita minati. Dengan mengambil semua header blok antara blok sebelumnya dan blok saat ini, dan dengan memverifikasi rantai hash dari header blok ini, kita sebenarnya dapat membalikkan komitmen blok sebelumnya ke blok saat ini.
Lalu apa saja manfaat Refleksi?
Kami dapat mengambil blok Ethereum saat ini dan kembali ke blok sebelumnya yang kami minati. Jika kita mendapatkan header blok antara blok sebelumnya dan blok saat ini, kita dapat membalikkan komitmen blok sebelumnya ke blok saat ini dengan memverifikasi jalur hash antara header blok ini. Kemudian, jika kami tertarik dengan beberapa informasi dari blok sebelumnya, kami dapat memberikan bukti penyertaan dalam komitmen blok tersebut. Secara khusus, ini bisa menjadi bukti Merkle Patricia Trie bahwa informasi tersebut ada di trie status blok, trie transaksi, atau trie tanda terima. Dalam EVM, setidaknya pada prinsipnya, setiap informasi masa lalu pada rantai hanya dapat diakses melalui pengetahuan hash blok terbaru.
Sayangnya, melakukan ini di EVM mahal. Seperti yang baru saja disebutkan, Anda harus memverifikasi rantai hash dan bukti Merkle dari semua header blok, yang melibatkan banyak kalkulasi hash Keccak pada sejumlah besar data. Jadi begitu Anda kembali ke masa lalu, itu menjadi sangat sulit. Oleh karena itu, kami menerapkan operasi Refleksi dengan membungkus bukti ini dengan ZK di EVM. Jadi alih-alih meletakkan semua header blok sebelumnya dan semua bukti Merkle ini di rantai dan kemudian memverifikasinya, kami memeriksa tanpa pengetahuan apakah ada urutan header blok sebelumnya dan beberapa bukti verifikasi.
Ini memiliki dua keuntungan. Pertama, ini menyelamatkan kita dari keharusan memasukkan data bukti ke dalam data panggilan. Kedua, ini memungkinkan kita mengumpulkan bukti, yang tidak terpikirkan tanpa menggunakan ZK. Idenya di sini adalah bahwa ketika memverifikasi sejumlah perhitungan pada Ethereum, biaya gas adalah tetap, sehingga kita dapat menggunakan bukti ZK tunggal untuk memverifikasi sejumlah besar akses data historis.
Izinkan saya menyentuh secara singkat trade-off dari konsep operasi Refleksi berbasis ZK.
Ada dua cara untuk mengakses data. Yang pertama adalah cara Anda mengetahuinya sebelumnya - Anda dapat mengakses data di Ethereum langsung dari kontrak pintar. Ini memiliki keuntungan yang sangat besar karena aksesnya sinkron. Oleh karena itu, Anda dapat langsung memanggil fungsi baca di smart contract untuk mendapatkan nilai saat ini. Misalnya, saat Anda berdagang di Uniswap, Anda memerlukan sinkronisitas ini. Namun, itu juga memiliki banyak keterbatasan. Daya komputasi Anda dibatasi oleh biaya bahan bakar dan Anda tidak memiliki akses ke data historis apa pun.
Kedua, jika Anda ingin memanfaatkan kemampuan ZK untuk merefleksikan Ethereum, karena Anda harus membuat bukti bahwa akses Anda benar, tidak ada cara untuk melakukannya secara sinkron. Jadi sebenarnya tidak ada akses langsung ke status on-chain saat ini, karena Anda harus membuktikan suatu status.
Di sisi lain, jika Anda membiarkan diri Anda mengakses data historis secara asinkron, Anda dapat menerapkan perhitungan yang hampir tidak terbatas dan memiliki akses ke data dalam jumlah besar. Oleh karena itu, dengan melonggarkan konsep sinkronisasi, akses data operasional Refleksi berbasis ZK dapat sangat diperluas.
Kami kemudian melihat bagaimana menerapkan operasi Refleksi melalui Axiom.
Pertama, kami benar-benar harus menyimpan cache dari semua blok sebelumnya di kontrak pintar kami. Di EVM, 256 hash blok terakhir tersedia secara native. Kita dapat membuktikan bahwa di setiap kumpulan 1024 blok, hash dari blok terakhir dari kumpulan sebelumnya dilakukan di blok berikutnya. Demikian pula, hash dari blok kedua hingga terakhir di batch sebelumnya dilakukan di blok terakhir, dan seterusnya. Oleh karena itu, kami dapat memverifikasi balik rantai hash ini dan membuktikan validitas rantai hash ini melalui nol pengetahuan.
Ini memungkinkan kita untuk menyimpan hash blok mulai dari blok terbaru hingga blok genesis. Faktanya, kami telah mengimplementasikan ini dalam kontrak pintar mainnet kami, yang berisi jalur Merkle yang di-cache setiap 1024 hash blok dari blok genesis.
Fitur lain yang kami tambahkan adalah Merkle Mountain Range. Itu dibangun di atas cache hash blok ini, sebuah struktur data yang memungkinkan kita untuk mereferensikan setiap hash blok di Ethereum dalam DNA terbatas.
Setelah kami membuat cache, kami dapat meminta Axiom dengan memvalidasi blok di cache. Agar ini berfungsi, kami harus membuktikan bahwa setiap bagian data dalam sejarah Ethereum yang kami coba akses sebenarnya berkomitmen untuk berada di cache beberapa blok. Kedua, kita harus membuktikan bahwa semua perhitungan yang kita lakukan pada kueri ini benar. Untuk memeriksa on-chain ini, kami memverifikasi validitas bukti tanpa pengetahuan. Kami juga memeriksa apakah itu berkorelasi dengan informasi yang telah kami rekam secara on-chain. Kami selalu membangun kepercayaan pada cache kami atau memblokir cache dan mencocokkan informasi di cache blok tersebut dengan informasi publik dalam bukti tanpa pengetahuan.
Sekarang mari kita bicara tentang kemungkinan penerapan operasi Refleksi yang dibayangkan.
Sumbu horizontal merepresentasikan kompleksitas data, berapa banyak data yang sebenarnya perlu diakses untuk mengimplementasikan aplikasi. Sumbu vertikal mewakili kompleksitas komputasi, yaitu berapa banyak sumber daya komputasi yang sebenarnya perlu diterapkan untuk menyelesaikan tugas.
Oleh karena itu, jenis aplikasi pertama adalah aplikasi yang Axiom atau semua jenis mekanisme operasi Refleksi dapat diimplementasikan di Ethereum, tetapi biayanya sedikit lebih tinggi.
Beberapa contohnya termasuk membaca nonces tingkat konsensus dari header blok di lapisan konsensus Ethereum, memverifikasi usia akun historis, atau membaca berbagai jenis data oracle dari informasi harga historis. Dalam EVM, berbagai solusi dapat digunakan untuk mengimplementasikan aplikasi ini, tetapi dengan menempatkan solusi ini dalam pengetahuan nol, efisiensi dapat ditingkatkan.
Sekarang, ada kelas aplikasi lain yang umumnya membutuhkan lebih banyak akses data dan karenanya lebih banyak komputasi. Menurut pendapat saya, aplikasi ini tidak akan mungkin dilakukan tanpa menggunakan koprosesor ZK.
Sebagai contoh, aplikasi yang menarik adalah mengizinkan Roll-up pada Ethereum untuk membaca status lapisan dasar atau Roll-up lainnya dengan cara tepercaya, menggunakan pengetahuan nol untuk berinteraksi. Salah satu aplikasi tersebut mungkin memungkinkan Roll-up membaca snapshot saldo penuh token ERC20.
Jika kita mengalihkan perhatian kita dari penyimpanan ke riwayat transaksi akun, Anda dapat membayangkan membangun reputasi tepercaya, identitas, atau sistem penilaian kredit dengan mencatat riwayat lengkap alamat Ethereum. Ini dapat digunakan untuk penilaian kredit, atau memberi Anda akses ke beberapa jenis DAO on-chain, atau memberi Anda akses untuk menerbitkan NFT khusus.
Ada juga kelas aplikasi yang menggunakan data historis on-chain untuk benar-benar mengelola protokol. Umumnya dikenal sebagai akuntansi perjanjian.
Idenya di sini adalah bahwa ada protokol untuk mengoordinasikan perilaku peserta, dan prinsip dasar koordinasi adalah kemampuan untuk memberi penghargaan atau menghukum peserta atas perilaku mereka. Jika Anda melihat banyak protokol di Ethereum, catatan tindakan para peserta sebenarnya disimpan sepenuhnya dalam rantai. Jadi, dengan Axiom, kita dapat membayangkan bahwa berdasarkan rangkaian lengkap tindakan peserta protokol, protokol dapat menentukan struktur pembayaran, atau bahkan mengenakan beberapa jenis penalti pada peserta, yang menurut kami benar-benar dapat memperluas ruang desain protokol. aplikasi.
Terakhir, jika kita benar-benar meningkatkan level komputasi, menurut kami akan sangat menarik untuk menggunakan model pembelajaran mesin untuk menyetel parameter on-chain. Jika Anda berpikir tentang aplikasi keuangan tradisional, sangat umum untuk memodelkan parameter masa depan yang kompleks berdasarkan sejumlah besar data historis, seperti data harga, data ekonomi, dll. Dan ketika kita melihat DeFi saat ini, jauh dari mencapai level itu. Saya tidak berpikir bahwa DeFi harus bekerja dengan cara yang persis sama seperti keuangan tradisional, tetapi kami berpikir bahwa menyuntikkan beberapa basis data historis dan model serta informasi berbasis pembelajaran mesin dapat membantu menciptakan protokol DeFi yang lebih dinamis.
Ini hanya beberapa ide tentang apa yang dapat dibawa oleh operasi Refleksi ke blockchain.