9. scriptPubKey
Ovo polje sadrži uvjete otključavanja gorenavedenih sredstava usmjerenih na neku bitcoin adresu. Ovo je polje usko vezano uz polje scriptSig (kao što je opisanu u člancima o Bitcoin skriptama). Zapisuje se u var_string big-endian formatu. Najčešće sadrži skriptu 76a914097072524438d003d23a2f23edb65aae1bb3e46988ac. Napisana je u skriptnom jeziku Bitcoina koji kad se deserijalizira kaže
DUP HASH160 <14> 097072524438d003d23a2f23edb65aae1bb3e469 EQUALVERIFY CHECKSIG
Detalji su opisani u člancima o Bitcoin skriptama. U ovo se polje prvo upisuje duljina skripte u bajtovima (u heksadecimalnom formatu) te zatim sama skripta.
Hex: "01000000
01
eccf7e3034189b851985d871f91384b8ee357cd47c3024736e5676eb2debb3f2
01000000
76a914010966776006953d5567439e5e39f86a0d273bee88ac
ffffffff
01
605af40500000000
19
76a914097072524438d003d23a2f23edb65aae1bb3e46988ac"
01000000
76a914010966776006953d5567439e5e39f86a0d273bee88ac
ffffffff
01
605af40500000000
19
76a914097072524438d003d23a2f23edb65aae1bb3e46988ac"
10. Polje lock-time
Polje koje se može koristiti za vremensko
zaključavanje transakcije. U slučaju da se transakcija može odmah
potrošiti, polje je prazno. Veličine je četiri bajta te se
zapisuje u little-endian formatu.
Hex: "01000000
01
eccf7e3034189b851985d871f91384b8ee357cd47c3024736e5676eb2debb3f2
01000000
76a914010966776006953d5567439e5e39f86a0d273bee88ac
ffffffff
01
605af40500000000
19
76a914097072524438d003d23a2f23edb65aae1bb3e46988ac
00000000"
01
eccf7e3034189b851985d871f91384b8ee357cd47c3024736e5676eb2debb3f2
01000000
76a914010966776006953d5567439e5e39f86a0d273bee88ac
ffffffff
01
605af40500000000
19
76a914097072524438d003d23a2f23edb65aae1bb3e46988ac
00000000"
11. Način potpisivanja transakcine (hashcode)
Ovom se zastavicom opsiuje kako će se transakcija
potpisivati. Gotovo u svim slučajevima ova zastavica predstavlja
sighash_all, odnosno potpisivanje svih ulaza i izlaza. Zastavica je
veličine osam bajtova zapisanih u little-endian formatu.
Hex: "01000000
01
eccf7e3034189b851985d871f91384b8ee357cd47c3024736e5676eb2debb3f2
01000000
76a914010966776006953d5567439e5e39f86a0d273bee88ac
ffffffff
01
605af40500000000
19
76a914097072524438d003d23a2f23edb65aae1bb3e46988ac
00000000
01000000"
01000000
76a914010966776006953d5567439e5e39f86a0d273bee88ac
ffffffff
01
605af40500000000
19
76a914097072524438d003d23a2f23edb65aae1bb3e46988ac
00000000
01000000"
14. Hashiranje transakcije
9302bda273a887cb40c13e02a50b4071a31fd3aae3ae04021b0b843dd61ad18e.
15. Potpisivanje transakcije
Transakcija se sada potpisuje privatnim ključem primatelja. Za to se koristi algoritam ECDSA, odnosno digitalni potpis zasnovan na eliptičkoj krivulji. Taj se potpis zatim enkodira u tzv. strogi DER format. Ovo je primjer takvog potpisa
0460221009e0339f72c793a89e664a8a932df073962a3f84eda0bd9e02084a6a95
67f75aa022100bd9cbaca2e5ec195751efdfac164b76250b1e21302e51ca86dd7eb
d7020cdc06.
16. Popunjavanje polja scriptSig
Sada se može ispravno popuniti polje scriptSig iz petog koraka koje je do sada sadržavalo skriptu scriptPubKey. U polje scriptSig upisuje se ukupna duljina polja, duljina i potpis transakcije u DER formatu, hashcode (01 najčešće), duljina javnog ključa te sam javni ključ.
8c4930460221009e0339f72c793a89e664a8a932df073962a3f84eda0bd9e0208
4a6a9567f75aa022100bd9cbaca2e5ec195751efdfac164b76250b1e21302e51ca
86dd7ebd7020cdc0601410450863ad64a87ae8a2fe83c1af1a8403cb53f53e486d
8511dad8a04887e5b23522cd470243453a299fa9e77237716103abc11a1df3885
5ed6f2ee187e9c582ba6.
17. Micanje zastavice hashcode
U zadnjem koraku se miče zastavica hashcode s kraja transakcije jer je dodana u polje scriptSig iza potpisa transakcije.
Hex: "01000000
01
eccf7e3034189b851985d871f91384b8ee357cd47c3024736e5676eb2debb3f2
01000000
8c 4930460221009e0339f72c793a89e664a8a932df073962a3f84eda0bd9e02084
01000000
8c 4930460221009e0339f72c793a89e664a8a932df073962a3f84eda0bd9e02084
a6a9567f75aa022100bd9cbaca2e5ec195751efdfac164b76250b1e21302e51ca
86dd7ebd7020cdc0601410450863ad64a87ae8a2fe83c1af1a8403cb53f53e486
d8511dad8a04887e5b23522cd470243453a299fa9e77237716103abc11a1df38
855ed6f2ee187e9c582ba6
ffffffff
01
605af40500000000
19
76a914097072524438d003d23a2f23edb65aae1bb3e46988ac
00000000"
ffffffff
01
605af40500000000
19
76a914097072524438d003d23a2f23edb65aae1bb3e46988ac
00000000"
No comments:
Post a Comment