BIP-360 详解:支付到 Merkle 根(P2MR)
在让比特币安全模型适应未来挑战的诸多努力中,支付到 Merkle 根是一项引人关注的提案。
New to Nervos? Start here.
Explore the guide
量子计算(quantum computing)的进展,对比特币等系统所依赖的密码学假设构成了可信的长期风险。尤其是基于椭圆曲线密码学的签名方案,一旦足够强大的量子硬件出现,就可能变得脆弱。BIP-360 正是在这一背景下受到关注,它引入了支付到 Merkle 根(Pay-to-Merkle-Root,P2MR)输出。
总体而言,BIP-360 提议一种旨在尽量减少公钥暴露的新输出类型。与大多数现有比特币输出直接承诺公钥不同,P2MR 输出承诺的是一棵包含全部可能花费条件的 Merkle 树的根。实际公钥隐藏在这一结构中,直到花费时才会披露。
这一变化具有重要安全意义。P2MR 将公钥暴露推迟到确有必要时,大幅缩短了攻击者可利用的窗口。它专门针对长暴露量子攻击(long-exposure quantum attacks),即攻击者在有足够时间的情况下,利用量子计算机从公开可见的公钥推导私钥的场景。
比特币地址的演进:从 P2PK 到 P2MR
比特币交易系统自 2009 年上线以来持续演进。每一种新的地址格式和脚本升级,都体现了易用性、效率、隐私和安全之间的平衡。
比特币早期,交易通常使用支付到公钥(Pay-to-Public-Key,P2PK)格式。交易输出直接包含接收者公钥,花费资金时,需要提供用对应私钥生成的有效数字签名。这种设计简单实用,却有一个重要弱点:从收到资金的那一刻起,公钥就公开在区块链上,攻击者因此有无限时间尝试密码学攻击。
为提高安全性和隐私,比特币很快采用了支付到公钥哈希(Pay-to-Public-Key-Hash,P2PKH)。交易存储的是公钥的哈希值,而非公钥本身。实际公钥仅在花费时出现,既缩短了暴露窗口,也缩短了地址,提高了易用性。
后续升级扩展了比特币脚本的灵活性。支付到脚本哈希(Pay-to-Script-Hash,P2SH)允许将复杂脚本隐藏在单个哈希值之后,让多重签名钱包等高级功能更容易使用。隔离见证(Segregated Witness,SegWit)升级引入了新的交易结构,提高了可扩展性,减少了交易延展性(malleability)问题,也为未来的脚本升级铺平道路。
近年来最重要的变化之一,是 2021 年激活的 Taproot。它引入 Schnorr 签名和更强大的脚本系统 Tapscript,允许将复杂花费条件隐藏在 Merkle 树中。多数情况下,可以通过简单的密钥路径花费资金,兼顾隐私和效率。
尽管有这些优势,Taproot 最终仍承诺一个公钥。资金被花费后,该公钥变得可见,并且在某些情况下可能长期暴露。随着研究者开始审视量子计算的长期影响,他们意识到,即使 Taproot 最终也可能面临漏洞。BIP-360 沿用 Taproot 的脚本树架构,同时彻底移除公钥承诺。
什么是支付到 Merkle 根(P2MR)?
支付到 Merkle 根,简称 P2MR,是一种拟议的比特币输出类型,直接承诺 Merkle 根,而非公钥。Merkle 根代表一棵由各种可能脚本组成的树,这些脚本定义资金的花费方式。用户花费该输出时,披露其中一个脚本,以及验证它属于已承诺树所需的 Merkle 证明(Merkle proof)。
概念上,可以将 P2MR 理解为 Taproot 的简化。Taproot 结合了两种花费机制:密钥路径(key path)和脚本路径(script path)。密钥路径允许通过单个聚合公钥花费资金;需要更复杂条件时,脚本路径则披露脚本树的一条分支。P2MR 完全移除密钥路径,每次花费都必须经过脚本树。
这一看似微小的改变,影响却很显著。输出不承诺公钥,因此直到花费时披露脚本分支,链上才会出现公钥。资金因而免于长期暴露在量子攻击之下。
P2MR 的另一个重要特征,是依赖Merkle 树这一广泛用于区块链的密码学数据结构。Merkle 树允许用单个称为根的哈希值表示多份数据。需要验证其中一份数据时,只需一个小证明,就能展示它被包含于树中,无需披露整个结构。
在 P2MR 中,树的每个叶节点都包含一个可能的花费脚本,Merkle 根同时承诺所有这些脚本。这种设计允许钱包定义多重签名策略、时间锁(time locks)或备用恢复路径等多项条件,同时只披露实际使用的分支。
通过移除公钥承诺、完全依赖脚本树,P2MR 显著缩短了密码学密钥暴露的时间窗口。虽然这无法消除全部量子风险,却实质性地增强了比特币的长期安全模型。
长暴露 vs 短暴露量子攻击
量子技术对比特币的威胁常被误解。讨论中经常假定,只要量子计算机足够强大,比特币的密码学就会瞬间崩溃。现实更复杂,研究者通常会区分长暴露攻击与短暴露攻击。
长暴露攻击发生于攻击者早在资金花费之前就能获取公钥的情形。如果足够强大的量子计算机存在,攻击者就能运行肖尔算法(Shor’s algorithm)等算法,推导出对应私钥。由于公钥可能在链上可见多年,攻击者有充足时间完成计算。
短暴露攻击(short-exposure attacks)不同。在这种场景中,公钥直到交易广播到网络时才可见。攻击者必须赶在交易被区块确认之前破解密钥。由于比特币通常每十分钟挖出一个区块,攻击者可用的时间非常有限。
P2MR 主要应对第一种场景。通过承诺 Merkle 根而非公钥,系统确保公钥在花费前保持隐藏。存放于 P2MR 输出中的资金可以保持安全数十年,因为没有可供攻击者分析的公钥。
但 P2MR 无法消除短暴露风险。花费时,一旦包含公钥的脚本被披露,足够强大的量子攻击者仍可能尝试在交易确认前推导私钥。因此,许多研究者强调,P2MR 最终应与后量子签名方案结合。
围绕 BIP-360 的批评与争论
与大多数比特币提案一样,BIP-360 在社区内引发了讨论和争论。一项顾虑是交易大小:P2MR 花费必须披露脚本和 Merkle 证明,因此可能比简单的 Taproot 交易需要更多见证数据(witness data)。
另一个争议涉及隐私。Taproot 的密钥路径让多数交易在链上看起来相同,从而增强匿名性。P2MR 则总要披露脚本路径,观察者因此可能获得略多一些有关特定花费策略结构的信息。
一些开发者还认为,应对量子威胁应主要着眼于采用后量子签名方案,而非修改地址格式。另一些人则反驳,无论量子计算机很快出现,还是几十年后才到来,减少公钥暴露都是合理的预防措施。
常见问题(FAQ)
BIP-360 已在比特币上激活了吗?
目前,它仍是讨论中的提案,尚未成为已实施的升级。与其他比特币改进提案一样,部署前需要广泛审查和社区共识。
P2MR 能让比特币完全抵御量子攻击吗?
不能。P2MR 虽然降低了某些脆弱性,却没有替换底层签名算法。实现完全的量子抗性,很可能需要新的密码学原语。
结语
在让比特币安全模型适应未来挑战的诸多努力中,支付到 Merkle 根是一项引人关注的提案。P2MR 直接承诺 Merkle 根,而非公钥,显著缩短了密码学密钥暴露给潜在攻击者的时间。这一设计应对长暴露量子威胁,同时保留 Taproot 脚本树带来的灵活性。
同时,P2MR 并非完整解决方案。真正的量子抗性很可能需要集成后量子签名算法,也可能需要其他协议变更。不过,减少公钥暴露仍是合理的一步,有助于增强比特币的长期韧性。
More from CKB
如何保护你的加密资产免受量子计算威胁
随着量子计算机越来越接近破解常见区块链安全机制,如今要保护数字资产,就需要严格管理地址使用,并向量子安全网络迁移。

区块链密码敏捷性:CKB 实现量子安全的关键
量子计算正使密码体系的僵化成为关乎存亡的风险,而 Nervos CKB 是唯一在架构上具备真正密码敏捷性的区块链。

比特币可能如何走向量子抗性
比特币为 Q-Day 做准备的时间不是数十年,而是几年。
