【译】SNARKs讲解「第三部分」:关于系数知识的测试和假设

原文链接

<<< 第二部分

在本系列文章的第二部分中,我们看到Alice如何能够对自己的 d d d次多项式 P P P在属于Bob的点 s s s上的隐藏 E ( P ( s ) ) E(P(s)) E(P(s)) 做盲求值。我们把这个称为“盲”求值的原因是,Alice在整个过程中不知道 s s s是多少。

然而,这个协议里还缺了点什么。事实上Alice能够计算出 E ( P ( s ) ) E(P(s)) E(P(s)) ,并不保证她会真的把 E ( P ( s ) ) E(P(s)) E(P(s)) 送给Bob,而不送一个完全无关的值。

于是我们需要一个方法来“迫使”Alice正确地遵循协议。我们将在第四部分准确地讲解我们如何做到这一点。在本文中,我们专注讲解为达到这个目标而需要的基本工具。我们称这个工具为系数知识(KC)测试。

之前我们用 g g g表示一个群 G G G的生成器。这个群的阶数为 ∣ G ∣ = p |G| = p G=p,并且该群的离散对数解很难。从本文往后,用加法而不是用乘法来表示我们的群会更方便。也就是,对于 a ∈ F p a \in \textbf F_p aFp a ⋅ g a \cdot g ag 表示把 a a a g g g相加的结果。

KC测试

对于 α ∈ F p ∗ \alpha \in \textbf F_p^* αFp 1,我们把 G G G中的一对元素 ( a , b ) (a,b) (a,b)称为一个 α α α-对,如果 a , b &MediumSpace;&MediumSpace; ≠ 0 a, b \: \: \neq 0 a,b̸=0 并且 b = α ⋅ a b=α \cdot a b=αa

KC测试过程如下:

  1. Bob挑选随机数 α ∈ F p ∗ α \in \textbf F_p^* αFp a ∈ G a \in G aG。然后它计算 b = α ⋅ a b=α \cdot a b=αa
  2. 他把“挑战”对 ( a , b ) (a,b) (a,b) 发送给Alice。注意这个 ( a , b ) (a,b) (a,b) 是一个 α α α-对。
  3. Alice现在必须用一个不同的对 ( a ′ , b ′ ) (a&#x27;, b&#x27;) (a,b) 来响应。这个对也是一个 α α α-对。
  4. 仅当 ( a ′ , b ′ ) (a&#x27;,b&#x27;) (a,b) 真的是一个 α α α-对时,Bob才接受Alice的响应(因为他知道 α α α, 他可以计算是否 b ′ = α ⋅ a ′ b&#x27; = α \cdot a&#x27; b=αa)。

现在我们想一下Alice如何才能成功地响应这个挑战。让我们假设她知道 α α α 。在这个情况下,她可以简单地在 G G G 中选择任何 a ′ a&#x27; a,计算 b ′ = α ⋅ a ′ b&#x27; = α \cdot a&#x27; b=αa,然后把 ( a ′ , b ′ ) (a&#x27;,b&#x27;) (a,b)作为她的新 α α α-对返回。

然而Alice拥有的关于 α α α 的唯一信息就是 α ⋅ a α \cdot a αa 以及G有一个困难的离散对数问题。我们预期Alice无法找到 α α α

那么她如何才能在不知道 α α α 的情况下成功地响应挑战呢 ?

下面是做这件事的自然方式:Alice简单地挑选某个 γ ∈ F p ∗ \gamma \in \textbf F_p^* γFp,然后用 ( a ′ , b ′ ) = ( γ ⋅ a , γ ⋅ b ) (a&#x27;,b&#x27;)=(\gamma \cdot a, \gamma \cdot b) (a,b)=(γa,γb) 来响应。这里我们有 b ′ = γ ⋅ b = γ α ⋅ a = α ( γ ⋅ a ) = α ⋅ a ′ b&#x27;=\gamma \cdot b=\gamma \alpha \cdot a=\alpha(\gamma \cdot a)=\alpha \cdot a&#x27; b=γb=γαa=α(γa)=αa,如此 ( a ′ , b ′ ) (a&#x27;,b&#x27;) (a,b) 就是所要求的一个 α \alpha α-对。

注意,如果Alice用这个策略来响应,她就知道 a a a a ′ a&#x27; a 之间的比例,也就是系数 γ \gamma γ,使得 a ′ = γ ⋅ a a&#x27;=\gamma \cdot a a=γa

系数知识假设2(KCA)规定了这个情况总是发生,也就是说:

KCA:如果Alice能以一个不小的概率返回一个针对从Bob来的挑战 ( a , b ) (a,b) (a,b) 的有效响应 ( a ′ , b ′ ) (a&#x27;,b&#x27;) (a,b),那么 她知道 γ \gamma γ ,使得 a ′ = γ ⋅ a a&#x27;=\gamma \cdot a a=γa

KC测试和假设将会是第四部分中的重要工具。

“Alice知道”具体是什么意思呢?

你可能想知道我们如何能够用精准的数学术语来表达KCA,具体地说,我们如何把“Alice知道 γ \gamma γ“这个概念用数学定义来正式表达?

可以粗略地这样做:除开Alice,我们还有另一方,称作Alice的提取器。Alice的提取器可以访问Alice的内部状态。

我们然后这样规划KCA:当Alice用一个 α \alpha α-对 ( a ′ , b ′ ) (a&#x27;,b&#x27;) (a,b) 来成功响应挑战的时候,Alice的提取器输出 γ \gamma γ,使得 a ′ = γ ⋅ a a&#x27;=\gamma \cdot a a=γa3

>>> 第四部分


  1. F p ∗ \textbf F_p^* Fp 表示 F p \textbf F_p Fp 的非零元素集。这跟第一部分中 F p ∗ \textbf F_p^* Fp 的描述相同。 ↩︎

  2. 在文献中,这被典型地称为指数知识假设,因为传统上这被用在用乘法表达的群中。 ↩︎

  3. 完整的正式定义需要给提取器“一点点松弛",它规定Alice成功响应而提取器不输出 γ \gamma γ 的概率可忽略不计。 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值