1. 引言

Eli Ben-Sasson等人2018年论文《Fast Reed-Solomon Interactive Oracle Proofs of Proximity》。该论文又俗称FRI。Full version版见Fast Reed-Solomon interactive oracle proofs of proximity (2nd revision),包含了详细的实现细节。

Reed-Solomon(RS)码在:

  • 构建quasilinear probabilistically checkable proofs(PCPs)
  • 构建具有perfect zero knowledge和polylogarithmic verifiers的interactive oracle proofs(IOPs)

中承担重要角色。而证明RS码中的membership所需的巨大具体计算复杂度是在实践中部署此类PCP/IOP系统的最大障碍之一。为此,本文为RS码提出了一种新的interactive oracle proof of proximity(IOPP),将其称为Fast RS IOPP(FRI),原因在于:

  • 1)它看起来像无处不在的Fast Fourier Transform(FFT)
  • 2)其Prover的计算复杂性是严格线性的,其Verifier的计算复杂性是严格logarithmic的(而FFT计算复杂度是quasi-linear的,并不是严格线性的)。

之前的RS IOPPs和PCPs of proximity(PCPPs),即使针对polynomially large query complexity,其proving time也是super-linear的。

对于block-length为NNN的codes:

  • (interactive)FRI Prover的计算复杂度 <6⋅N<6\cdot N<6⋅N;
  • (interactive)FRI Verifier的计算复杂度 ≤2⋅log⁡N\leq 2\cdot \log N≤2⋅logN;
  • query复杂度为 2⋅log⁡N2\cdot \log N2⋅logN;
  • 具有constant soundness:即距离某code为 δ\deltaδ-far 的words,其被拒绝的概率为 min{δ⋅(1−o(1)),δ0}\text{min}\{\delta\cdot (1-o(1)), \delta_0\}min{δ⋅(1−o(1)),δ0​},其中δ0\delta_0δ0​为一个主要依赖于code rate的 positive constant。

由FRI获得的query复杂度和soundness特殊组合:

  • 要优于 [Ben-Sasson and Sudan, SICOMP 2008] 的quasilinear PCPP;
  • 甚至比 [Ben-Sasson et al., STOC 2013; ECCC 2016] 有更tighter的soundness分析。

使得FRI有可能促成更具体有效的零知识证明和论证系统。

之前具体有效的PCPPs和IOPPs在每一轮“proof composition”中遭受a constant multiplicative factor loss in soundness,因此最多使用O(log⁡log⁡N)O(\log{\log N})O(loglogN)轮。本文表明,当δ\deltaδ小于码的唯一解码半径时,FRI在soundness方面仅遭受可忽略的additive loss。这一观察结果使我们能够将“proof composition”的轮数增加到Θ(log⁡N)\Theta (\log N)Θ(logN),从而减少Prover和Verifier运行时间以获得固定的soundness。

1.1 基本介绍

Reed-Solomon(RS)码family 是代数编码理论与理论计算机科学的基本研究对象。

针对:

  • 有限域F\mathbb{F}F内的NNN个elements的evaluation set SSS,
  • rate参数ρ∈(0,1]\rho\in(0,1]ρ∈(0,1],
  • code RS[F,S,ρ]\text{RS}[\mathbb{F}, S, \rho]RS[F,S,ρ] 为 the space of functions f:S→Ff:S\rightarrow \mathbb{F}f:S→F,这些函数为evaluations of polynomials of degree d<ρNd<\rho Nd<ρN。

要求Verifier可 以“large”信心 和 “small” query复杂度,来区分,fff 是 RS[F,S,ρ]\text{RS}[\mathbb{F}, S, \rho]RS[F,S,ρ] 的一个codeword,还是,fff 距离所有codewords的相对Hamming distance为 δ\deltaδ-far ?
该问题在多个不同的计算模型中解决,也是本文关注的焦点:

其中:

  • 1)RS proximity testing:当没有额外的数据提供给Verifier时,则将RS proximity problem通常称为 testing problem,该问题首次在[58/32]中定义并解决。此时,需要有 d+1d+1d+1 次query 就足以解决该问题:tester以概率 111 接受codewords,而距离code为 δ\deltaδ-far 的functions,其被拒绝的概率 ≥δ\geq\delta≥δ。
    由于在该模型下无需向Verifier提供任何额外信息,可将其称为 某Prover无需花费任何算力、无需任何交互、生成的proof size长度为000,使Verifier信服 f∈RS[F,S,ρ]f\in \text{RS}[\mathbb{F}, S, \rho]f∈RS[F,S,ρ]。

  • 2)RS proximity verification——PCPP模型:Probabilistically checkable proofs of proximity(PCPP) 将 testing problem 放宽为 a setting,在该setting内,Verifier还可oracle access to an auxiliary proof——将其称为PCPP,以π\piπ表示。

    • 该PCPP由Prover生成,输入为 f∈RS[F,S,ρ]f\in \text{RS}[\mathbb{F}, S, \rho]f∈RS[F,S,ρ]。
    • 生成π\piπ的时间称为prover complexity。
    • ∣π∣|\pi|∣π∣为proof length。
    • 生成queries和检查query-answers的总时间称为verifier complexity。

    曾用于证明著名的PCP Theorem[2, 3] 的技术表明,可用constant query complexity、constant proof length、prover complexity NO(1)N^{O(1)}NO(1)来解决proximity problem,或,以 proof length N1+ϵN^{1+\epsilon}N1+ϵ、query complexity (log⁡N)O(1/ϵ)(\log N)^{O(1/{\epsilon})}(logN)O(1/ϵ) 来解决proximity problem。
    当前最先进的PCPP模型:proof length为O~≜N⋅log⁡O(1)N\tilde{O}\triangleq N\cdot \log^{O(1)}NO~≜N⋅logO(1)N、constant query complexity、prover complexity O~(N)\tilde{O}(N)O~(N) 以及 verifier complexity polylog⁡N\text{poly}\log NpolylogN。

  • 3)RS proximity verification——IOPP模型:Interactive oracle proofs of proximity(IOPP)在[13]中定义,并在[57]中以“probabilistically checkable interactive proofs of proximity”名定义。IOPP是对IP、PCP、interactive PCP(IPCP)的概括。

    • 在IP和IPCP中,多轮交互中Prover会发送message π1,π2,⋯,πr\pi_1,\pi_2,\cdots,\pi_rπ1​,π2​,⋯,πr​ 来响应连续的Verifier messages。
    • 在PCP和IPCP中,Verifier不需要完整的读取整个Prover messages,而是可query Prover messages的随机位置(在IPCP中,Verifier必须读取完整的messages π2,⋯\pi_2,\cdotsπ2​,⋯,但是可随机query π1\pi_1π1​):
      • query complexity为从fff和π1,π2,⋯,πr\pi_1,\pi_2,\cdots,\pi_rπ1​,π2​,⋯,πr​读取的entries总数。
      • Prover的输入为 f∈RS[F,S,ρ]f\in \text{RS}[\mathbb{F}, S, \rho]f∈RS[F,S,ρ]。
      • prover complexity为生成所有(prover)messages的总时长。
      • proof length由PCPP setting 概括为 IOPP setting,定义为∣π1∣+⋯+∣πr∣|\pi_1|+\cdots +|\pi_r|∣π1​∣+⋯+∣πr​∣。

    IOPP可将PCPP proof composition “替换”为更多轮的交互,从而在不牺牲soundness的情况下,reduce proof length 以及 reduce prover complexity。可在不改变soundness和(或)query complexity的情况下,将proof length reduce为O(N)O(N)O(N)。除了proof length更短之外,受限于proof-composition轮数的限制,之前成果中的prover complexity为Θ(Npolylog⁡N)\Theta(N\text{poly}\log N)Θ(NpolylogN)。

