一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据验证的方法及装置与流程

2022-06-29 14:41:51 来源:中国专利 TAG:


1.本说明书一个或多个实施例涉及数据安全计算领域,尤其涉及数据验证的方法和装置。


背景技术:

2.在多方合作联合进行数据分析处理的场景中,数据的安全性和隐私保护越来越受到重视。隐私计算正是解决数据隐私和挖掘数据价值间矛盾的技术,而可验证计算技术是隐私计算的正确性保证,即:它能够保证一个参与方v能够公开验证另外一个参与方p返回的计算结果是“按照事先双方要求、确实是p计算出来的(而不是一个错误的值)”,并且v验证的代价远小于自己计算代价。
3.可验证计算技术广泛应用于区块链、隐私机器学习等分布式场景。例如,为了解决区块链智能合约的计算瓶颈,区块链中的节点设备可以将智能合约对应的计算任务迁移到链下的不可信的计算节点;链下计算节点完成计算任务后,生成计算正确性的证明(proof),并将计算结果和证明一起提交给节点设备;节点设备基于证明,高效的完成计算结果正确性的验证。通过可验证计算技术,有效的将计算资源受限的智能合约的计算量转移到了具有更多计算资源的链下计算节点。
4.为此,希望提供改进的方案,可以更加高效地对计算结果的正确性进行验证,从而提高可验证计算的效率。


技术实现要素:

