SCH:干货 | 一文读懂比特币的Taproot/Schnorr升级

本文作者为万向区块链、PlatON首席经济学家邹传伟。

2020年1月,由比特币核心开发人员PieterWuille于去年5月提出的Taproot/Schnorr软分叉升级提案已正式作为比特币改进提案发布,相关提案序号为BIP340-342。Taproot/Schnorr升级如果获得社区支持,将是比特币自闪电网络上线后最大的技术拓展。本文查询了BIP340-342相关文档,对Taproot/Schnorr升级做一个简单介绍。本文分三部分,第一部分简单介绍比特币目前的ECDSA签名算法,第二部分详细介绍Schnorr签名算法,第三部分介绍Taproot。

一、比特币ECDSA签名算法

比特币目前使用的ECDSA签名算法与建议的Schnorr签名算法,都属于椭圆曲线数字签名算法,它们使用的椭圆曲线都是secp256k1。这一部分先介绍椭圆曲线secp256k1,再介绍ECDSA签名算法。

椭圆曲线secp256k1

图1:椭圆曲线图示

上海市发布《上海市“元宇宙”关键技术攻关行动方案(2023—2025年)》:金色财经报道,上海市科学技术委员会发文称,经上海市政府同意,现已向各有关单位引发《上海市“元宇宙”关键技术攻关行动方案(2023—2025年)》。

文件中称,该方案以沉浸式技术与Web3技术为两大主攻方向,以自主创新和开放协同为推进路径,着力提升“元宇宙”领域科技自立自强能力。

1、围绕沉浸影音和沉浸计算领域,重点布局人工智能生成内容(AIGC)、跨尺度采集重建、空间计算、智能编码等关键技术攻关,降低场景构建成本、提升“元宇宙”内容制作灵活度,并在引擎技术等方面取得新进展。围绕新型显示和感知交互领域,重点布局近眼显示、多模传感等技术和终端设备研发,带动本市芯片、零部件与算法技术研发应用,深化内容与硬件联动,抢占“元宇宙”关键入口。

2、面向“元宇宙”去中心化/多中心化的组织规则,围绕区块链领域,重点布局Web3网络操作系统等技术研发,构建高性能、可扩展和安全可控的新型区块链体系架构,为“元宇宙”应用提供中立、可信的信息处理平台。[2023/6/14 21:34:49]

ECDSA签名算法

注:G坐标为,阶等于FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141,均采用16进制表达。

Binance期权将推出BNBUSDT每日期权:4 月 24 日消息,据官方公告,Binance 期权将于北京时间 4 月 25 日 16:00 推出 BNBUSDT 每日期权,为欧式期权合约。此后,BNBUSDT 每日期权将在每天 08:00(UTC)上市。若当天与另一份 BNBUSDT 每周、月度或季度期权合约到期,则不会有新的 BNBUSDT 每日期权上市。BNBUSDT 每日期权的交易有效期为两天,到期时间为 08:00(UTC)。[2023/4/24 14:23:29]

二、Schnorr签名算法

这一部分先介绍Schnorr签名算法主要特点,再分步骤介绍Schnorr签名算法及批验证,最后介绍基于Schnorr签名的多重签名算法。

主要特点

Schnorr签名算法与ECDSA签名算法使用同样的椭圆曲线secp256k1和哈希函数SHA256,所以在这个层面它们具有同样的安全性。Schnorr签名算法主要有以下优点。

第一,Schnorr签名算法有可证明安全性。在假设椭圆曲线离散对数问题难度的随机寓言模型,以及假设原像抗性和次原像抗性的通用群模型下,Schnorr签名算法具备选择消息攻击下的强不可伪造性。换言之,如果不知道Schnorr签名的私钥,即使有针对任意消息的有效Schnorr签名,也没法推导出其他有效Schnorr签名。而ECDSA签名算法的可证明安全性则依赖于更强的假设。

公链Sei发布白皮书:引入Twin-Turbo共识和并行化Cosmos链:10月28日消息,公链Sei Network发布白皮书,并表示“在协议级别,Sei利用Twin-Turbo共识和并行化来提高性能。Sei还拥有一个本地订单匹配引擎,以及进行重大的协议改进,以推动Tendermint Core达到速度极限。”

白皮书指出,Sei Network引入Twin-Turbo共识,以显著改善区块构建和处理时间。Sei Network也是第一个并行化Cosmos链,这允许同时处理独立交易,改善整体吞吐量和延迟问题。

据此前报道,今年8月,Sei Labs完成500万美元种子轮融资,Multicoin Capital领投,Coinbase Ventures、GSR、Flow Traders、Hudson River Trading、Delphi Digital、Tangent等参投。[2022/10/28 11:51:55]

第二,Schnorr签名算法具有不可延展性。签名延展性的含义是,第三方在不知道私钥的情况下,能将针对某一公钥和消息的有效签名,改造成针对该公钥和信息的另一个有效签名。ECDSA签名算法则有内在的可延展性,这是BIP62和BIP146针对的问题。

