Jika Anda telah menghabiskan waktu di dalam ruang blockchain, mempelajari industri, janjinya, tantangannya, Anda mungkin pernah menemukan istilah sharding.
Meskipun jauh dari konsep baru dalam manajemen basis data, sharding adalah teknik partisi yang saat ini sedang diuji dalam konteks blockchain sebagai jawaban yang mungkin untuk beberapa rintangan terbesar blockchain yang menghalangi jalannya dan masa depan di mana sebagian besar layanan internet harian kita bergantung. pada jaringan terdesentralisasi dan mendapatkan keuntungan dari janji keamanan unik mereka.
Di bawah ini, kami akan menjelaskan dengan tepat apa itu sharding, bagaimana berbagai jenis sharding bekerja, dan bagaimana hal itu dapat menyelesaikan salah satu teka-teki terberat blockchain.
Apa itu Sharding?
Untuk meringkas teknik sharding dalam satu kalimat, anggap saja itu membagi blockchain menjadi beberapa sub-rantai, yang masing-masing bekerja secara independen dan menyebarkan beban kerja jaringan, meningkatkan throughput dan mengurangi latensi.
Meskipun intinya jauh lebih rumit dan menarik daripada itu, sharding benar-benar bermuara pada partisi node jaringan yang didesentralisasi menjadi cluster independen, pecahan yang dapat memverifikasi transaksi dan menambah buku besarnya sendiri.
Namun, sebelum kita membahas lebih jauh mengapa pengembang mengeksplorasi sharding sebagai cara untuk meningkatkan kinerja blockchain, penting untuk terlebih dahulu memahami cara kerja blockchain dan masalah yang mungkin diselesaikan oleh sharding dan masalah yang mungkin ditimbulkannya.
Masalah Terbesar Blockchain
Jika Anda membaca tentang sharding, ada kemungkinan Anda sudah memiliki pemahaman yang baik tentang cara kerja jaringan desentralisasi seperti blockchain. Tetapi jika tidak atau tidak ingat, inilah penyegar singkatnya, blockchain itu sendiri dirancang untuk berfungsi sebagai buku besar publik yang tidak dapat diubah yang dapat dilihat oleh semua orang di Jaringan dan secara praktis, hampir tidak mungkin untuk aktor jahat untuk mengubahnya.
Algoritme konsensus seperti
Proof of Work dan
Proof of Stake bergantung pada partisipasi masing-masing komputer, atau node, yang menyumbangkan daya komputasi yang diperlukan untuk memvalidasi transaksi dan menambahkannya ke Blockchain dalam serangkaian blok data (oleh karena itu istilahnya, blok- rantai).
Teka-teki kriptografi yang melibatkan elemen enkripsi seperti hashing satu arah digunakan untuk memastikan kebenaran transaksi sebelum ditulis dengan batu di blockchain yang dapat dilihat publik.
Setiap node dalam jaringan menyimpan salinan lengkap buku besar ini. Ini memudahkan untuk menemukan upaya aktor jahat untuk memalsukan transaksi atau mengubah catatan, Pikirkanlah, jika 99 dari 100 orang memiliki satu catatan sejarah peristiwa, akan sangat sulit bagi seseorang untuk menjual catatan palsu sebagai Mccoy asli .
Itu karena jaringan tersebar di begitu banyak node independen daripada disimpan di server tunggal sehingga dikenal sebagai jaringan terdesentralisasi. Desentralisasi ini adalah salah satu prinsip utama cryptocurrency dan blockchain secara umum, lingkungan pertukaran tanpa kepercayaan yang tidak bergantung pada kepercayaan pihak ketiga untuk mengeksekusi transaksi dan menangani data dengan aman dan etis.
Banyak yang percaya pada kekuatan blockchain hampir sepenuhnya pada tingkat filosofis, membayangkan Internet di mana individu dapat melakukan transaksi lintas batas dan menulis kontrak pintar yang dapat dijalankan sendiri dan tidak dapat diubah yang dapat dengan aman mengawasi interaksi tanpa bergantung pada entitas lain untuk menyimpan informasi pembayaran dan pengguna yang sensitif. data. Tapi, untuk semua kebaikan dan janji dari jaringan desentralisasi, mereka bukannya tanpa tantangan belum terpecahkan.
Meningkatkan Skalabilitas
Masalah inti di jantung blockchain saat ini adalah bagaimana meningkatkan skalabilitas jaringan terdesentralisasi untuk memenuhi permintaan yang terus meningkat.
Sementara organisasi teknologi keuangan arus utama, semakin banyak, mengadopsi teknologi berbasis blockchain untuk operasi mereka sendiri, kinerja pengguna akhir bahkan dari blockchain paling populer sangat jauh dari kemampuan kelas berat yang mengakar kuat seperti Visa.
Ethereum, misalnya, hanya dapat memproses 10 hingga 15 transaksi per detik, dengan transaksi individu biasanya membutuhkan beberapa menit untuk diselesaikan, sementara Visanet yang sudah tua dapat menangani sekitar 1700 per detik dengan sebagian besar transaksi selesai dalam hitungan detik.
Kecepatan lambat yang melekat pada banyak jaringan terdesentralisasi berasal dari sifatnya, daripada pusat data terpusat yang bertenaga tinggi dan mudah diupgrade yang bertanggung jawab untuk memproses transaksi secepat mungkin, setiap node yang terhubung ke jaringan harus memproses dan menyimpan buku besar yang diperbarui.
Seiring bertambahnya ukuran buku besar yang didistribusikan, begitu pula permintaan penyimpanan lokal pada setiap node anggota. Inilah sebabnya mengapa jaringan terdesentralisasi belum mengambil alih paradigma terpusat dari teknologi keuangan meskipun ada keuntungan keamanan yang sangat besar yang mereka berikan.
Mencegah Sentralisasi
Ukuran buku besar terdistribusi yang terus meningkat menciptakan masalah sekunder untuk blockchain secara keseluruhan. hambatan yang meningkat untuk penambahan node individu baru dan dengan demikian meningkatkan risiko sentralisasi. Ketika blockchain tumbuh lebih besar, itu menjadi lebih sulit dan lebih mahal bagi pengguna individu untuk mengatur node yang mampu menampung seluruh riwayat transaksi jaringan.
Namun, dengan status algoritme konsensus rantai blok saat ini, node tidak punya pilihan; Proof of Work dan Proof of Stake melibatkan node individu yang memberikan kontribusi kekuatan komputasi yang diperlukan untuk memecahkan teka-teki kriptografi yang mengonfirmasi validitas transaksi untuk menambahkannya ke blockchain sementara setiap node lain di jaringan menyimpan seluruh buku besar menjadi kemudian dapat memeriksa kebenaran solusi mereka untuk teka-teki kriptografi, memvalidasi keaslian catatan.
Tuntutan bahwa buku besar yang semakin besar ini ditempatkan pada node individu merupakan penghalang untuk masuk ke jaringan, hanya menyisakan entitas yang lebih besar, lebih kaya secara finansial pada posisi yang baik untuk memasuki jaringan.
Memiliki entitas yang lebih sedikit dan lebih besar yang mengendalikan jaringan adalah jenis sentralisasi yang dirancang oleh blockchain untuk membebaskan pengguna dari dan menyajikan dilema keamanan yang tepat yang menyertai meninggalkan sejumlah besar pemrosesan data di tangan beberapa orang terpilih.
Cara Kerja Sharding
Sekarang setelah Anda memiliki gambaran umum tentang masalah yang ditimbulkan oleh masalah skalabilitas untuk jaringan terdesentralisasi apa pun, kita dapat melihat cara kerja sharding dalam teori dan praktik serta argumen yang mendukung dan menentangnya.
Sementara sharding pada dasarnya bermuara pada partisi database horizontal untuk menyebarkan beban kerja, istilah yang cukup lucu sebenarnya berasal dari MMO hall-of-famer, Ultima Online.
Seiring bertambahnya ukuran game, pengembang mencari cara yang ramah pengetahuan untuk mempartisi game menjadi beberapa server independen (atau dunia, seperti kebanyakan MMO sekarang menyebutnya) dan menetapkan “pecahan” berdasarkan konsep bahwa setiap server adalah sebuah dunia yang secara kanonik dikemas dalam pecahan kristal yang pecah. Hal-hal yang cukup keren, dan cerita asal yang tidak terduga untuk apa yang sekarang menjadi istilah umum dalam manajemen database.
Meskipun serupa, daripada menghancurkan kristal tunggal menjadi beberapa pecahan, dalam konteks blockchain, Sharding pada dasarnya akan menggantikan kristal tunggal yang besar dengan banyak kristal yang lebih kecil tetapi utuh. Semacam. Analogi semacam itu bertahan sampai nanti ketika kita masuk ke rantai relai dan pecahan khusus.
Anggap saja seperti menjalankan beberapa blockchain independen secara bersamaan; node dalam setiap blockchain yang lebih kecil, atau pecahan, hanya perlu menyimpan data buku besar untuk sisa node dalam pecahan residunya, bukan seluruh jaringan.
Dengan cara ini, alih-alih menggunakan banyak sekali catatan yang terhubung ke, katakanlah, Jaringan Ethereum secara keseluruhan, untuk satu transaksi pada satu waktu, itu dapat dibagi menjadi, katakanlah, sepuluh pecahan bawahan dan selesaikan sepuluh sekaligus – Dengan seluruh algoritme konsensus diselesaikan dalam setiap pecahan. Ini pada dasarnya akan memungkinkan blockchain untuk melakukan banyak tugas dan secara teoritis dapat menghasilkan peningkatan kecepatan transaksi yang berlipat ganda.
Ini akan menyelesaikan masalah penyimpanan lokal untuk node individu dengan tidak lagi mengharuskan setiap anggota untuk menyimpan catatan seluruh sejarah jaringan di mesin mereka. Dengan menggunakan penghalang untuk masuk ini, sharding juga dapat membantu mencegah sentralisasi yang tidak diinginkan yang menyertai kenaikan biaya penyimpanan dan peralatan.
Sharding: Masalah & Solusi
Di bawah ini kami akan memeriksa dengan tepat apa yang membuat sharding menjadi opsi yang menarik bagi pengembang yang ingin mengatasi masalah skalabilitas blockchain dan melihat beberapa tantangan unik yang ditimbulkan oleh grafik itu sendiri dalam hal keamanan dan kelayakan.
Kerentanan Shard
Meskipun sharding adalah jawaban teoretis untuk masalah skalabilitas dan sentralisasi, sharding melakukannya dengan ketidakamanan trade-off yang signifikan. Blockchain seperti Bitcoin yang mengandalkan algoritme konsensus Proof of Work untuk mempertahankan buku besarnya rentan terhadap serangan cyber hipotetis yang disebut serangan 51%.
Karena Proof of Work Protocol memberi penghargaan kepada penambang yang memenangkan “perlombaan” untuk memecahkan teka-teki kriptografi yang memverifikasi transaksi, mereka yang memiliki lebih banyak kekuatan komputer memiliki peluang yang lebih besar secara proporsional untuk menjadi orang yang memverifikasi transaksi, lebih banyak kekuatan sama dengan pengaruh yang lebih besar pada jaringan.
Serangan 51% menjadi mungkin ketika entitas tunggal memperoleh lebih dari 50% dari total daya komputasi dalam jaringan (bahkan 50,01% dan lebih rendah akan cukup selama lebih dari setengahnya), memberi mereka kekuatan untuk menentukan setiap transaksi di jaringan dan mencegah orang lain memvalidasi keaslian blockchain.
Saat memegang kendali, pelaku kejahatan dapat menghabiskan dua kali lipat koin dan memperkaya diri mereka sendiri dengan kendali penuh atas proses penambangan. Dalam praktiknya, bagaimanapun, ini dianggap sangat tidak mungkin hanya karena seberapa besar daya 51% dari total daya komputasi blockchain utama.
Dalam konteks penambangan kripto, daya komputasi umumnya diukur dalam tingkat hash per detik. Sebuah PC standar umumnya mampu menghasilkan beberapa ribu hash per detik (KH / S), yang berarti dapat menghasilkan beberapa ribu 64 digit hexadecimal per detik.
Seluruh jaringan Bitcoin, di sisi lain, saat ini diukur pada sekitar 156 EH/s, yang berarti 156 triliun hash per detik. Server penambangan kelas atas seperti Bitmain S9 yang berharga ribuan dolar mampu mengeluarkan beberapa triliun hash per detik, banyak, banyak lipat di bawah ambang batas 50% jaringan Bitcoin.
Namun, karena sharding membagi jaringan menjadi beberapa node independen, daya total yang diperlukan untuk mengambil alih node tunggal dibagi sesuai. Misalkan total daya komputasi Ethereum adalah 100, dan jaringan dibagi menjadi 20 kepingan yang beroperasi secara independen dan berbeda.
Kecepatan transaksi dapat dikalikan sesuai, tetapi daya komputasi total setiap pecahan sekarang adalah 5. Ini berarti bahwa untuk mengambil alih pecahan tunggal, yang diperlukan hanyalah daya komputasi di atas 2,5. Meskipun pengambilalihan satu pecahan mungkin tidak membahayakan seluruh jaringan, korupsi menyebabkan satu pecahan tersebut menjadi kerugian permanen.
Meskipun tidak langsung menghancurkan seluruh jaringan, ini memungkinkan penyerang untuk menimbulkan risiko pembongkaran progresif dan juga mengikis kepercayaan pada keamanan jaringan – keamanan menjadi nilai jual utama blockchain saat ini.
Rantai Suar Pedang Bermata Dua
Untuk memerangi kerentanan kritis ini, Blockchain seperti Ethereum sedang mengeksplorasi bagaimana keacakan dapat dijadikan senjata sebagai perisai terhadap penyerang. Dalam contoh yang disebutkan di atas di mana, untuk pecahan individu yang akan disusupi, hanya diperlukan 2,6% dari total daya komputasi jaringan.
Betapapun kecilnya ambang batas ini, itu tergantung pada semua daya komputasi yang ditetapkan dalam satu pecahan. Jika node berbahaya tidak dapat memilih pecahan tempat Anda akan berfungsi sebagai validator, maka secara eksponensial lebih sulit untuk menyusupi pecahan.
Untuk mengawasi tugas pemilihan validator acak, blockchain kedua dibuat yang tidak berpartisipasi secara langsung dengan komputasi di dalam pecahan tertentu.
Alih-alih, satu-satunya fokusnya adalah melakukan operasi komputasi terpisah yang diperlukan untuk pemeliharaan seluruh jaringan, menghasilkan angka acak untuk proses pemilihan, merekam status pecahan (snapshot dari buku besar pecahan tanpa riwayat transaksional lengkap dari setiap blok), dan menyediakan lainnya layanan jaringan luas. Rantai pusat dan menyeluruh ini dikenal sebagai rantai Beacon di Ethereum dan Rantai Relai di Polkadot.
Namun, seperti yang tampaknya benar dengan sebagian besar solusi di blockchain, jawaban ini adalah pedang bermata dua. Sementara, secara teoritis, sharding dapat sepenuhnya mengatasi setiap dan semua masalah skalabilitas yang melekat pada blockchain non-sharded, ketergantungannya pada rantai suar terpisah untuk mengawasi fungsinya dan membantu menjaga keamanannya menimbulkan kendala tersendiri pada penskalaan karena rantai suar tidak dipecah. .
Karena beacon chain bertanggung jawab atas sejumlah layanan komputasi yang diperlukan untuk mengawasi semua shard, hal itu juga dapat menghambat throughput karena jumlah shard melebihi daya komputasi yang disediakan oleh jaringan node yang berkontribusi pada rantai relai. Jadi itu tradeoff pengembang masih mengerjakan solusi untuk.
Interoperabilitas Shard
Hambatan utama lainnya untuk pecahan yang sepenuhnya terisolasi adalah kemampuannya untuk berkomunikasi satu sama lain. Banyak pendukung sharding berpendapat untuk pendekatan pecahan khusus di mana seluruh pecahan didedikasikan untuk tugas tertentu, Daripada hanya memotong blockchain menjadi miniatur yang menangani keseluruhan proses data yang ditangani rantai asli tanpa pecahan.
Ini, bagaimanapun, membutuhkan pecahan untuk dapat berbicara satu sama lain, sesuatu yang model teoritis yang sering dikutip tidak dijelaskan secara eksplisit. Validator harus dapat bertukar informasi yang akurat tanpa mengalami masalah skalabilitas yang sama seperti jika setiap validator harus mengautentikasi semua data pada pecahan eksternal yang diperlukan untuk berinteraksi.
Ini adalah masalah yang kompleks dengan hanya beberapa solusi seperti membuat semua shard membuat calon blok baru secara bersamaan atau membagi proses menjadi sistem validasi berurutan.
Pada akhirnya, sharding adalah solusi yang secara teknologi kompleks untuk masalah terbesar blockchain, tetapi jauh dari kristalisasi.
Apa pendapat Anda tentang sharding? Sebuah jawaban yang layak untuk penjaga gerbang paling kuat blockchain untuk penerimaan arus utama atau emas bodoh yang paling jauh tertinggal di pinggir jalan dalam mengejar solusi yang lebih baik?