5.本说明书一个或多个实施例描述了一种数据验证的方法和装置,可以高效地针对计算结果进行正确性证明和验证,提高可验证计算的效率。
6.根据第一方面,提供了一种数据验证的方法,通过计算设备执行,包括:
7.获取目标算术电路的目标函数组的函数信息,所述目标算术电路用于执行验证设备指示的目标计算任务,所述目标函数组用于描述所述目标算术电路的电路结构;
8.根据所述目标计算任务的本轮计算过程,确定第一函数,所述第一函数用于描述在所述本轮计算过程中所述目标算术电路中每个门的输入和输出值;
9.通过与所述验证设备执行交互论证协议,证明所述第一函数满足预设的若干约束关系,从而证明所述本轮计算过程的正确性,其中所述若干约束关系包括,所述第一函数和所述目标函数组的函数信息之间的约束关系。
10.在一种实施方式中,所述第一函数的输入为l比特的编码串,所述l比特包括第一比特组和第二比特组,所述第一比特组指示门编号或电路输入编号,所述第二比特组指示门的输入/输出端口或电路输入端口。
11.在一种实施方式中,目标函数组包括第二函数和第三函数,所述第二函数用于编码所述目标算术电路中各个门的门类型;所述第三函数用于编码所述目标算术电路中各个导线的连接关系。
12.根据一个实施例,目标算术电路包括第一导线,所述第一导线对应于多个编码串,该多个编码串形成编码串集合;所述第三函数满足:针对第一编码串的函数值,等于预定义的映射函数针对第二编码串的映射值,其中第一编码串和第二编码串通过循环遍历所述编码串集合而得到。
13.根据一种实施方式,获取目标算术电路的目标函数组的函数信息,具体包括:根据所述目标计算任务生成所述目标算术电路,根据所述目标算术电路的电路结构,确定所述目标函数组的函数信息。
14.根据另一种实施方式,获取目标算术电路的目标函数组的函数信息,包括:获取所述验证设备预先发送的所述目标函数组的函数信息。
15.进一步的,上述目标函数组的函数信息可以包括,第二承诺值和第三承诺值,其中所述第二承诺值是利用多项式承诺协议针对所述第二函数对应的第二多项式计算的承诺值;所述第三承诺值是利用多项式承诺协议针对所述第三函数对应的第三多项式计算的承诺值。
16.在一种实施方式中,所述若干约束关系包括,表征各个门的输入与输出之间关系的第一约束关系,其表示为所述第一函数和第二函数之间经运算形成的第一等式;相应的,证明所述第一函数满足预设的若干约束关系,包括:
17.根据所述第一函数和第二函数各自对应的第一多项式和第二多项式,将所述第一等式改写为针对第一组合多项式求和为0的形式;
18.获得第一挑战数;
19.与所述验证设备调用求和论证协议,验证将所述第一挑战数代入所述第一组合多项式求和得到的计算值是否为0。
20.在一种实施方式中,所述若干约束关系包括第二约束关系,所述第二约束关系指示,当所述第一比特组指示电路输入编号时,所述第一函数和第四函数之间的一致性,所述第四函数由所述验证设备持有,用于描述在本轮计算中所述目标算术电路的各个输入端口的输入值;相应的,证明所述第一函数满足预设的若干约束关系,包括:
21.获取第二挑战数;
22.与所述验证设备调用多项式承诺协议,证明将所述第二挑战数代入第一多项式的计算值,等于将其代入第四多项式的计算值,其中,所述第一多项式是所述第一函数的扩展多项式,第四多项式是所述第四函数的扩展多项式。
23.在一种实施方式中,所述若干约束关系包括表征导线两端值相等的第三约束关系,所述第三约束关系表示为所述第一函数和第三函数之间经映射函数运算形成的第三等式;相应的,证明所述第一函数满足预设的若干约束关系,包括:
24.获取随机数组;
25.确定比值多项式,所述比值多项式的分子和分母多项式中的一个根据所述随机数组、所述第一函数对应的第一多项式和所述第三函数对应的第三多项式得到,另一个根据所述随机数组、所述第一多项式和所述映射函数对应的映射多项式得到;
26.确定所述比值多项式与所述分母多项式的乘积与所述分子多项式的差值,得到差值多项式;
27.根据所述第三等式,与所述验证设备调用求和论证协议,证明所述比值多项式针
对全部输入的求值乘积为1;以及,证明所述差值多项式针对任意输入的求值为0。
28.进一步的,在一个实施例中,证明所述比值多项式针对全部输入的求值乘积为1,具体包括:根据所述比值多项式针对全部输入的求值,得到值向量,以及描述该值向量的值函数;以所述值函数为迭代基础,基于取值迭代相乘的迭代关系确定辅助函数,使得所述辅助函数针对特定输入的函数值为所述值向量所有元素的乘积;与所述验证设备调用多项式承诺协议,验证所述辅助函数对应的辅助多项式针对所述特定输入的求值是否为1;将所述迭代关系改写为针对第二组合多项式求和为0的形式;获得第三挑战数;与所述验证设备调用求和论证协议,验证将所述第三挑战数代入所述第二组合多项式求和得到的计算值是否为0。
29.在一个实施例中,证明所述差值多项式针对任意输入的求值为0,具体包括:将所述差值多项式针对任意输入求值为0的假设关系改写为针对第三组合多项式求和为0的形式;获取第四挑战数;与所述验证设备调用求和论证协议,验证将所述第四挑战数代入所述第三组合多项式求和得到的计算值是否为0。
30.在一种实施方式中,若干约束关系包括第四约束关系,所述第四约束关系指示,所述目标算术电路的最终输出门的输出为预设值;相应的,证明所述第一函数满足预设的若干约束关系,包括:
31.确定出最终输出门的门编号,将所述门编号与指示门输出端口的第二比特组相组合形成目标输入值;
32.与所述验证设备调用多项式承诺协议,证明将所述目标输入值代入所述第一函数对应的第一多项式的求值结果为所述预设值。
33.在一个场景中,所述验证设备是区块链的节点设备,所述计算设备是链下的计算设备,所述目标计算任务对应于区块链中智能合约的合约逻辑。
34.在另一场景中,所述验证设备是隐私保护的联邦学习中的参与方;所述目标计算任务对应于模型运算。
35.根据第二方面,提供了一种一种数据验证的装置,部署在计算设备中,包括:
36.获取单元,配置为获取目标算术电路的目标函数组的函数信息,所述目标算术电路用于执行验证设备指示的目标计算任务,所述目标函数组用于描述所述目标算术电路的电路结构;
37.确定单元,配置为根据所述目标计算任务的本轮计算过程,确定第一函数,所述第一函数用于描述在所述本轮计算过程中所述目标算术电路中每个门的输入和输出值;
38.证明单元,配置为通过与所述验证设备执行交互论证协议,证明所述第一函数满足预设的若干约束关系,从而证明所述本轮计算过程的正确性,其中所述若干约束关系包括,所述第一函数和所述目标函数组的函数信息之间的约束关系。
39.根据第三方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
40.根据本说明书实施例提供的方法和装置,以多变量单一函数对算术电路的一轮执行进行编码,该多变量的数目仅为算术电路的大小附加一个较小常数。基于此,计算设备可以利用多项式承诺和求和论证协议,以较低的计算开销,向验证设备证明计算结果的正确性,从而实现高效的可验证计算。
附图说明
41.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
42.图1示出根据一个实施例两方进行可验证计算的示意图;
43.图2示出将算术电路编码为函数表示的一个示例;
44.图3示出根据一个实施例的数据验证方法;
45.图4示出根据一个实施例计算设备证明第一约束关系的步骤流程;
46.图5示出根据一个实施例计算设备证明第三约束关系的步骤流程;
47.图6示出根据一个实施例的一种数据验证装置的示意图。
具体实施方式
48.下面结合附图,对本说明书提供的方案进行描述。
49.如前所述,出于隐私保护和数据安全性的考虑,在多方联合进行数据分析处理的场景中,采用可验证计算的方式,确保隐私计算的正确性。
50.图1示出根据一个实施例两方进行可验证计算的示意图。在图1的示例中,进行可验证计算的两方分别记为计算设备和验证设备。验证设备可以将一项具体的计算任务t(或计算逻辑)委托给计算设备进行计算。在一轮计算中,计算设备根据本轮输入数据执行该计算任务得到计算结果后,生成本次的结果证明,使得验证设备可以基于该结果证明,验证该计算结果确实为针对本轮输入数据执行上述计算任务得到的正确结果。由此,上述计算设备作用为证明者(prover),记为设备pr;验证设备作用为验证者(verifier),记为设备ve。
51.在具体场景示例中,例如,验证设备ve可以是区块链的节点设备,计算设备pr可以是链下的计算设备,例如计算平台或计算集群,所委托的计算任务可以是区块链中智能合约的合约逻辑。一轮计算过程中的输入数据,可以是调用该智能合约的一条交易中所指定的入参。
52.又例如,验证设备ve可以是隐私保护的联邦学习中的参与方,其持有模型训练或预测所需的隐私数据。该隐私数据可以是样本的隐私数据,例如用户个人信息,用户人脸图像等用户隐私数据,也可以是模型参数构成的模型隐私数据。计算设备pr可以是另一参与方,或者参与方之外的计算平台或集群。为保护隐私,验证设备ve可以将其隐私数据进行加密后,委托计算设备pr基于加密数据进行同态运算。所委托的计算任务可以是模型训练过程或预测过程中的模型运算对应的同态运算。
53.在其他场景中,验证设备ve和计算设备pr,还可以执行其他具体的场景相关功能,在此不一一穷举。对于验证设备ve和计算设备pr的具体实现方式在此不做限定。
54.为实现上述的可验证计算过程,在准备阶段,首先将计算任务t转换为算术电路c的形式。该转换过程可以由验证设备ve进行,或者可以由验证设备和计算设备pr共同执行。转换得到的算术电路c可以认为是,用于执行上述计算任务t的逻辑电路,该电路由若干基础算术门相互连接构成,这些算术门可以包括乘法门,加法门等执行基础算术运算的门。在确定出算术电路c后,就可以构造出电路结构描述函数,该函数用于对算术电路c的电路结
构,例如门的数量和类型,电路连接关系等,进行编码和描述。
55.在一轮计算中,计算设备pr基于本轮输入数据利用算术电路c执行本轮计算。根据算术电路c中的各个门在本轮计算中的输入输出值,确定出本轮计算函数。在本说明书的实施例中,采用单个函数(本轮计算函数)编码电路中每个门的输入输出值。
56.然后,计算设备pr与验证设备ve执行交互论证协议,从而向验证设备ve证明,本轮计算函数和电路结构描述函数之间符合预定的约束关系,该约束关系可以包括,门约束关系,导线约束关系,输入约束关系,输出约束关系中的至少一部分。当验证设备ve确认上述约束关系得到满足,则可以确定,本轮计算结果是计算设备pr针对本轮输入数据执行约定的计算任务的正确结果,从而实现可验证的计算过程。
57.下面首先描述算术电路c的编码表示过程。
58.可以理解,对于任意的计算任务t,可以通过函数f,表示其从输入数据d映射到输出y的运算过程,即y=f(d)。进一步地,可以将该运算过程转换为另一函数g,使得g(d, y)结果为预设值,该预设值一般取1。将该函数g的运算过程转换为算术逻辑,可以得到对应的算术电路c,其中:c(d,y)=1。
59.在一个实施例中,验证设备ve将其要委托的计算任务t转换为算术电路c,并将该算术电路c的电路结构信息发送给计算设备pr。或者,验证设备ve将计算任务t发送给计算设备pr,双方利用约定的电路转换算法,将该计算任务t转换为共同的算术电路c,从而双方均得到电路结构信息。
60.假定转换得到的算术电路中,算术门的数目为|c|,电路输入数目为|i|,令m=log2|c|, k=log2|i|,则可以用m比特的串唯一表示一个门,k比特的串唯一表示一个电路输入。基于此,可以用l比特的串表示电路中一根导线或一个输入,其中l比特可以划分为第一比特组和第二比特组,该第一比特组指示门编号或电路输入编号,因此第一比特组的位数可以是前述m比特和k比特中的较大者,即第二比特组则用于指示门的输入/输出端口或电路输入端口。
61.按照以上将电路中导线编码为l比特的方式,可以如下定义第一函数作为一轮的计算函数,其中,该函数的函数输入u:{0,1}
l
即为前述l比特表示的导线,函数输出值为该导线在一轮计算中的计算值,其属于有限域(十进制)。因此,第一函数可以用于表征一轮计算中电路中各个导线与其计算值之间的映射,即描述一轮计算中每个门的输入和输出值。
62.在一个实施例中,取第二比特组位数为2,则在这样的情况下,可以用2位的比特组的各种值,分别指示门/电路的不同端口。具体的,在一个例子中,用00表示门的左输入端口;用01表示门的右输入端口;用10表示门的输出端口,用11 表示电路的输入端口。相应的,在一个具体例子中,上述第一函数p具体可以包括以下形式:
63.描述编号为x(用m比特表示)的门的左输入值;
64.描述编号为x的门的右输入值;
65.描述编号为x的门的输出值;g0-g3共计4个门,具有i
0-i3共计4个电路输入,d
0-d3则表示某一轮运算中4个电路输入对应的输入值。由此,算术门的数目|c|=4,电路输入数目|i|=4,则m=2,k=2, 并且在第二比特组取2位的情况下,l=max{m 2,k 2}=4。
80.图2的下半部分示出针对以上电路编码的函数。
81.具体的,框10示出第一函数p的函数表示。例如,根据前述第一函数p针对门的端口的编码规则,p(00,g0)表示编号为g0的门的左输入端口的值,因此,p(00,g0)=d0;类似的,p(01,g0)表示编号g0为的门的右输入端口的值,因此,p(01,g0)=d1。于是,针对电路中各个门的输入/输出端口,均可以进行上述函数编码。对于电路输入端口,如前所述,第二比特组取11时,表示电路输入;因此,p(11,i0)表示编号为i0的电路输入端口的值,因此,p(11,i0)=d0。于是,针对电路中各个输入端口,均可以进行上述函数编码。如此,将第一函数p编码表示为一系列的等式,用于表示一轮计算中各个门的输入输出值。
82.框20示出第二函数s的编码形式。在框20中,分别用1和0表示乘法门和加法门。由此,s(g0)=1表示编号为g0的门是乘法门,s(g1)=0表示编号为g1的门是加法门,等等。如此,通过第二函数s描述了电路c中各个门的门类型。
83.框30示出第三函数w的编码形式。其中,利用映射函数h作为辅助,针对同一导线的不同编码串循环构建第三函数和映射函数之间的关系式。
84.举例而言,电路输入i0对应的导线同时作为门g0的左侧输入。当作为门g0的左侧输入,该导线可以编码为(00,g0)的第一编码串,当作为电路输入,该导线可以编码为(11,i0)的第二编码串。如此,可以针对这两个编码串循环构建第三函数w和映射函数h的关系式: w(00,g0)=h(11,i0);w(11,i0)=h(00,g0)。
85.又例如,电路输入i1对应的导线,同时作为门g0的右侧输入,还作为门g1的左侧输入,因此,针对这条导线,可以编码得到3个编码串(01,g0),(11,i1),(00,g1)。针对这3个编码串可以循环构建第三函数w和映射函数h的关系式,得到:
86.w(01,g0)=h(11,i1);w(11,i1)=h(00,g1);w(00,g1)=h(01,g0)
87.如此,通过第三函数w描述了电路c中各个导线的连接关系。
88.此外,框40示出第四函数v的编码形式,其中描述了一轮计算中各个电路输入端口的输入值。
89.以上针对算术电路c及其计算过程定义了多个函数,其中,第二函数s和第三函数w,是基于电路结构而确定的,第一函数p和第四函数v,则是针对一轮计算而确定的。在按照约定,利用算术电路c针对一轮的输入数据进行计算的情况下,上述多个函数之间会满足与电路相关的多个约束关系。
90.该多个约束关系包括门约束关系,表征各个门的输入与输出之间的约束。具体的,若门类型为加法门,应满足左侧输入 右侧输入=输出值;若门类型为乘法门,则应满足左侧输入乘以右侧输入等于输出值。该约束关系可以表示为:
[0091][0092]
s(x)
·
(p(00,0
l-m-2
,x)
·
p(01,0
l-m-2
,x)) (1-s(x))
· (p(00,0
l-m-2
,x) p(01,0
l-m-2
,x))=p(10,0
l-m-2
,x)
ꢀꢀ
(1)
[0093]
即,门约束关系可以表示为第一函数p和第二函数s之间经运算形成的等式。
[0094]
上述与电路相关的约束关系还可以包括输入约束关系,用于约束一轮计算中的任
意输入在第一函数p和第四函数v中一致。该约束关系可以表示为:
[0095][0096]
输入约束关系可以表示为第一函数p和第四函数v针对特定输入的相等关系式。
[0097]
此外,上述约束关系还包括导线约束关系,用于约束电路中每根导线两端的值相等。对于电路中任意一根导线,假定根据其两端的连接而至少存在u和v两种编码串,那么根据导线两端值相等,应有p(u)=p(v)。而根据前述第三函数w的编码方式,有w(u)=h(v),因此,其中,h-1
表示映射函数h的逆运算函数,表示进一步施加函数运算。因此,导线约束关系可以表示为:
[0098][0099]
由此,导线约束关系可以表示为,第一函数p和第三函数w之间经映射函数h运算形成的等式。
[0100]
进一步的,如果第一函数p表示正确的运算过程,那么还应满足如下所示的输出约束关系:
[0101]
p(10,0
l-m-2
,o)=1
ꢀꢀ
(4)
[0102]
式(4)中,“o”表示电路的最终输出门的编号。按照之前电路c的定义:c(d,y) =1,该输出门“o”的输出值应为1。
[0103]
通过以上描述,如果计算设备是按照约定,利用算术电路c针对一轮的输入数据进行计算,那么得到的上述多个函数之间至少会满足如公式(1)所示的门约束关系,公式(2) 所示的输入约束关系,公式(3)所示的导线约束关系,以及公式(4)所示的输出约束关系。有鉴于此,验证设备可以在必要时,针对某一轮运算,选择性挑选这些约束关系中的一部分,或者优选全部,进行验证,由此判断计算设备是否按照约定实施了计算。
[0104]
在描述具体验证过程之前,对验证时所采用的基础协议和已有基础工具进行简单的介绍。
[0105]
(一)关于多项式扩展:
[0106]
在一些场景下,常常需要将函数表示为多项式的形式,称为多项式扩展。具体的,假设g:是一个函数,那么函数g的低次多项式扩展是一个低次的m变量的多项式满足
[0107]
进一步的,提出了多线性多项式扩展(mle)。mle是一个低次多项式扩展,其扩展结果是一个多线性多项式。给定一个函数z:它的mle是一个独一无二的多线性多项式项式计算方式为计算方式为这里,是函数的mle。如此,可以针对任意的将m位比特串映射到有限域中的函数z,进行mle扩展,得到多项式
[0108]
(二)关于sum-check求和论证协议:
[0109]
sum-check求和论证协议是一个双方交互式的协议,用于证明者prover,pr向验证
者 verifier,ve证明式子成立。通过多轮交互后,式子的验证最终规约到ve验证g(r)=t

