Wallet

比特幣核心錢包(或任何錢包)是否應該阻止使用者在啟動前向 Taproot 地址發送資金?

  • August 9, 2021

比特幣核心錢包防止在啟動前(2021 年 11 月)導入主網 Taproot 描述符作為保護措施。但是,您可以在啟動前將主網比特幣發送到 Taproot (P2TR) 地址。Core RPC是否應該sendtoaddress阻止您在啟動前將主網比特幣發送到 P2TR 地址?

TL;DR:此時錢包應該允許發送到所有 bech32m 地址,但在網路上執行 Taproot 支出規則之前,錢包不得請求 P2TR 輸出¹。


segwit 的設計預見了採用可選功能的漫長過程。例如,隔離見證於 2017 年 8 月啟動,但錢包服務提供商 Blockchain.com 僅在 2021 年 6 月才增加了對 bech32 地址的發送支持。

Segwit 對前向兼容的 P2SH 包裝地址做出讓步,以使生態系統(例如閃電網路)快速使用 segwit 輸出類型的優勢,並為以後更順暢地推出本地 segwit 輸出類型奠定了基礎:BIP173 指定預設情況下,所有未來版本的原生 segwit 輸出都應被視為有效地址。因此,符合 BIP173 的 Bech32 實現將對所有未來的本地 segwit 輸出類型提供開箱即用的發送支持。(對於 bech32m 採用了相同的方法。)

在以下兩個前提下,允許發送到看似未定義的地址是安全的。

  1. 指定收款人在何種條件下接受付款是收款人的工作和特權。在發票和鏈上記錄之間,發送者可以證明他們遵守了接收者的指示。誠實的收款人只會提供一個他們可以安全使用資金的地址。在最慈善的解釋中,發送方錢包對接收方的指示進行完整性檢查至多算是一種禮貌。
  2. 攻擊者從提供向任何人都可以花費的輸出發送資金的地址與為自己索取資金相比沒有任何好處,如果出於某種莫名其妙的原因他們只是想讓資金無法使用,他們可以簡單地創建一個他們沒有的地址’ t 擁有私鑰。

作為自然讓步以依靠接收者選擇合理的輸出類型的交換,生態系統獲得了立即推出所有可預見的新輸出類型的主要好處。


¹顯然,這應該根據每個網路進行評估,並且在測試網路上生成 P2TR 地址是完全合理的,尤其是在 Taproot 的規則已經執行的情況下,例如 Signet。

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