Apa Itu Sharding dan Bagaimana Cara Kerjanya?
Beranda
Artikel
Apa Itu Sharding dan Bagaimana Cara Kerjanya?

Apa Itu Sharding dan Bagaimana Cara Kerjanya?

Tingkat Menengah
Diterbitkan Dec 4, 2023Diperbarui Jan 11, 2024
9m

Ringkasan

  • Sharding membagi blockchain menjadi beberapa 'shard' yang lebih kecil untuk mengatasi masalah skalabilitas terkait jaringan Lapisan 1.

  • Sharding meningkatkan kecepatan transaksi, meminimalkan biaya pemrosesan dan penyimpanan, serta meningkatkan kinerja jaringan.

  • Sharding disertai dengan potensi kelemahan, seperti kekhawatiran terkait keamanan jaringan dan kompleksitas transaksi lintas shard.

Pendahuluan

Teknologi blockchain telah menghadirkan potensi baru dalam desentralisasi, transparansi, dan keamanan. Namun, muncul tantangan yang signifikan: skalabilitas. Skalabilitas merupakan salah satu poin dari "trilema blockchain" yang juga mencakup keamanan dan desentralisasi. Mencapai ketiganya sekaligus masih belum dapat diwujudkan dalam bidang blockchain. Solusi strategis seperti "sharding" berperan dalam situasi seperti ini.

Apa Itu Sharding?

Sharding adalah konsep yang berasal dari manajemen database tradisional. Sharding adalah proses membagi database besar menjadi bagian-bagian yang lebih kecil dan mudah dikelola yang disebut shard. Penerapannya dalam blockchain bertujuan untuk meningkatkan skalabilitas sambil mempertahankan prinsip desentralisasi. Intinya, sharding terjadi ketika jaringan blockchain dibagi menjadi bagian-bagian kecil yang disebut shard. Setiap shard mampu memproses transaksi dan smart contract secara paralel.

Bagaimana Cara Kerja Sharding?

Untuk memahami cara sharding dieksekusi di dalam sebuah jaringan blockchain, diperlukan pemahaman tentang cara data blockchain biasanya disimpan dan diproses. Terdapat berbagai cara untuk memproses data. Kita akan membahas pemrosesan berurutan dan paralel.

Biasanya, setiap node blockchain bertanggung jawab dalam menangani semua volume transaksi di dalam jaringan. Jenis pemrosesan data ini biasanya disebut pemrosesan berurutan. Artinya, setiap node harus mempertahankan dan menyimpan semua informasi yang penting, seperti saldo akun dan riwayat transaksi. Intinya, setiap node harus memproses semua operasi, data, dan transaksi jaringan.

Meskipun meningkatkan keamanan blockchain dengan mencatat setiap transaksi pada semua node, model ini memperlambat pemrosesan data secara signifikan. Dalam situasi ini, pemrosesan data paralel berperan karena memungkinkan beberapa operasi dieksekusi secara bersamaan.

Sharding dapat menjadi solusi yang ampuh terhadap kesulitan ini karena membagi atau 'membuat partisi' beban kerja transaksional ke seluruh jaringan blockchain. Artinya, tidak semua node harus mengelola atau memproses seluruh beban blockchain.

Sharding justru memisahkan beban kerja melalui partisi horizontal. Dalam proses ini, data dibagi menjadi subset horizontal. Masing-masing shard berfungsi sebagai database independen yang mampu memproses transaksi secara terpisah dari shard lainnya. 

Partisi horizontal vs. vertikal

Partisi horizontal dan partisi vertikal merupakan dua pendekatan utama terhadap penskalaan database. Meskipun keduanya dirancang untuk mengelola set data yang besar secara lebih efektif, masing-masing memiliki cara yang berbeda secara fundamental. Sharding merupakan metode umum untuk menerapkan partisi horizontal.

