Domov
Články
Vysvetlenie hard forkov a soft forkov

Vysvetlenie hard forkov a soft forkov

Stredne pokročilý
Zverejnené Nov 29, 2018Aktualizované Feb 9, 2023
8m

Úvod

Keď sa vám na smartfóne zobrazí výzva, aby ste si aktualizovali aplikáciu digitálneho bankovníctva, pravdepodobne nad tým nebudete vôbec rozmýšľať. Možno vám ju dokonca telefón aktualizuje automaticky bez toho, aby ste si to všimli. Je to nevyhnutný proces. Navyše ak si nenainštalujete najnovšiu verziu softvéru, riskujete odmietnutie prístupu k bankovým službám.

Vo svete kryptomien s otvoreným zdrojovým kódom je to úplne inak. Na to, aby ste mohli používať bitcoin, nemusíte čítať každý riadok jeho kódu, ale mať túto možnosť je dôležité. Neexistuje tu totiž žiadna hierarchia ani banka, ktorá by vám posielala aktualizácie a menila veci, ako sa jej zapáči. Implementácia nových funkcií v blockchainových sieťach preto môže byť náročná.

V tomto článku preskúmame, ako je možné kryptomenové siete inovovať, aj keď nemajú žiadny centrálny orgán. Používajú sa na to dva rôzne mechanizmy: hard forkysoft forky


Kto má v blockchainových sieťach rozhodujúce slovo?

Aby ste pochopili, ako fungujú forky, je dôležité najskôr porozumieť tomu, kto je v sieti súčasťou rozhodovacieho procesu (čiže kto ju spravuje).

Na prevádzke bitcoinovej siete sa podieľajú tri podskupiny – vývojári, ťažiari a prevádzkovatelia úplných uzlov. Sú to strany, ktoré sa na prevádzke siete skutočne podieľajú. Ľahké uzly (t. j. peňaženky v telefónoch, počítačoch atď.) sa síce používajú vo veľkom, ale pokiaľ ide o sieť, nie sú jej skutočnými „účastníkmi“.


Vývojári

Vývojári zodpovedajú za vytváranie a aktualizáciu kódu. V prípade typickej kryptomeny môže s vývojom pomáhať ktokoľvek. Kód je verejne dostupný, takže môžete poslať zmeny a ostatní vývojári ich po vás skontrolujú. 


Ťažiari

Ťažiari sú tí, ktorí sieť zabezpečujú. Prevádzkujú kód kryptomeny a z vlastných prostriedkov pridávajú do blockchainu nové bloky. V prípade bitcoinovej siete na to napríklad používajú mechanizmus Proof of Work. Za svoje úsilie sú odmeňovaní odmenou za blok.


Prevádzkovatelia úplných uzlov

Úplné uzly sú chrbticou kryptomenovej siete. Overujú, odosielajú a prijímajú bloky a transakcie a uchovávajú kópiu blockchainu.


Tieto kategórie sa často prekrývajú. Môžete byť napríklad vývojárom a prevádzkovateľom úplného uzla alebo ťažiarom a prevádzkovateľom úplného uzla. Môžete robiť aj všetky tri veci naraz alebo žiadnu z nich. Veľa používateľov kryptomien sa v skutočnosti nevenuje ani jednej z týchto rolí. Namiesto toho používajú ľahké uzly alebo centralizované služby.

Pri pohľade na vyššie uvedené opisy by ste mohli nadobudnúť dojem, že o sieti rozhodujú vývojári a ťažiari. Vývojári vytvárajú kód – bez nich by neexistoval softvér, ktorý by ste mohli prevádzkovať, a nemal by kto opravovať chyby alebo pridávať nové funkcie. Ťažiari zabezpečujú sieť – bez zdravej ťažobnej konkurencie by mohol byť blockchain napadnutý alebo by sa mohol úplne zastaviť.

Ak by sa však tieto dve skupiny pokúsili donútiť zvyšok siete, aby sa im podriadil, nedopadlo by to veľmi dobre. Podľa mnohých ľudí skutočná sila spočíva v rukách úplných uzlov. Je to spôsobené tým, že používatelia sa môžu rozhodnúť, aký softvér budú prevádzkovať (systém opt‑in, t. j. možnosť voľby). 

