Replies: 1 comment
-
关于 zkevm 中 ADD_SUB 计算的约束由于BN254限制,无法直接计算2个word 加法。PSE zkEVM 在约束加法操作时,将一个 word 拆分成2个128bit 的值,然后结合 carry 部分分别约束。 关于约束,以下是一个 u16 以大端序表示的简单的例子。 ADD_SUB Constrain:
Example 1: a16 0x00 | 0xff // 255 lo: hi: Example 2: a16 0xff | 0xff lo: hi: |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
PSE 的 zkEVM 电路中使用BN254曲线,而BN254曲线所能表示的最大数字是254位,即所有算术运算都是对254位素数取模完成的。所以一个 EVM word(256 bit) 无法assign 到 halo2 一个 cell 中,也无法直接做 range check,需要做 decompose 处理。
以下是 PSE zkEVM 的 word encoding 设计及 scroll 团队的代码实现。
docs:
zkevm-specs,
PSE zkvmbook
code:
https://github.com/scroll-tech/zkevm-circuits/blob/b3db7f095b/gadgets/src/evm_word.rs
Beta Was this translation helpful? Give feedback.
All reactions