智能合约处理方法、装置、设备及存储介质制造方法及图纸

技术编号:36986205 阅读:18 留言:0更新日期:2023-03-25 18:04
本发明专利技术涉及区块链技术领域,尤其涉及一种智能合约处理方法、装置、设备及存储介质,该智能合约处理方法包括:获取智能合约代码,并通过后端编译工具在智能合约代码中插入循环检测机制得到目标合约代码;通过后端编译工具对目标合约代码进行编译打包得到安全合约,并将安全合约发送至区块链网络;通过区块链网络部署并执行安全合约,并基于循环检测机制检测安全合约在执行过程中是否出现死循环;若安全合约在执行过程中出现死循环,则退出安全合约。本发明专利技术实现了提高智能合约的安全性。本发明专利技术实现了提高智能合约的安全性。本发明专利技术实现了提高智能合约的安全性。

【技术实现步骤摘要】
智能合约处理方法、装置、设备及存储介质


[0001]本专利技术涉及区块链
,尤其涉及一种智能合约处理方法、装置、设备及计算机可读存储介质。

技术介绍

[0002]区块链技术作为一种分布式账本技术,对金融、智能制造、供应链、物流等领域带来了深入的影响,并驱动新一轮技术变革和应用变革。区块链技术在提高效率、降低成本、提高数据安全性的同时,也面临着自身安全性不足的问题。
[0003]智能合约是一种运行在区块链网络上的计算机协议,其具有高效性、实时更新、不可篡改、去中心化等特点,但是智能合约执行过程中存在诸多安全漏洞,攻击者会利用智能合约中的安全漏洞盗取资产,智能合约在运行后无法修改以修复安全漏洞,这使得区块链网络的安全受到威胁。

技术实现思路

