Transactions

測試網事務 b6714e05dd014cc92de09271886e62d85e7d41dd44fad417c520eb51d57f94c0 是如何驗證的?

  • May 1, 2022

測試網交易c474c67cabc13f74c65e7cf503db971d5ba176794bff7de36f46d51ca675cf3a用一個簡單的數學腳本鎖定了 0.0005BTC:

OP_2DUP
OP_ADD
5102
OP_EQUALVERIFY
OP_SUB
230d
OP_EQUAL

事務b6714e05dd014cc92de09271886e62d85e7d41dd44fad417c520eb51d57f94c0使用 sigscript 花費了該輸出:

ba07
6985

我看不到如何(ba07 + 6985) == 5102(ba07 - 6985) == 230d

關於比特幣腳本、整數和數學,我缺少什麼?

對於數學運算,比特幣將字節向量視為有符號(有符號大小)小端值。那麼讓我們看看這些數字是多少:

  • 字節向量ba07是十六進制數 (0)7ba。
  • 字節向量6985採用8569大端序。由於設置了最高位,因此該數字為負數。所以十六進制數是-(0)569。
  • 字節向量5102是十六進制數 (0)251。
  • 字節向量0d23是十六進制數 (0)23d。

因此,我們最終得到了這兩個陳述7ba+(-569)=2517ba-(-569)=d23它們是正確的。

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