1.2 主要成果

本文提供了new IOPP for RS codes,称为Fast RS IOPP(FRI),因为其与Fast Fourier Transform(FFT)类似。本文的new IOPP分析依赖于quasi-linear RS-PCPP。

FRI是第一个RS-IOPP:

  • 1)对Prover具有严格的linear计算复杂度
  • 2)对Verifier具有严格的logarithmic计算复杂度
  • 3)具有constant soundness

1.2.1 IOP

Interactive Oracle Proof(IOP)系统中包含的算法有S=(P,V)S=(P,V)S=(P,V),其中:

  • PPP,表示Prover
  • VVV,表示Verifier

对于长度为NNN的输入xxx,交互的轮数表示为r(N)r(N)r(N)——称为该系统的round复杂度。
在单轮内:

  • Prover发送一条消息,给Verifier oracle access权限;
  • Verifier给Prover回复一条消息。

将proof length表示为l(N)l(N)l(N),为Prover发送的所有消息的总长度。
将IOP协议中的query复杂度表示为q(N)q(N)q(N),为Verifier从各种Prover消息中读取的entries的数量。由于Verifier对Prover发来的消息具有oracle access,因此通常q(N)≪l(N)q(N)\ll l(N)q(N)≪l(N)。对于FRI系统,其q(N)=O(log⁡l(N))q(N)=O(\log l(N))q(N)=O(logl(N))。

Verifier与Prover基于输入xxx 交互后,Verifier的输出要么为accept要么为reject,将其表示为<P↔V>(x)<P\leftrightarrow V>(x)<P↔V>(x)。

若Verifier发送的所有消息都是public random coins,且发送给Prover所有queries均由这些public coins确定,则称该IOP为transparent(或具有public randomness)。这种协议也可称为Arthur-Merlin协议。

1.2.2 IOPP

IOPP:为IOP of proximity,是将PCP of Proximity(PCPP)概括为IOP模式的自然表示。

对a family of codes C\mathcal{C}C的IOPP中也包含算法S=(P,V)S=(P,V)S=(P,V),其中:

  • PPP,表示Prover
  • VVV,表示Verifier

Prover和Verifier双方都会收到输入:a specification of a code C∈CC\in\mathcal{C}C∈C,可将其看成是a set of functions C={f:S→∑}C=\{f: S\rightarrow \sum\}C={f:S→∑} for a finite set SSS and alphabet ∑\sum∑。

假设Verifier具有oracle access to a function f(0):S→∑f^{(0)}:S\rightarrow \sumf(0):S→∑,而Prover将该函数作为明确的输入。二者交互的轮数,又名round复杂度,表示为rrr。query复杂度,表示为qqq。

IOPP定义为:

其中第一个Prover消息,表示为f0f^{0}f0,是声称的codeword of CCC,即f0:S→∑f^{0}: S\rightarrow \sumf0:S→∑。

  • 除f(0)f^{(0)}f(0)之外 的所有Prover消息的长度之和,称为IOPP proof length;
  • 生成 除f(0)f^{(0)}f(0)之外 的所有Prover消息的时间 称为Prover complexity;
  • query to 所有消息(含f(0)f^{(0)}f(0))的总次数,称为IOPP query complexity;
  • 以query answers为输入,Verifier判决(accept还是reject)所需的computational complexity,称为Decision complexity。【计算模型并未定义,默认使用boolean circuit complexity,也可为arithmetic complexity。】

1.2.3 主要定理

size为qqq的finite field表示为Fq\mathbb{F}_qFq​,当上下文明确时,可忽略不写qqq。若q=2m,m∈Nq=2^m,m\in\mathbb{N}q=2m,m∈N,则可将该field称为binary。

若binary field的subset SSS为a coset of a subgroup of the additive group F+\mathbb{F}^{+}F+,则可将subset SSS称为additive coset,即:

  • SSS is an additive shift of an F2\mathbb{F}_2F2​-linear space contained in Fq\mathbb{F}_qFq​。

binary additive RS code family为:

  • the collection of codes RS[F,S,ρ]RS[\mathbb{F}, S,\rho]RS[F,S,ρ],其中F\mathbb{F}F为binary field,SSS为additive coset。

该family of codes在[23]的quasilinear PCP中有定义过,本文主要定理为:

  • Space complexity:以 第iii个prover message为输入,计算第(i+1)(i+1)(i+1)个prover message的每个symbol所需的space complexity为O(log⁡∣F∣)O(\log |\mathbb{F}|)O(log∣F∣)——即,维护constant数量的field elements所需的空间。
    原因在于,在并行机器上,每个prover message可以O(1)O(1)O(1) arithmetic operations计算。
    如[23, Proposition 6.13]所述,可将定理2概括为任意rate ρ∈(0,1]\rho\in (0,1]ρ∈(0,1],会在prover complexity和verifier complexity中增加稍微大点的常量值。而对于类似ZK-IOPs [14,12]这样的实际应用,上面定理2中定义的rate就足够了。

  • FRI for “smooth codes”:若某multiplicative group H⊂FqH\subset \mathbb{F}_qH⊂Fq​,其order(∣H∣|H|∣H∣)为2k,k∈N2^k,k\in\mathbb{N}2k,k∈N,则该group为smooth的。
    family of smooth RS codes of rate ρ\rhoρ为 the set of RS[F,H,ρ]RS[\mathbb{F}, H,\rho]RS[F,H,ρ],其中HHH为smooth multiplicative group。
    对于family of smooth RS codes,定理2仍然成立,且比prover/verifier arithmetic complexity中的常量值6/216/216/21更小的系数,详情见论文[10]。该协议也可进一步概括到groups of order ckc^kck for constant ccc,此处忽略具体细节。

  • 猜想3:定理2的soundness bound为nearly tight for δ≤δ0\delta\leq \delta_0δ≤δ0​,可猜想类似的bound对所有δ\deltaδ成立。详细见论文[10]。

2. Transparent zero knowledge implementations应用

此处关注的Prover-efficient IOPPs,致力于实现具有如下3个属性(见论文[11]——Eli Ben-Sasson等人2018年论文《Scalable, transparent, and post-quantum secure computational integrity》)的ZK argument system:

  • 1)transparent:即public randomness
  • 2)universal:即可用于任何计算
  • 3)(doubly)scalable:即同时具有quasi-linear proving time和poly-logarithmic verification time。

在Eli Ben-Sasson等人后续论文《Scalable, transparent, and post-quantum secure computational integrity》中,基于FRI协议用代码实现了第一个满足如上3个属性的ZK system——称为ZK-STARK。该系统的效率大幅依赖于本文将描述的FRI协议的效率。
ZK-STARK prover:

  • 比Eli Ben-Sasson等人2016年论文《Computational integrity with a public random string from quasi-linear PCP》中的SCI——state-of-the-art transparent system(不具备ZK属性)的速度要快约50倍;
  • 比Eli Ben-Sasson等人2013年论文《SNARKs for C: Verifying program executions succinctly and in zero knowledge》中的ZK-SNARKs(不具备transparent属性)的速度要快约10倍。

