技术:如何设计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

本文介绍了在设计zkVM电路时如何创建自定义门,如(场)划分门,并探讨了如何通过组合选择器优化选择器多项式数量,以降低证明者和验证者的工作量。文章引用了Plonky2和Halo2的优化方法,旨在实现既能保持门的含义又减少选择器数量的目标。
最低0.47元/天 解锁文章
720

被折叠的 条评论
为什么被折叠?



