... | ... | @@ -8,8 +8,12 @@ |
|
|
|
|
|
EVM的复杂性决定了电路的证据和约束将会非常复杂,进而决定了其程序将会非常庞大。我们决定将zkEVM的电路程序开发进行逻辑上的拆分,由多个子电路分头进行处理,每个子电路可以构建自己的证据和约束。不同子电路所覆盖的逻辑基本不重叠,子电路间可通过“查找表”工具进行联系。这样,每个子电路需要考虑的情况就会简化,从而开发的难度也会显著减小。我们的设计包括如下子电路,
|
|
|
|
|
|
1.
|
|
|
1. 核心(Core),处理智能合约程序执行的每一步过程
|
|
|
2. 状态(State),处理虚拟机中各类状态的读写
|
|
|
3. 字节码(Bytecode),处理合约的字节码
|
|
|
4. 未完成
|
|
|
|
|
|
![Figure](/image/circuit-architecture.png)
|
|
|
![Figure 1](/image/circuit-architecture.png)
|
|
|
电路结构图
|
|
|
|
|
|
我们决定选择halo2零知识证明电路开发框架及其算术化方法,原因是其易用性和社区友好性。 |