织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

技术解读 AppliedZKP 的 zkEVM 方案设计思路

时间:2021-09-02 09:02来源:未知 作者:admin 点击:
原文标题:《零知识证明 - zkEVM 解读》 撰文:Star Li 众所周知,ZK Rollup 是 L2 中安全等级最高的 Rollup 方案,但是 zkRollup 目前没有可编程性,更无从谈起可组合性。zkEVM 是用 zk-SNARK 技术

原文标题:《零知识证明 - zkEVM 解读》
撰文:Star Li

众所周知,ZK Rollup 是 L2 中安全等级最高的 Rollup 方案,但是 zkRollup 目前没有可编程性,更无从谈起可组合性。zkEVM 是用 zk-SNARK 技术将 EVM 的执行进行证明。zkRollup 支持了 zkEVM,在 L2 就能支持兼容 EVM 的智能合约。目前有几个团队都在研究 zkEVM 的实现。除了 AppliedZKP 公开了一些电路设计的思路和细节外,其他团队都没有详细的资料。AppliedZKP 有关 zkEVM 的设计资料如下:

点击 此处 阅读相关 资料。

本文详细分析 AppliedZKP 构想的 zkEVM 设计。本文中提到的 zkEVM 专指 AppliedZKP 提出的 zkEVM 方案。

背景

以太坊的每一个节点为了确保交易的正确性,需要针对每一个区块中的每一笔交易执行。也就是说,每一个节点需要验证以太坊的整个交易历史,并且要一笔笔的进行执行验证。zkEVM 利用零知识证明技术(zk-SNARK)证明:

  • 针对智能合约的交易执行,生成交易证明。在 L2 实现 zkRollup 支持可编程性。
  • 针对以太坊的每一个区块,生成区块证明。

这些证明都由两部分组成:State proof (状态证明)和 EVM proof (EVM 执行证明)。在一条交易执行过程中,State 包括 Storage,Memory 以及 Stack 的状态。

Bus-mapping 是设计的基础思想。一般的 PC 体系结构中,CPU 通过总线访问存储(内存 / 硬盘),也就是计算和存储分开。zkEVM 采用的同样的架构思想,状态的变化和指令的执行分开,并且分别由 State proof 和 EVM proof 进行证明。

State proof 负责 Bus Mapping 信息的一致性和正确性。一致性指的 Bus Mapping 和 State 之间的读写一致。正确性指的是 Bus Mapping 中的读写状态正确。EVM proof 负责 EVM 的 op code 的执行正确(如果涉及到 State 的 op code,保证存储相关的操作正确)。

技术解读 AppliedZKP 的 zkEVM 方案设计思路

EVM Execution 和存储之间好像有一条存储访问的总线一样:EVM Execution 通过 Bus Mapping 获取或者存储执行需要的相关状态。采用 Bus Mapping 的方式,需要证明 Bus Mapping 和 State 以及 EVM Execution 之间的「总线」操作的正确性。逻辑上分成如下的几步:读取状态,EVM 执行(修改状态),写回状态。Bus Mapping 包括了读取以及写回状态。

Bus Mapping

Bus Mapping 包括了两种状态,一种是读取老的状态,一种是写回生成新的状态。无论是老的状态和新的状态,Bus Mapping 都是「包含」关系。这种「包含」的 mapping 关系可以通过 Plookup 算法证明。

存储状态(Storage/Memory/Stack),采用 key-value 的格式进行表示。key-value 对的绑定关系可以实现为一个序列: (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容