首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bilinear多项式验证步骤中,如何准确地使用g指数中的双线性配对乘法?

在bilinear多项式验证步骤中,如何准确地使用g指数中的双线性配对乘法?
EN

Cryptography用户
提问于 2023-05-01 06:47:21
回答 1查看 61关注 0票数 1

我正在阅读由Maksym Petkus - https://arxiv.org/pdf/1906.07221.pdf编写的对zkSnark的解释。

在第24页中,解释了多项式的zk-SNARK .在安装阶段,验证和验证密钥由可信设置创建。我理解如何使用证明键创建证据。

但是,如果我们看到验证键= { g^α, g^t(s) },我就不知道它是如何在验证阶段使用的。

核查阶段的步骤如下。

在步骤e(g^{p'}, g) = e(g^p, g^α)中,对此检查执行哪些操作?我假设是g^{p'} = (g^p)^α。要做到这一点,我不知道α。我只从整数的验证中知道g^α

对于多项式馀因子的检验也有同样的疑问,我从验证密钥中知道g^{t(s)},但不知道t(s)。这张支票是怎么发生的?我假设验证器无法访问安装阶段。

请帮帮我。

EN

回答 1

Cryptography用户

发布于 2023-05-01 07:22:58

双线性配对具有许多性质,包括

e(A^\alpha, B) = e(A, B^\alpha) = {e(A, B)}^{\alpha} (其中\alpha是标量)

也就是说,您可以将左手项的指数移到右侧,也可以将其移出e地图本身。

(在您的示例中,A = B)

Polynomial限制检查

验证器需要检查p' = p^\alpha是否

这可以通过检查

g^{p'} \stackrel {?}{=} g^{p^\alpha}

m = g^p

所以,支票变成

g^{p'} \stackrel {?}{=} m^\alpha

使用双线性配对,

e(g^{p'}, g) \stackrel {?}{=} e(m^\alpha, g)

根据双线性配对的性质,可以将\alpha移到另一边,因此

e(g^{p'}, g) = e(m, g^\alpha) = e(g^p, g^\alpha)

所以他需要检查一下

$e(g^{p'},g) \stackrel {}{} e(g^p,g^α)$$

如果以上检查为真,则表示

p' = p^\alpha

Cofactors检查

验证器需要检查p = t(s)\star h是否

如果

e(g^p, g) = e(g^{t(s)\star h}, g)

现在,自从x^{a\star b} = x^{a^b}

e(g^p, g) = e(g^{{t(s)}^ h}, g)

同样,根据双线性对的性质,可以将h移到第二个参数,即验证器需要检查

e(g^p, g) \stackrel {?}{=} e(g^{t(s)}, g^h)

如果以上是真的,那就意味着

p = t(s)\star h

Vitalik关于配对的文章提供了更多关于如何检查配对的等式的信息。

https://medium.com/@VitalikButerin/exploring-elliptic-curve-pairings-c73c1864e627

我用乘法符号重写了他的一篇文章中的一段话。

配对更进一步,它允许你检查椭圆曲线点上的某些更复杂的方程,例如,如果P = g ^ pQ = g ^ qR = g ^ r,你可以检查p \star q = r是否有,只有PQR作为输入。

票数 2
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/106342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档