支持 P2WSH 包裝的 P2TR 地址
鑑於 Taproot 地址使用新的 SegWit 版本和新的地址編碼 (bech32m),可以合理地預期從生態系統到這個新地址版本的過渡類似於我們在 P2PKH/P2SH -> P2WPKH/P2WSH 過渡中看到的情況。如果我們至少看到一個多月的過渡期,這並不奇怪,其中一些錢包可以生成 Taproot 地址,但像交易所這樣的許多服務不支持向這些新地址提款。
按照這種構想,如果我們的策略類似於 P2SH 包裝的輸出為 SegWit 所做的策略,那麼錢包和最終使用者向 Taproot 的過渡可能會更加順暢。
在BIP341中,有一個關於為什麼不支持 P2SH 包裝的輸出的安全論點:因為它們使用 160 位散列,它們僅提供 80 位的抗碰撞性,這太低了。然而,經過 3.5 年的轉型,大多數行業已經支持提現到 P2WSH 地址。P2WSH 輸出使用 256 位散列,提供與頂級 P2TR 輸出相同的 128 位抗碰撞性。
還有其他不支持 P2WSH 包裝的 P2TR 輸出的原因嗎?
除了 BIP 341 中給出的基本原理之外,我還知道兩個不支持 P2SH 包裝的主根輸出的論點:
- 向後兼容性:P2SH 包裝的隔離見證輸出包含在 BIP 141 中,作為允許未升級的錢包將輸出發送到升級的隔離見證錢包[ 0 ]的一種方式。隔離見證啟動發生在大約 4 年前,現在幾乎所有的錢包/服務都允許發送到 bech32(本地隔離見證)地址[ 1 ]。[在郵件列表 2 ]、[ 3 ]上有人爭論說,當主根啟動時,基本上整個生態系統都可以發送到 bech32。bech32 被設計為向後兼容,未來的 segwit 版本使用相同的格式。如果所有發送錢包都可以發送到本地 segwit v1 地址,那麼就不需要 P2SH 包裝的主根兼容格式。
bech32 延展性問題[ 4 ] 的發現和作為解決方案的 bech32m[ 5 ] 的開發引入了一個小問題:能夠發送到 bech32 地址的錢包將無法在未升級的情況下發送到 bech32m 地址。但是,該升級非常簡單,並且涉及更改單個常量值。我希望錢包應該能夠很快推出這種變化。在撰寫本文時,距離 Schnorr/Taproot 軟分叉啟動還有大約 5 個月的時間,這應該足以讓錢包和服務升級。
本週的比特幣 Optech 通訊將包括一個關於主根發送支持的部分:https ://bitcoinops.org/en/newsletters/2021/06/23/ 。(時事通訊將於週三發布)。 2. 隱私性和可替代性:“taproot 的主要好處是 Taproot 提供了更好的隱私性和同質性,並且支持 P2SH 封裝和非封裝 SegWit v1 地址只會增加使用者可能被表徵和潛在辨識的位置數量”來自ZmnSCPxj[ 6 ]。通過使所有主根支出的輸出類型統一,我們增加了每個人的可替代性。
這兩個論點同樣適用於 P2WSH 包裹的主根作為 P2SH 包裹的主根。