与其他工作的比较

BCMS20 附录 A.2

BCMS20 附录 A.2 提出了一种与 BGH19 中类似的多项式承诺机制(BCMS20 是对原始的 Halo 论文的推广)。 Halo 2 这些工作的基础上,因此其自身也就使用了一种与 BCMS20 中很类似的多项式承诺机制。

下表提供了一个BCMS20和Halo 2中具有相同含义的变量的对照表(Halo 2的术语是建立在Halo论文基础上的):

BCMS20Halo 2
msm or
challenge_i
s_poly
s_poly_blind
s_poly_commitment
blind /

Halo 2的多项式承诺机制与BCMS20附录A.2的机制有两点不同:

  1. 算法的第8步将在内积证明之前计算一个“非隐藏”的承诺 。 该承诺与 拥有相同的打开之,只不过它是仅是一个对一个随便写的多项式的承诺。 协议的剩余部分则是没有盲化的。与之相比,Halo 2中我们会盲化我们产生的所有的承诺(即便对于instance和fixed多项式也是如此, 尽管对fixed多项式的盲化因子是1),这使得协议更容易推理(???)。该方法的结果是,验证者在协议的最后要去 处理累计的盲化因子,所以在协议一开始就推导一个(与第一种方法)等价的 就没有必要了。

    • is also an input to the random oracle for ; in Halo 2 we utilize a transcript that has already committed to the equivalent components of prior to sampling .(???)
  2. The subroutine (Figure 2 of BCMS20) computes the initial group element by adding , which requires two scalar multiplications. Instead, we subtract from the original commitment , so that we're effectively opening the polynomial at the point to the value zero. The computation is more efficient in the context of recursion because is a fixed base (so we can use lookup tables).

  3. 子程序 (BCMS20的图2所示) 会通过增加 来产生最开始的群元素 ,而这需要两次scalar乘。与之不同,我们的方法是用最初的承诺 减去 ,如此 我们就可以在0处很高效地打开多项式。而的计算在递归证明的情况下具有更高效率,这是因为 是一个固定的基 (所以我们可以用查表(lookup tables)方法)。