Dalam partisi horizontal, data dibagi ke dalam beberapa baris lalu disebarkan pada berbagai node (atau database) yang masing-masing berisi subset dari data tersebut. Setiap baris dalam tabel merupakan entitas yang unik, sehingga memisahkannya tidak akan menyebabkan hilangnya integritas data. Contoh yang terkenal dari penggunaan partisi horizontal adalah distribusi jaringan blockchain, seperti Ethereum dan Bitcoin.

Dalam partisi vertikal, data dibagi ke dalam kolom, bukan baris. Setiap partisi dalam partisi vertikal berisi subset data untuk setiap entitas atau seluruh set data, tetapi hanya untuk serangkai atribut tertentu. Bayangkan sebuah tabel pelanggan dengan kolom seperti Nama, Status, Deskripsi, dan Foto. Dalam skenario partisi vertikal, 'Nama' dan 'Status' mungkin disimpan dalam satu tabel, sedangkan 'Deskripsi' dan 'Foto' dalam tabel lain.

Mengapa partisi horizontal lebih disukai?

Partisi horizontal umumnya lebih disukai dibandingkan partisi vertikal dalam jaringan blockchain karena tiga alasan utama: skalabilitas, desentralisasi, dan keamanan.

Skalabilitas: Sharding memberikan solusi dengan memecah data ke dalam beberapa 'shard' yang lebih kecil dan lebih mudah dikelola. Setiap shard dapat beroperasi secara independen, sehingga lebih banyak transaksi dapat diproses sekaligus. Hal ini meningkatkan kecepatan dan efisiensi jaringan. Dalam partisi vertikal, distribusi kolom pada berbagai database mungkin menambah kompleksitas dalam pengambilan informasi transaksi atau blok lengkap dan dapat membatasi skalabilitas.

Desentralisasi: Sesuai dengan etos inti blockchain, partisi horizontal mendukung desentralisasi. Ketika node hanya perlu memproses sebagian dari total data (sebuah shard), lebih banyak node dapat berpartisipasi dalam jaringan karena beban komputasi dan penyimpanan berkurang. Sebaliknya, partisi vertikal akan membatasi hal ini karena setiap node akan memerlukan akses ke semua partisi (semua kolom data) untuk memahami dan memverifikasi data blok.

Keamanan dan Integritas Data: Partisi horizontal mempertahankan integritas data karena setiap shard (atau partisi) berisi data transaksi lengkap, sehingga memastikan bahwa setiap node memiliki salinan yang akurat dan lengkap atas bagiannya dari blockchain. Dalam partisi vertikal, Anda pada dasarnya akan membagi data blok ke berbagai node. Hal ini mempersulit dalam memastikan integritas dan keamanan data yang merupakan aspek terpenting dalam jaringan blockchain.

Apa Saja Manfaat Sharding?

Mari kita dalami potensi manfaat yang dihadirkan oleh sharding pada teknologi blockchain:

Peningkatan Kecepatan Transaksi: Sharding memfasilitasi pemroses transaksi paralel. Daripada memproses transaksi satu per satu secara berurutan, sharding memungkinkan transaksi diproses secara bersamaan tetapi pada shard yang berbeda-beda. Setiap shard berfungsi secara independen, sehingga meningkatkan kecepatan transaksi secara signifikan. Selain meningkatkan kecepatan transaksi, hal ini juga berarti bahwa seluruh jaringan dapat menangani lebih banyak pengguna, sehingga mendorong adopsi massal.

Contoh jaringan blockchain yang menggunakan shard untuk mengatasi skalabilitas adalah Ziliqa. Mekanisme sharding Ziliqa memungkinkannya untuk mencapai ribuan transaksi per detik.

Biaya Pemrosesan dan Penyimpanan yang Diminimalkan: Desain blockchain konvensional mewajibkan setiap node untuk menyimpan semua transaksi, sehingga meningkatkan permintaan perangkat keras seiring dengan pertumbuhan blockchain. Namun, dengan sharding, setiap node hanya bertanggung jawab dalam memproses dan menyimpan sebagian kecil dari seluruh data jaringan. Hal ini mengurangi sumber daya yang diperlukan oleh setiap node untuk berpartisipasi dalam jaringan.

