Poin-poin Penting

  • Sharding membagi sebuah blockchain menjadi segmen yang lebih kecil bernama shard, sehingga transaksi dapat diproses secara paralel, bukan satu per satu.

  • Setiap shard bertindak sebagai basis data independen yang memproses subset transaksi miliknya sendiri, sehingga mengurangi beban pada node-node individual.

  • Sharding dapat meningkatkan throughput transaksi, menurunkan kebutuhan perangkat keras bagi operator node, serta meningkatkan efisiensi keseluruhan jaringan.

  • Trade-off termasuk kompleksitas tambahan, risiko serangan single-shard, serta tantangan pada transaksi yang melintasi banyak shard.

  • Pada Maret 2024, Ethereum telah menerapkan bentuk sharding perantara yang disebut Proto-Danksharding (EIP-4844) melalui upgrade Cancun, sehingga menurunkan biaya untuk jaringan Layer 2. Full danksharding tetap ada di roadmap.

Binance Academy courses banner

Pendahuluan

Teknologi blockchain menawarkan cara yang terdesentralisasi dan transparan untuk mencatat transaksi, tetapi memiliki keterbatasan yang sudah terkenal: skalabilitas. Ketika sebuah jaringan bertumbuh dan lebih banyak pengguna mengirim transaksi, jaringan bisa melambat dan menjadi lebih mahal untuk digunakan. Hal ini kadang disebut sebagai blockchain trilemma, yang merujuk pada kesulitan untuk mencapai skalabilitas, keamanan, dan desentralisasi secara bersamaan pada waktu yang sama.

Sharding adalah salah satu pendekatan yang mencoba mengatasi sisi skalabilitas dari masalah ini. Awalnya merupakan teknik manajemen basis data, sharding kemudian diadaptasi oleh beberapa proyek blockchain agar jaringan dapat menangani lebih banyak transaksi tanpa mengorbankan desentralisasi.

Apa Itu Sharding?

Sharding adalah proses membagi jaringan blockchain menjadi partisi-partisi yang lebih kecil yang disebut shard. Setiap shard berisi bagian data jaringan miliknya sendiri dan memproses transaksinya sendiri secara independen. Alih-alih mewajibkan setiap node menyimpan dan memverifikasi setiap transaksi di seluruh jaringan, setiap node hanya bertanggung jawab untuk satu shard.

Ini merupakan perbedaan besar dari cara kerja kebanyakan blockchain secara default. Pada blockchain standar, setiap node harus memproses dan menyimpan semua transaksi di seluruh jaringan. Pendekatan ini, meskipun aman, membatasi seberapa cepat jaringan bisa beroperasi karena semua node harus tetap sinkron.

Bagaimana Sharding Bekerja?

Untuk memahami sharding, membantu untuk melihat bagaimana data biasanya diproses pada blockchain, lalu bagaimana sharding mengubahnya.

Pemrosesan sekuensial vs. paralel

Pada blockchain tipikal, setiap node memproses transaksi satu per satu secara berurutan (sekuensial). Ini berarti kecepatan seluruh jaringan dibatasi oleh apa yang dapat ditangani oleh masing-masing node. Saat blockchain tumbuh, ini menjadi bottleneck.

Sharding menghadirkan pemrosesan paralel. Alih-alih semua node bekerja pada transaksi yang sama, kelompok node yang berbeda menangani shard yang berbeda secara bersamaan. Ini memungkinkan jaringan memproses jauh lebih banyak transaksi pada saat yang sama.

Partitioning horizontal

Sharding menggunakan teknik yang disebut partitioning horizontal, yang membagi data menjadi baris, bukan kolom. Setiap shard menyimpan subset lengkap data transaksi untuk transaksi yang ditanganinya. Ini menjaga integritas data karena setiap shard memiliki catatan lengkap untuk bagiannya di jaringan.

Horizontal partitioning illustration

Partitioning horizontal lebih disukai dalam sistem blockchain karena mendukung desentralisasi. Node hanya perlu menyimpan dan memverifikasi data satu shard, yang mengurangi kebutuhan penyimpanan dan daya komputasi untuk berpartisipasi dalam jaringan.

Partitioning vertikal