第三,Schnorr签名算法是线性的,使得多个合作方能生成对他们的公钥之和也有效的签名。这一特点对多重签名、批验证等应用非常重要,既能提高效率,也有助于保护隐私。而在ECDSA签名算法下,如无额外的见证数据,批验证相对逐个验证并无效率提升。

最后,Schnorr签名算法因为使用同样的椭圆曲线secp256k1和哈希函数SHA256,能兼容目前的比特币公私钥生成机制。

Schnorr签名算法

公私钥生成

英超联赛正与Sorare协商,可能签署每年3470万美元的NFT交易协议:10月28日消息,据外媒报道,英超联赛正与Sorare协商,双方可能会签署一份为期多年的NFT交易协议。据悉,该协议将包括一份为期多年的NFT形式的球员静态图像的合作。如果双方成功签署,每年交易金额总计约3470万美元,并取代英超联赛与ConsenSys的初步协议。(Theblock)[2022/10/28 11:51:11]

签名生成

签名验证

多平台游戏工作室Mighty Bear Games完成1000万美元的融资:3月26日消息,总部位于新加坡的多平台游戏工作室 Mighty Bear Games 完成 1000 万美元的融资,Framework Ventures 领投,Mirana、Sfermion、Dune Ventures、Sanctor Capital、Folius Ventures、Polygon、Play Future Fund、Everblue、Ancient8、Ready Player DAO、Razer、Avocado DAO、DWeb3 等参投。

据悉,Mighty Bear Games 此前宣布将于今年晚些时候发布的第一款 Web3 游戏 Mighty Action Heroes,该游戏被描述为“强调乐趣、技巧和混乱的多人第三人称大逃杀”。(nftgators)[2022/7/26 2:38:45]

批验证

图2:逐个验证签名的时间/批验证所需时间

Schnorr签名算法与多重签名

密钥生成

签名生成

签名验证

三、Taproot升级

Taproot升级可以视为默克抽象语言树的一个应用,而MAST又与支付到脚本哈希有关。因此,这部分依次介绍P2SH、MAST和Taproot。

P2SH

P2SH是2012年推出的一类新型交易,使复杂脚本的使用与直接向比特币地址支付一样简单。在P2SH中,复杂的锁定脚本被其哈希值所取代,称为兑换脚本。当随后出现的一笔交易试图花费这个UTXO时,必须包含与哈希值匹配的脚本,同时解锁脚本。P2SH的主要优点包括:一是在交易输出中,复杂脚本由哈希值取代,使得交易代码变短。二是将构建脚本的负担转移至接收方,而非发送方。三是隐私保护性更好。理论上,除了接收方,任何其他方都可以不知道兑换脚本中包含的支出条件。比如,在多重交易中,发送方可以不知道与多重签名地址有关的公钥;只在接收方支出资金时,才披露公钥。但P2SH也存在不足:一是所有可能的支出条件最终都必须被披露,包括那些实际上没有被触发的支出条件。二是在有多个可能的支出条件时,P2SH将变得繁复,会增加计算和验证的工作量。

MAST

MAST使用默克树来加密复杂的锁定脚本,其叶子是一系列相互不重叠的脚本。要支出时,只需披露相关脚本以及从该脚本通向默克树根的路径。比如,在图3中,要使用script1,只需披露script1、script2以及hash3即可。

图3:MAST,来源:?https://medium.com/@listedreserve/schnorr-and-taproot-cc4fa1edc828

MAST的主要优点包括:一是支持复杂的支出条件。二是不用披露未被执行的脚本或未被触发的支出条件,提供更好的隐私保护。三是压缩交易大小。随着脚本数量的增加,非MAST交易大小是线性增长,而MAST交易大小是对数增长。

图4:脚本数量与交易大小,来源:https://bitcointechtalk.com/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast-33fdf2da5e2f

Taproot

但P2SH与常见的支付到公钥哈希在表现上不一样,仍然有隐私保护问题。有没有可能让P2SH和P2PKH在链上看起来一样?这就是Taproot要解决的问题。

涉及有限数量签名者的脚本,可以分解成两部分:第一部分是多重签名,所有签名者都同意某一支出结果,称为「协作式支出」;第二部分称为「非协作式支出」,可以有非常复杂的脚本结构。这两部分是「或」的关系。比如,在图3中,Script3是一个2-of-2型多重签名,需要Alice和Bob两人都签名才有效,是「协作式支出」;Script1和2是「非协作式支出」。

图5:Taproot,来源:https://medium.com/@listedreserve/schnorr-and-taproot-cc4fa1edc828

参考文献

1Maxwell,Gregory,AndrewPoelstra,YannickSeurin,andPieterWuille,2018,"SimpleSchnorrMulti-SignatureswithApplicationstoBitcoin".

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:46ms0-1:220ms