Ano Ang Proof of Work (PoW)?
Home
Mga Artikulo
Ano Ang Proof of Work (PoW)?

Ano Ang Proof of Work (PoW)?

Intermediya
Na-publish Dec 6, 2018Na-update Dec 12, 2022
8m

Panimula

Ang Proof of Work (kadalasang pinapaikli bilang PoW) ay isang mekanismo para makaiwas sa mga double spend. Ginagamit ito ng karamihan sa mga pangunahing cryptocurrency bilang kanilang consensus algorithm. Ito ang tawag natin sa paraan ng pag-secure sa ledger ng cryptocurrency.

Proof of Work ang isa sa unang lumabas na algorithm ng consensus, at hanggang ngayon, nananatili itong pinakadominante. Ipinakilala ito ni Satoshi Nakamoto sa 2008 Bitcoin white paper, pero matagal nang naisip ang mismong teknolohiya. 

Ang HashCash ng Adam Back ay isang naunang halimbawa ng isang Proof of Work na algorithm noong mga araw bago ang cryptocurrency. Sa pamamagitan ng paghiling sa mga nagpapadala na magsagawa ng kaunting computing bago magpadala ng isang email, puwedeng mabawasan ng mga tatanggap ang spam. Ang pagkalkulang ito ay halos walang gastos sa isang lehitimong nagpapadala, pero mabilis na magpapatong-patong para sa isang taong nagpapadala ng mga email nang maramihan.


Ano ang double-spend?

Nangyayari ang double spend kapag ginastos ang parehong mga pondo nang higit sa isang beses. Ang termino ay halos eksklusibong ginagamit sa konteksto ng digital na pera – dahil kung tutuusin, mahihirapan kang gastusin ang parehong aktwal na pera nang dalawang beses. Kapag nagbayad ka para sa isang kape ngayong araw, iaabot mo ang pera sa isang kahera at malamang ay ila-lock niya ito sa register. Hindi ka na puwedeng pumunta sa kabilang coffee shop at magbayad para sa isa pang kape gamit ang parehong pera.

Sa mga digital cash scheme, mayroong posibilidad na magawa mo ito. Tiyak na nakagawa ka na noon ng duplicate na file sa computer – kokopyahin mo na lang ito at ipe-paste. Puwede mong i-email ang parehong file sa sampu, dalawampu, limampung tao. 

Dahil ang digital na pera ay data lang, kailangan mong pigilan ang mga tao sa pagkopya at paggastos sa parehong mga unit sa iba't ibang lugar. Kung hindi, hindi magtatagal at babagsak ang iyong currency. 

Para sa isang mas detalyadong pagtingin sa double-spending, basahin ang Pagpapaliwanag sa Double Spending.


Bakit kinakailangan ang Proof of Work?

Kung nabasa mo na ang aming gabay sa teknolohiya ng blockchain, malalaman mong bino-broadcast ng mga user ang mga transaksyon sa network. Gayunpaman, hindi agad-agad na itinuturing na valid ang mga transaksyong iyon. Nangyayari lang iyon kapag naidagdag ang mga ito sa. 
Ang blockchain ay isang malaking database na nakikita ng bawat user, para matingnan nila kung nagastos na ba dati ang mga pondo. Isipin mo: may notepad kayo ng tatlo mo pang kaibigan. Sa tuwing may isa sa inyo na maglilipat ng kahit na anong unit na ginagamit ninyo, isusulat ninyo iyon – binayaran ni Alice si Bob ng limang unit, binayaran ni Bob si Carol ng dalawang unit, atbp.
May isa pa itong kumplikasyon – sa tuwing may gagawin kang transaksyon, babanggitin mo ang transaksyon kung saan nagmula ang mga pondo. Kaya kung babayaran ni Bob si Carol ng dalawang unit, ganito talaga ang magiging hitsura ng entry: Binayaran ni Bob si Carol ng dalawang unit mula sa naunang transaksyon kay Alice.

Ngayon, mayroon kaming paraan para subaybayan ang mga unit. Kung susubukan ni Bob na gumawa ng isa pang transaksyon gamit ang parehong mga yunit na kapapadala lang niya kay Carol, malalaman agad ito ng lahat. Hindi papayagan ng grupo na idagdag ang transaksyon sa notepad.

Ngayon, posible itong gumana sa isang maliit na grupo. Kilala ng bawat isa ang isa't isa, kaya malamang na magkasundo sila kung sino sa mga magkakaibigan ang magdadagdag ng mga transaksyon sa notepad. Pero paano kung gusto natin ng isang grupong may 10,000 kalahok? Hindi mapapalawak nang maigi ang paggamit ng notepad, dahil walang magtitiwala sa isang estranghero na pamahalaan iyon.