相关技术衍化路线为:

  • 1)在Babai等人的开创性成果[6,5]中指出:验证the correctness of an arbitrary nondeterministic computation running for T(N)T(N)T(N) steps,在PCP模型下,Verifier的running time可为poly(N,log⁡T(N))\text{poly}(N,\log T(N))poly(N,logT(N))。
  • 2)Kilian在其论文[43]中,基于collision-resistant hash functions,将类似的PCP转换为4-round ZK argument,其total communication complexity和verifier running time上限均为polylog⁡T(N)\text{poly}\log T(N)polylogT(N)。
  • 3)Micali在其论文[48]中,假设prover和verifier可共享访问同一随机函数(通常实际实现时采用类似SHA2的哈希函数并依赖于Fiat-Shamir heuristic[31]假设),对该系统进一步压缩为non-interactive computationally sound (CS) proof system。

1/4个世纪过去了,并没有对这些了不起的技术的具体实现,主要计算瓶颈在于解决Reed-Muller(RM) proximity problem,又名“low degree testing” of multivariate polynomials。

可使用Kilian技术[14,12] 和 Micali技术[61,19]来实现ZK argument system,但是需重新考虑是否能实现polylogarithmic verifier。

在Michael Walfish等人 2015年论文《Verifying computations without reexecuting them》描述了一些有趣实用的succinct argument systems(with or without zero-knowledge):


Eli Ben-Sasson等人2016年论文《Computational integrity with a public random string from quasi-linear PCP》中将基于PCP/IOP的方案与其它方案进行了对比:

Rosario Gennaro等人2013年论文《Quadratic span programs and succinct NIZKs without PCPs》中介绍了基于quadratic span programs(QSP)的特殊系统,Ben-Sasson等人使用该系统构建了名为“Zerocash”的去中心化匿名支付系统[15],后来部署为名为“Zcash”的实用商业crypto-currency[52,38]。

但是,Zerocash/Zcash中基于QSP的ZK系统,称为“preprocessing SNARK”[24]:

  • 需要trusted setup,在该可信设置过程中包含了private randomness。
  • 依赖于强的密码学安全假设——“knowledge of exponent”。
  • 量子计算机可为该系统创建pesudo-proofs of falsities in polynomial time [60]。

而,基于quasilinear PZK-IOPs的succinct interactive and non-interactive non-interactive random oracle proof (NIROP)系统:

  • setup时,仅需要public randomness。
  • 依赖的安全假设为抗碰撞哈希函数[43]——当前认为量子计算机无法在polynomial time破解。

接下来的兴趣点就在于抗量子安全的、无需可信设置的NIROP系统能否实际实现了。Eli Ben-Sasson等人2016年论文《Computational integrity with a public random string from quasi-linear PCP》中描述了这样的系统实现,名为“succinct computational integrity(SCI)”系统,其不具有ZK属性,且有相对大的communication complexity。
而在Eli Ben-Sasson等人后续论文《Scalable, transparent, and post-quantum secure computational integrity》中,基于上述定理2中的RS proximity solution,实现了ZK-STARK系统。

3. Concrete degree, communication, and round complexity

本节将明确讨论实际应用中的RS codes “size” 以及 the effect of logarithmic round complexity on security。

RS codes of degree d=ρ⋅N−1d=\rho\cdot N-1d=ρ⋅N−1的message length精确为ddd,因此:

  • 我们首先重新计算与实际相关的degree范围(message sizes)。
  • 计算使用FRI协议引起的communication complexity,与实际block-lengths相关的codes proximity。
  • 最后,讨论具有log⁡d\log dlogd rounds的IOPP实际实现。

与[7,11]类似,本节定义ρ=1/8(N=8⋅d)\rho=1/8(N=8\cdot d)ρ=1/8(N=8⋅d)

3.1 RS block-length of systems realized in code

Eli Ben-Sasson等人2016年论文《Computational integrity with a public random string from quasi-linear PCP》中的SCI(“Scalable Computational Integrity”),为基于IOP的argument system,将类似“程序P基于输入x运行T步之后的结果为y”这样的computational statements reduce为 a pair of RS-proximity testing problems。
SCI使用[23]中quasilinear PCP的 IOP版本,可将其替换为FRI。SCI的benchmark程序运行在 名为TinyRAM [18]——类似MIPS的虚拟机内。
一般来说,随着TinyRAM machine cycles TTT数的增加,RS degree size也将增加。

Figure 1. A画出了针对某简单程序,degree ddd与cycle TTT之间的关系为d≈T⋅221d\approx T\cdot 2^{21}d≈T⋅221。

对于需要zero knowledge的crypto-currency应用,block-length由 the type of cryptographic primitives required、以及 在computational statement中所调用的次数 所主导。如,ZK contingent payments [47]仅需要一次哈希运算,而Zerocash的Pour circuit [15]需要64次哈希运算,使得RS codewords(over a prime field)with degree(=number of gates)近似为2222^{22}222。

本文的成果表明,单次哈希调用需要的RS block-length取值范围为 212=40962^{12}=4096212=4096(针对基于AES128的Daview-Meyer hash) 到 2192^{19}219(针对SHA2),即意味着对于现有的crypto-currency(ZK)应用[11],degree的取值范围为d∈[212,226]d\in[2^{12},2^{26}]d∈[212,226]。

3.2 Estimated communication complexity and argument length

可将interactive argument systems [43] 和 CS proofs [49]的实际实现扩展为IOPP模式,需使用多轮交互[19]。

使用Kilian机制[43],在第iii轮中:

  • Prover发送Merkle hash tree Tree(i)\text{Tree}^{(i)}Tree(i)的根 root(i)\text{root}^{(i)}root(i)给Verifier,该Merkle hash tree Tree(i)\text{Tree}^{(i)}Tree(i)的叶子节点are labled by entries of f(i)f^{(i)}f(i)。
  • Verifier回复随机值。

使用Micali机制[49],在第iii轮中:

  • (non-interactive) Prover queries the random oracle with root(i)\text{root}^{(i)}root(i) to “simulate” the Verifier’s iii-th message。

当Verifier queries to f(i)f^{(i)}f(i) are answered by the Prover,Prover所答复的每个消息都伴随有an authentication path(AP)that shows the query answer is consistent with root(i)\text{root}^{(i)}root(i)。

以CCδ,ϵ(N)CC_{\delta,\epsilon}(N)CCδ,ϵ​(N)来表示Prover端的communication complexity(in bits)of an argument/CS proof realized by applying the Kilian/Micali scheme to FRI,其中δ\deltaδ为proximity参数,ϵ\epsilonϵ为error bound——即words that are δ\deltaδ-far from the RS code are rejected with probability <ϵ<\epsilon<ϵ,则有:
其中:

  • qδ,ϵ\text{q}_{\delta,\epsilon}qδ,ϵ​:表示IOP模型内,为针对proximity参数δ\deltaδ 实现soundness ≥1−ϵ\geq 1-\epsilon≥1−ϵ 所需的总query complexity。
  • APδ,ϵ\text{AP}_{\delta,\epsilon}APδ,ϵ​:为包含在所有authentication paths的Merkle trees Tree(0),⋯,Tree(r)\text{Tree}^{(0)},\cdots,\text{Tree}^{(r)}Tree(0),⋯,Tree(r)的sub-forest内的所有节点数。
  • λ\lambdaλ:为用于构建Merkle tree的哈希函数的output bits数。

