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

      最后更新:2020-03-07 13:09:54 手机定位技术交流文章

      免责声明:本文旨在传达更多市场信息,不构成任何投资建议这篇文章仅代表作者的观点,并不代表火星财经的官方立场。

      小编辑:记得要注意哦

      资料来源:HashKey Capital Research

      原标题:比特币主根/施诺尔升级

      原标题:“比特币主根/施诺尔升级”文章:邹传伟、万向区块链、柏拉图首席经济学家

      2年1月,020年5月,比特币核心开发者Pieter Wuille提出主根/施诺尔软分歧升级方案如果得到社区的支持,Taproot/Schnorr升级将是自闪电网络上线以来比特币最大的技术扩张。本文查询了BIP 340-342的相关文件,并对主根/施诺尔升级做了简要介绍。本文分为三个部分。第一部分简要介绍了比特币当前的ECDSA签名算法,第二部分详细介绍了施诺尔签名算法,第三部分介绍了主根

      1,比特币ECDSA签名算法

      目前比特币中使用的ECDSA签名算法和提出的Schnorr签名算法都是椭圆曲线数字签名算法,它们使用的椭圆曲线是secp256k1这一部分首先介绍了椭圆曲线secp256k1,然后介绍了ECDSA签名算法。

      (一)椭圆曲线SECP 256K1

      3-

      图1:椭圆曲线图

      5-

      (二)ECDSA签名算法

      注:G坐标

      (79 BE 667 EF9 DCBBAC 55A 06295 CE 870 B 07029 BFCDB2DCE 28D 959 F 2815 B 16 F 81798

      7-

      2,Schnorr签名算法

      这一部分首先介绍了Schnorr签名算法的主要特点,然后一步步介绍了Schnorr签名算法和批量验证,最后介绍了基于Schnorr签名的多重签名算法。

      (1)

      schnoor签名算法和ECDSA签名算法的主要特点是使用了相同的椭圆曲线secp256k1和散列函数SHA256,所以它们在这一级具有相同的安全性。施诺尔签名算法有以下主要优点

      第一,施诺尔签名算法具有可证明的安全性在随机预言模型下,假设椭圆曲线离散对数问题的困难性,在一般群模型下,假设图像前抵抗和图像后抵抗,Schnorr签名算法在选择性消息攻击下具有很强的不可伪造性(SUF-CMA)换句话说,如果Schnorr签名的私钥是未知的,即使任何消息都有一个有效的Schnorr签名,也不能导出其他有效的Schnorr签名。然而,ECDSA签名算法的可证明安全性依赖于更强的假设。

      秒,施诺尔签名算法具有不可延展性签名可扩展性意味着第三方可以在不知道私钥的情况下将公钥和消息的有效签名转换为公钥和消息的另一个有效签名。ECDSA签名算法具有内在的可扩展性,这是BIP 62和BIP 146的问题。

      第三,Schnorr签名算法是线性的,因此多个伙伴可以生成对其公钥之和也有效的签名。这一特性对于多签名和批量验证等应用非常重要,它不仅可以提高效率,还有助于保护隐私。然而,在ECDSA签名算法下,如果没有额外的见证数据,与逐个验证相比,批量验证并不能提高效率。

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

      (2) Schnorr签名算法

      公钥和私钥生成

      10-

      签名生成

      12-

      签名验证

      批量验证

      15-

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

      (3) Schnorr签名算法和多重签名256因此,本节依次介绍P2SH、MAST和主根

      (1) P2SH

      P2SH是2012年推出的一种新型交易,使用复杂的脚本就像直接支付比特币地址一样简单。在P2SH中,复杂的锁定脚本被它的哈希值替换,该哈希值被称为赎回脚本当后续事务试图使用该UTXO时,它必须包含一个与哈希值匹配的脚本,并同时解锁该脚本P2SH的主要优点包括:第一,在事务输出中,复杂的脚本被哈希值替换,这使得事务代码更短第二是将构建脚本的负担转移给接收者,而不是发送者。第三,隐私得到了更好的保护。理论上,除了接受者,没有人知道包含在兑换脚本中的支付条件。例如,在多个交易中,发送者可能不知道与多个签名地址相关的公钥;只有当接收者花钱时,公钥才被公开。然而,P2SH也有一些缺点:首先,所有可能的支出条件最终都必须披露,包括那些没有实际触发的条件。第二,当有许多可能的支出条件时,P2SH将变得复杂并增加计算和验证的工作量。

      (2) MAST

      MAST使用默克树来加密复杂的锁定脚本(图3),其叶子是一系列彼此不重叠的脚本(例如,多个签名或时间锁定)支出时,只需披露相关脚本和从脚本到默克树根的路径例如,在图3中,为了使用脚本1,只需要公开脚本1、脚本2和散列3。

      图3: mask,source:https://medium.com/@ listedreserve/schnoor-and-taproot-cc4fa 1 EDC 828

      mask的主要优势包括:第一,支持复杂的支出条件第二是提供更好的隐私保护,而不披露未执行的脚本或未触发的支出条件。第三是减少交易量随着脚本数量的增加,非MAST事务的大小线性增加,而MAST事务的大小以对数形式增加(图4)

      图4:脚本数量和事务大小。资料来源:https://bitcointechtalk . com/what-is-a-bitcoin-merged-abstract-syntax-tree-mask-33 fdf 2d a5 e2f

      (iii)taproot

      ,但P2SH在性能上不同于普通的付费公开密钥哈希(P2PKH),仍然存在隐私保护问题有没有可能让P2SH和P2PKH在链上看起来一样?这就是塔普鲁特想要解决的问题

      脚本涉及有限数量的签名者,可分为两部分:第一部分是多重签名,所有签名者都同意一定的支付结果,称为“协作支付”;第二部分称为“非协作性支出”,可以有非常复杂的脚本结构。这两部分是“或”的关系例如,在图3中,脚本3是2对2类型的多重签名,它要求爱丽丝和鲍勃都签名才能有效,这就是“协作消费”。脚本1和2是“非协作性支出”

      图5:主根,来源:https://medium.com/@ listedreserve/schno or-and-主根-cc4fa1edc828

      24-

      参考文献

      1 Maxwell,Gregory,Andrew Poelstra,Yannick Seurin和Pieter Wuille,2018,“简单施诺尔多重签名及其对比特币的应用”。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/429.html

          热门文章

          文章分类