logUp-Multivariate lookups based on logarithmic derivatives

1. 引言

多变量lookup相关论文有:

TritonVM(Recursively verifiable STARKs )——TIP 0001: Contiguity Argument for Memory Consistency中试图用derivatives for lookups(使用grand product来计算derivative)来解决其memory table的一致性证明。

2. 何为batch lookups?

所谓batch lookups(又名vector column lookups),是指由多个witness columns,对应单个lookup table:
在这里插入图片描述
应用场景有:

  • zkVM:证明多个columns为word sized(如16-bit word)。
  • hasher chip,用于基于lookup的哈希函数(如Tip5)。

相关研究成果有:

  • L. Eagen:Bulletproof++
  • A. Gabizon, D. Khovratovich:flookup
  • L. Eagen, A. Gabizon:zq

3. Permutation argument和lookup argument

3.1 Permutation argument

Permutation argument背后的核心思想为multiset equality。
所谓multiset equality,是指:【2个sequence必须具有相同的长度。】

  • 若2个sequence ( w i ) , ( t j ) (w_i),(t_j) (wi),(tj) 为permutation关系,当且仅当:
    ∏ i ( X − w i ) = ∏ j ( X − t j ) \prod_i(X-w_i)=\prod_j(X-t_j) i(Xwi)=j(Xtj)
    over F F F

不过,该多项式计算非常昂贵。为此:

  • Bayer和Groth(2012):通过引入一个random challenge α ← § F \alpha \overset{\S }{\leftarrow} F α§F,将该多项式identity reduce为grand product:
    ∏ i ( α − w i ) = ∏ j ( α − t j ) \prod_i(\alpha-w_i)=\prod_j(\alpha-t_j) i(αwi)=j(αtj)

3.2 Lookup argument

Lookup argument背后的核心思想为set membership。
所谓set membership,是指:【与multiset equality有所不同,2个sequence可以具有不同的长度。】

  • 已知2个sequence ( w i ) , ( t j ) (w_i),(t_j) (wi),(tj) in F F F,则 { w i } ⊆ { t j } \{w_i\}\subseteq \{t_j\} {wi}{tj},当且仅当存在multiplicity整数值 ( m j ) (m_j) (mj)(即 w i w_i wi值在 ( t j ) (t_j) (tj) sequence中出现的次数),满足:
    ∏ i ( X − w i ) = ∏ j ( X − t j ) m j \prod_i(X-w_i)=\prod_j(X-t_j)^{m_j} i(Xwi)=j(Xtj)mj

对该多项式:

  • Groth等人2018年Arya论文中:
    • m j m_j mj以二进制编码方式表示为:
      m j = ε j , l ⋅ 2 l + ⋯ + ε j , 1 ⋅ 2 1 + ε j , 0 m_j=\varepsilon_{j,l}\cdot 2^l+\cdots +\varepsilon_{j,1}\cdot 2^1+\varepsilon_{j,0} mj=εj,l2l++εj,121+εj,0
    • 引入随机值 α \alpha α来对多项式进行reduce为grand product。

4. Plookup(the geometric way)

Plookup的核心思想为integrability criterion,是指:

  • 已知2个sequence ( w i ) , ( t j ) (w_i),(t_j) (wi),(tj) in F F F,则 { w i } ⊆ { t j } \{w_i\}\subseteq \{t_j\} {wi}{tj}为sets,当且仅当存在sequence ( s k ) (s_k) (sk)(其长度为 ( w i ) , ( t j ) (w_i),(t_j) (wi),(tj)这2个sequence的长度之和),满足:
    { ( s k , s k + 1 ) } = { ( t j , t j + 1 ) } ∪ { ( w i , w i ) } \{(s_k,s_{k+1})\}=\{(t_j,t_{j+1})\}\cup\{(w_i,w_{i})\} {(sk,sk+1)}={(tj,tj+1)}{(wi,wi)}
    为multisets。

相应的polynomial identity为:【为具有2个变量的多项式】
∏ k ( X + s k + s k + 1 ⋅ Y ) = ∏ j ( X + t j + t j + 1 ⋅ Y ) ⋅ ∏ i ( X + w i + w i ⋅ Y ) \prod_k(X+s_k+s_{k+1}\cdot Y)=\prod_j(X+t_j+t_{j+1}\cdot Y)\cdot \prod_i(X+w_i+w_i\cdot Y) k(X+sk+sk+1Y)=j(X+tj+tj+1Y)i(X+wi+wiY)

同时,也可通过引入一个random challenge α , β ← § F \alpha,\beta \overset{\S }{\leftarrow} F α,β§F,将该多项式identity reduce为grand product。

4.1 Plookup for batches

在这里插入图片描述

5. logUp:原理,及其,为何快?

