Transactions
可以重複使用簽名來兌現地址中的所有內容嗎?
我知道 P2PK 鎖定腳本是這樣的
[pubkey] <OP_CHECKSIG>
然後提供一個解鎖腳本,就像這樣簡單:
[sig]
但是,如果它像這樣工作,其他人可以簡單地抓住
[sig]
並兌現您地址中的所有東西!我有一些誤解嗎?
當您使用您的私鑰簽署交易時,您會將整個交易數據的雜湊值作為消息包含在內。這意味著生成的簽名特定於該交易本身,對交易的任何修改都會使簽名無效。在這種情況下,簽署交易的使用者已經指定了比特幣必鬚髮送到的地址。地址中的任何修改都會更改消息摘要,從而使簽名無效。
此外,比特幣在 UTXO 模型上執行,而不是基於帳戶/地址的模型。每次您發送比特幣時,您都會完全消耗以前未使用的輸出並創建新的未使用輸出。例如,假設您有 1BTC UTXO。當您想花 0.1 BTC 咖啡時,您將消耗整個 1 BTC UTXO,將 0.1 BTC 發送到咖啡店,將 0.9 BTC 返還給自己。這個 0.9 BTC 輸出不同於您之前控制的 1 BTC 輸出。
在交易中,這些未使用的輸出在交易中指定為標識符:
txid
和vout
。在使用者的交易被確認後,txid
在之前的交易中引用的不再是未使用的。因此,即使您再次發送到相同的地址,也不可能重複使用相同的簽名。