Bagaimana jika Anda kehilangan ingatan setiap jam? Dan Anda harus terus-menerus meminta seseorang untuk memberi tahu Anda apa yang telah Anda lakukan? Itulah kondisi kontrak pintar saat ini. Pada blockchain seperti Ethereum, kontrak pintar tidak dapat mengakses negara di luar 256 blok secara langsung. Masalah ini semakin diperburuk dalam ekosistem multi-rantai, di mana pengambilan dan verifikasi data di berbagai lapisan eksekusi menjadi lebih sulit.
Pada tahun 2020, Vitalik Buterin dan Tomasz Stanczak mengusulkan cara untuk mengakses data sepanjang waktu. Meskipun EIP mengalami stagnasi, kebutuhannya muncul kembali di dunia multi-rantai yang berpusat pada roll-up. Saat ini, bukti penyimpanan telah muncul sebagai garda depan, untuk memberikan kesadaran dan memori pada kontrak pintar.
Ada sejumlah cara dapps dapat mengakses data dan status. Semua pendekatan mengharuskan aplikasi untuk menaruh kepercayaan pada manusia/entitas atau keamanan atau kode ekonomi kripto dan memiliki beberapa trade-off:
Mengingat tantangan dan keterbatasan solusi ini, terdapat kebutuhan yang jelas untuk menyimpan dan menyediakan hash blok secara on-chain. Di sinilah bukti penyimpanan berperan. Untuk lebih memahami bukti penyimpanan, mari kita lihat sekilas penyimpanan data di blockchain.
Blockchain adalah database publik yang diperbarui dan dibagikan ke banyak komputer dalam suatu jaringan. Data dan status disimpan dalam grup berurutan yang disebut blok dan setiap blok secara kriptografis mereferensikan induknya dengan menyimpan hash dari header blok sebelumnya.
Mari kita ambil blok Ethereum sebagai contoh. Ethereum memanfaatkan jenis pohon Merkle tertentu yang dikenal sebagai “pohon Merkle Patricia” (MPT). Header blok Ethereum berisi akar dari empat percobaan Merkle-Patricia yang berbeda, yaitu Tri negara, Trie penyimpanan, Trie penerimaan, dan Trie Transaksi. Keempat upaya ini menyandikan pemetaan yang mencakup semua data Ethereum. Merkle Trees digunakan karena efisiensinya dalam penyimpanan data. Dengan menggunakan hash rekursif, hanya hash root yang perlu disimpan, sehingga menghemat banyak ruang. Mereka mengizinkan siapa saja untuk membuktikan keberadaan suatu elemen di pohon dengan membuktikan bahwa hashing node secara rekursif akan menghasilkan hash root yang sama. Bukti Merkle memungkinkan klien ringan di Ethereum mendapatkan jawaban atas pertanyaan seperti:
Daripada mengunduh setiap transaksi dan setiap blok, “klien ringan” hanya dapat mengunduh rangkaian header blok dan memverifikasi informasi menggunakan Merkle Proofs. Hal ini membuat keseluruhan proses menjadi sangat efisien. Lihat blog artikel penelitian Vitalik dan Maven11 ini untuk lebih memahami implementasi, keuntungan, dan tantangan yang terkait dengan Merkle Trees.
Bukti penyimpanan memungkinkan kami membuktikan bahwa ada sesuatu yang dilakukan dalam database dan juga valid menggunakan komitmen kriptografi. Jika kami dapat memberikan bukti tersebut, maka ini adalah klaim yang dapat diverifikasi bahwa sesuatu telah terjadi di blockchain.
Bukti penyimpanan mengizinkan dua fungsi utama:
Bukti penyimpanan pada tingkat yang sangat tinggi memeriksa apakah blok tertentu adalah bagian dari sejarah kanonik blockchain dan kemudian memverifikasi apakah data spesifik yang diminta adalah bagian dari blok tersebut. Hal ini dapat dicapai melalui:
Beberapa proyek yang mengadopsi pendekatan ini adalah Herodotus, Lagrange, Axiom, Hyper Oracle, Brevis Network, dan nil foundation. Sementara upaya signifikan sedang dilakukan untuk membuat aplikasi sadar negara di berbagai blockchain, IBC (Inter Blockchain Communication) menonjol sebagai standar interoperabilitas yang memungkinkan aplikasi seperti ICQ (Interchain queries) dan ICA (Interchain account). ICQ memungkinkan aplikasi pada Rantai A untuk menanyakan keadaan rantai B dengan memasukkan kueri dalam paket IBC sederhana dan ICA memungkinkan satu blockchain untuk mengontrol akun di blockchain lain dengan aman. Menggabungkannya dapat memungkinkan kasus penggunaan lintas rantai yang menarik. Penyedia RaaS seperti Saga menawarkan fungsi ini ke semua rantai aplikasi mereka secara default dengan menggunakan IBC.
Ada banyak cara di mana bukti penyimpanan dapat dioptimalkan untuk menemukan keseimbangan yang tepat antara konsumsi memori, waktu pembuktian, waktu verifikasi, efisiensi komputasi, dan pengalaman pengembang. Proses keseluruhan secara garis besar dapat dibagi menjadi 3 sub-proses utama.
Akses data: Dalam subproses ini, penyedia layanan mengakses header blok rantai sumber secara asli pada lapisan eksekusi atau melalui pemeliharaan cache on-chain. Untuk akses data lintas rantai, verifikasi konsensus rantai sumber pada rantai tujuan diperlukan. Beberapa pendekatan dan optimalisasi yang diadopsi antara lain:
Selain akses ke data, kontrak pintar juga harus mampu melakukan penghitungan sewenang-wenang terhadap data. Meskipun beberapa kasus penggunaan mungkin tidak memerlukan komputasi, ini merupakan layanan bernilai tambah yang penting untuk banyak kasus penggunaan lainnya. Banyak penyedia layanan mengaktifkan komputasi pada data sebagai bukti komputasi yang dapat dihasilkan dan disediakan secara on-chain untuk validitas. Karena solusi AMP yang ada seperti Axelar, LayerZero, Polyhedra Network berpotensi digunakan untuk akses data, pemrosesan data dapat menjadi pembeda bagi penyedia layanan bukti penyimpanan.
Hyper Oracle, misalnya, memungkinkan pengembang untuk menentukan komputasi off-chain khusus dengan JavaScript. Brevis telah merancang pasar terbuka Mesin Kueri ZK yang menerima kueri data dari dApps, dan memprosesnya menggunakan header blok yang telah dibuktikan. Kontrak pintar mengirimkan permintaan data, yang diambil oleh pembukti dari pasar. Prover menghasilkan bukti berdasarkan masukan kueri, header blok yang relevan (dari lapisan agregasi Brevis), dan hasil. Lagrange telah memperkenalkan ZK Big Data Stack untuk membuktikan model pemrograman terdistribusi seperti SQL, MapReduce, dan Spark/RDD. Buktinya bersifat modular dan dapat dihasilkan dari header blok apa pun yang berasal dari jembatan lintas rantai dan protokol AMP yang ada. ZK MapReduce, produk pertama dalam tumpukan Lagrange ZK BigData, adalah mesin komputasi terdistribusi (berdasarkan model pemrograman MapReduce yang terkenal) untuk membuktikan hasil komputasi yang melibatkan kumpulan data multi-rantai yang cukup besar. Misalnya, satu bukti ZKMR dapat digunakan untuk membuktikan perubahan likuiditas DEX yang diterapkan pada 4–5 rantai selama jangka waktu tertentu. Untuk query yang relatif sederhana, komputasi juga dapat dilakukan secara langsung secara on-chain seperti yang dilakukan oleh Herodotus saat ini.
Bukti status dan penyimpanan dapat membuka banyak kasus penggunaan baru untuk kontrak pintar pada lapisan aplikasi, middleware, dan infrastruktur. Beberapa di antaranya adalah:
Tata Kelola:
Semua bukti di atas dapat digunakan untuk memberikan pengalaman yang disesuaikan kepada pengguna. Dapps dapat menawarkan diskon atau hak istimewa untuk mempertahankan pedagang atau pengguna berpengalaman dan menawarkan pengalaman pengguna yang disederhanakan untuk pengguna pemula.
Dua kasus penggunaan terakhir memerlukan bukti untuk diperbarui setiap kali blok baru ditambahkan ke rantai sumber.
Kesadaran memberdayakan perusahaan teknologi untuk melayani pelanggan mereka dengan lebih baik. Dari identitas pengguna hingga perilaku pembelian hingga grafik sosial, perusahaan teknologi memanfaatkan kesadaran untuk membuka kemampuan seperti penargetan yang presisi, segmentasi pelanggan, dan pemasaran viral. Perusahaan teknologi tradisional memerlukan izin eksplisit dari penggunanya dan harus berhati-hati saat mengelola data pengguna. Namun, semua data pengguna di blockchain tanpa izin tersedia untuk umum tanpa harus mengungkapkan identitas pengguna. Kontrak pintar harus dapat memanfaatkan data yang tersedia untuk umum untuk melayani pengguna dengan lebih baik. Pengembangan dan adopsi ekosistem yang lebih terspesialisasi akan membuat kesadaran negara dari waktu ke waktu dan blockchain menjadi masalah yang semakin penting untuk dipecahkan. Bukti penyimpanan dapat memungkinkan Ethereum muncul sebagai lapisan identitas dan kepemilikan aset serta menjadi lapisan penyelesaian. Pengguna dapat mempertahankan identitas dan aset utama mereka di Ethereum yang dapat digunakan di banyak blockchain tanpa selalu menjembatani aset. Kami terus bersemangat dengan kemungkinan-kemungkinan baru dan kasus-kasus penggunaan yang akan terbuka di masa depan.
Bagaimana jika Anda kehilangan ingatan setiap jam? Dan Anda harus terus-menerus meminta seseorang untuk memberi tahu Anda apa yang telah Anda lakukan? Itulah kondisi kontrak pintar saat ini. Pada blockchain seperti Ethereum, kontrak pintar tidak dapat mengakses negara di luar 256 blok secara langsung. Masalah ini semakin diperburuk dalam ekosistem multi-rantai, di mana pengambilan dan verifikasi data di berbagai lapisan eksekusi menjadi lebih sulit.
Pada tahun 2020, Vitalik Buterin dan Tomasz Stanczak mengusulkan cara untuk mengakses data sepanjang waktu. Meskipun EIP mengalami stagnasi, kebutuhannya muncul kembali di dunia multi-rantai yang berpusat pada roll-up. Saat ini, bukti penyimpanan telah muncul sebagai garda depan, untuk memberikan kesadaran dan memori pada kontrak pintar.
Ada sejumlah cara dapps dapat mengakses data dan status. Semua pendekatan mengharuskan aplikasi untuk menaruh kepercayaan pada manusia/entitas atau keamanan atau kode ekonomi kripto dan memiliki beberapa trade-off:
Mengingat tantangan dan keterbatasan solusi ini, terdapat kebutuhan yang jelas untuk menyimpan dan menyediakan hash blok secara on-chain. Di sinilah bukti penyimpanan berperan. Untuk lebih memahami bukti penyimpanan, mari kita lihat sekilas penyimpanan data di blockchain.
Blockchain adalah database publik yang diperbarui dan dibagikan ke banyak komputer dalam suatu jaringan. Data dan status disimpan dalam grup berurutan yang disebut blok dan setiap blok secara kriptografis mereferensikan induknya dengan menyimpan hash dari header blok sebelumnya.
Mari kita ambil blok Ethereum sebagai contoh. Ethereum memanfaatkan jenis pohon Merkle tertentu yang dikenal sebagai “pohon Merkle Patricia” (MPT). Header blok Ethereum berisi akar dari empat percobaan Merkle-Patricia yang berbeda, yaitu Tri negara, Trie penyimpanan, Trie penerimaan, dan Trie Transaksi. Keempat upaya ini menyandikan pemetaan yang mencakup semua data Ethereum. Merkle Trees digunakan karena efisiensinya dalam penyimpanan data. Dengan menggunakan hash rekursif, hanya hash root yang perlu disimpan, sehingga menghemat banyak ruang. Mereka mengizinkan siapa saja untuk membuktikan keberadaan suatu elemen di pohon dengan membuktikan bahwa hashing node secara rekursif akan menghasilkan hash root yang sama. Bukti Merkle memungkinkan klien ringan di Ethereum mendapatkan jawaban atas pertanyaan seperti:
Daripada mengunduh setiap transaksi dan setiap blok, “klien ringan” hanya dapat mengunduh rangkaian header blok dan memverifikasi informasi menggunakan Merkle Proofs. Hal ini membuat keseluruhan proses menjadi sangat efisien. Lihat blog artikel penelitian Vitalik dan Maven11 ini untuk lebih memahami implementasi, keuntungan, dan tantangan yang terkait dengan Merkle Trees.
Bukti penyimpanan memungkinkan kami membuktikan bahwa ada sesuatu yang dilakukan dalam database dan juga valid menggunakan komitmen kriptografi. Jika kami dapat memberikan bukti tersebut, maka ini adalah klaim yang dapat diverifikasi bahwa sesuatu telah terjadi di blockchain.
Bukti penyimpanan mengizinkan dua fungsi utama:
Bukti penyimpanan pada tingkat yang sangat tinggi memeriksa apakah blok tertentu adalah bagian dari sejarah kanonik blockchain dan kemudian memverifikasi apakah data spesifik yang diminta adalah bagian dari blok tersebut. Hal ini dapat dicapai melalui:
Beberapa proyek yang mengadopsi pendekatan ini adalah Herodotus, Lagrange, Axiom, Hyper Oracle, Brevis Network, dan nil foundation. Sementara upaya signifikan sedang dilakukan untuk membuat aplikasi sadar negara di berbagai blockchain, IBC (Inter Blockchain Communication) menonjol sebagai standar interoperabilitas yang memungkinkan aplikasi seperti ICQ (Interchain queries) dan ICA (Interchain account). ICQ memungkinkan aplikasi pada Rantai A untuk menanyakan keadaan rantai B dengan memasukkan kueri dalam paket IBC sederhana dan ICA memungkinkan satu blockchain untuk mengontrol akun di blockchain lain dengan aman. Menggabungkannya dapat memungkinkan kasus penggunaan lintas rantai yang menarik. Penyedia RaaS seperti Saga menawarkan fungsi ini ke semua rantai aplikasi mereka secara default dengan menggunakan IBC.
Ada banyak cara di mana bukti penyimpanan dapat dioptimalkan untuk menemukan keseimbangan yang tepat antara konsumsi memori, waktu pembuktian, waktu verifikasi, efisiensi komputasi, dan pengalaman pengembang. Proses keseluruhan secara garis besar dapat dibagi menjadi 3 sub-proses utama.
Akses data: Dalam subproses ini, penyedia layanan mengakses header blok rantai sumber secara asli pada lapisan eksekusi atau melalui pemeliharaan cache on-chain. Untuk akses data lintas rantai, verifikasi konsensus rantai sumber pada rantai tujuan diperlukan. Beberapa pendekatan dan optimalisasi yang diadopsi antara lain:
Selain akses ke data, kontrak pintar juga harus mampu melakukan penghitungan sewenang-wenang terhadap data. Meskipun beberapa kasus penggunaan mungkin tidak memerlukan komputasi, ini merupakan layanan bernilai tambah yang penting untuk banyak kasus penggunaan lainnya. Banyak penyedia layanan mengaktifkan komputasi pada data sebagai bukti komputasi yang dapat dihasilkan dan disediakan secara on-chain untuk validitas. Karena solusi AMP yang ada seperti Axelar, LayerZero, Polyhedra Network berpotensi digunakan untuk akses data, pemrosesan data dapat menjadi pembeda bagi penyedia layanan bukti penyimpanan.
Hyper Oracle, misalnya, memungkinkan pengembang untuk menentukan komputasi off-chain khusus dengan JavaScript. Brevis telah merancang pasar terbuka Mesin Kueri ZK yang menerima kueri data dari dApps, dan memprosesnya menggunakan header blok yang telah dibuktikan. Kontrak pintar mengirimkan permintaan data, yang diambil oleh pembukti dari pasar. Prover menghasilkan bukti berdasarkan masukan kueri, header blok yang relevan (dari lapisan agregasi Brevis), dan hasil. Lagrange telah memperkenalkan ZK Big Data Stack untuk membuktikan model pemrograman terdistribusi seperti SQL, MapReduce, dan Spark/RDD. Buktinya bersifat modular dan dapat dihasilkan dari header blok apa pun yang berasal dari jembatan lintas rantai dan protokol AMP yang ada. ZK MapReduce, produk pertama dalam tumpukan Lagrange ZK BigData, adalah mesin komputasi terdistribusi (berdasarkan model pemrograman MapReduce yang terkenal) untuk membuktikan hasil komputasi yang melibatkan kumpulan data multi-rantai yang cukup besar. Misalnya, satu bukti ZKMR dapat digunakan untuk membuktikan perubahan likuiditas DEX yang diterapkan pada 4–5 rantai selama jangka waktu tertentu. Untuk query yang relatif sederhana, komputasi juga dapat dilakukan secara langsung secara on-chain seperti yang dilakukan oleh Herodotus saat ini.
Bukti status dan penyimpanan dapat membuka banyak kasus penggunaan baru untuk kontrak pintar pada lapisan aplikasi, middleware, dan infrastruktur. Beberapa di antaranya adalah:
Tata Kelola:
Semua bukti di atas dapat digunakan untuk memberikan pengalaman yang disesuaikan kepada pengguna. Dapps dapat menawarkan diskon atau hak istimewa untuk mempertahankan pedagang atau pengguna berpengalaman dan menawarkan pengalaman pengguna yang disederhanakan untuk pengguna pemula.
Dua kasus penggunaan terakhir memerlukan bukti untuk diperbarui setiap kali blok baru ditambahkan ke rantai sumber.
Kesadaran memberdayakan perusahaan teknologi untuk melayani pelanggan mereka dengan lebih baik. Dari identitas pengguna hingga perilaku pembelian hingga grafik sosial, perusahaan teknologi memanfaatkan kesadaran untuk membuka kemampuan seperti penargetan yang presisi, segmentasi pelanggan, dan pemasaran viral. Perusahaan teknologi tradisional memerlukan izin eksplisit dari penggunanya dan harus berhati-hati saat mengelola data pengguna. Namun, semua data pengguna di blockchain tanpa izin tersedia untuk umum tanpa harus mengungkapkan identitas pengguna. Kontrak pintar harus dapat memanfaatkan data yang tersedia untuk umum untuk melayani pengguna dengan lebih baik. Pengembangan dan adopsi ekosistem yang lebih terspesialisasi akan membuat kesadaran negara dari waktu ke waktu dan blockchain menjadi masalah yang semakin penting untuk dipecahkan. Bukti penyimpanan dapat memungkinkan Ethereum muncul sebagai lapisan identitas dan kepemilikan aset serta menjadi lapisan penyelesaian. Pengguna dapat mempertahankan identitas dan aset utama mereka di Ethereum yang dapat digunakan di banyak blockchain tanpa selalu menjembatani aset. Kami terus bersemangat dengan kemungkinan-kemungkinan baru dan kasus-kasus penggunaan yang akan terbuka di masa depan.