Pada partitioning vertikal, data dibagi menjadi kolom, bukan baris. Setiap partisi dalam partitioning vertikal berisi subset data untuk setiap entitas, atau seluruh kumpulan data, namun hanya untuk kumpulan atribut tertentu.

Vertical partitioning illustration

Apa Manfaat Sharding?

Sharding menawarkan beberapa keuntungan potensial untuk jaringan blockchain:

  • Peningkatan throughput: Dengan memproses transaksi secara paralel di beberapa shard, jaringan yang ter-sharded dapat menangani secara signifikan lebih banyak transaksi per detik dibanding desain yang hanya terdiri dari satu rantai.

  • Kebutuhan perangkat keras yang lebih rendah: Karena setiap node hanya menyimpan data untuk satu shard, kebutuhan penyimpanan dan pemrosesan berkurang. Ini membuat menjalankan sebuah node menjadi lebih mudah dan lebih murah, yang dapat meningkatkan desentralisasi jaringan.

  • Skalabilitas yang lebih baik: Secara teoretis, jaringan yang ter-sharding dapat menambahkan lebih banyak shard saat permintaan meningkat, sehingga jaringan bisa berkembang tanpa penurunan performa yang sebanding.

Manfaat-manfaat ini bersifat teoretis dalam tingkat yang berbeda-beda. Seberapa besar peningkatan yang benar-benar terlihat pada jaringan nyata bergantung pada bagaimana sharding diterapkan dan trade-off yang diterima.

Apa Keterbatasan dari Sharding?

Sharding menghadirkan tantangan baru yang tidak ada pada blockchain tanpa sharding:

  • Serangan single-shard: Penyerang membutuhkan jauh lebih sedikit sumber daya untuk mengambil alih satu shard dibandingkan menyerang seluruh jaringan. Ini membuat shard individu lebih rentan terhadap jenis serangan 51% tertentu.

  • Kompleksitas lintas-shard: Transaksi yang melibatkan data dari dua shard berbeda sulit dikelola. Jika satu shard tidak melacak status shard lain dengan benar selama transaksi, kesalahan seperti double-spending berpotensi terjadi.

  • Ketersediaan data: Jika node yang bertanggung jawab untuk shard tertentu offline, data shard tersebut bisa menjadi sementara tidak tersedia, mengganggu jaringan.

  • Beban sinkronisasi: Menjaga shard agar terkoordinasi menambah kompleksitas dalam desain jaringan. Kesalahan dalam pengelolaan shard dapat menyebabkan inkonsistensi atau masalah performa.

Trade-off ini menjelaskan mengapa sharding secara teknis sulit untuk diterapkan dan mengapa banyak jaringan mengambil pendekatan bertahap.

Bagaimana Sharding digunakan di Ethereum?

Roadmap skalabilitas Ethereum telah berkembang jauh sejak sharding pertama kali dibahas sebagai bagian dari rencana upgrade "Ethereum 2.0". Alih-alih menerapkan execution sharding secara langsung, Ethereum Foundation beralih ke strategi yang berpusat pada rollup, di mana Layer 2 rollups menangani eksekusi transaksi di luar rantai (off-chain) sambil memublikasikan data ke Ethereum mainnet.

Sebagai bagian dari strategi ini, Ethereum memperkenalkan Proto-Danksharding (EIP-4844) pada upgrade Cancun di bulan Maret 2024. EIP-4844 memperkenalkan tipe transaksi baru yang disebut blob-carrying transaction. Blob memungkinkan Layer 2 rollups memublikasikan jumlah data besar ke Ethereum dengan biaya yang jauh lebih rendah dibanding sebelumnya, karena data blob disimpan sementara (sekitar 18 hari) dan tidak diproses oleh Ethereum Virtual Machine.

Full danksharding adalah fase berikutnya dalam roadmap Ethereum. Ini akan memperluas sistem blob dengan mengaktifkan data availability sampling, sebuah teknik yang memungkinkan node memverifikasi bahwa data tersedia tanpa mengunduhnya sepenuhnya. Ini akan memungkinkan Ethereum mendukung jauh lebih banyak blob per blok, sehingga secara signifikan mengurangi biaya bagi pengguna Layer 2. Pada saat penulisan ini, full danksharding belum diterapkan.

FAQ

Apa itu sharding dalam blockchain?

