Segregated-Witness

Schnorr PubKey 的長度是否與 Taproot PubKey(如 P2WPKH 和 P2WSH)的長度不同?

  • October 23, 2020

P2WPKH PubKey 比 P2WSH PubKey 短。Taproot PubKey 是否也比 Schnorr PubKey 大?如果是這樣,是否會激勵人們使用 Schnorr PubKey,從而導致 Taproot 的可替代性降低?

P2WPKH PubKey 比 P2WSH PubKey 短。

不,不完全是。P2WPKH地址比 P2WSH地址短。這些地址都基於底層見證程序的雜湊(即輸出的鎖定條件)。在支付見證公鑰雜湊 (P2WPKH) 的情況下,見證程序僅包含公鑰。另一方面,Pay to Witness Script Hash (P2WSH) 沒有公鑰,它的見證程序由見證腳本組成。P2WPKH 和 P2WSH 地址的長度不同,因為 P2WPKH 的散列是 RIPEMD-160 散列,產生 20 字節(160 位)的摘要,而 P2WSH 的散列是 SHA-256d 散列,產生 32 字節(256 位) ) 消化。因此,P2WSH 的地址只需多編碼 12 個字節的數據,而且要長得多。

關於 Taproot 和 Schnorr,輸出實際上是無法區分的,要麼將資金送出給公鑰。事實上,如果花費者不使用腳本路徑(樹的葉子中的腳本之一),而是使用關鍵路徑花費輸出,那麼即使在花費時間時它們仍然無法區分。

因此,所有 segwit v1 輸出的長度始終相同,而輸入的大小可能會有所不同,具體取決於它們的使用方式。它們沒有被歸類為兩種不同的輸出類型,它們都被歸類為 Pay to Taproot (P2TR)。由於 P2TR 中用於公鑰的編碼也是 32 字節,因此 P2TR 輸出最終與 P2WSH 輸出的長度相同:43 字節。

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