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

我的网站

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

技术解读以太坊二层扩容方案 Hermez 的 zkEVM 设计思路(2)

时间:2021-08-23 13:51来源:未知 作者:admin 点击:
多项式相等,多项式取值等等。熟悉 Plonk 或者 Plookup 协议的小伙伴应该知道,这些协议的基础就是多项式承诺。 uVM 的整体框架 uVM 由如下的模块组成:

技术解读以太坊二层扩容方案 Hermez 的 zkEVM 设计思路

技术解读以太坊二层扩容方案 Hermez 的 zkEVM 设计思路

多项式相等,多项式取值等等。熟悉 Plonk 或者 Plookup 协议的小伙伴应该知道,这些协议的基础就是多项式承诺。

uVM 的整体框架

uVM 由如下的模块组成:ROM,RAM,Storage 以及各种计算功能模块。Main SM (主状态机)由子模块组成。

技术解读以太坊二层扩容方案 Hermez 的 zkEVM 设计思路

需要证明程序的执行状态正确,要保证如下的一些状态正确:

如何证明执行程序正确?

执行程序存储在 ROM 中。将指令和位置进行编码后,得到执行程序的多项式表示 rom (x)。将 Main SM 中的代码执行指令和 PC 进行同样的编码后形成的多项式 instTrace(x)。无论这份代码如何执行(循环的次数,跳转方式),instTrace(x) 中的元素都应该属于 rom(x)。这种从属关系可以采用 Plookup 协议进行证明。

技术解读以太坊二层扩容方案 Hermez 的 zkEVM 设计思路

注意的是,instTrace 指的是执行实例的 Trace。虽然,通过 Plookup 能证明 instTrace(x) 中的元素属于 rom(x),但是 instTrace(x) 的执行正确性并没有证明。试想一下 instTrace 中少一两条指令,同样满足从属关系。简单的说,这种从属证明只是证明了 Main SM 和 ROM 状态的一致性。

内存状态正确?

在 Main SM 中的内存的读写情况,应该和内存 RAM 的状态一致。这种一致也是通过 Plookup 协议进行证明。

技术解读以太坊二层扩容方案 Hermez 的 zkEVM 设计思路

内存 RAM 本身逻辑是否正确需要额外证明。

存储状态正确?

uVM 的存储是通过 key-value 对实现。所有存储(key-value 对)用 merkle 树进行组织。所以,存储模块包括 merkle 树和 hash 计算。Plookup 协议可以证明多个模块之间的一致性。

技术解读以太坊二层扩容方案 Hermez 的 zkEVM 设计思路

整体证明构成

一个程序的执行状态的正确性分割成多个子模块的状态正确性验证。总之,证明包括两部分:1/ 单个模块的逻辑正确 2/ 模块和模块之间的一致性。

技术解读以太坊二层扩容方案 Hermez 的 zkEVM 设计思路

证明大量采用多项式承诺。验证这些多项式承诺需要不小的开销。Jordi 提出了多种验证思路: (责任编辑:admin)

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