Vývojári sa vám nebudú vkrádať do domu a nútiť vás so zbraňou pri hlave, aby ste si stiahli binárne súbory Bitcoin Core. Ak si budú ťažiari raziť cestu štýlom „buď bude po našom, alebo nebude nič“, aby si vynútili nechcenú zmenu, používatelia si jednoducho počkajú a uvidia. 

Tieto strany nie sú všemocnými vládcami – sú poskytovateľmi služieb. Keď sa ľudia rozhodnú sieť nepoužívať, kryptomena stratí na hodnote. Strata hodnoty priamo ovplyvňuje ťažiarov (ich odmeny potom majú nižšiu dolárovú hodnotu). A pokiaľ ide o vývojárov, tých môžu používatelia jednoducho ignorovať.

Nie je to tak, že by softvér siete niekto vlastnil. Môžete urobiť akékoľvek zmeny a pokiaľ budú ostatní váš upravený softvér prevádzkovať, môžete spolu všetci komunikovať. V takom prípade urobíte fork (rozvetvenie) softvéru a vytvoríte tým novú sieť.


Čo je fork?

K softvérovým forkom dochádza, keď softvér skopírujete a upravíte. Pôvodný projekt funguje ďalej, ale je teraz oddelený od toho nového, ktorý sa vydal iným smerom. Predstavte si, že tím spravujúci web s vaším obľúbeným kryptomenovým obsahom sa pohádal o to, ako ďalej pokračovať. Jedna časť tímu sa môže rozhodnúť, že web replikuje na inej doméne, ale do budúcna budú pridávať iný typ obsahu ako pôvodný web.

Projekty sa začali na spoločnom základe a zdieľajú rovnakú históriu. Rovnako ako cesta, ktorá sa neskôr rozdeľuje na dve, sa teraz ich cesty budú natrvalo rozbiehať.

Takéto situácie nastávajú pri projektoch s otvoreným zdrojovým kódom často a nastávali dlho predtým, než na scénu prišiel bitcoin alebo ethereum. Hard forky a soft forky však od seba rozlišuje takmer výhradne blockchainové prostredie. Poďme sa na ne teda pozrieť.


➠ Chcete začať s kryptomenou? Kúpte si Bitcoin na Binance!


Hard forky verzus soft forky

Napriek podobným názvom a rovnakému účelu je medzi hard forkom a soft forkom významný rozdiel, ktorý si teraz vysvetlíme.


Čo je hard fork?

Hard forky sú softvérové aktualizácie, ktoré nie sú spätne kompatibilné. Zvyčajne k nim dochádza, keď uzly pridávajú nové pravidlá, ktoré sú v rozpore so starými pravidlami. Nové uzly môžu komunikovať iba s uzlami, ktoré prevádzkujú novú verziu. Výsledkom je, že sa blockchain rozdelí a vzniknú dve samostatné siete: jedna so starými pravidlami a druhá s novými.

Aktualizované uzly menia svoju farbu na modrú. Staršie žlté uzly ich odmietajú a modré uzly komunikujú medzi sebou.

Aktualizované uzly menia svoju farbu na modrú. Staršie žlté uzly ich odmietajú a modré uzly komunikujú medzi sebou.


V tej chvíli paralelne bežia dve siete. Obe budú ďalej spracovávať transakcie a vytvárať bloky, ale už nefungujú v rovnakom blockchaine. Všetky uzly mali až do chvíle, keď došlo k forku, identický blockchain (a táto história zostáva), ale po forku budú mať iné bloky a transakcie.

Fork blockchainu na bloku číslo 600 000.


Vzhľadom na túto zdieľanú históriu budete mať coiny v oboch sieťach (ak ste ich držali už pred forkom). Predpokladajme, že keď na bloku číslo 600 000 došlo k forku, držali ste 5 BTC. Týchto 5 BTC by ste mohli v starom blockchaine v bloku číslo 600 001 minúť, ale v novom blockchaine v bloku číslo 600 001 by minuté neboli. Za predpokladu, že sa nezmenila kryptografia, vaše privátne kľúče v novej sieti stále držia 5 BTC. 

