This article has been translated from English to Tagalog.

Paano gumagana ang Bitcoin mining?

Sa nakaraang aralin, nalaman mo kung ano ang Bitcoin miner, paano nito iniimbak ang mga sariwang transaksyon sa kanyang memory pool, at pagkatapos ay sinisimulan ang “mining” process sa pamamagitan ng paglikha ng isang candidate block.

Kung parang alien language ang sinulat ko para sa’yo, mas makabubuti kung magsimula ka sa unang aralin ng Aking Beginner’s Guide to Bitcoin Mining.

Kung nakakasunod ka pa rin, tingnan natin ng mas malapitan ang candidate block…

Parang tao lang na may ulo at katawan, ang candidate block ay nahahati sa dalawang bahagi:

  1. Block header (dilaw na bahagi)
  2. Block body (gray na bahagi)
    Block Header and Body

Kapag tiningnan natin ang candidate block, hindi lang ito puro transactions.

Candidate Block Anatomy

Kapag ang isang miner ay gumagawa ng candidate block, kasama dito ang “block header” (dilaw na parte).

Ang “katawan” ng block (gray na bahagi) naglalaman ng mga transactions.

Bukod sa paglalaman ng maraming transaksyon, mayroong mga metadata rin na nagbibigay ng “buod” ng block ang candidate block.

Metadata ay simpleng impormasyon tungkol sa ibang data. Sa kasong ito, nagbibigay ito ng impormasyon tungkol mismo sa block. Ang impormasyong ito ay kilala bilang “block header”.

Sa loob ng block header, mayroong iba’t-ibang piraso ng data.

Para sa layunin ng araling ito, pasisimplehin ko kung ano ang nasa loob ng block header.

Timestamp

Ang unang bahagi ng data sa loob ng Block Header ay ang “Timestamp”.

Ipinapakita ng timestamp kung kailan nilikha ang block.

Timestamp

Previous Block Hash

Ang susunod na bahagi ng data ay tinatawag na “Previous Block” o sa mas tiyak, ang “Previous Block Hash”.

Ang Previous Block Hash ay ang block hash ng naunang block sa blockchain.

Previous Block Hash

Para maintindihan ito, kailangan nating tingnan ang file.

Look inside blockchain

Ngayong tinitingnan natin ang loob ng file, makikita natin na ang data ay nakaayos sa partikular na paraan.

Look inside the file and see blockchainstructure

I-visualize natin ito bilang ang blockchain.

Ang candidate block na ginawa ng miner ay kailangang idagdag sa ibabaw ng pinaka-kamakailang block.

Block must bee added on top of the most recent block

Sabihin natin na ang pinaka-kamakailang block ay ang kulay asul.

Most recent block in blockchain

Dahil ang Block Hash ng block na kulay asul ay ang pinaka-kamakailang block sa file (ang “blockchain”), iyon ang block na gustong pagpatungan ng miner.

Isipin ang Block Hash bilang isang custom-generated na ID number para sa block.

Kaya’t ang gagawin ng miner ay idagdag ito bilang “Previous Block Hash” sa Block Header ng kanyang sariling candidate block.

Block hash added as Previous Block Hash of Candidate Block

“Transaction Summary” Hash

Ang susunod na bahagi ng data ay ang tinatawag kong “Transaction Summary” Hash.

Gaya ng pangalan, nagbibigay ito ng “buod” ng lahat ng transaksyon sa block na ipinahayag bilang isang string ng mga character.

Nang hindi pumapasok sa mga detalye, ang nangyayari ay lahat ng transaksyon sa block (na naka-highlight sa pula) ay inilalagay sa isang hash function at hinahash sa isang partikular na pagkakasunod at nagtatapos ka sa isang isang hash.

Merkle Root

 

Ang hash na ito ang ginagamit bilang “Transaction Summary” Hash.Merkle Root Example

Ang ibinibigay ng hash na ito ay isang unique na “fingerprint” batay sa lahat ng transaksyon na kasama sa isang block.