Dengan demikian, lebih banyak peserta dapat bergabung sebagai validator, sehingga desentralisasi jaringan meningkat tanpa menimbulkan biaya yang mahal. Hal ini memitigasi masalah berupa hanya entitas dengan sumber daya komputasi kelas atas yang mahal yang dapat berpartisipasi secara realistis dalam prosesnya, sehingga sifat demokratisasi jaringan blockchain dapat dipertahankan.

Peningkatan Kinerja Jaringan: Sharding dapat membantu meningkatkan kinerja dan kapasitas jaringan secara keseluruhan. Dalam blockchain tradisional, ketika makin banyak node berpartisipasi dalam jaringan, kinerja akan menurun drastis akibat kebutuhan akan peningkatan komunikasi dan sinkronisasi data di antara node.

Namun, sharding mengubah skenario ini. Karena setiap shard bekerja secara independen dan bersamaan, sistem dapat memproses lebih banyak transaksi dan komputasi. Saat bergabung, node baru dapat ditambahkan ke shard daripada ke seluruh jaringan. Hal ini meningkatkan kapasitas jaringan untuk diskalakan. Efisiensi meningkat, sehingga menghasilkan transaksi yang lebih lancar dan pengalaman pengguna yang lebih baik.

Ingat bahwa kemajuan dan peningkatan teknologi sharding di masa mendatang dapat menghasilkan keunggulan lain atau memperkuat yang sudah ada, sehingga terus meningkatkan ekosistem blockchain.

Apa Saja Batasan Sharding?

Meskipun sharding menawarkan sejumlah potensi manfaat yang dapat membantu jaringan blockchain menjadi lebih efisien, prosesnya juga menghadirkan serangkai tantangan yang unik. Beberapa potensi kerentanan yang dihadirkan oleh sharding meliputi: 

Serangan Pengambilalihan Satu Shard: Dalam lingkungan sharding, daya komputasi untuk mengambil alih satu shard jauh lebih rendah dibandingkan daya yang diperlukan untuk mengambil alih seluruh jaringan. Hal ini menjadikan masing-masing shard lebih rentan terhadap "serangan satu persen" atau "pengambilalihan shard" yang memungkinkan seorang penyerang dengan sejumlah kecil sumber daya dibandingkan seluruh jaringan dapat berpotensi mengambil alih satu shard.

Transaksi Lintas Shard: Transaksi yang berlangsung pada berbagai shard (lintas shard) menimbulkan tantangan yang unik. Transaksi lintas shard bersifat kompleks dan dapat berpotensi menyebabkan pengeluaran ganda jika tidak dikelola dengan hati-hati. Jika satu shard tidak melacak status shard lain dengan akurat selama sebuah transaksi, pengguna dapat mengeksploitasinya untuk "pengeluaran ganda".

Masalah Ketersediaan Data: Sharding membuat tindakan mempertahankan status seluruh jaringan menjadi upaya yang rumit. Jika shard tertentu tidak tersedia saat diperlukan (karena node yang mempertahankan shard tersebut sedang offline), masalah ketersediaan data dapat muncul sehingga mendisrupsi seluruh jaringan.

Keamanan Jaringan: Sharding memerlukan penerapan protokol kuat yang menyeimbangkan beban di antara shard. Jika tidak dilakukan dengan benar, hal ini dapat menyebabkan distribusi data yang tidak merata atau ketidakseimbangan sumber daya, sehingga menyebabkan potensi ketidakstabilan jaringan.

