Pixel: Multi-signatures for Consensus

This paper published in Conference of USENIX Security Symposium 2020.

摘要

在权益证明(PoS)和有准入机制的区块链中的通用架构中,包含了一个验证委员会负责同意并签署每个新的交易区块,这些区块由网络中的所有用户验证、传播和存储。然而,**后发腐败攻击(长程攻击)**对这些设计构成了常见的威胁,因为敌方可以在委员会的验证者认证了一个区块之后进行破坏,使用他们的签名密钥来认证一个不同的区块。因此,设计高效和安全的数字签名用于PoS 区块链,可以大大减少带宽、存储和节点的计算要求,从而实现更高效的应用。

我们提出了Pixel,一个为区块链使用而优化的基于配对的前向安全多签名方案,在带宽、存储需求和验证工作方面实现了大幅节省。Pixel签名包含两组元素,无论签名者的数量如何,都可以使用三个配对和一个指数进行验证,并支持将单个签名非交互式地聚合到一个多重签名。Pixel具前向安全性质,并且满足签名者随着时间的推移不断发展他们的密钥,这样一来,新的密钥不能用于在旧区块上签名,以保护区块链免受后发腐败的攻击。我们展示了如何将Pixel整合到任何PoS区块链中。接下来,我们评估了 Pixel在一个真实世界的PoS区块链实施中,显示它在存储、带宽和区块验证时间方面的性能。我们的方案极具成效,Pixel将1500个交易的区块的大小减少了35%,验证时间减少38%。

技术概要

看懂这篇文章,建议自行补充知识点,以下描述均为个人理解:
1.前向安全性(即时主密钥泄露也可以保证历史通讯的安全)
2.双线性对(双方互不了解,根据加密合约进行工作,得出一种结果,这个结果的反推非常艰难)
3.BLS签名方案(聚合签名,不具有前向安全性)
4.加密方案的选择取决于数据的量级,Pixel方案是Algorand团队设计的,因此需要了解Algorand的基本特点。

构建基于分层身份的加密(HIBE)的前向安全签名,并增加了在同一消息上安全地聚合签名以及生成无可信集的公共参数的能力,以实现:

生成与更新密钥

防止恶意密钥攻击的安全性

无信任装置

有益效果

本文提出了Pixel签名方案,这是一种基于配对的前向安全多签名方案,可用于基于PoS的区块链,可大幅节省带宽和存储要求。为了支持总共T个时间段和一个大小为N的委员会,多重签名仅包含两个组元素,并且验证仅需要三对配对,一个乘幂和N -1个乘法。像素签名几乎与BLS多重签名一样有效,而且还满足前向安全性。此外,就像在BLS多签名中一样,任何人都可以非交互地将单个签名聚合到一个多签名中。

为了验证Pixel的设计,将Pixel的Rust实施的性能与以前的基于树的前向安全解决方案进行了比较。展示了如何将Pixel集成到任何PoS区块链中。接下来,在Algorand区块链上评估Pixel,表明它在存储,带宽和块验证时间方面产生了显着的节省。我们的实验结果表明,Pixel作为独立的原语并在区块链中使用是有效的。例如,与一组128位安全级别的N = 1500个基于树的前向安全签名(对于T = 232)相比,可以认证整个集合的单个Pixel签名要小2667倍,并且可以被验证快40倍。像素签名将1500次事务的Algorand块的大小减少了约35%,并将块验证时间减少了约38%。

相关讨论