Nakatutulong ito para masiguro na ang mga transaksyon ay hindi nababago.

Ang “Transaction Summary” Hash na ito ay talagang kilala bilang “Merkle Root“. 🤓

Tandaan, isang maliit na pagbabago sa data ay lubos na makakapagpabago ng hash. Ibig sabihin, kung may magtangkang baguhin anumang transaksyon sa block sa hinaharap, magdudulot ito ng pagbabago sa “Transaction Summary” Hash at magiging lubos na iba mula sa orihinal na halaga na nasa Block Header.Merkle Root as Fingerprint

Basically, ang pagbabago sa transaksyon ay lilikha ng isang lubos na ibang “fingerprint” at hindi tatapat sa orihinal na “fingerprint”.

Ang pagbabagong ito ay magpapahiwatig sa lahat na ang isang transaksyon ay nabago.

Block Hash

Sa ngayon, ang Block Header ay naglalaman ng tatlong bahagi ng data:

  1. Timestamp
  2. Previous Block Hash
  3. “Transaction Summary” Hash

Ang susunod na hakbang ay ilagay ang mga Block Header data na ito sa isang hash function.

Magpuproduce ito ng isang random na numero na tinatawag na “Block Hash”.

(Bagaman mas tamang pangalan ay “Block Header Hash” dahil ito ay hash ng block header lang, hindi ng buong block.)

Katulad ng nabanggit na Previous Block Hash, isipin ang Block Hash bilang isang custom-generated na ID number na itatalaga sa candidate block.

Run block header through hash function
Bakit ginagawa ito ng miner?

Para maidagdag ng miner ang kanyang block sa blockchain, kailangan nitong makahanap ng Block Hash na tumutugon sa isang tiyak na kinakailangan.

Kung hindi nito matutugunan ang kinakailangan, hindi ituturing na valid ang block at hindi maidaragdag ng miner ang kanyang block sa blockchain.

Sa mas partikular, ang Block Hash ay dapat isang numero na nagsisimula sa isang tiyak na bilang ng mga zero.

Gaano karaming zero?

Nag-iiba-iba ito. Ang software ng Bitcoin system ang nagtatakda ng minimum na bilang ng mga zero na dapat magsimula ang Block Hash.

Noong una, ang kinakailangan ay para lang sa maliit na bilang ng mga zero, ngunit habang dumarami ang mga sumasali sa pagmimina, nagsimula ang Bitcoin software na mangailangan ng mas marami pang zero.

Bitcoin mining process without nonce

Ang isang miner ay dapat makabuo ng output (ang “Block Hash”) na nakakatugon sa threshold na itinakda ng Bitcoin software.

Ang “threshold” na ito ay nagsasaad ng bilang ng mga zero na dapat magsimula ang Block Hash.

Para kang naglalaro ng “limbo” dance.

Bitcoin mining is like a limbo dance

Ang mas mababa ang threshold, mas maraming zero ang kinakailangan.

Ang mas maraming zero na kinakailangan, mas mataas ang kahirapan para makahanap ng “tamang” Block Hash.

Dahil mas maraming nangungunang zero ay nangangahulugang mas kaunting posibleng solusyon, na nangangahulugang mas maraming oras ang kinakailangan para “mahanap” ang tamang Block Hash.

Mas mahirap makahanap ng halaga na nagsisimula sa tatlong zero tulad ng “000123…” kaysa sa sinusubukang makahanap ng halaga na may anim na zero tulad ng “000000123…

Narito ang kamakailang halimbawa ng isang aktwal na valid na Block Hash:

0000000000000000000586b367c292dfd274bf2e67575cf8b4d00735fc1df6ff

Pansinin kung gaano karaming zero ang simula nito.

Ang “tiyak na bilang ng mga zero” ay nagmumula sa tinatawag na “mining difficulty”. Ito ay awtomatikong inaayos pataas o pababa ng software na nagpapatakbo ng Bitcoin network. Ang kahirapan ay nagbabago batay sa dami ng mga minero. Kung mas maraming computer ang nagmimina, mas malaki ang kahirapan at mas maraming zero ang kailangan sa simula na nagpapahirap sa paghanap ng panalong nonce.

