比特币Taproot升级在即,你需要了解它的来源、内容与影响是什么?

吴说

    吴说作者 | 袁奔
    本期编辑 | Colin Wu
    原标题:《比特币Taproot升级在即:它的来源、内容与影响是什么?》
    近期(2021年11月14日左右),比特币将迎来自己的的一次重要的软分叉升级 Taproot,超过 90% 的矿工同意了这次升级,因此不太可能会出现 SegWit 升级时出现的社区分叉论战。似乎此次升级并没有引起太多的关注,但是也有不少文章将其称作最重要的升级。
    Taproot 升级到底是什么,它是否真的让人激动不已?
    Taproot 本身是主根系植物的意思,大概就像下图这样。而 Taproot 提出者GregoryMaxwell 解释道,他希望比特币交易支付的过程中,能够像主根系植物一样,关注大大的主根,而隐藏那些不必要的细小分支。
    
    通往不可能三角之路
    不论什么样的区块链进行升级,终究解决的都是区块链中的不可能三角问题。区块链世界中的不可能三角理论是由 Vitalik 在一篇名为《On sharding blockchains》的文章中提出的。它是指,一个区块链网络中要同时实现去中心化,安全,性能(效率,扩展性)三个条件是非常困难的,往往现实是我们在提升某两个条件的时候,不得不以牺牲第三个条件为代价。
    
    而此次的 Taproot 升级其实也并未脱离这个大的框架。Taproot 升级主要对应了两个方面。首先的一个目的是进一步提高其匿名性的能力,也就是进一步提升安全性。另一方面则是期望通过改变区块本身的数据结构来提升交易的性能,减少交易中不必要的数据负担。
    分解 Taproot
    Taproot 升级是三个相辅相成的 BIP 的统称,其中包括了 Schnorr 签名(BIP 340),Taproot(BIP 341)和 TapScript(BIP 342)。
    Schnorr 签名
    Schnorr 签名是由德国密码学家 Claus Schnorr 提出的,但是因为专利原因,Schnorr 签名直到 2008 年才可以免费使用,这就使得 2008 年诞生的比特币与之失之交臂(这里指 2008 年发表的原始论文),采用了 ECDSA 签名。
    目前来看,Schnorr 签名几乎是在性能,安全性上全方位超越了 ECDSA 签名,更重要的是,Schnorr 和 ECDSA 采用相同的椭圆曲线算法,所以在升级的问题上更加容易实施。而其中 Schnorr 中最亮眼的部分在于作用于交易输出层面的聚合签名。
    在多重签名条件下,我们往往要往交易数据中放入多个签名,尤其是当签名多的时候,这将带来很大的交易费和内存负担。但是利用聚合签名,我们可以把多个签名组合成一个签名,就像下图所示的那样。
    
    类似的,在 Schnorr 签名下,也可以对公钥进行聚合,这大大的提升了比特币网络在交易时的性能。
    而在验证的时候,传统的 ECDSA 只能支持一一验证的方式,但 Schnoor 得益于它的聚合思想,可以在节点上进行批量的验证。
    Taproot
    我们知道匿名一直是比特币追求的一个重要的安全问题,在地址层面上,虽然比特币地址的伪匿名性一定程度上隔离了物理世界身份和链上世界地址,但是不同的交易,地址的类型却割裂的非常明显。下面的这些地址的交易类型一目了然,这就导致了攻击者对交易进行地址分析的可能。
    
    而 Taproot 的目标正是提升比特币地址的匿名思想,让所有的地址看起来都一样,你无法从地址分析交易的类型。使用 Taproot 可以合并独立的 P2PKH 和 P2SH,使得彼此无法区分,其负担的交易费却是一样的,而这也正是利用了 Schnorr 的思想。
    同时,Taproot 将 Schnorr 用来创建默克尔抽象语法树(MAST,一种将抽象语法树和默克尔树融合的数据结构)。在以前的情况中,假设我们有一笔交易,这笔交易设置的条件是,用户 A 在交易发起的前 30 天可以使用交易,用户 B 在交易发起的 30 天起可以使用交易。最终无论谁使用了交易,用户 A,B 的信息都将被暴露出去,这显然是不必要的。
    而在 MAST 中,只有使用了交易的用户会被暴露出去,而另一个用户的信息将被隐藏,这大大保护了用户的隐私问题。
    TapScript
    BIP 342 是关于 Taproot 脚本实施的具体内容,它增加了一些操作码用于执行,部署 Taproot,Schnorr,软分叉等代码层面的功能,,如 「OP_CHECKSIGADD」。禁用了「OP_CHECKMULTISIG」和「OP_CHECKMULTISIGVERIFY」 这样的低效操作码。修订了「OP_CHECKSIG」和「OP_CHECKSIGVERIFY」以便可以提供 Schnorr 的功能。整体上完善了比特币脚本的内容,以便适应 Taproot 升级。
    总结
    总结来看,Taproot 升级确实有一些亮点,但更多的 Taproot 更像是对 SegWit 遗留问题的完善和补充,正如 bip-0341 中摘要所描述的那样:“This document proposes a new SegWit version 1 output type ...”这仅仅是 SegWit 输出层面的一个新的解决思路。
    另一个问题是,Taproot 升级是一个软分叉,其中包括 Schnorr 真正的激活也要到明年才开始,所以 Taproot 本身的升级过程也非一朝一夕,如果 P2TR(Taproot 下的地址)未能成为主流,那么 P2TR 显然并未达成其匿名于其他地址的目的。
    此外,还有一种声音质疑了 Taproot 实际的效果,其认为 Taproot 会导致地址空间碎片化,使得攻击者更容易分析。
    对于普通用户来说,Taproot 的最直观的好处就是降低了交易费用,提升了交易的匿名性和效率。无论如何 Taproot 的升级到底会对比特币带来怎样的影响,是否能达到预期的目标,都只有交给时间来验证了。
    根据央行等部门发布“关于进一步防范和处置虚拟货币交易炒作风险的通知”,本文内容仅用于信息分享,不对任何经营与投资行为进行推广与背书,请读者严格遵守所在地区法律法规,不参与任何非法金融行为。吴说内容未经许可,禁止进行转载、复制等,违者将追究法律责任。