,r为ve随机选择的值,t

是新的目标值。g(r)需由ve计算得到或者访问一个关于多项式g的oracle获得。
[0110]
(三)关于多项式承诺:
[0111]
多项式承诺用于双方对多项式进行验证,其包括4个算法:pc=(setup,commit,open, eval):
[0112]
setup创建算法:pp

setup(1
λ
,m):输入安全参数λ、多项式变量数目m,输出公开参数pp;
[0113]
commit承诺算法:(c;r)

commit(pp;g):输入m变量多项式g,输出承诺c;r为承诺用到的随机选择的秘密值;
[0114]
open验证算法:b

open(pp,c,g,r):打开承诺c,验证承诺c的多项式是否是多项式g;
[0115]
eval求值算法:b

eval(pp,c,t,y,m;g,r):prover和verifier间的证明协议,用于 prover向verifier证明g(t)=y。
[0116]
基于这些基础协议和工具,结合例如图2所示的电路编码方式,可以实现计算设备高效地向验证设备进行计算正确性证明。
[0117]
图3示出根据一个实施例的数据验证方法,通过计算设备执行。该计算设备可以实现为任何具有计算、处理能力的装置、设备、平台、设备集群。下面对图3所示的各个步骤的具体执行过程进行详细描述。
[0118]
首先,在步骤31,计算设备获取目标算术电路c的目标函数组的函数信息,其中,目标算术电路c用于执行验证设备指示的目标计算任务t,目标函数组用于描述该目标算术电路c的电路结构。
[0119]
如前所述,将目标计算任务t转化为算术电路c的过程,可以由验证设备执行,也可以由验证设备和计算设备共同进行。在得到算术电路c的基础上,编码形成用于描述算术电路c电路结构的目标函数组,也可以由验证设备执行,或由双方共同执行。根据前述对电路相关函数编码的介绍,这里用于描述电路结构的目标函数组,可以包括用于编码门类型的第二函数s,以及用于编码导线连接关系的第三函数w。
[0120]
因此,在一种实施方式中,计算设备可以预先根据目标计算任务t生成目标算术电路 c,根据该目标算术电路c的电路结构,确定目标函数组,例如第二函数s和第三函数w。该函数确定过程可以在预备阶段仅执行一次即可。后续每次执行计算之前,在步骤31,只需获取预先确定的目标函数组(例如第二函数和第三函数)的函数信息。该函数信息可以包括,第二函数s和第三函数w的编码形式,或者,是将其进行mle扩展后得到的多项式,例如第二函数s,第三函数w以及其相关的映射函数h各自对应的扩展多项式
[0121]
在另一实施方式中,在准备阶段,由验证设备根据目标计算任务t生成目标算术电路 c,根据该目标算术电路c的电路结构,确定目标函数组,例如包括第二函数s,第三函数 w及其相关的映射函数h。在一个示例中,验证设备可以将上述目标函数组的函数编码形式作为函数信息,发送给计算设备。
[0122]
在另一示例中,验证设备进一步地上述目标函数组的各个函数进行mle扩展,得到
各函数对应的多项式,例如第二函数s,第三函数w以及其相关的映射函数h各自对应的扩展多项式验证设备将上述各个函数对应的多项式作为函数信息,发送给计算设备。相应的,在步骤31,计算设备可以读取预先接收的各个函数的多项式作为目标函数组的函数信息。
[0123]
在又一示例中,为了进一步减小通信,验证设备利用多项式承诺协议,针对第二函数对应的第二多项式计算得到第二承诺值其中,类似的,针对第三函数w对应的第三多项式计算得到第三承诺值其中,可以理解的,由于第三函数w中使用了辅助的映射函数h,验证设备还可以针对该映射函数h的多项式也进行承诺值的计算,得到承诺值其中,验证设备将以上各个函数的多项式的承诺值发送给计算设备。相应的,在步骤31,计算设备可以读取预先接收的目标函数组中各个函数对应的多项式的承诺值作为函数信息,其中承诺值是利用多项式承诺协议针对对应函数的扩展多项式计算得到的。在数据验证过程的有些实施例中,可以基于这些承诺值进行多项式承诺协议中的open验证算法,从而验证对应的多项式,进而基于验证的多项式进行后续运算。
[0124]
如此,针对每一轮计算,计算设备可以获取到用于描述电路结构的目标函数组的函数信息。
[0125]
另一方面,计算设备需要根据验证设备所指示的本轮输入数据,执行目标计算任务t 的本轮计算过程。也就是说,将本轮输入数据作为算术电路c的电路输入,经由各个门的计算,得到本轮输出的过程。
[0126]
基于此,在步骤32,计算设备可以根据目标计算任务的本轮计算过程,确定第一函数 p,该第一函数p用于描述在本轮计算过程中目标算术电路c中每个门的输入和输出值。
[0127]
如前所述,第一函数p的编码方式如之前结合图2所述,不复赘述。通过该单一函数 p,以l比特输入串为输入变量,对电路中所有门的输入/输出端口实现了编码。
[0128]
在一个实施例中,计算设备在确定出第一函数p后,利用mle扩展,得到第一函数p 对应的第一多项式进一步的,在一个示例中,计算设备利用多项式承诺协议,计算第一多项式对应的第一承诺值:然后将该第一承诺值发送给验证设备。
[0129]
在此基础上,在步骤33,计算设备通过与验证设备执行交互论证协议,证明第一函数 p满足预设的若干约束关系,从而证明本轮计算过程的正确性;其中该若干约束关系包括,第一函数p和目标函数组的函数信息之间的约束关系。
[0130]
如前所述,如果计算设备是按照约定,利用算术电路c进行本轮计算过程,那么得到的第一函数p应满足前述的4个约束关系:如公式(1)所示、与第二函数之间形成的门约束关系,如公式(2)所示、与第四函数v之间形成的输入约束关系,如公式(3)所示的与第三函数w形成的导线约束关系,以及公式(4)所示的自身应满足的输出约束关系。实践中,验证设备可以针对每一轮运算进行数据验证,也可以以“抽查”的方式,挑选某一轮运算进行数据验证。在数据验证时,验证设备可以针对以上全部约束关系进行验证,也可以以“抽查”方式,选择性挑选这些约束关系中的一部分进行验证,由此判断计算设备是否按照约定实施了本轮计算。
[0131]
下面描述针对各项约束关系的验证过程。
[0132]
对于公式(1)所示的门约束关系,为了便于后续使用求和论证协议sum-check协议,可以将其转化为第一函数p对应的第一多项式和第二函数s对应的第二多项式之间的关系式:
[0133][0134]
基于此,可以定义一个中间函数:
[0135][0136]
基于上述中间函数定义关系式可以看到:如果 t∈{0,1}m,则等于0或者1,则q1(t)=f(t);如果则可视为有限域中的随机值。此时,q1(t)可以视为f(x)的随机线性组合,则有如果q1(t)=0,即q1(t)是零多项式,则对任意的x∈{0,1}m,f(x)=0。即,等式(5)成立。
[0137]
而根据schwartz-zippel引理,要验证q1(t)=0,只需随机选择验证q1(τ)是否等于0。由此,公式(1)的约束关系的验证转化为,利用sum-check协议,由计算设备向验证设备证明:
[0138]
图4示出根据一个实施例计算设备证明第一约束关系的步骤流程。其中,该第一约束关系表征算术电路中各个门的输入与输出之间的约束关系,即门约束关系。第一约束关系可以表示为第一函数p和第二函数s之间经运算形成的第一等式,例如公式(1)所示。图4的步骤流程可以理解为图3中步骤33的子步骤。
[0139]
如图4所示,为了证明上述第一约束关系,在步骤41,计算设备根据第一函数p和第二函数s各自对应的第一多项式和第二多项式将第一等式改写为针对第一组合多项式求和为0的形式。作为示例,第一等式可以是公式(1)所示的第一函数p和第二函数s 之间的关系式,第一组合多项式可以是上述中的
[0140]
然后,在步骤42,计算设备获得第一挑战数τ1。在一个实施例中,可以由验证设备随机选择该第一挑战数,发送给计算设备。
[0141]
于是,在步骤43,计算设备与验证设备调用求和论证协议,验证将第一挑战数τ1代入所述第一组合多项式求和得到的计算值是否为0,即验证q1(τ1)是否为0。具体而言,计算设备可以将验证的目标多项式确定为上述的第一组合多项式:然后,计算设备和验证设备双方调用sum-check协议,验证是否成立。
[0142]
根据前述对求和验证sum-check协议的说明,对于任意目标多项式g(x)的求和结果的验证,最终可以规约到验证方验证g(r)=t