Ang isang Block Hash ay maaaring ipakahulugan bilang isang napakalaking numero at dapat mas mababa sa isang tiyak na threshold. Ito ang dahilan kung bakit ang mga block hash ay nagsisimula sa isang serye ng mga zero na sinusundan ng isang alphanumeric string. Ang ilang mga block ay may kasing dami ng dalawampung nangungunang zero, habang ang mga naunang block ay may kaunting walong zero. Ang bilang ng mga kinakailangang zero ay halos nagpapakita ng kahirapan ng pagmimina sa oras na nailathala ang block.

Ano ang mangyayari kung ang Block Hash ay hindi magsimula sa kinakailangang bilang ng mga zero?

Kaya, ang block ay hindi maaaring maidagdag sa file (ang “blockchain”).

Sa kabutihang-palad, ang miner ay maaaring makapag-subok ng maraming beses.

Ngunit kung ang isang miner ay tumakbo lang sa Block Header na naglalaman ng Timestamp, Previous Block Hash, at “Transaction Summary” Hash sa hash function muli, ito ay palaging makakakuha ng parehong resulta.

Kailangan ng miner na baguhin ang data sa ilang paraan bago subukang i-hash muli ang Block Header.

May paraan ang Bitcoin!

Ang Nonce

Sa Block Header, mayroong karagdagang field na tinatawag na “nonce” (light blue box)

Block header contains a nonce

Mayroong espesyal na bahagi ng Bock Header na maaaring punan ng mga miner ng anumang numero.

Ang miner ay malayang maglagay ng anumang numero na nais nito.

Ang nonce ay ganap na hiwalay sa mga transaksyon sa block. Ang tanging layunin nito ay upang payagan ang mga miner na punan ito ng isang numero, at baguhin ang numero kung ang Block Hash ay hindi nakakatugon sa kinakailangan na nagsisimula sa isang tiyak na bilang ng mga zero.

Sa pamamagitan ng paggamit ng nonce, maaaring manipulahin ng isang miner ang output ng hash function para “hulaan” ang nais na output.

Dahil hindi nababago ang mga ibang bahagi ng data sa Block Header, ang tanging bahagi ng data na puwedeng baguhin ay ang nonce.

Kaya kung ang unang pagtatangka ng hashing ng Block Header ay nabigo, binabago ng miner ang halaga ng nonce.

Maaari mong isipin ang prosesong ito na parang sinusubukan mong hanapin ang kombinasyon ng isang combination padlock.

Combination Lock

Walang shortcut kapag sinusubukang hanapin ang kombinasyon ng mga numero na magbubukas nito. Kailangan mong subukan ang bawat posibleng kombinasyon hanggang sa mapagtanto mo ang tamang isa by chance.

Kailangan mong hulaan nang paulit-ulit hanggang sa magtagumpay ka!

At tulad ng napakadali at mabilis na suriin na ang kombinasyon ng lock ay tama (ito ay nagbubukas o hindi), napakadali at mabilis para sa miner, at para sa iba pang mga node pagkatapos, na suriin na ang nonce ay talagang ang tama.

Ang miner ay nakikipagkumpitensya rin laban sa iba pang mga miner. Ang unang miner na makahanap ng nonce na nagreresulta sa isang valid na Block Hash ay binibigyan ng karapatang idagdag ang kanyang block sa blockchain at ginagantimpalaan para dito.

Halimbawa, sabihin natin na ang Block Hash ay kailangang magsimula sa hindi bababa sa apat na zero.

Ang tanging paraan upang makahanap ng Block Hash na may kinakailangang bilang ng mga pangunahing zero ay random na pumili ng isang nonce na halaga at ipatakbo ang Block Header sa hash function.

Sa senaryong ito, nagsisimula ang miner sa “0” para sa nonce value (light blue box).

Nonce is 0

