一种智能合约执行的过程状态检测方法及装置制造方法及图纸

技术编号:23890247 阅读:49 留言:0更新日期:2020-04-22 06:10
本发明专利技术实施例提供一种智能合约执行的过程状态检测方法及装置,所述方法包括:根据预设关系依次确定与业务逻辑相对应的监控API接口;所述过程状态包括智能合约信息及监控参数;根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头。所述装置执行上述方法。本发明专利技术实施例提供的方法及装置,能够增强对智能合约的风险检查能力。

A process state detection method and device for smart contract execution

【技术实现步骤摘要】
一种智能合约执行的过程状态检测方法及装置
本专利技术涉及区块链
,尤其涉及一种智能合约执行的过程状态检测方法及装置。
技术介绍
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。智能合约是一套以数字形式定义的承诺,承诺控制着数字资产并包含了合约参与者约定的权利和义务,由计算机系统自动执行。现有的区块链技术方案只能保证智能合约执行结果状态的一致性,但结果状态一致并不代表智能合约执行过程状态的一致性。在某些场景下,在智能合约执行过程状态不一致的情况下,也可能导致执行结果状态一致,但是,此时的智能合约执行已经发生异常,存在极高的安全风险。
技术实现思路
针对现有技术存在的问题,本专利技术实施例提供一种智能合约执行的过程状态检测方法及装置。本专利技术实施例提供一种智能合约执行的过程状态检测方法,包括:获取区块内的交易,并确定与所述交易相对应的智能合约;在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系;确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数;根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。其中,所述智能合约信息包括所述智能合约的摘要信息和智能合约被执行API的方法声明信息、所述监控参数包括监控API接口编号、参数函数和监控变量值函数;相应的,所述根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,包括:根据所述摘要信息、所述方法声明信息、所述监控API接口编号、所述参数函数和所述监控变量值函数,生成默克尔树,并将所述默克尔树的叶子节点作为所述交易过程状态哈希。其中,所述根据所述所有交易过程状态哈希,确定区块过程状态哈希,包括:将所有交易过程状态哈希进行变换处理,生成所述区块过程状态哈希。其中,所述智能合约执行的过程状态检测方法,还包括:将所述默克尔树的树根节点作为所述区块过程状态哈希。其中,所述智能合约执行的过程状态检测方法还包括:对与检测结果为异常的过程状态相对应的过程状态数据进行标记。本专利技术实施例提供一种智能合约执行的过程状态检测装置,包括:第一确定单元,用于获取区块内的交易,并确定与所述交易相对应的智能合约;第二确定单元,用于在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系;第三确定单元,用于确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数;第四确定单元,用于根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;检测单元,用于根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。其中,所述智能合约信息包括所述智能合约的摘要信息和智能合约被执行API的方法声明信息、所述监控参数包括监控API接口编号、参数函数和监控变量值函数;相应的,所述第四确定单元具体用于:根据所述摘要信息、所述方法声明信息、所述监控API接口编号、所述参数函数和所述监控变量值函数,生成默克尔树,并将所述默克尔树的叶子节点作为所述交易过程状态哈希。其中,所述检测单元具体用于:将所有交易过程状态哈希进行变换处理,生成所述区块过程状态哈希。本专利技术实施例提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如下方法步骤:获取区块内的交易,并确定与所述交易相对应的智能合约;在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系;确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数;根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。本专利技术实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法步骤:获取区块内的交易,并确定与所述交易相对应的智能合约;在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系;确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数;根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。本专利技术实施例提供的智能合约执行的过程状态检测方法及装置,通过确定与智能合约的执行过程的业务逻辑相对应的监控API接口,并使其监控智能合约执行的过程状态,确定交易过程状态哈希和区块过程状态哈希,并广播包含区块过程状态哈希的区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头检测智能合约执行的过程状态,能够增强对智能合约的风险检查能力,有助于及时发现并解决智能合约中的风险。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方本文档来自技高网...

【技术保护点】
1.一种智能合约执行的过程状态检测方法,其特征在于,包括:/n获取区块内的交易,并确定与所述交易相对应的智能合约;/n在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系;/n确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数;/n根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;/n根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。/n

【技术特征摘要】
1.一种智能合约执行的过程状态检测方法,其特征在于,包括:
获取区块内的交易,并确定与所述交易相对应的智能合约;
在所述智能合约的执行过程中,根据预设关系依次确定与执行过程的业务逻辑相对应的监控API接口;所述预设关系包括预设监控API接口和预设业务逻辑之间的对应关系;
确定顺序排列的过程状态;所述过程状态包括与所述交易相关的智能合约信息及与所述监控API接口相关的监控参数;
根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,并遍历所有交易,以确定与所有交易相对应的所有交易过程状态哈希;
根据所述所有交易过程状态哈希,确定区块过程状态哈希,写入所述区块过程状态哈希至区块头,并广播所述区块头,以供执行相同方法的其他执行方根据所述区块头和各自获取本地的区块头,检测所述智能合约执行的过程状态。


2.根据权利要求1所述的智能合约执行的过程状态检测方法,其特征在于,所述智能合约信息包括所述智能合约的摘要信息和智能合约被执行API的方法声明信息、所述监控参数包括监控API接口编号、参数函数和监控变量值函数;相应的,所述根据所述智能合约信息和所述监控参数,确定与所述交易对应的交易过程状态哈希,包括:
根据所述摘要信息、所述方法声明信息、所述监控API接口编号、所述参数函数和所述监控变量值函数,生成默克尔树,并将所述默克尔树的叶子节点作为所述交易过程状态哈希。


3.根据权利要求2所述的智能合约执行的过程状态检测方法,其特征在于,所述根据所述所有交易过程状态哈希,确定区块过程状态哈希,包括:
将所有交易过程状态哈希进行变换处理,生成所述区块过程状态哈希。


4.根据权利要求3所述的智能合约执行的过程状态检测方法,其特征在于,所述智能合约执行的过程状态检测方法,还包括:
将所述默克尔树的树根节点作为所述区块过程状态哈希。


5.根据权利要求1至4任一所述的智能合约执行的过程状态检测方法,其特征在于,所述智能合约执行的过程状态检测方法还包括:
对与检测结果为异常的过程状态相对应的过...

【专利技术属性】
技术研发人员:隋丙跃步璐璐殷舒徐加明马啸
申请(专利权)人:北京菲林方德科技有限公司
类型:发明
国别省市:北京;11

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

1