BARU: Helius mengakuisisi Light Protocol
Keynote ZK Compression: Breakpoint 2024
Blog/Dasar-Dasar

Keynote ZK Compression: Breakpoint 2024

PenelitiLostin di X
Bacaan 13 menit

Berikut adalah ikhtisar dan poin-poin utama dari presentasi keynote ZK Compression serta sesi tanya jawab di konferensi Breakpoint 2024, yang disampaikan oleh Swen Schaeferjohann, salah satu pendiri Light Protocol, dan Nicolas Pennie, salah satu pendiri Helius. Presentasi ini membahas kompresi ZK—apa itu, cara kerjanya, dan yang terpenting, mengapa teknologi ini sangat penting bagi masa depan Solana.

Unduh slide presentasi.

ZK Compression: Send it to Zero

Satu hal yang segera diketahui developer saat bekerja di Solana adalah meskipun komputasi relatif murah, biaya penyimpanan data tergolong tinggi. Sebagai contoh, dengan harga SOL sebesar $150, pembuatan 1.000 akun token memerlukan biaya sekitar $300, sedangkan pembuatan satu juta akun akan memerlukan biaya $300.000. Hal ini membuat penskalaan aplikasi untuk basis pengguna yang besar menjadi terlalu mahal karena biaya tersebut meningkat seiring kenaikan harga SOL. Selain itu, pertumbuhan state merupakan tantangan bagi semua blockchain stateful. Saat akun baru dibuat, biaya sewa harus dibayarkan untuk mempertahankannya, dan biayanya mahal. Saat ini, Solana memiliki lebih dari 500 juta akun, dengan sekitar satu juta akun baru ditambahkan setiap hari.

Kompresi ZK menawarkan solusi untuk masalah tersebut dengan menyediakan:

  • Akun yang seribu kali lebih murah
  • Solusi untuk pertumbuhan state
  • Fondasi untuk komputasi ZK di Solana

Kompresi State + ZK

Untuk memahami kompresi ZK, mari kita uraikan terlebih dahulu kompresi state, yang mencakup lima tahap utama:

  1. Jutaan akun → “sidik jari”
  2. Simpan sidik jari secara on-chain
  3. Simpan riwayat akun di ledger Solana
  4. Cache state akun terbaru dengan indexer
  5. Verifikasi state akun terkompresi melalui “sidik jari” on-chain

Kita memulai dengan mengompresi jutaan akun Solana dan melakukan hashing terhadapnya menjadi "sidik jari" yang ringkas. Sidik jari ini disimpan dalam akun on-chain, sedangkan seluruh data akun yang mendasarinya tetap dapat diakses di ledger Solana. Untuk memastikan validitas akun off-chain ini, kita menggunakan mekanisme prover yang memverifikasi integritasnya menggunakan sidik jari on-chain. Langkah terakhir dalam proses ini menggunakan Zero-Knowledge SNARK, yang mendukung sistem proof untuk memverifikasi integritas akun tersebut.

Mengapa Menggunakan Kompresi ZK?

Beberapa fitur utama menjadikan kompresi ZK solusi ideal untuk kompresi state. Misalnya, akun terkompresi berperilaku serupa dengan akun Solana standar, sehingga developer dapat memanfaatkan keterampilan dan teknik pengembangan yang sudah mereka miliki tanpa harus mempelajari banyak hal baru. Hal ini menurunkan hambatan awal dan memudahkan developer mengadopsi kompresi ZK.

‍API yang disediakan oleh indexer sangat menyerupai panggilan RPC yang sudah ada. Misalnya, metode getAccountInfo dipetakan secara langsung ke getCompressedAccount, dan pemetaan satu-ke-satu ini berlaku di seluruh RPC API. Konsistensi ini menyederhanakan integrasi kompresi ZK dengan alat dan alur kerja Solana yang sudah ada.

PDA Terkompresi

Salah satu fitur utama sistem ini adalah dukungannya untuk alamat turunan program (PDA) terkompresi. PDA adalah alamat akun deterministik yang dapat diturunkan secara konsisten menggunakan alamat program dan seed tertentu. PDA terkompresi membantu menghilangkan masalah seperti race condition, benturan alamat, atau pembuatan beberapa akun secara tidak sengaja untuk kombinasi alamat program dan seed yang sama. Peningkatan ini menjadi alasan utama peralihan dari sistem kompresi akun SPL yang sudah ada ke kompresi ZK.

