Rumah > web3.0 > teks badan

Konsep sharding dan cara ia berfungsi

PHPz
Lepaskan: 2024-07-17 13:23:52
asal
1063 orang telah melayarinya

Teknologi Blockchain membawa potensi yang tidak pernah berlaku sebelum ini dari segi desentralisasi, ketelusan dan keselamatan, tetapi ia juga menghadapi cabaran besar kebolehskalaan. Skalabiliti adalah salah satu daripada trilemma blockchain, dua lagi adalah keselamatan dan desentralisasi. Bidang blokchain sentiasa berusaha untuk memenuhi tiga perkara di atas pada masa yang sama, dan "sharding" ialah penyelesaian strategik yang boleh digunakan.

Apa itu sharding?

Sharding ialah konsep yang dipinjam daripada pengurusan pangkalan data tradisional dan merujuk kepada proses membahagikan pangkalan data yang lebih besar kepada bahagian yang lebih kecil dan lebih mudah diurus (dipanggil "serpihan"). Sharding digunakan dalam bidang blockchain untuk meningkatkan kebolehskalaan sambil mengekalkan prinsip desentralisasi. Sharding sebenarnya membahagikan rangkaian blockchain kepada bahagian yang lebih kecil, dan setiap bahagian yang dipecahkan boleh memproses transaksi dan kontrak pintar secara selari.

Bagaimana sharding berfungsi?

Untuk memahami cara sharding dilakukan dalam rangkaian blockchain, anda perlu terlebih dahulu memahami cara data blockchain disimpan dan diproses secara konvensional. Terdapat banyak cara untuk memproses data Pemprosesan berurutan dan pemprosesan selari akan diperkenalkan di bawah.

Secara umumnya, setiap nod blockchain bertanggungjawab untuk memproses semua volum transaksi dalam rangkaian. Jenis pemprosesan data ini dipanggil "pemprosesan berurutan". Iaitu, setiap nod mesti mengekalkan dan menyimpan semua maklumat kritikal, seperti baki akaun dan sejarah transaksi. Pada asasnya, setiap nod mesti mengendalikan semua operasi rangkaian, data dan transaksi.

Mod ini meningkatkan keselamatan blockchain dengan merekodkan setiap transaksi pada semua nod, tetapi ia juga mengurangkan kelajuan pemprosesan data dengan ketara. Di sinilah pemprosesan selari data dimainkan, membolehkan berbilang operasi dilakukan secara serentak.

Sharding membelah atau "memisahkan" beban kerja transaksi merentasi keseluruhan rangkaian blockchain dan oleh itu merupakan penyelesaian yang berkesan kepada dilema ini. Ini bermakna tidak semua nod perlu mengurus atau memproses keseluruhan beban kerja blockchain.

Sebaliknya, sharding memisahkan beban kerja melalui pemisahan mendatar. Dalam proses ini, data dibahagikan kepada subset mendatar, dengan setiap serpihan bertindak sebagai pangkalan data bebas dan dapat memproses urus niaga secara berasingan daripada serpihan lain.

Pecahan mendatar dan pemisahan menegak

Pecahan mendatar dan pemisahan menegak ialah dua kaedah utama pengembangan pangkalan data. Kedua-dua pendekatan direka bentuk untuk mengurus set data yang besar dengan cekap, tetapi asas cara ia berfungsi adalah berbeza sama sekali. Sharding ialah cara biasa untuk melaksanakan split horizon.

Data boleh dibahagikan kepada baris dan diedarkan kepada nod (atau pangkalan data) yang berbeza melalui pemisahan mendatar. Setiap nod (atau pangkalan data) mengandungi subset data. Setiap baris dalam jadual ialah entiti yang unik, jadi baris yang berasingan tidak menjejaskan integriti data. Contoh klasik split horizon ialah pengedaran rangkaian blockchain seperti Ethereum dan Bitcoin.

Data belah menegak dibahagikan kepada lajur dan bukannya baris. Setiap partition bagi pemisahan menegak mengandungi data untuk entiti individu atau subset keseluruhan set data, tetapi hanya untuk set atribut tertentu. Contohnya, jadual pelanggan dengan lajur seperti Nama, Status, Perihalan dan Foto. Dalam kes pemisahan menegak, "nama" dan "status" mungkin disimpan dalam satu jadual, dan "perihalan" dan "foto" dalam jadual lain.

Mengapa pemisahan mendatar lebih popular?

Dalam rangkaian blockchain, pembahagian mendatar biasanya lebih diutamakan berbanding pembahagian menegak, terutamanya atas tiga sebab utama iaitu kebolehskalaan, penyahpusatan dan keselamatan.