背景

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
所有基于PoS的区块链和包含准入机制的区块链均具有通用结构,其中的节点运行共识子协议,对添加到链上的区块达成共识,这样的共识协议需要节点检查proposal并签名,签名足够多才可以将区块添加到链上。
因为共识协议通常涉及成千上万的节点,为了达成共识而共同努力,因此签名方案的效率至关重要。为了使局外人能够有效地验证链的有效性,签名应该尽可能紧凑以进行传输,并应快速进行验证。多重签名方案能够使许多签名者在公共消息上创建紧凑而有效的可验证的签名,因此很合适。
多重签名是数字签名的升级,它让区块链相关技术应用到各行各业成为可能。在实际的操作过程中,一个多重签名地址可以关联n个私钥,在需要转账等操作时,只要其中的m个私钥签名就可以把资金转移了,其中m要小于等于n,也就是说m/n小于1,可以是2/3, 3/5等等,是要在建立这个多重签名地址的时候确定好的。

后期攻击的变体

1.短程变体:对手试图共识达成前腐蚀委员会成员
应对→通过假设攻击延迟长于共识子协议的运行时间

2.远程变体:Caspher通过分叉选择规则,从不恢复已完成的区块。此外假设客户以足够的规律性登录,以获得一个完整的日期更新视图。

动机

提出Pixel的主要原因有两个:
1.基于PoS的区块链容易受到后期腐败攻击,因此要设计具有前向安全性的签名方案;
2.奔着设计更安全的数字签名方案,节省带宽、存储和算力需求,能够更好地配合区块链食用。
在这里插入图片描述

贡献

1.提出了Pixel数字签名方案;
2.展示了如何将Pixel整合到PoS区块链系统并提升性能;
3.1500个事务量级的情况下,对比BLS等方案,Pixel有效减少了块大小至35%,验证时间快了38%。

note:
Forward-secure signatures provide a clean solution against both attacks, 无需分叉选择规则或者有关对手和客户的其他假设.

Only approved parties may join the network, our signature scheme can similarly be applied to this setting 以实现前向保密,减少通信带宽并生成紧凑的块证书.(准入机制设置)

前向安全签名

在这里插入图片描述
签名者在输入的最大时间段T上运行密钥生成算法,在第一时间段生成pk和sk1;
签名者在密钥更新阶段,使用密钥更新算法将时间段t的密钥skt更新为下一个周期的skt+1,这个更新方案在t0>t的情况下提供快速转发更新算法,比重复使用更新算法的效率高了很多;
在输入当前签名密钥skt消息m包含在M的集合内,签名者可用这个算法计算签名;
任何人都可以通过运行验证算法来验证消息在公钥pk下的时间段T内的签名,算法返回1表示签名有效,否则返回0。

基于BM的算法优势在于:
1.依靠非对称双线性组来提高效率,签名位于G1xG2中,而非G2^2 ,这样可以给出公共参数到G1中,不用生成一致的公共参数

2.密钥生成算法所生成的pk更小,参数设置提升了安全性.

安全性的保证通过以下属性建立:
1.Key update
2.Signing
3.Break-in

pixel:前向安全多重签名

Pixel解决了什么问题

在权益证明(PoS)和有许可的区块链中,验证节点会同意并签署每个包含交易的区块。这些区块由网络中的所有用户验证、传播和存储。然而,由于敌手可能会在委员会验证者认证一个块后引诱其腐败(corrupt committee verifiers),并使用其签名密钥认证其他块,由此引发的变节攻击对这类设计构成了共同的威胁。因此大多数 PoS 或联盟链系统都会选择使用前向安全的签名算法来使得变节攻击无效化, 比如 Ouroboros Genesis, Pra,Thunderella,Snow White 等区块链方案都采取了类似的解决方案。除此以外,为 PoS 区块链设计高效和安全的数字签名可以大大减少节点的带宽、存储和计算需求,从而实现更高效的应用。正是因为这些原因,Algorand 设计了 Pixel,一个专为优化区块链带宽和计算资源占用的前向安全的多签算法。

Pixel如何工作

在这里插入图片描述
在这里插入图片描述

Pixel整合基于PoS区块链