‍Dengan dukungan penuh untuk kompresi ZK, potensi dampaknya terhadap Solana sangat besar. PDA dan kemampuan untuk menyusun beberapa program bersama-sama memungkinkan pembuatan arsitektur yang lebih kompleks, yang melibatkan banyak program dan PDA berbeda—menyerupai pengalaman pengembangan yang sudah dikenal saat membangun aplikasi tradisional. Hal ini dapat dicapai dengan biaya yang jauh lebih rendah, yaitu mengurangi biaya akun hingga seribu kali lipat. Penurunan biaya yang drastis ini akan membuka berbagai kasus penggunaan baru yang sebelumnya tidak dapat diakses karena biayanya terlalu tinggi.

Peningkatan Komposabilitas

Semuanya berjalan langsung di Solana—ini bukan L2 maupun validium. Ketersediaan data secara otomatis disediakan oleh ledger Solana, sehingga eksekusi dapat diverifikasi dan sepenuhnya dapat dikomposisikan.

‍Zero-knowledge proof mengurangi ukuran proof menjadi konstan sebesar 128 byte, sehingga menyediakan lebih banyak ruang dalam setiap transaksi untuk operasi lain dan menghasilkan komposabilitas yang lebih mudah serta fleksibilitas yang lebih besar untuk aktivitas tambahan. Ukuran proof tetap konsisten, terlepas dari jumlah akun yang diperbarui, dibaca, atau ditulis dalam satu transaksi maupun jumlah inklusi atau eksklusi yang perlu dibuktikan. Hal ini penting karena ukuran transaksi Solana pada dasarnya kecil (1,2 kilobyte). Fungsi hash yang berbeda untuk Merkle tree state diperlukan untuk mencapai waktu pembuktian yang cepat. Karena itu, kami tidak dapat menggunakan program kompresi akun SPL asli.

Dekompresi

Fitur utama lainnya adalah dekompresi, yang mencegah lock-in dan memungkinkan interoperabilitas tanpa hambatan antara akun “reguler” dan akun terkompresi. Setiap akun Solana dapat dikompresi, sehingga Anda dapat memperoleh kembali biaya sewanya. Anda juga dapat mendekompresi akun terkompresi kapan saja, yang memudahkan transisi antara kedua bentuk tersebut. Misalnya, jika Anda memiliki token terkompresi yang perlu ditukar, Anda cukup mendekompresinya dan menggunakan Jupiter untuk menjalankan pertukaran.

Dekompresi memungkinkan transisi tanpa hambatan antara hot state dan cold state. Misalnya, jika Anda mengembangkan game dengan berbagai kartu dan item terkompresi, Anda dapat mendekompresinya selama pertempuran agar state dapat berubah dengan cepat, lalu mengompresinya kembali setelah pertempuran untuk menyimpan hasil akhir, seperti perubahan hit point. Terdapat beberapa batasan terkait konkurensi dalam satu tree selama satu slot. Kompresi sebaiknya dihindari jika Anda perlu memperbarui akun yang sama beberapa kali dalam satu blok. Dalam kasus tersebut, lebih baik mendekompresi akun tertentu itu secara permanen agar berfungsi sebagai akun on-chain reguler. Misalnya, akun pool AMM lebih cocok menggunakan bentuk tersebut karena state-nya perlu diperbarui secara rutin. Sistem ini cukup fleksibel untuk berinteraksi dengan akun terkompresi dan akun yang telah didekompresi dalam transaksi yang sama.

Solusi yang sepenuhnya tergeneralisasi ini tidak terbatas pada satu program, logika bisnis, atau aplikasi. Akun Solana dapat dikompresi dengan biaya rendah dan dukungan pengindeksan bawaan. Solusi ini sepenuhnya open-source, siap digunakan dalam produksi, dan dapat disesuaikan untuk berbagai kasus penggunaan.

Token Terkompresi