,r为验证方随机选择的值,t

是新的目标值。根据常规的sum-check协议,g(r)需由验证方计算得到。在以上步骤43的情况中,目标多项式g(x)为上述第一组合多项式则验证设备需要计算并判断其是否等于新的目标值t1,从而验证是否成立。
[0143]
为了进一步减轻验证设备的计算压力,在一个实施例中,在上述步骤43中,计算设备和验证设备利用多项式承诺协议,将原本在验证设备进行的多项式求值(即计算),转移到计算设备一侧。
[0144]
具体地,根据第一组合多项式的定义,该多项式求值涉及以下求值:也就是将第一随机数r1作为门编号代入第二函数对应的第二多项式的求值,将第一随机数作为门编号,与各个门端口对应的指示比特串相组合形成各个输入值,代入第一函数对应的第一多项式的求值。
[0145]
具体的,计算设备和验证设备可以通过以下过程进行求和验证:
[0146]
(1)计算设备和验证设备两方针对第二多项式和第一随机数r1调用多项式承诺中的求值算法论证将第一随机数r1作为门编号代入第二多项式的求值结果为第一值s1,即:
[0147]
(2)计算设备和验证设备针对第一多项式和第一随机数,调用求值算法论证将第一随机数对应的门编号与门左输入端口对应的指示比特串(即00)相组合所形成的第一输入值,代入第一多项式的求值结果为第二值s2,即:
[0148]
(3)计算设备和验证设备针对第一多项式和第一随机数,调用求值算法论证将第一随机数对应的门编号与门右端口对应的指示比特串(即01)相组合所形成的第二输入值,代入第一多项式的求值结果为第三值s3,即:
[0149]
(4)计算设备和验证设备针对第一多项式和第一随机数,调用求值算法论证将第一随机数对应的门编号与门输出端口对应的指示比特串(即10)相组合所形成的第三输入值,代入第一多项式的求值结果为第四值s4,即:
[0150]
接着,验证设备基于上述第一值至第四值,以及第一组合多项式的形式,可以容易地求得第一组合多项式针对第一随机数的求值然后通过验证该求值是否等于新的目标值t1,从而验证是否成立。若其成立,则公式(5)成立,公式(1) 对应的门约束关系成立。
[0151]
如前所述,公式(2)示出输入约束关系,表现为第一函数和第四函数之间的约束关系。需要说明的是,第四函数也是依赖于单轮计算的。具体的,针对本轮计算,由验证设备确定本轮输入数据,之后验证设备就可以基于本轮输入数据确定本轮的第四函数v。
[0152]
为了便于验证,可以将公式(2)转化为第一函数p对应的第一多项式和第四函数v 对应的第四多项式之间的关系式:
[0153]
[0154]
为了验证公式(7),验证设备可以随机获取一个挑战数,称为第二挑战数τ2,将其发送给计算设备。由此,计算设备获得该第二挑战数。接着,计算设备与验证设备调用多项式承诺协议,证明将第二挑战数代入第一多项式的计算值,等于将其代入第四多项式的计算值。
[0155]
具体地,计算设备和验证设备针对第一多项式和第二挑战数,调用求值算法论证将第二挑战数τ2对应的电路输入编号与电路输入端口对应的指示比特串(即11)相组合所形成的输入值,代入第一多项式的求值结果为第五值s5,即论证:然后,由验证设备计算将第二挑战数代入第四多项式的求值验证该求值是否等于上述第五值:如果相等,则计算设备证明,输入约束关系得到满足。
[0156]
对于公式(3)所示的导线约束关系,其可以等效转化为对应多项式之间的运算,如以下公式(8)所示:
[0157][0158]
然而,公式(8)中存在函数逆运算,不利于利用已有协议进行验证。为此,对其进行进一步演化。
[0159]
假定对于两个随机数并且任取l比特的输入u,如下定义比值多项式l1(u)和差值多项式l2(u):
[0160][0161][0162]
由于前述第三函数w和映射函数h编码时的循环关系,容易证明,公式(8)成立可等价于下面的公式组(11)中式一和式二均成立:
[0163][0164]
针对(11)中的式一,可以定义l1(u)在u∈{0,1}
l
的布尔立方体上的求值构成的值向量是v。定义v(u)是描述值向量v的值函数。具体地,其中 vk=l1(h-1
(k))。如此,论证式一的成立,转化为论证公式(12)成立:
[0165][0166]
为了论证(12),可以基于取值迭代相乘的迭代关系定义辅助函数f:迭代关系表现为:
[0167][0168]
同时,使得该辅助函数满足f(1,1,

,1,0)=1。
[0169]
根据上述迭代关系(13)迭代求得辅助函数f在各个输入下的取值,可以得到,该辅助函数f的描述向量的形式为:可见,其针对特定输入(1,
1,

,1,0)的函数值,正好为值向量v所有元素的乘积(f的描述向量的倒数第2个元素值)。如此,f(1,1,

,1,0)=1即等效于公式(12)。
[0170]
为了验证函数f的正确性,除了需要验证f(1,1,

,1,0)=1之外,该需要验证函数f 对迭代关系(13)的符合。为此,可以定义对迭代关系(13)的符合。为此,可以定义验证针对随机选择的挑战数满足q2τ=0。如此,可以验证f1,u=f(u,0)
·
f(u,1)。
[0171]
此外,还需要证明f(0,u)=v(u)。操作中,可以将该项证明与对式二的证明结合在一起。
[0172]
具体地,针对式二,可以采用与验证公式(1)相似的思路。具体的,可以定义:验证对于随机选择的q3(τ)是否等于0。计算 q3(τ)=0,可利用sum-check协议,由计算设备向验证设备证明:check协议,由计算设备向验证设备证明:根据式(10),l2(u)依赖于l1(u),而l1(u)等效于v(u);因此,可以在论证 q3(τ)=0过程中,用f(0,u)替代v(u),从而在论证式二的同时,间接证明f(0,u)=v(u)的成立。
[0173]
以上描述了针对导线约束关系的验证思路。基于该验证思路,描述具体的验证过程。
[0174]
图5示出根据一个实施例计算设备证明第三约束关系的步骤流程。其中,该第三约束关系表征算术电路中导线两端值相等的约束关系,即导线约束关系。导线约束关系可以表示为第一函数p和第三函数w之间经映射函数h形成的第三等式,例如公式(3)所示。图5的步骤流程可以理解为图3中步骤33的子步骤。
[0175]
如图5所示,为了证明上述第三约束关系,在步骤51,计算设备获得随机数组,例如随机数β,σ。在一个实施例中,可以由验证设备随机生成这两个随机数,发送给计算设备。
[0176]
在步骤52,计算设备确定比值多项式l1(u),该比值多项式的分子和分母多项式中的一个根据所述随机数组、第一函数p对应的第一多项式和第三函数w对应的第三多项式得到,另一个根据所述随机数组、所述第一多项式和映射函数h对应的映射多项式得到。
[0177]
在一个实施例中,可以根据前述公式(9)确定出比值多项式l1(u)。在该示例中,分子多项式为分母多项式为
[0178]
在另一实施例中,还可以交换公式(9)中的分子、分母,作为比值多项式;或者,对分子、分母均乘以一定系数等不影响其结果的变换,将变换结果作为比值多项式。
[0179]
此外,在步骤53,计算设备确定所述比值多项式与分母多项式的乘积与分子多项式的差值,得到差值多项式l2(u)。
[0180]
在比值多项式根据公式(9)确定的情况下,可以相应得到如公式(10)所示的差值多项式l2(u),即:
[0181]
接着,在步骤54,计算设备根据第三等式,与验证设备调用求和论证协议,证明比值多项式l1(u)针对全部输入的求值乘积为1;以及,证明差值多项式l2(u)针对任意输入的求值为0。也就是,分别证明公式(11)中的式一和式二。
[0182]
针对比值多项式l1(u)的全部求值乘积为1的证明,即(11)中式一的证明,包括以下过程。
[0183]
(一)首先,计算设备根据比值多项式l1(u)针对全部输入的求值,得到值向量v,以及描述该值向量的值函数v(u)。
[0184]
(二)接着,以该值函数v(u)为迭代基础,基于取值迭代相乘的迭代关系确定辅助函数f,使得所述辅助函数f针对特定输入的函数值为值向量v所有元素的乘积。具体的,在一个示例中,上述迭代关系可以如公式(13)所示,在此情况下,上述特定输入为 (1,1,

,1,0)。
[0185]
可以理解,为了计算的对齐,在确定出辅助函数f的基础上,计算设备可以将其mle 扩展为辅助多项式进一步的,计算设备还可以通过多项式承诺协议,计算该辅助多项式的承诺值发送给验证设备,以备其验证,以及用于后续计算。
[0186]
(三)基于此,计算设备可以与验证设备调用多项式承诺协议,验证辅助函数f对应的辅助多项式针对特定输入的求值是否为1。具体地,计算设备和验证设备两方调用多项式承诺协议的求值算法论证
[0187]
此外,计算设备还需证明辅助函数f符合前述迭代关系(13)。
[0188]
(四)为此,计算设备将该迭代关系改写为针对第二组合多项式求和为0的形式。具体的,可以将上述公式(13)改写为:
[0189][0190]
其中,第二组合多项式为
[0191]
(五)为了向验证设备证明公式(14),验证设备可以生成第三挑战数τ3,将其发送给计算设备。从而,计算设备获得第三挑战数τ3。
[0192]
(六)于是,计算设备可以与验证设备调用求和论证sum-check协议,验证将第三挑战数τ3代入第二组合多项式求和得到的计算值是否为0,即验证q2(τ3)=0,从而验证前述公式(14)。
[0193]
可以理解,sum-check协议最后一步的执行,可以规约为验证设备计算第二组合多项式针对一个随机数r2的求值是否等于某个目标值t2。为了进一步减轻验证设备的计算压力,在执行sum-check协议的最后一步时,计算设备和验证设备利用多项式承诺协议,将原本在验证设备进行的多项式求值(即计算),转移到计算设备一侧。
[0194]
具体地,根据第二组合多项式的定义,该多项式求值涉及迭代关系中三种输入情况下辅助多项式的求值:因此,可以通过多项式承诺协议,分别验证辅助多项式在基于r2形成的三个输入下对应的3个求值,据此得到多项式求值结果
[0195]
更具体的,在以上步骤(六)中,计算设备和验证设备可以通过以下过程进行求和验证:
[0196]
(1)计算设备和验证设备两方调用多项式承诺中的求值算法论
证将基于第二随机数r2形成的第一输入(1,r2)代入辅助多项式的求值结果为第六值s6,即:
[0197]
(2)计算设备和验证设备调用多项式承诺中的求值算法论证将基于第二随机数r2形成的第二输入(r2,0)代入辅助多项式的求值结果为第七值s7,即:
[0198]
(3)计算设备和验证设备调用多项式承诺中的求值算法论证将基于第二随机数r2形成的第三输入(r2,1)代入辅助多项式的求值结果为第八值s8,即:
[0199]
接着,验证设备基于上述第六值至第八值,以及第二组合多项式的形式,可以容易地求得第二组合多项式针对第二随机数的求值然后通过验证该求值是否等于目标值 t

