Inovasi Teknologi Sharding: Shardeum dan Sharding Status Dinamis
Pada 15 September 2022, Ethereum menyelesaikan penggabungan (Merge). Ini adalah momen bersejarah yang telah disiapkan oleh Ethereum selama 5 tahun dan ditunda 6 kali. Karena pengembangan dan pengujian yang berkepanjangan, ditambah dengan efek halo yang sangat diperhatikan, banyak orang yang salah mengira bahwa penggabungan akan secara otomatis membawa skalabilitas, keamanan, dan keberlanjutan yang lebih tinggi, tetapi kenyataannya tidak demikian. Transisi dari PoW(bukti kerja) ke PoS(bukti kepemilikan) hanya mengganti rel dan roda, itu tidak akan langsung membawa kecepatan yang lebih cepat, kapasitas yang lebih besar, atau biaya yang lebih rendah. Yang benar-benar dapat mencapai tujuan ini adalah satu set solusi: jaringan utama dengan kemampuan Sharding dipasangkan dengan solusi Layer2 yang meningkatkan skalabilitas.
Seperti yang ditunjukkan oleh pendiri Ethereum Vitalik Buterin, Sharding adalah solusi skalabilitas untuk dilema trilema skalabilitas, dengan membagi node dalam jaringan menjadi kelompok yang lebih kecil, memproses kumpulan transaksi yang berbeda, dan mencapai pemrosesan paralel. Dengan membagi beban pemrosesan sejumlah besar data yang diperlukan untuk agregasi di seluruh jaringan, seperti saat kita berbelanja di Walmart dan melakukan pembayaran, dengan membuka beberapa jalur kasir, kita dapat secara intuitif mengurangi waktu antrean dan meningkatkan efisiensi pembayaran.
Inilah logika Sharding, langsung dan sederhana, namun, setan ada di dalam detail - prinsip dan arah tidak salah, tetapi dalam pelaksanaannya selalu ada banyak masalah. Artikel ini ingin dengan merapikan arah dan masalah di "Sharding", menggambar peta eksplorator Sharding yang mengamati langit dan berpijak di bumi. Sementara itu, dengan membandingkan solusi Sharding yang ada, menemukan beberapa masalah umum, dan mengusulkan arah eksplorasi yang layak: Shardeum dan Sharding dinamis.
Satu, tentang "Sharding"
Secara sederhana, mempertimbangkan batasan dari segitiga ketidakmungkinan, mulai dari Ethereum sebagai titik asal sistem koordinat (, 0), berdasarkan dua pendekatan "vertikal" dan "horizontal", kita membagi metode skalabilitas blockchain saat ini menjadi dua kategori besar:
Skalabilitas Vertikal (: Mencapai dengan meningkatkan kinerja perangkat keras yang ada dalam sistem. Membangun jaringan terdesentralisasi, di mana setiap node dalam jaringan memiliki kemampuan komputasi super, yaitu setiap node memerlukan perangkat keras yang "lebih baik" - cara ini sederhana dan efektif, dapat mencapai perbaikan awal dalam throughput, terutama cocok untuk perdagangan frekuensi tinggi, permainan, dan aplikasi lain yang sensitif terhadap latensi. Namun, cara skalabilitas ini akan membatasi tingkat desentralisasi jaringan, karena biaya menjalankan node validasi atau node penuh meningkat. Mempertahankan tingkat desentralisasi dibatasi oleh laju pertumbuhan kinerja perangkat keras komputasi yang kira-kira ) inilah yang disebut "Hukum Moore": jumlah transistor di chip akan berlipat ganda setiap dua tahun, dan biaya komputasi akan setengah (.
Skalabilitas Horizontal )Skalabilitas Horizontal (: Skalabilitas horizontal umumnya memiliki beberapa pendekatan. Salah satunya adalah dalam konteks blockchain, mendistribusikan jumlah perhitungan transaksi dalam suatu ekosistem ke beberapa blockchain independen, di mana setiap rantai memiliki produsen blok dan kemampuan eksekusi sendiri, cara ini memungkinkan setiap rantai untuk sepenuhnya disesuaikan pada lapisan eksekusinya, seperti persyaratan perangkat keras node, fungsi privasi, biaya gas, mesin virtual, dan pengaturan izin, dan sebagainya. Pendekatan skalabilitas horizontal lainnya adalah blockchain modular, membagi infrastruktur blockchain menjadi lapisan eksekusi, lapisan ketersediaan data )DA( serta lapisan konsensus. Mekanisme modular blockchain yang paling umum adalah rollup. Ada juga yang membagi satu blockchain menjadi banyak shard, yang dapat dieksekusi secara paralel. Setiap shard dapat dianggap sebagai sebuah blockchain, yang berarti banyak blockchain dapat dijalankan secara paralel. Selain itu, biasanya akan ada satu rantai utama, yang tugasnya hanya untuk menjaga semua shard tetap sinkron.
Perlu dicatat bahwa semua pemikiran tentang perluasan di atas tidak berdiri sendiri, setiap solusi adalah upaya untuk menemukan titik keseimbangan dalam segitiga yang tidak mungkin, dengan menggabungkan desain mekanisme insentif yang diciptakan oleh kekuatan ekonomi dalam sistem, untuk mencapai keseimbangan yang efektif pada tingkat makro dan mikro.
Untuk mendiskusikan "Sharding", kita perlu mulai dari awal.
Masih berasumsi pada situasi seperti ini, saat pembayaran belanja di Walmart, untuk meningkatkan efisiensi pembayaran dan mengurangi waktu tunggu pelanggan, kita memperluas dari satu jalur pembayaran menjadi 10 jendela pembayaran. Untuk menghindari kesalahan pada buku, pada saat ini kita perlu menetapkan aturan yang seragam:
Pertama, jika kita memiliki 10 kasir, bagaimana cara mendistribusikan mereka ke jendela mana untuk bekerja?
Kedua, jika kita memiliki 1000 pelanggan yang mengantri, bagaimana cara menentukan setiap pelanggan pergi ke jendela mana untuk membayar?
Ketiga, bagaimana cara mengumpulkan 10 buku besar terpisah yang sesuai dengan 10 jendela ini?
Keempat, untuk menghindari terjadinya ketidakcocokan dalam pembukuan, bagaimana cara mencegah kesalahan yang dilakukan oleh kasir?
Beberapa pertanyaan ini sebenarnya terkait dengan beberapa masalah kunci dalam Sharding, yaitu:
Bagaimana cara menentukan node/validator di seluruh jaringan termasuk dalam shard mana? Yaitu: bagaimana melakukan Sharding jaringan )NetworkSharding(;
Bagaimana cara menentukan transaksi mana yang dialokasikan ke Sharding? Yaitu: bagaimana melakukan transaksi Sharding )Transaction Sharding(;
Bagaimana data blockchain disimpan di berbagai Sharding? Yaitu: bagaimana melakukan status Sharding )State Sharding(;
Kompleksitas berarti risiko, berdasarkan semua hal di atas, bagaimana cara menghindari perpecahan keamanan seluruh sistem?
) 01 Jaringan Sharding###Network Sharding(
Jika kita memahami blockchain sebagai buku besar terdesentralisasi, baik mekanisme konsensus PoS maupun PoW bertujuan agar setiap node bersaing untuk mendapatkan hak pencatatan sesuai dengan aturan yang telah ditetapkan, sambil memastikan keakuratan buku besar. Sementara itu, Sharding adalah istilah yang mengacu pada perlunya aturan yang telah ditetapkan lainnya, untuk membagi jaringan blockchain menjadi beberapa bagian, di mana setiap bagian menangani transaksi di chain dengan meminimalkan komunikasi satu sama lain, bersaing untuk mendapatkan hak pencatatan - yaitu, aturan pengelompokan node.
Namun, masalah yang dihadapi dalam proses ini adalah, seiring dengan pembagian node internal blockchain menjadi berbagai Sharding, kesulitan dan biaya bagi penyerang akan menurun secara drastis. Kita dapat menyimpulkan, dengan asumsi bahwa aturan dan hasil dari proses pengelompokan ini tetap dan dapat diprediksi, maka penyerang yang ingin mengontrol seluruh jaringan blockchain hanya perlu secara terarah mengendalikan salah satu Sharding, dengan membeli sebagian node di dalam Sharding tersebut.
Pendiri Near, Alexander Skidanov, menggambarkan masalah ini sebagai berikut: jika sebuah rantai tunggal dengan X validator memutuskan untuk hard fork menjadi rantai sharding dan membagi X validator menjadi 10 sharding, setiap sharding sekarang hanya memiliki X/10 validator, menghancurkan satu sharding hanya memerlukan menghancurkan 5,1% dari total validator ) 51% / 10(. Ini mengarah pada poin kedua: siapa yang memilih validator untuk setiap sharding? Hanya ketika semua 5,1% validator berada dalam satu sharding, mengontrol 5,1% validator menjadi berbahaya. Jika validator tidak dapat memilih di sharding mana mereka melakukan validasi, maka peserta yang mengontrol 5,1% validator sangat tidak mungkin menempatkan semua validator di satu sharding, sehingga secara signifikan mengurangi kemampuan mereka untuk merusak sistem.
Sistem sharding harus mengembangkan mekanisme untuk mempercayai bahwa jaringan tidak akan membalikkan transaksi dari shard eksternal. Hingga saat ini, mungkin jawaban terbaik adalah memastikan bahwa jumlah validator di dalam shard lebih besar dari ambang minimum tertentu, sehingga kemungkinan validator yang tidak jujur menguasai shard tunggal akan sangat rendah. Cara yang paling umum adalah membangun tingkat ketidakberpihakan acak tertentu, bergantung pada cara matematis, untuk meminimalkan probabilitas keberhasilan penyerang. Misalnya Ethereum, solusi Ethereum adalah secara acak memilih validator untuk shard tertentu dari semua validator, dan setiap 6,4 menit ) panjang epoch ( mengganti validator.
Sederhananya, ini adalah membagi node menjadi kelompok secara acak, kemudian membagikan pekerjaan untuk diverifikasi secara independen oleh setiap kelompok node.
Namun perlu dicatat bahwa keacakan dalam blockchain adalah topik yang sangat menantang. Secara logis, proses pembuatan nomor acak ini seharusnya tidak bergantung pada perhitungan dari shard tertentu. Untuk perhitungan ini, banyak ide desain yang ada saat ini adalah mengembangkan blockchain terpisah yang memelihara seluruh jaringan. Rantai seperti ini disebut sebagai Beacon chain dalam Ethereum dan Near, Relay chain dalam PolkaDot, dan Cosmos Hub dalam Cosmos.
![Penjelasan Lengkap tentang Blockchain Baru Shardeum: Kemungkinan Lain dari Sharding])https://img-cdn.gateio.im/webp-social/moments-69c7de2bfe4ae7b233bec1f706fad9ad.webp(
) 02 Transaksi Sharding ###
Pecahan transaksi mengacu pada pembuatan aturan tentang "transaksi mana yang harus dialokasikan ke pecahan mana", sehingga dapat mencapai tujuan pemrosesan paralel sekaligus menghindari munculnya masalah pengeluaran ganda. Model buku besar blockchain yang berbeda akan memengaruhi pengembangan pecahan transaksi.
Saat ini terdapat dua jenis metode pencatatan dalam jaringan blockchain, yaitu model UTXO( Unspent Transaction Outputs dan model akun/ saldo, di mana yang pertama adalah perwakilan tipikal dari BTC, sedangkan yang kedua seperti ETH.
Model UTXO: Dalam transaksi BTC, setiap transaksi akan memiliki satu atau lebih output, UTXO merujuk pada output transaksi blockchain yang belum terpakai, yang dapat digunakan sebagai input untuk transaksi baru, sedangkan output transaksi yang sudah dipakai tidak dapat digunakan lagi, mirip dengan situasi transaksi kertas uang di mana pelanggan membayar dengan satu atau lebih uang kertas kepada penjual, dan penjual memberikan satu atau lebih uang kertas sebagai kembalian kepada pelanggan. Dalam model UTXO, sharding transaksi memerlukan komunikasi lintas shard. Satu transaksi dapat mencakup beberapa input dan beberapa output, tidak ada konsep akun, dan tidak akan ada catatan saldo. Salah satu cara yang mungkin adalah: dengan memasukkan nilai input tertentu dari transaksi ke dalam fungsi hash untuk diproses menjadi nilai hash diskrit untuk menentukan ke shard mana data seharusnya pergi. Sebagai berikut:
Untuk memastikan bahwa entri ditempatkan dengan cara yang konsisten di shard yang benar, nilai yang dimasukkan ke dalam fungsi hash harus berasal dari kolom yang sama. Kolom ini disebut Shard Key. Setelah itu, transaksi yang menghasilkan nilai 1 akan dibagi ke dalam shard 1, dan transaksi yang menghasilkan nilai 2 akan dibagi ke dalam shard 2. Namun, kelemahan dari cara ini adalah shard harus berkomunikasi untuk menghindari serangan double spend. Jika transaksi antar shard dibatasi, maka akan membatasi ketersediaan platform, sementara jika transaksi antar shard diizinkan, maka harus menyeimbangkan biaya komunikasi antar shard dengan keuntungan yang diperoleh dari peningkatan kinerja.
Model Akun/Saldo: Sistem mencatat saldo setiap akun, saat melakukan transaksi, sistem memeriksa apakah akun memiliki saldo yang cukup untuk pembayaran, mirip dengan transfer bank, di mana bank mencatat saldo setiap akun, hanya jika saldo akun lebih besar dari jumlah transfer yang diperlukan, transaksi dapat dilakukan. Dalam model akun/saldo, karena satu transaksi hanya memiliki satu input, maka selama transaksi dibagi berdasarkan alamat pengirim, dapat dipastikan bahwa beberapa transaksi dari akun yang sama diproses dalam shard yang sama, secara efektif mencegah double spending. Oleh karena itu, sebagian besar blockchain yang menggunakan teknologi sharding adalah sistem buku besar akun seperti Ethereum.
![Penjelasan Lengkap Jaringan Baru Shardeum: Sharding kemungkinan lain])https://img-cdn.gateio.im/webp-social/moments-7aa1677db6b8128b68accfe04fcda738.webp(
) 03 Status Sharding(State Sharding)
Sharding status mengacu pada bagaimana data blockchain dialokasikan untuk disimpan di berbagai shard.
Masih menggunakan contoh antrean Walmart kami, bagaimana setiap jendela mencatat transaksi? Jika: pelanggan antre di jendela mana, maka catat di buku yang mana, misalnya pelanggan A pergi ke jendela A, lalu keesokan harinya pelanggan tersebut pergi ke jendela pembayaran lain seperti jendela B, dan jendela B tidak memiliki informasi akun pelanggan tersebut ###, misalnya terkait dengan metode pembayaran seperti kartu prabayar (, apa yang harus dilakukan? Apakah perlu memanggil informasi akun pelanggan dari jendela A?
Status Sharding adalah tantangan terbesar dalam sharding, lebih rumit daripada sharding jaringan dan sharding transaksi yang disebutkan di atas. Karena dalam mekanisme sharding, transaksi akan diproses di shard yang berbeda berdasarkan alamat, yang berarti status hanya akan disimpan di shard tempat alamat tersebut berada, pada saat itu masalah yang dihadapi adalah, transaksi tidak hanya akan terjadi di satu shard, sering kali melibatkan lintas shard )Cross-Sharding(.
Pertimbangkan situasi transfer, akun A mentransfer 10U ke akun B, sedangkan alamat A dialokasikan di Sharding 1, catatan transaksi juga akan disimpan di Sharding 1. Alamat B dialokasikan di Sharding 2, catatan transaksi akan disimpan di Sharding 2.
Ketika A ingin mengirim uang ke B, akan terbentuk transaksi lintas Sharding, Sharding 2 akan memanggil catatan transaksi sebelumnya dari Sharding 1 untuk mengonfirmasi keabsahan transaksi. Jika A sering mengirimkan koin ke B, Sharding 2 harus terus-menerus berinteraksi dengan Sharding 1, sehingga efisiensi pemrosesan transaksi akan menurun. Namun, jika tidak mengunduh dan memverifikasi seluruh sejarah dari Sharding tertentu, peserta mungkin tidak dapat memastikan bahwa status interaksi mereka adalah hasil dari urutan blok yang valid, dan urutan blok tersebut memang merupakan rantai standar dalam Sharding.
Oleh karena itu, dibandingkan dengan rantai tunggal tanpa sharding, sistem sharding menghadapi tantangan baru yaitu pengguna tidak
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
9 Suka
Hadiah
9
5
Bagikan
Komentar
0/400
GasOptimizer
· 6jam yang lalu
gas kapan bisa turun ke 2gwei ya Sudahlah, tunggu solusi jebakan lengkap selama 5 tahun lagi.
Lihat AsliBalas0
GateUser-32ed30ed
· 07-30 20:40
Bisakah kamu berbicara seperti manusia
Lihat AsliBalas0
CryptoTarotReader
· 07-30 05:08
Ini tidak sama dengan sia-sia berjuang selama lima tahun.
Lihat AsliBalas0
pumpamentalist
· 07-30 05:04
Hanya tahu tentang trading merge, hasilnya tidak ada gunanya.
Lihat AsliBalas0
GateUser-00be86fc
· 07-30 04:57
Upgrade kali ini tidak lebih baik daripada langsung menggunakan L2
Shardeum mendorong inovasi teknologi Sharding dan menjelajahi jalur baru untuk Sharding status dinamis
Inovasi Teknologi Sharding: Shardeum dan Sharding Status Dinamis
Pada 15 September 2022, Ethereum menyelesaikan penggabungan (Merge). Ini adalah momen bersejarah yang telah disiapkan oleh Ethereum selama 5 tahun dan ditunda 6 kali. Karena pengembangan dan pengujian yang berkepanjangan, ditambah dengan efek halo yang sangat diperhatikan, banyak orang yang salah mengira bahwa penggabungan akan secara otomatis membawa skalabilitas, keamanan, dan keberlanjutan yang lebih tinggi, tetapi kenyataannya tidak demikian. Transisi dari PoW(bukti kerja) ke PoS(bukti kepemilikan) hanya mengganti rel dan roda, itu tidak akan langsung membawa kecepatan yang lebih cepat, kapasitas yang lebih besar, atau biaya yang lebih rendah. Yang benar-benar dapat mencapai tujuan ini adalah satu set solusi: jaringan utama dengan kemampuan Sharding dipasangkan dengan solusi Layer2 yang meningkatkan skalabilitas.
Seperti yang ditunjukkan oleh pendiri Ethereum Vitalik Buterin, Sharding adalah solusi skalabilitas untuk dilema trilema skalabilitas, dengan membagi node dalam jaringan menjadi kelompok yang lebih kecil, memproses kumpulan transaksi yang berbeda, dan mencapai pemrosesan paralel. Dengan membagi beban pemrosesan sejumlah besar data yang diperlukan untuk agregasi di seluruh jaringan, seperti saat kita berbelanja di Walmart dan melakukan pembayaran, dengan membuka beberapa jalur kasir, kita dapat secara intuitif mengurangi waktu antrean dan meningkatkan efisiensi pembayaran.
Inilah logika Sharding, langsung dan sederhana, namun, setan ada di dalam detail - prinsip dan arah tidak salah, tetapi dalam pelaksanaannya selalu ada banyak masalah. Artikel ini ingin dengan merapikan arah dan masalah di "Sharding", menggambar peta eksplorator Sharding yang mengamati langit dan berpijak di bumi. Sementara itu, dengan membandingkan solusi Sharding yang ada, menemukan beberapa masalah umum, dan mengusulkan arah eksplorasi yang layak: Shardeum dan Sharding dinamis.
Satu, tentang "Sharding"
Secara sederhana, mempertimbangkan batasan dari segitiga ketidakmungkinan, mulai dari Ethereum sebagai titik asal sistem koordinat (, 0), berdasarkan dua pendekatan "vertikal" dan "horizontal", kita membagi metode skalabilitas blockchain saat ini menjadi dua kategori besar:
Skalabilitas Vertikal (: Mencapai dengan meningkatkan kinerja perangkat keras yang ada dalam sistem. Membangun jaringan terdesentralisasi, di mana setiap node dalam jaringan memiliki kemampuan komputasi super, yaitu setiap node memerlukan perangkat keras yang "lebih baik" - cara ini sederhana dan efektif, dapat mencapai perbaikan awal dalam throughput, terutama cocok untuk perdagangan frekuensi tinggi, permainan, dan aplikasi lain yang sensitif terhadap latensi. Namun, cara skalabilitas ini akan membatasi tingkat desentralisasi jaringan, karena biaya menjalankan node validasi atau node penuh meningkat. Mempertahankan tingkat desentralisasi dibatasi oleh laju pertumbuhan kinerja perangkat keras komputasi yang kira-kira ) inilah yang disebut "Hukum Moore": jumlah transistor di chip akan berlipat ganda setiap dua tahun, dan biaya komputasi akan setengah (.
Skalabilitas Horizontal )Skalabilitas Horizontal (: Skalabilitas horizontal umumnya memiliki beberapa pendekatan. Salah satunya adalah dalam konteks blockchain, mendistribusikan jumlah perhitungan transaksi dalam suatu ekosistem ke beberapa blockchain independen, di mana setiap rantai memiliki produsen blok dan kemampuan eksekusi sendiri, cara ini memungkinkan setiap rantai untuk sepenuhnya disesuaikan pada lapisan eksekusinya, seperti persyaratan perangkat keras node, fungsi privasi, biaya gas, mesin virtual, dan pengaturan izin, dan sebagainya. Pendekatan skalabilitas horizontal lainnya adalah blockchain modular, membagi infrastruktur blockchain menjadi lapisan eksekusi, lapisan ketersediaan data )DA( serta lapisan konsensus. Mekanisme modular blockchain yang paling umum adalah rollup. Ada juga yang membagi satu blockchain menjadi banyak shard, yang dapat dieksekusi secara paralel. Setiap shard dapat dianggap sebagai sebuah blockchain, yang berarti banyak blockchain dapat dijalankan secara paralel. Selain itu, biasanya akan ada satu rantai utama, yang tugasnya hanya untuk menjaga semua shard tetap sinkron.
Perlu dicatat bahwa semua pemikiran tentang perluasan di atas tidak berdiri sendiri, setiap solusi adalah upaya untuk menemukan titik keseimbangan dalam segitiga yang tidak mungkin, dengan menggabungkan desain mekanisme insentif yang diciptakan oleh kekuatan ekonomi dalam sistem, untuk mencapai keseimbangan yang efektif pada tingkat makro dan mikro.
Untuk mendiskusikan "Sharding", kita perlu mulai dari awal.
Masih berasumsi pada situasi seperti ini, saat pembayaran belanja di Walmart, untuk meningkatkan efisiensi pembayaran dan mengurangi waktu tunggu pelanggan, kita memperluas dari satu jalur pembayaran menjadi 10 jendela pembayaran. Untuk menghindari kesalahan pada buku, pada saat ini kita perlu menetapkan aturan yang seragam:
Pertama, jika kita memiliki 10 kasir, bagaimana cara mendistribusikan mereka ke jendela mana untuk bekerja?
Kedua, jika kita memiliki 1000 pelanggan yang mengantri, bagaimana cara menentukan setiap pelanggan pergi ke jendela mana untuk membayar?
Ketiga, bagaimana cara mengumpulkan 10 buku besar terpisah yang sesuai dengan 10 jendela ini?
Keempat, untuk menghindari terjadinya ketidakcocokan dalam pembukuan, bagaimana cara mencegah kesalahan yang dilakukan oleh kasir?
Beberapa pertanyaan ini sebenarnya terkait dengan beberapa masalah kunci dalam Sharding, yaitu:
Bagaimana cara menentukan node/validator di seluruh jaringan termasuk dalam shard mana? Yaitu: bagaimana melakukan Sharding jaringan )NetworkSharding(;
Bagaimana cara menentukan transaksi mana yang dialokasikan ke Sharding? Yaitu: bagaimana melakukan transaksi Sharding )Transaction Sharding(;
Bagaimana data blockchain disimpan di berbagai Sharding? Yaitu: bagaimana melakukan status Sharding )State Sharding(;
Kompleksitas berarti risiko, berdasarkan semua hal di atas, bagaimana cara menghindari perpecahan keamanan seluruh sistem?
) 01 Jaringan Sharding###Network Sharding(
Jika kita memahami blockchain sebagai buku besar terdesentralisasi, baik mekanisme konsensus PoS maupun PoW bertujuan agar setiap node bersaing untuk mendapatkan hak pencatatan sesuai dengan aturan yang telah ditetapkan, sambil memastikan keakuratan buku besar. Sementara itu, Sharding adalah istilah yang mengacu pada perlunya aturan yang telah ditetapkan lainnya, untuk membagi jaringan blockchain menjadi beberapa bagian, di mana setiap bagian menangani transaksi di chain dengan meminimalkan komunikasi satu sama lain, bersaing untuk mendapatkan hak pencatatan - yaitu, aturan pengelompokan node.
Namun, masalah yang dihadapi dalam proses ini adalah, seiring dengan pembagian node internal blockchain menjadi berbagai Sharding, kesulitan dan biaya bagi penyerang akan menurun secara drastis. Kita dapat menyimpulkan, dengan asumsi bahwa aturan dan hasil dari proses pengelompokan ini tetap dan dapat diprediksi, maka penyerang yang ingin mengontrol seluruh jaringan blockchain hanya perlu secara terarah mengendalikan salah satu Sharding, dengan membeli sebagian node di dalam Sharding tersebut.
Pendiri Near, Alexander Skidanov, menggambarkan masalah ini sebagai berikut: jika sebuah rantai tunggal dengan X validator memutuskan untuk hard fork menjadi rantai sharding dan membagi X validator menjadi 10 sharding, setiap sharding sekarang hanya memiliki X/10 validator, menghancurkan satu sharding hanya memerlukan menghancurkan 5,1% dari total validator ) 51% / 10(. Ini mengarah pada poin kedua: siapa yang memilih validator untuk setiap sharding? Hanya ketika semua 5,1% validator berada dalam satu sharding, mengontrol 5,1% validator menjadi berbahaya. Jika validator tidak dapat memilih di sharding mana mereka melakukan validasi, maka peserta yang mengontrol 5,1% validator sangat tidak mungkin menempatkan semua validator di satu sharding, sehingga secara signifikan mengurangi kemampuan mereka untuk merusak sistem.
Sistem sharding harus mengembangkan mekanisme untuk mempercayai bahwa jaringan tidak akan membalikkan transaksi dari shard eksternal. Hingga saat ini, mungkin jawaban terbaik adalah memastikan bahwa jumlah validator di dalam shard lebih besar dari ambang minimum tertentu, sehingga kemungkinan validator yang tidak jujur menguasai shard tunggal akan sangat rendah. Cara yang paling umum adalah membangun tingkat ketidakberpihakan acak tertentu, bergantung pada cara matematis, untuk meminimalkan probabilitas keberhasilan penyerang. Misalnya Ethereum, solusi Ethereum adalah secara acak memilih validator untuk shard tertentu dari semua validator, dan setiap 6,4 menit ) panjang epoch ( mengganti validator.
Sederhananya, ini adalah membagi node menjadi kelompok secara acak, kemudian membagikan pekerjaan untuk diverifikasi secara independen oleh setiap kelompok node.
Namun perlu dicatat bahwa keacakan dalam blockchain adalah topik yang sangat menantang. Secara logis, proses pembuatan nomor acak ini seharusnya tidak bergantung pada perhitungan dari shard tertentu. Untuk perhitungan ini, banyak ide desain yang ada saat ini adalah mengembangkan blockchain terpisah yang memelihara seluruh jaringan. Rantai seperti ini disebut sebagai Beacon chain dalam Ethereum dan Near, Relay chain dalam PolkaDot, dan Cosmos Hub dalam Cosmos.
![Penjelasan Lengkap tentang Blockchain Baru Shardeum: Kemungkinan Lain dari Sharding])https://img-cdn.gateio.im/webp-social/moments-69c7de2bfe4ae7b233bec1f706fad9ad.webp(
) 02 Transaksi Sharding ###
Pecahan transaksi mengacu pada pembuatan aturan tentang "transaksi mana yang harus dialokasikan ke pecahan mana", sehingga dapat mencapai tujuan pemrosesan paralel sekaligus menghindari munculnya masalah pengeluaran ganda. Model buku besar blockchain yang berbeda akan memengaruhi pengembangan pecahan transaksi.
Saat ini terdapat dua jenis metode pencatatan dalam jaringan blockchain, yaitu model UTXO( Unspent Transaction Outputs dan model akun/ saldo, di mana yang pertama adalah perwakilan tipikal dari BTC, sedangkan yang kedua seperti ETH.
Model UTXO: Dalam transaksi BTC, setiap transaksi akan memiliki satu atau lebih output, UTXO merujuk pada output transaksi blockchain yang belum terpakai, yang dapat digunakan sebagai input untuk transaksi baru, sedangkan output transaksi yang sudah dipakai tidak dapat digunakan lagi, mirip dengan situasi transaksi kertas uang di mana pelanggan membayar dengan satu atau lebih uang kertas kepada penjual, dan penjual memberikan satu atau lebih uang kertas sebagai kembalian kepada pelanggan. Dalam model UTXO, sharding transaksi memerlukan komunikasi lintas shard. Satu transaksi dapat mencakup beberapa input dan beberapa output, tidak ada konsep akun, dan tidak akan ada catatan saldo. Salah satu cara yang mungkin adalah: dengan memasukkan nilai input tertentu dari transaksi ke dalam fungsi hash untuk diproses menjadi nilai hash diskrit untuk menentukan ke shard mana data seharusnya pergi. Sebagai berikut:
Untuk memastikan bahwa entri ditempatkan dengan cara yang konsisten di shard yang benar, nilai yang dimasukkan ke dalam fungsi hash harus berasal dari kolom yang sama. Kolom ini disebut Shard Key. Setelah itu, transaksi yang menghasilkan nilai 1 akan dibagi ke dalam shard 1, dan transaksi yang menghasilkan nilai 2 akan dibagi ke dalam shard 2. Namun, kelemahan dari cara ini adalah shard harus berkomunikasi untuk menghindari serangan double spend. Jika transaksi antar shard dibatasi, maka akan membatasi ketersediaan platform, sementara jika transaksi antar shard diizinkan, maka harus menyeimbangkan biaya komunikasi antar shard dengan keuntungan yang diperoleh dari peningkatan kinerja.
Model Akun/Saldo: Sistem mencatat saldo setiap akun, saat melakukan transaksi, sistem memeriksa apakah akun memiliki saldo yang cukup untuk pembayaran, mirip dengan transfer bank, di mana bank mencatat saldo setiap akun, hanya jika saldo akun lebih besar dari jumlah transfer yang diperlukan, transaksi dapat dilakukan. Dalam model akun/saldo, karena satu transaksi hanya memiliki satu input, maka selama transaksi dibagi berdasarkan alamat pengirim, dapat dipastikan bahwa beberapa transaksi dari akun yang sama diproses dalam shard yang sama, secara efektif mencegah double spending. Oleh karena itu, sebagian besar blockchain yang menggunakan teknologi sharding adalah sistem buku besar akun seperti Ethereum.
![Penjelasan Lengkap Jaringan Baru Shardeum: Sharding kemungkinan lain])https://img-cdn.gateio.im/webp-social/moments-7aa1677db6b8128b68accfe04fcda738.webp(
) 03 Status Sharding(State Sharding)
Sharding status mengacu pada bagaimana data blockchain dialokasikan untuk disimpan di berbagai shard.
Masih menggunakan contoh antrean Walmart kami, bagaimana setiap jendela mencatat transaksi? Jika: pelanggan antre di jendela mana, maka catat di buku yang mana, misalnya pelanggan A pergi ke jendela A, lalu keesokan harinya pelanggan tersebut pergi ke jendela pembayaran lain seperti jendela B, dan jendela B tidak memiliki informasi akun pelanggan tersebut ###, misalnya terkait dengan metode pembayaran seperti kartu prabayar (, apa yang harus dilakukan? Apakah perlu memanggil informasi akun pelanggan dari jendela A?
Status Sharding adalah tantangan terbesar dalam sharding, lebih rumit daripada sharding jaringan dan sharding transaksi yang disebutkan di atas. Karena dalam mekanisme sharding, transaksi akan diproses di shard yang berbeda berdasarkan alamat, yang berarti status hanya akan disimpan di shard tempat alamat tersebut berada, pada saat itu masalah yang dihadapi adalah, transaksi tidak hanya akan terjadi di satu shard, sering kali melibatkan lintas shard )Cross-Sharding(.
Pertimbangkan situasi transfer, akun A mentransfer 10U ke akun B, sedangkan alamat A dialokasikan di Sharding 1, catatan transaksi juga akan disimpan di Sharding 1. Alamat B dialokasikan di Sharding 2, catatan transaksi akan disimpan di Sharding 2.
Ketika A ingin mengirim uang ke B, akan terbentuk transaksi lintas Sharding, Sharding 2 akan memanggil catatan transaksi sebelumnya dari Sharding 1 untuk mengonfirmasi keabsahan transaksi. Jika A sering mengirimkan koin ke B, Sharding 2 harus terus-menerus berinteraksi dengan Sharding 1, sehingga efisiensi pemrosesan transaksi akan menurun. Namun, jika tidak mengunduh dan memverifikasi seluruh sejarah dari Sharding tertentu, peserta mungkin tidak dapat memastikan bahwa status interaksi mereka adalah hasil dari urutan blok yang valid, dan urutan blok tersebut memang merupakan rantai standar dalam Sharding.
Oleh karena itu, dibandingkan dengan rantai tunggal tanpa sharding, sistem sharding menghadapi tantangan baru yaitu pengguna tidak