Script

在 segwit 的交易摘要中包含輸入的 scriptCode 有什麼意義?

  • October 9, 2019

BIP143規定了“一種新的交易摘要算法”

  1. 輸入的 scriptCode(序列化為 CTxOuts 中的腳本)

scriptCode of the input如果沒有包含在摘要中,可能會出現什麼問題?

如果輸入的 scriptCode 沒有包含在摘要中,會出現什麼問題?

幾乎可以肯定沒有。

這樣做的原因是一個非常有意的設計選擇,以限制 SegWit 所做的更改數量。鑑於它具有腳本版本控制,如果需要,以後很容易引入不同的 sighashing 方案,我們可以選擇只進行預期的更改,而不是從頭開始重新設計。對 sighash 算法的有意更改是:

  • 使用共享的預先計算的每個事務雜湊來避免 O(n^2)
  • 承諾花費的金額

所以雜湊結構保持不變,並且包含所有相同的數據。sighash 標誌仍然具有相同的效果。BIP143 中唯一的變化是一些數據現在組織在預先計算的雜湊下,並且輸入量進入其中。其他一切都是一樣的,其中包括對 scriptCode 的承諾——即使不再有充分的理由。

編輯:請參閱下面的 Russell O’Connor 的回答,了解一個小案例。

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