Sinkronisasi Node: Sinkronisasi node dapat menyebabkan keterlambatan jaringan akibat waktu yang diperlukan untuk membagikan dan memperbarui informasi ke berbagai node. Selain itu, sebuah node dengan kemampuan pemrosesan yang lebih lambat atau koneksi jaringan yang lambat dapat memperlambat seluruh proses sinkronisasi, sehingga menurunkan kinerja jaringan blockchain secara keseluruhan.

Apakah Sharding Diterapkan pada Ethereum?

Ethereum berencana untuk menerapkan sharding sebagai bagian dari peningkatan Ethereum 2.0. Ethereum 2.0, yang disebut juga Eth2 atau Serenity, adalah sebuah peningkatan terhadap blockchain Ethereum yang bertujuan untuk meningkatkan kecepatan, efisiensi, dan skalabilitas jaringan agar dapat memproses lebih banyak transaksi dan mengurangi kemacetan.

Saat ini, peningkatan ini sedang diterapkan dalam beberapa fase. Fase terakhir (Fase 2) mencakup implementasi sharding sepenuhnya. Para pengembang Ethereum berharap bahwa peningkatan ini akan mengatasi beberapa tantangan saat ini terkait skalabilitas dan biaya transaksi yang dihadapi oleh jaringan ini.

Namun, harap diperhatikan bahwa penerapan sharding disertai dengan serangkai tantangan tersendiri, khususnya dalam mempertahankan keamanan dan desentralisasi jaringan. Oleh karena itu, para pengembang Ethereum melakukan pemikiran yang cermat dan pengujian yang menyeluruh dalam transisi ini demi memastikan keberhasilan peningkatan ini saat diterapkan sepenuhnya.

Penutup

Secara keseluruhan, sharding mewakili kemajuan yang penting dalam menyelesaikan trilema blockchain. Meskipun menghadirkan kompleksitas baru dan potensi kelemahan, potensinya untuk meningkatkan skalabilitas tanpa mengorbankan desentralisasi memberikan harapan yang besar untuk masa depan jaringan blockchain.

Tidak mengherankan jika berbagai blockchain menelaah sharding sebagai solusi yang potensial. Ethereum mengintegrasikan sharding sebagai bagian dari peningkatan Ethereum 2.0 untuk mengatasi masalah skalabilitas. Penerapan ini diharapkan berlangsung melalui peningkatan Cancun yang merupakan komponen penting dari keseluruhan rencana peningkatan. Meskipun demikian, sama seperti teknologi lainnya yang berkembang, keberhasilannya akan bergantung pada riset, pengembangan, dan pengujian ketat yang berlangsung terhadap penerapan sharding.

Bacaan Lebih Lanjut

Penafian: Konten ini disajikan kepada Anda dengan dasar “sebagaimana adanya” untuk informasi umum dan tujuan pendidikan saja tanpa pernyataan atau jaminan dalam bentuk apa pun. Konten ini tidak boleh dianggap sebagai nasihat keuangan, hukum, atau profesional lainnya ataupun dimaksudkan untuk menyarankan pembelian produk atau jasa tertentu. Anda sebaiknya mencari nasihat dari penasihat profesional yang sesuai. Jika artikel merupakan kontribusi dari kontributor pihak ketiga, harap diperhatikan bahwa pandangan yang dinyatakan berasal dari kontributor pihak ketiga dan tidak mencerminkan pandangan Binance Academy. Silakan baca penafian lengkap kami di sini untuk detail lebih lanjut. Harga aset digital dapat menjadi volatil. Nilai investasi Anda mungkin turun atau naik. Anda mungkin tidak mendapatkan kembali jumlah yang sudah diinvestasikan. Anda bertanggung jawab sepenuhnya terhadap keputusan investasi Anda. Binance Academy tidak bertanggung jawab terhadap segala kerugian yang mungkin Anda alami. Materi ini tidak boleh dianggap sebagai nasihat keuangan, hukum, atau profesional lainnya. Untuk informasi selengkapnya, baca Ketentuan Penggunaan dan Peringatan Risiko kami.