Ang blockchain ng Bitcoin ay base sa mekanismong kasunduan na Proof-of-Work (PoW). Ang Proof-of-Work ay nakakatulong na panatilihing desentralisado, pwedeng suriin, at protektado.
Sa isang sistemang Proof-Of-Work, iyung mga Bitcoin miner ay kailangang gumastos ng oras at enerhiya para magkalkula ng mga problemang matematika at sa huli, pigilan ang mga taong may masamang hangarin sa network.
Para bang rocket science?
Nakakasindak ba unawain?
Ayusin natin iyan!
Para mas lalong maintindihan ang Proof-of-Work, balikan natin kung ano ang Bitcoin.
Ang Bitcoin ay isang desentralisadong digital currency na gumagamit ng blockchain para mag-imbak ng mga transaksyon sa network. Dahil sa ganap na cryptography, ang blockchain ay hindi nababago, na ang ibig sabihin ay walang pwedeng imanipula, o pakialaman iyung mga nangyayaring transaksyon sa network. Ito ay ang tumutulong panatilihin ang seguridad ng network laban sa mga taong may masamang hangarin.
Pwedeng ibalik-aral kung ano ang bitcoin dito at kung ano ang blockchain dito.
Kaya, paano pinoprotekta ng blockchain na may pinagsamang sistemang Proof-of-Work ang Bitcoin sa mga masasamang tao?
Ito ay salamat ulit sa hashing. Pwedeng bumalik sa nakalipas na yugto tungkol sa hashing sa naunang mga mmodyul.
Ang hashing ay responsable sa pagsasama at pagprotekta sa lahat ng bloke ng data sa network. Isipin niyo na ito ang “chain” sa blockchain.
Balikan natin ulit iyung mga kaibigan nating sina Pedro at Darna. Sa step 3 papasok yung hashing.
Step 3: Ang mga miner sa mundo ay susuriin iyung mga transaksyon sa tiyak na bilis na gamit ang isang proseso na tawag ay hashing. Sa nasabi ko dati, iyung proseso ng hashing ay swerte swerte lang, parang lotto.
Step 3.1: Isang miner ay kukuha ng transaksyon ni Pedro, sabay ng ibang transaksyon ng ibang tao, at iha-hash ang mga ito. Tawagin natin siyang “Miner A” at ang kanyang output hash na “Hash A”
Step 3.2: Ipapagsama ni Miner A iyung kanyang Hash A sa isang random nonce – “number used once” o isang numero na isang beses lang gagamitin, pagkatapos ay iha-hash ulit ito. Tawagin natin ang resulta na “Hash B”
Step 3.3: Ikukumpara ang Hash B sa isang target number. Pero, dapat mas mababa ang Hash B sa target number.
Kapag hindi mas mababa sa target number, si Miner A ay tuloy-tuloy lang susubok ng iba’t ibang mga nonce na magbibigay ng hash output na nakatugon sa pamantayan. Sa ibang salita, kailangan ni Miner A na makahanap ng nonce na gumagana.
Sabihin nating nakahanap na si Miner A ng tamang kombinasyon, Tawagin natin itong hash na “Hash C”.
Para mas lalong maintindihan ng mabuti iyung target number, isipin niyong sumali ka ng lotto kasama ng mga kaibigan mo.
Sabihin natin na iyung mga numero na pwedeng pagpilian sa lotto ay 1 hanggang 100. Ang sabi ng lotto master ay dapat makakuha ka ng numero na mas mababa sa 10. Sa kamalasan, ang nakuha mong numero ay 17. Iyung kaibigan mo na si Ervin ay nakakuha ng 3, kaya siya ang panalo.
Sa halimbawang ito, 10 iyung target number. Iyung nakuha mong 17 ay Hash B at iyung 3 ng kaibigan mo ay Hash C.
Step 3.4: Pag si Miner A ay nakahanap ng nonce na gumagana. Ipapahayag niya ito sa buong network. Ang sasabihin niya ay parang ganito:
“Ako ang nagwagi! Nalutas ko na! Ito na iyung hash ng mga transaksyon ni Pedro at ibang tao, iyung nonce na ginamit ko, at iyung resultang hash output (Hash C) ng dalawa. Nakumpara ko na siya sa target number at tumama siya! Pwede niyong uliting suriin kung gusto niyo!”
Iyung ibang miner sa network ay susuriin kung tama iyung solusyon ni Miner A. Alalahanin niyo: Ang mga hash ay pwedeng suriin at hindi maibabalik sa dati. Ang ibig sabihin nito ay kung nakahanap iyung miner ng tamang solusyon, agad-agad itong masusuri ng mga ibang miner sa network na walang posibilidad na pakialaman ito.
Pagkatapos nito ay pwede na tayong bumalik sa orihinal nating proseso.
Step 4: Pag binigyan na ng mga miner ng OK signal iyung mga transaksyon ni Pedro at ng ibang tao, ipinagsasama-sama sila sa isang bloke.
Step 5: Pagkatapos na ipagsama-sama sila, ang bloke ay idinadagdag sa taas ng mga dating bloke kung saan nakasalin iyung mga nakalipas na transaksyon, na bumubuo ng kadena. Itong mga bloke ay nakaugnay gamit ang matematika para siguradong protektado sila.
Step 6: Matatanggap ni Darna iyung dalawang (2) bitcoin na pinadala ni Pedro.
Step 7: Iyung miner na unang nagsuri ng transaksyon ay makakatanggap ng bitcoin bilang kabayaran.
Ang proseso ng pagmina na gamit ang Proof-of-Work ay binubuo ng mga miner sa network ay tuloy-tuloy na nanghuhula ng tamang inputs (data ng transaksyon at nonces) hanggang makahanap ng tamang kombinasyon na gagana (target number). Ito ay isang napakagastos na proseso dahil iyung mga miner ay gumagamit ng kuryente at kailangan may tamang uri ng mga kompyuter para dito.
“Proof-of-Work” ang tawag dito dahil pag makahanap ang miner ng tumpak na kombinasyon, ang kuryente at iyung lakas ng pag-compute ng ginamit ay ang pruweba na iyung miner ay gumawa ng trabahong aktwal para mahanap ang tamang kombinasyon.
Note: Iyung hash ng dating bloke ay dinagdag din sa Step 3.2, na ang ibig sabihin ay iyung input para sa Hash C ay ang Hash A, isang random nonce, at ang Hash C ng dating bloke.
Hindi na muna namin isinama ito kanina para mas madaling maintindihan.
Ang pagdagdag ng hash sa dating bloke ay mabisang dinudugtong lahat ng bloke. Naalala niyo ba na konting pagbabago lang sa hash input ay todo todong magbabago ang hash output? Kung may masamang tao na nais palitan iyung dating data, mapapalitan iyung kanyang hash. Ang pagpalit ng hash na ito ay tuloy tuloy na babaguhin iyung ibang hash na parang tsunami.
Napakahalaga ito dahil kung meron mang sumubok palitan iyung data ng nakaraan, mapapansin kaagad iyung hindi pagkakaayon nito sa buong network at pipigilin iyung mga may masamang hangarin.
1. Ang mga miner ay may insentibo na gumawa ng tapat na trabaho dahil sa kabayaran na bitcoin.
2. Iyung mga masamang tao ay mas kaunti ang insentibo para atakihin ang network dahil sa malaking gastos sa mining. Ang gastos sa paghack ng network ay napakalaki katumbas sa potensyal na benepisyong makukuha dito.
3. Nakasuri ang lahat at protektado lahat ng transaksyon.
4. Hindi na kailangan ng tiwala at ang kasunduan ay nakakamit kahit na walang sentral na partido.
5. Ang “randomness” na ginagamit ay inaalis ang anumang bias o posibleng malusutan ng manipulasyon.
Pero syempre, walang perpekto. Ang mekanismong kasunduan ng Proof-of-Work ay hindi eksepsiyon dahil may kahinaan ito sa 51% Attack.
Ang 51% attack ay nangyayari kung may mga miner na may masamang hangarin at may hawak sa higit pa sa 50% ng buong Bitcoin mining network. Kapag may control ng higit pa sa 50%, may kapangyarihan ang mga miner na ito na pakialaman ang mga susunod na transaksyon sa network.
Pareho ito sa ideya ng isang may ari ng 51% ng pagbabahagi ng kumpanya. May kapangyarihan silang magdikta ng mga desisyon ng kumpanya.
Importante din alamin na kahit na may 51% attack na mangyari, lahat ng nakalipas na transaksyon ay hindi na pwedeng pakialaman. Iyung mga miner na may masamang hangarin ay kaya lang diktahan iyung mga susunod na transaksyon sa network.
Para makagawa ang isang grupo ng 51% attack, sobrang laki ang gagastusin nila dahil kakailanganin nilang napakaraming kompyuter at kuryente.
Isa pa, ang gagastusin para makagawa ng 51% attack ay mallit kumpara sa makukuhang pinansyal na benepisyo nito.
Ang posibilidad na may mangyari ang 51% attack ay ang dahilan kung bakit napakahalaga ang tungkulin ng mga miner sa Bitcoin. Habang dumarami ang mga miner na lumahok sa Bitcoin, mas mahirap makapasok ang mga may masamang hangarin. Habang lumalaki ang network, mas lalong nagiging protektado ito.
Ang blockchain design ni Satoshi ay totoong kahanga-hanga. Walang sinumang makakaisip ng posibilidad na magkaroon ng isang ganap na gumaganang desentralisdong network na mabisa at protektado. Ito ay binago kung paano natin ginagawa ang pananalapi ngayon at baka tuloy-tuloy na ring baguhan ang pang araw-araw nating gawain.
Sa susunod na yugto, paguusapan natin ang isa pang uri ng cryptography na tawag ay digital signatures at kung paano ito ginagamit sa mga cryptowallets na ginagamit ng mga tao.