Kung hindi iyon makapagresulta sa nais na resulta, ang tanging magagawa ng mincer ay subukan ulit gamit ang ibang nonce.

Binabago ng miner ang nonce, pagkatapos ay nagsisimula muli hanggang sa makahanap ito ng Block Hash na may hindi bababa sa kinakailangang minimum na bilang ng mga zero. Sa kasong ito, apat na zero.

Tandaan, kahit na maliit lang ang ginawa mong adjustment, sa isang hash function, kahit ang pinakamaliit na pagbabago ay magreresulta sa ganap na magkaibang resulta.

Kaya’t ang unang pagtatangka ng miner ay gamitin ang numero “0” sa nonce. Ipinatakbo ito sa Block Header sa hash function at tinitingnan kung nagsisimula ang Block Hash sa apat na zero.

Tulad ng nakikita mo, ang Block Hash ay nagsisimula lamang sa dalawang zero kaya HINDI nito natutugunan ang kinakailangan upang maidagdag ang block sa blockchain.

Kung hindi valid ang output, patuloy na sumusubok ang miner gamit ang iba’t ibang nonce values.

Dahil hindi gumana ang halaga ng “0”, maaaring baguhin ng miner ang halaga ng Nonce sa “1” (light blue box) at pagkatapos ay ipatakbo muli ang Block Header sa hash function.

Nonce changed to 1

Tulad ng nakikita mo, ang Block Hash ay nagsisimula sa walang zero kaya hindi rin ito gumagana.

Dahil hindi gumana ang halaga ng “1”, maaaring baguhin ng miner ang halaga ng Nonce sa “2” (light blue box) at pagkatapos ay ipatakbo muli ang Block Header sa hash function.

Nonce changed to 2

Sa kasong ito, ang Block Hash sa wakas ay nagsisimula sa apat na zero at natutugunan ang kinakailangan.

Tagumpay na resulta ng Block Hash! 🎉

Tulad ng nakikita mo, hindi mahuhulaan kung aling nonce ang magpuproduce ng Block Hash na may tamang bilang ng mga zero, kaya’t patuloy na nag-eeksperimento ang miner sa iba’t ibang nonce upang mahanap ang tamang halaga.

Ang mga miner ay maaaring magmina sa loob ng mahabang panahon na walang katiyakang makakahanap sila ng tamang nonce. Karamihan sa kanila ay hindi kailanman makakahanap!

Ang nonce ay ginagamit bilang isang counter, kung saan ang halaga nito ay patuloy na idinagdag hanggang sa makahanap ito ng tamang Block Hash o may ibang miner na makakahanap nito.

Para itong laro ng paghuhula ng numero!

Sinusubukan mo lang makahanap ng hash na nagsisimula sa isang tiyak na bilang ng mga zero sa pamamagitan ng pagbabago ng halaga ng nonce.

Ginagawa ito ng mga miner nang paulit-ulit….UMAASA na magreresulta ito sa isang Block Hash na nakakatugon sa mga pamantayan.

Mas malakas ang kanilang mga computer, mas maraming “hulaan” ang magagawa nila.

Ang prosesong ito ng “paghuhula” ay kilala bilang mining.

Ang “nagwawaging” miner ay ginagantimpalaan ng isang nakatakdang bilang ng bitcoin (plus transaction fees) na tinatawag na “block reward.”

Isang miner ang nananalo ng block reward halos bawat 10 minuto.

Block Reward

