Transactions

segwit 和非segwit 節點如何看待segwit 塊?

  • November 16, 2018

假設一個礦工開采了一個區塊。

  1. 在這個區塊中,有些交易是非隔離見證的,有些是隔離見證的?
  2. 該塊包含兩部分:
  • 有交易的部分
  • 帶有隔離見證交易簽名的隔離部分?
  1. 對於舊節點來說,非隔離見證交易看起來很正常,而隔離見證交易看起來像不需要簽名的有效交易?這些節點看不到包含簽名的隔離部分?
  2. 對於新節點來說,非隔離見證交易看起來很正常,它們會辨識隔離見證交易並檢查隔離部分以驗證簽名嗎?

像您描述的那樣,塊沒有兩個部分。segwit 中的 segregated 一詞意味著見證數據不包含在 TXID 計算中,類似於它始終不包含在簽名雜湊計算中的方式。它仍然包含在交易和區塊中。

使用 segwit,簽名位於每個交易中的見證欄位中,該見證欄位包含在 nlocktime 欄位之前。

當一個節點使用塊將隔離見證中繼到不理解隔離見證的對等方時,它會將見證欄位從所有擁有它們的事務中刪除。由於他們沒有任何與 segwit 數據有關的規則,因此他們對此非常滿意。

如果你將一個剝離的塊交給一個非過時的節點,它只會丟棄它並禁止你給它無效數據——它知道隔離見證規則並嘗試驗證額外的數據。

在這個區塊中,有些交易是非隔離見證的,有些是隔離見證的?

是的。兩種類型的交易都可以包含在同一個區塊中。Segwit 交易一般會消耗所有類型的 UTXO;而非隔離見證交易只消耗P2SH/P2PKH/P2PK類型 UTXO。

該塊包含兩個部分

不。它幾乎是一樣的,segwit 只與如何計算交易標識符(即txid)有關,這幾乎只是交易中除其簽名之外的所有內容的雜湊值。同樣,該塊僅包含所有交易。

對於舊節點來說,非隔離見證交易看起來很正常,而隔離見證交易看起來像不需要簽名的有效交易?這些節點看不到包含簽名的隔離部分?

編輯#1:根據 Pieter Wuille 指出的 - 不,舊節點不會看到相同的。新節點將在發送之前簡單地刪除見證。修訂後,我注意到這是因為scriptSigP2WSH 和 P2WPKH 本機輸入的欄位將為零,如BIP141中所述。

對於新節點來說,非隔離見證交易看起來很正常,它們會辨識隔離見證交易並檢查隔離部分以驗證簽名嗎?

是的。新節點必須按照舊節點的約定進行簽名驗證。再次重申,簽名沒有單獨的部分。

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