Mambabasa: baguhan sa kada umpisang paksa, advanced sa mga detalye.
Matapos nating pag-usapan ang pagkakaroon ng Bitcoin, simpleng pagpapasahan nito, at pag-aralan nang may kalaliman ang cryptography, maaari na nating siyasatin ang mga transaksyong electronic sa higit pang mapanuring paraan.
Noong mababa pa ang halaga ng Bitcoin kumpara sa fiat na salapi, nakakapagtransaksyon pa ang mga tao gamit ito para sa maliliit na bagay. Isang mahalagang parte ng kasaysayan ay ang Bitcoin Pizza Day: Mayo 22, 2010; Kung kailan si Laszlo Hanyecz ay nagbayad ng 10,000 Bitcoin kay Jeremy Sturdivant para sa 2 malalaking Papa John’s pizza. Ito ang unang nakilalang pakikipagtransaksyon sa Bitcoin para sa kalakal o paninda.
Nabanggit nung ikalawang kabanata na ang anyo ng Bitcoin ay nasa isa-isang Unspent Transaction Output (UTXO). Sa kabanatang ito, pag-uusapan natin ang paggalaw ng mga UTXO sa pang-araw-araw na pagpapasahan ng Bitcoin at paano una nakabuo ng UTXO.
Unspent Transaction Output (UTXO)
… para kang kukuha ng salapi, tutunawin o ipoproseso, tapos hahatiin sa bayad, sukli, at transaction fee…
Lahat ng transaksyon sa Bitcoin, maliban sa coinbase transaction na pag-uusapan saglit, ay gumagamit ng unspent transaction output. Nakasaad sa loob nito ang halaga ng Bitcoin, at ang kondisyon na syang magkakandado rito para sa nararapat na may-ari. Ang lahat ng UTXO ay napapabilang sa UTXO set, na sinusubaybayan ng mga full nodes.
Sa tipikal na transaksyon, kukuha ng magagamit na UTXO, para gumawa ng bagong UTXO. Ang nasa input ng mga transakayon ay pagtuturo sa mga UTXO na bubuksan ang kandado para magamit sa iba ang Bitcoin. Kapag nangyari iyon, ang UTXO ay magiging spent transaction output (STXO), na tatanggalin na sa UTXO set. Ang mga nasa output naman ang mga bagong UTXO na idadagdag sa set. Ang mekanismong ito ay nangangailangang gastusin ang anumang UTXO na kukunin. Maglalaan nalang ng bagong UTXO pabalik sa pinanggalingang pitaka kung sakaling may sukli.
Kapag gumagamit tayo ng pisikal na salapi, nagkakaroon ng pagsasama-sama ng iba-ibang denominasyon para mabuo ang dapat bayaran. Kung kailangan, nagkakaroon din ng panunukli. Kapag nagbabayad ka ng buo, konti lang ang iaabot mong piraso ng salapi, at minsan, mas maraming piraso ang natatanggap mo pabalik – mas mababa lang ang denominasyon. Hawig ito sa paggamit ng mga UTXOs, pero kulang pa ang metapora.
Hindi lang kasi sya parang magbabayad ka at manunukli. Sa halip, para kang kukuha ng salapi, tutunawin o ipoproseso, tapos hahatiin sa bayad, sukli, at transaction fee. Ang bayad o sukli ay malaki o maliit na salaping bubuuin, depende sa transaksyon. At may butil na natitira bilang transaction fee, na kokolektahin ng mining node.
Bago tayo umusad, tignan sa baba ang pagsasalarawan ng daloy ng transaksyon para sa makasaysayang Block 170. Ipinapakita rito ang daloy ng paggawa ng bagong 50 Bitcoin, at isang transaksyon kung saan nagpasa ng 10 Bitcoin at may sukli na 40 Bitcoin. Makikita mo rin ang interpretasyon ng mga pinag-usapan natin sa mga naunang Kabanata ukol sa wallets, private at public keys, at signature.

