宁推网-元宇宙资讯

一文读懂StarkNet零知识递归证明 STARK

图 2:典型递归证明流程

图 3:应用递归示例

命题 1 证明从 A 到 B 的状态更新,而命题 2 验证从 B 到 C 的进一步更新。命题 1 和命题 2 的证明可以合并为第三个命题,直接证明从 A 到 C 的更新。通过应用类似的递归逻辑,可以非常显著地降低状态更新的成本,达到最终延迟要求。

应用递归的另一个重要示例是压缩来自多个证明的汇总数据。例如,对于像 StarkNet 这样的有效性证明 Rollup,L2 每次存储更新也作为传输数据在 L1 更新,确保数据可用性。但是,不需要为同一个存储单元发送多次更新,因为只有经过证明验证过的交易最终才能满足数据可用性。此优化已在单个StarkNet 区块中执行。但是,通过为每个区块生成证明,应用递归可以压缩多个L2 区块汇总数据。这可以显著降低成本,降低 L2 出块时间,而不会牺牲 L1 更新的可扩展性。

值得注意的是:应用递归可以与前面描述的应用通用递归结合使用。但这两种优化互无关联。

降低链上验证器的复杂性

STARK 验证器的复杂性取决于用以验证的命题类型。特别是对于 Cairo 命题,验证器的复杂性取决于 Cairo 语言中允许的特定要素,更具体地说,是支持的内置项(如果把 Cairo 比喻成 CPU,那么内置项相当于 CPU 中的微电路:计算执行太过频繁,所以需要优化自身计算)。

Cairo 语言不断发展并提供越来越多有用的内置项。另一方面,递归验证器只需要使用一小部分内置项。因此,递归 SHARP 可以通过支持递归验证器中的完整语言来成功支持 Cairo 中的任何命题。具体来说,L1 上的 Solidity 验证器只需要验证递归证明,因此验证器可以仅限于验证 Cairo 语言一个更稳定的子集:L1 验证器不需要随最新、最稳定的内置项更新。换句话说,命题不断演化,复杂的验证就交由 L2 处理,L1 验证器只需要验证简单、稳定的命题。

减少计算足迹

在递归之前,聚合多个命题为一个证明受到可用计算实例上可以证明的命题大小(以及生成此类证明所需的时间)的限制。

有了递归,无需再证明如此庞大的命题。因为有了更多又小又便宜的计算实例可供使用(尽管计算实例可能要比使用大型单片证明器时需要的更多)。这使得在更多的物理和虚拟环境中部署证明器实例成为可能。

总结

通用计算的递归证明现已为包括 StarkNet 在内以太坊主网上的多个产品系统服务。

由于可以不断改进,递归的优势会逐步显现。并行计算的潜力得以发挥后,Gas 费降低,延迟改善,超高扩展性终将实现。

递归在成本和延迟方面的优势异常显著,还会催生 L3 和应用递归等新机会。递归验证器持续优化,性能和成本效益也都会逐渐提升。

附录

原文:Recursive STARKs

https://medium.com/starkware/recursive-starks-78f8dd401025

原文:Youtube:StarkEx – How Does it Work?

原文:Hello, Cario!

https://medium.com/starkware/hello-cairo-3cb43b13b209

原文:Hello, Cario!

Cairo for 开发工程师s

原文:Wikipedia Entry: Recursion

https://en.wikipedia.org/wiki/Recursion

原文:《分形式扩容:从L2到L3》

https://mirror.xyz/starknet-zh.eth/-5oiKxwShIOzGUwuQJzIl070wopcPjqBcypVjRvyC1E

1、宁推网原创文章未经授权转载必究,如需转载请联系授权;
2、转载时须在文章头部明确注明出处、保留作者和原文链接,如:转自宁推网字样;
3、宁推网报道中所涉及的所有内容均由用户提供,仅供参考!
4、声明:该文观点仅代表作者本人,宁推网系信息发布平台,宁推网仅提供信息存储空间服务。