Ano ang Sharding? Itong Ethereum Scaling Concept ay Ipinaliwanag

As ang scaling debate sa mga cryptocurrencies ay nagpapatuloy, ang ilang mga potensyal na solusyon ay talagang nasa pagbuo ng medyo matagal na ngayon.

Sa partikular, sa kaso ng Ethereum, kung saan ang malaking pokus ay inilalagay sa desentralisasyon at katiwasayan sa gastos ng scalability, ang aplikasyon ng sharding kasabay ng pagpapatupad Katunayan ng Stake Ang pinagkasunduan ay nakikita bilang ang pinaka-kinakailangang mekanismo kung saan ang network ay maaaring sumukat sa mga praktikal na antas para sa mga aplikasyon habang pinapanatili pa rin ang desentralisasyon at seguridad nito.

Ang Sharding ay isang kumplikadong paksa, lalo na kapag inilapat sa isang desentralisado, peer to peer network tulad ng Ethereum kung saan ang pandaigdigang estado ng network ay patuloy na ina-update.

Kaya ano nga ba ang sharding at paano ito makakatulong sa mga network ng blockchain na lumaki?

Sharding at Distributed Computing Background

Ang Sharding ay talagang mas matanda kaysa sa teknolohiya ng blockchain at ipinatupad sa iba't ibang mga sistema mula sa pag-optimize ng database ng negosyo hanggang Global Spanner database ng Google.

  • Sa esensya, ang sharding ay isang partikular na paraan para sa pahalang na paghahati ng data sa loob ng isang database.
  • Sa pangkalahatan, ang database ay nahahati sa maliliit na piraso na tinatawag na "mga shards", na kapag pinagsama-sama ay bumubuo sa orihinal na database.
  • Sa mga distributed blockchain network, ang network ay binubuo ng isang serye ng mga node na konektado sa isang peer to peer na format, na walang sentral na awtoridad.
  • Tulad ng kaso sa kasalukuyang mga sistema ng blockchain, iniimbak ng bawat node ang lahat ng estado ng network at pinoproseso ang lahat ng mga transaksyon.
  • Habang nagbibigay ito ng mataas na antas ng seguridad sa pamamagitan ng desentralisasyon, lalo na sa mga sistema ng Proof of Work tulad ng Bitcoin at Ethereum, humahantong ito sa mga lehitimong problema sa pag-scale.

Ethereum Sharding

Gamit ang Ethereum bilang isang halimbawa, isang buong node sa Ethereum Iniimbak ng network ang buong estado ng blockchain, kabilang ang mga balanse ng account, imbakan, at code ng kontrata.

Sa kasamaang palad, habang lumalaki ang network sa laki sa isang exponential na bilis, ang consensus ay tumataas lamang nang linearly. Ang limitasyong ito ay dahil sa kinakailangang komunikasyon sa pagitan ng mga node na kailangan upang maabot ang pinagkasunduan.

Ang mga node sa network ay walang mga espesyal na pribilehiyo at bawat node sa network ay nag-iimbak at nagpoproseso ng bawat transaksyon. Bilang resulta, sa isang network na kasing laki ng Ethereum, ang mga isyu tulad ng mataas na gastos sa gas at mas mahabang oras ng pagkumpirma ng transaksyon ay nagiging kapansin-pansing mga problema kapag ang network ay pilit. Ang network ay kasing bilis lamang ng mga indibidwal na node kaysa sa kabuuan ng mga bahagi nito.

Nakakatulong ang Sharding na maibsan ang mga isyung ito sa pamamagitan ng pagbibigay ng kawili-wili, ngunit kumplikadong solusyon. Ang konsepto ay nagsasangkot ng pagpapangkat ng mga subset ng mga node sa mga shards na kung saan ay nagpoproseso ng mga transaksyong partikular sa shard na iyon. Pinapayagan nito ang system na magproseso ng maraming transaksyon nang magkatulad, kaya makabuluhang tumataas ang throughput.

Ang isang mas simpleng paraan upang ilagay ito ay ang pag-iisip ng paghahati ng Estados Unidos sa mga estado.

Habang ang bawat estado (isang shard sa kasong ito) ay bahagi ng mas malaking United States (Ethereum network), mayroon silang sariling mga partikular na panuntunan, hangganan, at subset ng mga populasyon. Gayunpaman, nagbabahagi sila ng pangkalahatang wika at kultura bilang bahagi ng kanilang mas malaking network na bumubuo sa bansa.

