Segregated-Witness

v1 Followed 是否包含 v0?

  • May 9, 2019

我的問題是 Segwit 腳本的版本 1 是否允許您在其中使用版本 0 的腳本類型。換句話說,版本 1 是版本 0 的超集嗎?請包括設計決策背後的原因。

如果這個問題是關於最近發布的 bip-taproot 提案,答案是否定的,你不能在 v1 輸出中使用 v0 腳本。

這樣做的一般原因是 BIP 試圖實現的某些目標與 v0 腳本不兼容。這本身並不意味著無法支持 v0 腳本,但是如果您知道無法繞過它們,那麼推斷更改的好處會容易得多。此外,v1 和 v0 中(初始集)支持的特性之間的變化很小:

  • No CHECKMULTISIG OP_CHECKMULTISIG 操作碼不必要地低效,因為它有時需要嘗試多個公鑰與簽名的組合。此外,它與批量驗證不兼容(驗證塊中所有簽名的速度比單獨驗證它們的速度更快)。由於多重簽名結構非常有用,因此可以使用替換操作碼:OP_CHECKSIGADD,它根據簽名檢查是否成功來增加計數器。
  • Schnorr 代替 ECDSA所有在 v0 中採用 ECDSA 簽名的操作碼都改為採用 Schnorr 簽名。它們更高效,但 ECDSA 也不支持批量驗證,這與 bip-taproot 的設計目標之一相衝突。
  • 改進的 sighashing對簽名簽名的雜湊進行了一些改進,以解決一些長期存在的問題。如果有辦法繞過這些改進,那麼交易中的其他參與者將很難依賴這些修復得到保證。

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