Transactions

將 Null 腳本寫入原始交易比特幣核心

  • April 16, 2019

我正在為比特幣核心開發一個解析器並進入解析器的 alpha 測試,我注意到腳本比特幣核心為空並且存在雜湊原始交易。

一個例子:對於這個交易,腳本進入區塊鏈探索 交易例子進入 blockexplorer 交易例子進入 blockchain.com

我現在有兩個問題:

  1. 這個空腳本事件是什麼原因造成的?有什麼我不知道的現象嗎?
  2. 這些資源管理器站點確定起始和目標錢包是否執行腳本

謝謝你的幫助。

對不起我糟糕的英語,但我正在學習

這個空腳本事件是什麼原因造成的?有什麼我不知道的現象嗎?

花費輸入中引用的交易 vout 不需要腳本,因為它沒有被密鑰鎖定。例如,引用的第一個交易的 txidc3d8d15a3ca1b50fc2519cbcb79f1db3b6be164c176c7ad51c7a5ec2e97ffa7b帶有輸出索引204。以下是該交易輸出是如何被鎖定的。

{
   "value": 0.00000000,
   "n": 204,
   "scriptPubKey": {
       "asm": "7daba6288bcf43c2f7f555ec58f965eaac89b14bc4c4fc920a2a58163aa11e0e",
       "hex": "207daba6288bcf43c2f7f555ec58f965eaac89b14bc4c4fc920a2a58163aa11e0e",
       "type": "nonstandard"
   }
}

鎖定腳本基本上將 32 字節的數據推送到堆棧 ( 7daba6288bcf43c2f7f555ec58f965eaac89b14bc4c4fc920a2a58163aa11e0e) 中,最後沒有驗證操作碼。這意味著,它可以與空簽名一起使用。如果您想在比特幣區塊鏈上儲存一些數據的雜湊值,通常會完成這種類型的交易。但這現在可以通過一個防止 UTXO 膨脹的 OP_RETURN 操作碼來實現。除了最後一個被引用的交易之外,所有交易都是 coinbase 交易,它將新生成的比特幣的一部分支付給礦池的參與礦工。池經理可能希望將特定數據編碼並儲存到比特幣區塊鏈上。

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