Ipinaliwanag ang mga Hard Fork at Soft Fork
Ipinaliwanag ang mga Hard Fork at Soft Fork
HomeMga Artikulo

Ipinaliwanag ang mga Hard Fork at Soft Fork

Intermediya
Published Nov 29, 2018Updated Jun 14, 2021
8m

Panimula

Kapag na-prompt kang ma-update ang iyong digital banking app sa iyong smartphone, marahil ay hindi ka na nag-iisip ng dalawang beses. Marahil awtomatikong nag-a-update ang iyong telepono nang hindi mo napapansin. Ito ay isang kinakailangang proseso, pagkatapos ng lahat – kung hindi mo mai-install ang pinakabagong bersyon ng software, ikaw ay may panganib na tanggihan ang pag-access sa mga serbisyo nito.

Sa open-source na mga cryptocurrency, ang mga bagay ay ibang-iba. Hindi mo kailangang basahin ang bawat linya ng code na sumusuporta sa Bitcoin upang magamit ito, ngunit ang pagkakaroon ng pagpipilian na gawin ito ay mahalaga. Kita mo, walang hierarchy dito, at walang bangko na puwede lang itulak ang mga update at baguhin ang mga bagay ayon sa gusto nito. Bilang isang resulta, ang pagpapatupad ng mga bagong tampok sa mga blockchain network ay puwedeng maging isang hamon.
Sa artikulong ito, susuriin namin kung paano puwedeng ma-upgrade ang mga network ng cryptocurrency, sa kabila ng kawalan ng isang gitnang awtoridad. Upang magawa ito, gumagamit sila ng dalawang magkakaibang mekanismo: ang mga hard fork at soft fork


Sino ang gumagawa ng mga desisyon sa isang blockchain network?

Upang maunawaan kung paano gumagana ang mga fork, mahalagang maunawaan muna ang mga kalahok na kasangkot sa proseso ng paggawa ng desisyon (o pamamahala) ng network.
Sa Bitcoin, puwede mong malawak na makilala ang pagkakaiba sa pagitan ng tatlong mga subset ng mga kalahok – mga developer, minero, at full node na mga user. Ito ang mga partido na talagang nag-aambag sa network. Ang mga light node (ibig sabihin, ang mga wallet sa iyong mga telepono, laptop, atbp.) Ay malawakan na ginagamit, ngunit hindi talaga sila “mga kalahok” hanggang sa network ay nababahala.


Mga developer

Responsable ang mga developer para sa paglikha at pag-update ng code. Para sa iyong tipikal na coin, ang sinuman ay puwedeng mag-ambag sa prosesong ito. Available ang code sa publiko, kaya puwede silang magsumite ng mga pagbabago para sa ibang mga developer upang suriin. 


Mga minero

Ang mga minero ay ang nagse-secure ng network. Pinatakbo nila ang code ng cryptocurrency at inilaan ang mga mapagkukunan sa pagdaragdag ng mga bagong block sa blockchain. Halimbawa, sa network ng Bitcoin, ginagawa nila ito sa pamamagitan ng Proof of Work. Binibigyan sila ng reward para sa kanilang mga pagsisikap sa anyo ng isang block reward.


Mga user ng full node

Ang buong node ay ang gulugod ng cryptocurrency network. Pinapatunayan, pinapadala, at natatanggap ang mga block at mga transaksyon at pinapanatili ang isang kopya ng blockchain.


Madalas mong mahahanap ang overlap sa mga kategoryang ito. Puwede mong, halimbawa, maging isang developer at isang full node na user, o isang minero at full node na user. Puwede kang maging tatlo o wala. Sa katunayan, marami sa itinuturing naming mga user ng cryptocurrency ay hindi kumukuha ng anuman sa mga tungkuling ito. Sa halip, pinili nilang gumamit ng mga light node o sentralisadong serbisyo.