Token terkompresi tidak kompatibel secara langsung dengan bursa dan platform DeFi kecuali platform tersebut mendukungnya. Namun, masalah ini dapat diatasi dengan mudah dengan mendekompresi token terkompresi menjadi token SPL standar, yang kemudian dapat digunakan dalam DeFi dan bursa seperti token reguler lainnya. Fleksibilitas ini memastikan tidak adanya lock-in, dan pengguna dapat beralih antara token terkompresi dan reguler sesuai kebutuhan. Token terkompresi ideal untuk aplikasi cold yang tidak memerlukan interaksi rutin, sedangkan akun token reguler lebih cocok untuk hot state atau aset yang sering digunakan. Salah satu keunggulan utama sistem ini adalah kemampuannya mengatasi masalah pertumbuhan state dengan memindahkan data cold state ke penyimpanan terkompresi, mempertahankan semua manfaatnya sekaligus mengelola state secara lebih efisien.‍

‍Dalam rilis awal, kami memperkenalkan token terkompresi yang dibuat menggunakan alat yang sama seperti yang Anda gunakan untuk aplikasi lain yang mendukung kompresi. Program token terkompresi identik dengan program token Solana, menghadirkan pengalaman pengguna yang sama dengan pengurangan biaya seribu kali lipat. Ekstensi token diperkirakan akan diluncurkan pada awal 2025.

Dengan fitur seperti dekompresi, Anda dapat melakukan airdrop token dalam jumlah besar dan mendekompresinya dengan cepat saat diperlukan untuk aktivitas DeFi. Meskipun zero-knowledge (ZK) proof sering dianggap sebagai pencapaian utama komputasi berbiaya tinggi, kami telah mengoptimalkan prosesnya agar transfer menyerupai transfer token SPL standar, dengan waktu pembuktian yang berkurang menjadi hitungan milidetik. Hal ini menghadirkan ZK tingkat produksi untuk konsumen sekaligus menurunkan biaya pengelolaan akun token secara signifikan.

Bagaimana Cara Kerja Kompresi ZK?

Terdapat lima komponen utama dalam keseluruhan sistem: 

  • Forest of State Trees
  • Light System Program
  • Compressed Token Program
  • Node Forester
  • Indexer (Photon)

Forest of State Trees

Pertama, kita memiliki Merkle tree state, yang kami sebut sebagai “forest of state Merkle trees.” Struktur ini membuat sidik jari kriptografis yang unik dari sekumpulan akun dan dapat kita simpan secara on-chain. Misalnya, jika Anda memiliki empat akun, Anda dapat melakukan hashing secara rekursif terhadapnya menjadi struktur Merkle tree.

Hash akhir berukuran 32 byte di bagian atas memberikan jaminan kriptografis atas integritas data yang mendasari semua akun. Hal ini memastikan bahwa state akun mana pun dapat diverifikasi dengan mudah sebagai bagian dari Merkle tree dengan membandingkannya terhadap root state. Kami menggunakan istilah "forest" di sini karena terdapat beberapa Merkle tree, masing-masing dengan root tersendiri.

Perbandingan dengan Kompresi Akun SPL yang Sudah Ada

Salah satu peningkatan utama kompresi ZK dibandingkan program kompresi akun SPL yang sudah ada adalah kemampuan untuk membuktikan bahwa suatu bagian state termasuk dalam Merkle tree tertentu, sehingga pembuatan proof dapat dilakukan secara efisien dalam batas ukuran transaksi Solana. Hal ini memungkinkan kami membuktikan keunikan alamat tertentu dengan mengelola address tree yang serupa dengan Merkle tree state, tetapi dilengkapi fitur tambahan: membuktikan inklusi dalam suatu leaf juga membuktikan eksklusi rentang angka tertentu. Hal ini memungkinkan penanganan ruang alamat 248-bit dengan Merkle tree yang jauh lebih kecil sekaligus memastikan keunikan alamat.

M akun dapat dibuktikan untuk N tree sambil mempertahankan ukuran proof yang konstan sebesar 128 byte sehingga sesuai dengan batas ukuran transaksi Solana sebesar 1,2 kb. Pembuatan proof, yang berlangsung secara off-chain, lebih mahal daripada program kompresi akun SPL yang sudah ada. Namun, verifikasi proof, yang berlangsung secara on-chain, tetap konstan dan biasanya lebih murah dalam sebagian besar kasus dibandingkan program kompresi yang sudah ada.