Logarithmic derivative(对数导数)定义为:
D l o g ( p ( X ) ) : = p ′ ( X ) p ( X ) D_{log}(p(X)):=\frac{p'(X)}{p(X)} Dlog(p(X)):=p(X)p(X)

Logarithmic(对数)运算的一个重要特性为:

  • 可将乘法运算,转换为,加法运算,即:
    log ⁡ ( p ( X ) ⋅ q ( X ) ) = log ⁡ ( p ( X ) ) + log ⁡ ( q ( X ) ) \log(p(X)\cdot q(X))=\log(p(X))+\log(q(X)) log(p(X)q(X))=log(p(X))+log(q(X))
    从而基于对数运算再求导,即 Logarithmic derivative(对数导数),也可将乘法运算,转换为,加法运算:
    D l o g ( p ( X ) ⋅ q ( X ) ) = D l o g ( p ( X ) ) + D l o g ( q ( X ) ) D_{log}(p(X)\cdot q(X))=D_{log}(p(X)) + D_{log}(q(X)) Dlog(p(X)q(X))=Dlog(p(X))+Dlog(q(X))

如:
对于 p ( X ) = ( X − w 1 ) ⋅ ( X − w 2 ) p(X)=(X-w_1)\cdot (X-w_2) p(X)=(Xw1)(Xw2),有:
D l o g ( p ( X ) ) = 1 ⋅ ( X − w 2 ) + ( X − w 1 ) ⋅ 1 ( X − w 1 ) ⋅ ( X − w 2 ) = 1 X − w 1 + 1 X − w 2 D_{log}(p(X))=\frac{1\cdot (X-w_2)+(X-w_1)\cdot 1}{(X-w_1)\cdot (X-w_2)}=\frac{1}{X-w_1}+\frac{1}{X-w_2} Dlog(p(X))=(Xw1)(Xw2)1(Xw2)+(Xw1)1=Xw11+Xw21

由此可知,对polynomial identity p ( X ) p(X) p(X),经Logarithmic derivative(对数导数)运算之后,具有如下属性:

  • 将zeros(即 p ( X ) p(X) p(X)中的 w 1 , w 2 w_1,w_2 w1,w2),变为了, D l o g ( p ( X ) ) D_{log}(p(X)) Dlog(p(X)) 中的poles。
  • p ( X ) p(X) p(X)中对zero的multiplication,变为了, D l o g ( p ( X ) ) D_{log}(p(X)) Dlog(p(X)) 中对pole的multiplication,即:
    ( X − w ) m → m X − w (X-w)^m\rightarrow \frac{m}{X-w} (Xw)mXwm

logUp的核心思想为,对 ∏ i ( X − w i ) = ∏ j ( X − t j ) m j \prod_i(X-w_i)=\prod_j(X-t_j)^{m_j} i(Xwi)=j(Xtj)mj等式两侧做对数导数运算,即Key lemma为:

  • 已知2个sequence ( w i ) , ( t j ) (w_i),(t_j) (wi),(tj) in F F F len ( ( w i ) ) < char ( F ) \text{len}((w_i))<\text{char}(F) len((wi))<char(F),则 { w i } ⊆ { t j } \{w_i\}\subseteq \{t_j\} {wi}{tj},当且仅当存在multiplicity整数值 ( m j ) (m_j) (mj)(即 w i w_i wi值在 ( t j ) (t_j) (tj) sequence中出现的次数),满足:
    ∑ i 1 X − w i = ∑ j m j X − t j \sum_i\frac{1}{X-w_i}=\sum_j\frac{m_j}{X-t_j} iXwi1=jXtjmj
    为基于 F F F的有理函数(rational function)。

通过引入一个random challenge α ← § F \alpha \overset{\S }{\leftarrow} F α§F,将该多项式identity reduce为rational sumcheck:
∑ i 1 α − w i = ∑ j m j α − t j \sum_i\frac{1}{\alpha-w_i}=\sum_j\frac{m_j}{\alpha-t_j} iαwi1=jαtjmj

5.1 logUp for batches

在这里插入图片描述
其与Plookup的重要区别在于:

  • 使用grand sum来代替了grand product,无论要查找的列有多少,grand sum的degree都为1,与table size和查找值列表size均无关。

logUp与Plookup对比为:
在这里插入图片描述
从而使得:

  • logUp少约50%的extra columns。
  • helper columns数量,可通过为每个column block提供一个helper column,来进一步reduce。即,实际是在columns数量 与 degree D D D之间做取舍。

在这里插入图片描述
在这里插入图片描述

参考资料

[1] Twitter MVlookups——基于因式分解的多变量lookup argument
[2] 2023年4月4日在Lisbon ZK Summit 9上分享视频 ZK9: logUp - Lookup arguments based on the logarithmic derivative - Ulrich Haböck

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值