System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种选择器的构造方法、系统、设备及存储介质技术方案_技高网

一种选择器的构造方法、系统、设备及存储介质技术方案

技术编号:40945271 阅读:6 留言:0更新日期:2024-04-18 15:03
本发明专利技术公开了一种选择器的构造方法、系统、设备及存储介质,方法包括:选择参数K作为选择器输出值数量N的开根次数;计算获取对N的K次开根的向上取整结果M;声明K·M个输入变量,标记变量,并对变量进行约束;通过K个变量的乘积计算出选择器的N个输出值。使用本发明专利技术方法构造选择器,能够减少变量的使用,降低电路规模,进而减少计算开销,有助于高效生成智能合约证明。

【技术实现步骤摘要】

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


技术介绍

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、第三方面,本专利技术实施例还提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理本文档来自技高网...

【技术保护点】

1.一种选择器的构造方法,其特征在于,该方法包括以下步骤:

2.根据权利要求1所述的一种选择器的构造方法,其特征在于,所述步骤S1中,所述参数K为:2或3。

3.根据权利要求2所述的一种选择器的构造方法,其特征在于,所述步骤S2中,声明K·M个输入变量,标记变量,并对变量进行约束的过程,包括:

4.根据权利要求3所述的一种选择器的构造方法,其特征在于,所述步骤S3中,通过K个变量的乘积计算出选择器的N个输出值的过程,包括:

5.一种选择器的构造系统,其特征在于,应用如权利要求1-4任一项所述的一种选择器的构造方法,该系统包括:

6.根据权利要求5所述的一种选择器的构造系统,其特征在于,所述参数K为:2或3。

7.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令,以实现能够执行如权利要求1至4中任一项所述的一种选择器的构造方法。

8.一种存储介质,其上存储有计算设备可读的一个或多个程序,其特征在于:所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行如权利要求1至4中任一项所述的一种选择器的构造方法。

...

【技术特征摘要】

1.一种选择器的构造方法,其特征在于,该方法包括以下步骤:

2.根据权利要求1所述的一种选择器的构造方法,其特征在于,所述步骤s1中,所述参数k为:2或3。

3.根据权利要求2所述的一种选择器的构造方法,其特征在于,所述步骤s2中,声明k·m个输入变量,标记变量,并对变量进行约束的过程,包括:

4.根据权利要求3所述的一种选择器的构造方法,其特征在于,所述步骤s3中,通过k个变量的乘积计算出选择器的n个输出值的过程,包括:

5.一种选择器的构造系统,其特征在于,应用如权利要求1-4任一项所述的一种选...

【专利技术属性】
技术研发人员:请求不公布姓名请求不公布姓名请求不公布姓名请求不公布姓名
申请(专利权)人:北京微芯区块链与边缘计算研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1