Sumber: Vaish Puri @TheTieLabs
"Saya hanya tahu satu hal, dan itu adalah saya tidak tahu apa-apa" - Socrates
Ada banyak antusiasme yang terlihat di sekitar solusi penskalaan L2 akhir-akhir ini, dan memang seharusnya begitu. Dengan dirilisnya token tata kelola Optimism, kebutuhan akan biaya gas yang lebih rendah di mainnet ETH , dan banyaknya ide baru yang dihasilkan dalam hackathon berturut-turut, aman untuk mengatakan bahwa L2 berjalan lancar di tahun 2022.
Dalam posting hari ini, saya akan membedah salah satu alat enkripsi paling kuat namun sering disalahpahami yang pernah dibuat: bukti tanpa pengetahuan. Selain itu, saya akan menyoroti kasus penggunaan dan rekomendasi untuk implementasi di masa mendatang dan menunjukkan mengapa bukti tanpa pengetahuan adalah kunci masa depan crypto.
Mengapa Bukti Tanpa Pengetahuan Itu Penting
Sederhananya, bukti tanpa pengetahuan adalah cara seorang pembukti meyakinkan pemverifikasi bahwa sesuatu itu benar tanpa benar-benar mengungkapkan informasi apa pun. Mari kita ilustrasikan ini dengan sebuah analogi: Misalkan kita memiliki dua orang, Alice dan Bob. Alice memiliki setumpuk 52 kartu remi yang tersegel. Alice menyelinap kartu merah, mencoba membuktikan kepada Bob bahwa dia memiliki kartu merah, tetapi tidak benar-benar menunjukkannya. Untuk melakukan ini, Alice perlu memisahkan semua kartu hitam dari tumpukan dan menunjukkannya kepada Bob. Bob menghitung semua 26 kartu hitam, memverifikasi keberadaannya, dan menentukan bahwa kartu yang dimiliki Alice pasti berwarna merah. Oleh karena itu, Alice dapat membuktikan kepada Bob bahwa dia memiliki kartu merah tanpa benar-benar menunjukkannya. Metafora ini sangat disederhanakan dan tidak menggambarkan gambaran lengkapnya, tetapi ide inti di balik teknologinya tetap sama.
Bukti tanpa pengetahuan bukanlah hal baru untuk dekade ini atau bahkan ribuan tahun. Sebenarnya, ide tersebut pertama kali diajukan oleh para peneliti matematika abstrak pada tahun 1980-an. Solusinya adalah memecahkan masalah pada saat itu terkait dengan sistem teoretis antara pembukti dan pemverifikasi - bukti interaktif.
Tetapi bagaimana jika pemverifikasi ternyata berbahaya? Berapa banyak informasi tambahan yang diungkapkan Prover selain memverifikasi kebenaran pernyataan tersebut? Mari kita lihat bagaimana hash kata sandi disimpan di server terpusat. Secara tradisional, saat berinteraksi dengan server, server mendapatkan kata sandi dalam bentuk teks yang jelas. Itu cara yang buruk untuk melakukan "bukti identitas", sehingga para peneliti beralih ke sistem yang dapat membuktikan klaim tanpa mengungkapkan informasi asing.
Lebih khusus lagi, misalkan kita memiliki beberapa fungsi C dengan dua input C(x,y). Biarkan x menjadi input publik, y menjadi saksi rahasia, dan biarkan output dari fungsi benar atau salah. Diberikan input publik tertentu x, pembukti harus membuktikan bahwa mereka mengetahui saksi rahasia y sehingga C(x,y) == benar. Dari sudut pandang peribahasa, mencapai nol pengetahuan membutuhkan keacakan. Di sisi pemverifikasi, keacakan diperlukan untuk menghasilkan kueri ke pembukti. Aplikasi pertama yang didemonstrasikan secara luas adalah di NP - menyelesaikan kelas kompleksitas yang disebut masalah grafik tiga warna. Ini adalah terobosan besar karena aplikasi ini dapat diterapkan pada masalah apa pun di kelas NP. Ini dapat melayani berbagai tujuan.
Di ruang blockchain, ada banyak penerapan bukti tanpa pengetahuan karena kemampuannya untuk memberikan skalabilitas serta utilitasnya dalam model privasi. Secara khusus, pemverifikasi melakukan pekerjaan komputasi secara eksponensial lebih sedikit daripada yang akan terjadi tanpa sistem bukti tanpa pengetahuan. Di sisi lain, pembukti membutuhkan biaya komputasi yang cukup besar untuk melakukan pembuktian. Saya akan membahas ini lebih detail nanti.
protokol ZK
Sementara kebanyakan protokol zk saat ini ada, untuk posting ini saya akan fokus pada SNARK dan STARK, dan menggali protokol lain di posting selanjutnya.
Succinct Non-Interactive Argument of Knowledge (SNARK) adalah mekanisme pembuktian populer yang menggabungkan pembuktian tanpa pengetahuan yang pertama kali diperkenalkan pada tahun 2011. Di bawah tenda, zk-SNARK menggunakan kurva eliptik untuk keamanan dan mengandalkan pengaturan tepercaya. Awalnya, kunci dibuat untuk mengembangkan bukti yang diperlukan untuk transaksi dan untuk memverifikasi bukti tersebut. Kunci ini berisi string referensi yang menghubungkan kunci autentikasi dan kunci untuk mengirim pesan pribadi. Untuk melakukan ini, metode pembuatan kunci harus dihapus, dan pembuat kunci dipercaya (oleh karena itu namanya pengaturan tepercaya). Ketergantungan pada kepercayaan selama fase pembuatan ini tetap menjadi kritik utama terhadap zk-SNARK. Selain itu, string referensi tidak dapat diupgrade, yang berarti jika program perlu diperbarui, fase penyiapan tepercaya perlu dijalankan kembali.
Namun, dalam praktik nyata, zk-SNARK sulit diterapkan sendiri. Ada banyak langkah untuk diperiksa dalam suatu perhitungan, tetapi tidak layak untuk memeriksa waktu yang dihabiskan untuk mengerjakan setiap langkah secara individual. Solusinya datang dalam bentuk polinomial. Perhitungan pengkodean sebagai polinomial dapat menghemat banyak informasi dan waktu. Alih-alih memiliki jumlah persamaan tak terbatas di antara angka-angka tersebut, kita dapat menggantinya dengan ekspresi polinomial yang "menggantikan" mereka.
Tapi tunggu, masih ada lagi! Biasanya, polinomial digunakan untuk memverifikasi persamaan dengan memeriksa setiap koefisien, tetapi sekali lagi ini terlalu lama. Komitmen polinomial berperan di sini. Komitmen polinomial dapat dianggap sebagai cara unik untuk "mencirikan" polinomial. Ini memungkinkan verifikasi dalam waktu yang lebih singkat, tidak peduli seberapa besar polinomialnya. Selain itu, komitmen polinomial secara inheren menjaga privasi karena buktinya jauh lebih kecil daripada polinomial itu sendiri. Meskipun keacakan dapat ditambahkan, janji polinomial tidak mengungkapkan sedikit informasi tentang polinomial.
Komitmen polinomial menggunakan salah satu dari tiga protokol utama: antipeluru, KZG, dan FRI (Fast Reed-Solomon Interactive Oracle Proof of Proximity). Membandingkan dan mengontraskannya berada di luar cakupan artikel ini, karena masing-masing membutuhkan studi mendalam sendiri.
Pada tahun 2018, sekelompok peneliti mencoba menambahkan transparansi ke sistem zk. Transparansi berarti tidak harus bergantung pada pihak tepercaya untuk penyiapan awal, menghilangkan ancaman membuka pintu belakang. Ini mengarah pada penciptaan argumen pengetahuan transparan yang dapat diskalakan, atau STARK. STARK menggunakan fungsi hash sebagai sumber keamanannya, yang berbeda dengan implementasi bilinear yang digunakan oleh SNARK. Aspek skalabilitas mengacu pada dua hal:
1. Dibandingkan dengan SNARK, waktu berjalan dari peribahasa jauh lebih kecil kerumitannya.
2. Ukuran waktu verifikasi multi-logaritmik. STARK menggunakan FRI untuk meningkatkan kapasitas dan kinerja penyimpanan informasi.
aplikasi saat ini
Sementara perintis zk-SNARK seperti Zcash sudah ada sejak lama, penciptaan zk-STARK telah meledak. Bekerja di protokol zk tidak terbatas pada Rollup. Faktanya, beberapa L1 sudah dibangun di atas bukti zk, serta proyek game pemula.
StarkWare adalah pelopor zk-STARK, mengembangkan dua produk inti: StarkNet, zk rollup terdesentralisasi tanpa izin, dan StarkEx, SaaS rollup zk independen. Selain itu, StarkWare mengembangkan mesin virtual zk tingkat produksi (zkVM) yang disebut Kairo. Kairo mengklaim menerapkan struktur Turing-complete von Neumann. Setiap program berada di memori VM bersama dengan data yang diprosesnya. Siapa pun dapat mengakses Kairo hari ini dan saat ini digunakan oleh klien StarkEx terkemuka seperti dydx, Immutable, dan DeversiFi. Aplikasi baru lainnya yang menggunakan versi zkVM mereka sendiri termasuk Polygon Miden dan RiscZero, yang mencoba membuat zkVM umum.
Kebalikan dari ideologi zkVM adalah zkEVM. zkVM dimulai dari awal sebagai VM blockchain baru yang dioptimalkan untuk zk, atau hanya diadaptasi untuk perkakas dan kompatibilitas Soliditas. Di sisi lain, zkEVM mengimplementasikan set lengkap opcode EVM. Ada beberapa manfaat menggunakan opcode EVM:
Dapatkan kompatibilitas penuh dengan ekosistem dan alat EVM
Mewarisi Model Keamanan Ethereum
Efisiensi mungkin mirip dengan pendekatan berbasis compiler
Tidak mengherankan, tampaknya ada perbedaan besar antara kubu zkVM dan zkEVM.
Keuntungan terbesar zkEVM dibandingkan zkVM adalah kesetaraan EVM. Menargetkan komunitas dApp besar yang ada dengan insentif biaya gas rendah dan pengalaman pengembangan yang mudah bagi pengembang telah terbukti bermanfaat, yang diandalkan oleh pembuat zkEVM.
Proyek zkEVM paling populer saat ini adalah zkSync, yang menggunakan zk-SNARK sebagai solusi lapisan-2 untuk verifikasi dan penskalaan. Selain itu, zkSync telah memilih untuk menjaga ketersediaan data off-chain, diamankan oleh pembuat token zkSync menggunakan Proof of Stake (zkPorter) (artinya airdrop akan segera terjadi). Rancangan implementasi ini didasarkan pada solusi yang dikembangkan oleh StarkWare yang disebut Volition.
Akhirnya, pemain yang cukup baru, Scroll sedang mengembangkan L2 zkEVM untuk keperluan umum. Scroll menggunakan pendekatan baru untuk menggunakan daya GPU guna menghasilkan bukti zk off-chain. Terobosan terbaru dalam bukti zk seperti Poseidon hashing, Plookup, dan PLONK telah menurunkan biaya cukup untuk membuat zkEVM menjadi kenyataan. Selain itu, kemajuan dalam GPU dan akselerator ASIC/FPGA meningkatkan kondisi perangkat keras dan semakin mengurangi biaya. Scroll masih dalam pengembangan dan berencana meluncurkan testnet zkEVM mereka dalam beberapa bulan mendatang.
aplikasi masa depan
Zk Proof awalnya dikembangkan untuk menjaga privasi. Sementara media populer mungkin memfokuskan kasus penggunaan saat ini pada "izin TPS yang lebih besar", faktanya zk Proof tetap memiliki jangkauan aplikasi yang lebih luas.
Salah satu aplikasi tersebut adalah alat zk-ID, yang memverifikasi identitas pengguna dengan memeriksa aset secara anonim di dompet atau transaksi on-chain melalui sirkuit zk.
Identitas Zk memiliki potensi yang sangat kuat dan kasus penggunaan langsung di dunia nyata. Misalnya, saya adalah seorang debitur yang mencoba membuktikan kelayakan kredit saya sambil tetap merahasiakan informasi dan aktivitas perbankan saya. Saya akan menyatakan bahwa saya telah melunasi pinjaman besar dari berbagai bank tepercaya, tetapi tidak akan mengungkapkan bank atau spesifikasi pinjaman tersebut.
Empat komponen utama untuk mendukung identitas zk di masa depan
Perkembangan besar lainnya di ruang zk adalah delegasi swasta yang efisien dari pembukti zk-SNARK. Seperti disebutkan sebelumnya, waktu pembuktian agak lambat. Menggunakan SHA2 untuk hash 10kb membutuhkan waktu 140 detik, bukan milidetik yang diperlukan. Solusi untuk masalah ini adalah dengan mengalihdayakan bukti. Sayangnya, ini menimbulkan dilema lain: rahasia selalu terungkap. Apa yang dibutuhkan: bukti privasi outsourcing. Dengan penerapan yang hati-hati, bukti dapat didelegasikan ke perangkat seperti ponsel hingga 26 kali lebih cepat daripada komputasi lokal. Kerangka novel ini pertama kali dipresentasikan oleh Pratyush Mishra di zkSummit pada April 2022.
Epilog
Kami berada di tahap awal pengembangan bukti zk berbasis aplikasi. Tetap saja, laju kemajuannya cepat. Masih banyak konflik antar komunitas saat kamp-kamp terbentuk dan opini-opini dipolitisasi. Hanya waktu yang akan menentukan sisi mana yang benar. Yang pasti, ketika sejarawan melihat ke belakang, mereka akan melihat periode implementasi zk ini sebagai bagian penting dari sejarah cryptocurrency yang spektakuler.