Sharding membagi sebuah blockchain menjadi segmen-segmen independen yang lebih kecil yang disebut shard. Setiap shard memproses transaksinya sendiri dan menyimpan data miliknya sendiri. Ini memungkinkan bagian-bagian berbeda dari jaringan beroperasi secara paralel, sehingga meningkatkan total jumlah transaksi yang dapat ditangani jaringan.

Apakah Ethereum saat ini ter-sharding?

Ethereum telah menerapkan bentuk sharding antara yang disebut Proto-Danksharding (EIP-4844), yang diperkenalkan dalam upgrade Cancun pada bulan Maret 2024. Ini memungkinkan jaringan Layer 2 memublikasikan data transaksi dalam blob berbiaya rendah, bukan dalam calldata yang mahal. Full danksharding, yang akan mengaktifkan data availability sampling di banyak shard, masih dalam pengembangan.

Apa risiko utama dari sharding?

Risiko utamanya mencakup serangan single-shard, di mana penyerang dapat menargetkan satu shard dengan sumber daya lebih sedikit dibanding menyerang seluruh jaringan, serta kompleksitas transaksi lintas-shard yang dapat menimbulkan edge case seperti double-spending jika tidak ditangani dengan hati-hati. Masalah ketersediaan data juga bisa muncul jika node yang mengelola shard tertentu offline.

Apa perbedaan sharding dengan penggunaan solusi Layer 2?

Sharding adalah teknik penskalaan Layer 1 yang mengubah cara blockchain dasar menyimpan dan memproses data. Skalabilitas blockchain juga dapat diatasi melalui solusi Layer 2, yang menangani transaksi di luar rantai (off-chain) dan mengirim ringkasan kembali ke rantai utama. Dalam roadmap Ethereum saat ini, kedua pendekatan bekerja bersama: sharding (melalui blob) mengurangi biaya untuk memublikasikan data Layer 2 ke Ethereum, sementara rollups menangani eksekusi transaksi di luar rantai.

Pemikiran Penutup

Sharding adalah teknik yang menjanjikan untuk meningkatkan skalabilitas blockchain, tetapi hadir dengan trade-off nyata dalam hal kompleksitas dan keamanan. Konsep ini telah berkembang dari usulan teoretis menjadi implementasi bertahap yang lebih praktis, terutama melalui EIP-4844 Ethereum. Selama riset berlanjut dan lebih banyak jaringan bereksperimen dengan rancangan sharding, teknologinya kemungkinan akan berkembang lebih jauh. Keberhasilan implementasi tertentu apa pun akan bergantung pada seberapa baik ia menyeimbangkan throughput, keamanan, dan desentralisasi dari waktu ke waktu.

Bacaan Lanjutan

  • Blockchain Layer 1 vs. Solusi Penskalaan Layer 2

  • Apa itu Ethereum dan Bagaimana Cara Kerjanya?

  • Optimistic vs. Zero-Knowledge Rollups: Apa Perbedaannya?

  • Apa itu Upgrade Ethereum Cancun?

  • Skalabilitas Blockchain: Sidechain dan Payment Channels

Disclaimer: Konten ini disajikan untuk Anda berdasarkan status "apa adanya" untuk informasi umum dan/atau tujuan edukasi saja, tanpa representasi atau jaminan dalam bentuk apa pun. Konten ini tidak boleh ditafsirkan sebagai nasihat keuangan, hukum, atau nasihat profesional lainnya, dan juga tidak dimaksudkan untuk merekomendasikan pembelian produk atau layanan tertentu. Anda harus mencari nasihat dari penasihat profesional yang sesuai. Jika konten ini berkontribusi dari pihak ketiga, harap dicatat bahwa pandangan yang diungkapkan adalah pandangan dari kontributor pihak ketiga tersebut, dan tidak selalu mencerminkan pandangan dari Binance Academy. Harga aset digital dapat berfluktuasi. Nilai investasi Anda bisa turun atau naik, dan Anda mungkin tidak mendapatkan kembali jumlah yang diinvestasikan. Anda sepenuhnya bertanggung jawab atas keputusan investasi Anda, dan Binance Academy tidak bertanggung jawab atas kerugian apa pun yang mungkin Anda alami. Untuk informasi lebih lanjut, lihat Terms of Use, Risk Warning, dan Terms dari Binance Academy.