Schnorr 签名系列:批量验证

互联网 阅读 401 2024-04-28 15:35:56

作者:Nadav Kohen

来源:https://suredbits.com/schnorr-applications-batch-verification/

前篇中文译本

img

迄今为止,我们已经讨论了什么是 Schnorr 签名(中文译本),为什么它们是安全的(中文译本),以及 Schnorr 签名的变种如何实现隐私和可扩展的多签名方案(中文译本)、适配器签名和隐形脚本(中文译本)。今天我们要来看另一个 Schnorr 签名可以给比特币生态系统带来的重大提升:批量验证!

  • Schnorr 签名系列

如 BIP 340 所言,“已被标准化的 ECDSA 签名的具体形式,在批量验证时并不比单独验证更有效率,除非增加额外的见证数据。改变签名方案提供了一个解决这个问题的机会。” 换句话说,在 ECDSA 当前的形式下,批量验证大量的 ECDSA 签名,没有办法比单个单个地验证更快。引入一种新的签名标准(Schnorr 签名),让我们可以启用可称为 “批量验证” 的功能,也即是可以一次性验证许多签名,并且比一个一个验证它们还要更快。

在我们讲解这是怎么做到的之前,我们先来想想批量验证对比特币网络可能有哪些好处。很多时候我们都需要验证许多签名,举个例子,在验证一个新区块的时候,网络中的每一个节点都验证每一笔交易所用的每一个输入的每一个数字签名。而在当前实现的 Schnorr 批量验证程序中,批量验证一个区块中的所有签名,将比单个单个验证每一个签名,快两倍以上。

可能更让人激动的是,在新节点初次下载区块(IBD)期间,它要验证整条区块链的每一个签名;使用批量验证,加速的效果随着需要验证的签名的数量呈对数上升,所以,如果节点需要验证 10 亿个签名,使用批量验证可以得到 4 倍的加速效果!(当然我也要指出,这个在今天可能是不可行的,因为它需要大量的内存空间。)现在比特币区块链上的签名已经有 10 亿量级了,但这种加速效果却与我们无缘,因为它们都是 ECDSA 签名。不过,未来数十年里,包含了 Schnorr 签名的区块在 IBD 时将能从批量验证中收益。

虽然这两个用途似乎已经是批量验证在比特币中最基础、最广泛的应用了,但我还是要提一句:任意组合的 Schnorr 签名都可以批量验证。这就意味着,你可以同时验证支持 BIP-340 的多个区块链(例如,未来的 Liquid 和比特币)。此外,甚至在几十个几百个参与者参与的交互式多方协议中,使用 MuSig 传递碎片签名时,也能看到轻微的加速效果。

如果你想知道一定数量签名的验证到底能快多少,请看 BIP340 所附的这个图表。

批量验证的原理

批量验证算法的语句只比普通验证的稍微复杂一点;所以,跟按顺序执行普通验证相比,你可能很难一下子看出来加速效果来自哪里。

给定有 n 个公钥、消息和签名元组 (Pi , mi , (Ri , si)),验证者生成 n 个随机数 a1, … , an ,来计算 n 个挑战哈希值 ei = H(Pi , Ri , mi) ,然后检查:

image.png

注意,这就是把所有的验证等式(si∗G?=Ri+ei∗Pi)在等号两端乘以相应的 ai ,再加总起来。因此,如果所有的签名都是有效的,那上面这个等式也避开成立。不过,注意,如果我们不生成随机数 a1, … , an ,直接把所有的验证等式都加起来,那是有可能包含了许多无效的签名,但批量验证检查不出来的。

举个例子,如果 (R, s) 和 (R’, s’) 都是有效的签名,但 (R, s’) 和 (R’, s) 不是,但后面一对签名仍然能通过批量验证(如果批量验证只是简单加总的话)。甚至更阴险的是,有人可能会想在区块里塞入无效的签名 (R1, s1),TA 可以计算出另一个无效签名 (R2, s2),使得

image.png

有许多办法,会比先做 n 次乘法再做 n-1 次加法更快。我在这里介绍一个最简单的算法,只需更少的操作即可计算完成,叫做 “Bos-Coster 算法” 虽然在计算很大的一批签名时,其它算法(就是 Pippenger 算法)的效率更高。


  • 算法流程如下:给定要计算上面的式子

  1. 重写表达式,按照系数的大小排列每一项,因此,在最终的表达式中,a1 是最大的系数,a2 次之,以此类推将第一个和 a1∗P1+a2∗P2重写为 (a1–a2)∗P1+a2∗(P1+P2);如果第一项的系数为 0,那第一项就可以直接舍弃了。注意,点加法 (P1 + P2) 要比点乘法便宜很多,这样我们就能大大降低第一项的系数(因为 a2 是原式中第二大的系数)

  2. 不断重复上述两步,直至只剩下一个项。最后一项要么是 a * P,要么是 0。如果是前者,那 a 将是原始系数的最大公约数。同时,a 在绝大多数时候都是最小的系数,尽管它几乎总是 1(尤其对于很大的 n)。