[0004]本专利技术的主要目的在于提供一种智能合约处理方法、装置、设备及计算机可读存储介质,旨在提高智能合约的安全性。
[0005]为实现上述目的,本专利技术提供一种智能合约处理方法,所述智能合约处理方法包括:
[0006]获取智能合约代码,并通过后端编译工具在所述智能合约代码中插入循环检测机制得到目标合约代码;
[0007]通过所述后端编译工具对所述目标合约代码进行编译打包得到安全合约,并将所述安全合约发送至区块链网络;
[0008]通过所述区块链网络部署并执行所述安全合约,并基于所述循环检测机制检测所述安全合约在执行过程中是否出现死循环;
[0009]若所述安全合约在执行过程中出现死循环,则退出所述安全合约。
[0010]可选地,所述基于所述循环检测机制检测所述安全合约在执行过程中是否出现死循环的步骤,包括:
[0011]基于所述循环检测机制累计所述安全合约的循环次数和循环时长;
[0012]检测所述循环次数是否大于预设次数,并检测所述循环时长是否大于预设时长;
[0013]若所述循环次数大于所述预设次数,或者所述循环时长大于所述预设时长,则确定所述安全合约在执行过程中出现死循环。
[0014]可选地在所述将所述安全合约发送至区块链网络的步骤之前,所述方法还包括:
[0015]通过所述后端编译工具对所述目标合约代码和合约依赖项进行打包得到第一合约;
[0016]加载所述第一合约中的类名和方法;
[0017]检测所述类名是否和预设黑名单一致,并检测所述方法是否和所述预设黑名单一
致;
[0018]所述将所述安全合约发送至区块链网络的步骤,包括:
[0019]若所述类名和所述预设黑名单不一致且所述方法和所述预设黑名单不一致,则将所述安全合约发送至区块链网络。
[0020]可选地,在所述通过所述区块链网络部署并执行所述安全合约的步骤之前,所述方法还包括:
[0021]将预设的合约调用深度检测机制发送至所述区块链网络;
[0022]通过区块链网络部署并执行所述合约调用深度检测机制;
[0023]所述通过区块链网络部署并执行所述安全合约的步骤之后,所述方法还包括:
[0024]基于所述合约调用深度检测机制,检测所述安全合约调用所述区块链网络中合约的调用深度是否大于预设阈值;
[0025]若所述调用深度大于所述预设阈值,则退出所述安全合约。
[0026]可选地,在所述通过所述后端编译工具对所述目标合约代码进行编译打包得到安全合约的步骤之前,所述方法还包括:
[0027]通过所述后端编译工具对所述目标合约代码的包名信息进行校验;
[0028]所述通过所述后端编译工具对所述目标合约代码进行编译打包得到安全合约的步骤,包括:
[0029]在对所述目标合约代码的包名信息校验通过时,通过所述后端编译工具对所述目标合约代码进行编译打包得到安全合约。
[0030]可选地,在所述将所述安全合约发送至区块链网络的步骤,包括:
[0031]通过所述后端编译工具对所述安全合约进行编码;
[0032]通过所述后端编译工具使用私钥对编码后的所述安全合约进行签名,并将签名后的所述安全合约发送至区块链网络;
[0033]所述通过所述区块链网络部署并执行所述安全合约的步骤,包括:
[0034]通过所述区块链网络使用公钥对签名后的所述安全合约进行验证;
[0035]在验证通过时,通过所述区块链网络部署并执行签名后的所述安全合约。
[0036]可选地,所述获取智能合约代码的步骤,包括:
[0037]通过合约代码编辑器接收用户编辑的智能合约代码;
[0038]所述将所述安全合约发送至区块链网络的步骤,包括:
[0039]通过所述合约代码编辑器接收用户的下载指令,并下载所述安全合约;
[0040]将所述安全合约发送至区块链网络。
[0041]此外,为实现上述目的,本专利技术还提供一种智能合约处理装置,所述智能合约处理装置包括:
[0042]第一调用模块,用于获取智能合约代码,并通过后端编译工具在所述智能合约代码中插入循环检测机制得到目标合约代码;
[0043]所述第一调用模块,还用于通过所述后端编译工具对所述目标合约代码进行编译打包得到安全合约,并将所述安全合约发送至区块链网络;
[0044]第二调用模块,用于通过所述区块链网络部署并执行所述安全合约,并基于所述循环检测机制检测所述安全合约在执行过程中是否出现死循环;
[0045]第三调用模块,用于若所述安全合约在执行过程中出现死循环,则退出所述安全合约。
[0046]此外,为实现上述目的,本专利技术还提供一种智能合约处理设备,所述智能合约处理设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的智能合约处理程序,所述智能合约处理程序被所述处理器执行时实现上述智能合约处理方法的步骤。
[0047]此外,为实现上述目的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有智能合约处理程序,所述智能合约处理程序被处理器执行时实现上述的智能合约处理方法的步骤。
[0048]本专利技术中,获取智能合约代码,通过后端编译工具在智能合约代码中插入循环检测机制得到目标合约代码,通过后端编译工具对目标合约代码进行编译打包得到安全合约,并将安全合约发送至区块链网络,通过区块链网络部署并执行安全合约,并基于循环检测机制检测安全合约在执行过程中是否出现死循环,若安全合约在执行过程中出现死循环,则退出安全合约。
[0049]本专利技术通过在智能合约代码中注入循环检测机制,在智能合约代码陷入死循环时退出执行智能合约代码,避免了智能合约代码陷入死循环,从而使得区块链网络攻击者无法利用死循环这一漏洞攻击智能合约,提升了智能合约的安全性。
[0050]同时,由于智能合约的执行需要消耗gas(用于测量在区块链上执行特定操作所需的计算工作量的单位),本专利技术在智能合约进入死循环的情况时退出智能合约,避免了智能合约持续死循环导致浪费gas,降低了智能合约本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种智能合约处理方法,其特征在于,所述智能合约代码方法包括:获取智能合约代码,并通过后端编译工具在所述智能合约代码中插入循环检测机制得到目标合约代码;通过所述后端编译工具对所述目标合约代码进行编译打包得到安全合约,并将所述安全合约发送至区块链网络;通过所述区块链网络部署并执行所述安全合约,并基于所述循环检测机制检测所述安全合约在执行过程中是否出现死循环;若所述安全合约在执行过程中出现死循环,则退出所述安全合约。2.如权利要求1所述的智能合约处理方法,其特征在于,所述基于所述循环检测机制检测所述安全合约在执行过程中是否出现死循环的步骤,包括:基于所述循环检测机制累计所述安全合约的循环次数和循环时长;检测所述循环次数是否大于预设次数,并检测所述循环时长是否大于预设时长;若所述循环次数大于所述预设次数,或者所述循环时长大于所述预设时长,则确定所述安全合约在执行过程中出现死循环。3.如权利要求1所述的智能合约处理方法,其特征在于,在所述将所述安全合约发送至区块链网络的步骤之前,所述方法还包括:通过所述后端编译工具对所述目标合约代码和合约依赖项进行打包得到第一合约;加载所述第一合约中的类名和方法;检测所述类名是否和预设黑名单一致,并检测所述方法是否和所述预设黑名单一致;所述将所述安全合约发送至区块链网络的步骤,包括:若所述类名和所述预设黑名单不一致且所述方法和所述预设黑名单不一致,则将所述安全合约发送至区块链网络。4.如权利要求1所述的智能合约处理方法,其特征在于,在所述通过所述区块链网络部署并执行所述安全合约的步骤之前,所述方法还包括:将预设的合约调用深度检测机制发送至所述区块链网络;通过区块链网络部署并执行所述合约调用深度检测机制;所述通过区块链网络部署并执行所述安全合约的步骤之后,所述方法还包括:基于所述合约调用深度检测机制,检测所述安全合约调用所述区块链网络中合约的调用深度是否大于预设阈值;若所述调用深度大于所述预设阈值,则退出所述安全合约。5.如权利要求1所述的智能合约处理方法,其特征在于,在所述通过所述后端编译工具对所述目标合约代码进行编译打包得到安全合约的步骤之前,所述方法还包括:通过所述后端编译工具对所述目标合约...

【专利技术属性】
技术研发人员:商松芦桂明曹梦龙许强沈书航王恩凯张骁庞同庆田翔
申请(专利权)人:无锡吉利区块链科技有限公司
类型:发明
国别省市:

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

1