[发明专利]一种基于源代码的智能合约优化方法及装置在审
申请号: | 202110013879.3 | 申请日: | 2021-01-06 |
公开(公告)号: | CN112631656A | 公开(公告)日: | 2021-04-09 |
发明(设计)人: | 陈湘萍;王子彦;孔雀屏;周晓聪;郑子彬 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F8/74 | 分类号: | G06F8/74 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 杨小红 |
地址: | 510275 *** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 源代码 智能 合约 优化 方法 装置 | ||
本发明公开了一种基于源代码的智能合约优化方法及装置,其中,方法包括:读取预设的智能合约的源代码,并将所述源代码转换为抽象语法树;在所述抽象语法树中检测具有预设的待优化模式的待优化源代码;优化所述待优化源代码,生成优化源代码;基于所述优化源代码生成优化智能合约,并对所述优化智能合约进行验证,当验证通过时,输出所述优化源代码。从而解决了现有的基于字节码的优化方法使得优化变得不透明,且只能处理小范围的操作码序列,导致无法优化长操作码序列的智能合约片段的技术问题。
技术领域
本发明涉及智能合约优化技术领域,尤其涉及一种基于源代码的智能合约优化方法及装置。
背景技术
智能合约是在区块链上运行的、分布式的、防篡改的程序。由于智能合约可以灵活地嵌入到各种数字资产中,以帮助实现安全有效的信息交换和价值转移,它为供应链、智能家居、电子商务和资产管理等不同行业和领域提供了巨大的机会。以太坊是第一个支持智能合约的区块链系统,吸引了许多开发人员。在以太坊推出的五年内,人们已经在以太坊上部署了超过1600万个智能合约。
智能合约通常以高级语言(例如Solidity)编写,然后编译为字节码,可以在以太坊虚拟机(EVM)中执行。字节码作为一种汇编语言,由多个操作码组成,每个操作码在区块链上执行特定的动作。智能合约在运行时需要消耗机器的计算资源,为了避免过度消耗资源并确保程序运行结束,用户使用智能合约时需要支付费用。对于费用的计算方法,以太坊采用了gas机制,执行每个操作码都会消耗一定数量的gas,gas是测量存储和计算资源消耗的特殊单位。以太坊黄皮书规定了每个操作码消耗的gas。用户需要支付的交易费用等于所使用的gas乘以gas价格,并且gas价格通常只在很小的范围内波动。换句话说,智能合约使用的gas越多,合约用户向矿工支付的交易费用就越高。此外,由于Solidity编译器优化不足,以及开发人员对gas机制的理解不足,因此智能合约的优化空间很大。因此,对智能合约进行等效转换的优化是有意义的,以便在不改变合约运行效果的前提下,可以生成节约gas的智能合约。对以太坊而言,优化智能合约的gas使用量可以降低存储压力,有利于可持续发展。对于智能合约的用户而言,gas优化可以降低部署和调用合约的成本,从而可以提高用户使用合约的热情。
现有的gas优化方法基于可满足性模理论,可在字节码级别检测并消除低效率的gas消耗模式。通过尝试所有可能的操作码序列来查找需要较少资源并且在语义上等同于原始程序的操作码序列。然而,字节码到字节码的转换使优化方法变得不透明,因为用户无法直观地知道优化器对合约进行了哪些更改。而且不透明性使用户在使用优化后的智能合约时感到焦虑,因为智能合约控制着他们的资产,并且在gas优化器中已经出现了安全漏洞。而且,由于这些方法基于表达和时间上受限的可取模理论,只能处理小范围的操作码序列(不包含跳转指令的操作码序列)。
发明内容
本发明提供了一种基于源代码的智能合约优化方法及装置,用于解决现有的基于字节码的优化方法使得优化变得不透明,且只能处理小范围的操作码序列,导致无法优化长操作码序列的智能合约片段的技术问题。
本发明提供的一种基于源代码的智能合约优化方法,包括:
读取预设的智能合约的源代码,并将所述源代码转换为抽象语法树;
在所述抽象语法树中检测具有预设的待优化模式的待优化源代码;
优化所述待优化源代码,生成优化源代码;
基于所述优化源代码生成优化智能合约,并对所述优化智能合约进行验证,当验证通过时,输出所述优化源代码。
可选地,所述待优化模式包括稀疏存储模式;所述优化源代码包括第一优化源代码;所述优化所述待优化源代码,生成优化源代码的步骤,包括:
当检测到所述稀疏存储模式对应的第一待优化源代码时,在所述第一待优化源代码中提取状态变量定义顺序;
调整所述状态变量定义顺序,生成调整顺序;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110013879.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:湿帘组件及风扇
- 下一篇:一种智能庞氏骗局合约识别方法及装置