我们当前的实现分别验证捆绑包中的每个用户操作。这是一种非常直接的验证方式,但可能会造成浪费。检查签名最终可能会在 gas-wise 方面变得昂贵,因为这样做需要相当多的加密算法。
如果我们可以只用一个签名而不是多个签名同时验证许多操作,那不是很好吗?
这样做取决于密码学中的一个概念,聚合签名。
支持聚合的签名方案提供了一种方法,给定多个使用不同密钥签名的消息,以生成单个组合签名,以便验证组合签名意味着所有组成签名也有效。
支持聚合的签名方案的一个常见示例是 BLS。
这种优化对于实现汇总特别有用,因为汇总的主要目标是数据压缩,而签名聚合让我们可以压缩签名部分。
有关签名聚合节省空间的更多信息,请参阅 Vitalik 关于该主题的推文。
恰好,我们看到并非捆绑包中的所有