Šta je sharding?
Sharding je tehnologija deljenja baze podataka na manje delove s ciljem unapređenja broja transakcija. Takođe, jedan je od dobro poznatih metoda koji se primenjuje s ciljem da se unapredi skalabilnost. Kada se sharding primeni u okviru ekosistema, cela mreža može da obradi više transakcija i podrži više korisnika.
Rešenje za skalabilnost od ključnog je značaja zato što blockchain tehnologija postaje sve više mejnstrim, i sve iše ljudi želi ili mora da se oslanja na ovu tehnologiju. Ali, rast broja korisnika takođe usporava rad mreže.
Izvor: vitalik.ca
Imajući to u vidu, jedan od glavnih ciljeva kada je u pitanju razvoj blockchain-a jeste smanjenje obima posla i opterećenja mreže. Pa je tako upotreba sharding-a ili drugih metoda s ciljem unapređenja skalabilnosti od ključne važnosti ne samo za blockchain-ove već i za korisnike koji veruju da je tehnologija koju koriste bezbedna i brza.
Ako Ethereum, na primer, usvoji sharding, ova blockchain mreža će biti izdeljena na više delova, koji su poznatiji kao “krhotine” (shards) I čuvaju se na različitim mestima u ekosistemu. Ipak, vredi napomenuti da ovaj metod deljenja podataka funkcioniše samo kada se primenjuje na jednu bazu podataka sa velikim skupovima podataka što je čini idealnim rešenjem za probleme koje blockchain ima sa skalabilnošću.
Ako vas to zbunjuje, hajde da pogledamo ovu temu iz druge perspektive.
Zamislite da imate knjigovodstvenu agenciju i mnogo domaćih i stranih klijenata kod kojih nema prostora za greške. Naravno, zaposlićete onoliko profesionalaca koliko vam je potrebno kako biste finansijske izveštaje klijenata držali pod kontrolom.
Sada, zamislite koliko bi vam vremena bilo potrebno da ako bi vaši klijenti zahtevali od svih vaših zaposlenih, uključujući vas, da provere rezultate rada svih svojih kolega na kraju smene. Bili biste zatrpani poslom kome se neće nazirati kraj, naročito kada stignu novi klijenti koji žele da unajme pouzdanog računovođu kao što ste vi.
U stvarnosti, ako vi imate knjgovodstveni biznis, verovatno imate i pouzdane zaposlene kojima nije potreban mikromenadžment da bi radili svoj posao kako treba. Drugim rečima, svaki zaposleni zna šta treba da se radi što doprinosi efikasnosti na radnom mestu. I ako primenite ovu analogiju na skalabilost u vašem blockchain-u, dobijete polutačnu sliku sharding-a.
Foto ilustracija: Freepik
Zahvaljujući sharding-u, nije neophodno da blockchain čvorovi o kojima ćemo detaljnije govoriti u nastavku skladište celu kopiju blockchain-a. Umesto toga, „krhotine” skladište manje grupe podataka kojima je lakše upravljati s ciljem smanjenja latencije i kako bi mreža mogla da obradi više transakcija u sekundi.
Štaviše, svi oni mogu da funkcionišu zajedno, da skladište šifrirane transakcione podatke i komunikaciju koja je potrebna kako bi ceo sistem bio ažuriran I bez grešaka.
Sve to deluje kao dobar sistem koji sve drži pod kontrolom.
Međutim, to je možda bilo istina u početnim fazama razvoja blockchain-a. Sada, kada sve više ljudi koristi Web 3.0 i otkriva nove slučajeve upotrebe i primene blockchain tehnologije, ova tehnika za skladištenje podataka više nije prihvatljivo rešenje.
Kada svaki čvor koji postoji u okviru ekosistema čuva podatke o celoj distribuiranoj bazi podataka (ledger), mreža beleži dug period čekanja (latenciju) i preveliku količinu podataka. Kao rezultat svega, čvorovi ne mogu da umnože potreban broj blokova i transakcija u kratkom vremenskom periodu, što ponekad ima za rezultat visoke račune za gas ili druge neprijatnosti.
Kako funkcioniše sharding?
Utvrdili smo da sharding deli podatke u okviru ekosistema kako bismo bili sigurni da čvorovi ne treba da nose teret cele potražnje za transakcijama u okviru mreže i podataka koji dolaze s tim. Umesto toga, kada je blockchain sistem zasnovan na sharding-u, čvorovi čuvaju samo podatke o „skupovima krhotina” (clusters of shards). Broj krhotina koje mogu da postoje u okviru jednog čvora još uvek je podložan diskusiji.
Krhotine se mogu smatrati manjim mrežama u okviru jedne velike mreže. Svaka krhotina skladišti autentične podatke, što znači da nijedna krhotina ne poseduje iste transakcione podatke kao neka druga krhotina u mreži.
U pitanju je lepo dizajniran sistem zato što sada kada blockchain može da se deli na manje mreže koje na neki način funkcionišu same za sebe, ne treba da trošimo energiju na kreiranje prevelikog broja podataka. Štaviše, zahvaljujući sharding-u, krhotine zavise jedna od druge pošto skladište samo fragmente podataka što ne znači ništa ako se ne uklopi zajedno sa svim drugim delovima podataka iz blockchain-a.
Foto ilustracija: Freepik
Pa tako, imajući u vidu da različite grupe podataka postoje u mnogim bazama podataka, ove baze podataka ne treba da se skladište na istom uređaju. Na taj način mreža postaje fleksibilnija i sa više kapaciteta za skladištenje pošto ovo razdvajanje podataka eliminiše ponavljanja.
Drugi važan detalj je da ako blockchain usvaja sharding kao način za unapređenje skalabilnosti, mreža neće prolaziti kroz hard ili soft forkovanje (forking) kako bismo to postigli. Drugim rečima, sharding ne pravi izmene na blockchain protokolima. Umesto toga, svaka krhotina koja sada postoji na blockchain-u koristi isti, tj. originalni protokol, bez iniciranja promena.
Vrste blockchain sharding-a
Nisu sve sharding metode iste. Imajući to u vidu, mi možemo da izdvojimo tri vrste sharding-a: sharding na mreži (network sharding), sharding kod transakcija (transaction sharding) Ili „direktni sharding” (state sharding),
Network sharding ima za cilj unapređenje komunikacije između čvorova što dovodi do sinhronizacije „krhotina“ prilikom obrade transakcija. S druge strane, transaction sharding ima veći potencijal da ubrza brzine transakcija u okviru mreže. Ipak, state sharding bi bio najbezbednija opcija pošto se odnosi da deobu stanja cele mreže preko validatora čvorova i krhotina.
Koji blockchain-ovi koriste sharding?
Pa, istinu govoreći, nijedan.
Bar još uvek.
Međutim, Ethereum je vodeći kandidat koji ulaže u istraživanja sa namerom da u potpunosti prihvati ovu tehniku skalabilnosti.
Ipak, ova ažuriranja blockchain-a ne dešavaju se preko noći. Ranije sam spomenuo da sharding nije ekvivalent forkovanju, imajući u vidu prirodu unapređenja. Ipak, kada su u pitanju razvoj i testiranje, za bilo kakve značajne promene na blockchain-u potrebno je dosta vremena.
Izvor: Ethereum
Pa tako, iako Ethereum, na primer, ima za cilj da se prebaci na sharding u nekom trenutku tokom godine, verovatno je da će developeri naići na nove izazove koji će dalje prolongiraju proces.
Da li do toga dolazi zbog toga što je sharding i dalje samo koncept, i da začetnici treba da uče na svojim greškama?
Da. I zahvaljujući činjenici da prema promenama koje mogu da utiču na ceo ekosistem ili mrežu treba da odnositi sa posebnom pažnjom.
Takođe vredi napomenuti da sharding nosi i neke bezbednosne rizike. Kada je obim posla distribuiran kroz sistem krhotina, to ostavlja prostor za jednostruke napade (single-shard attacks). Ako napadač stekne kontrolu nad krhotinom , on može pokušati da izmeni kôd ili izazove štetu u okviru mreže. Može se desiti da je sharding i dalje samo na nivou koncepta zato što developeri nisu pronašli izvodljiva rešenja za ovaj bezbedonosni problem.
Ali ako sharding postane uspešan u toku godine, verovatno će drugi blockchain-ovi i blockchain kompanije uložiti više resursa u istraživanja koja će nam pomoći da odredimo kako da u potpunosti iskoristimo ovaj metod distribucije podataka.
Kako će to uticati na potencijal blockchain-a u sadašnjem obliku?
To još uvek ne znamo, ali se nadamo da ćemo uskoro dobiti odgovor na ovo pitanje.