Script
OP_EQUAL 無法正常工作
我去了<https://siminchen.github.io/bitcoinIDE/build/editor.html>嘗試一些比特幣腳本,我寫了這個腳本:
<1PUzZ61FSVTn12CafJC85Vy1ts3BoFcXdU> OP_HASH160 <E105E01B92119CC55D753248CE3A32C82A9BB308> OP_EQUAL
截屏:
即使兩個雜湊值相同,我的腳本也會失敗。為什麼?
因為他們不一樣。看來此腳本 IDE 將尖括號 (
<
和>
) 內的內容解釋為字元串,而不是十六進制值。但是,雜湊不是字元串,它是可以使用十六進制值表示的字節序列。因此,您的腳本實際上正在做的是將字元串放入
1PUzZ61FSVTn12CafJC85Vy1ts3BoFcXdU
堆棧,然後對其進行散列並放入字節值E105E01B92119CC55D753248CE3A32C82A9BB308
。但是然後你將字元串壓入E105E01B92119CC55D753248CE3A32C82A9BB308
堆棧,除非它的字節值為45313035453031423932313139434335354437353332343843453341333243383241394242333038
. 然後OP_EQUAL
比較兩個字節值E105E01B92119CC55D753248CE3A32C82A9BB308
,45313035453031423932313139434335354437353332343843453341333243383241394242333038
它們顯然不相等,因此腳本失敗。相反,您需要告訴該程序您要將字節值推
E105E01B92119CC55D753248CE3A32C82A9BB308
送到堆棧,而不是這些十六進製字元的字元串表示形式。要做到這一點,只是不要用尖括號括起來。這對我有用:<1PUzZ61FSVTn12CafJC85Vy1ts3BoFcXdU> OP_HASH160 E105E01B92119CC55D753248CE3A32C82A9BB308 OP_EQUAL