在Eli Ben-Sasson等人后续论文《Scalable, transparent, and post-quantum secure computational integrity》中,使用的参数为:
λ=160,ϵ=2−80,∣F∣=264,ρ=1/8\lambda=160,\epsilon=2^{-80},|\mathbb{F}|=2^{64},\rho=1/8λ=160,ϵ=2−80,∣F∣=264,ρ=1/8
Figure 1. B中划除了基于定理2下的communication complexity 和 Conjecture 3 soundness 与 degree之间的关系。这两种情况下,使用最大化distance δ=1−ρ=7/8\delta=1-\rho=7/8δ=1−ρ=7/8。

3.3 Round complexity considerations

可将crypto-currency block-chain看成是:

  • a time-stamping service for public messages
  • 以及 a public beacon of randomness

可使用block-chain来模拟Verifier messages。
如Zcash等链每2.5分钟生成一个区块,则意味着a FRI proof for d=2kd=2^kd=2k用时约需k⋅54k\cdot \frac{5}{4}k⋅45​分钟,或,对于d<240d<2^{40}d<240用时小于1小时(Bitcoin的最佳实践为1小时确认,或3天to clear standard checks)。

对于固定的ddd,定理2中定义的round complexity为12log⁡d\frac{1}{2}\log d21​logd,但在Full Version版本中,在query complexity(qqq)和 round complexity(rrr)之间做了权衡,r=log⁡d/log⁡qr=\log d/\log qr=logd/logq,在增加communication complexity的情况下,可进一步降低round complexity。

最终,使用Micali的Random Oracle model来将interactive argument systems(like Kilian’s)“压缩”为CS proofs,类似为对FRPI multi-round IOPs进行压缩,对argument length的影响可湖绿,详细见[19, Remark 1.6]:

实际上,将SHA2哈希函数作为RO model的实现,会感觉到很舒服地将类似FRI的IOP协议编译为succinct non-interactive arguments,详细见[19]。

4. 相关工作

4.1 High-rate LTCs

Locally testable codes (LTCs)为纠错码,其prover complexity和proof length均为0(在Rubinfeld [58]论文中阐述RS codes时提及)。换句话说,若只关注prover complexity,LTCs可为最优方案,其具有zero prover complexity。此外,在之前的讨论中也提及了,RS codes具有更小的prover complexity有助于即构建使用的ZK-IOPs。

“直接”经典的构建LTC的方式,如[25]的Hadamard code 和 早期PCP构建使用的log⁡N\log NlogN-variate RM codes [1,5] 都具有sub-constant rate,从而具有long proofs和large PCP prover complexity。

当前,构建LTCs取得了长足进步,可实现small query complexity和large soundness,详细见[45,36]。

不过相比于RS codes,当前并不是知道如何将这些LTCs转换为PCPs。

4.2 PCPs and IOPs

当前的一些研究成果可以small proof length和small query complexity构建PCP。
详细见[51,37,22,13]。

4.3 放大soundness

有一些技术来改进PCP的soundness:

  • [55]中的parallel repetition theorem
  • [28]中的gap amplification技术
  • [34]中的direct-product testing。

这些技术可lead to excellent soundness bounds with small query complexity。基于这些方法的PCPs和PCPPs的prover complexity并未有明确研究,但至少是super-linear的,且通常是polynomially large的。

4.4 Doubly-efficient “proofs for muggles”

Goldwasser等人2008年论文《Delegating computation: Interactive proofs for Muggles》中,重温了等价于PSPACE的IP(Interactive proof)模型,专注于实现doubly efficient systems:

  • Prover runs in polynomial time(而不是polynomial space);
  • 且 Verifier runs in nearly linear time。

相关研究成果可看[27,57]。

5. FRI IOPP总览 及其 soundness

本节重点关注为”smooth“ RS code构建IOPP。

5.1 FRI总览 及其 与FFT的相似之处——completeness

首先介绍 Eli Ben-Sasson等人 2008年论文《Short PCPs with polylog query complexity》中的quasi-linear PCPP for RS codes算法,该算法与IFFT算法类似。
令ω(0)\omega^{(0)}ω(0)生成了a smooth multiplicative group of order N=2nN=2^nN=2n,将该smooth multiplicative group标记为L(0)L^{(0)}L(0),包含在field F\mathbb{F}F中。在信号处理应用中ω(0)\omega^{(0)}ω(0)为a complex root of unity of order 2n2^n2n,F\mathbb{F}F为the field of complex numbers。
Prover声称 f(0):L(0)→Ff^{(0)}: L^{(0)}\rightarrow \mathbb{F}f(0):L(0)→F 为a member of RS[F,L(0),ρ]RS[\mathbb{F}, L^{(0)},\rho]RS[F,L(0),ρ],即 f(0)f^{(0)}f(0) 为the evaluation of an unknown polynomial P(0)(X)∈F[X],deg(P)<ρ2nP^{(0)}(X)\in\mathbb{F}[X], deg(P)<\rho 2^nP(0)(X)∈F[X],deg(P)<ρ2n,为简化,假设ρ=2−R\rho=2^{-\mathcal{R}}ρ=2−R,其中R\mathcal{R}R为正整数。
Verifier的任务在于:

  • 区分 low-degreeness(f(0)≡P(0)f^{(0)}\equiv P^{(0)}f(0)≡P(0) for some low degree P(0)P^{(0)}P(0)) 和 cases where f(0)f^{(0)}f(0) is far from all polynomials of degree <ρ2n<\rho 2^n<ρ2n。

回顾IFFT,若f(0)≡P(0)f^{(0)}\equiv P^{(0)}f(0)≡P(0),则存在多项式P0(1),P1(1)∈F[Y]P_0^{(1)},P_1^{(1)}\in\mathbb{F}[Y]P0(1)​,P1(1)​∈F[Y],使得 max⁡{deg⁡(P0(1)),deg⁡(P1(1))}<12ρ2n\max\{\deg(P_0^{(1)}),\deg(P_1^{(1)})\}<\frac{1}{2}\rho 2^nmax{deg(P0(1)​),deg(P1(1)​)}<21​ρ2n,且:
∀x∈L(0),f(0)(x)=P(0)(x)=P0(1)(x2)+x⋅P1(1)(x2)\forall x\in L^{(0)}, f^{(0)}(x)=P^{(0)}(x)=P_0^{(1)}(x^2)+x\cdot P_1^{(1)}(x^2)∀x∈L(0),f(0)(x)=P(0)(x)=P0(1)​(x2)+x⋅P1(1)​(x2)

或,令Q(1)(X,Y)≜P0(1)(Y)+X⋅P1(1)(Y)Q^{(1)}(X,Y)\triangleq P_0^{(1)}(Y)+X\cdot P_1^{(1)}(Y)Q(1)(X,Y)≜P0(1)​(Y)+X⋅P1(1)​(Y),并定义q(0)(X)≜X2q^{(0)}(X)\triangleq X^2q(0)(X)≜X2,有:
P(0)(X)≡Q(1)(X,Y)modY−q(0)(X)P^{(0)}(X)\equiv Q^{(1)}(X,Y)\mod Y-q^{(0)}(X)P(0)(X)≡Q(1)(X,Y)modY−q(0)(X)

