Script
什麼腳本解鎖了這個鎖定腳本?
我擁有的鎖定腳本是
OP_PUSH1(0x03) OP_ADD OP_PUSH1(0x05) OP_NUMEQUALVERIFY
我不明白 OP_PUSH 是如何工作的——它是從哪裡推送的,它是從哪裡推送到棧頂的?我認為腳本操作是從堆棧頂部讀取的,所以我會讀取頂部項目並將其推回堆棧,但什麼都不做?
我必須將什麼作為解鎖腳本放在左側才能讓 OP_NUMEQUALVERIFY 在這裡返回有效?
- 要推送 1-16 之間的數字,您應該使用 OP_1-OP_16。
- 要推送大於 16 的數字,您應該使用 OP_PUSH(OP_N/A)。
例如:
<5> push 編譯到 OP_5: 0x55
<17> push 編譯到 OP_PUSH1(0x11): 0x0111
<666> push 編譯到 OP_PUSH2(0x9a02): 0x029a02
- OP_ADD 彈出兩個輸入並將它們相加。所以你的排序是錯誤的,因為 OP_ADD 必須在 3 和 5 之後。
- 堆棧必須以“1”結尾,因此您應該使用 OP_NUMEQUAL 而不是 OP_NUMEQUALVERIFY,這會使堆棧留下 1 而不是空的。
您的最終腳本應該是:
OP_3 OP_5 OP_ADD OP_EQUAL
你的解鎖腳本應該是:
OP_8
您可以線上測試它:https ://scriptwiz.app/