因为没有持续关注比特币生态,从而错过了铭文没能提前退休去夏威夷买岛后,痛定思痛还是从我最擅长的写文章开始回归比特币,虽然半年前专门写过一篇闪电网络,但是不够成体系,这次我决定比较全面的再次学习比特币,也会持续follow新出现的技术与项目,我在比特币生态也只是个小学生,相比以太坊生态也不熟悉,所以写的不一定对,所以先从这次对铭文发展起到最关键作用的Taproot升级开始切入。 Taproot是比特币在21年11月进行的一次软分叉升级,包含BIP340、341与342,当时取得了90%的比特币矿工共识表示支持,也是继17年隔离见证SegWit后最重要的升级,它主要通过将多个签名聚合成单个签名后从而实现交易批量处理,提升网络性能的效果,并且还顺带提高了隐私性,因为将多个签名交易合并处理后使得难以追踪,从外界看到的都是一笔点对点的交易。 所以Taproot最核心的聚合签名技术是由BIP340中的Schnorr 签名标准实现的,在此之前比特币使用的是大家最常听到的椭圆曲线数字签名算法ECDSA来签名,并用SHA256来验证交易,一组完整的数字签名包含一个公钥、被签名消息和签名本身,当多方想签名同一消息时,则每个节点都必须要进行三次签名验证,并存储三组签名,Schnorr则使得可以任意组合多个公钥形成单个公钥,然后使用其中每一个私钥都可以进行签署,从而最终形成一组签名。 所以Taproot对于闪电网络也是利好,因为闪电网络开启支付通道其实就相当于是创建一个多签钱包的性质,而Taproot实现多签聚合则可以提升闪电网络性能,关于闪电网络可以看我半年前的文章
那既然Schnorr这么好为什么没早点用呢,德国密码学家Claus-Peter Schnorr在1989年发布了由自己名字命名的Schnorr签名并申请了20年的专利保护,所以到了中本聪发明比特币时恰好还在专利保护中,所以也只能选择开源的ECDSA签名。 Taproot使得减少复杂交易的数据大小,从而降低费用,为比特币链上腾出更多空间,继而直接影响闪电网络的效率。
除了Schnorr签名,Taproot升级还包含了一种新的交易输出类型和确定支付条件的新方法,在此之前支付条件通过签名完成,是很单一的即只能实现A支出给B,而写复杂支出条件则会极大的占用比特币空间,验证条件也很麻烦,Taproot则使用默克尔树的方式构造了一个脚本树,利用默克尔树的特性只需要将树根存入,然后验证支出条件时,只需要验证叶子结点是否存在就可以,既省去了存储空间和验证成本,也不会在链上透露全部信息因为只需要验证单个叶子结点(即一个支出条件)的存在性就好,使得开发者可以写更复杂的脚本,提升了比特币的可编程性,这也为基于Taproot发行资产打下了基础,因为在Taproot的脚本树script tree中可以提交任意数据,自然也就可以构造资产数据存进去,所以开发者的脑洞真的是无穷大,本来是用来做支付条件的升级硬玩成了发行资产,你会发现大家对于比特币的花活真的有一种大象在房间里跳舞的感觉,我在写这一段的时候脑海里浮现出了我最爱在抖音刷的老破小改造视频,看设计师的脑洞怎么能把30平的房子装修成300平的使用效果,想尽办法在“狭小”的 比特币里塞点东西进去。 在今年的10月19日闪电网络的幕后推手Lightning Labs基于Taproot在主网发布了Taproot Assets协议,它利用 上文说的Taproot 脚本树的特性创建一个新的树状结构,允许开发人员将资产数据嵌入到 UTXO 中,使得可以在比特币网络上发行资产,而每次转移资产则都会重新组织默克尔树并发布到链上,可使用脚本对资产进行编程,再用 Schnorr 签名来使协议兼容闪电网络从而在闪电网络传输资产,同时兼顾比特币的安全性和闪电网络的高性能,所以目前来Taproot Assets作为一种发币协议要比BRC20在技术与正统性上更有优势。 Taproot Assets有个东西叫Universe宇宙,其实性质上就相当于是区块链浏览器,用来展示Taproot Assets的交易数据,因为大多数Taproot Assets的信息都在链下,只把树根放进去,所以在链上不能直接拿到全部信息,要在链下运行一个Taproot Assets 客户端进行存储和解析,不过我找了一圈也没有看到什么好用的Universe,更没有marketplace,整个Taproot Assets还是处于非常非常早期的阶段,这上面的财富密码还挺少的,大家有的话也欢迎推荐。 比特币的相关文章写的毕竟没有以太坊多,难免会有一些理解不到位的地方,如有错误欢迎指正交流,接下来我会以太比特两手抓,持续不定期更新比特币相关的内容。