Dahil ang mga miner ay naglalaan ng maraming oras at enerhiya upang “hulaan” ang tamang nonce at i-confirm ang mga transaksyon sa Bitcoin blockchain, ginagantimpalaan sila ng Bitcoin software para sa kanilang pagsisikap sa pamamagitan ng:

  1. Bagong likhang bitcoin Kapag ang isang miner ay nagko-confirm ng mga transaksyon, ang mga ito ay binubuo sa isang block at idinadagdag sa Bitcoin blockchain. Para sa bawat bagong block na idinaragdag sa blockchain, bagong bitcoins ang binabayaran sa miner. Ito ay kilala bilang block subsidy. Ang tiyak na dami ng bitcoins ay batay sa isang iskedyul ng pagkakaloob na tinutukoy ng protocol sa oras ng paglikha ng block. Simula Abril 20, 2024, ang bagong pagkakaloob ay 3.125 BTC bawat block, kasunod ng pinakabagong event ng halving. Ang susunod na halving ay nakatakdang mangyari sa paligid ng Abril 2, 2028, kung saan mababawasan ang block reward sa 1.5625 BTC bawat block.
  2. Transaction fees. Kapag ang mga tao ay nagta-transaksyon gamit ang bitcoin, nagbabayad sila ng bayad sa mga miner upang higit pa silang hikayatin na i-confirm ang kanilang transaksyon. Kapag ang isang miner ay nagko-confirm ng isang bundle ng mga transaksyon, kinokolekta rin nito ang lahat ng mga bayad mula sa bawat indibidwal na transaksyon.

Ang pagmimina ay isang monotonous at paulit-ulit na proseso:

Bitcoin Mining Process

Kunin ang Block Header kasama ang nonce, i-hash ito, tingnan kung ang hash ay nagsisimula sa isang tiyak na bilang ng zero, at kung hindi, ulitin ang proseso sa ibang nonce.

Inaantok na ako sa pag-iisip pa lang nito. 😴

Kaya kapag nabasa mo o narinig mo na ang pagmimina ay may kinalaman sa ‘“solving complex mathematical problems”, ngayon alam mo na hindi iyon tamang paglalarawan.

Walang kumplikado sa pagmimina!  Ang proseso mismo ay medyo simple. Sinusubukan mo lang hulaan ang tamang numero sa lalong madaling panahon o kasing bilis ng posibleng ikaw ang UNANG miner na makakahula ng tama para ang iyong candidate block ay ang maidaragdag sa blockchain. Iyon na iyon!

Ang “Hash rate” ay nagpapahiwatig ng “guessing power” ng isang mining computer. Kung mas maraming hash ang mahuhulaan mo kada segundo, mas mataas ang iyong hash rate. Halimbawa, 1 trillion (1,000,000,000) na hulaan kada segundo ay katumbas ng hash rate na 1 terrahash (TH/s).

Dahil lang simple ang proseso, hindi ibig sabihin ay madali ito. Kaya nga tinawag itong “mining”. Parang naghuhukay ka ng tamang numero na nangangailangan ng maraming pagsisikap, katulad ng aktwal na pagmimina sa totoong mundo.

Ngayon na nakahanap na ang miner ng nonce upang makabuo ng isang Block Hash na tumutugon sa mga kinakailangan (nagsisimula sa hindi bababa sa 4 na zero), ang block ay naidagdag na sa kopya ng miner ng file (ang “blockchain”).

Tandaan mo kung paano ang asul na block ay ang pinaka-kamakailang block sa blockchain ng minero? Hindi na ngayon.

Dahil nakahula ng tamang nonce ang miner, nakapaglagay ito ng block sa blockchain (na pininturahan ng berdeng kulay).

Block added to blockchain

Kaya sa isang mataas na antas, ang file sa computer ng miner ay na-update (tinukoy sa berde).

Miner's blockchain updated

Pagkatapos, ang node ay magpapadala ng block na ito sa mga kalapit na node na direktang konektado dito.

Susuriin ito ng mga node, i-vavalidate ito, at titiyakin na ang Block Header ay gumagawa ng Block Hash na tumutugon sa mga pamantayan. Sa kasong ito, ang Block Hash ay kailangang magsimula sa apat na zero.Bitcoin miner propogates new block

Ia-update ng mga node na ito ang kanilang file (ang “blockchain”) sa pamamagitan ng pagdaragdag ng block sa file.

Ang KANILANG file ay maa-update at magiging parehong bersyon ng file ng nanalong minero (berde na file).

Ang lahat ng mga transaksyon sa kanilang mempool na bahagi ng winning block na ito ay lilipat mula sa “fresh” (o “unconfirmed”) patungo sa “confirmed” na status at permanenteng idagdag sa file.

