System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种优化智能合约证明生成中查找表的方法和系统技术方案_技高网

一种优化智能合约证明生成中查找表的方法和系统技术方案

技术编号:40327671 阅读:8 留言:0更新日期:2024-02-09 14:21
本发明专利技术公开了一种优化智能合约证明生成中查找表的方法和系统,包括:列出智能合约中的所有指令所需要的查找表操作,获取各个查找表操作的来源编码和去向编码;将来源编码中包含的所有等价编码进行归类,将等价编码按照唯一的编码方式进行替换;将去向编码中包含的所有等价编码进行归类,将等价编码按照唯一的编码方式进行替换;使替换后去向编码的排列顺序与替换后来源编码的排列顺序相对应;将同一类中的查找表操作合并成同一个查找表操作,并加入证明电路中。本发明专利技术针对智能合约中的不同指令所需要的查找表操作,按照查找表操作的来源和去向进行分类,合并相同类别里的查找表操作,进而减少查找表操作的次数,可以降低整体计算开销。

【技术实现步骤摘要】

本专利技术涉及区块链,特别涉及一种优化智能合约证明生成中查找表的方法和系统


技术介绍

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

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

3、查找表是近年来在零知识证明领域兴起的一种工具。其作用是可以证明电路中由n个变量组成的数组a0,a1...an-1,存在于一张“表”的某一行中。“表”指的是电路中的n列变量。如果确实存在,则查找表的证明可以生成。如果不存在于“表”中,则查找表的证明无法生成,进而导致整个零知识证明电路的证明无法生成。使用选择器作为条件表达式添加在数组上时,可以使得查找表在特定的行启用,在其他行禁用。数组a0,a1...an-1称为来源,另n列变量称为去向。

4、现有技术存在问题如下:零知识证明电路中,查找表操作的计算开销很大。针对智能合约的所有指令及其所需查找表操作,常见做法是对于不同指令,各自使用查找表操作,并使用选择器作为条件表达式加在查找表操作上。这样的查找表操作的数量就会和指令的数量相当。而对于evm这种智能合约的虚拟机,其指令是百级别的,会导致查找表操作的数目非常大,意味着整个零知识证明的计算开销会很大。为了降低计算开销,要求零知识证明电路尽量减少使用查找表。

5、因此,如何提供一种减少查找表操作的次数的优化智能合约证明生成中查找表的方法和系统是本领域技术人员亟待解决的技术问题。


技术实现思路

1、本专利技术针对上述研究现状和存在的问题,提供了一种优化智能合约证明生成中查找表的方法和系统,针对智能合约中的不同指令所需要的查找表操作,按照查找表操作的来源和去向进行分类,合并相同类别里的查找表操作,进而减少查找表操作的次数,可以降低整体计算开销。

2、本专利技术提供的一种优化智能合约证明生成中查找表的方法,所述智能合约证明包括查找表的证明电路,查找表的证明电路中由n个元素组成的数组存在于另n列元素组成的表的其中一行中,n≥1;n个元素组成的数组为来源,另n列元素组成的表的某一行为去向;包括如下步骤:

3、s1:列出智能合约中的所有指令所需要的查找表操作,获取各个查找表操作的来源编码和去向编码;

4、s2:将来源编码中包含的所有等价编码进行归类,将等价编码按照唯一的编码方式进行替换,得到若干个替换后来源编码;将去向编码中包含的所有等价编码进行归类,将等价编码按照唯一的编码方式进行替换,得到若干个替换后去向编码;

5、s3:根据查找表操作中来源编码和去向编码的对应关系,使所述若干个替换后去向编码的排列顺序与替换后来源编码的排列顺序相对应;

6、s4:将所有查找表操作分类,替换后来源编码和替换后去向编码一致的查找表操作被分为同一类;

7、s5:将同一类中的查找表操作合并成同一个查找表操作,并加入证明电路中。

8、优选的,所述来源编码/去向编码的元素包括:多个变量进行加、减、乘运算形成的表达式;或

9、所述来源编码/去向编码的元素包括:变量。

10、优选的,所述s2包括:

11、s21:对于所述表中的每列,指定一个唯一的列名;

12、s22:对于每个查找表操作中的来源和去向的元素,将列名和加、减、乘符号,以及括号组合成来源和去向的元素编码的表达式;

13、s23:将元素编码中运算符号两端的变量进行交换得到等价编码,所述运算符号包括加、乘运算;搜索所有等价编码,在等价编码中按照编码的字典顺序确定唯一一种等价表达式;

14、s24:对于来源的数组中的元素,先获得元素编码,再按照元素编码的字典序对数组中元素进行排序,然后由符号分隔,组成来源编码;

15、s25:对于去向的数组中的元素,保持和来源的数组中的元素的原始对应关系,将其按照来源编码中各元素的排列方式进行排列,然后由符号分隔,组成去向编码。

16、优选的,证明电路中包括选择器,当作为条件表达式添加在约束上时,使得约束在指定的行启用,在其他行禁用,添加约束的表达式为乘法;记录每个查找表操作的来源编码、去向编码的同时,记录其指令所对应的选择器;所述s2包括:

17、对于选择器,指定一个唯一的选择器名;

18、对于每个查找表操作中的来源和去向的元素,将选择器名和列名、加、减、乘符号,以及括号组合成来源和去向的元素编码的表达式。