Pixel 集成: 为了对块 B 进行投票,协议里的每个成员使用具有当前区块高度的 Pixel 对 B 进行签名。当我们看到N个委员会成员签名的集合 σ1,σ2,…,σN 在同一区块 B 上签名时即可达成共识,其中 N 是一个固定阈值。最后,我们将这 N 个签名聚合为一个单一的多签 ∑,并且将(A,∑)组成为一个所谓的区块证书,然后将区块 B 附加到区块链上。

注册公钥: 希望参与到共识当中的每个用户都需要注册一个参与签名密钥(participation signing key)。用户首先对 Pixel 密钥对进行采样并生成相应的 PoP(Proof of Participation)。然后,用户发出一个特殊交易(使用他的交易用密钥签名)来注册新的参与密钥,交易中会包含 PoP 。被选中在 r 轮进行共识的 PoS 验证节点会检查(a)该交易的有效性和(b)PoP 的有效性。如果两个检查都通过,则使用新的参与密钥更新用户帐户。在此之后,如果该用户被选中参与共识,用户将使用 Pixel 在区块上签名。

投票生成: 若要对区块 t 投票,用户首先更新其参与密钥以对应区块高度,随后再使用正确的密钥对区块进行签名,并将签名广播到网络。

传播和聚合签名: 单个验证节点的签名将通过网络传播,直到我们在同一块 B 上看到 N 个验证节点的签名为止。请注意,Pixel 支持非交互式和聚合签名:前者意味着在广播后任何一方都可以在已有签名上叠加签名,而无需与原始签名者通信;后者意味着我们可以在多重签名中添加一个新的签名来获得一个新的多重签名。实际上,这意味着传播节点可以对任意数量的验证节点签名上叠加新的签名并传播结果,直到获得足够的签名并形成区块证书。或者,节点可以在将块写入磁盘之前聚合所有签名。也就是说,一个节点在收到一个块的足够的认证投票后,可以将 N 个验证节点的签名聚合成一个多签,然后将该块和证书写入磁盘。为了加快验证单个委员会成员签名的速度,一个节点可以预先计算e(h,y),其中 y 为拥有最高质押数量的用户。

密钥更新: 在区块链 blockchain 中使用 Pixel 时,时间是一一对应于共识协议中的区块高度或子步骤的。简单地说,当将时间与区块高度关联时,这意味着所有合格的验证节点都应该在每次形成新块和更新轮数时更新其 Pixel 密钥。为简单起见,假设每个验证节点最多签署一个块(如果不是,只需在块编号后附加一个计数器,并将其用作时间)。如果某个节点被选为区块 t 的验证节点,则该节点应首先将其密钥更新到 skt(对于任何 t0>t,Pixel 支持 skt 到 skt0 的“快进”密钥更新),并且一旦对区块签名,应该立即将其密钥更新到skt+1,然后传播签名。需要注意的是,当节点未被选为验证节点时,不需要进行密钥更新。

Pixel特性

Pixel 签名由两个元素组成,无论签名者的数目如何,都可以通过三对一指数运算进行验证,并且支持将单个签名非交互式的聚合为多个签名。Pixel 签名还具有前向安全性,允许签名者随着时间的推移更新密钥,这样新密钥就不能用于在旧块上签名,从而防止对区块链的变节攻击。同时我们对 Pixel 在现实世界中的区块链上的表现进行了评估,结果显示它在存储、带宽和区块验证时间上有显著优化。特别是,Pixel 签名将包含1500笔交易的区块的签名大小减少了35%,并将区块验证时间减少了38%。

Pixel评估

Pixel compared to BM-ED and BM-BLS

在Algorand 项目上进行实验评估,与Algorand项目自带的防止后腐败攻击的解决方案BM-Ed25519以及BLS多签名解决方案做对比。

存储空间上
在这里插入图片描述
Algorand使用基于中继的传播模型,其中用户的节点连接到中继网络(具有更多资源的节点)。如果在传播过程中没有聚合,则中继和常规节点的带宽像素节省来自较小的签名大小。每个中继可以服务数十个或数百个节点,这取决于它提供的资源。

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43331100/article/details/127549264