Coinbase Transaction
… coinbase, kung saan walang halaga ng Bitcoin ang nakasaad.
Ang pinakaunang ginagawang transaksyon sa isang block ay ang coinbase transaction. Ang mga node na nagmimina (mining node) ng Bitcoin ay gumagawa ng coinbase transaction para sa kanilang pabuya sa pagtatrabaho ng pag-aayos ng mga transaksyon sa block.
Sa mga naunang blocks ng Bitcoin, coinbase transaction lang ang laman, kasi sobrang kaunti pa ang may alam at wala nang ibang kasali sa network maliban kay Satoshi Nakamoto. Ang genesis block (pinakaunang block) ay nabuo nung Enero 3, 2009. Mula rito, paggawa lang ng block reward na 50 na bagong mga Bitcoin kada ~10 minuto ang nangyayari. Naipon ang mga Bitcoin sa iisang nagmimina, kaya wala pang naipamigay na transaction fee.
Noong Enero 9, 2009 unang nai-release ang open-source na Bitcoin client. Tsaka palang pwedeng sumali ang iba sa network. Ang pinakaunang transaksyon kung saan ginasta ang naipong Bitcoin ay naganap sa Block 170. Pinasahan ng 10 Bitcoin ni Satoshi Nakamoto si Hal Finney noong Enero 12, 2009. At dito, wala pang fees na ginamit! Pwede talaga ito sa Bitcoin network. Pero syempre iba na ang lagay ngayon. Imposible nang may magsama ng transaksyon mo sa block kung hindi ka magbabayad ng transaction fee. At lagi nang kombinasyon ng bagong Bitcoin at mga transaction fees ang output ng coinbase transaction.
Sa ibabaw ng pag-aayos ng block ay ang kompetisyon gamit ang Proof-of-Work algorithm para ang hash ng block header ay may katumbas na numerong kaparehas o mas maliit ang halaga sa target. Ang Proof-of-Work algorithm ay nangangailangan ng paggamit ng hashing algorithm. Kaya kung halimbawa eh pantay-pantay ang lakas ng mga mining nodes, walang kasiguraduhan kung sino ang unang makakakuha ng target. Kung sinumang minero ang magiging matagumpay, sya ang mangongolekta ng pabuyang nakasaad sa kanyang coinbase transaction. Paano ang ibang gumawa ng coinbase transaction? Mawawalang bisa ito at susubok nalang ang mga natalong minero sa susunod na block.
Pangkalahatang ideya ng pagmimina ng block reward
Ang dami ng bagong Bitcoin na bubuuin (block reward) ay nakadepende sa block height. Malalaman kung pang-ilang halving na ang nakalipas base sa block height – ang dami ng bloke sa blockchain. Ang bilang ng halving ay may karampatang bagong Bitcoin.
Bitcoin halving ang tawag sa pangangalahati ng block reward. Nabanggit sa unang kabanata na ito ay nagaganap kada 210,000 blocks, o halos kada 4 na taon.
Sa unang 210,000 blocks (0 halving), 50 ang binuong Bitcoin na pabuya. Sa blocks 210,001 – 420,000 (1 halving), 25 Bitcoin, atbp. Sa panahong isinulat ang kabanatang ito, nasa loob na ng 630,001 – 840,000 ang block height – ikatlong halving na. Kaya ang block reward ay 6.25 Bitcoin.
Hanggang 64 na halvings lang ang pwedeng maganap. Matapos nito, puro transaction fees nalang ang makukuhang pabuya ng mga nagmimina. Subalit dahil ang 1 Satoshi ay 1/100,000,000 ng Bitcoin, hanggang ika-32 na halving lang mayroong block reward.
Paano ba ito natakda? Binary right shift kasi sa halip na division ang operasyon ng pagkuha ng block reward gamit ang bilang ng halving. Ang 50 Bitcoin na 5,000,000,000 satoshis ay may 33 bits (100101010000001011111001000000000). Bawat tanggal ng dulong bit (ito ang binary right shift), ay katumbas ng pangangalahati ng halaga ng block reward. Maaari mo itong iberipika sa kahit anong decimal to binary converter. Matapos ang 32 halvings, 1 bit nalang ang matitira, na syang 1 Satoshi. Sa pag right shift ng ika-33 halving, wala nang matitirang bit. Kaya ayun na ang katapusan ng block reward.
Magkakaroon kaya ng pagbabago sa code para maglaan pa ng mas maliit na dibisyon ng Bitcoin? Panahon ang makapagsasabi.
Istraktura ng Coinbase Transaction
Coinbase
Ang input sa coinbase transaction ay ang coinbase, kung saan walang halaga ng Bitcoin ang nakasaad. Sa katunayan, kahit ano ang pwedeng laman nito. Ang pagsuri ng ilang halvings mula sa halaga ng block height naman kasi ang pagbabasehan kung ilan ang gagawing bagong Bitcoin.
May naumpisahang istilo ng laman ng coinbase na ginaya na ng mga sumunod na miners. At nung naglaon ay may pamantayan o standards nang isinaad para sundin ng mga miners na laman ng coinbase, gaya ng nasasaad sa BIP-034 para sa version 2 blocks (pataas). Mula rito isinama na ang block height sa unang bytes ng coinbase para kakaiba ang hash ng bawat transaksyon. Pero hanggat may sobrang espasyo pa, maaari itong lagyan ng arbitraryong data ng sinumang may gusto.
Tignan halimbawa ang coinbase transaction na inilalarawan naman kapag gumamit ka ng Bitcoin block chain explorer, gaya ng https://blockstream.info. Ang unang larawan ay coinbase ng Block 170. Ang sumunod naman ay coinbase ng Block 777777, na pinili natin dahil lang espesyal ito sa numerology. Punahin ang Scriptsig (ASM) sa Coinbase ng dalawang halimbawa. Makikitang mas simple ang nasa sinaunang block.