其中:deg⁡X(Q(1))<2\deg_{X}(Q^{(1)})<2degX​(Q(1))<2 且 deg⁡Y(Q(1))<12ρ2n\deg_Y(Q^{(1)})<\frac{1}{2}\rho 2^ndegY​(Q(1))<21​ρ2n。
map x↦q(0)(x)x\mapsto q^{(0)}(x)x↦q(0)(x)为2-to-1 on L(0)L^{(0)}L(0),因为q(0)(x)=q(0)(−x)q^{(0)}(x) = q^{(0)}(-x)q(0)(x)=q(0)(−x),该map的输出为由ω(1)=(ω(0))2\omega^{(1)}=(\omega^{(0)})^2ω(1)=(ω(0))2生成的multiplicative group,该group order为2n−12^{n-1}2n−1,标记为L(1)L^{(1)}L(1)。

此外,对于每个x(0)∈Fx^{(0)}\in\mathbb{F}x(0)∈F和y∈L(1)y\in L^{(1)}y∈L(1),Q(1)(x(0),y)Q^{(1)}(x^{(0)},y)Q(1)(x(0),y)的值可通过query two entries of f(0)f^{(0)}f(0)计算出来,原因是 deg⁡X(Q(1))<2\deg_{X}(Q^{(1)})<2degX​(Q(1))<2(该two entries为多项式 y−q(0)(X)y-q^{(0)}(X)y−q(0)(X)的two roots)。

因此,Verifier可:

  • <1>:对x(0)∈Fx^{(0)}\in\mathbb{F}x(0)∈F随机取样,要求Prover发送 f(1):L(1)→Ff^{(1)}:L^{(1)}\rightarrow \mathbb{F}f(1):L(1)→F(其本质为the evaluation of Q(1)(x(0),Y)Q^{(1)}(x^{(0)},Y)Q(1)(x(0),Y) on L(1)L^{(1)}L(1))。【第一轮的开销为,Verifier发送单一field元素x(0)x^{(0)}x(0),Prover回复a message(oracle)f(1):L(1)→Ff^{(1)}:L^{(1)}\rightarrow \mathbb{F}f(1):L(1)→F evaluated on a domain that is half the size of L(0)L^{(0)}L(0)。】
  • <2>:若f(0)∈RS[F,L(0),ρ]f^{(0)}\in RS[\mathbb{F}, L^{(0)},\rho]f(0)∈RS[F,L(0),ρ],则 f(1)∈RS[F,L(1),ρ]f^{(1)}\in RS[\mathbb{F}, L^{(1)},\rho]f(1)∈RS[F,L(1),ρ]。注意,f(0)f^{(0)}f(0)与f(1)f^{(1)}f(1)一致性存在3-query test,也称为round consistency test:【每个consistency test中,需要3个field elements。】
    • 1)采样一组不同的元素 s0,s1∈L(0)s_0,s_1\in L^{(0)}s0​,s1​∈L(0),使得s02=s12=ys_0^2=s_1^2=ys02​=s12​=y,换句话说,随机采样y∈L(1)y\in L^{(1)}y∈L(1),令s0,s1s_0,s_1s0​,s1​为多项式y−X2y-X^2y−X2的2个根。
    • 2)query f(0)(s0),f(0)(s1),f(1)(y)f^{(0)}(s_0), f^{(0)}(s_1),f^{(1)}(y)f(0)(s0​),f(0)(s1​),f(1)(y),将相应的query answers表示为α0,α1,β\alpha_0,\alpha_1,\betaα0​,α1​,β。
    • 3)对穿过(s0,α0),(s1,α1)(s_0,\alpha_0),(s_1,\alpha_1)(s0​,α0​),(s1​,α1​)的直线插值,即找到degree最大为1的多项式p(X)p(X)p(X),满足p(s0)=α0,p(s1)=α1p(s_0)=\alpha_0,p(s_1)=\alpha_1p(s0​)=α0​,p(s1​)=α1​,注意,ppp为唯一确定的,因为s0≠s1s_0\neq s_1s0​=s1​。
    • 4)当且仅当p(x(0))=βp(x^{(0)})=\betap(x(0))=β时,accept,否则reject。

至此,将a single proximity problem of size 2n2^n2n and rate ρ\rhoρ REDUCE为 类似的问题of size 2n−12^{n-1}2n−1 and same rate ρ\rhoρ。
重复以上流程r=n−Rr=n-\mathcal{R}r=n−R次,可获得a function f(r)f^{(r)}f(r)——具有constant degree,且evaluated over a domain of constant size 2R2^{\mathcal{R}}2R。此时,Prover发送a single constant that describes the function,Verifier将该constant当作f(r)f^{(r)}f(r)用于最后一轮的consistency test,用于测试f(r−1)f^{(r-1)}f(r−1)与f(r)f^{(r)}f(r)之间的consistency。

对所有rrr轮进行递归分析,若 f(0)∈RS[F,L(0),ρ]f^{(0)}\in RS[\mathbb{F}, L^{(0)},\rho]f(0)∈RS[F,L(0),ρ](且Prover是诚实的),则所有rrr轮consistency tests通过概率为1,且f(r)f^{(r)}f(r)确实是a constant function。换句话说,该协议具有perfect completeness。

注意,FRI为quasi-linear RS-PCPP的”biased“版本。 Eli Ben-Sasson等人 2008年论文《Short PCPs with polylog query complexity》中的quasi-linear PCPP 与 FRI非常相似,也包含通过请求Prover evaluate a bivariate polynomial Q(X,Y)Q(X,Y)Q(X,Y) on a collection of axis-parallel lines来实现degree-reduction(由P(0)P^{(0)}P(0) reduce为 P(1)P^{(1)}P(1))。不过本文的FRI与该论文中的PCPP有2大不同之处:

  • 1)quasilinear PCPP为non-interactive的,因此Prover evaluates Q(1)(X,Y)Q^{(1)}(X,Y)Q(1)(X,Y) on a large subset of F×F\mathbb{F}\times \mathbb{F}F×F,而FRI协议使用interaction,通过请求Prover仅对Verifier选中的axis-parallel lines进行recursion,来降低proving time。
  • 3)论文《Short PCPs with polylog query complexity》中的多项式q(0)(X)q^{(0)}(X)q(0)(X)具有degree为≈deg⁡(P(0))\approx \sqrt{\deg(P^{(0)})}≈deg(P(0))​,从而Q(1)(X,Y)Q^{(1)}(X,Y)Q(1)(X,Y)对每个变量的degree均为≈deg⁡(P(0))\approx \sqrt{\deg(P^{(0)})}≈deg(P(0))​。而本文FRI使用的多项式q(0)q^{(0)}q(0)具有constant degree,因此the degrees of Q(1)Q^{(1)}Q(1) are very biased(constant degree in XXX vs. deg⁡(P(0))/2\deg(P^{(0)})/2deg(P(0))/2 in YYY)。从而可实现larger recursion depth for FRI but also avoids the necessity to apply recursive low-degree testing to each of the axes (the XXX-axis)because of its constant degree。

