Locktime
序列號語義
閱讀以下 BIP:68、112、125,我有幾個關於序列號語義的問題。據我了解,在版本 1 交易中,序號的含義如下:
- 如果任何輸入的序列小於
0xfffffffe
,則整個事務都在發出可替換性信號另一方面,在版本 >=2 事務中,上述規則適用,另外:
- 如果序列號的禁用標誌 (
1 << 31
) 設置為1
,則該序列沒有其他含義(但仍可用於表示可替換性,對嗎?)- 如果未設置禁用標誌,則序列號被解釋為具有 BIP68 中指定格式的相對鎖定時間。這意味著在其花費的輸出達到指定年齡之前,該交易不會被包含在一個塊中。
因此,綜上所述,如果想要在版本 >=2 事務中表示可替換性,則可以只使用小於
0xfffffffe
但具有活動禁用標誌(即大於0x80000000
)的序列號,另一方面,如果一個人既想表示可替換性又想花費相對時間鎖定的輸出,應該如何設置序列號?是否可以根據 BIP68 使用序列號並增加該格式中沒有意義的位來替換事務?(即更改除1 << 31
,1 << 22
和之外的所有位0xffff
)
如果您正在創建一個未設置禁用標誌的版本 2 事務,那麼根據定義,整個 nSequence 值將小於 0xFFFFFFFE(因為它最多為 0x7FFFFFFF)。
這意味著根據 BIP125,具有活動相對鎖定時間的事務將始終是可替換的。
這是故意的。不可替換交易試圖利用現有的網路策略規則來支持交易的第一個廣播版本。僅在未來某個時間點生效的交易不能利用它,因為在它生效之前無法廣播。