[发明专利]一种智能合约污点追踪方法及装置有效
申请号: | 202010693668.4 | 申请日: | 2020-07-17 |
公开(公告)号: | CN111737357B | 公开(公告)日: | 2021-02-05 |
发明(设计)人: | 刘地军;程岩;张中文 | 申请(专利权)人: | 支付宝(杭州)信息技术有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06Q20/38;G06Q20/02 |
代理公司: | 北京亿腾知识产权代理事务所(普通合伙) 11309 | 代理人: | 陈霁;周良玉 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 智能 合约 污点 追踪 方法 装置 | ||
1.一种智能合约污点数据追踪方法,所述智能合约被编译为字节码部署在区块链上,所述方法通过所述区块链的节点中部署的虚拟机执行,该方法包括,响应于调用智能合约的交易,执行所述字节码,其中,执行所述字节码的过程包括:
通过执行用于引入外部输入数据的第一虚拟机指令,获取外部输入数据,并生成所述外部输入数据对应的污点标识;
将所述外部输入数据,及其对应的污点标识存入第一存储空间,其中所述第一存储空间具有存储所述污点标识的存储区域;所述第一存储空间至少包括操作栈空间,所述操作栈空间包括若干操作栈,所述若干操作栈中设置有污点结构区,所述污点结构区用于保存外部输入数据对应的污点标识;所述第一存储空间还包括持久化存储空间,所述持久化存储空间包含键-值对集合,其中,对于该键-值对集合中的每个键-值对,附加有一个与键对应的附加值;该附加值用于存储外部输入数据对应的污点标识;
在执行用于传递数据的第二虚拟机指令时,在确定待传递数据为外部输入数据的情况下,在所述第一存储空间中传递所述外部输入数据及其对应的污点标识。
2.根据权利要求1所述的方法,还包括:
执行用于调用所述第一存储空间中的存储数据的第三虚拟机指令;
根据被调用数据是否具有对应的污点标识,确定是否进行漏洞报告。
3.根据权利要求2所述的方法,其中,所述第三虚拟机指令包括CALL指令、JUMP指令。
4.根据权利要求1所述的方法,其中,所述外部输入数据包括:通过所述交易传入的用户输入数据。
5.根据权利要求1所述的方法,其中,所述外部输入数据包括,记账节点打包交易时生成的外部变量,所述外部变量包括以下中的一个或多个:时间戳、区块哈希值、区块号、难度值。
6.根据权利要求1所述的方法,其中,所述第一虚拟机指令,包括CALLDATALOAD指令、BLOCKHASH指令、TIMESTAMP指令、NUMBER指令、DIFFICULTY指令。
7.根据权利要求1所述的方法,其中,所述第一存储空间包括非持久化存储空间,所述非持久化存储空间包括数据区和污点区;所述污点区用于保存外部输入数据在所述数据区中的存储地址,以及该外部输入数据对应的污点数据。
8.根据权利要求7所述的方法,其中,所述污点区包含链表,所述链表用于保存外部输入数据在所述数据区中的起始存储地址和结尾存储地址,以及该外部输入数据对应的污点标识;
所述将外部输入数据,及其对应的污点标识存入第一存储空间,包括,
将外部输入数据存入所述数据区,并将外部输入数据在数据区的起始存储地址和结尾存储地址,以及对应的污点标识,存入所述污点区。
9.根据权利要求8所述的方法,其中,在确定待传递数据为外部输入数据的情况下,在所述第一存储空间中传递所述外部输入数据及其对应的污点标识,包括:
根据该待传递数据在所述数据区的存储地址,以及污点区的链表中各外部输入数据在所述数据区中的起始存储地址和结尾存储地址,判断该待传递数据是否为外部输入数据;
若该待传递数据的存储地址在任一外部数据的起始存储地址和结尾存储地址之间,则确定该待传递数据为外部输入数据,则在所述非持久化存储空间中传递外部输入数据及其对应的污点标识;
否则,确定该待传递数据不是外部输入数据,只在所述非持久化存储空间中传递该数据本身。
10.根据权利要求7所述的方法,其中,在第一存储空间中传递外部输入数据及其对应的污点标识,包括,
在所述非持久化存储空间中传递外部输入数据及其对应的污点标识,所述第二虚拟机指令,包括MLOAD指令、MSTORE指令。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于支付宝(杭州)信息技术有限公司,未经支付宝(杭州)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010693668.4/1.html,转载请声明来源钻瓜专利网。