Ang anumang salungat na mga transaksyon ay aalisin.

Dahil sa proseso ng pagmimina, tanging ang purple na transaksyon ang makakapasok sa blockchain.Blockchain synced across network

Pagkatapos ang mga node na ito ay ipapasa ang block sa iba pang mga node.Nodes will pass on the block to other nodes.

Kapag ang bagong block ay tinanggap ng karamihan ng mga miner, lahat ng mga miner ay magsisimula muli at lilikha ng isang bagong candidate block at ang proseso ng pagmimina ay nauulit.

Ang pagmimina ay kumikilos bilang isang sorting mechanism para sa mga transaksyon sa iba’t-ibang computer, kung saan ang “mined” blocks ay ang may huling salita kung ano ang dapat ay kasama sa blockchain.

Ang Block Hash mula sa bagong likhang block na ito ay gagamitin na ngayon ng mga miner para sa “Previous Block Hash” sa kanilang mga candidate blocks.

Newly created block will now be used by miners

Ang Block Hash ay kumikilos bilang “chain”.

Ang mga minero ay dapat na ngayong isama ang Block Hash ng nakaraang block sa bagong block na kanilang ginagawa.

Miner include new block hash in new block

Halimbawa, ibig sabihin nito na upang mina ang block 101, kailangang malaman ng mga minero ang hash ng block 100.

Hanggang ang block 101 ay namina, ang block 102 ay hindi maaaring minahin.

Piliting tutukan ng mga minero ang block 101 na kung saan kasama ang hash ng block 100. Walang minero ang maaaring mag-skip ahead.

Ngunit sa halip na bawat block ay magkaroon ng “block number”, bawat block ay tumutukoy sa nakaraang block sa pamamagitan ng kanyang Block Hash.

Nangangahulugan ito na ang bawat block ay konektado sa isa’t isa at ito ang bumubuo ng isang “chain of blocks” na kilala bilang blockchain.

Ang “chain of blocks” na ito ay hawak-hawak hindi ng mga block number, kundi ng block hashes.

Bakit Hindi Mo Pwedeng Dayain ang Bitcoin

Sabihin natin lahat ay nagtatrabaho sa block 101.

Ngunit ang isang minero ay nais baguhin ang isang transaksyon sa block 80.

Kailangan nitong gawin ang kanyang mga pagbabago at muling gawin ang lahat ng mga pagkalkula para sa mga block 80-100 AT pati na rin ang block 101.

Iyon ay 21 na block ng mahal na computing!

Hindi lang iyon, ngunit kailangang gawin ito ng minero ang lahat ng iyon bago matapos ng ibang mga minero sa Bitcoin network ang kasalukuyang block (block 101) na kanilang ginagawa. Ito ay talagang imposible.

Mahirap makalusot sa pagbago ng anumang mga transaksyon na bahagi na ng blockchain.

Iyon ang ibig sabihin kapag ang mga blockchain ay inilarawan bilang immutable.

Proof-of-Work (PoW)

Ang proseso ng pagmimina ay madalas na tinutukoy bilang isang “Proof-of-Work” o PoW.

Ang PoW ay kilala bilang ang “consensus mechanism” na ginagamit ng Bitcoin upang makuha ang lahat ng mga node na sumang-ayon sa “opisyal” na kopya ng Bitcoin blockchain. Ito ang paraan kung paano nakakamit ng Bitcoin ang isang consensus nang walang pangangailangan para sa pag-aayos ng hindi pagkakaintindihan o interbensyon mula sa isang sentral na awtoridad.

Ang terminong “proof-of-work” ay tumutukoy lamang sa katotohanan na nangangailangan ito ng “trabaho” upang makahanap ng isang block hash na mas mababa sa isang tiyak na threshold. At kapag nagawa mo, maaari itong patunayan ng kahit sino na nagbibigay ng “katibayan”.

