Script

為什麼在 P2SH 中包裝 P2PK 沒有流行起來?

  • October 31, 2022

稱之為付費公鑰腳本雜湊(P2PKSH),如下所示:

  • 鎖定腳本:

OP_HASH160 OP_DATA_20 redeem_script OP_EQUAL

  • 兌換腳本:

OP_DATA_20 pubkey OP_CHECKSIG

  • 解鎖腳本:

<push signature> <push redeem_script>.

無論哪種方式,錢包都必須處理一個密鑰列表併計算一個 20 字節的雜湊和與每個密鑰對應的地址,但地址生成會略有不同。在任何一種情況下,prevout + input 的總大小都是相同的:

  • P2PKH 地址(25 字節):

0x76a914 || hash160(pubkey) || 0x88ac

  • P2PKSH 地址(23 字節):

0xa914 || hash160(0x21 || pubkey || 0xac) || 0x87

支出輸入腳本也會略有不同:

  • P2PKH 花費(66 + 34 字節):

<push signature> <push pubkey>

  • P2PKSH 花費(66 + 36 字節):

<push signature> <push (0x21 || pubkey || 0xac)>

注:||表示字節連接。

兩者都需要錢包等應用程序的支持,並且兩者都具有相同的交易(輸入+輸出)大小。P2PKSH 選項有一些優勢,因為它可以使地址相對更小,並且可以使所有 20 字節的輸出彼此無法區分。

現在開始使用這種地址是沒有意義的,但是在 2012-2016 年期間有一個機會之窗,所以我想知道。如果比特幣從一開始就帶有 P2SH,我們是否只有一種地址類型?

P2PKH 自比特幣問世以來就存在,因此是主要的地址類型。在引入 P2SH 時,它要求錢包開發者同時實現 P2SH 地址的解析和使用它們的方法。使用 P2SH-P2PK 沒有任何好處,因此開發人員實現它和使用者使用它沒有任何意義。

這與 Segwit v0 和 Taproot 形成對比,兩者都引入了新的單密鑰地址類型,但使用它們有好處。我們還觀察到,切換到新的地址類型可能很困難,而且是一個漫長而緩慢的過程。鑑於 P2SH-P2PK 在獲得更多使用方面會遇到類似的問題,並且使用它沒有任何好處,很明顯為什麼 P2SH-P2PK 從未流行起來。

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