O mas mabuti pa, sa Vitalik Buterinsariling salita:

 "Isipin na ang Ethereum ay nahati sa libu-libong isla. Ang bawat isla ay maaaring gumawa ng sarili nitong bagay. Ang bawat isa sa mga isla ay may kanya-kanyang natatanging katangian at lahat ng kabilang sa isla na iyon ie, ang mga account, ay maaaring makipag-ugnayan sa isa't isa AT maaari silang malayang magpakasawa sa lahat ng mga tampok nito. Kung gusto nilang makipag-ugnayan sa ibang mga isla, kakailanganin nilang gumamit ng ilang uri ng protocol.

Gaya ng nakikita mo, ang konsepto ng paghahati-hati ng network sa mas mahusay na mga piraso ay nagbibigay-daan sa network na gumana bilang kabuuan ng mga bahagi nito, sa halip na limitado ng bilis ng bawat indibidwal na node.

Paano Gumagana ang Sharding sa Blockchains?

Patuloy naming gagamitin ang Ethereum bilang isang halimbawa dito dahil ito ang pinakakilala at pinakamahirap na pagtatangka ng sharding sa arena ng blockchain, dahil ang mga developer ng Ethereum ay nagpapatupad ng tinatawag na “sharding ng estado".

Ang kasalukuyang estado ng Ethereum blockchain ay kilala bilang “pandaigdigang estado” at ito ang makikita ng lahat kapag tumingin sila sa blockchain sa isang partikular na pagkakataon.

Ang nakakalito na bahagi sa pagpapatupad ng sharding sa Ethereum ay sa pamamagitan ng paghahati ng mga node sa mas maliliit na subset, kailangang maproseso ng mga subset na ito ang mga partikular na hanay ng mga transaksyon habang sabay-sabay na ina-update ang estado ng network, habang tinitiyak na ito ay wasto.

Ang Sharding sa Ethereum ay dapat na ipatupad sa isang dalawang yugto na rollout, mas malamang pagkatapos Katunayan ng Stake ay ipinatupad sa network. Ang unang yugto ay ang layer ng data na binubuo ng consensus kung anong data ang nasa shards. Ang ikalawang yugto ay ang layer ng estado. Ang lahat ng ito ay napaka-fluid, kaya isang pangkalahatang breakdown kung paano ito maaaring gumana ay nasa ibaba.

Hinahati ng Ethereum ang network sa mga partikular na shards. Ang bawat shard ay itinatalaga ng isang partikular na pangkat ng mga transaksyon na tinutukoy sa pamamagitan ng pagpapangkat ng mga partikular na account (kabilang ang mga smart contract) sa isang shard. Ang bawat pangkat ng transaksyon ay may isang header at isang katawan na binubuo ng mga sumusunod.

  • Ang shard ID ng pangkat ng transaksyon
  • Pagtatalaga ng mga validator sa pamamagitan ng random sampling (i-verify ang mga transaksyon sa shard)
  • State Root (estado ng merkle root ng shard bago at pagkatapos idagdag ang mga transaksyon)

katawan

  • Lahat ng mga transaksyon na kabilang sa pangkat ng transaksyon na bahagi ng partikular na shard.

Ang mga transaksyon ay partikular sa bawat shard at nangyayari sa pagitan ng mga account na native sa shard na iyon.

Kapag na-verify ang mga transaksyon, ang estado ng network ay nagbabago at ang mga balanse ng account, imbakan, atbp ay ina-update. Upang ma-verify na valid ang pangkat ng transaksyon, dapat tumugma ang pre-state root ng pangkat ng transaksyon sa shard root sa pandaigdigang estado. Kung magkatugma ang mga ito, mapapatunayan ang pangkat ng transaksyon at maa-update ang pandaigdigang estado sa pamamagitan ng partikular na ugat ng estado ng shard ID.

Sa halip na naglalaman lamang ng isang ugat ng estado, ang bawat bloke ng Ethereum blockchain ay naglalaman na ngayon ng parehong ugat ng estado at ugat ng pangkat ng transaksyon. Ang ugat ng pangkat ng transaksyon ay ang merkle na ugat ng lahat ng mga pangkat ng transaksyon mula sa mga partikular na shards para sa bloke ng mga transaksyong iyon.

Karaniwan, mayroong isang merkle root ng lahat ng iba't ibang shards na naglalaman ng na-update at na-verify na mga grupo ng transaksyon. Ang ugat na ito ay nakaimbak sa blockchain kasama ang na-update na ugat ng estado.

Ang paggamit ng mga konsepto ng merkle tree sa istrukturang ito ay mahalaga sa pagtiyak ng bisa ng blockchain. Pag-unawa kung paano a puno ng merkle at partikular na isang merkle root work, ay makakatulong sa iyo na maunawaan ang mga konseptong ito nang mas madali.

Ano ang isang Merkle Tree

Basahin: Ano ang isang Merkle Tree?

