http://www.7klian.com

邹传伟:读懂比特币 ECDSA 与 Schnorr 签名算法,及 Taproot 进级

密钥生成

MAST 的主要利益包罗:一是支持巨大的支出条件。二是不消披露未被执行的剧本或未被触发的支出条件,提供更好的隐私掩护。三是压缩生意业务巨细。跟着剧本数量的增加,非 MAST 生意业务巨细是线性增长,而 MAST 生意业务巨细是对数增长(图 4)。

涉及有限数量签名者的剧本,可以解析成两部门:第一部门是多重签名,所有签名者都同意某一支出功效,称为「协作式支出」;第二部门称为「非协作式支出」,可以有很是巨大的剧本布局。这两部门是「或」的干系。好比,在图 3 中,Script 3 是一个 2-of-2 型多重签名,需要 Alice 和 Bob 两人都签名才有效,是「协作式支出」;Script 1 和 2 是「非协作式支出」。

参考文献

(一) P2SH

P2SH 是 2012 年推出的一类新型生意业务,使巨大剧本的利用与直接向比特币地点付出一样简朴。在 P2SH 中,巨大的锁定剧本被其哈希值所代替,称为兑换剧本(Redeem Script)。当随后呈现的一笔生意业务试图耗费这个 UTXO 时,必需包括与哈希值匹配的剧本,同时解锁剧本。P2SH 的主要利益包罗:一是在生意业务输出中,巨大剧本由哈希值代替,使得生意业务代码变短。二是将构建剧本的承担转移至吸收方,而非发送方。三是隐私掩护性更好。理论上,除了吸收方,任何其他方都可以不知道兑换剧本中包括的支出条件。好比,在多重生意业务中,发送方可以不知道与多重签名地点有关的公钥;只在吸收方支出资金时,才披露公钥。但 P2SH 也存在不敷:一是所有大概的支出条件最终都必需被披露,包罗那些实际上没有被触发的支出条件。二是在有多个大概的支出条件时,P2SH 将变得繁复,会增加计较和验证的事情量。

批验证

二、Schnorr 签名算法

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

签名生成

第一,Schnorr 签名算法有可证明安详性。在假设椭圆曲线离散对数问题难度的随机寓言(Random Oracle)模子,以及假设原像抗性(Preimage Resistance)和次原像抗性(Second Preimage Resistance)的通用群模子下,Schnorr 签名算法具备选择动静进攻下的强不行伪造性(Strong Unforgeability under Chosen Message Attack,SUF-CMA)。换言之,假如不知道 Schnorr 签名的私钥,纵然有针对任意动静的有效 Schnorr 签名,,也没法推导出其他有效 Schnorr 签名。而 ECDSA 签名算法的可证明安详性则依赖于更强的假设。

原文标题:《比特币的 Taproot / Schnorr 进级》

第二,Schnorr 签名算法具有不行延展性(Non-malleability)。签名延展性的寄义是,第三方在不知道私钥的环境下,能将针对某一公钥和动静的有效签名,改革成针对该公钥和信息的另一个有效签名。ECDSA 签名算法例有内涵的可延展性,这是 BIP 62 和 BIP 146 针对的问题。

(二) ECDSA 签名算法

(一)椭圆曲线 secp256k1

(三) Taproot

但 P2SH 与常见的付出到公钥哈希(Pay-to-Public-Key-Hash,P2PKH)在表示上纷歧样,仍然有隐私掩护问题。有没有大概让 P2SH 和 P2PKH 在链上看起来一样?这就是 Taproot 要办理的问题。

Taproot/Schnorr 软分叉进级提案正式作为 BIPs 宣布,万向区块链首席经济学家邹传伟先容了比特币今朝的 ECDSA 签名算法,以及提案中 Schnorr 算法与 Taproo 进级。

2020 年 1 月,由比特币焦点开拓人员 Pieter Wuille 于去年 5 月提出的 Taproot/Schnorr 软分叉进级提案已正式作为比特币改造提案(BIPs)宣布,相关提案序号为 BIP 340-342。Taproot/Schnorr 进级假如得到社区支持,将是比特币自闪电网络上线后最大的技能拓展。本文查询了 BIP 340-342 相关文档 ,对 Taproot/Schnorr 进级做一个简朴先容。本文分三部门,第一部门简朴先容比特币今朝的 ECDSA 签名算法,第二部门具体先容 Schnorr 签名算法,第三部门先容 Taproot。

签名验证

均回收 16 进制表达。

注: G 坐标为

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

三、Taproot 进级

Taproot 进级可以视为默克抽象语言树(Merkelized Abstract Syntax Tree,简称 MAST)的一个应用,而 MAST 又与付出到剧本哈希(Pay-to-Script-Hash,简称 P2SH)有关。因此,这部门依次先容 P2SH、MAST 和 Taproot。

(79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798, 483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8),
一、比特币 ECDSA 签名算法

比特币今朝利用的 ECDSA 签名算法与发起的 Schnorr 签名算法,都属于椭圆曲线数字签名算法,它们利用的椭圆曲线都是 secp256k1。这一部门先先容椭圆曲线 secp256k1,再先容 ECDSA 签名算法。

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

图 4:剧本数量与生意业务巨细,来历:https://bitcointechtalk.com/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast-33fdf2da5e2f

签名生成

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

阶便是

(二) MAST

MAST 利用默克树来加密巨大的锁定剧本(图 3),其叶子是一系列彼此不重叠的剧本(好比,多重签名或时间锁)。要支出时,只需披露相关剧本以及从该剧本通向默克树根的路径。好比,在图 3 中,要利用 script 1,只需披露 script 1、script 2 以及 hash 3 即可。

撰文:邹传伟,万向区块链、PlatON 首席经济学家

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

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141,

(二) Schnorr 签名算法

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

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!

相关文章阅读