Bitcoin transakcije sastoje se od ulaza i izlaza. Ulazi
sadrže reference na izlaze prethodnih transakcija koji su pod
kontrolom korisnika te skripte za svaki ulaz koje omogućuju trošenje
sredstava s prethodnih transakcija. Izlazi šalju vrijednosti iz
trenutačne transakcije na adrese drugih korisnika.
Kada se bitcoin transakcija potpisuje, moguće je
potpisati razne kombinacije ulaza i izlaza. Postoje tri moguće vrste
potpisa, tzv. sighash_all, sighash_none te sighash_single. Uz to, uz
svaki od tri tipa može ići dodatan modifikator anyonecanpay.
SIGHASH_ALL
Sighash_all najčešća je vrsta potpisa kod koje se
potpisuju svi ulazi i izlazi iz transakcije. Ovaj način potpisivanja
štiti cijelu transakciju od mogućih promjena.
SIGHASH_NONE
Ovaj način potpisivanja transakcije potpisuje sve
ulaze, ali niti jedan izlaz što omogućuje bilokome da odredi kuda
će se poslati satoshiji iz transakcije.
SIGHASH_SINGLE
Kod ovakvog se načina potpisivanja potpisuje se točno
jedan izlaz čiji indeks odgovara ulazu specificiranom parametrom.
Dakle, potpisuje se samo jedan ulaz i izlaz. Ostali se izlazi
potpisuju samo djelomično (može im se promijeniti broj u nizu,
engl. Sequence number). Takva transakcija omogućue drugim
korisnicima da dodaju vlastite izlaze u nju.
Ovaj tip potpisa ne bi smio imati više ulaza nego
izlaza, no Bitcoin protokol to ne zabranjuje. Ako se specificira ulaz
koji nema pripadajući izlaz, nepostojećem će se izlazu pridijeliti
hash 0x01.
SIGHASH_ANYONECANPAY
Ovaj modifikator znači da se potpisuje samo ulaz
specificiran parametrom. Ostali korisnici mogu dodavati ulaze po
želji.
To daje još tri mogućnosti potpisivanja transakcija.
SIGHASH_ALL SIGHASH_ANYONECANPAY
Potpisuje sve izlaze i samo jedan ulaz. Ovo omogućuje bilo kome da doda još ulaza u transakciju no ostali ne mogu promijeniti koliko će se satoshija poslati i na koju adresu.
SIGHASH_NONE SIGHASH_ANYONECANPAY
Potpisuje samo jedan ulaz te niti jedan od izlaza. Omogućuje ostalima da dodaju ulaze i izlaze po želji, odnosno da potroše transakciju kako žele.
No comments:
Post a Comment