5.1.1 实际原型与正式定义之间的差异

  • 1)field F\mathbb{F}F为finite且binary,即为of characteristic 2,此外,the construction and analysis can be immediately applied to RS codes evaluated over smooth multiplicative groups(of order 2n2^n2n),正式解释见Remark 1.4和Remark 3.1。

  • 2)在binary fields内,the natural evaluation domains (类似上面的L(0),L(1)L^{(0)}, L^{(1)}L(0),L(1))为cosets of additive groups (而不是multiplicative group),即,L(i)L^{(i)}L(i)为an affine shift of a linear space over F2\mathbb{F}_2F2​。
    map q(0)(X)=X2q^{(0)}(X)=X^2q(0)(X)=X2不是2-to-1 on L(0)L^{(0)}L(0)(在binary fields,其为1-to-1 map,a Frobenius automorphism of F\mathbb{F}F over F2\mathbb{F}_2F2​),因此,实际使用一个不同的多项式q(0)(X)q^{(0)}(X)q(0)(X),该多项式为many-to-one on L(0)L^{(0)}L(0) 且 set L(1)={y=q(0)(x)∣x∈L(0)}L^{(1)}=\{y=q^{(0)}(x)| x\in L^{(0)}\}L(1)={y=q(0)(x)∣x∈L(0)} 为a coset of an additive group,与L(0)L^{(0)}L(0)类似,但具有更小的size(∣L(1)∣≪∣L(0)∣|L^{(1)}|\ll |L^{(0)}|∣L(1)∣≪∣L(0)∣);多项式q(0)q^{(0)}q(0) 被称为affine subspace多项式,属于the class of linearized polynomials。
    实际使用的q(0)q^{(0)}q(0)的degree为4而不是2,因为这可reduce the number of rounds from nnn to n/2n/2n/2 with no increase in total query complexity。注意,类似的reduction可在multiplicative setting下使用q(0)=X4q^{(0)}=X^4q(0)=X4。

  • 3)实际实现的协议,仅在Prover发送完所有的f(1),⋯,f(r)f^{(1)},\cdots,f^{(r)}f(1),⋯,f(r)之后,才执行query操作。
    因此,实际的协议分为2个阶段:

    • 3.1)第一个阶段名为COMMIT:包含了rrr轮。在第iii轮的开始阶段,Prover已发送oracles f(0),⋯,f(i−1)f^{(0)},\cdots,f^{(i-1)}f(0),⋯,f(i−1),且在第iii轮期间,Verifier发送random sample x(i)x^{(i)}x(i),Prover回复下一个oracle f(i)f^{(i)}f(i)。
    • 3.2)第二个阶段名为QUERY:Verifier对所有rrr轮运用round consistency test。为节约query complexity和boost soundness,the query made to L(i)L^{(i)}L(i) is used to test both consistency of f(i−1)f^{(i-1)}f(i−1) vs. f(i)f^{(i)}f(i) and consistency of f(i)f^{(i)}f(i) vs. f(i+1)f^{(i+1)}f(i+1)。

5.2 soundness分析

Proof composition技术:

  • 由Arora等人在[3]的PCP上下文中引入
  • 在[21,30]中用于PCPP
  • 在[23]Eli Ben-Sasson等人 2008年论文《Short PCPs with polylog query complexity》中针对RS code特例情况进行优化。

Proof composition技术 可将proximity testing problems over a large domain REDUCE为 类似的proximity testing problems over significantly smaller domains。

上面将f(0)f^{(0)}f(0) reduce为 f(1)f^{(1)}f(1)的流程是proof composition的特例情况,且,每次调用都将引起 two costs on behalf of the verifier:

  • 1)第一个cost为:check consistency of f(0)f^{(0)}f(0) and f(1)f^{(1)}f(1)(即”round consistency test“) 所需的query complexity。
  • 2)第二个cost为:the reduction in distance——会影响该协议的soundness。
    假设f(0)f^{(0)}f(0) 为δ(0)\delta^{(0)}δ(0)-far from all codewords in relative Hamming distance,for proof composition to work one should prove that with high probability f(1)f^{(1)}f(1) is δ(1)\delta^{(1)}δ(1)-far from all codewords where δ(1)\delta^{(1)}δ(1) depends on δ(0)\delta^{(0)}δ(0);更大的δ(1)\delta^{(1)}δ(1)值意味着更好的soundness以及更小的communication complexity。

FRI协议的好处之一是,其具有high probability δ(1)≥(1−o(1))δ(0)\delta^{(1)}\geq (1-o(1))\delta^{(0)}δ(1)≥(1−o(1))δ(0),即在本协议中the reduction in distance是可忽略的。而之前的构建[23,53]会引入a constant multiplicative loss in distance per round of proof composition(δ(1)≤δ(0)/2\delta^{(1)}\leq \delta^{(0)}/2δ(1)≤δ(0)/2),这种loss会限制proof composition轮数为≤log⁡N\leq \log N≤logN,从而需要替代q(0)(X)=X2q^{(0)}(X)=X^2q(0)(X)=X2为degree更高的多项式,类似为q(0)(X)=X2n/2q^{(0)}(X)=X^{2^{n/2}}q(0)(X)=X2n/2。q(0)q^{(0)}q(0)的degree越高,将导致Q(1)(X,Y)Q^{(1)}(X,Y)Q(1)(X,Y)具有balanced X和Y degrees,即:
deg⁡X(Q(1))≈deg⁡Y(Q(1))≈2n/2\deg_X(Q^{(1)})\approx \deg_Y(Q^{(1)})\approx 2^{n/2}degX​(Q(1))≈degY​(Q(1))≈2n/2

而FRI中的q(0)(X)q^{(0)}(X)q(0)(X)具有constant degree,从而为a biased RS-IOPP(因 deg⁡X(Q(1))≪deg⁡Y(Q(1))\deg_X(Q^{(1)})\ll \deg_Y(Q^{(1)})degX​(Q(1))≪degY​(Q(1)))。该bias的主要好处在于:XXX端的recursive流程可快速结束,最终可移除之前成果中的constant multiplicative soundness loss,将其替代为 a negligible additive loss。更确切来说,δ(0)\delta^{(0)}δ(0) 小于 code的唯一解码半径——即 δ(0)<(1−ρ)/2\delta^{(0)}<(1-\rho)/2δ(0)<(1−ρ)/2,的 概率高达1−O(1)∣F∣1-\frac{O(1)}{|\mathbb{F}|}1−∣F∣O(1)​。(i)the round consistency error 与 (ii)the “new” distance δ(1)\delta^{(1)}δ(1) 之和 要大于等于 the “old” distance δ(0)\delta^{(0)}δ(0)。
当Prover是诚实的时,该statement相对易于证明,即,f(1)(y)=Q(1)(x(0),y)f^{(1)}(y)=Q^{(1)}(x^{(0)},y)f(1)(y)=Q(1)(x(0),y) for all y∈L(1)y\in L^{(1)}y∈L(1),此时没有round consistency error。该proof的challenging部分表明对于non-honest provers和 任意f(1)f^{(1)}f(1)也是成立的。详细见Full version版 Fast Reed-Solomon interactive oracle proofs of proximity (2nd revision)。

6. FRI——详细描述及主要属性

FRI实际实现分为2个阶段:

  • 1)COMMIT阶段
  • 2)QUERY阶段

