一种选择器的构造方法、系统、设备及存储介质与流程

文档序号:37601377发布日期:2024-04-18 12:44阅读:12来源:国知局
一种选择器的构造方法、系统、设备及存储介质与流程

本发明涉及区块链及大数据,更具体的说是涉及一种选择器的构造方法、系统、设备及存储介质。


背景技术:

1、生成智能合约的证明指的是经由某种技术,生成一个可验证的证明,证明内容是智能合约的执行过程以及执行结果的正确性。生成智能合约的证明的作用是作为验证者可以通过验证此证明进而验证智能合约的执行过程以及执行结果的正确性,而无需重新执行智能合约。

2、针对智能合约的证明生成,当下最常见的证明技术是使用零知识证明技术。在零知识证明中,需要针对要证明的问题,构造零知识证明电路,其中包括变量和约束。变量用来表示合约执行中所用的程序变量,是以“列”为单位的,同一列变量的不同行表示此变量在不同步骤下的状态。变量中的一部分是来自外界公开的输入,一部分是固定的(也称静态),另一部分是电路内部的变量。约束用来表示合约执行过程中指令的操作逻辑,形式为“表达式=0”,其中表达式是变量经过加减乘操作得到的。电路的约束是对于所有行同时进行约束的。举例而言,约束“变量a+变量b=0”是指“第1行变量a+第1行变量b=0”,“第2行变量a+第2行变量b=0”,以此类推;如表1所示:每一行都要满足约束。

3、表1约束“变量a+变量b=0”示例

4、 变量a 变量b 1 -1 -2 2

5、电路中有一种特殊变量称为静态选择器,当作为条件表达式添加在约束上时,可以使得约束在特定的行启用,在其他行禁用。举例而言,“静态选择器a”添加在约束“变量a+变量b=0”变为“静态选择器a*(变量a+变量b)=0”。当静态选择器在某些行启用(即“静态选择器a=1”)时,约束启用,当其在某些行禁用(即“静态选择器a=0”)时,约束禁用;参见表2所示,在静态选择器a=1的行满足约束“变量a+变量b=0”。

6、表2约束“静态选择器a*(变量a+变量b)=0”示例

7、 静态选择器a 变量a 变量b 1 1 -1 1 -2 2 0 3 1 0 -5 2

8、静态选择器中的静态指的是构造电路完成后选择器的值就不可更改了,因此静态选择器不能根据不同的外界输入而改变启用与否。

9、仿照静态选择器,可以选择在电路中构造动态选择器,动态选择器的输入是一些变量,经过特定计算后,可以输出一些0、1值,输出值作为条件表达式可以添加在约束上。动态选择器的n个输出值可以起到n个静态选择器相同的作用。最朴素的动态选择器是n个0、1输入值(变量),不经过计算,直接输出n个0、1输出值。n个变量在每一行有且仅有一个值为1。参见表3所示,在动态选择器输出a=1的行满足约束“变量a+变量b=0”。动态选择器输出b可以用于另一个约束的条件表达式。

10、表3约束“动态选择器输出a*(变量a+变量b)=0”示例

11、

12、目前,动态选择器常见的构造方法是输入变量,不经过计算,直接输出成输出值。如果需要n个选择器输出值,则需要n个输入变量。变量需求变多,会使得电路规模增大,进而增大零知识证明的计算开销。

13、因此,如何能够降低电路规模,进而减少计算开销,是本领域技术人员亟需解决的问题。


技术实现思路

1、有鉴于此,本发明提供至少解决上述部分技术问题的一种选择器的构造方法、系统、设备及存储介质,有利于降低电路规模,进而减少计算开销,便于高效生成智能合约证明。

2、为实现上述目的,本发明采取的技术方案为:

3、第一方面,本发明实施例提供一种选择器的构造方法,包括以下步骤:

4、s1、选择参数k作为选择器输出值数量n的开根次数;计算获取对n的k次开根的向上取整结果m;

5、s2、声明k·m个输入变量,标记变量,并对变量进行约束;

6、s3、通过k个变量的乘积计算出选择器的n个输出值。

7、优选的,所述步骤s1中,所述参数k为:2或3。

8、优选的,所述步骤s2中,声明k·m个输入变量,标记变量,并对变量进行约束的过程,包括:

9、s21、设置第一循环变量k=0...k-1;

10、s22、声明k·m个输入变量,标记为变量(k,0),(k,1),......,(k,m-1);约束输入变量值为0或1,且m个输入变量相加的和为1;

11、s23、重复步骤s21和s22,声明和约束变量。

12、优选的,所述步骤s3中,通过k个变量的乘积计算出选择器的n个输出值的过程,包括:

13、s31、设置第二循环变量n=0...n-1;

14、s32、将n用m进制表示为k个小于m的整数,表示为z0,z1,......,zk-1;计算k个变量的乘积:变量(0,z0)*变量(1,z1)*......*变量(k-1,zk-1),作为选择器的第n个输出值;

15、s33、重复步骤s31和s32,计算得到选择器的n个输出值。

16、第二方面,本发明实施例还提供一种选择器的构造系统,应用上述的一种选择器的构造方法,构造选择器,该系统包括:

17、参数选择模块,用于选择参数k作为选择器输出值数量n的开根次数;计算获取对n的k次开根的向上取整结果m;

18、声明和约束模块,用于声明k·m个输入变量,标记变量,并对变量进行约束;

19、输出值计算模块,用于通过k个变量的乘积计算出选择器的n个输出值。

20、第三方面,本发明实施例还提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现能够执行上述的一种选择器的构造方法。

21、第四方面,本发明实施例还提供一种存储介质,其上存储有计算设备可读的一个或多个程序,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行上述的一种选择器的构造方法。

22、与现有技术相比,本发明至少具有如下有益效果:

23、本发明提供了一种选择器的构造方法、系统、设备及存储介质,能够减少变量的使用,降低电路规模,进而减少计算开销,有助于高效生成智能合约证明。

24、本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。

25、下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1