ZK Rollups: Gajah di Ruangan
Menengah5/28/2024, 2:49:18 AM
Zero-knowledge proofs memiliki potensi untuk menciptakan ekosistem blockchain yang lebih pribadi dan dapat diskalakan. Namun, banyak aspek dari zero-knowledge sering kali salah diinterpretasikan atau berbeda dari implementasi yang umum diterima. Artikel ini menganalisis ZKP dari dua sudut pandang utama: zero-knowledge dan kesingkatan. Ketika ZKP dan ZK rollups akhirnya matang secara teknologi, mereka pasti akan menawarkan solusi yang lebih baik untuk mengatasi trilema blockchain."\u003cp\u003e\u003cem\u003eForward the Original Title ‘[ZK series - 1] ZK Rollups: Elephant In the Room’\u003c/em\u003e\u003c/p\u003e\n\u003ch2 id=\"h2-summary\"\u003e\u003ca name=\"Summary\" class=\"reference-link\"\u003e\u003c/a\u003e\u003cspan class=\"header-link octicon octicon-link\"\u003e\u003c/span\u003eRingkasan\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003eMeskipun bukti Zero-Knowledge (ZKPs) menjanjikan ekosistem blockchain yang lebih pribadi dan dapat diskalakan, banyak aspek ZK dipahami atau diimplementasikan secara berbeda dari persepsi umum.\u003c/li\u003e\u003cli\u003eZKPs memiliki dua aspek utama: "Zero Knowledge" dan "Succinctness". Meskipun tidak salah, mayoritas ZK rollups hanya menggunakan properti yang ringkas; data transaksi dan informasi akun tidak sepenuhnya tetap rahasia atau pribadi.\u003c/li\u003e\u003cli\u003eZK rollups mungkin bukan pilihan optimal sebagai tumpukan pengembangan untuk setiap jenis DApps. Sebagai contoh, menghasilkan ZKP dapat menjadi bottleneck untuk finalitas cepat, mengurangi kinerja permainan Web3, sementara metode jaminan ketersediaan data berbasis publish dif state dapat mengurangi layanan protokol peminjaman DeFi.\u003c/li\u003e\u003c/ul\u003e\n\u003cp\u003eGambar 1: ZK adalah kata-kata yang bagus\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/d191c2d74244f4671b6055edb769573f100b6f18.png\" alt=\"\"\u003e\u003cbr\u003e(Sumber: imgflip)\u003c/p\u003e\n\u003cp\u003eSaat ini, kondisi industri blockchain dapat disamakan dengan era Zero-Knowledge (ZK). Di mana-mana, ZK menonjol... Semakin sulit menemukan proyek blockchain generasi berikutnya yang tidak menggabungkan ZK ke dalam namanya. Dari perspektif teknis, tidak ada yang menyangkal bahwa ZK adalah teknologi yang menjanjikan mampu berkontribusi pada ekosistem blockchain yang lebih dapat diskalakan dan pribadi. Namun, karena latar belakang teknis ZK yang kompleks, banyak investor, baik ritel maupun institusi, sering kali menemukan diri mereka berinvestasi dalam proyek ZK berdasarkan "keyakinan" bahwa itu terlihat keren, baru, dan mungkin memecahkan trilema blockchain—tanpa benar-benar memahami bagaimana teknologi ZK membantu setiap proyek.\u003c/p\u003e\n\u003cp\u003eDalam seri ZK ini, kita akan mengeksplorasi kebenaran yang tidak nyaman (kekurangan \u0026amp; kerugian) dan aplikasi yang bermanfaat dari ZK rollups. Pertama, kita akan membongkar dua properti inti dari bukti ZK (ZKPs) untuk blockchain: "zero-knowledge" dan "succinctness"; kemudian, kita akan mendiskusikan bagaimana sejumlah besar ZK rollups yang saat ini beroperasi sebenarnya tidak menggunakan aspek "zero-knowledge". Selanjutnya, kita akan meneliti area di mana menerapkan ZK rollup lebih merugikan daripada menguntungkan, menghindari masalah yang sudah dikenal seperti kompleksitas implementasi. Akhirnya, kita akan menyoroti proyek-proyek yang membodohi prinsip ZK dan sebenarnya menunjukkan manfaat nyata dari penggunaan teknologi ZK.\u003c/p\u003e\n\u003ch3 id=\"h3-recap-transaction-lifecycle-in-zk-rollups\"\u003e\u003ca name=\"Recap: Transaction Lifecycle in ZK Rollups\" class=\"reference-link\"\u003e\u003c/a\u003e\u003cspan class=\"header-link octicon octicon-link\"\u003e\u003c/span\u003eRingkasan: Siklus Transaksi dalam ZK Rollups\u003c/h3\u003e\u003cp\u003eRollups adalah solusi skalabilitas yang mengatasi kendala throughput L1 dengan mengeksekusi bundel transaksi di luar rantai, lalu menyimpan data ringkasan dari state L2 terbaru di L1. Di antaranya, ZK rollups menonjol dengan kemampuannya untuk segera menarik dana dengan mengirimkan bukti keabsahan untuk komputasi di luar rantai di rantai. Sebelum kita menyelami masalah dengan ZK rollups, mari kita singkatkan siklus transaksinya.\u003c/p\u003e\n\u003cp\u003eGambar 2: Siklus transaksi dalam ZK rollups\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/c74c988b0d2fc30c81421cfbed872c582ba21b21.png\" alt=\"\"\u003e\u003cbr\u003e(Sumber: Presto Reserach)\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eSetiap pengguna L2 menghasilkan dan mengirimkan transaksinya ke sequencer.\u003c/li\u003e\u003cli\u003eSequencer menggabungkan dan mengurutkan beberapa transaksi, kemudian menghitung state rollup baru dengan mengeksekusinya di luar rantai. Selanjutnya, sequencer mengirimkan state rollup baru ini ke kontrak pintar state di rantai dalam bentuk "batch", bersama data transaksi L2 yang sesuai yang dikompresi menjadi blob untuk memastikan ketersediaan data.\u003c/li\u003e\u003cli\u003eBatch dikirim ke prover, dan prover membuat bukti keabsahan (atau ZKP) dari eksekusi batch tersebut. Bukti keabsahan ini kemudian dikirim ke kontrak pintar verifikasi L1 bersama data tambahan (misalnya, root state sebelumnya) yang membantu verifikator mengenali apa yang sedang diverifikasi.\u003c/li\u003e\u003cli\u003eSetelah kontrak verifikator memeriksa bahwa bukti tersebut valid, state rollup diperbarui dan transaksi L2 dalam batch yang dikirim dianggap selesai.\u003c/li\u003e\u003c/ol\u003e\n\u003cp\u003e(Catatan bahwa penjelasan ini adalah versi yang disederhanakan dari proses penuh ZK rollup, dan setiap implementasi dapat bervariasi tergantung pada protokolnya. Ada lebih banyak entitas di L2 jika kita memisahkan peran; seperti pengumpul, pelaksana, dan penawar. Tingkat data chunk juga dapat berbeda seperti blok, chunk, dan batch tergantung pada penggunaannya. Penjelasan di atas mengasumsikan situasi di mana sequencer terpusat memiliki otoritas yang kuat untuk mengeksekusi transaksi dan juga menghasilkan format data chunk yang terpadu sebagai batch.)\u003c/p\u003e\n\u003cp\u003eBerbeda dengan optimistic rollups, berkat ZKPs (misalnya, ZK-SNARK atau ZK-STARK), ZK rollups dapat memverifikasi kebenaran eksekusi ribuan transaksi hanya dengan memverifikasi bukti sederhana, tanpa harus memutar ulang semuanya. Jadi, apa itu ZKP, dan karakteristik apa saja yang dimilikinya?\u003c/p\u003e\n\u003ch3 id=\"h3-two-properties-of-zkps-zero-knowledge-and-succinctness\"\u003e\u003ca name=\"Two Properties of ZKPs: Zero-Knowledge and Succinctness\" class=\"reference-link\"\u003e\u003c/a\u003e\u003cspan class=\"header-link octicon octicon-link\"\u003e\u003c/span\u003eDua Properti dari ZKPs: Zero-Knowledge dan Succinctness\u003c/h3\u003e\u003cp\u003eSeperti namanya, ZKP pada dasarnya adalah bukti. Bukti bisa berupa apa pun yang cukup mendukung klaim prover. Katakanlah Bob (prover) ingin meyakinkan Alice (verifier) tentang otoritas laptopnya. Cara termudah untuk membuktikan ini adalah—Bob hanya memberi tahu Alice kata sandi, dan Alice mengetik kata sandi di laptop dan memverifikasi bahwa Bob memiliki otoritas. Namun, proses verifikasi ini tidak memuaskan baik bagi Alice maupun Bob. Jika Bob memiliki kata sandi yang sangat panjang dan kusut, akan sangat sulit bagi Alice untuk mengetiknya dengan benar (asumsikan bahwa Alice tidak bisa menyalin dan menempel). Lebih realistis, Bob mungkin enggan untuk mengungkapkan kata sandinya kepada Alice untuk membuktikan otoritasnya.\u003c/p\u003e\n\u003cp\u003eBagaimana jika ada proses verifikasi di mana Alice dapat dengan cepat memverifikasi otoritas komputer, tanpa Bob harus mengungkapkan kata sandinya? Misalnya, Bob dapat mengetuk jari untuk membuka laptop dengan touch ID di depan Alice seperti pada Gambar 3 (perhatikan bahwa ini bukan contoh yang sempurna untuk ZKP). Di sinilah baik Alice maupun Bob dapat mendapatkan manfaat dari kedua properti kunci ZKPs: properti zero-knowledge, dan properti succinctness.\u003c/p\u003e\n\u003cp\u003eGambar 3: Intuisi tingkat tinggi tentang Zero-Knowledge dan Succinctness\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/60023bcd074b3add14a8b728f63c12defd709221.png\" alt=\"\"\u003e\u003cbr\u003e(Sumber: imgflip)\u003c/p\u003e\n\u003ch4 id=\"h4-zero-knowledge\"\u003e\u003ca name=\"Zero-Knowledge\" class=\"reference-link\"\u003e\u003c/a\u003e\u003cspan class=\"header-link octicon octicon-link\"\u003e\u003c/span\u003eZero-Knowledge\u003c/h4\u003e\u003cp\u003eProperti "zero-knowledge" mengacu pada kasus di mana bukti yang dihasilkan oleh prover tidak mengungkapkan apa pun tentang saksi rahasia (misalnya, data pribadi), membuat verifikator tidak sadar apa pun tentang data kecuali validitas bukti. Dalam blockchain, properti ini dapat dimanfaatkan untuk menjaga privasi pengguna individu. Jika ZKPs diterapkan untuk setiap transaksi, pengguna dapat membuktikan keabsahan tindakan mereka (misalnya, membuktikan bahwa seorang pengguna memiliki cukup dana untuk melakukan transaksi) tanpa mengekspos detail transaksi mereka (misalnya, transfer, pembaruan saldo akun, implementasi smart contract, dan eksekusi smart contract) ke publik.\u003c/p\u003e\n\u003ch4 id=\"h4-succinctness\"\u003e\u003ca name=\"Succinctness\" class=\"reference-link\"\u003e\u003c/a\u003e\u003cspan class=\"header-link octicon octicon-link\"\u003e\u003c/span\u003eSuccinctness\u003c/h4\u003e\u003cp\u003eProperti lainnya, "succinctness" mengacu pada kemampuan ZK untuk menghasilkan bukti pendek dan cepat diverifikasi dari tuntutan ukuran besar. Dengan kata lain, ini adalah konsolidasi sesuatu yang besar menjadi sesuatu yang kompak. Di dalam blockchain, ini terutama dimanfaatkan dalam rollups. Dengan ZKPs, prover di L2 dapat mengklaim eksekusi transaksi yang benar dengan mengirimkan bukti singkat ke verifikator di L1 (keabsahan TBs transaksi dapat direpresentasikan dengan bukti 10~100 KB). Verifikator kemudian dapat dengan mudah mengonfirmasi keabsahan eksekusi dalam waktu singkat (misalnya, 10ms~1s) dengan memverifikasi bukti ringkas tersebut daripada memutar ulang semua transaksi.\u003c/p\u003e\n\u003ch3 id=\"h3-zk-rollup-is-great-but-doesn-t-mean-privacy\"\u003e\u003ca name=\"ZK Rollup is Great, but Doesn’t Mean Privacy\" class=\"reference-link\"\u003e\u003c/a\u003e\u003cspan class=\"header-link octicon octicon-link\"\u003e\u003c/span\u003eZK Rollup Bagus, tapi Bukan Berarti Privasi\u003c/h3\u003e\u003cp\u003eKarakteristik ZKP yang disebutkan di atas digunakan dengan baik di ZK rollups. Meskipun verifikator tidak dapat menyimpulkan data transaksi asli dari ZKPs yang diterima dari prover, memverifikasi bukti ringkas memungkinkan mereka untuk dengan efisien memvalidasi klaim prover (misalnya, state L2 baru). Namun, pernyataan bahwa ZK rollups dalam iterasi saat ini sepenuhnya mematuhi properti zero-knowledge dan succinctness adalah menyesatkan. Ini mungkin benar ketika difokuskan hanya pada interaksi antara prover dan verifikator, tetapi ada juga komponen lain dalam ZK rollups, seperti sequencer, prover, dan node rollup. Apakah prinsip "zero-knowledge" dijamin untuk mereka juga? \u003c/p\u003e\n\u003cp\u003eTantangan dalam mencapai privasi penuh dengan ZKPs dalam ZK rollups muncul dari potensi kompromi jika bagian lain tetap publik sementara beberapa dibuat pribadi oleh ZK. Pikirkan siklus transaksi dalam ZK rollups—apakah privasi dipertahankan ketika transaksi dikirim dari pengguna ke sequencer? Bagaimana dengan prover? Atau apakah privasi informasi akun individu dipertahankan ketika batch L2 dikirim ke lapisan DA? Tidak satupun dari skenario tersebut saat ini benar.\u003c/p\u003e\n\u003cp\u003eGambar 4: Kebocoran privasi dalam ZK rollups\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/bcfc455bc38910fe5c57da3b2bde30197603a2e0.png\" alt=\"\"\u003e\u003cbr\u003e(Sumber: Presto Research)\u003c/p\u003e\n\u003cp\u003eDalam sebagian besar ZK rollups mainstream, sequencer atau prover (atau beberapa entitas terpusat lainnya dengan otoritas kuat) memiliki visibilitas jelas atas detail transaksi yang mencakup jumlah transfer, pembaruan saldo akun, implementasi kontrak, dan eksekusi kontrak. Sebagai contoh mudah, Anda dapat dengan mudah mengamati semua detail yang disebutkan dengan mengunjungi salah satu penjelajah blok\u003ca href=\"https://explorer.zksync.io/\"\u003e ZK rollup\u003c/a\u003e. Tidak hanya itu, pertimbangkan situasi di mana sequencer terpusat secara tidak sengaja mati dan node rollup lain mencoba memulihkan state rollup. Node tersebut akan mengumpulkan data L2 yang dipublikasikan secara publik dari lapisan DA (yang merupakan L1 Ethereum dalam kebanyakan kasus), dan merekonstruksi state L2. Dalam proses ini, setiap node yang mampu memutar ulang transaksi L2 yang disimpan di lapisan DA dapat memulihkan informasi tentang status akun setiap pengguna.\u003c/p\u003e\n\u003cp\u003eOleh karena itu, istilah "zero-knowledge" diimplementasikan dalam bentuk terfragmentasi dalam ZK rollups saat ini. Meskipun ini tidak dapat dianggap sebagai tidak benar, jelas bahwa ini berbeda dari gagasan umum bahwa "ZK berarti zero-knowledge dan sama dengan privasi penuh". Kebaruan ZK rollups saat ini adalah memanfaatkan properti "succinctness" daripada "zero-knowledge", yang merupakan mengeksekusi transaksi di luar rantai, dan menghasilkan bukti singkat untuk verifikator memverifikasi keabsahan eksekusi dengan cara yang cepat dan dapat diskalakan tanpa harus mengeksekusinya kembali. \u003c/p\u003e\n\u003cp\u003eUntuk alasan ini, beberapa ZK rollups seperti Starknet merujuk pada diri mereka sendiri sebagai "