[发明专利]一种基于窥孔优化的以太坊智能合约Gas优化方法在审
申请号: | 201910498379.6 | 申请日: | 2019-06-11 |
公开(公告)号: | CN112070605A | 公开(公告)日: | 2020-12-11 |
发明(设计)人: | 王兴亚;高新宇;陈振宇;赵源;孙伟松 | 申请(专利权)人: | 南京慕测信息科技有限公司 |
主分类号: | G06Q40/04 | 分类号: | G06Q40/04;G06F9/455 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210000 江苏省南京*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 优化 以太 智能 合约 gas 方法 | ||
1.一种基于窥孔优化的以太坊智能合约Gas优化方法,其特征是该方法首先收集以太坊中部署的智能合约操作码,对收集到的智能合约操作码进行去重。将去重后的以太坊智能合约操作码中进行拆分指令序列处理,获得的所有指令序列重新进行去重,得到指令序列集。然后对指令序列集后进行标准化处理,对指令中的寄存器、常数等参数进行标准化。得到标准化后的操作码后进行指令序列划分,即将等价的指令序列分类,并计算Gas消耗,每一类作为一个替换规则。然后是进行待优化合约匹配,优化过程中使用替换规则进行匹配,如果检测到等价片段,则添加进替换规则中。最后进行指令序列替换,选择Gas消耗最低的片段将其替换,如果该等价片段Gas消耗更低则不进行替换。最后达到降低智能合约Gas消耗的效果。该方法包括以下步骤:
1)指令序列集生成。本步骤生成用于待划分类别的指令序列集。首先从区块链中获取所有部署的智能合约,得到以太坊智能合约操作码数据集Data_SC。对Data_SC中的每一个智能合约进行拆分,得到指令序列集。对指令序列集中所有指令序列进行标准化,标准化过程包括寄存器标准化和常量标准化。标准化后的指令序列集中相同的指令序列只保存一个,最后得到指令序列集Data_IS。
2)指令序列集划分。本步骤对Data_IS的指令序列进行等价识别,识别出等价指令序列则将其划分到一类。对Data_IS中的每一个指令序列,放在虚拟机中执行,记录执行后的虚拟机状态,并计算出本次执行的Gas消耗情况,指令序列和Gas消耗的信息将被记录进入“虚拟机状态-指令序列列表”哈希表。指令序列是否等价通过等价测试判断,判断等价的所有序列将被归为一类。
3)待优化合约匹配。本步骤根据步骤2中得到的指令序列分类,对待优化智能合约的指令序列进行匹配。首先要将待优化的智能合约拆分成指令序列,并对其进行标准化,得到的指令序列集与步骤2中得到的分类进行匹配,如果发现同样的指令序列则添加到优化列表。
4)指令序列替换。本步骤根据步骤3中得到的优化列表对待优化智能合约进行优化。根据优化列表中的指令序列issc与分类的对应关系,取分类中Gas消耗最低的指令序列ismin与优化列表的指令序列issc的Gas消耗对比,如果ismin的Gas消耗更低则进行替换。
2.根据权利要求1中所述的一种基于窥孔优化的以太坊智能合约Gas优化方法,其特征是,在步骤1)中,进行指令序列集生成;首先从以太坊中获取所有部署的智能合约,得到以太坊智能合约操作码数据集Data_SC。对Data_SC中的每一个智能合约进行拆分,拆分过程使用宽度为window的窗口对所有指令序列进行拆分,每次拆分完成后宽度window递增1,直到达到最大窗口宽度。对指令序列集中所有指令序列进行标准化,标准化过程包括寄存器标准化和常量标准化。得到的指令序列集中相同的指令序列只保存一个,最后得到指令序列集Data_IS。
3.根据权利要求1中所述的一种基于窥孔优化的以太坊智能合约Gas优化方法,其特征是,在步骤2)中,进行指令序列集划分;首先初始化一个虚拟机状态与指令序列列表的对应关系表。对Data_IS中的每一个指令序列,放在虚拟机中执行,记录执行后的虚拟机状态,并计算出本次执行的Gas消耗情况,根据虚拟机状态在对应关系表中找到对应的指令序列列表(如果不存在则新建一个该虚拟机状态对应的指令序列列表)。然后判断该指令序列与指令序列列表中的指令序列是否等价,等价通过两个两种等价测试判断,分别是执行测试和布尔测试。若等价则添加到指令序列列表中。最终得到一个虚拟机状态和与之对应的所有指令序列列表的对应关系表。
4.根据权利要求1中所述的一种基于窥孔优化的以太坊智能合约Gas优化方法,其特征是,在步骤3)中,进行待优化合约匹配;首先要将待优化的智能合约拆分成指令序列,并对其进行标准化,得到该智能合约的指令序列集。执行该指令序列集的所有指令序列得到执行后的虚拟机状态。使用该状态vmstatesc与对应关系表进行匹配,如果发现同样的状态则添加到该指令序列issc与对应关系表中的指令序列列表到优化列表中。
5.根据权利要求1中所述的一种基于窥孔优化的以太坊智能合约Gas优化方法,其特征是,在步骤4)中,进行指令序列替换;根据优化列表中的指令序列issc与指令序列列表的对应关系,取分类中Gas消耗最低的指令序列ismin与优化列表的指令序列issc的Gas消耗对比,如果ismin的Gas消耗更低则进行等价测试,等价测试通过后使用ismin替换issc,在优化列表中所有issc完成上述操作后获得优化后的智能合约scopt。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京慕测信息科技有限公司,未经南京慕测信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910498379.6/1.html,转载请声明来源钻瓜专利网。