Matatandaang kasama ang timestamp, target at ang nonce sa istraktura ng block header. Ang target ay ang numero na naglilimita sa halaga ng block header hash na dapat makuha sa isang pagkakataon.
Alam na natin na ang cryptographic hash function na gamit sa Bitcoin ay one-way hash function. Sa isang direksyon lang sya madaling kalkulahin (input —> output). Ibig sabihin sa mining, mula sa halaga ng target, hindi agad makakalkula pabalik ang double-SHA256 para mahanap ang sapat na nonce. Kaya trial-and-error o paulit-ulit na hulaan ang magaganap. Ang nonce ang pinapalitan sa bawat iteration. At maraming iteration ang bubunuin para maabot ang target. Dito napupunta ang bulto ng Proof-of-Work.
Ano ang halaga ng target?
Ang target ay malaking numero, bilang 256 bits ang nakatakdang haba nito — singhaba ng block header hash.
Sa block header, hindi nilalagay ang aktwal na halaga ng target. Sa halip, representasyon nito ang isinasaad. Matatandaan na 4 bytes (32 bits) lang ang nakasaad na espasyo para dito. Tignan ang target na ito sa block 800,000:
0000000000000000000538940000000000000000000000000000000000000000
Ito ay naka hexadecimal kaya 64 digits iyan. At bawat 2 digits ay 1 byte ang katumbas.
Ikumpara natin sa block header hash ng naturang block:
00000000000000000002a7c4c1e48d76c5a37902165a270156b7a8d72728a054
Mas maliit ito, diba? 02 < 05 sa unang significant byte (na naka-hexadecimal).
Ang representasyon ng target ay hango sa formula na:
target = coefficient x 2 (8 x (exponent – 3))
May simpleng paraan kapag naka hexadecimal ang formula na iyan para makuha ang target bits na representasyon:
- Ang exponent ay kung gaano kalayo ang coefficient mula sa dulo
- Ang coefficient ay 3 bytes na precision mula sa totoong target value.
Kaya, ang representasyon ng target noong panahon ng block 800,000 na kasya sa 4 bytes ay: 17053894 (sa hexadecimal)
Kung saan:
- 17 ang exponent: bilangin mo kung pang-ilan ang 05 mula sa pinakakanan ng target. Ika-46 ang 0 at ika-45 ang 5. Ibig sabihin, ika 23 na byte ito. Ang 23 sa hexadecimal ay 17.
- 053894 ang coefficient: unang 3 significant bytes na makikita mula sa pinakakaliwa ng target.
Ang target ay maaring magbago, na pag-uusapan na natin sa susunod.
Kitakits sa ika-10.
Salamat sa litratong ito na minodipika para sa post: Photo by Tima Miroshnichenko: https://www.pexels.com/photo/grayscale-photo-of-shooting-target-stand-6091291/
