聚合签名我们当前的实现方案,是分别验证捆绑包中的每个用户操作,这是一种非常直接的验证方式,但会造成gas的浪费,检查签名最终可能会在 gas-wise 方面变得昂贵,因为这样做需要运行相当多的加密算法运算。 如果我们可以只用一个签名,而不是多个签名同时验证许多操作,那不是很好吗? 这样做取决于密码学中的一个概念,聚合签名。 支持聚合的签名方案提供了一种方法,给定多个使用不同密钥签名的消息,然后生成单个组合签名,验证这个组合签名,如果组合签名验证通过,那么下面所有的单个签名也都是合法的。(译注:有点类似于merkle tree,减少链上存储体积,这里是减少签名验证步骤) 常见的支持聚合签名的方案是 BLS。 这种优化对于实现卷叠(Rollup)特别有用,因为rollup的主要目的是数据压缩,而签名聚合让我们可以压缩签名部分。 有关签名聚合节省空间的更多信息,请参阅 Vitalik 关于该主题的推文。引入聚合我们立即看到,并非捆绑包中的所有用户操作都可以将其签名汇总在一起。请记住,钱包被允许使用它想要的任何逻辑来验证其给定的签名,因此同一捆绑包中可能存在各种签名方案。 由于我们可能无...