6.1 定义及标记

  • 插值:对于函数 f:S→F,S⊂Ff:S\rightarrow \mathbb{F}, S\subset \mathbb{F}f:S→F,S⊂F,令interpolantf\text{interpolant}^finterpolantf表示对fff的插值,定义唯一多项式P(X)=∑i=0∣S∣−1aiXiP(X)=\sum_{i=0}^{|S|-1}a_iX^iP(X)=∑i=0∣S∣−1​ai​Xi,P(X)P(X)P(X)的degree小于∣S∣|S|∣S∣,其evaluation on SSS等于f∣Sf|_Sf∣S​,即∀x∈S,f(x)=P(x)\forall x\in S, f(x)=P(x)∀x∈S,f(x)=P(x)。可将插值多项式P(X)P(X)P(X)以系数序列a0,⋯,a∣S∣−1a_0,\cdots,a_{|S|-1}a0​,⋯,a∣S∣−1​来表示。

  • subspace多项式:对于set L0⊂FL_0\subset \mathbb{F}L0​⊂F,令ZeroL0≜∏x∈L0(X−x)\text{Zero}_{L_0}\triangleq\prod_{x\in L_0}(X-x)ZeroL0​​≜∏x∈L0​​(X−x)为唯一的非零、首项系数唯一、degree为∣L0∣|L_0|∣L0​∣、vanish on L0L_0L0​ 的多项式。当L0L_0L0​为binary field内的某additive coset时,多项式ZeroL0(X)\text{Zero}_{L_0}(X)ZeroL0​​(X)为affine subspace多项式,为linearized多项式的一种特殊类型。这种多项式有如下属性可用于proofs等场景:

    • 1)map x↦ZeroL0(x)x\mapsto \text{Zero}_{L_0}(x)x↦ZeroL0​​(x)可将每个additive coset SSS of L0L_0L0​ 映射为 a single field element,标记为ySy_SyS​。
    • 2)若 L⊃L0L\supset L_0L⊃L0​为additive cosets,则ZeroL0(L)≜{ZeroL0(z)∣z∈L}\text{Zero}_{L_0}(L)\triangleq \{\text{Zero}_{L_0}(z)|z\in L\}ZeroL0​​(L)≜{ZeroL0​​(z)∣z∈L}为additive coset,且 dim⁡(ZeroL0(L))=dim⁡(L)−dim⁡(L0)\dim(\text{Zero}_{L_0}(L))=\dim (L)-\dim (L_0)dim(ZeroL0​​(L))=dim(L)−dim(L0​)。
  • subspace specification:通常以字母LLL来表示binary field F\mathbb{F}F的某additive coset,并假设该additive coset由一个additive shift α∈F\alpha\in\mathbb{F}α∈F和basis β1,⋯,βk∈Fk\beta_1,\cdots,\beta_k\in\mathbb{F}^kβ1​,⋯,βk​∈Fk定义,使得L={α+∑i=1kbiβi∣b1,⋯,bk∈F2}L=\{\alpha+\sum_{i=1}^{k}b_i\beta_i|b_1,\cdots,b_k\in\mathbb{F}_2\}L={α+∑i=1k​bi​βi​∣b1​,⋯,bk​∈F2​}。假设相应的α\alphaα和β⃗(β1,⋯,βk)\vec{\beta}(\beta_1,\cdots,\beta_k)β​(β1​,⋯,βk​)已由Prover和Verifier达成共识。

6.2 COMMIT阶段


FRI协议由整数η\etaη参数化,为证明如上定理,设置η=2\eta=2η=2,其它场景可能设置为其它值更合适。轮数为r≜⌊k(0)−Rη⌋r\triangleq \left \lfloor \frac{k^{(0)}-\mathcal{R}}{\eta} \right \rfloorr≜⌊ηk(0)−R​⌋(注意,R=log⁡(1/ρ)\mathcal{R}=\log(1/\rho)R=log(1/ρ),其中ρ\rhoρ为rate)。
在第iii轮的COMMIT阶段,对于i∈{0,⋯,r−1}i\in\{0,\cdots,r-1\}i∈{0,⋯,r−1},Verifier可oracle access to函数 f(i):L(i)→Ff^{(i)}:L^{(i)}\rightarrow \mathbb{F}f(i):L(i)→F,其中dim⁡(L(i))=k(i)=k(0)−η⋅i\dim(L^{(i)})=k^{(i)}=k^{(0)}-\eta\cdot idim(L(i))=k(i)=k(0)−η⋅i,该函数由Prover提交,且space L(i)L^{(i)}L(i)为提前固定的,不依赖于Verifier messages。

  • 1)A single COMMIT round:对于每个i∈{0,⋯,r−1}i\in\{0,\cdots,r-1\}i∈{0,⋯,r−1},Verifier和Prover对某固定“small” L0(i)⊂L(i),dim⁡(L0(i))=ηL_0^{(i)}\subset L^{(i)}, \dim(L_0^{(i)})=\etaL0(i)​⊂L(i),dim(L0(i)​)=η 达成共识。以S(i)S^{(i)}S(i)来表示all cosets of L0(i)L_0^{(i)}L0(i)​ in L(i)L^{(i)}L(i)。令q(i)(X)≜ZeroL0(i)(X)q^{(i)}(X)\triangleq\text{Zero}_{L_0^{(i)}}(X)q(i)(X)≜ZeroL0(i)​​(X)为the subspace polynomial vanishing on L0(i)L_0^{(i)}L0(i)​。令L(i+1)≜q(i)(L(i))L^{(i+1)}\triangleq q^{(i)}(L^{(i)})L(i+1)≜q(i)(L(i))。Verifier的第iii个消息为uniformly随机值x(i)∈Fx^{(i)}\in\mathbb{F}x(i)∈F。Prover的下一消息(或oracle)为f(i+1):L(i+1)→Ff^{(i+1)}: L^{(i+1)}\rightarrow \mathbb{F}f(i+1):L(i+1)→F computed for each yS∈L(i+1),yS=q(i)(S),S∈S(i)y_S\in L^{(i+1)}, y_S=q^{(i)}(S), S\in S^{(i)}yS​∈L(i+1),yS​=q(i)(S),S∈S(i),对函数f(i)∣Sf^{(i)}|_Sf(i)∣S​进行插值来获得多项式PS(i)(X),deg⁡(PS(i))<2ηP_S^{(i)}(X),\deg(P_S^{(i)})<2^{\eta}PS(i)​(X),deg(PS(i)​)<2η,然后设置f(i+1)(yS)≜PS(i)(x(i))f^{(i+1)}(y_S)\triangleq P_S^{(i)}(x^{(i)})f(i+1)(yS​)≜PS(i)​(x(i))。

  • 2)COMMIT结束:在最后一轮i=ri=ri=r,Prover发送的不是f(r)f^{(r)}f(r)本身,而是f(r)f^{(r)}f(r)的插值多项式P(r)(X)=interpolantf(r)P^{(r)}(X)=\text{interpolant}^{f^{(r)}}P(r)(X)=interpolantf(r)。此时,deg⁡(P(r)(X))<ρ⋅∣L(r)∣≤2η\deg(P^{(r)}(X))<\rho \cdot |L^{(r)}|\leq 2^{\eta}deg(P(r)(X))<ρ⋅∣L(r)∣≤2η(注意η\etaη为constant)。

完整的COMMIT阶段为:

将FRI调整为the family of smooth RS codes,需在以上算法的基础上做如下调整:

6.3 QUERY阶段

