当前位置:首页区块链阅读比特币协议的重要里程碑:Schnorr签名和taproot soft fork升级

阅读比特币协议的重要里程碑:Schnorr签名和taproot soft fork升级

作者:潘志雄一次比特币协议的升级,可能会预示着未来 3 至 5 年的趋势,虽然大家并不关心 比特币 的技术迭代,更关注安全和主流人群接受度,但最终所有人都会受益于这次升级。那个被你们认定为技术上不思进取的 比特币 协议,终于引来了一次值得注意的技术升级比特币 协议中具有里程碑意义的技术升级 施诺尔签名 (施诺尔签名)主根 (树的主根)已集成到刚刚发布的 比特币核心0.21.0 版本中——这绝对值得关注,因为该升级有可能会影响未来 3 至 5 年的 比特币 生态,特别是针对机构级用户和多签的各种应用场景。当然,对于 比特币 协议目前重要的关键词是「稳定的」和「安全」,所以哪怕这些技术上线之后,社区和生态通常都会相当谨慎,就算不集成支持其实也没什么问题,不然还可能会引入不必要的风险和漏洞。由于这次的升级是需要经过软分叉才能激活的,所以后续还需要看矿池和矿工对于该提案的支持程度,至少目前来看,矿池和矿工相当积极,90%以上的计算力已经宣布会支持该升级。Schnorr Signature 是以德国数学家和密码学家 克劳斯·彼得·施诺尔 命名的数字签名算法,由于在 2008 年之前处于专利保护的状态,所以中本聪在设计 比特币 协议时并未使用该签名算法,而是选用了当时更适合且开源的椭圆曲线数字签名算法(ECDSA)。但是 比特币 核心开发者在将近十多年后却认为,Schnorr Signature 才是 比特币 的未来,因为它在密码学特性上的优势,可以在几乎同等(更好)安全的基础上,更方便和「低调」地构建多签名交易,也能为寸土寸金节省不少空间。 比特币 协议中除了签名算法之外,还设计了一套脚本语言定义如何使用 比特币 。Taproot 就是一套可以在 Schnorr Signature 的特性之下,让 比特币 更强大的全新脚本语言体系,并且,还设计了 Tapscript公司 脚本语言,对花费 比特币 的方式进行了微调——具体的技术细节,这里就不继续展开。在这些技术的组合下, 比特币 多签类地址可以不用暴露出自己的「多签」身份,也可以支持数量众多的多签场景,同时在经济层面上也有些许优势,可以降低链上的交易费用,特别是对于需要高频操作的地址而言,可以节省了很多成本。在介绍 Schnorr Signature 和 Taproot 之前,有必要先回顾一下 比特币 协议升级的流程步骤,毕竟这是一件相比其他区块链网络升级低频许多的事件,甚至许多区块链从业人员也不甚了解。粗略来说, 比特币 协议的升级分为六个阶段:如果我们回顾此前 比特币 比较重要的协议升级,会发现其实新功能的采用率并不高,而且通常是 3 年之后也仅仅是极低的采用率。比如,约三年前的隔离证人(塞格维特)升级,为区块提供了些许的扩容,使用隔离见证的地址可以降低一些转账成本。而根据 txstats.com 的数据,目前储存在隔离见证地址中的 比特币 数量不到 8%。(数据来源:https://txstats.com/dashboard/db/bech32-statistics)出现这样的情况,一方面的原因是很多 BTC 资产可能已经丢了,或者对于大机构而言改造这套体系需要付出太多成本,同时也会引入一些不必要的风险,毕竟安全更重要。不过从积极的方面来看,网络中近一半的新盘都采用了隔离见证。(数据来源:https://txstats.com/dashboard/db/segwit-usage)Lightning网络协议也是 比特币 自 2018 年以来持续迭代更新的 第2层扩展支付通道技术,目前这个网络的容量还处于一个非常小的规模(约1000 BTC),仅占 BTC 总量不到万分之一。所以对于 Schnorr Signature 和 Taproot 而言,虽然在最新客户端中已经植入了该功能,但是功能是否会激活启用,以及后续的生态如何支持,还需要看之后三到五年的发展了。钱包、托管商、交易所、大机构都会按照自己的用户需求、安全需求、功能需求综合考虑,逐步引入。当我们整理 比特币 核心开发者针对 Schnorr Signature 和 Taproot 进行讨论和研究的时间线时,发现这个方案从提出到集成已经三年以上的时间。虽然 Schnorr Signature 是 Taproot 得以实现的基础,但是最早被提出的其实是 Taproot——这是一套可以丰富 比特币 脚本的方案,最初由 区块流 联合创始人 格雷戈里·麦克斯韦 在 比特币 核心开发者邮件组中提出。半年后,Blockstream 另一位联合创始人 彼得·维尔 则提出 Schnorr Signature 替代 比特币 现有的椭圆曲线签名(ECDSA),通过其特有的「线性」特点,实现密钥的聚合、提升区块验证速度。在此之后,这两个技术也就被组合起来作为一个大的方案,共同推进,最后在去年初形成了三个正式版 BIP,进入开发阶段:虽然 Gregory Maxwell 和 Pieter Wuille 先后离开了 Blockstream,但是 Schnorr Signature 和 Taproot 的大多数核心参与者都来自于 Blockstream,只有 安东尼镇 一人除外——他之前是 沙波 的工程师,后来加入了投资机构 Paradigm。施诺尔签名有什么用?在 比特币 协议中,判断用户是否有权限使用一笔资产时,除了需要经典的「数字签名」算法这个密码学组件之外,还构建了一种基于「锁定脚本」和「解锁脚本」的概念。在此之前,中本聪在设计 比特币 协议时,需要考虑到签名算法的签名长度、是否开源、是否有专利、是否经过足够长时间的安全验证、性能等多种条件,最终选择了椭圆曲线数字签名算法(ECDSA),还在其他专家的建议下选择了一条特殊的椭圆曲线 secp256k1。但是能满足上述这些条件的数字签名算法不止有 ECDSA,特别是有 施诺尔签名 这个从各个方面都不亚于 ECDSA 的数字签名算法。而此前中本聪没有采用的理由可能是因为在 比特币 白皮书诞生的那一年,Schnorr Signature 的专利才失效。没错,德国数学家和密码学家 Claus-Peter Schnorr 在 1990 年提交了相关专利申请并获批,而对于开源社区来说,在专利失效前是无法采用这套技术的,不然中本聪还真有可能在初版 比特币 协议实现中采用这套签名算法机制。相比较 ECDSA,Schnorr Signature 更像是 比特币 签名算法应该有的样子。性能提升和签名长短的优势就不提了,更重要的是它的「线性的」特点,可以很方便的进行密钥聚合,而不是通过其他特殊技巧实现多签。这个「线性」也很好理解,各个密钥的参与方可以通过简单的机制处理就可以聚合生成一个新的密钥。而这个聚合的机制可以通过很多种方式进行,比如 Blockstream 就提出了 MuSig 和后面的更新版 音乐2。在 MuSig2 的方案中,多个签名可以从他们各自的私钥中创建一个聚合公钥,然后共同为该公钥创建一个有效签名,并且从原来的三轮互动(沉思)优化为只需要两轮的交互即可。所以以一个 2-3 的多签交易来看,原来的传统方式是需要三个公钥加上两个签名才可以发起交易。在 Schnorr Signature 场景中,链上交易只需要一个聚合的公钥和一个签名即可,同时也就能降低很多的交易字节数,也就是降低转移成本。所以,这也就又能带来两个额外的优势:隐私超级多重签名。由于只需要暴露一个签名和公钥,所以对于使用 Schnorr Signature 的地址,很难判断这是否是一个多签的地址,那也就无法得知多签的组成是什么样的,对于外部观察者而言,这就是一个普通的地址。而对于之前的 比特币 脚本,在交易时是需要暴露出部分多签细节的,所以这也是为什么可以知道地址的多重签名构成。在比特币丰富的bitinfocharts列表中,后面的小标记表示多符号地址和多符号规则此前,因为脚本的限制而无法支持很大数量的多签,也因 Schnorr Signature 得以实现,这可能会打开很多此前无法想象的应用场景,比如开启一个数百个地址范围的多签地址,实现更去中心化或更多样化的资产托管等。但可能会提升链下交互的复杂度,只能寄希望于 音乐2 这些机制可以更快的研发和迭代。Taproot 是一套全新的 比特币 脚本结构,定义了如何使用和收取 Taproot 类交易的地址。它最早的概念来自于 比特币 开发者提出的 桅杆 (默克尔的抽象语法树),所以 Taproot 可以算是 MAST 的一种特殊实现。相比之前的 比特币 脚本逻辑,MAST 概念中最主要的优势是可以以更私密的方式,实现更多样化的逻辑。在构建一个 MAST 结构时,可以支持数量很多的脚本,如果这里以两个为例,用户可以提前准备一个主要的付款脚本和一个备用的支付脚本,最终生成一个递归上去的 MAST 根的哈希值。在使用这笔资产时,用户可以解锁主要的支付脚本,且不暴露备用的支付脚本细节,而是用它的哈希值。这也就意味着,对于一个无论多复杂包含多少解锁方案的的 MAST 根,用户在解锁这笔资产时,只需要暴露其中的一个脚本即可,其他更多的逻辑都可以用哈希值体现,而不暴露任何其他细节。说回到 Taproot,其本质也是类似的。而且这其中需要签名算法的「线性的」特性,所以 Taproot 才需要和 Schnorr Signature 绑定在一起。在 比特币 协议中,「锁定脚本(输出脚本)定义了如何收取 比特币 (UTXO公司)的规则,「解锁脚本(输入脚本)定义了如何使用 比特币 (UTXO公司)的规则,如果说前者是创造一个锁,那后者就是一把钥匙。在三年前的隔离见证(塞格维特)升级时, 比特币 的脚本规则进行了一次大规模的升级,提出了两种全新的脚本规则 P2WPKH (付费见证公钥散列)P2WSH公司 (付款给证人),也就是现在那些以 bc1 开头的地址,都是采用了上述的脚本规则之一。P2WPKH 通常用在普通的地址上,P2WSH 通常用在多签地址中。另外在隔离见证的升级中,脚本中还预留了一个版本号的概念,所有之前的 塞维特 脚本规则都采用了 第0页 作为版本号,所以也可以称为 Segwit V0。而 Taproot 则是在 Segwit 的框架上进行了升级,版本号升级为 V1,这也就是 BIP 341 标题中 Segwit V1 的由来,或者这套脚本规则也可以称为 P2TR (支付给主根),以对应 P2WPKH 和 P2WSH 的名字。例如,在事务中,输出脚本中的segwit版本号是v0它甚至可以构建一个多样化的多重签名系统在 Schnorr Signature 和 Taproot 的组合下,构建多签的方式也是多种多样的,比如 比特币 布道者 Steve Lee 就介绍 ( https://www.youtube.com/watch?v=fDJRy6K3yo) 过两种方法,分别是门限签名和 Musig 树(音乐键树)。比如对于一个交易所的热钱包而言,可能是通过三个私钥进行 2-3 的多签,分别是「交换私钥」、「可信第三方私钥」、「冷钱包备份私钥」。在门限签名中,多个签名者需要利用 MuSig 机制预先构建收款地址;使用时将两个签名进行聚合,即可实现交易。而在树状结构(音乐键树)中构建多签,就可以充分利用 Taproot 和 MAST 的优势了。同样是三种可以花费 BTC 的情况,将一种花费方式放在 MAST 的外部,而另外两种方式储存在 MAST 的两个节点中,以此构建收款地址。如果拥有交易所密钥和第三方密钥的签名,就可以绕过 MAST 树状结构,直接生成一个聚合的 Taproot 签名,以花费这笔交易。或者用户可以通过解锁「第三方钥匙+冷钱包钥匙」的脚本,加上 MAST 树另一边脚本的哈希,就可以构建出 Taproot 签名,以花费这笔交易。当然,用户还有第三种方式花费,也是一样的逻辑。Schnorr Signature 和 Taproot 需要通过软分叉的形式升级,也就是旧版本协议和客户端可以继续运行,无需做其他调整。但是未升级的节点是无法验证 Segwit V1 版本的 Taproot 类脚本的,会把他们当作是任何人都可以花费的脚本(任何人都可以使用脚本)。而对于那些未升级的钱包,可以继续接受和发送 SegWit V0 版本隔离见证地址,或者更早的传统地址类(第2页)。对于部分实施了 比普173 (bech32地址)逻辑的钱包而言,可能是可以支持将 BTC 发送给 Taproot (赛格威特V1)地址。不过,核心开发者依旧是鼓励大家升级,以便支持验证这些新的交易。软分叉一般可以通过多种方式激活,之前多次软分叉是使用 第9页 的规则激活的,需要依据大量的算力发出支持的信号,而 BIP 8 也是类似的规则。所以最终这套方案的上线还是需要矿工和矿场来投票和激活的。根据币印矿池整理的这份 Taproot 软分叉升级算力支持度来看,目前支持度超过90%。而选择哪个具体的激活规则,很多矿池还未公开确认。资料来源:https://taprootactivation.com激活提案的种类还是挺多的,不过从目前已经投票的情况来看,很多都倾向于 第8页 (假,1y)的这个方式,也就是这个软分叉并不会强制激活,有 1 年的投票区间,如果投票通过阈值,就会激活。在 Taproot 激活后,接下去的事情就交给下游生态了,不过这应该是一个相比 Segwit 更漫长的普及之路。由于 Schnorr Signature 和 Taproot 改进的更多是多签相关的场景,所以可以预料到第三方钱包、交易所都会比较谨慎,毕竟这不是一个立竿见影的技术升级。而对于那些有更复杂多签需求的专业用户、专业机构、甚至是依赖于多签的项目(如跨链方案),更可能是第一批吃螃蟹的人。无论如何,哪怕这不是一个用户感知度很高的技术升级,它最终也会因为各种基础设施的集成,实现更多样化的多签、私密性更强的地址类、潜在的复杂逻辑支持、降低交易成本等各个方面,最终影响到生态内所有的用户。

温馨提示:

文章标题:阅读比特币协议的重要里程碑:Schnorr签名和taproot soft fork升级

文章链接:https://www.btchangqing.cn/186347.html

更新时间:2021年01月28日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

阅读比特币协议的重要里程碑:Schnorr签名和taproot soft fork升级
区块链行情

以太坊WiFi嵌套的迁移还是停留?

2021-1-28 15:16:24

NFT区块链行情

观点:未来NFT博弈中的流动性挖掘?

2021-1-28 15:24:22

2 条回复 A文章作者 M管理员
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索