,从而验证是否成立。若其成立,则公式(14)成立,辅助函数f的迭代关系和正确性得到验证。
[0200]
以上描述了对公式(11)中式一的证明过程。
[0201]
计算设备对公式(11)中式二的证明,包括以下过程。
[0202]
(一)将前述差值多项式l2(u)针对任意输入求值为0的假设关系改写为针对第三组合多项式求和为0的形式。
[0203]
具体的,可以定义:其中,第三组合多项式如下式(15) 所示:
[0204][0205]
如此,针对第三组合多项式的求和q3(t)若为0,则l2(u)针对任意输入求值为0。
[0206]
(二)计算设备获取第四挑战数τ4。类似的,该第四挑战数τ4可以是验证设备随机选择后,发送给计算设备的。
[0207]
(三)计算设备与验证设备调用求和论证协议,验证将第四挑战数τ4代入所述第三组合多项式求和得到的计算值是否为0。也就是说,双方调用sum-check协议,验证q3(τ4)=0。
[0208]
与前述类似地,步骤(三)中sum-check协议最后一步的执行,可以规约为验证设备计算第三组合多项式针对一个随机数r3(称为第三随机数)的求值是否等于某个目标值t3。为了进一步减轻验证设备的计算压力,在执行sum-check协议的最后一步时,计算设备和验证设备利用多项式承诺协议,将原本在验证设备进行的多项式求值(即计算),转移到计算设备一侧。
[0209]
具体地,根据第三组合多项式的定义,该多项式求值涉及将第三随机数r3分别代入辅助多项式、第一多项式、映射多项式和第三多项式的求值,即因此,可以通过多项式承诺协议,分别验证上述4个求值,据此得到多项式求值结果
[0210]
更具体的,在以上步骤(三)中,计算设备和验证设备可以通过以下过程进行求和验证:
[0211]
(1)计算设备和验证设备两方调用多项式承诺中的求值算法论证将第三随机数r3代入辅助多项式的求值结果为第九值s9,即:
[0212]
(2)计算设备和验证设备调用多项式承诺中的求值算法论证将第三随机数r3代入第一函数对应的第一多项式的求值结果为第十值s
10
,即:
[0213]
(3)计算设备和验证设备调用多项式承诺中的求值算法论证将第三随机数r3代入映射函数对应的映射多项式的求值结果为第十一值s
11
,即:
[0214]
(4)计算设备和验证设备调用多项式承诺中的求值算法论证将第三随机数r3代入第三函数对应的第三多项式的求值结果为第十二值s
12
,即:
[0215]
接着,验证设备基于上述第九值至第十二值,以及第三组合多项式的定义形式,可以容易地求得第三组合多项式针对第三随机数的求值然后通过验证该求值是否等于目标值t3,从而验证是否成立。若其成立,则公式(11)的式二成立。
[0216]
当验证公式(11)中式一和式二均成立,则意味着,公式(3)或公式(8)所示的导线约束关系成立。
[0217]
对于公式(4)所示的第四约束关系,即输出约束关系,计算设备可以确定出最终输出门的编号o,通过多项式承诺协议,向验证设备证明,第一函数针对门编号o的输出值为1。具体的,计算设备和验证设备针对第一多项式和门编号o,调用求值算法论证将门编号o与门输出端口对应的指示比特串(即10)相组合所形成的输入值,代入第一多项式的求值结果为1,即论证:如此,实现对输出约束关系的证明。
[0218]
通过以上的方式,实现了对第一函数p与其他函数之间的门约束关系、输入约束关系、导线约束关系、输出约束关系的证明,进而实现了对利用算术电路c进行本轮计算的正确性证明。
[0219]
可以看到,在对算术电路c进行编码时,以多变量(l比特)单一函数(第一函数) 对算术电路的一轮执行进行编码,该多变量的数目仅为算术电路的大小log|c|附加一个较小常数(例如2)。当利用log|c| 2个比特的输入串u进行编码,证明的过程则通过log|c| 2个变量的多变量多线性多项式实现。采用这样的方式,使得证明者的计算开销线性依赖于电路大小(o(|c|)),因为log|c| 2个变量的多项式求值计算开销是 2^{log|c| 2}=4|c|。如此,极大减小了证明的计算开销。
[0220]
在以上实施例中,计算设备通过与验证设备交互,获得一些挑战数和一些随机数,例如,挑战数τ1,τ2,τ3,随机数β,σ等等,并基于这些挑战数/随机数进行后续验证过程。为了简化通信,还可以通过非交互方式,实现上述挑战数/随机数的获取。具体的,计算设备和验
证设备可以约定一些数据生成器,例如伪随机数发生器,基于哈希函数的生成器,等。使用该约定的生成器,基于相同的数据源,可以生成相同的随机数。如此,在需要获得挑战数时,计算设备可以根据约定的生成器和双方均可获得的数据源,生成挑战数/随机数。该数据源,可以是计算设备直至上一步骤才可获得的数据,例如上一步的计算结果,以保证任一方不能提前计算该挑战数或随机数。在一个具体例子中,双方通过fiat-shamir转换,生成共同的挑战数/随机数。如此,计算设备和验证设备可以以非交互的方式,获得共同的挑战数和随机数,简化通信,进一步提升验证效率。
[0221]
根据另一方面的实施例,还提供了一种数据验证的装置,所述装置部署在计算设备中,计算设备可以实现为任何具有计算、处理能力的设备、平台或集群。图6示出根据一个实施例的一种数据验证装置的示意图。如图6所示,该装置600包括:
[0222]
获取单元61,配置为获取目标算术电路的目标函数组的函数信息,所述目标算术电路用于执行验证设备指示的目标计算任务,所述目标函数组用于描述所述目标算术电路的电路结构;
[0223]
确定单元62,配置为根据所述目标计算任务的本轮计算过程,确定第一函数,所述第一函数用于描述在所述本轮计算过程中所述目标算术电路中每个门的输入和输出值;
[0224]
证明单元63,配置为通过与所述验证设备执行交互论证协议,证明所述第一函数满足预设的若干约束关系,从而证明所述本轮计算过程的正确性,其中所述若干约束关系包括,所述第一函数和所述目标函数组的函数信息之间的约束关系。
[0225]
通过以上的装置,计算设备执行图3所示的流程步骤,向验证设备证明,其计算结果的正确性。流程的具体执行过程,参见前述结合图3至图5的描述,在此不复赘述。
[0226]
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图3所描述的方法。
[0227]
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图3所述的方法。
[0228]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
[0229]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献