Sa pagtingin sa mga paglalarawan sa itaas, puwede kang gumawa ng mga malalakas na kaso para sa mga developer at minero na nagpapasya para sa network. Lumilikha ang mga developer ng code – nang wala sila, wala kang software na tatakbo at walang mag-aayos ng mga bug o magdagdag ng mga bagong tampok. Tinitiyak ng mga minero ang network – nang walang masiglang kumpetisyon sa pagmimina, ang chain ay puwedeng ma-hijack, o puwede itong mag-grind sa isang paghinto.
Kung ang dalawang kategoryang ito ay sinubukang puwersahin ang natitirang network sa pagsunod sa kanilang kalooban, gayunpaman, hindi ito magtatapos ng maayos. Sa marami, ang tunay na lakas ay nakatuon sa mga full node. Ito ay higit sa lahat isang function ng network na maging opt-in, nangangahulugang puwedeng piliin ng mga user kung anong software ang kanilang pinapatakbo. 
Ang mga developer ay hindi sinisira ang iyong bahay at pinipilit kang mag-download ng mga Bitcoin Core binary sa gunpoint. Kung ang mga minero ay gumagamit ng isang “aking paraan o ang highway” na pag-uugali upang pilitin ang isang hindi ginustong pagbabago sa mga user, mabuti, ang mga user ay dadalhin lang sa highway. 
Ang mga partido na ito ay hindi lahat makapangyarihang mga pinuno – nagbibigay sila ng serbisyo. Kung magpasya ang mga tao na huwag gamitin ang network, mawawalan ng halaga ang coin. Ang pagkawala ng halaga ay direktang nakakaapekto sa mga minero (ang kanilang mga reward ay mas mababa sa halaga kapag naitala sa dolyar). Tulad ng para sa mga developer, puwede lang silang hindi pansinin ng mga user.
Kita mo, hindi tulad ng pagmamay-ari ng software. Puwede kang gumawa ng anumang mga pag-edit na nais mong gawin, at, kung patakbuhin ng iba ang iyong binagong software, lahat kayo ay puwedeng makipag-usap. Sa kasong iyon, puwede mong ma-fork ang software at lumikha ng isang bagong network sa proseso.


Ano ang fork?

Ang isang fork ng software ay nangyayari sa isang punto kung saan ang software ay nakopya at nabago. Ang orihinal na proyekto ay nabubuhay, ngunit hiwalay na ito sa bago, na tumatagal ng ibang direksyon. Ipagpalagay na ang pangkat ng iyong paboritong website ng nilalaman ng cryptocurrency ay nagkaroon ng isang malaking hindi pagkakasundo sa kung paano magpatuloy. Ang isang bahagi ng koponan ay puwedeng magreplika sa site sa ibang domain. Ngunit sa pagpunta, magpo-post ang mga ito ng iba't ibang mga uri ng nilalaman kaysa sa orihinal.

Ang mga proyekto ay nagtatayo ng isang karaniwang batayan at nagbabahagi ng isang kasaysayan. Tulad ng isang solong kalsada na sa paglaon ay nahahati sa dalawa, mayroon na ngayong permanenteng pagkakaiba-iba sa kanilang mga landas.

Tandaan na ang ganitong uri ng bagay ay nangyayari ng marami sa mga open-source na proyekto, at matagal nang nangyayari bago ang paglitaw ng Bitcoin o Ethereum. Gayunpaman, ang pagkakaiba sa pagitan ng mga hard fork at soft fork ay halos isang eksklusibo sa mundo ng blockchain. Pag-usapan pa natin nang kaunti pa.



Mga hard fork vs. soft fork

Sa kabila ng pagkakaroon ng mga magkatulad na pangalan at sa huli ay nagsisilbi ng parehong layunin, ang mga hard fork at soft fork ay malaki ang pagkakaiba-iba. Tingnan natin ang bawat isa.


Ano ang hard fork?

Ang mga hark fork ay mga pag-update ng software na hindi pa tumutugma. Karaniwan, nangyayari ito kapag ang mga node ay nagdaragdag ng mga bagong panuntunan sa paraan na sumasalungat sa mga patakaran ng mga lumang node. Ang mga bagong node ay puwede lang makipag-usap sa iba na nagpapatakbo ng bagong bersyon. Bilang isang resulta, nahahati ang blockchain, lumilikha ng dalawang magkakahiwalay na network: ang isa ay may mga dating patakaran, at ang isa ay may mga bagong patakaran.


Nagiging asul ang mga node kapag nag-update. Ang mas matandang dilaw na mga node ay tinanggihan ang mga ito, habang ang mga asul ay kumonekta sa bawat isa.


Kaya mayroon na ngayong dalawang mga network na tumatakbo sa parallel. Pareho silang magpapatuloy na magpalaganap ng mga block at mga transaksyon, ngunit hindi na sila gumagana sa parehong blockchain. Ang lahat ng mga node ay may magkaparehong blockchain hanggang sa punto ng pag-fork (at mananatili ang kasaysayan na), ngunit magkakaroon sila ng magkakaibang mga block at transaksyon pagkatapos.



Dahil mayroong na nakabahaging kasaysayan, magtatapos ka ng mga coin sa parehong mga network kung hawak mo ang mga ito bago ang pag-fork. Ipagpalagay na mayroon kang 5 BTC kapag ang isang pag-fork ay nangyari sa Block 600,000. Puwede mong gastusin ang 5 BTC na iyon sa dating chain sa Block 600,001, ngunit hindi sila magagastos sa bagong Blockchain 600,001. Ipagpalagay na ang cryptography ay hindi nagbago, ang iyong mga private key ay nagtataglay pa rin ng limang mga coin sa na-fork na network. 
Ang halimbawa ng isang hard fork ay ang 2017 fork na nakita ang Bitcoin na pinaghiwalay sa dalawang magkakahiwalay na tanikala – ang orihinal na, Bitcoin (BTC), at isang bago, Bitcoin Cash (BCH). Ang pag-fork ay naganap pagkatapos ng maraming pagtatalo tungkol sa pinakamahusay na diskarte sa pag-scale. Nais ng mga tagataguyod ng Bitcoin Cash na dagdagan ang laki ng block, habang ang mga tagataguyod ng Bitcoin ay sumalungat sa pagbabago.
Ang pagtaas sa laki ng block ay nangangailangan ng pagbabago ng mga patakaran. Ito ay bago ang soft fork ng SegWit (higit pa sa ilang sandali), kaya tatanggapin lang ng mga node ang mga block na mas maliit sa 1MB. Kung lumikha ka ng isang block ng 2MB na kung hindi man wasto, tatanggihan pa rin ito ng iba pang mga node.

