Script

OP_EQUAL 無法正常工作

  • June 26, 2019

我去了<https://siminchen.github.io/bitcoinIDE/build/editor.html>嘗試一些比特幣腳本,我寫了這個腳本:

&lt;1PUzZ61FSVTn12CafJC85Vy1ts3BoFcXdU&gt; OP_HASH160 &lt;E105E01B92119CC55D753248CE3A32C82A9BB308&gt; OP_EQUAL

截屏:

看截圖

即使兩個雜湊值相同,我的腳本也會失敗。為什麼?

因為他們不一樣。看來此腳本 IDE 將尖括號 (&lt;&gt;) 內的內容解釋為字元串,而不是十六進制值。但是,雜湊不是字元串,它是可以使用十六進制值表示的字節序列。

因此,您的腳本實際上正在做的是將字元串放入1PUzZ61FSVTn12CafJC85Vy1ts3BoFcXdU堆棧,然後對其進行散列並放入字節值E105E01B92119CC55D753248CE3A32C82A9BB308。但是然後你將字元串壓入E105E01B92119CC55D753248CE3A32C82A9BB308堆棧,除非它的字節值為45313035453031423932313139434335354437353332343843453341333243383241394242333038. 然後OP_EQUAL比較兩個字節值E105E01B92119CC55D753248CE3A32C82A9BB30845313035453031423932313139434335354437353332343843453341333243383241394242333038它們顯然不相等,因此腳本失敗。

相反,您需要告訴該程序您要將字節值推E105E01B92119CC55D753248CE3A32C82A9BB308送到堆棧,而不是這些十六進製字元的字元串表示形式。要做到這一點,只是不要用尖括號括起來。這對我有用:

&lt;1PUzZ61FSVTn12CafJC85Vy1ts3BoFcXdU&gt; OP_HASH160 E105E01B92119CC55D753248CE3A32C82A9BB308 OP_EQUAL

引用自:https://bitcoin.stackexchange.com/questions/88645