[发明专利]一种智能合约污点追踪方法及装置有效
申请号: | 202010693668.4 | 申请日: | 2020-07-17 |
公开(公告)号: | CN111737357B | 公开(公告)日: | 2021-02-05 |
发明(设计)人: | 刘地军;程岩;张中文 | 申请(专利权)人: | 支付宝(杭州)信息技术有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06Q20/38;G06Q20/02 |
代理公司: | 北京亿腾知识产权代理事务所(普通合伙) 11309 | 代理人: | 陈霁;周良玉 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 智能 合约 污点 追踪 方法 装置 | ||
本发明实施例提供了一种智能合约污点数据追踪方法及装置,该智能合约被编译为字节码部署在区块链上,该方法通过所述区块链的节点中部署的虚拟机执行,该方法包括,响应于调用智能合约的交易,执行所述字节码,其中,执行字节码的过程包括:通过执行用于引入外部输入数据的第一虚拟机指令,获取外部输入数据,并生成外部输入数据对应的污点标识;将外部输入数据,及其对应的污点标识存入第一存储空间,其中第一存储空间具有存储污点标识的存储区域;在执行用于传递数据的第二虚拟机指令时,在确定待传递数据为外部输入数据的情况下,在第一存储空间中传递所述外部输入数据及其对应的污点标识。
技术领域
本说明书一个或多个实施例涉及区块链领域,尤其涉及一种智能合约污点追踪方法及装置。
背景技术
智能合约(smart contract),一种基于区块链技术的分布式程序,允许在没有第三方的情况下完成程序实现的决策,存储资料等功能,智能合约的执行结果可追踪且不可逆转。执行智能合约的虚拟机,是一种在区块链上使用的栈式虚拟机。
现有技术中,在虚拟机对智能合约的执行中,通过模糊测试来分析数据流中的虚拟机指令执行依赖关系,从而判断合约执行中存在的风险性因素,但是在实际的合约检测场景中,上述方法存在较高的误报和漏报率。
因此,需要一种新的跟踪指令执行数据流的方法。
发明内容
本说明书一个或多个实施例描述了一种智能合约污点数据追踪方法及装置,对外部输入数据附着污点标识,在将外部输入数据放入存储空间时, 亦将污点标识放入存储空间;然后,在存储空间中传递外部输入数据时,也传递其对应的污点标识。通过该方法,可以通过污点标识,准确的追踪智能合约执行中的污点数据。
根据第一方面,提供了一种智能合约污点数据追踪方法,所述智能合约被编译为字节码部署在区块链上,所述方法通过所述区块链的节点中部署的虚拟机执行,该方法包括,响应于调用智能合约的交易,执行所述字节码,其中,执行所述字节码的过程包括:
通过执行用于引入外部输入数据的第一虚拟机指令,获取外部输入数据,并生成所述外部输入数据对应的污点标识;
将所述外部输入数据,及其对应的污点标识存入第一存储空间,其中所述第一存储空间具有存储所述污点标识的存储区域;
在执行用于传递数据的第二虚拟机指令时,在确定待传递数据为外部输入数据的情况下,在所述第一存储空间中传递所述外部输入数据及其对应的污点标识。
在一个实施例中,所述智能合约污点数据追踪方法还可以包括,执行用于调用所述第一存储空间中的存储数据的第三虚拟机指令;根据被调用数据是否具有对应的污点标识,确定是否进行漏洞报告。
进一步,在更具体的例子中,所述第三虚拟机指令可以包括CALL指令、JUMP指令。
在一个实施例中,所述外部输入数据包括,通过所述交易传入的用户输入数据。
在另一个实施例中, 所述外部输入数据包括,记账节点打包交易时生成的外部变量,所述外部变量可以包括以下中的一个或多个:时间戳、区块哈希值、区块号、难度值。
根据不同的实施例, 所述第一虚拟机指令,可以包括CALLDATALOAD指令、BLOCKHASH指令、TIMESTAMP指令、NUMBER指令、DIFFICULTY指令。
根据一个实施例, 所述第一存储空间包括操作栈空间,所述操作栈空间在原有栈之外还包括污点栈;所述污点栈用于保存外部输入数据对应的污点标识。
进一步,在一个具体的例子中, 可以将外部输入数据存入所述原有栈,将其对应的污点标识存入所述污点栈;以及,在所述原有栈中,对所述外部输入数据进行移出/复制/交换操作;并且在污点栈中,对所述外部输入数据对应的污点标识进行移出/复制/交换操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于支付宝(杭州)信息技术有限公司,未经支付宝(杭州)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010693668.4/2.html,转载请声明来源钻瓜专利网。