Ang mga node lang na binago ang kanilang software upang payagan ang mga block na higit sa 1MB ang laki ang puwedeng tanggapin ang mga block na iyon. Siyempre, iyon ay maghahatid sa kanila ng hindi tugma sa nakaraang bersyon, kaya ang mga node lang na may parehong mga pagbabago sa protocol ang puwedeng makipag-usap.


Ano ang Soft fork

Ang soft fork ay isang pag-upgrade na backward-compatible , nangangahulugang ang mga na-upgrade na node ay puwede pa ring makipag-usap sa mga hindi na-upgrade. Ang karaniwang nakikita mo sa isang soft fork ay ang pagdaragdag ng isang bagong panuntunan na hindi sumasalungat sa mga mas matandang panuntunan.
Halimbawa, ang pagbawas ng laki ng block ay puwedeng ipatupad ng soft-forking. Bumalik ulit tayo sa Bitcoin upang ilarawan ang puntong ito: bagaman mayroong limitasyon sa kung gaano kalaki ang puwedeng maging block, walang limitasyon sa kung gaano ito kaliit. Kung nais mong tanggapin lang ang mga block sa ibaba ng isang tiyak na sukat, kailangan mo lang tanggihan ang mas malalaki.

Gayunpaman, ang paggawa nito ay hindi awtomatikong ididiskonekta ka mula sa network. Nakikipag-usap ka pa rin sa mga node na hindi nagpapatupad ng mga panuntunang iyon, ngunit sinasala mo ang ilang impormasyong ipinapasa mo.

Ang mahusay na halimbawa ng totoong buhay ng isang soft fork ay ang nabanggit na fork ng Segregated witness (SegWit), na naganap ilang sandali matapos ang paghahati ng Bitcoin/Bitcoin Cash. Ang SegWit ay isang pag-update na nagbago sa format ng mga block at transaksyon, ngunit ito ay matalinong ginawa. Puwedeng patunayan pa rin ng mga lumang node ang mga block at transaksyon (hindi sinira ng pag-format ang mga patakaran), ngunit hindi nila ito mauunawaan. Ang ilang mga patlang ay nababasa lang kapag ang mga node ay lumipat sa mas bagong software, na nagpapahintulot sa kanila na i-parse ang karagdagang data.



Kahit na dalawang taon pagkatapos ng pag-activate ng SegWit, hindi lahat ng mga node ay na-upgrade. Mayroong mga bentahe sa paggawa nito, ngunit walang tunay na pagkaapurahan dahil walang pagbabago sa paglabag sa network.


Mga hard fork vs. soft fork – alin ang mas mabuti?

Sa panimula, ang parehong mga nasa itaas na uri ng mga fork ay nagsisilbi ng iba't ibang mga layunin. Ang mga masalungat na hard fork ay puwedeng hatiin ang isang komunidad, ngunit pinapayagan ng mga nakaplano ang kalayaan na baguhin ang software sa lahat sa kasunduan.

Ang soft fork ay isang mas banayad na opsyon. Sa pangkalahatan, mas limitado ka sa kung ano ang magagawa mo dahil ang iyong mga bagong pagbabago ay hindi puwedeng sumasalungat sa mga dating patakaran. Sinabi na, kung ang iyong pag-update ay puwedeeng gawin sa paraan na ito ay mananatiling magkatugma, hindi mo kailangang mag-alala tungkol sa pag-fragment sa network.


Pangwakas na mga ideya

Ang mga harkd fork at soft fork ay mahalaga sa pangmatagalang tagumpay ng mga blockchain network. Pinapayagan nila kaming gumawa ng mga pagbabago at pag-upgrade sa mga desentralisadong system, sa kabila ng kawalan ng isang sentral na awtoridad.

Ginagawang posible ng mga fork para sa mga blockchain at cryptocurrency upang isama ang mga bagong tampok sa pagbuo ng mga ito. Kung wala ang mga mekanismong ito, kakailanganin namin ng isang sentralisadong sistema na may kontrol na pang-itaas na pababa. Kung hindi man, mai-stuck kami sa eksaktong parehong mga patakaran para sa habang buhay ng protocol.