Ang consensus sa loob ng shard ay naaabot sa pamamagitan ng Proof of Stake consensus ng random na piniling mga node na inilapat sa isang shard para sa partikular na consensus round.

Hindi lamang ito nagbibigay ng finality sa consensus, na kinakailangan sa loob ng shards, ngunit nagbibigay din ng partikular na depensa sa isang atake na Patunay ng Trabaho blockchain ay madaling kapitan sa pagkakataong ito.

Ang lakas ng hash na kinakailangan upang ma-overrun ang isang partikular na shard sa isang PoW sharded network ay lubhang nababawasan at ang kakayahan para sa isang malisyosong aktor na sakupin ang isang shard sa pamamagitan ng computational power ay magagawa.

Sa pamamagitan nito, maaaring atakehin ng masamang aktor ang iba pang mga shards sa pamamagitan ng protocol ng komunikasyon na isa sa mga mas kumplikado at mahalagang mga tampok ng sharding architecture. Ang random sampling na seleksyon ng mga validator sa loob ng isang shard ay namamahala sa pagpigil sa ganitong uri ng pag-atake dahil ang isang masamang aktor ay hindi malalaman kung saang shard sila inilalagay bago sila aktwal na ilagay dito.

Dagdag pa, gagamitin ang random sampling upang piliin ang mga validator na iyon talaga pagpapatunay mula sa random validating set na iyon.

Ang protocol ng komunikasyon ay mahalaga sa sharding architecture na gumagana nang tama sa system. Maaari mong isipin ang protocol ng komunikasyon bilang pangkalahatang wika na pare-pareho sa mga estado bilang bahagi ng mas malaking Estados Unidos.

Gayunpaman, ang pagdidisenyo ng protocol na ito ay napakahirap at kailangang isagawa upang ito ay magamit lamang kapag kinakailangan. Ito ay nagiging kinakailangan kapag ang isang partikular na node ay nangangailangan ng impormasyon na hindi nakaimbak sa loob ng sarili nitong shard at kailangang hanapin ang shard na may kinakailangang impormasyon. Ang komunikasyong ito ay kilala bilang komunikasyong cross-shard.

Ang cross-shard na komunikasyon ay nakakamit sa pamamagitan ng paglalapat ng konsepto ng mga resibo ng transaksyon. Ang resibo para sa isang transaksyon ay naka-imbak sa isang merkle root na madaling ma-verify ngunit hindi iyon bahagi ng root ng estado.

Sinusuri ng shard na tumatanggap ng transaksyon mula sa isa pang shard ang merkle root upang matiyak na hindi nagastos ang resibo. Sa pangkalahatan, ang mga resibo ay iniimbak sa isang nakabahaging memorya na maaaring ma-verify ng iba pang mga shards, ngunit hindi binago. Samakatuwid, sa pamamagitan ng isang ibinahagi na imbakan ng mga resibo, ang mga shards ay nakakapag-usap sa isa't isa.

Paglipat ng Sharding

Ang Sharding sa Ethereum ay inaasahang maipapatupad pagkatapos ng Casper Pag-upgrade ng PoS. Kamakailan lang, doon ay ilang mga pag-unlad tungkol sa Ethereum 2.0 na kinabibilangan ng pagpapatupad ng pareho Casper at sharding.

Ipinatupad din ang Sharding sa ilang iba pang mga platform, pinaka-kapansin-pansin si Zilliqa. Gayunpaman, ang Zilliqa ay hindi nagpapatupad ng state sharding sa ngayon at sa halip ay nakatutok sa pagbibigay ng mataas na throughput blockchain sa pamamagitan ng paggamit ng transaksyon at computational sharding.

Zilliqabasahin ang aming Gabay sa Zilliqa

Konklusyon

Naghahain ang Sharding upang mag-alok ng ilang magagandang solusyon sa elepante sa silid ng mga platform ng blockchain ngayon, ang scalability.

Habang ang network ng kidlat ng Bitcoin ay nasa yugto ng pagsubok at nagpapakita ng ilang napaka-maaasahan na pag-unlad sa ngayon, ang solusyon ng Ethereum ay nagdadala ng ilang natatanging hamon dahil ito ay naka-peg bilang isang computer sa mundo na kumpleto na ang Turing.

Direktang gagana lamang ang Sharding sa antas ng protocol, kaya sa end user o developer ng dapp ay maaaring hindi ito kinakailangang matutunan.

Anuman, ang pagtatangka ng Ethereum sa state sharding para sa isang malawak, desentralisadong network ay isang kahanga-hangang pagsisikap at magiging isang napakalaking tagumpay kung matagumpay na maipatupad.

Pinagmulan: https://blockonomi.com/sharding/