Dito na papasok ang Proof of Work. Tinitiyak nito na hindi gumagastos ang mga user ng pera na wala silang karapatang gastusin. Sa pamamagitan ng kumbinasyon ng game theory at cryptography, nabibigyang-daan ng PoW na algorithm ang sinuman na i-update ang blockchain ayon sa mga panuntunan ng system.


Paano gumagana ang PoW?

Ang notepad natin kanina ay ang blockchain. Pero hindi tayo naglalagay ng mga transaksyon nang paisa-isa – sa halip, pinagsasama-sama natin ang mga ito sa mga block. Iaanunsyo natin ang mga transaksyon sa network, pagkatapos ay ilalagay ito ng mga user na gumawa ng block sa isang kandidatong block. Ikokonsidera lang na valid ang mga transaksyon kapag kumpirmadong block na ang kanilang kandidatong block, ibig sabihin, naidagdag na ito sa blockchain.

Gayunpaman, hindi mura ang pagdaragdag sa isang block. Sa Proof of Work, kailangang gamitin ng isang minero (ang user na gumagawa ng block) ang ilan sa sarili niyang mga resource para sa pribilehiyo. Ang resource na iyon ay ang computing power, na ginagamit para i-hash ang data ng block hangga't walang nahahanap na solusyon sa isang puzzle.
Sa pag-hash ng data ng block, ipinapasok mo ito sa isang hashing function para bumuo ng block hash. Gumagana bilang “fingerprint” ang block hash – ito ang pagkakakilanlan ng input data mo at natatangi ito sa bawat block.

Halos imposibleng mag-reverse ng isang block hash para makuha ang input data. Gayunpaman, kung may alam na input, wala masyadong halaga para sa iyo na kumpirmahing tama ang hash. Kailangan mo lang isumite ang input sa pamamagitan ng function at suriin kung ang output ay pareho.

Sa Proof of Work, dapat kang magbigay ng data na ang hash ay tumutugma sa ilang kondisyon. Pero hindi mo alam kung paano makarating doon. Ang opsyon mo lang ay ipasa ang iyong data sa pamamagitan ng isang hash function at tingnan kung tumutugma ito sa mga kondisyon. Kung hindi, kakailanganin mong baguhin ang iyong data nang kaunti para makakuha ng ibang hash. Kapag binago mo ang kahit isang character lang sa iyong data, magkakaroon ng ibang-ibang resulta, kaya walang paraan para mahulaan kung ano ang magiging output.

Bilang resulta, kung gusto mong gumawa ng block, manghuhula ka. Kadalasan ay kinukuha mo ang impormasyon sa lahat ng transaksyong gusto mong ilagay at ilan pang mahahalagang data, pagkatapos ay sama-sama mong iha-hash ang lahat ng ito. Pero dahil hindi mababago ang dataset mo, kailangan mong magdagdag ng isang piraso ng impormasyon na variable. Kung hindi, palagi mong makukuha ang parehong hash bilang output. Ang variable na data na ito ay tinatawag nating nonce. Ito ang numerong babaguhin mo sa bawat pagtatangka, para iba-ibang hash ang makukuha mo sa bawat pagkakataon. At ito ang tinatawag nating pagmimina.

Sa kabuuan, ang pagmimina ay ang proseso ng pangangalap ng data ng blockchain at pag-hash nito kasama ang isang nonce hanggang sa makahanap ka ng isang partikular na hash. Kung makahahanap ka ng isang hash na nakakatugon sa mga kondisyon na itinakda ng protocol, magkakaroon ka ng karapatang i-broadcast ang bagong block sa network. Sa puntong ito, ia-update ng ibang mga kalahok ng network ang kanilang mga blockchain para isama ang bagong block.

Para sa mga pangunahing cryptocurrency sa kasalukuyan, talagang napakahirap maabot ang mga kondisyon. Kung mas mataas ang hash rate sa network, mas mahirap humanap ng valid na hash. Ginagawa ito para hindi mahanap agad-agad ang mga block.

Gaya ng naiisip mo, posibleng makonsumo sa computer mo ang pagtatangkang manghula ng napakaraming hash. Gumagasta ka ng mga computational cycle at kuryente. Pero bibigyan ka ng protocol ng cryptocurrency bilang reward kung may mahahanap kang valid na hash.

Balikan natin kung ano na ang alam natin:

  • Mahal para sa iyo ang mag-mina.
  • Bibigyan ka ng reward kung makakagawa ka ng isang valid na block.
  • Kapag may alam na input, madaling masuri ng isang user ang hash nito – mave-verify ng mga user na hindi nagmimina na valid ang isang block nang hindi gumagamit ng maraming computational power.