Hard fork sa udial napríklad v roku 2017, keď sa sieť Bitcoin rozdelila na dva samostatné blockchainy – pôvodný Bitcoin (BTC) a nový Bitcoin Cash (BCH). Hard fork nastal po mnohých hádkach týkajúcich sa najlepšieho prístupu k škálovaniu. Zástancovia siete Bitcoin Cash chceli zväčšiť bloky, zatiaľ čo zástancovia Bitcoinu boli proti tejto zmene.

Zväčšenie blokov vyžadovalo úpravu pravidiel. Udialo sa to pred soft forkom protokolu SegWit (o ňom si povieme viac o chvíľu), takže uzly prijímali iba bloky do veľkosti 1 MB. Ak by ste vytvorili 2 MB blok, ktorý by bol inak platný, ostatné uzly by ho už odmietli.

Len uzly, ktoré zmenili svoj softvér, umožňovali prijatie blokov presahujúcich veľkosť 1 MB. Z toho dôvodu mohli medzi sebou komunikovať len uzly s rovnakými úpravami protokolu, takže pochopiteľne prestali byť kompatibilné.


Čo je soft fork?

Soft fork je spätne kompatibilná inovácia, čo znamená, že inovované uzly môžu s tými neinovovanými stále komunikovať. Soft fork zvyčajne pridáva nové pravidlo, ktoré nie je v rozpore s tými staršími.

Soft forkom je možné dosiahnuť napríklad zmenšenie bloku. Poďme si to ešte raz ukázať na príklade bitcoinu: hoci veľkosť bloku má nejaký limit, to, aký malý môže byť, nijako obmedzené nie je. Ak chcete akceptovať len bloky do určitej veľkosti, stačí odmietnuť tie, ktoré ju presahujú.

To vás však automaticky neodpojí od siete. Stále môžete komunikovať s uzlami, ktoré sa týmito pravidlami neriadia, a len odfiltrujete nejaké informácie, ktoré vám odovzdávajú.

Dobrým príkladom zo skutočného sveta je už skôr spomínaný soft fork protokolu Segregated Witness (SegWit), ktorý nastal krátko po rozdelení na Bitcoin a Bitcoin Cash. SegWit bola aktualizácia, ktorá veľmi múdro zmenila formát blokov a transakcií. Staré uzly môžu bloky a transakcie naďalej overovať (nové formátovanie pravidlá neporušuje), len im jednoducho nerozumejú. Niektoré polia je možné čítať, až keď uzly prejdú na novší softvér, ktorý im umožňuje analyzovať dodatočné údaje.

Ani dva roky po aktivácii protokolu SegWit neboli inovované všetky uzly. Inovácia má svoje výhody, ale vzhľadom na to, že nejde o zmenu, ktorá by štiepila sieť, nie je dôvod ponáhľať sa.


Ani dva roky po aktivácii protokolu SegWit neboli inovované všetky uzly. Inovácia má svoje výhody, ale vzhľadom na to, že nejde o zmenu, ktorá by štiepila sieť, nie je dôvod ponáhľať sa.


Hard forky verzus soft forky – čo je lepšie?

Oba uvedené typy forkov slúžia v zásade na iné účely. Sporné hard forky môžu komunitu rozdeliť, ale plánové hard forky umožňujú po dohode so všetkými softvér slobodne upravovať.

Soft forky sú miernejšou alternatívou. Vo všeobecnosti máte obmedzenejšie možnosti, pretože nové zmeny nemôžu byť v rozpore so starými pravidlami. Ak je však možné vašu aktualizáciu vykonať tak, aby zostala spätne kompatibilná, nemusíte sa báť o rozštiepenie siete.


Záverečné myšlienky

Hard forky a soft forky sú pre dlhodobý úspech blockchainových sietí zásadné. Napriek chýbajúcemu centrálnemu orgánu nám umožňujú vykonávať zmeny a inovácie v decentralizovaných systémoch.

Forky blockchainom a kryptomenám umožňujú integrovať novovyvíjané funkcie. Bez týchto mechanizmov by sme potrebovali centralizovaný systém s riadením „zhora nadol“, inak by sme sa museli počas existencie protokolu držať rovnakých pravidiel.