在QUERY阶段中,Prover不参加,Verifier仅需检查Prover是否按如上算法操作。
Verifier的单个测试中包含了:

  • 取随机值s(0)∈L(0)s^{(0)}\in L^{(0)}s(0)∈L(0)
  • 递归计算s(i+1)=q(i)(s(i))s^{(i+1)}=q^{(i)}(s^{(i)})s(i+1)=q(i)(s(i)),注意s(i)∈L(i)s^{(i)}\in L^{(i)}s(i)∈L(i),以S(i)S^{(i)}S(i)来表示the unique coset of L0(i)L_0^{(i)}L0(i)​ in which s(i)s^{(i)}s(i) is contained,有s(i+1)=yS(i)s^{(i+1)}=y_{S^{(i)}}s(i+1)=yS(i)​。
  • 当且仅当对所有的i<ri<ri<r,f(i+1)(s(i+1))=interpolantf(i)∣S(i)(x(i))f^{(i+1)}(s^{(i+1)})=\text{interpolant}^{f^{(i)}|_{S^{(i)}}}(x^{(i)})f(i+1)(s(i+1))=interpolantf(i)∣S(i)​(x(i))成立时,Verifier才accept,否则reject。当i<ri<ri<r时,f(i)(x)f^{(i)}(x)f(i)(x)值由Verifier直接query,而在最后一轮(i=ri=ri=r)时,Verifier会从最后的prover消息中query 多项式P(r)(X)P^{(r)}(X)P(r)(X)的所有系数,并对该多项式插值重构出f(r)f^{(r)}f(r)。

QUERY阶段详细流程为:

6.4 FRI协议的主要属性

已知函数f:S→∑f:S\rightarrow \sumf:S→∑且S′⊂SS'\subset SS′⊂S,将f∣S′f|_{S'}f∣S′​表示为the restriction of fff to domain S′S'S′。
已知g:S→∑g: S\rightarrow \sumg:S→∑,令f∣S′=g∣S′f|_{S'}=g|_{S'}f∣S′​=g∣S′​表示equality in the space ∑S′\sum^{S'}∑S′,即当且仅当对于每个x∈S′x\in S'x∈S′有f(x)=g(x)f(x)=g(x)f(x)=g(x)时,该equality才成立。

Block-wise distance measure定义:

FRI的主要属性有:



Fast Reed-Solomon Interactive Oracle Proofs of Proximity学习笔记相关推荐

  1. 判断题:oracle自带的sql语言环境是pl/sql,Oracle之PL/SQL学习笔记之数据类型(三)

    Oracle之PL/SQL学习笔记之数据类型(三) 所有的编程语言中变量是使用最频繁的.PL/SQL作为一个面向过程的数据库编程语言同样少不了变量,利用变量可以把PL/SQL块需要的参数传递进来,做到 ...

  2. vb.net调用oracle存储过程,vbnet2008连接oracle增删改查学习笔记(经典crud_含存储过程).doc...

    vbnet2008连接oracle增删改查学习笔记(经典crud_含存储过程).doc 我的VBNETORACLE增删改查学习笔记(本源码在VBNET2008下测试通过)学习VBNET有一段时间了,之 ...

  3. Oracle之PL/SQL学习笔记之有名块练习

    2019独角兽企业重金招聘Python工程师标准>>> Oracle之PL/SQL学习笔记之有名块练习 存储过程案例: 案例1: 根据雇员姓名跟新雇员工资,如果雇员不存在输出没有该雇 ...

  4. oracle数据库基础知识总结,oracle数据库基础知识学习笔记

    oracle数据库基础知识学习笔记 一.oracle数据库类型: Char:  字符型(最大长度2000,定长.不足时以空格补充) Varchar2:字符型 最大长度 4000,变长,实际长度由存储的 ...

  5. oracle 最大值及其_学习笔记:Oracle优化 SQL查询最大值 最小值时的优化方法案例...

    天萃荷净 select max(id),min(id) from table优化,分享开发DBA需求,在SQL语句查询最大值.最小值数据时的优化方式案例 1.查看数据库版本 SQL> selec ...

  6. oracle 百万记录 cache,学习笔记:通过案例深入学习In-Memory Database Cache 总结配置过程...

    天萃荷净 详细记录关于In-Memory Database Cache配置方法与使用案例 一.Oracle数据库创建相关用户和权限 1.创建timesten用户 store information a ...

  7. oracle 触发器登录,【学习笔记】Oracle触发器 实现指定用户登录oracle案例

    天萃荷净 触发器实现指定用户登录oracle,分享一篇关于Oracle数据库安全策略,通过Oracle触发器实现限定user用户登录Oracle数据库的方法 1.创建允许登录用户表 CREATE TA ...

  8. oracle数据库开多线程,学习笔记:Oracle表数据导入 DBA常用单线程插入 多线程插入 sql loader三种表数据导入案例...

    天萃荷净 oracle之数据导入,汇总开发DBA在向表中导入大量数据的案例,如:单线程向数据库中插入数据,多线程向数据表中插入数据,使用sql loader数据表中导入数据案例 1.Oracle数据库 ...

  9. oracle v$ 表,【学习笔记】Oralce视图 查找分析V$PARAMETER视图的基表

    天萃荷净 分享一篇关于查找分析V$PARAMETER视图的基表的案例方法 1.使用trace查找show parameter执行语句 alter session set events '10046 t ...

最新文章

  1. python Intel Realsense udp协议 局域网传输实时视频流并通过窗口显示 (opencv压缩解码)
  2. [PHP] 近期接手現有的企邮前端框架业务所遇困难
  3. poj2965 The Pilots Brothers' refrigerator
  4. solr5 导入oracle,Solr7使用Oracle数据源导入+中文分词
  5. 上周末Jscex项目介绍的幻灯片
  6. 【优化算法】萤火虫优化算法(FA)【含Matlab源码 482期】
  7. DELL戴尔开启/关闭触摸板方法
  8. matlab 求反余弦,matlab中反余弦函数
  9. 手把手教你电脑下载b站视频
  10. 许怡然:网游创业失败全攻略
  11. 数据结构 第14讲 神秘电报密码——哈夫曼编码
  12. 塔米狗分享|2022年企业并购创新的融资方式有哪些
  13. 分享一个jQuery的自动客户端本地保存插件Sisyphus.js - 帮助你自动保存用户输入内容
  14. 使用 Scrapy 框架对重复的 url 无法获取数据,dont_filter=True
  15. 辉芒微IO单片机FT60F121-RB
  16. 客户画像赋能百度推广生态实践
  17. 时间戳与时间的转换大全
  18. Superfetch 注册表设置
  19. 算法开启的人工智能时代!阿里聚安全算法挑战赛公开报名!
  20. 金税盘 实时上传服务器信息,金税盘上传参数怎么设置

热门文章

  1. qss样式表之QLable
  2. excel查找出不来了_Excel查找值不唯一,一个VLOOKUP公式拖拉出多个结果啦
  3. 【3DFR Python】convertDepth2Normal:从深度图计算法向图
  4. c#模拟微信运动排行榜
  5. Python数据清洗:提取爬虫文本中的电话号码
  6. 全国计算机考试能带手机吗,全国计算机等级考试注意事项
  7. 全国计算机二级很难得吗,全国计算机二级考试难吗?
  8. flex+php ria应用开发实战详解,《Flex+PHP RIA应用开发实战详解-梁文新版》学习日记2...
  9. 微信公众平台生成二维码海报是如何做到的?
  10. 结对项目——进一步完善四则运算