Siyasatin nating bahagya ang pagkakaiba ng coinbase nila. Ang mga susunod na ilustrayson ay ang inayos na detalye ng block headers ng blocks 170 at 777777, na makikita sa parehas na block explorer.

Ang nilalagay sa mga sinaunang bloke gaya ng 170 ay ang bits na pinapakita sa header, pero pabaliktad. Bakit? Ang bits sa block header 0x1d00ffff (0x – hexadecimal na 1d00ffff) ay naka Big Endian (most significant byte first). Samantalang sa Scriptsig ay naka Little Endian (least significant byte first): ffff001d pagtapos ng OP_PUSHBYTES_4. Hindi na natin palalawakin muna, pero ang bits (tinatawag na nBits sa Bitcoin core) ay representasyon ng target ng Proof-of-Work.

Ngayon, pansinin na sa Block 777777 hindi nilagay ang bits o anumang laman ng header sa coinbase. Pero tignan natin ang isang data sa Scriptsig (ASM). Sumunod sa OP_PUSHBYTES_3 ay 31de0b
. Ito ay naka Little Endian na numerong hexadecimal na 0bde31. Na kapag ginawang decimal ay: 777777 – o ang block height! Ito ang halimbawang resulta ng pagsunod sa BIP-0034, kung saan ang block height ang unang data sa coinbase. Ang mga sumunod ay extra nonce at mga arbitraryong data. Habang tumataas kasi ang difficulty, hindi na sapat ang espasyo sa block header para maabutan ang target. Hindi na sapat ang pagbago lang ng “nonce” (number used only once). Kaya sa coinbase data pwedeng ilagay ang ibang mga numero (“extra” nonce) na magpapabago ng resultang hash para makuha ang numerong pantay o mas maliit sa target.
Tumingin tayo ng ilang mga halimbawa ng arbitraryong data. Sa 777777 na coinbase, matapos ang 31de0b ay OP_PUSHBYTES_19 kung saan susundan ng hexadecimal na numerong 62696e616e63652f393939e4003b0217e5417b. Kapag pinadaan mo ito sa hexadecimal to ASCII converter, mabubunyag ang text na “binance”: binance/999ä;åA{. Hindi na natin sisiyasatin pa ang ibig sabihin ng mga numero na wala namang saysay ang kinalabasan na ASCII.
Ang pinakasikat na arbitraryong data sa coinbase ay galing sa genesis block. Tignan ang ilustrasyon sa baba.

Sa Scriptsig (ASM), matapos ang OP_PUSHBYTES_69 ay ang hexadecimal na numerong 5468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73. Na kapag ginawang ASCII ay: The Times 03/Jan/2009 Chancellor on brink of second bailout for banks. Ito ang pamosong ulo ng balita sa araw na iyon na nagsilbing time stamp ng genesis block at akmang mensahe na rin ng Bitcoin para sa mundong dumaranas ng financial crisis dahil sa sistema ng fiat na salapi.
Output (ng Coinbase Transaction)
O sya lipat na tayo sa output ng coinbase transaction! Sa Blockstream na ilustrasyon pa rin tayo tumingin. Dito ay nagsasaad ng dami ng bagong Bitcoin na binuo, kasama ang transaction fees. Isinasaad rin kung saang Bitcoin address ng miner tatanggapin ang kabuuang pabuya. Ang output na ito ay isa nang Unspent Transaction Output (UTXO).
Magandang isang sinauna at bagong block ang tinitignan natin. Makikita na sa Block 170, ang pabuyang 50 Bitcoin ay nakandado sa Public Key (P2PK) mismo, walang address. May mga ganitong istilo noon bago pa ang P2PKH. Sa block 777777, makikita na ang pabuyang 6.43403232 Bitcoin ay nakandado naman sa isang Script Hash (P2SH) at pinakita rin ang katumbas na address. Pero unang output (#0) lang iyon. May dalawa pang output (#1 & #2) na OP_RETURN at walang Bitcoin na laman. Ang dalawang ito ay nasa klase ng output na hindi magagasta: data recording output.
Para saan ito? Ang block chain kasi ay maaaring lagyan ng arbitraryong data rin sa transaction output, hindi lang sa coinbase. Dahil sa seguridad ng Bitcoin network, ang arbitraryong data ay maaaring gamiting ebidensya o kontrata na hindi madadaya. Ang OP_RETURN ay naging kompromiso ng magkabilang kampo: (a) ang mga gustong gamitin ang Bitcoin block chain para sa ibang bagay tulad ng mga pruweba atbp., at (b) ang mga ayaw ng ganun, na ang block chain ay para sa mga transaksyon lang ng pera (Bitcoin). Bago magkaroon ng data recording output, ang ganitong klaseng output ay UTXO rin, na itatago sa UTXO set, pero mananatili lang doon dahil hindi naman magagasta. Sa OP_RETURN, ang output ay mapapatunayang hindi nagagasta. Dahil dito, hindi na kailangan pang isama sa UTXO set. Kahit papano, matitipid ang memorya para sa UTXO set. Yun nga lang, nakakadagdag pa rin ng storage space sa block chain.
Sa pagitan ng coinbase at ng UTXO ay ang kalkulasyon ng pabuya. Nabanggit na ang kalkulasyon ng block reward.
Transaction fees
Ang transaction fees naman ay ang diperensya ng lahat ng Bitcoin na nasa input ng mga transaksyon sa block at ng lahat ng Bitcoin na nasa output.
Total fees = Sum (Inputs) – Sum (Outputs)
Pagkatapos, ipagsasama ang block reward at transaction fees bilang halaga ng Bitcoin na pabuyang isasaad sa output.
Sa block 170, nabanggit na walang transaction fee. Sa block 777777, kung ang block reward ay 6.25, ang transaction fee ay 0.18403232 kaya ang kabuuang pabuya ay 6.43403232 Bitcoin. Dahil mas mahal na ang Bitcoin kumpara noon, mahalaga na ang karagdagang pabuyang yan kahit pawang maliit sa paningin.
Balikan lang natin ang pisikal na paghahalintulad ng Bitcoin sa sitwasyon ng block rewards. Ang bagong Bitcoin ay manggagaling sa enerhiyang ginamit ng lahat ng kasapi sa pagmimina, subalit sa isang miner lang ilalaan. Samantala, ang mga maliliit na butil ng transaction fees na ihiniwalay ng iba-ibang taong nagtranskayson, ay tutunawin kasama ang bagong Bitcoin na namina para magkaroon ng kabuuang Bitcoin na mapupunta sa nanalong mining node.
Tipikal na Transaksyon
Nabanggit sa halimbawa sa Kabanata 4 ang itsura ng user interface ng wallet app kapag si Bukoy ay nagpasa kay Caloy.


Sa wallet ni Bukoy, may makikita na transaction fee. Makikita rin nya ang address ng wallet ni Caloy kapag ini-scan ito (na pwede rin nyang i-copy-paste). Pag natanggap na ni Caloy ang Bitcoin, maaaring makita nya ang pinanggalingang address. Idetalye pa natin ang nagaganap sa ganitong transaksyon.
Manghiram uli tayo ng ilustrasyon sa block explorer para sa 2 halimbawang blocks 170 at 777777. Ang una ay ang makasaysayang pinakaunang pagpapasahan ng Bitcoin sa pagitan ng 2 tao, na nasa block 170. Susunod naman ay isa sa maraming transaksyong nasa loob ng 777777.

Makikita na may input at output parehas. Sa kaso ng block 170, walang address na pinapakita, dahil P2PK ang output. Nakandado sa public key mismo ang Bitcoin. Ang unang output ay #0, na nagsasaad ng pagkandado ng 10 Bitcoin sa public key ng receiver. Ang ikalawa ay #1 na nagkandado ng 40 Bitcoin sa public key ng sender (sukli). Subalit may mga wallet na gagawan pa rin ng interpretasyon na address ang mga iyan. Susundin lang ang nabanggit sa Kabanata 4 na encoding para sa legacy address. Pero mas tamang hindi binigyan ng interpretasyong address sa blockstream.info.

Lipat naman ng tingin sa isang napiling transaksyon sa block 777777. Makikita na mas maraming nasasaad sa input, mas komplikado, na pag-uusapan natin maya-maya. Sa output naman, dalawang klase ng pagkandado ng Bitcoin ang naganap. Sa receiver, ang Bitcoin ay nakandado sa kanyang public key hash, isang P2PKH, kaya ang address ay legacy ang anyo (nag-uumpisa sa 1). Ang sukli naman ng sender ay nakandado sa kanyang witness script hash, isang P2WSH kaya mas makabago ang anyo (bc1).
Sa mga ilustrasyon ng wallet at ng block explorer, matutukoy ang pinanggalingan at pinagpasahang mga address. Syempre kita mo rin kung magkano ang binigay at natanggap. Makikita rin kung saang block ito nakasama at kailan.
Subalit alam mo ba na sa loob ng code, ay hindi ganito ang mababasa mo?
Nabanggit sa ikalawang kabanata na: Walang lamang Bitcoin ang pitaka mo. Subalit para makabuluhan ang gamit nito, ang pitaka mo ay hinahanap ang mga transaksyong nagsasaad na sa address mo huling ipinasa ang Bitcoin. Babaguhin nating bahagya ang deskripsyon na iyan. Sa halip na address na pinagpasahan, ang mga UTXOs na tumutugmang pwedeng gastusin ng mga private keys sa loob ng iyong wallet ang pinagsasama-sama para ipakita sa user interface ang halaga.
Ganun din ang konsepto ng block explorer. App din ito na sumisilip sa Bitcoin network at kinakalkula ang mga kondisyong nakasaad sa code para magpakita ng data na mas maiintindihan ng tao.
Ang mga matulunging apps na wallet at block explorer ay maiging madaling naiintindihan ng karaniwang tao, para mapadali ang pagsali sa ekonomiya ng Bitcoin network.
Balikan ang ipinakitang ilustrasyon ng daloy ng transaksyon sa block 170. At idadagdag na natin para sa diskusyon ang ilustrasyon naman para sa block 777777. Ipinakita sa mga ito na ang loob ng transaksyon sa block ay walang halaga ng Bitcoin sa input. Sa halip, tumawag ito ng nakaraang UTXO na pwede nang gastusin at maging STXO. Sa output naman, walang mga address. Sa halip, ang halaga ng Bitcoin ay kinandado sa hash ng public key o script (o sa lumang block, sa public key diretso).

Ang script ay maaaring komplikado o simple. At ang mga wallets ay nakalabas sa block. Dahil binibisita lang nila ang block chain para hanapin ang mga data na kailangang bigyang halaga sa harap ng tao. At pinapasa rin nila ang public key, o kombinasyong ng isa o maraming public keys at script, kapag kailangan na tumanggap ng Bitcoin. At sa kaso ng paggasta, ang signature/s na gawa ng private key.
Sa input ay makikita ang unlocking script. Ibig sabihin, ang solusyon sa locking script ng UTXO na gagastahin. Sa output naman ay makikita ang locking script, o kondisyon na magkakandado sa halaga ng Bitcoin. Dahil sa progreso ng Bitcoin code, maiging linawin pa natin:
- Locking script – magkakandado sa halaga ng Bitcoin para sa isang private key. Makakandado ito sa public key na nilikha mula sa private key na iyon. Sa mga sinaunang blocks, nabanggit na sa public key diretso ikinakandado. Kaya ang nakagawiang tawag sa locking script ay scriptpubkey. Sumunod na progreso sa consensus ay pagkandado sa hash ng public key (P2PKH). At sumunod ay para sa script hash ng mas komplikadong locking script (P2SH), gaya ng pangangailangan ng higit sa isang public key. At sa pagprogreso ng consensus gamit ang Segwit, ikakandado na sa witness-public key hash (P2WPKH) o witness-script hash (P2WSH). At sumunod na progreso pa ng segwit ay pagkakandado sa taproot script (P2TR).
- Unlocking script – solusyon sa locking script para matanggal ang pagkakakandado: para magasta ang Bitcoin. Nung una, ang digital signature na gawa ng private key lang ay sapat na. Kaya tawag dito ay scriptsig. Sa paglaon, solusyon sa komplikadong locking script, tulad ng pagbibigay ng higit sa isang signature, ang naging laman. At ng dumating ang SegWit, nakahiwalay na ang Witness na syang solusyon sa locking script. Nabanggit sa Kabanata 4 na ang Witness ay tawag rin sa solusyon ng isang problema sa kriptograpiya. Kaya sa segwit, wala nang unlocking script na nakalagay sa input. Pero matapos masaad ang input at output ng transaksyon, susunod ang witness kung saan nakalagay na ang isa o higit pang signatures na magpapatunay sa solusyon ng locking script.
Maganda ang nakita nating halimbawa na block 777777. Maipagsasama-sama natin ang natutunan sa Kabanata 4 at kabanatang ito. Sa coinbase transaction, ang UTXO ng pabuyang Bitcoin ay 6.43403232 na nakandado sa isang script hash. Pero sa inspeksyon ng pagdaloy ng Bitcoin na ito, ang script hash na iyon ay tumutukoy sa hash ng witness-public key hash. Ibig sabihin, isang private key ng wallet na sumusuporta sa Segwit, pero sa halip na P2WPKH ang gamit, ito ay nested segwit P2SH-P2WPKH. Kaya ang wallet ay may address na nag-uumpisa sa 3.
Sa napiling halimbawang transaksyon naman, ang 0.08850132 Bitcoin ay nakandado sa isang witness script hash, na UTXO sa loob ng isang transaksyon sa Block 777772. Ang witness script hash ay nanggaling sa script na 2 of 3 multisig. Ibig sabihin 2 sa 3 signatures ang kailangan. 2 sa 3 private keys ang gagawa ng signature, at mabeberipika ito ng 2 sa 3 public keys na naibahagi sa script.
Sa input ng transaksyong ito sa Block 777777, isasaad ang pagtatawag ng partikular na UTXO sa 777772. Tapos isasaad ang witness script. Ang witness na naglalaman ng signatures ay nakahiwalay sa input, ito ay dadaanan ng programa matapos masaad ang output.
Sa output ng transaksyon, nahati ang Bitcoin sa dalawa. Ang una, ay sa receiver na kung saan nakandado ang 0.04204000 sa public key hash. Kaya sa block explorer, pinapakita ang isang legacy address (nag-uumpisa sa 1). Ang sukli namang 0.04606132 ay nakandado sa witness script hash, na parehas ang kondisyon sa nireperensyang UTXO sa 777772. Kaya sa pananaw ng wallet at block explorer, ito ay bumalik sa parehas na address ng sender na P2WSH (nag-uumpisa sa bc1).
Ngayon, kapag pinagsama ang halaga ng 2 output na Bitcoin, kulang ng 0.00040000 para maging parehas sa halaga ng input. Iyon na ang transaction fee na isinaad ng sender sa kanyang wallet. Makakasama na ito sa pangkabuuang diperensya ng lahat ng input at output (total fees) na kokolekhatin ng miner ng block 777777.
Transaction fee sa wallet
Nabanggit na ang libreng transaksyon ay hindi na halos natatanggap ng mga miners. Supply at demand lang ang nagdidikta dito – mas marami nang kasali sa Bitcoin network eh. Kaya ang mga wallets ngayon ay may mekanismo nang pinapatupad sa pagkalkula ng transaction fee. Ito ay automatic na, at makakapili rin ang manggagamit kung mababa o mataas na fee ba ang ibibigay.
Ang mga transaksyon na hindi pa sinasama sa block ay nasa mempool. Ito ay ginagamit na memorya ng Bitcoin node na nagbabagu-bago ang laki dahil sa dagdag-bawas ng kandidatong transaksyon, parang UTXO set.
Sa website na ito: https://bitcoinfees.net/, ipinapakita ang pagtatantsa ng mga fees na satoshi/vbyte. Sinasabi rin kung gaano katagal mo aasahang tanggapin ng mga miners ang transaksyon depende sa halaga. Kapag sobrang baba, baka hindi na! Tandaan na ang pagkalkula ng wallet app ng fee ay depende sa laki ng data ng transaksyon, hindi sa laki ng halaga ng Bitcoin. Kaya ang mga komplikadong script, kahit maliit na Bitcoin lang ang usapan, ay malaki ang kakaining data. O kaya naman ang mga transaksyon na lilikom ng maliliit na Bitcoin sa maraming UTXO para sa input, ay gagamit ng mas malaking data kesa sa isang UTXO lang pero malaki naman ang halaga ng Bitcoin.
Ano ang vbyte? Ito ay virtual byte. Nagkaroon ng komplikasyon sa pagkalkula ng laki ng block dahil sa SegWit soft fork. Ayos lang, dumami naman kapasidad ng block eh. Dati, satoshi/byte ang pinapakitang pagtantsa ng mga fees. Pero ang binagong pagkalkula ng kapasidad ng block ay nagresulta sa pagkakaroon ng depinisyon ng virtual transaction size, kaya nagkaroon na ng unit na virtual byte. Basahin ang mga naturang depinisyon sa BIP-0141.
Uulitin lang natin na ang transaction fee sa mata ng miners ay diperensya ng lahat ng halaga ng Bitcoin sa inputs, at sa outputs. Kasi sa pinapasang data ng transaksyon, walang pagsasaad ng fee sa input o output. Napansin mo sa mga ilustrasyon kanina? Kaya ang mga wallet ay may sariling algorithm para sa nais mong fee, para lang sa pagkakaintindi mo. Pero ang ipapasa lang talagang data ay kandidatong transaksyon na may halaga ng bagong UTXO na sinisiguradong mas maliit kesa sa halaga ng tinatawag na UTXO sa input.
Bago tayo lumipat sa susunod na paksa, maglibang muna tayo sa ilang data na makikita sa Block 777777. Dahil ito ay ispesyal na numero, maraming mga nakakaaliw na mensaheng nakatago sa ilang transaksyon.
Unang halimbawa, may output legacy address na pinagbigyan ng 0.00777777 Bitcoin. Ang legacy address na ito ay nag-uumpisa sa 1Lucky. Mayroon ring OP_RETURN output, na kapag i-convert ang arbitraryong data sa ASCII ay: Allegory of Fortune: fortune favours the cyberpunk.

Sumunod naman na transaksyon ay may naunang OP_RETURN output na kapag i-convert sa ASCII ang arbitraryong data: EW Eddy & Lisa in Love since Block 605820 <3. Ang ikalawang output naman nito ay sukli pabalik sa sender na naghahalagang 0.00777777 BTC.

At ikatlong halimbawa, ang witness data ay pagkahaba-haba. Subalit kapag pinadaan mo sa hexadecimal to ASCII converter ang parteng ito:
2020202020202020202020202020202020202020202020202020202020202020202020202020200d0a2020202020292020202020292020202020292020202020292020202020292020202020292020200d0a202028202f28202028202f28202028202f28202028202f28202028202f28202028202f282020200d0a2020295c28292920295c28292920295c28292920295c28292920295c28292920295c28292920200d0a2028285f295c2028285f295c2028285f295c2028285f295c2028285f295c2028285f295c2020200d0a7c5f5f20202f7c5f5f20202f7c5f5f20202f7c5f5f20202f7c5f5f20202f7c5f5f20202f2020200d0a20202f202f2020202f202f2020202f202f2020202f202f2020202f202f2020202f202f202020200d0a202f5f2f2020202f5f2f2020202f5f2f2020202f5f2f2020202f5f2f2020202f5f2f2020202d204f7264696e616c506f657420200d0a2020202020202020202020202020202020202020202020202020202020202020202020202020206
Magreresulta sa:
) ) ) ) ) ) ( /( ( /( ( /( ( /( ( /( ( /( )\()) )\()) )\()) )\()) )\()) )\()) ((_)\ ((_)\ ((_)\ ((_)\ ((_)\ ((_)\ |__ /|__ /|__ /|__ /|__ /|__ / / / / / / / / / / / / / /_/ /_/ /_/ /_/ /_/ /_/ - OrdinalPoet

Iyan ay isang halimbawa ng ordinal. Maaaring pag-aralan natin sa susunod. Ito ay kontrobersyal na isyu ngayon sa Bitcoin, parang mga arbitraryong output bago mamungkahi ang OP_RETURN.