使用这个算法就能省去绝大多数点乘法,最终运算会比做 n 次点乘法快得多。

我们可以在批量验证等式中运用这种算法(或其它更有效率、更复杂的算法),先把等号左边的全搬到右边:

image.png

现在右边已经是一连串点加法的形式。如果验证能够通过,我们的算法应该会导致相互抵消,最后变成 0,一次点乘法都不用做!

好奇的读者可以读读这种算法的总结。此外,这里有一个 Pull Request,是为 Schnorr 签名加入批量验证算法。

除了解释 Schnorr 签名是什么以及它何以是安全的,现在我们已经看过了 Schnorr 签名是如何实现多签名和适配器签名、让比特币的合约能更加隐私、更可扩展的。现在我们又看到了批量验证如何节约验证时间。但我们还有许多可谈的!敬请期待下周的 Schnorr 门限签名介绍!


(完)

免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:Schnorr 签名系列:门限签名 下一篇:返回栏目

相关资讯

  • 深度了解加密货币挖矿及其关键组成部分
    深度了解加密货币挖矿及其关键组成部分

    ​挖矿(Mining),是指透过执行工作量证明(POW)、POS或其他类似的电脑算法来获取加密货币,例如比特币(BTC)、以太币(ETH)、莱特币(LTC)等。 由于此名称源自对采矿的比喻,进行挖矿工作的人通常称为矿工。

    加密货币知识 2024-05-11 18:28 580
  • 一文带您秒懂DAO在去中心化自治组织的工作原理与优势
    一文带您秒懂DAO在去中心化自治组织的工作原理与优势

    DAO(Decentralized Autonomous Organization),即去中心化自治组织,是一种利用区块链技术实现的自治组织形式。DAO组织运行的规则被编写在智能合约的代码中,当满足特定条件时,这些规则会自动触发算法以执行相关操作。这样的设计保证了每个成员都必须遵守规则,同时能够追踪金融交易并执行组织的软件规则。

    区块链知识 2024-05-11 18:20 388
  • 深度解析比特币到底是不是骗局?
    深度解析比特币到底是不是骗局?

    比特币是第一种加密货币,于2008年由化名为中本聪的人创建,其总量恒定为2100万枚,具有去中心化、全球化和匿名性等特征。比特币不仅仅是一种数字货币,还是多项技术的结合,无需中介即可实现点对点价值转移。

    比特币知识 2024-05-11 18:12 243
  • 盘点四月份大额代币YGG、AGIX、CTSI解锁事件
    盘点四月份大额代币YGG、AGIX、CTSI解锁事件

    代币解锁是代币经济学中的一个重要环节,其目的在于通过在指定时间内向市场释放锁定的代币,以确保团队、投资者和社区用户之间的激励机制保持一致性。这一过程通常通过设定一个详细的解锁时间表来实现,旨在逐步引入流通的代币,以避免市场过度波动。

    加密货币知识 2024-05-11 18:07 238
  • 派币(Pi Network)在加密货币挖矿APP的未来与挑战
    派币(Pi Network)在加密货币挖矿APP的未来与挑战

    派币(Pi Network)是一个比较奇特的加密货币项目,主打的是手机APP挖矿。由于围绕Pi 生态系统的炒作已经持续多年,而且Pi 加密货币仍处于预售模式,一些业内人士认为这可能一个骗局。

    加密货币知识 2024-05-11 17:55 303
  • 盘点2024年上半年数字货币TOP10
    盘点2024年上半年数字货币TOP10

    2024年以来,伴随着在 ETF 主流采用的推动,以及比特币减半事件的带动下,许多加密货币在 2024 年第一季度已经取得了巨大收益。在这里,我们通过查看当前的市值、项目架构以及可能推动未来增长的关键因素,从而寻找2024年最具潜力的十大数字货币。为投资者提供一个全面的市场参考。

    加密货币知识 2024-05-11 17:41 509
  • 探索星际文件系统IPFS的工作原理及特性
    探索星际文件系统IPFS的工作原理及特性

    星际文件系统是一种点对点的分布式文件系统, 旨在连接所有有相同的文件系统的计算机设备。在某些方面, IPFS类似于web, 但web 是中心化的,而IPFS是一个单一的Bittorrent 群集, 用git 仓库分布式存储。换句话说, IPFS 提供了高吞吐量的内容寻址块存储模型, 具有内容寻址的超链接。这形成了一个广义的Merkle DAG 数据结构,可以用这个数据结构构建版本文件系统,区块链,甚至是永久性网站。IPFS 结合了分布式哈希表, 带有激励机制的块交换和自我认证命名空间。IPFS 没有单故障

    比特币知识 2024-05-11 17:08 587
  • 了解闪电网络在比特币Layer2解决方案中的重要性
    了解闪电网络在比特币Layer2解决方案中的重要性

    闪电网络(Lightning Network,简称LN),是比特币的Layer2解决方案,旨在解决比特币和一些其他区块链的的可扩展性问题,提升交易速度并节省成本。

    比特币知识 2024-05-11 17:02 137