Light System & Compressed Token Program

Protokol ini melibatkan dua program utama. Light System Program adalah kontrak on-chain yang meniru Solana System Program. Program ini berinteraksi dengan Merkle tree, menerapkan model akun Solana standar, dan memverifikasi keunikan PDA. Compressed Token Program mereplikasi program token SPL dan menerapkan tata letak data SPL dalam model akun terkompresi.

Node Forester

Node Forester bertanggung jawab mengelola light forest ini. Saat Anda memperbarui akun terkompresi, state akun baru ditambahkan ke tree, sedangkan state lama diubah menjadi nol atau dibatalkan.

Pendekatan ini memiliki dua implikasi utama. Pertama, setiap pembaruan state menyebabkan perubahan pada root karena modifikasi merambat ke bagian atas Merkle tree terbalik. Kedua, tree secara bertahap terisi dan akhirnya mencapai kapasitasnya. Pada titik inilah forest of light trees berperan.

Node Forester bertanggung jawab mempertahankan root state. Node ini memperbarui root state secara asinkron dan menangani rollover state tree yang penuh. Pengoperasian node Forester untuk state tree Anda sendiri tidak memerlukan izin dan bekerja seperti menjalankan RPC, sehingga siapa pun dapat mengelola pembaruan state mereka sendiri. Sebagai developer aplikasi, Anda memiliki kepentingan langsung untuk mempertahankan state terkompresi Anda. Hal ini menciptakan insentif alami untuk memastikan state tree Anda dikelola dengan baik. Anda dapat memilih untuk menjalankan node sendiri dengan self-hosting atau membayar penyedia untuk menanganinya bagi Anda.

Photon

Indexer Photon adalah solusi open-source yang dirancang untuk melacak dan mengelola pembaruan, pembuatan, mutasi, serta peristiwa lain yang terkait dengan akun terkompresi di blockchain. Indexer ini memantau aktivitas on-chain dan menyimpan state akun tersebut saat ini dalam cache. Selain itu, Photon menghasilkan proof kriptografis yang dapat digunakan untuk verifikasi atau mutasi data.

‍Indexer Photon yang siap digunakan dalam produksi mencakup berbagai peningkatan signifikan berdasarkan wawasan dari versi kompresi sebelumnya. Tujuannya adalah agar mudah digunakan dan diakses, baik oleh developer individu, perusahaan, maupun penyedia RPC.

Pengembangan lokal kini jauh lebih sederhana. Photon menyediakan alat CLI sekali klik yang terintegrasi dengan lancar ke dalam lingkungan lokal Anda. Explorer yang berfokus pada developer juga tersedia, menyediakan antarmuka visual untuk melihat akun terkompresi, melacak perubahannya, dan memeriksa riwayat transaksi.

Photon menghasilkan snapshot harian untuk mempercepat pengembangan dan deployment. Alih-alih melakukan pengindeksan ulang dari genesis, developer dapat memulai dari snapshot sehingga waktu boot dan startup berkurang menjadi 15 menit atau kurang. Snapshot ini juga meningkatkan replikasi dan memastikan bahwa jika penyedia RPC menghentikan dukungan kompresi, Anda dapat memperoleh snapshot dengan mudah dan menjalankan indexer secara mandiri. Risiko kehilangan data diminimalkan dengan snapshot, yang dapat disimpan di solusi terdesentralisasi seperti FileCoin.

Dengan Photon, Anda memiliki fleksibilitas untuk hanya mengindeks sebagian data, sehingga kebutuhan hardware dan ukuran database berkurang secara signifikan. Hal ini dapat dilakukan menggunakan SQLite hanya dengan satu perintah CLI. Sebagai alternatif, jika Anda adalah penyedia RPC, Anda dapat memilih untuk mengindeks seluruh dataset. Photon tersedia di semua paket Helius. Anda juga dapat menjalankannya secara mandiri atau meminta penyedia lain menawarkannya.

Oleh Developer, untuk Developer

Fokus kami sepenuhnya tertuju pada developer, dan kami secara aktif mengembangkan tiga peningkatan utama yang secara khusus dirancang untuk menyempurnakan pengalaman developer.

