Bitcoin-Core

舊錢包中的“純”P2WSH 發票地址?

  • September 19, 2021

如果我做對了,我的舊錢包似乎可以讓我:

  • 2000 年代 P2PKH 發票地址(顯示為 base58)。
  • P2SH 包裝的 P2WSH 發票地址(顯示為 base58)。
  • P2WPKH 發票地址(顯示為 42 長度的 bech32 序列)。

如果我做對了,在遷移到描述符錢包之前,它永遠不會給我 P2TR 發票地址。

但為什麼它沒有“純”P2WSH 發票地址流(顯示為 62 長度的 bech32 序列)?是不是因為這些僅在非平凡的腳本環境(例如多簽名或其他)中才有意義,因此對我來說隱藏為較短長度的地址 YAGNI 簡化?

如果我做對了,我的舊錢包似乎可以讓我:

  • 經典 P2PKH 發票地址(顯示為 base58)。
  • P2SH 包裝的 P2WSH 發票地址(顯示為 base58)。
  • P2WPKH 發票地址(顯示為 42 長度的 bech32 序列)。

幾乎。它正在生產 P2SH 包裹的 P2WPKH;不是 P2SH 包裝的 P2WSH。

如果我做對了,在遷移到描述符錢包之前,它永遠不會給我 P2TR 發票地址。

只有描述符錢包支持創建 P2TR 接收地址。它實際上仍然需要在該錢包中有一個主根描述符。這可能要等到主網上的主根啟動一段時間後才會成為預設設置(目前估計發生在 2021 年 11 月 16 日左右)。

但為什麼它沒有“純”P2WSH 發票地址流(顯示為 62 長度的 bech32 序列)?是不是因為這些僅在非平凡的腳本環境(例如多簽名或其他)中才有意義,因此對我來說是一種較短長度的地址簡化?

好吧,讓我們退後一步。P2WSH 與 P2SH 一樣,是一種將其他腳本轉換為可定址輸出的機制。所以你所說的可能真的是 P2WSH-P2PK 或 P2WSH-P2PKH 之類的東西。這兩者都是完全沒有意義的,因為它們比相應的 P2WPKH 變體更昂貴。P2WSH 僅在存在比單密鑰策略更複雜的腳本(如多重簽名)或更高級的合約(例如在閃電網路中使用)時才有用。

這些並不是對你隱藏的——只是傳統錢包不支持它們作為自動創建的地址。可以顯式導入這樣的腳本(我認為),它會起作用,但您需要單獨為每個地址執行此操作。錢包簡單地生成公鑰,並可以將它們公開為 P2PKH、P2WPKH 或 P2SH 包裝的 P2WPKH 地址。

在描述符錢包中,如果您願意,可以為這樣的 P2WSH-P2PK(H) 腳本導入描述符,並且它實際上會為其生成地址。如果你真的想要,你甚至可以建構 P2SH-P2WSH-P2PKH 腳本。然而,所有這些仍然毫無意義。

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