北京时间11月14日下午1点,比特币区块达到预定的709,632高度,比特币网络正式激活了Taproot升级。Taproot升级采用软分叉形式进行,是近两年来最受期待的升级之一。预计本次升级可能会对未来 3 至 5 年的比特币生态产生影响,特别是机构级用户和多签的各种应用场景。
Taproot升级是自2017年的隔离见证(Segregated Witness,SegWit)升级以来,比特币协议的又一次重大技术升级。隔离见证通过取消区块头部的签名信息,增加了比特币的区块大小,部分降低了比特币网络的转账成本;而本次升级的目的则在于全面提升比特币的安全性、隐私性和可拓展性。
Taproot指植物的主根,经其创始人Gregory Maxwell的解释,该名字意指希望比特币交易仅关注“主根”,而隐藏不重要的“分支”。Taproot升级方案最早提出于2018年,落实该方案将会使得闪电网络链下交易与比特币链上交易无法区分,提高了比特币的隐私性。此后,Schnorr签名技术的升级也被纳入Taproot升级方案之中,两者相互结合,共同起到全面提升比特币网络性能的作用。
2020年1月,比特币核心开发者Pieter Wuille正式提交了Schnorr/Taproot软分叉升级的三大社区改进提案(BIP)。这三大提案相互关联、相辅相成,分别为:
BIP-340 (Schnorr):使用更为先进的Schnorr签名算法取代原有的椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm, ECDSA)。
BIP-341 (Taproot):在的Schnorr签名技术基础上改进默克尔化抽象语法树结构(Merkelised Abstract Syntax Trees, MAST)。
BIP-342 (Tap_script_):在Taproot技术基础上升级比特币编程脚本。
Schnorr签名技术有何意义?
数字签名技术(Digital signatures)部分解决了电子现金系统的可行性问题。该技术基于密码学上所谓的“非对称加密(Asymmetric Cryptography)”。在对称加密算法中,加密和解密使用相同的秘钥,而在非对称加密算法中,加密和解密是使用不同的秘钥的,加密使用公钥,解密使用私钥。一般来说,私钥是通过随机算法生成的一个随机大数,而公钥则是一般通过私钥计算而来。私钥需要保密存放,而公钥则是公开的,人们可以使用公钥在不暴露私钥的情况下验证签名的有效性。
非对称加密算法的安全性是由其背后的数学问题所保证的,经典的数学机制有大质数因子分解,椭圆曲线等等。比特币所使用非对称加密算法便是基于椭圆曲线算法。
我们知道,比特币的交易机制并非直接采用账户机制,而是采用UTXO(Unspent transaction output,未花费交易)机制。一笔交易的输入是以往的UTXO,而输出则是新的UTXO。在这一过程中,非对称加密算法的作用则是在交易之中证明花费某一笔比特币的是否正是其所有者。
举例来说,Alice要给Bob转账5个比特币,这就是一段交易信息。Alice将交易信息进行Hash处理,生成消息的数字摘要,然后使用私钥加密数字摘要,生成自己的数字签名。接着,Alice将交易信息、数字签名一并发给Bob。Bob使用Alice的公钥对数字签名进行解密,获得数字摘要,并与自行处理得到交易信息的哈希值进行对比,如若两者相同,则说明Alice确实拥有私钥。此外,由于在生成数字签名时,Alice提供了Bob的地址(即公钥),交易生成的UTXO将会被锁定,只有拥有对应私钥的Bob才能解锁此份UTXO,使用其中的比特币。
此前,Alice需要使用ECDSA加密算法生成数字签名,而在Taproot升级后,则会使用Schnorr算法进行签名。
![](/uploads/211115/1-21111519335I50.jpg)
Schnorr签名机制最早由德国密码学家Claus Schnorr提出的,该技术经过了严格的学术审查,具有超过ECDSA签名的性能和安全性。但由于Schnorr教授在1990年给这一签名算法注册了专利,直到2008年才过期,所以中本聪在设计比特币是未能使用Schnorr签名机制,而是使用了免费的ECDSA签名技术。由于Schnorr签名机制和ECDSA签名机制同样基于secp256k1椭圆曲线和SHA256哈希函数的,比特币得以较为轻松的过渡到Schnorr签名。
除了更好的安全性之外,Schnorr签名的另一重大优势在于其“线性特征”,这意味着计算结果是可以叠加的。ECDSA机制中不具有这种“线性”,必须要对不同笔交易分别签名;而在Schnorr签名机制中,多个用户的公钥被线性聚合为一个公钥,多笔交易的签名也可以聚合为一个签名,这也被称作密钥聚合(Key Aggregation)技术。这样,交易的隐私性得以提升,每笔交易所占用的区块空间也能够减少约11%。
Taproot和Tap_script_
Schnorr签名提高了比特币交易的隐私性,而紧随其后的Taproot则可以进一步扩展器功能。为了理解这一点,我们首先要了解什么是默克尔化抽象语法树(Merkelised Abstract Syntax Trees)。
在区块链不可篡改的特性中,每个区块的Merkle Trees结构至关重要。底层的每个交易数据会两两成组按顺序计算Hash值,得到第二层Merkle Tree,第二层Hash值再次两两成组向上运算,最终得到唯一一个顶层Hash值(又称Merkle Hash)。在这一计算方法下,即便是某个交易中的一个字节发生了变化或是某两个交易之间的顺序发生了变化,都会导致Merkle Hash发生变化。此外,Merkle Tree的另一个好处在于,对于比特币轻量客户端来说,无需下载所有交易数据,只需下载每个区块头的数据即可。如果这种轻量客户端要确认交易状态,则可以发起“Merkle Proof”证实交易是否在Merkle Tree上。
![](/uploads/211115/1-211115193436307.jpg)
而MAST也是一种类似的Merkle Tree数据结构,在对每个脚本进行类似的哈希操作后,将形成脚本的Merkle Tree,亦称脚本树(_script_ Trees)。在Schnorr技术的加持下,整个脚本树的结构将被隐藏起来,从而使得拥有复杂脚本结构的交易像普通交易一样被执行。MAST结构能够显著降低交易数据量,甚至有望实现智能合约功能。
与Taproot升级后的MAST对应,Tap_script_对于比特币脚本结构进行了更改,增加了某些操作码,以便于在Taproot升级后编写脚本。
结语
Taproot升级是自闪电网络和Segwit升级上线以来比特币的最大一次技术拓展。虽然相对于以太坊、波卡等后辈来说,比特币在技术创新上略显保守,但Taproot等技术升级还是切实带来了交易费用、交易速度和匿名性上的提高。
但由于Taproot升级只是一次软分叉升级,对于矿工的限制有限。未来相关改进真正激活落地的效果如何,仍然需要我们拭目以待。
本文链接地址:https://www.wwsww.cn/btbwhy/10307.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。