19、优选的,所述s5包括,将同一类查找表操作中记录的来源编码/去向编码中相同乘项对应的被乘项的值相加求和,再与乘项相乘,将其作为合并后的条件表达式。

20、优选的,所述s5包括,将同一类查找表操作中记录的来源编码/去向编码中相同选择器对应的值相加求和,将其和作为合并后的选择器条件表达式。

21、优选的,所述s5之后还包括:证明电路根据合并后的查找表操作,依照零知识证明算法进行证明生成计算,生成证明。

22、本专利技术还提供的一种根据所述的一种优化智能合约证明生成中查找表的方法的优化智能合约证明生成中查找表的系统,包括:

23、获取查找表操作模块,其被配置为:列出智能合约中的所有指令所需要的查找表操作,获取各个查找表操作的来源编码和去向编码;

24、等价转换模块,其被配置为:将来源编码中包含的所有等价编码进行归类,将等价编码按照唯一的编码方式进行替换,得到若干个替换后来源编码;将去向编码中包含的所有等价编码进行归类,将等价编码按照唯一的编码方式进行替换,得到若干个替换后去向编码;

25、排序模块,其被配置为:根据查找表操作中来源编码和去向编码的对应关系,使所述若干个替换后去向编码的排列顺序与替换后来源编码的排列顺序相对应;

26、归类模块,其被配置为:将所有查找表操作分类,替换后来源编码和替换后去向编码一致的查找表操作被分为同一类;

27、加入证明模块,其被配置为:将同一类中的查找表操作合并成同一个查找表操作,并加入证明电路中。

28、优选的,还包括:生成证明模块,其被配置为:证明电路根据合并后的查找表操作,依照零知识证明算法进行证明生成计算,生成证明。...

【技术保护点】

1.一种优化智能合约证明生成中查找表的方法,其特征在于:所述智能合约证明包括查找表的证明电路,查找表的证明电路中由n个元素组成的数组存在于另n列元素组成的表的其中一行中,n≥1;n个元素组成的数组为来源,另n列元素组成的表的某一行为去向;包括如下步骤:

2.根据权利要求1所述的一种优化智能合约证明生成中查找表的方法,其特征在于,所述来源编码/去向编码的元素包括:多个变量进行加、减、乘运算形成的表达式;或

3.根据权利要求1所述的一种优化智能合约证明生成中查找表的方法,其特征在于,所述S2包括:

4.根据权利要求3所述的一种优化智能合约证明生成中查找表的方法,其特征在于,证明电路中包括选择器,当作为条件表达式添加在约束上时,使得约束在指定的行启用,在其他行禁用,添加约束的表达式为乘法;记录每个查找表操作的来源编码、去向编码的同时,记录其指令所对应的选择器;所述S2包括:

5.根据权利要求3所述的一种优化智能合约证明生成中查找表的方法,其特征在于,所述S5包括,将同一类查找表操作中记录的来源编码/去向编码中相同乘项对应的被乘项的值相加求和,再与乘项相乘,将其作为合并后的条件表达式。

6.根据权利要求4所述的一种优化智能合约证明生成中查找表的方法,其特征在于,所述S5包括,将同一类查找表操作中记录的来源编码/去向编码中相同选择器对应的值相加求和,将其和作为合并后的选择器条件表达式。

7.根据权利要求1所述的一种优化智能合约证明生成中查找表的方法,其特征在于,所述S5之后还包括:证明电路根据合并后的查找表操作,依照零知识证明算法进行证明生成计算,生成证明。

8.一种根据权利要求1-7中任一项所述的一种优化智能合约证明生成中查找表的方法的优化智能合约证明生成中查找表的系统,其特征在于,包括:

9.根据权利要求8所述的一种优化智能合约证明生成中查找表的系统,其特征在于,还包括:生成证明模块,其被配置为:证明电路根据合并后的查找表操作,依照零知识证明算法进行证明生成计算,生成证明。

10.一种电子设备,其特征在于,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成权利要求1-7中任一项所述的一种优化智能合约证明生成中查找表的方法的步骤。

...

【技术特征摘要】

1.一种优化智能合约证明生成中查找表的方法,其特征在于:所述智能合约证明包括查找表的证明电路,查找表的证明电路中由n个元素组成的数组存在于另n列元素组成的表的其中一行中,n≥1;n个元素组成的数组为来源,另n列元素组成的表的某一行为去向;包括如下步骤:

2.根据权利要求1所述的一种优化智能合约证明生成中查找表的方法,其特征在于,所述来源编码/去向编码的元素包括:多个变量进行加、减、乘运算形成的表达式;或

3.根据权利要求1所述的一种优化智能合约证明生成中查找表的方法,其特征在于,所述s2包括:

4.根据权利要求3所述的一种优化智能合约证明生成中查找表的方法,其特征在于,证明电路中包括选择器,当作为条件表达式添加在约束上时,使得约束在指定的行启用,在其他行禁用,添加约束的表达式为乘法;记录每个查找表操作的来源编码、去向编码的同时,记录其指令所对应的选择器;所述s2包括:

5.根据权利要求3所述的一种优化智能合约证明生成中查找表的方法,其特征在于,所述s5包括,将同一类查找表操作中记录的来源编码/去向编码中相同乘项对应的被乘项的值相加求和,再与乘项...

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

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

1