Skalabiliti: Sharding menyediakan penyelesaian dengan memecahkan data kepada "serpihan" yang lebih kecil yang lebih terurus. Setiap shard boleh berjalan secara bebas dan memproses lebih banyak transaksi serentak, meningkatkan kelajuan dan kecekapan rangkaian. Pemisahan menegak mengedarkan lajur merentas pangkalan data yang berbeza, yang boleh menjadikan pengambilan semula transaksi lengkap atau menyekat maklumat lebih kompleks, mengehadkan kebolehskalaan.

Desentralisasi: Selaras dengan konsep teras blockchain, split horizon menyokong desentralisasi. Jika nod hanya perlu memproses sebahagian daripada jumlah data (satu serpihan), beban pengiraan dan storan akan dikurangkan, membolehkan lebih banyak nod mengambil bahagian dalam rangkaian. Sebaliknya, pembahagian menegak mempunyai had bahawa setiap nod perlu mengakses semua partition (semua lajur data) untuk memahami dan mengesahkan data blok yang lengkap.

Keselamatan & Integriti Data: Setiap serpihan (atau partition) mengandungi data transaksi yang lengkap untuk memastikan setiap nod mengandungi salinan bahagian rantaian blok yang lengkap dan tepat, jadi split horizon mengekalkan integriti data . Segmentasi menegak pada asasnya membahagikan data blok nod yang berbeza, yang menjadikannya sukar untuk memastikan integriti dan keselamatan data yang paling penting bagi rangkaian blockchain.

Apakah kelebihan sharding?

Potensi kelebihan yang dibawa oleh sharding kepada teknologi blockchain akan diterokai secara terperinci di bawah:

Meningkatkan kelajuan transaksi: Sharding menggalakkan pemprosesan transaksi selari. Daripada memproses transaksi satu demi satu dalam urutan, sharding membolehkan transaksi diproses secara serentak pada shard yang berbeza. Setiap serpihan beroperasi secara bebas, meningkatkan kelajuan transaksi dengan ketara. Ini bukan sahaja mempercepatkan urus niaga, ia juga bermakna keseluruhan rangkaian boleh mengendalikan lebih ramai pengguna, sekali gus mempromosikan populariti rangkaian.

Ziliqa ialah rangkaian blockchain yang menggunakan sharding untuk menyelesaikan kebolehskalaan. Dengan bantuan mekanisme sharding ini, Ziliqa boleh memproses beribu-ribu transaksi sesaat.

Meminimumkan kos pemprosesan dan penyimpanan: Reka bentuk blockchain tradisional memerlukan setiap nod untuk menyimpan semua transaksi. Apabila blockchain berkembang, begitu juga permintaan untuk perkakasan. Tetapi dengan sharding, setiap nod hanya bertanggungjawab untuk memproses dan menyimpan sebahagian kecil daripada keseluruhan data rangkaian, yang akan mengurangkan sumber yang diperlukan untuk nod menyertai rangkaian.

Oleh itu, semakin ramai peserta yang menyertai sebagai pengesah, semakin terdesentralisasi rangkaian tanpa mengeluarkan kos yang tinggi. Dengan cara ini, masalah itu dapat dikurangkan dan bukan sahaja entiti dengan sumber pengkomputeran mahal mewah sebenarnya boleh mengambil bahagian dalam proses tersebut, sekali gus mengekalkan sifat demokratisasi rangkaian blockchain.

Tingkatkan prestasi rangkaian: Sharding membantu meningkatkan prestasi dan kapasiti keseluruhan rangkaian. Dalam blockchain tradisional, bilangan nod yang mengambil bahagian dalam rangkaian semakin meningkat dari hari ke hari, yang akan meningkatkan komunikasi dan penyegerakan antara nod, tetapi prestasi akan berkurangan.

Namun, sharding mengubah keadaan ini. Memandangkan setiap serpihan boleh berjalan secara bebas dan selari, sistem boleh mengendalikan lebih banyak transaksi dan pengiraan. Nod baharu ditambahkan hanya pada serpihan, bukan pada keseluruhan rangkaian, sekali gus meningkatkan kapasiti pengembangan rangkaian. Kecekapan dipertingkatkan dan transaksi menjadi lebih lancar, memastikan pengalaman pengguna yang lebih baik.

Sila ingat bahawa perkembangan masa depan dan penambahbaikan dalam teknologi sharding juga mungkin membawa kelebihan tambahan, atau meningkatkan kelebihan sedia ada, dengan itu terus mengoptimumkan ekosistem blockchain.

Apakah batasan sharding?

Sharding boleh membantu rangkaian blockchain menjadi lebih cekap melalui banyak manfaat yang berpotensi, tetapi ia juga memberikan satu set cabaran yang unik di sepanjang jalan. Potensi kelemahan yang dibawa oleh sharding termasuk:

Serangan pengambilalihan shard tunggal: Dalam persekitaran sharded, kuasa pengkomputeran yang diperlukan untuk mengambil alih shard tunggal adalah jauh lebih rendah daripada kuasa pengkomputeran yang diperlukan untuk mengambil alih keseluruhan rangkaian. Oleh itu, serpihan tunggal lebih terdedah kepada "serangan satu peratus" atau "pengambilalihan serpihan." Penyerang dengan jumlah sumber yang kecil boleh mengambil alih satu serpihan berbanding dengan menyerang seluruh rangkaian.

Urus niaga rentas beling: Menjalankan urus niaga pada serpihan (cross-shard) yang berbeza akan menghadapi cabaran yang unik. Urus niaga rentas serpihan adalah rumit, dan pengurusan cuai boleh membawa kepada isu perbelanjaan dua kali. Semasa urus niaga, jika satu serpihan tidak dapat menjejaki status serpihan lain dengan tepat, pengguna boleh mengeksploitasi kelemahan ini dalam percubaan untuk menyebabkan "masalah perbelanjaan berganda".

Isu Ketersediaan Data: Sharding menjadikan pengekalan keadaan keseluruhan rangkaian menjadi rumit. Oleh kerana nod yang mengekalkan serpihan tertentu berada di luar talian, serpihan ini tidak tersedia apabila diperlukan, yang boleh menyebabkan masalah ketersediaan data yang mengganggu keseluruhan rangkaian.

Keselamatan Rangkaian: Sharding memerlukan pelaksanaan protokol yang stabil untuk mengimbangi beban antara serpihan. Operasi yang tidak betul boleh mengakibatkan pengagihan data yang tidak sekata atau ketidakseimbangan sumber, yang boleh menyebabkan ketidakstabilan rangkaian.

Penyegerakan Nod: Penyegerakan nod boleh menyebabkan kelewatan rangkaian disebabkan oleh masa yang diperlukan untuk berkongsi dan mengemas kini maklumat antara nod yang berbeza. Selain itu, jika kuasa pemprosesan nod menjadi perlahan atau sambungan rangkaian ketinggalan, ia mungkin melambatkan keseluruhan proses penyegerakan, mengurangkan prestasi keseluruhan rangkaian rantaian blok.

Adakah sharding dilaksanakan pada Ethereum?

Ethereum telah merancang pelaksanaan sharding sebagai sebahagian daripada peningkatan Ethereum 2.0. Ethereum 2.0, juga dikenali sebagai "Eth2" atau "Fasa Senyap," ialah peningkatan kepada blockchain Ethereum yang direka untuk meningkatkan kelajuan rangkaian, kecekapan dan kebolehskalaan, dengan itu meningkatkan keupayaan untuk mengendalikan lebih banyak transaksi dan mengurangkan kesesakan.

Setakat ini, peningkatan sedang dilaksanakan secara berperingkat, dengan fasa terakhir (Fasa 2) termasuk pelaksanaan penuh sharding. Pemaju Ethereum berharap peningkatan itu akan menangani cabaran yang dihadapi oleh rangkaian semasa, seperti skalabiliti dan kos transaksi.

Tetapi perlu diingat bahawa melaksanakan sharding sememangnya mencabar, terutamanya mengekalkan keselamatan rangkaian dan desentralisasi. Oleh itu, pembangun Ethereum telah mempertimbangkan dengan teliti dan menjalankan ujian meluas peralihan ini untuk memastikan bahawa peningkatan akan berjaya setelah dilaksanakan sepenuhnya.

Kesimpulan

Secara keseluruhan, sharding mewakili kemajuan ketara dalam menyelesaikan masalah paradoks ternary blockchain. Sharding membawa kerumitan baharu dan potensi kelemahan, tetapi ia dijangka meningkatkan kebolehskalaan tanpa menjejaskan desentralisasi, menjadikan pembangunan masa depan rangkaian blockchain penuh dengan harapan yang tidak berkesudahan.

Ini sudah pasti sebab mengapa banyak blok blok sedang meneroka sharding sebagai penyelesaian yang berpotensi. Ethereum sedang mengintegrasikan sharding sebagai sebahagian daripada peningkatan Ethereum 2.0 untuk menangani isu kebolehskalaan. Pelaksanaan perkongsian dijangka berlaku melalui peningkatan Cancun, komponen utama pelan peningkatan keseluruhan. Namun, seperti teknologi lain yang sedang berkembang, kejayaan pelaksanaan sharding akan ditentukan oleh faktor-faktor seperti penyelidikan dan pembangunan berterusan serta ujian yang ketat.

Atas ialah kandungan terperinci Konsep sharding dan cara ia berfungsi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:binance.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!