
Erasure coding adalah metode yang membagi data menjadi beberapa "data shard" dan menghasilkan "parity shard" tambahan. Selama Anda dapat memperoleh jumlah shard yang cukup—meskipun ada yang hilang—data asli dapat direkonstruksi sepenuhnya.
Bayangkan seperti puzzle dengan potongan cadangan: puzzle dipecah menjadi beberapa bagian utama (data shard), lalu disiapkan beberapa bagian cadangan (parity shard). Walaupun beberapa potongan hilang, selama jumlahnya cukup, gambar tetap bisa disusun dengan lengkap.
Erasure coding didasarkan pada dua parameter utama, k dan r: data dipecah menjadi k data shard, lalu dibuat r parity shard, sehingga total shard n = k + r. Sistem tetap dapat memulihkan data meski kehilangan r shard, asalkan k shard masih bisa diakses.
Metode yang paling umum digunakan di dunia rekayasa adalah Reed–Solomon coding, teknik klasik yang menghasilkan parity shard melalui perhitungan polinomial dan telah digunakan selama puluhan tahun. Contohnya, jika k = 6 dan r = 3, maka total shard adalah 9. Artinya, 3 shard bisa hilang dan data tetap bisa dipulihkan, dengan overhead penyimpanan sekitar 1,5x (9/6).
Pemulihan mirip seperti “menyelesaikan persamaan”: setelah Anda mengumpulkan k shard apa pun, algoritma akan membangun ulang data asli. Dalam sistem terdistribusi, hal ini memastikan data tetap dapat diakses meskipun node offline, disk gagal, atau terjadi gangguan jaringan.
Blockchain dan jaringan terdesentralisasi memiliki node yang tersebar dengan waktu aktif yang bervariasi. Mengandalkan banyak replika penuh menghabiskan banyak ruang penyimpanan dan bandwidth. Erasure coding menawarkan keandalan yang setara dengan kebutuhan penyimpanan jauh lebih efisien, sehingga sangat cocok untuk lingkungan di mana banyak node biasa secara bersama-sama menyediakan data.
Di satu sisi, metode ini memangkas biaya penyimpanan banyak salinan lengkap, membuat data lebih efisien didistribusikan ke berbagai node dan wilayah. Di sisi lain, bila dikombinasikan dengan verifikasi hash dan mekanisme audit, erasure coding memastikan data tetap dapat diakses meskipun node berubah-ubah, sehingga meningkatkan ketersediaan data—artinya siapa pun tetap bisa mengunduh seluruh data.
Pada jaringan penyimpanan terdesentralisasi, erasure coding umumnya digunakan untuk membagi file besar menjadi bagian-bagian kecil dan mendistribusikannya ke berbagai node. Pendekatan ini menekan risiko kegagalan satu node, mengurangi jumlah replika yang dibutuhkan, serta memungkinkan pengunduhan lebih cepat melalui pengambilan paralel.
Strategi implementasi yang lazim: file dipecah menjadi k data shard dan dibuat r parity shard; seluruh shard ini didistribusikan ke node-node di berbagai wilayah dan operator yang berbeda. Pada klaster multibenua, cara ini memastikan bahwa meski beberapa node di satu area gagal, setidaknya k shard tetap dapat dikumpulkan untuk pemulihan data.
Banyak toolchain lapisan atas mendukung penambahan lapisan erasure coding pada jaringan content-addressed seperti IPFS. Operasi umumnya meliputi verifikasi hash di level blok dan sampling berkala untuk memastikan blok tetap utuh dan dapat dipulihkan.
Pada solusi layer-2 seperti Rollup, memastikan “pihak lain dapat mengakses data transaksi” sangat krusial—ini disebut data availability. Salah satu metodenya adalah memperluas data dengan erasure coding ke dalam bentuk grid. Node ringan kemudian mengambil sampel acak sejumlah kecil bagian; jika sampel tersebut dapat diambil, diasumsikan seluruh data tersedia. Proses ini dinamakan data availability sampling.
Hingga 2024, Celestia menggunakan ekstensi Reed–Solomon dua dimensi dan data availability sampling di mainnet, memperluas data blok menjadi matriks yang lebih besar untuk meningkatkan keandalan sampling (lihat dokumentasi teknis resmi mereka untuk detail lebih lanjut). Di Ethereum, erasure coding juga sedang dibahas dalam pengembangan full sharding (danksharding), dikombinasikan dengan skema sampling dan komitmen untuk meningkatkan ketersediaan data.
Keduanya bertujuan mencegah kehilangan data, namun memiliki perbedaan mendasar:
Penerapan perlu menyeimbangkan keandalan, efisiensi penyimpanan, dan beban operasional. Berikut panduan langkah demi langkah untuk eksperimen skala kecil atau produksi:
Contoh: Jika Anda mengoperasikan node pribadi atau menerapkan klaster penyimpanan privat di testbed developer Gate, Anda bisa melakukan demo dengan k = 8, r = 4 di tiga lokasi—pastikan kehilangan empat shard mana pun tetap memungkinkan pemulihan data.
Dari sisi rekayasa, erasure coding dua dimensi yang dipadukan dengan data availability sampling berkembang pesat di blockchain modular. Ada eksplorasi aktif untuk mengintegrasikan coding dengan cryptographic commitment dan zero-knowledge proofs untuk pemulihan yang dapat diverifikasi. Per 2024, proyek seperti Celestia telah menerapkan DAS di mainnet; komunitas terus mengoptimalkan biaya sampling lebih rendah dan pengalaman light node yang lebih baik pada skala besar.
Bagi individu atau tim, fokuslah memilih nilai k dan r yang sesuai dengan topologi penyimpanan Anda; gunakan hash dan audit untuk menjaga integritas; kelola lalu lintas perbaikan saat jaringan padat; dan untuk wallet atau aset penting, selalu kombinasikan erasure coding dengan enkripsi serta backup geografis demi ketersediaan dan keamanan.
Erasure coding dan RAID sama-sama solusi redundansi, namun digunakan pada skenario berbeda. RAID umumnya digunakan pada array disk tradisional dengan menyimpan banyak salinan di beberapa drive; erasure coding secara matematis membagi data menjadi fragmen yang memungkinkan pemulihan dari kehilangan sebagian dengan efisiensi penyimpanan lebih baik. Pada blockchain, erasure coding menawarkan toleransi kegagalan setara replikasi dengan kebutuhan ruang penyimpanan jauh lebih sedikit.
Lama pemulihan bergantung pada parameter encoding dan kondisi jaringan Anda. Misalnya, konfigurasi (4,2) membutuhkan pengumpulan 4 fragmen dari jaringan terdistribusi untuk membangun ulang data asli—biasanya selesai dalam hitungan detik hingga puluhan detik. Namun, latensi tinggi atau node yang lambat bisa memperpanjang waktu pemulihan.
Erasure coding meningkatkan lalu lintas jaringan karena untuk pemulihan diperlukan pengambilan cukup banyak fragmen dari banyak node—sehingga konsumsi bandwidth lebih tinggi dibanding skema satu replika. Namun, dibandingkan backup multi-replika (yang mentransfer salinan penuh berkali-kali), erasure coding lebih efisien dalam penggunaan bandwidth. Pemilihan parameter harus disesuaikan dengan kapasitas jaringan yang tersedia saat desain sistem.
Secara teori bisa, namun praktiknya cukup menantang. Erasure coding membutuhkan jaringan terdistribusi (banyak node penyimpanan) dan logika encoding/decoding yang kompleks—tidak cocok untuk lingkungan satu mesin. Proyek individu biasanya menggunakan layanan cloud storage (yang sudah mengintegrasikan redundansi) atau skema replikasi sederhana. Platform seperti Gate menyediakan layanan penyimpanan berbasis erasure coding yang bisa dimanfaatkan individu secara tidak langsung.
Setiap proyek dapat menggunakan parameter atau detail implementasi yang berbeda; namun prinsip dasar erasure coding bersifat universal. Perbedaan utama ada pada parameter (misal, (4,2) vs. (6,3)) dan kompleksitas komunikasi lintas rantai. Sebagian besar proyek saat ini memiliki implementasi independen tanpa protokol standar—ini salah satu alasan adopsinya belum universal.


