Threshold Signatures from Inner Product Argument: Succinct, Weighted, and Multi-threshold


Threshold Signatures from Inner Product Argument: Succinct, Weighted, and Multi-threshold
CCS 2023

在这里插入图片描述

笔记

后续的研究方向

摘要

阈值签名通过在一组签名者之间共享签名密钥来保护签名密钥,因此对手必须破坏阈值数量的签名者才能伪造签名。如果签名者具有不同的权重,则具有简洁签名和恒定验证时间的现有阈值签名将不起作用。这种加权设置在去中心化系统中越来越重要,尤其是在权益证明区块链中。本文提出了一种新的基于配对和离散对数的密码系统阈值签名的范例。我们的方案具有仅由7个组元素组成的紧凑验证密钥和由8个组元素构成的签名。验证签名需要8次幂运算和8次双线性对。我们的方案支持签名者之间的任意权重分布和任意阈值。它需要在通用的τ设置后进行非交互式预处理。我们在代数群模型中证明了我们的方案的安全性,并用golang实现了它。我们的评估表明,我们的方案实现了与标准(未加权)阈值签名相当的签名大小和验证时间。与现有的多重签名方案相比,我们的方案具有更小的公共验证密钥。

引言

对去中心化拜占庭容错(BFT)应用的日益增长的需求导致了阈值签名方案的大规模采用。许多最先进的BFT协议利用阈值签名来降低通信成本[2,40,43,50,54,64]。此外,标准化阈值密码系统的工作已经在进行中[56]。阈值签名方案[11,42]能够在多个签名者之间分发秘密签名密钥,使得每个签名者都可以使用其密钥共享在任何消息上生成部分签名。给定足够多的部分签名,任何不受信任的聚合器都可以将部分签名聚合为阈值签名。

传统上,阈值签名是在未加权的情况下研究的,其中每个签名者的权重相等;换句话说,阈值是通过签名者的数量来衡量的。然而,这并不适用于许多应用。例如,在权益证明(PoS)[36,43]区块链和去中心化自治组织(DAO)[33]中,每个签名者的权重由他们在系统中拥有的权益量决定,而阈值则由签名者的综合权益来衡量。另一个需要加权设置的应用程序是链下投票,其中加权投票离线聚合,只有最终聚合的投票才会发布到区块链。

现有阈值签名方案的另一个限制是,它们只支持单个阈值,并且该阈值需要先验地固定。这使得它们不适合需要细粒度阈值的应用[32]。例如,以太坊的权益证明共识协议Gasper[20]要求总权益的三分之二的阈值,但它是在多个区块上累积的[20]。使用具有单个固定阈值的阈值签名会使协议失去很大的灵活性。如果阈值太小,它可能会利用不足一些签名者,并需要更多的块来累积到所需的赌注阈值。另一方面,非常高的阈值可能导致没有足够的签名者跨过阈值。此外,拜占庭法定人数系统[22,52]或BFT[51,63]的变体使用不同阈值的法定人数,并可能受益于多阈值签名方案。另一个受益于多阈值签名的应用程序是oracle网络[32]。特别是,接受oracle网络数据的智能合约可以选择自己的一组oracle节点(具有信誉分数)和签名阈值[39]。

现有方法及其局限性

现有(未加权)阈值签名方案[11,47]𝑛签名者和阈值𝑡使用(𝑛, 𝑡)Shamir秘密共享[59],使得每个签名者都有一个签名密钥的共享。这些方案具有恒定的签名大小、验证密钥大小和验证时间。

这里有一个简单的民间传说方法来扩展这些方案以支持任意的权重分布。签名密钥是使用(‖𝒘 ∥1.𝑡)Shamir秘密共享方案,其中𝒘 ∥1是所有签名者的总重量。有份量的签字人𝑤然后接收𝑤签署密钥并扮演的角色𝑤艺术大师。(因此,这种方法也被称为虚拟化。)通过这种方法,签名者的签名成本和部分签名大小与其权重成比例,聚合器的成本与虚拟签名者的总数或总权重成比例𝒘 ∥1.在许多目标应用中,这些成本可能非常昂贵。例如,在以太坊PoS中,有超过500000个验证器(类似于我们上下文中的虚拟签名器),而且数量仍在增加。

或者,多签名方案[12]自然支持任意权重分布,并且每个签名者只需要一个签名密钥,而不管其权重如何。然而,它的主要缺点是验证密钥大小和验证时间随着签名者的数量线性增加。

加权阈值签名的另一种方法是使用通用简洁的非交互式知识论证(SNARK)。这里,每个签名者使用其签名密钥来计算部分签名,并将其发送到聚合器。然后,聚合器生成SNARK证明,证明它看到了来自签名者的有效部分签名,其组合权重至少为𝑡.然而,尽管最近取得了进展,但在聚合器上生成SNARK证明的成本仍然高得令人望而却步(§6)。

Micali等人[53]提出了一种具有次线性签名大小和验证时间的加权阈值签名。然而,他们的方案的具体签名大小很大。他们的方案的另一个缺点是聚合器需要收集具有明显高于所需阈值的组合权重的签名。

我们的结果

在本文中,我们提出了一种新的简洁的阈值签名范式,该范式支持签名者之间的任意权重分布,并同时支持所有可能的阈值。我们总结了这些特性,并将它们与表1中的现有方法进行了比较。至关重要的是,我们方案的签名大小和验证时间与签名者的数量无关𝑛,它们的权重分布和阈值𝑡.更准确地说,我们该方案具有仅8个椭圆曲线群元素的小签名大小,以及仅涉及8个群指数和8个双线性对的有效签名验证。每个签名者的签名密钥都是一个字段元素,每个签名人的签名成本是恒定的(与权重无关)。

我们方案的另一个好特性是,假设公钥基础设施(PKI),我们方案的设置阶段(在通用的τ设置[27,55]之后)是非交互式的,而标准阈值方案需要交互式分布式密钥生成(DKG)协议[28,42]。

我们构建的一个关键组成部分是一个新的有效内积自变量(IPA),它证明了公钥向量和指示已签名消息的签名者的向量之间的内积。我们的IPA使用双线性配对,在代数群模型中是非交互式的,并且具有恒定的证明大小和验证时间。展望未来,我们的构建可以被视为一个以非黑盒方式利用多重签名方案的专业SNARK。然而,正如我们在§2中所描述的,我们需要解决几个挑战,以实现理想的效率。

在完整版本[26]中,我们还讨论了我们的方案的几个扩展。首先,与多重签名类似,我们的签名方案可以用最小的开销来负责。其次,聚合器可以生成一个有效的证明,证明某个签名者被包括在聚合签名中。第三,我们的方案实现了一种新的多元宇宙阈值签名[5],具有相当的效率和较弱的设置假设。我们认为这些结果可能具有独立的利益。

评估

我们已经实现了(代码可在https://github.com/sourav1547/wts)我们的阈值签名方案。我们测量了签名、聚合和验证的时间成本,并将其与BLS阈值签名、多重签名、通用SNARK和[53]的方案进行了比较。我们的评估证实了我们方案的具体效率。使用BLS12381作为底层椭圆曲线,我们的签名大小仅为536字节,与签名者的数量无关。验证时间也只有8.21毫秒。此外,对于4096个签名器,聚合器只需要71毫秒就可以计算聚合签名。

当我们设想将我们的签名方案用于区块链应用程序时,我们已经实现了一个以太坊智能合约,用于验证我们的方案生成的签名。我们的评估表明,我们的签名验证只需要772k个气体,而拥有4096个签名者的多重签名方案需要超过2300万个气体。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

粥粥粥少女的拧发条鸟

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值