Ang proseso ng “paghula ng isang nonce” at pagkatapos ay pagpapatakbo ng block header sa hash function ay ginagamit bilang isang paraan upang patunayan na isinagawa mo ang isang kinakailangang halaga ng “trabaho” sa iyong block.

Ang unang minero na makapag-generate ng valid na hash ay pinapayagan na magdagdag ng bagong block sa blockchain at makakatanggap ng gantimpala ng bitcoins.

Kung may biglang maraming miner na sumali sa Bitcoin network, ang PoW ay mag-a-adjust upang gawing mas mahirap makahanap ng valid na block hash. Kung ang tumaas na kahirapan ay nagtataboy sa masyadong maraming minero at huminto sila sa pagmimina, ang kahirapan ay babawasan upang gawing mas madali ang pagmimina.

Ang prosesong ito, na kilala bilang difficulty adjustment, ay nangyayari halos bawat dalawang linggo, at tinitiyak nito na ang mga bagong block ay idagdag sa blockchain halos bawat 10 minuto, kahit gaano pa man karami ang mga minero na sumali o umalis sa network.

Ang mga adjustment sa kahirapan ay ginagawa batay sa bilis kung saan ang mga minero ay gumagawa ng mga bagong block.

Sa pamamagitan ng pag-aayos ng kahirapan ng pagmimina, matitiyak ng Bitcoin na ang mga bagong bitcoins ay nilikha sa isang predetermined na rate, anuman ang dami ng computing power na sumasali sa network.

Mahalaga ang pag-aayos ng kahirapan dahil tinitiyak nitong hindi makakakita ng masyadong marami sa supply ng bitcoin sa sobrang bilis ang mga minero.

Ang espesyal na computer hardware at kuryente na kinakailangan upang magmina ay nangangahulugan din na ang pag-atake sa network ay napakamahal. Tinitiyak nito ang seguridad at integridad ng Bitcoin blockchain.

Sino man na may sapat na computing power upang atakihin ang network ay mas makakabuting magmina ng matapat at kumita ng block reward (bagong bitcoins at transaction fees).

Interesado sa pag-aaral ng higit pa tungkol sa mga teknikal na aspeto ng Bitcoin? Ang learnmeabitoin.com ay nagbibigay ng isang kahanga-hangang madaling sundan na gabay upang matulungan ang mga tao na maunawaan kung paano gumagana ang Bitcoin.

Buod

Bongga! Alam mo na kung paano gumagana ang “mining” sa Bitcoin!

  • Ang mga minero ay naghahanap ng isang katanggap-tanggap na hash na magiging “Block Hash” sa pamamagitan ng pagpili ng nonce, pagpapatakbo ng hash function, at pagsusuri sa output.
  • Kung ang hash ay walang tamang dami ng mga nangungunang zero, binabago ng mga minero ang nonce, ipinapatakbo ang hash function, at suriing muli.
  • Kapag ang isang minero ay sa wakas ay mapalad na makahanap ng nonce na gumagana, at “manalo”, ang block ay ipinapadala sa ibang mga node (kabilang ang iba pang mga minero) sa Bitcoin network, bawat isa sa kanila ay maaaring magpatakbo ng hash function gamit ang nonce ng nagwawaging minero, at suriin na ito ay gumagana.
  • Kung ang solusyon ay tinanggap ng karamihan ng mga node, ang block ay idinadagdag sa blockchain at ang nagwawaging minero ay makakatanggap ng block reward.
  • Lahat ng mga minero ay “nagre-reset” at nagsisimulang magtrabaho sa isang bagong candidate block, gamit ang hash ng kamakailang mininang block bilang isang sanggunian sa kanilang Block Header (bilang “Previous Block Header”).
  • Ang prosesong ito kung saan ang mga minero ay sinusubukan “hulaan” o hanapin ang tamang nonce ay kilala bilang “Proof-of-Work” (PoW).

Ngayon na natutunan natin ang tungkol sa mga minero at pagmimina, i-update natin ang ating mapa ng Bitcoin system:

Bitcoin as a System (Mining Added)