appliedzkp zkevm(8)中的Plookup Table

1. 引言

appliedzkp zkevm采用 Halo2的lookup table 作为a primitive,来check table中的某一行确实是某些adviced values。

如,以下table的a、b、c列,其中a、b列为“0,1,2”的可能组合,c为对a、b列的逻辑AND运算:

a b c
0 0 0
0 1 0
0 2 0
1 0 0
1 1 1
1 2 0
2 0 0
2 1 0
2 2 2

可使用该table来检查circuit中的某些x、y变量的AND运算约束,以证明"x"、“y”、"x & y"为对应该table中的某一行。

zkevm中有2种类型的table:

  • 1)Fixed Table
    所谓Fixed Table,是指该fixed table中的行在proving time“之前”就已确定。
    上面的AND运算table就是fixed table。
  • 2)Variable Table
    所谓Variable Table,是指该variable table中的行在proving time "时"确定。
    Variable Table使得Prover可创建自己的table,如Prover可witness a key-value mapping为a variable table。注意,此时需要做额外检查来确保mapping key的唯一性。

2. zkevm EVM circuit中的tables

参考资料

[1] zkevm-specs plookup table
[2] zkevm-specs tables

猜你喜欢

转载自blog.csdn.net/mutourend/article/details/125463109