Sa ngayon, maayos ito. Pero paano kung susubukan mong mandaya? Sino ang makakapigil sa iyong maglagay ng ilang mapanlinlang na transaksyon sa block at gumawa ng isang valid na hash?

Dito na papasok ang public-key cryptography. Hindi natin ito idedetalye sa artikulong ito, pero basahin ang Ano ang Public-Key Cryptography? para sa isang komprehensibong pagtingin dito. Sa madaling salita, gumagamit tayo ng mahuhusay na cryptographic na diskarte na nagbibigay-daan sa sinumang user na ma-verify kung may karapatan ang isang tao na ilipat ang mga pondong sinusubukan nilang gastusin.
Kapag gumawa ka ng transaksyon, lalagdaan mo ito. Puwedeng ikumpara ng sinuman sa network ang iyong lagda sa iyong public key, at tingnan kung tugma ito. Titingnan din nila kung magagastos mo ba talaga ang iyong mga pondo at kung ang kabuuan ng iyong mga input ay mas mataas kaysa sa kabuuan ng mga output mo (ibig sabihin, hindi ka gumagastos nang lampas sa kung ano ang mayroon ka).

Anumang block na may kasamang invalid na transaksyon ay awtomatikong tatanggihan ng network. Magiging mahal para sa iyo na kahit magtangka lang na manloko. Sasayangin mo ang iyong sariling mga mapagkukunan nang walang anumang reward.

Ito ang kagandahan ng Proof of Work: ginagawa nitong mahal ang mandaya, pero kikita ka kung magiging matapat ka. Ang sinumang rasonableng minero ay maghahangad ng ROI, kaya maaasahan mong kikilos sila sa paraang garantisado ang kita.



Gustong magsimula sa cryptocurrency? Bumili ng Bitcoin sa Binance!



Proof of Work vs. Proof of Stake

Maraming consensus algorithm, pero ang isa sa mga pinakainaabangan ay ang Proof of Stake (PoS). Noon pang 2011 ang konseptong ito, at naipatupad na ito sa ilang mas maliliit na protocol. Pero hindi pa ito nagagamit sa alinman sa malalaking blockchain.
Sa mga Proof of Stake na system, ang mga minero ay papalitan ng mga validator. Hindi kailangang magmina at hindi kailangang makipag-unahan sa panghuhula ng mga hash. Sa halip, random na pipiliin ang mga user – kung mapipili sila, dapat silang mag-propose (o “mag-forge”) ng block. Kung valid ang block, makakatanggap sila ng reward mula sa bayaring nagmula sa mga transaksyon ng block.
Gayunpaman, hindi basta-basta pipiliin ang sinumang user – pipiliin sila ng protocol batay sa iba't ibang salik. Para maging kwalipikado, kailangang mag-lock up ang mga kalahok ng stake, na isang paunang tinukoy na halaga ng native na currency ng blockchain. Parang pyansa ang stake: kung naglalagay ng malaking pera ang mga nasasakdal para hindi sila maengganyong laktawan ang pagdinig, nagla-lock up naman ng stake ang mga validator para hindi sila maengganyong mandaya. Kung hindi sila magiging tapat, kukunin ang kanilang stake (o bahagi nito).
May ilang benepisyo ang Proof of Stake kumpara sa Proof of Work. Ang pinakamalaki ay ang mas maliit na carbon footprint – dahil hindi nangangailangan ng high-powered na mga farm ng pagmimina ang PoS, kaunti lang ang nakokonsumong kuryente kaysa sa PoW. 

Bagama't nasabi ito, wala ito sa track record ng PoW. Bagama't puwedeng itong ituring na maaksaya, ang pagmimina lang ang algorithm ng consensus na napatunayan na nang malawakan. Sa loob lang ng higit sa isang dekada, nakakuha na ito ng trilyong dolyar na halaga ng mga transaksyon. Para masabi nang may kasiguraduhan kung puwedeng matapatan ng PoS ang seguridad nito, kailangang ma-test nang maayos ang pag-stake. 


Mga pangwakas na pananaw

Ang Proof of Work ay ang orihinal na solusyon sa problema ng double-spend at napatunayan nang maaasahan at secure ito. Pinatunayan ng Bitcoin na hindi natin kailangan ng mga sentralisadong entity para maiwasang magastos ang parehong mga pondo nang dalawang beses. Sa matalinong paggamit ng cryptography, mga hash function, at game theory, mapagkakasunduan ng mga kasali sa isang desentralisadong environment ang estado ng isang pinansyal na database.