Sharding: Eksplorasi Terdepan untuk Skalabilitas Blockchain
Pada 15 September 2022, Ethereum menyelesaikan penggabungan (Merge). Ini adalah momen bersejarah, Ethereum mempersiapkannya selama 5 tahun dan menundanya 6 kali. Karena pengujian ulang dan pengembangan jangka panjang, serta efek perhatian publik yang besar, banyak orang salah mengira bahwa penggabungan akan secara alami membawa skalabilitas, keamanan, dan keberlanjutan yang lebih tinggi, tetapi kenyataannya tidak demikian. Transisi dari PoW ( pembuktian kerja ) ke PoS ( pembuktian kepemilikan ) hanya mengganti "rel dan roda", dan 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 lengkap: jaringan utama dengan kemampuan sharding dipasangkan dengan solusi Layer2 yang meningkatkan skalabilitas.
Seperti yang ditunjukkan oleh pendiri Ethereum, Vitalik Buterin, sharding adalah solusi skala untuk dilema trilema skalabilitas. Dengan membagi node dalam jaringan menjadi kelompok yang lebih kecil, memproses kumpulan transaksi yang berbeda dan mencapai pemrosesan paralel. Ini seperti saat berbelanja di supermarket, dengan membuka beberapa jalur kasir, dapat mengurangi waktu antrean dan meningkatkan efisiensi pembayaran.
Ini adalah logika Sharding, langsung dan sederhana. Namun, masalah ada di detailnya - prinsip dan arahnya tidak salah, tetapi dalam pelaksanaannya selalu ada banyak masalah. Artikel ini bertujuan untuk merinci arah dan kebuntuan di jalan "Sharding", menggambar peta penjelajah Sharding yang menatap langit dan berpijak di tanah. 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, dengan mempertimbangkan batasan segitiga yang tidak mungkin, mulai dari Ethereum sebagai titik asal sistem koordinat (0,0), berdasarkan dua pemikiran "vertikal" dan "horizontal", kita akan membagi metode skala blockchain saat ini menjadi dua kategori besar:
Skala Vertikal (Vertical Scaling ): 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 peningkatan awal dalam throughput, terutama cocok untuk perdagangan frekuensi tinggi, game, dan aplikasi lain yang sensitif terhadap latensi. Namun, cara ekspansi ini akan membatasi tingkat desentralisasi jaringan, karena biaya menjalankan node verifikasi atau node penuh menjadi lebih tinggi. Mempertahankan tingkat desentralisasi dibatasi oleh kecepatan pertumbuhan kasar kinerja perangkat keras komputasi ( inilah yang disebut "Hukum Moore": jumlah transistor di chip akan berlipat ganda setiap dua tahun, dan biaya komputasi akan setengah ).
Horizontal Scaling(: Horizontal scaling biasanya memiliki beberapa pemikiran. Salah satunya dalam konteks blockchain, adalah mendistribusikan jumlah perhitungan transaksi di suatu ekosistem ke beberapa blockchain independen, di mana setiap rantai memiliki produsen blok dan kemampuan eksekusi sendiri, cara ini dapat sepenuhnya disesuaikan dengan lapisan eksekusi setiap rantai, seperti persyaratan perangkat keras node, fungsi privasi, biaya gas, mesin virtual, dan pengaturan izin, dll. Solusi skala horizontal lainnya adalah blockchain modular, membagi infrastruktur blockchain menjadi lapisan eksekusi, lapisan ketersediaan data)DA(, dan lapisan konsensus. Mekanisme modular blockchain yang paling umum adalah rollup. Ada juga cara untuk membagi satu blockchain menjadi banyak shard, dan mengeksekusi secara paralel. Setiap shard dapat dianggap sebagai satu blockchain, artinya banyak blockchain dapat dieksekusi secara paralel. Selain itu, biasanya akan ada satu rantai utama, yang satu-satunya tugasnya adalah menjaga semua shard tetap sinkron.
![Penjelasan mendetail tentang blockchain baru Shardeum: kemungkinan lain dari Sharding])https://img-cdn.gateio.im/webp-social/moments-7aa1677db6b8128b68accfe04fcda738.webp(
Perlu dicatat bahwa semua pemikiran tentang peningkatan kapasitas di atas tidak berdiri sendiri, setiap solusi menemukan titik keseimbangan dalam segitiga yang tidak mungkin, bersama dengan desain mekanisme insentif yang diciptakan oleh kekuatan ekonomi dalam sistem, untuk mencapai keseimbangan yang efektif di tingkat makro dan mikro.
Untuk membahas "Sharding", kita perlu merapikan dari awal.
Masih berasumsi pada situasi seperti ini, saat berbelanja di supermarket dan melakukan pembayaran, untuk meningkatkan efisiensi pembayaran dan mengurangi waktu tunggu pelanggan, kita memperluas dari satu jalur pembayaran menjadi 10 jendela pembayaran. Untuk menghindari kesalahan dalam buku kas, saat ini kita perlu menetapkan aturan yang seragam:
Pertama, jika kita memiliki 10 kasir, bagaimana cara membagi mereka untuk bekerja di jendela mana?
Kedua, jika kita memiliki 1000 pelanggan yang mengantri, bagaimana cara menentukan setiap pelanggan pergi ke jendela mana untuk membayar?
Ketiga, bagaimana cara menggabungkan 10 buku besar terpisah yang sesuai dengan 10 jendela ini?
Keempat, untuk menghindari terjadinya ketidakcocokan dalam pembukuan, bagaimana cara mencegah kesalahan oleh kasir?
Beberapa masalah ini sebenarnya berkaitan dengan beberapa masalah kunci dalam Sharding, yaitu:
Bagaimana cara menentukan node/validator di seluruh jaringan termasuk shard mana? Yaitu: bagaimana cara melakukan Sharding Jaringan )Network Sharding(;
Bagaimana cara menentukan setiap transaksi dialokasikan ke shard mana? Yaitu: bagaimana melakukan sharding transaksi )Transaction Sharding(;
Bagaimana cara menyimpan data Blockchain di berbagai Blok? Yaitu: bagaimana melakukan State 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 secara sederhana 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 dalam proses tersebut. Sedangkan sharding jaringan mengacu pada perlunya aturan tertentu lainnya, untuk membagi jaringan blockchain menjadi beberapa bagian, di mana setiap bagian memproses transaksi di blockchain 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 node dalam Blockchain yang dibagi menjadi berbagai Blok, kesulitan dan biaya bagi penyerang akan menurun secara signifikan. Kita dapat menyimpulkan, dengan asumsi bahwa aturan dan hasil dari proses pengelompokan ini adalah tetap dan dapat diprediksi, maka penyerang yang ingin mengontrol seluruh jaringan Blockchain hanya perlu mengontrol salah satu Blok secara terarah, dan membeli beberapa node di dalam Blok tersebut.
Sistem Sharding harus mengembangkan mekanisme untuk mempercayai bahwa jaringan tidak akan membalikkan transaksi ini dari Sharding eksternal. Hingga saat ini, mungkin jawaban terbaik adalah memastikan jumlah validator dalam Sharding lebih tinggi dari ambang minimum tertentu, sehingga kemungkinan validator yang tidak jujur dapat mendominasi satu Sharding sangat rendah. Cara yang paling umum adalah membangun tingkat ketidakberpihakan acak tertentu, bergantung pada cara matematis untuk meminimalkan kemungkinan keberhasilan penyerang. Misalnya, Ethereum, solusi Ethereum adalah secara acak memilih validator untuk suatu Sharding dari semua validator, dan setiap 6,4 menit ) panjang epoch ( mengganti validator.
Sederhananya, ini adalah dengan membagi node menjadi grup acak, lalu membagikan pekerjaan untuk diverifikasi secara mandiri oleh node dalam setiap grup.
Namun perlu dicatat bahwa keacakan dalam Blockchain adalah topik yang sangat menantang, secara logis, proses penghasil angka acak ini seharusnya tidak bergantung pada perhitungan dari Blok tertentu. Untuk perhitungan tersebut, banyak desain yang ada saat ini adalah mengembangkan Blockchain terpisah untuk memelihara seluruh jaringan. Rantai semacam ini disebut Beacon chain dalam Ethereum dan Near, Relay chain dalam PolkaDot, dan Cosmos Hub dalam Cosmos.
![Penjelasan mendalam tentang blockchain baru Shardeum: kemungkinan lain dari Sharding])https://img-cdn.gateio.im/webp-social/moments-6e8d3331d7d68cb512eb2eb47bd9064d.webp(
) 02 Transaksi Sharding ###
Pemecahan transaksi merujuk pada pembuatan aturan tentang "transaksi mana yang harus dialokasikan ke shard mana", yang dapat mencapai tujuan pemrosesan paralel dan menghindari masalah pengeluaran ganda. Perbedaan dalam model buku besar Blockchain akan mempengaruhi pengembangan pemecahan transaksi.
Saat ini, ada dua jenis metode pencatatan dalam jaringan Blockchain, yaitu model UTXO( Unspent Transaction Outputs dan model akun/ saldo, di mana yang pertama diwakili secara khas oleh BTC, sedangkan yang terakhir seperti ETH.
Model UTXO: Dalam transaksi BTC, setiap transaksi akan memiliki satu atau beberapa output, UTXO merujuk pada output transaksi blockchain yang belum digunakan, yang dapat digunakan sebagai input untuk transaksi baru, sedangkan output transaksi yang telah digunakan tidak dapat digunakan lagi, mirip dengan pembayaran dan kembalian dalam kasus transaksi uang kertas, pelanggan memberikan satu atau beberapa uang kertas kepada toko, kemudian toko memberikan satu atau beberapa uang kertas sebagai kembalian kepada pelanggan. Dalam model UTXO, pemisahan transaksi memerlukan komunikasi antar pemisahan. Sebuah 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 dari transaksi tertentu ke dalam fungsi hash untuk memprosesnya menjadi nilai hash diskrit untuk menentukan ke mana data harus pergi ke pemisahan mana.
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 Kunci Shard. Setelah itu, transaksi yang menghasilkan nilai 1 akan dimasukkan ke shard 1, sementara transaksi yang menghasilkan nilai 2 akan dimasukkan ke shard 2. Namun, kelemahan dari cara ini adalah bahwa shard harus saling berkomunikasi untuk menghindari serangan pengeluaran ganda. Jika transaksi antar shard dibatasi, akan membatasi ketersediaan platform, sementara jika transaksi antar shard diperbolehkan, harus mempertimbangkan biaya komunikasi antar shard dan manfaat yang diperoleh dari peningkatan kinerja.
Model Akun/Balans: 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 ketika saldo akun lebih besar dari jumlah transfer yang diperlukan, transaksi dapat dilakukan. Dalam model akun/balans, karena satu transaksi hanya memiliki satu input, maka cukup dengan membagi transaksi berdasarkan alamat pengirim, sehingga dapat dijamin 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 tentang Blockchain Baru Shardeum: Kemungkinan Lain dari Sharding])https://img-cdn.gateio.im/webp-social/moments-4227a2e49f76cd01b23d7b5398e51a3c.webp(
) 03 Status Sharding ( State Sharding )
Status sharding mengacu pada bagaimana data blockchain dialokasikan dan disimpan di berbagai sharding.
Masih menggunakan contoh antrean di supermarket kita, setiap jendela memiliki satu buku kas, bagaimana cara mereka mencatat buku kas mereka? Jika: pelanggan antre di barisan mana, maka catat di buku kas 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? Mengambil informasi akun pelanggan tersebut dari jendela A?
Shard status adalah tantangan terbesar dalam sharding, lebih rumit dibandingkan dengan sharding jaringan dan sharding transaksi yang disebutkan di atas. Karena di bawah mekanisme sharding, transaksi akan diproses di berbagai shard berdasarkan alokasi alamat, artinya, status hanya akan disimpan di shard tempat alamatnya berada, pada saat ini masalah yang dihadapi adalah, transaksi tidak hanya akan dilakukan di satu shard, sering kali melibatkan lintas shard )Cross-Sharding(.
Pertimbangkan situasi transfer, akun A mentransfer 10U ke akun B, dan 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 mentransfer ke B, transaksi lintas sharding akan terbentuk, sharding 2 akan memanggil catatan transaksi masa lalu dari sharding 1 untuk mengkonfirmasi keabsahan transaksi tersebut. Jika A sering mengirim coin ke B, sharding 2 harus terus berinteraksi dengan sharding 1, sehingga efisiensi pemrosesan transaksi akan menurun. Namun, jika tidak mengunduh dan memverifikasi seluruh sejarah sharding tertentu, peserta mungkin tidak dapat memastikan bahwa status interaksi mereka adalah hasil dari beberapa urutan blok yang valid, dan urutan blok seperti itu memang merupakan rantai standar dalam sharding.
Oleh karena itu, dibandingkan dengan rantai tunggal tanpa sharding, sistem sharding menghadapi tantangan baru di mana pengguna tidak dapat secara langsung memverifikasi sepenuhnya kevalidan dan ketersediaan rantai tertentu, karena data yang terlalu banyak. Pengguna harus diberikan metode tidak mempercayai dan praktis yang maksimal untuk memverifikasi rantai mana yang sepenuhnya tersedia dan valid, sehingga mereka dapat menentukan rantai mana yang merupakan rantai standar. Dalam praktiknya, pengembang blockchain dapat menggunakan teknik berikut untuk menyelesaikan beberapa masalah dalam verifikasi: seperti komite, SNARKs/STARKs, mekanisme nelayan, serta bukti penipuan dan ketersediaan data.
Ada dua pendekatan untuk menyelesaikan masalah ini, salah satunya adalah sinkronisasi lintas Sharding.
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.
12 Suka
Hadiah
12
7
Bagikan
Komentar
0/400
ExpectationFarmer
· 12jam yang lalu
Sharding? Lagi pula tidak bisa dimakan
Lihat AsliBalas0
BuyHighSellLow
· 19jam yang lalu
Rug Pull 5 tahun akhirnya selesai
Lihat AsliBalas0
ShitcoinConnoisseur
· 19jam yang lalu
Vitalik Buterin bilang apa saja benar~
Lihat AsliBalas0
SellTheBounce
· 19jam yang lalu
Sekali lagi melihat sekelompok suckers yang telah dipotong dan mengganti alat potong.
Lihat AsliBalas0
BrokenYield
· 19jam yang lalu
sigh... lagi-lagi merge yang terlalu dibesar-besarkan yang tidak menyelesaikan apa-apa. klasik crypto jujur.
Lihat AsliBalas0
SchroedingerGas
· 19jam yang lalu
Apakah sudah memplay people for suckers lagi?
Lihat AsliBalas0
Blockblind
· 19jam yang lalu
Lima tahun berjuang hanya untuk mengganti cangkangnya? Kita butuh gas yang rendah!
Eksplorasi teknologi sharding: Menganalisis prinsip dan tantangan perluasan blockchain
Sharding: Eksplorasi Terdepan untuk Skalabilitas Blockchain
Pada 15 September 2022, Ethereum menyelesaikan penggabungan (Merge). Ini adalah momen bersejarah, Ethereum mempersiapkannya selama 5 tahun dan menundanya 6 kali. Karena pengujian ulang dan pengembangan jangka panjang, serta efek perhatian publik yang besar, banyak orang salah mengira bahwa penggabungan akan secara alami membawa skalabilitas, keamanan, dan keberlanjutan yang lebih tinggi, tetapi kenyataannya tidak demikian. Transisi dari PoW ( pembuktian kerja ) ke PoS ( pembuktian kepemilikan ) hanya mengganti "rel dan roda", dan 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 lengkap: jaringan utama dengan kemampuan sharding dipasangkan dengan solusi Layer2 yang meningkatkan skalabilitas.
Seperti yang ditunjukkan oleh pendiri Ethereum, Vitalik Buterin, sharding adalah solusi skala untuk dilema trilema skalabilitas. Dengan membagi node dalam jaringan menjadi kelompok yang lebih kecil, memproses kumpulan transaksi yang berbeda dan mencapai pemrosesan paralel. Ini seperti saat berbelanja di supermarket, dengan membuka beberapa jalur kasir, dapat mengurangi waktu antrean dan meningkatkan efisiensi pembayaran.
Ini adalah logika Sharding, langsung dan sederhana. Namun, masalah ada di detailnya - prinsip dan arahnya tidak salah, tetapi dalam pelaksanaannya selalu ada banyak masalah. Artikel ini bertujuan untuk merinci arah dan kebuntuan di jalan "Sharding", menggambar peta penjelajah Sharding yang menatap langit dan berpijak di tanah. 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, dengan mempertimbangkan batasan segitiga yang tidak mungkin, mulai dari Ethereum sebagai titik asal sistem koordinat (0,0), berdasarkan dua pemikiran "vertikal" dan "horizontal", kita akan membagi metode skala blockchain saat ini menjadi dua kategori besar:
Skala Vertikal (Vertical Scaling ): 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 peningkatan awal dalam throughput, terutama cocok untuk perdagangan frekuensi tinggi, game, dan aplikasi lain yang sensitif terhadap latensi. Namun, cara ekspansi ini akan membatasi tingkat desentralisasi jaringan, karena biaya menjalankan node verifikasi atau node penuh menjadi lebih tinggi. Mempertahankan tingkat desentralisasi dibatasi oleh kecepatan pertumbuhan kasar kinerja perangkat keras komputasi ( inilah yang disebut "Hukum Moore": jumlah transistor di chip akan berlipat ganda setiap dua tahun, dan biaya komputasi akan setengah ).
Horizontal Scaling(: Horizontal scaling biasanya memiliki beberapa pemikiran. Salah satunya dalam konteks blockchain, adalah mendistribusikan jumlah perhitungan transaksi di suatu ekosistem ke beberapa blockchain independen, di mana setiap rantai memiliki produsen blok dan kemampuan eksekusi sendiri, cara ini dapat sepenuhnya disesuaikan dengan lapisan eksekusi setiap rantai, seperti persyaratan perangkat keras node, fungsi privasi, biaya gas, mesin virtual, dan pengaturan izin, dll. Solusi skala horizontal lainnya adalah blockchain modular, membagi infrastruktur blockchain menjadi lapisan eksekusi, lapisan ketersediaan data)DA(, dan lapisan konsensus. Mekanisme modular blockchain yang paling umum adalah rollup. Ada juga cara untuk membagi satu blockchain menjadi banyak shard, dan mengeksekusi secara paralel. Setiap shard dapat dianggap sebagai satu blockchain, artinya banyak blockchain dapat dieksekusi secara paralel. Selain itu, biasanya akan ada satu rantai utama, yang satu-satunya tugasnya adalah menjaga semua shard tetap sinkron.
![Penjelasan mendetail tentang blockchain baru Shardeum: kemungkinan lain dari Sharding])https://img-cdn.gateio.im/webp-social/moments-7aa1677db6b8128b68accfe04fcda738.webp(
Perlu dicatat bahwa semua pemikiran tentang peningkatan kapasitas di atas tidak berdiri sendiri, setiap solusi menemukan titik keseimbangan dalam segitiga yang tidak mungkin, bersama dengan desain mekanisme insentif yang diciptakan oleh kekuatan ekonomi dalam sistem, untuk mencapai keseimbangan yang efektif di tingkat makro dan mikro.
Untuk membahas "Sharding", kita perlu merapikan dari awal.
Masih berasumsi pada situasi seperti ini, saat berbelanja di supermarket dan melakukan pembayaran, untuk meningkatkan efisiensi pembayaran dan mengurangi waktu tunggu pelanggan, kita memperluas dari satu jalur pembayaran menjadi 10 jendela pembayaran. Untuk menghindari kesalahan dalam buku kas, saat ini kita perlu menetapkan aturan yang seragam:
Pertama, jika kita memiliki 10 kasir, bagaimana cara membagi mereka untuk bekerja di jendela mana?
Kedua, jika kita memiliki 1000 pelanggan yang mengantri, bagaimana cara menentukan setiap pelanggan pergi ke jendela mana untuk membayar?
Ketiga, bagaimana cara menggabungkan 10 buku besar terpisah yang sesuai dengan 10 jendela ini?
Keempat, untuk menghindari terjadinya ketidakcocokan dalam pembukuan, bagaimana cara mencegah kesalahan oleh kasir?
Beberapa masalah ini sebenarnya berkaitan dengan beberapa masalah kunci dalam Sharding, yaitu:
Bagaimana cara menentukan node/validator di seluruh jaringan termasuk shard mana? Yaitu: bagaimana cara melakukan Sharding Jaringan )Network Sharding(;
Bagaimana cara menentukan setiap transaksi dialokasikan ke shard mana? Yaitu: bagaimana melakukan sharding transaksi )Transaction Sharding(;
Bagaimana cara menyimpan data Blockchain di berbagai Blok? Yaitu: bagaimana melakukan State 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 secara sederhana 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 dalam proses tersebut. Sedangkan sharding jaringan mengacu pada perlunya aturan tertentu lainnya, untuk membagi jaringan blockchain menjadi beberapa bagian, di mana setiap bagian memproses transaksi di blockchain 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 node dalam Blockchain yang dibagi menjadi berbagai Blok, kesulitan dan biaya bagi penyerang akan menurun secara signifikan. Kita dapat menyimpulkan, dengan asumsi bahwa aturan dan hasil dari proses pengelompokan ini adalah tetap dan dapat diprediksi, maka penyerang yang ingin mengontrol seluruh jaringan Blockchain hanya perlu mengontrol salah satu Blok secara terarah, dan membeli beberapa node di dalam Blok tersebut.
Sistem Sharding harus mengembangkan mekanisme untuk mempercayai bahwa jaringan tidak akan membalikkan transaksi ini dari Sharding eksternal. Hingga saat ini, mungkin jawaban terbaik adalah memastikan jumlah validator dalam Sharding lebih tinggi dari ambang minimum tertentu, sehingga kemungkinan validator yang tidak jujur dapat mendominasi satu Sharding sangat rendah. Cara yang paling umum adalah membangun tingkat ketidakberpihakan acak tertentu, bergantung pada cara matematis untuk meminimalkan kemungkinan keberhasilan penyerang. Misalnya, Ethereum, solusi Ethereum adalah secara acak memilih validator untuk suatu Sharding dari semua validator, dan setiap 6,4 menit ) panjang epoch ( mengganti validator.
Sederhananya, ini adalah dengan membagi node menjadi grup acak, lalu membagikan pekerjaan untuk diverifikasi secara mandiri oleh node dalam setiap grup.
Namun perlu dicatat bahwa keacakan dalam Blockchain adalah topik yang sangat menantang, secara logis, proses penghasil angka acak ini seharusnya tidak bergantung pada perhitungan dari Blok tertentu. Untuk perhitungan tersebut, banyak desain yang ada saat ini adalah mengembangkan Blockchain terpisah untuk memelihara seluruh jaringan. Rantai semacam ini disebut Beacon chain dalam Ethereum dan Near, Relay chain dalam PolkaDot, dan Cosmos Hub dalam Cosmos.
![Penjelasan mendalam tentang blockchain baru Shardeum: kemungkinan lain dari Sharding])https://img-cdn.gateio.im/webp-social/moments-6e8d3331d7d68cb512eb2eb47bd9064d.webp(
) 02 Transaksi Sharding ###
Pemecahan transaksi merujuk pada pembuatan aturan tentang "transaksi mana yang harus dialokasikan ke shard mana", yang dapat mencapai tujuan pemrosesan paralel dan menghindari masalah pengeluaran ganda. Perbedaan dalam model buku besar Blockchain akan mempengaruhi pengembangan pemecahan transaksi.
Saat ini, ada dua jenis metode pencatatan dalam jaringan Blockchain, yaitu model UTXO( Unspent Transaction Outputs dan model akun/ saldo, di mana yang pertama diwakili secara khas oleh BTC, sedangkan yang terakhir seperti ETH.
Model UTXO: Dalam transaksi BTC, setiap transaksi akan memiliki satu atau beberapa output, UTXO merujuk pada output transaksi blockchain yang belum digunakan, yang dapat digunakan sebagai input untuk transaksi baru, sedangkan output transaksi yang telah digunakan tidak dapat digunakan lagi, mirip dengan pembayaran dan kembalian dalam kasus transaksi uang kertas, pelanggan memberikan satu atau beberapa uang kertas kepada toko, kemudian toko memberikan satu atau beberapa uang kertas sebagai kembalian kepada pelanggan. Dalam model UTXO, pemisahan transaksi memerlukan komunikasi antar pemisahan. Sebuah 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 dari transaksi tertentu ke dalam fungsi hash untuk memprosesnya menjadi nilai hash diskrit untuk menentukan ke mana data harus pergi ke pemisahan mana.
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 Kunci Shard. Setelah itu, transaksi yang menghasilkan nilai 1 akan dimasukkan ke shard 1, sementara transaksi yang menghasilkan nilai 2 akan dimasukkan ke shard 2. Namun, kelemahan dari cara ini adalah bahwa shard harus saling berkomunikasi untuk menghindari serangan pengeluaran ganda. Jika transaksi antar shard dibatasi, akan membatasi ketersediaan platform, sementara jika transaksi antar shard diperbolehkan, harus mempertimbangkan biaya komunikasi antar shard dan manfaat yang diperoleh dari peningkatan kinerja.
Model Akun/Balans: 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 ketika saldo akun lebih besar dari jumlah transfer yang diperlukan, transaksi dapat dilakukan. Dalam model akun/balans, karena satu transaksi hanya memiliki satu input, maka cukup dengan membagi transaksi berdasarkan alamat pengirim, sehingga dapat dijamin 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 tentang Blockchain Baru Shardeum: Kemungkinan Lain dari Sharding])https://img-cdn.gateio.im/webp-social/moments-4227a2e49f76cd01b23d7b5398e51a3c.webp(
) 03 Status Sharding ( State Sharding )
Status sharding mengacu pada bagaimana data blockchain dialokasikan dan disimpan di berbagai sharding.
Masih menggunakan contoh antrean di supermarket kita, setiap jendela memiliki satu buku kas, bagaimana cara mereka mencatat buku kas mereka? Jika: pelanggan antre di barisan mana, maka catat di buku kas 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? Mengambil informasi akun pelanggan tersebut dari jendela A?
Shard status adalah tantangan terbesar dalam sharding, lebih rumit dibandingkan dengan sharding jaringan dan sharding transaksi yang disebutkan di atas. Karena di bawah mekanisme sharding, transaksi akan diproses di berbagai shard berdasarkan alokasi alamat, artinya, status hanya akan disimpan di shard tempat alamatnya berada, pada saat ini masalah yang dihadapi adalah, transaksi tidak hanya akan dilakukan di satu shard, sering kali melibatkan lintas shard )Cross-Sharding(.
Pertimbangkan situasi transfer, akun A mentransfer 10U ke akun B, dan 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 mentransfer ke B, transaksi lintas sharding akan terbentuk, sharding 2 akan memanggil catatan transaksi masa lalu dari sharding 1 untuk mengkonfirmasi keabsahan transaksi tersebut. Jika A sering mengirim coin ke B, sharding 2 harus terus berinteraksi dengan sharding 1, sehingga efisiensi pemrosesan transaksi akan menurun. Namun, jika tidak mengunduh dan memverifikasi seluruh sejarah sharding tertentu, peserta mungkin tidak dapat memastikan bahwa status interaksi mereka adalah hasil dari beberapa urutan blok yang valid, dan urutan blok seperti itu memang merupakan rantai standar dalam sharding.
Oleh karena itu, dibandingkan dengan rantai tunggal tanpa sharding, sistem sharding menghadapi tantangan baru di mana pengguna tidak dapat secara langsung memverifikasi sepenuhnya kevalidan dan ketersediaan rantai tertentu, karena data yang terlalu banyak. Pengguna harus diberikan metode tidak mempercayai dan praktis yang maksimal untuk memverifikasi rantai mana yang sepenuhnya tersedia dan valid, sehingga mereka dapat menentukan rantai mana yang merupakan rantai standar. Dalam praktiknya, pengembang blockchain dapat menggunakan teknik berikut untuk menyelesaikan beberapa masalah dalam verifikasi: seperti komite, SNARKs/STARKs, mekanisme nelayan, serta bukti penipuan dan ketersediaan data.
Ada dua pendekatan untuk menyelesaikan masalah ini, salah satunya adalah sinkronisasi lintas Sharding.