Web3.js untuk Kompresi

SDK ini dirancang agar bekerja seperti Solana web3.js, tetapi dengan dukungan kompresi penuh. Untuk memulai transfer token terkompresi, pertama-tama Anda mengambil akun token terkompresi, lalu menggunakan akun tersebut untuk memperoleh validity proof dari RPC atau node prover khusus. Setelah itu, Anda membuat instruction seperti saat menggunakan program token SPL dengan menentukan apa yang ingin dikirim, jumlahnya, mint, dan penerimanya—sehingga menghasilkan transaksi Solana reguler.

‍Penyiapan Pengembangan Lokal Lengkap

Kami menawarkan validator pengujian yang telah dikonfigurasi dengan semua hal yang diperlukan untuk pengembangan lokal, termasuk semua program yang diperlukan, indexer Photon, dan node prover lokal. Hal ini memastikan proses penyiapan yang efisien bagi developer.

Makro Anchor

Bagi Anda yang memahami pengembangan program Solana menggunakan Anchor, tujuan kami adalah membuat penggunaan akun terkompresi semudah menggunakan akun reguler. Jika Anda pernah menulis program Anchor, Anda akan langsung mengenali pengalaman pengembangannya. Makro Anchor saat ini masih dalam proses pengembangan.

Airship

Airship memungkinkan developer memanfaatkan kompresi ZK saat ini melalui alat airdrop token massal yang mudah digunakan dan hemat biaya. Airship menawarkan antarmuka pengguna dan CLI. Karena sepenuhnya open-source, developer dapat melakukan fork dan memodifikasinya sesuai kebutuhan. Seiring makin banyak developer melakukan airdrop token terkompresi, ekosistem akan mulai mengadopsinya di berbagai aplikasi. Namun, jika menginginkan konversi langsung, developer dapat segera mendekompresi token tersebut. Dengan demikian, Airship menjadi alat airdrop siap pakai untuk token reguler saat ini.

‍Alat ini secara otomatis mendukung airdrop kepada pemegang Solana mobile, pemegang token tertentu, atau pemegang koleksi NFT. Jika Anda memiliki daftar penerima yang telah dibuat sebelumnya, Anda juga dapat mengimpor file CSV serta menentukan token dan jumlah yang akan di-airdrop. Baik CLI maupun UI memungkinkan Anda melanjutkan kembali airdrop dari state terakhir yang disimpan jika mengalami masalah seperti kehilangan koneksi internet. Fitur ini sangat berguna untuk airdrop yang lebih besar, yang dapat memerlukan waktu 30 hingga 45 menit saat mendistribusikan token ke daftar alamat yang panjang.

Ruang Desain Baru untuk Aplikasi

Kompresi ZK mengatasi masalah pertumbuhan state dengan hanya menyimpan hash root akhir dari semua akun dalam memori validator aktif. Pendekatan ini secara efektif mengurangi masalah pertumbuhan state. Selain itu, kompresi ZK membuka berbagai kemungkinan desain baru untuk aplikasi. Berikut beberapa potensi kasus penggunaannya:

  • Kompresor token SPL
  • Satu miliar meme coin
  • Pasar prediksi untuk postingan Twitter
  • PDA pengidentifikasi untuk node dalam jaringan DePin
  • Penghitungan dan distribusi reward yang dapat diverifikasi
  • Bridge dengan kebutuhan kepercayaan minimum
  • Protokol identitas ZK

Ide lainnya tersedia dalam dokumentasi.

Kompresi ZK kini tersedia di mainnet dan devnet! Anda dapat memulai dengan membaca dokumentasi kami dan mengikuti contoh-contohnya. Selain itu, kami mengadakan hackathon dengan hadiah hingga $45.000.

Jika Anda tertarik mempelajari ZK lebih lanjut, baca postingan blog Helius kami sebelumnya untuk pembahasan mendalam mengenai dasar-dasar zero-knowledge proof dan penerapannya di Solana.

‍

Berlangganan Helius

Ikuti perkembangan terbaru dalam pengembangan Solana dan dapatkan pembaruan saat kami memublikasikan postingan

Gambar diperbesar