技术:如何设计zkVM电路
自定义门
在设计zkvm电路时,由于需要确定很多自定义门,所以引入了很多二进制选择器(binary selector)。
以(场)划分门((field)division gate)为例,我们计划设计一个门来验证q, x, y三个元素之间q = x/y的关系是成立的。
为方便起见,我们不会在电路层面进行场划分操作,而是通过验证以下逻辑关系来实现。
X * inv_y = q
inv_y∗y = 1 / /确保y≠0
在这两个要素之间,存在着平等的关系。因此,我们有如下的Trace表:
对w_0,w_1,w_2,w_3列定义多项式w_0(x), w_1(x), w_2(x), w_3(x),则除法运算对应的行应满足:
w_0(x) . w_3(x) - w_2(x) = 0 w_1(x) . w_3