解锁完整的 Taproot 支持:互联网计算机上的密钥调整
2025-03-19 03:08
DFINITY
2025-03-19 03:08
订阅此专栏
收藏此文章



互联网计算机继续改善跨链互操作性,Deuterium 里程碑使容器能够创建阈值 Schnorr 签名,包括比特币中使用的 BIP340 标准化的 Schnorr,Deuterium 使容器能够生成 Pay-To-Taproot(P2TR)地址并发起 Taproot 交易。


在这篇博文中,我们将解释互联网计算机上 P2TR 支持的发展、容器最初面临的限制,以及最近在阈值 Schnorr 签名中添加的密钥调整如何扩展容器智能合约的跨链功能,使其更容易与比特币元协议集成。


P2TR 地址


BIP341 中指定的 P2TR 地址允许使用两种不同的“路径”来花费资金:


  • 密钥路径:如果通过密钥路径进行的交易包含可使用 P2TR 地址中指定的公钥成功验证的 Schnorr 签名,则该交易有效。


  • 脚本路径:通过脚本路径进行的交易要求支出者使用比特币的脚本操作码提供满足任意脚本的输入,脚本路径的一个关键特性是,一个地址可以包含多个脚本(其中任何一个都可用于支出资金),在支出发生之前,满足条件的脚本的内容(甚至数量)都是保密的,此外,即使在支出之后,也只有实际用于满足条件的脚本输入才会公开。



此外,如果地址同时支持密钥和脚本路径,则通过密钥路径进行消费会隐藏脚本路径的存在,这些属性提高了交易的隐私性,因为链观察者无法推断特定地址的内部财务安排,例如多重签名设置的存在。


P2TR 对 ICP 的初始限制


最初,互联网计算机仅支持有限类型的 P2TR 地址,从而限制了可用的支付机制:


  • 无脚本路径的 P2TR:这种类型的地址不包含替代脚本的 Merkle 树,这意味着它只能通过密钥路径使用,互联网计算机从 Deuterium 里程碑发布开始就支持这一点,因为密钥路径花费只需要有效的 Schnorr 签名,并且故意省略了 Merkle 根以隐藏是否存在任何替代花费脚本。


  • 没有可用密钥路径的 P2TR:这种类型的地址只能通过脚本路径使用,其中可能包括 Merkle 树叶子内的 Schnorr 公钥,虽然这些地址包含密钥路径的内部公钥,但互联网计算机不支持使用它进行签名。


此限制意味着创建 P2TR 地址的容器必须提前选择要支持哪一条路径,容器不能创建允许同时通过密钥路径和脚本路径进行消费的地址。


阈值 Schnorr 签名的密钥调整


从 P2TR 地址消费涉及使用通过加性密钥派生方案从内部密钥派生的公钥创建签名,此过程涉及:


  • 对内部公钥和 Merkle 树根(代表替代脚本)进行哈希,以得出“附加调整”;


  • 将此调整添加到秘密密钥和内部公钥中;


  • 使用调整后的密钥生成与地址中嵌入的调整后的公钥相对应的签名。


在 Schnorr 签名的阈值变体中,密钥调整本质上更为复杂,因为密钥并不以完整形式存在,相反,它分布在子网中运行的多个副本中,每个副本都持有密钥的一部分,要求每个副本将调整应用于各自的部分。


当 Deuterium 里程碑发布时,互联网计算机在请求阈值 Schnorr 签名时不支持密钥调整,这意味着容器无法生成允许密钥路径和脚本路径支出的 P2TR 地址,因此,容器必须在创建地址时决定如何使用资金,从而降低了需要动态支出选项的 Dapp 的灵活性。


此外,大多数比特币库本身并不支持 Taproot 地址,这些地址可以通过密钥路径使用未经调整的密钥来使用,将阈值 Schnorr 签名集成到 Dapp 中的开发人员需要更深入地了解 Taproot 机制。


扩展 ICP 上的 P2TR 支持


我们很高兴地宣布,Schnorr 签名 API 现在支持密钥调整 - 容器现在可以创建更常见、更灵活的 Taproot 地址,这些地址使用经过调整的内部密钥支持脚本路径和密钥路径支出,此增强功能:


  • 将互联网计算机与标准 Taproot 功能相结合;


  • 简化 Dapp 创建者的开发;


  • 扩展了基于比特币的智能合约在互联网计算机上的灵活性。


新的密钥调整功能可作为现有 sign_with_schnorr API 中的可选辅助参数使用,此附加功能允许开发人员将 MAST 根包含在其签名请求中,从而完全支持互联网计算机上 Taproot 的脚本路径支出机制。


具体来说,sign_with_schnorr API 的参数 sign_with_schnorr_args 已扩展为可选字段 aux,用于指定一些辅助信息,最初,此枚举将有一个 BIP341 变体,用于指定 Merkle 脚本路径的根哈希,API 的进一步扩展可以重用此辅助输入来编码其他辅助信息。


这个新的接口允许应用程序完全支持 Taproot 支持的一系列交易,确保在互联网计算机上运行的容器可以参与任何比特币元协议,例如 Ordinals、BRC-20、Runes、Atomical 等。


有关更多详细信息,请查阅互联网计算机规范、链融合文档、BIP341 规范,以及包含处理 Taproot 支出示例的互联网计算机示例库。



来源:DFINITY

翻译:Catherine



-              -


互联网计算机路线图 2025 更新

周末杂谈 | 当欧阳靖和三上悠亚遇到币圈交易所,会擦出怎样的火花?

通过自写互联网大规模采用 Web3





你关心的 IC 内容

🛠 技术进展 | 🔍 项目信息 | 🌏 全球活动


图片


长按关注 IC 微信视频号

观看最新视频


*添加小助手微信 comiocn 进交流社群


【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

在 App 打开
hyperliquid
wal
jellyjelly
particle
空投
香港
以太坊
rwa
movement
bera
monad
sui