一种可信智能合约模型的交易完备性分析方法及装置

文档序号:32294099发布日期:2022-11-23 02:29阅读:58来源:国知局
一种可信智能合约模型的交易完备性分析方法及装置

1.本发明涉及智能合约技术领域,尤其涉及一种可信智能合约模型的交易完备性分析方法及装置。


背景技术:

2.智能合约是一种面向现代服务、自动评估和执行合同条款的交易协议。作为运行在区块链上自动执行合约的代码,区块链智能合约的执行过程需要确保交易的可信性。智能合约的可信性体现在交易完备性、监管性、可靠性、数据隐私性等方面。其中的交易完备性是指不论系统如何执行,最后的结果必须保证交易正确且一致,不会因为得出交易结果的次序不同而出现不同的结果;交易完备性同时还要求保证交易记录的不可篡改性和合理的用户权限管理。因此需要引入错误分析方法,允许智能合约模型开发者在合约运行前进行交易完备性分析和检查。智能合约一旦上线便很难对其进行修改和更新,这意味着在合约上线前能够保证其在法律法规和交易的可信性至关重要,一旦因为开发者对交易条款理解错误或者理解正确但智能合约设计错误,造成了合约条款的交易逻辑错误,可能导致交易过程中的交易完备性问题,带来经济损失。


技术实现要素:

3.鉴于上述的分析,本发明实施例旨在提供一种可信智能合约模型的交易完备性分析方法及装置,用以解决现有的智能合约模型上线前的可靠性的问题。
4.一方面,本发明实施例提供了一种可信智能合约模型的交易完备性分析方法,包括以下步骤:
5.所述可信智能合约模型为根据智能合约建立的petri网络模型,生成所述petri网络模型的状态转移图;根据智能合约的合约文本建立时态逻辑性质公式,所述时态逻辑性质公式包括可达性质公式、可终结性质公式和时序性质公式;
6.基于所述状态转移图,逐一判断所述petri网络模型是否满足所有所述时态逻辑公式,若均满足,则判断所述可信智能合约模型满足交易完备性,否则,判断所述可信智能合约模型不满足交易完备性,输出所述可信智能合约模型的错误位置。
7.上述技术方案的有益效果如下:
8.通过根据智能合约的合同文本建立时态逻辑性质公式,基于状态转移图可以验证智能合约模型是否满足所有时态逻辑性质公式,若均满足则说明智能合约模型符合交易完备性,若存在不满足的性质,则根据性质公式可定位具体的错误位置,帮助开发人员迅速对错误进行定位和修改,从而保证智能合约模型上线前的可靠性。
9.基于上述方法的进一步改进,基于所述状态转移图,逐一判断所述petri网络模型是否满足所有所述时态逻辑公式,若均满足,则判断所述可信智能合约模型满足交易完备性,否则,判断所述可信智能合约模型不满足交易完备性,输出所述可信智能合约模型的错误位置,包括,
10.验证所述可达性质公式中的条件在所述状态转移图中是否出现,若没有出现,则判断所述petri网络模型不满足所述可达性质公式,输出所述可达性质公式中的条件在所述petri网络模型中对应的库所作为所述错误位置。
11.上述技术方案的有益效果如下:通过可达性质公式可验证智能合约的条件在所述可信智能合约模型中是否满足,从而验证在智能合约中在某时刻一定发生的条件在可信智能合约模型中可达,从而保证交易过程中的每一个状态都可到达,符合设计要求。
12.进一步地,基于所述状态转移图,逐一判断所述petri网络模型是否满足所有所述时态逻辑公式,若均满足,则判断所述可信智能合约模型满足交易完备性,否则,判断所述可信智能合约模型不满足交易完备性,输出所述可信智能合约模型的错误位置,包括,
13.验证所述可终结性质公式的所有终结条件在所述状态转移图中是否出现,若均没有出现,则判断所述petri网络模型不满足所述可终结性质公式,输出所述可终止性质公式中的所有终结条件在所述petri网络模型中对应的库所作为所述错误位置。
14.上述技术方案的有益效果如下:通过可终结性质公式可验证智能合约的终结条件在所述可信智能合约模型中是否满足,从而验证在智能合约的终结条件在可信智能合约模型中可达,即可信智能合约模型是否可终结,从而保证交易可以正常结束,不会出现交易过程无法结束的情况。
15.进一步地,基于所述状态转移图,逐一判断所述petri网络模型是否满足所有所述时态逻辑公式,若均满足,则判断所述可信智能合约模型满足交易完备性,否则,判断所述可信智能合约模型不满足交易完备性,输出所述可信智能合约模型的错误位置,还包括:
16.根据时序性质公式判断存在时序关系的两个任务在所述状态转移图中是否符合时序要求,若不符合,判断所述petri网络模型不满足所述时序性质公式,获取所述状态转移图中的违例状态,基于所述违例状态,确定所述petri网络模型的错误变迁作为所述错误位置;所述违例状态包括不符合时序要求的任务在状态转移图中对应的变迁所连接的所有状态。
17.进一步地,基于所述违例状态,确定所述petri网络模型的错误变迁作为所述错误位置,包括:
18.采用路径搜索法分别建立所述状态转移图的正确路径集合和错误路径集合;所述正确路径为所述状态转移图中不经过违例状态的变迁路径,所述错误路径为所述状态转移图中经过违例状态的变迁路径;
19.搭建变迁路径错误识别模型,基于所述正确路径集合和错误路径集合对所述变迁路径错误识别模型进行训练;
20.构建虚拟测试集,所述虚拟测试集中的每条路径只包括一个变迁,将所述虚拟测试集输入训练好的所述变迁路径错误识别模型,获得每个变迁的错误可疑度,错误可疑度最大的变迁为所述智能合约中最可能错误的位置。
21.上述技术方案的有益效果如下:通过时序性质公式可验证智能合约的中先后发生的任务在可信智能合约模型中是否一定是先后发生,从而验证可信智能合约模型的交易过程的正确性和一致性。通过根据正确路径和错误路径搭建变迁路径错误识别模型,可获得路径中变迁的覆盖情况和路径是否是错误路径的关系,通过将虚拟测试集输入训练好的变迁路径错误识别模型,可以得到每个变迁的错误可疑度,从而对错误进行快速准确的定位。
22.另一方面,本发明实施例提供了一种可信智能合约模型的交易完备性分析装置,所述可信智能合约模型为根据智能合约建立的petri网络模型,所述装置包括:
23.时态逻辑性质公式生成模块:用于生成所述petri网络模型的状态转移图;根据智能合约的合约文本建立时态逻辑性质公式,所述时态逻辑性质公式包括可达性质公式、可终结性质公式和时序性质公式;
24.交易完备性判断模块,用于基于所述状态转移图,逐一判断所述petri网络模型是否满足所有所述时态逻辑公式,若均满足,则判断所述可信智能合约模型满足交易完备性,否则,判断所述可信智能合约模型不满足交易完备性,输出所述可信智能合约模型的错误位置。
25.上述技术方案的有益效果如下:时态逻辑性质公式生成模块根据智能合约的合同文本建立时态逻辑性质公式,交易完备性判断模块基于状态转移图可以验证智能合约模型是否满足所有时态逻辑性质公式,若均满足则说明智能合约模型符合交易完备性,若存不满足的性质,则根据性质公式可定位具体的错误位置,帮助开发人员迅速对错误进行定位和修改,从而保证智能合约模型上线前的可靠性。
26.基于上述方法的进一步改进,所述交易完备性判断模块包括可达性质验证模块,用于验证所述可达性质公式中的条件在所述状态转移图中是否出现,若没有出现,则判断所述petri网络模型不满足所述可达性质公式,输出所述可达性质公式中的条件在所述petri网络模型中对应的库所作为所述错误位置。
27.上述技术方案的有益效果如下:可达性质验证模块通过可达性质公式可验证智能合约的条件在所述可信智能合约模型中是否满足,从而验证在智能合约中在某时刻一定发生的条件在可信智能合约模型中可达,从而保证交易过程中的每一个状态都可到达,符合设计要求。
28.进一步地,所述交易完备性判断模块包括可终结性质验证模块,用于验证所述可终结性质公式的所有终结条件在所述状态转移图中是否出现,若均没有出现,则判断所述petri网络模型不满足所述可终结性质公式,输出所述可终止性质公式中的所有终结条件在所述petri网络模型中对应的库所作为所述错误位置。
29.上述技术方案的有益效果如下:可终结性质验证模型,通过可终结性质公式可验证智能合约的终结条件在所述可信智能合约模型中是否满足,从而验证在智能合约的终结条件在可信智能合约模型中可达,即可信智能合约模型是否可终结,从而保证交易可以正常结束,不会出现交易过程无法结束的情况。
30.进一步地,所述交易完备性判断模块还包括时序性质验证模块,用于根据时序性质公式判断存在时序关系的两个任务在所述状态转移图中是否符合时序要求,若不符合,判断所述petri网络模型不满足所述时序性质公式,获取所述状态转移图中的违例状态,基于所述违例状态,确定所述petri网络模型的错误变迁作为所述错误位置;所述违例状态包括不符合时序要求的任务在状态转移图中对应的变迁所连接的所有状态。
31.进一步地,所述时序性质验证模块通过之下以下步骤,基于所述违例状态,确定所述petri网络模型的错误变迁作为所述错误位置:
32.采用路径搜索法分别建立所述状态转移图的正确路径集合和错误路径集合;所述正确路径为所述状态转移图中不经过违例状态的变迁路径,所述错误路径为所述状态转移
图中经过违例状态的变迁路径;
33.搭建变迁路径错误识别模型,基于所述正确路径集合和错误路径集合对所述变迁路径错误识别模型进行训练;
34.构建虚拟测试集,所述虚拟测试集中的每条路径只包括一个变迁,将所述虚拟测试集输入训练好的所述变迁路径错误识别模型,获得每个变迁的错误可疑度,错误可疑度最大的变迁为所述智能合约中最可能错误的位置。
35.上述技术方案的有益效果如下:时序性质验证模块通过时序性质公式可验证智能合约的中先后发生的任务在可信智能合约模型中是否一定是先后发生,从而验证可信智能合约模型的交易过程的正确性和一致性。通过根据正确路径和错误路径搭建变迁路径错误识别模型,可获得路径中变迁的覆盖情况和路径是否是错误路径的关系,通过将虚拟测试集输入训练好的变迁路径错误识别模型,可以得到每个变迁的错误可疑度,从而对错误进行快速准确的定位。
36.本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
附图说明
37.附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
38.图1为本发明实施例可信智能合约模型的交易完备性分析方法的流程图;
39.图2为本发明实施例交易合同流程;
40.图3为本发明实施例的智能合约模型结构示意图;
41.图4为本发明实施例的智能合约模型的状态转移图;
42.图5为本发明实施例可信智能合约模型的交易完备性分析装置的结构框图。
具体实施方式
43.下面结合附图来具体描述本发明的优选实施例,其中,附图构成本技术一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
44.智能合约是一种面向现代服务、自动评估和执行合同条款的交易协议。作为运行在区块链上自动执行合约的代码,区块链智能合约的执行过程需要确保交易的可信性。智能合约一旦上线便很难对其进行修改和更新,这意味着在合约上线前能够保证其在法律法规和交易的可信性至关重要,一旦因为开发者对交易条款理解错误或者理解正确但智能合约设计错误,造成了合约条款的交易逻辑错误,可能导致交易过程中的交易完备性问题,带来经济损失。智能合约的可信性体现在交易完备性、监管性、可靠性、数据隐私性等方面。其中的交易完备性包括三个方面:(1)不论系统如何执行,最后的结果必须保证交易正确且一致,不会因为得出交易结果的次序不同而出现不同的结果;(2)保证交易记录的不可篡改性;(3)保证合理的用户权限管理。其中,交易正确性和一致性可以通过形式化建模和验证方法来保证,通过验证交易模型的可达性、可终结性、和时序性,可验证交易的正确性和一
致性。可达性质可以保证交易中的每个状态都可到达,符合交易设计的要求,可终结性可以保证不论系统如何执行,交易可以正确结束,时序性可以保证不会因为得出交易结果的次序不同而出现不同的结果。这三个性质可以保证模型中设计的交易过程和“既定流程”一致,从而保证交易结果的正确性。交易的不可篡改性通过加密等方法保证,用户权限由区块链管理方法保障。
45.本发明的一个具体实施例,公开了一种可信智能合约模型的交易完备性分析方法,如图1所示。
46.其中可信智能合约模型为根据智能合约建立的petri网络模型,该模型能够表达并发的事件。petri网络模型主要由库所(place)、变迁(transition)、有向弧(connection)和令牌(token)四部分组成,其中库所代表资源状态,变迁用来表示资源利用消耗的情况,有向弧的方向性代表库所到变迁的动态运行过程,令牌是库所中的动态对象,可以从一个库所移动到另一个库所。对智能合约的合同文本进行流程提取,提取出合同文本中的条件信息和任务信息,包括每个合同参与者应该完成的任务及任务之间的先后顺序,根据petri网络模型的定义将合同文本的流程中的各项任务分别映射到petri网,建立petri网络模型,例如petri网络模型中库所可对应合同参与者完成任务的条件,petri网络模型中变迁可对应合同参与者完成的任务。
47.示例性的,一个简单的智能合约的参与方包括客户、平台和供应商,根据该智能合约的合同文本梳理的交易流程如图2所示,例如客户支付订单任务c_pay_order前需要具备两个条件,客户提交了订单——对应库所submitted_order和平台核实订单——对应库所is_order_verified。示例性的,开发人员根据该智能合约构建的智能合约模型如图3所示。
48.在此基础上,本技术公开的可信智能合约模型的交易完备性分析方法包括:
49.步骤s1、生成所述petri网络模型的状态转移图;根据智能合约的合约文本建立时态逻辑性质公式,所述时态逻辑性质公式包括可达性质公式、可终结性质公式和时序性质公式。
50.在petri网络模型中,状态由令牌在库所的分布决定。根据令牌在库所的分布情况,生成petri网络模型的状态转移图,在状态转移图中,状态表示令牌在库所的分布情况,状态之间通过变迁连接。示例性的,可采用tina工具对petri网络模型进行状态空间分析,生成petri网络模型的状态转移图,示例性的,图3所示的petri网络模型的状态转移图如图4所示,其中第0状态为初始状态,此时图3所示的petri网络模型中令牌的分布情况为库所customer_started、库所platform_started和库所supplier_started拥有令牌。第1状态为客户提交订单的变迁发生后的状态,即变迁c_submit_order发生后的状态,此时令牌的分布情况为库所submitted_order、库所platform_started和库所supplier_started拥有令牌。
51.根据智能合约的合约文本建立时态逻辑性质公式,包括:
52.根据所述合约文本中任务执行前后的条件,建立可达性质公式,例如采用[](-a)=true,表示a条件永远不会发生。建立可达性质公式[](-a)=false,若满足该公式则认为条件a可达,否则条件a不可达。
[0053]
示例性的,根据图2所示的合约流程,平台向供应商执行发送货物的任务前需要具备条件平台收到付款,因此可建立可达性质公式[](-received_payment)=false来表示
平台收到付款的条件在某一时刻会发生。供应商执行接收付款的的任务前需要具备条件平台向供应商付款,因此建立可达性质公式[](-payed_supplier)=false,来表示平台向供应商的条件在某一时刻会发生,payed_supplier表示平台向供应商付款。
[0054]
根据所述合约文本中的终结条件建立可终结性公式,例如采用公式《》(a/b)=true表示a终结条件和b终结条件中至少有一个会发生。
[0055]
示例性的,根据图2所示的合约流程,合同终止条件包括平台拒绝客户的订单和交易完成两个终止条件,建立可终止性公式《》(rejected/finished)=true,其中rejected表示平台拒绝客户的订单,finished表示交易完成。
[0056]
根据所述合约文本中任务执行的先后顺序建立时序性质公式,采用公式[](a=》《》b)=true表示b任务一定在a任务之后发生。
[0057]
示例性的,根据图2所示的合约流程,平台向供应商付款的任务一定发生在客户支付订单的任务之后,因此可建立时序性质公式[](c_pay_order=》《》p_payed_supplier)=true,其中c_pay_order表示客户支付订单任务,p_payed_supplier表示平台向供应商付款任务。
[0058]
步骤s2、基于所述状态转移图,逐一判断所述petri网络模型是否满足所有所述时态逻辑公式,若均满足,则判断所述可信智能合约模型满足交易完备性,否则,判断所述可信智能合约模型不满足交易完备性,输出所述可信智能合约模型的错误位置。
[0059]
具体的,对可达性质验证包括,验证所述可达性质公式中的条件在所述状态转移图中是否出现,若没有出现,则判断所述petri网络模型不满足所述可达性质公式,输出所述可达性质公式中的条件在所述petri网络模型中对应的库所作为所述错误位置。
[0060]
例如,对于可达性质公式[](-a)=false,若状态转移图中的至少存在一个状态,在该状态中条件a在petri网络模型中对应的库所拥有令牌,即条件a在状态转移图中出现,则判断条件a可达,即petri网络模型满足可达性质公式[](-a)=false;若不存在这样的状态,即条件a对应的库所在所有状态中均不曾拥有令牌,条件a在状态转移图中没有出现,则判断条件a不可达,即petri网络模型不满足可达性质公式[](-a)=false,条件a在petri网络模型中对应的库所就是错误位置,输出该错误位置。
[0061]
针对图3所示的智能合约模型,可达性质公式[](-received_payment)=false的条件received_payment对应的库所在第6个状态拥有令牌,则条件received_payment可达,图3所示petri网络模型满足可达性质公式[](-received_payment)=false。对于可达性质公式[](-payed_supplier)=false,payed_supplier对应的库所在状态转移图的所有状态中均没有出现即均不曾拥有令牌,则payed_supplier不可达,输出payed_supplier对应的库所作为错误位置。
[0062]
按照该方法逐一判断petri网络模型是否满足所有可达性质公式。
[0063]
具体的,对可终结性质验证包括,验证所述可终结性质公式的所有终结条件在所述状态转移图中是否出现,若均没有出现,则判断所述petri网络模型不满足所述可终结性质公式,输出所述可终止性质公式中的所有终结条件在所述petri网络模型中对应的库所作为所述错误位置。
[0064]
例如,对于可终结性质公式《》(a/b)=true,若在状态转移图,终结条件a和终结条件b在petri网络模型中对应的两个库所中的任一个,在至少一个状态中拥有令牌,即终
结条件a或终结条件b在状态转移图中出现,则判断petri网络模型满足可终结性质公式《》(a/b)=true;否则判断petri网络模型不满足可终结性质公式《》(a/b),输出终结条件a和终结条件b在petri网络模型中对应的库所,即为错误位置。例如,图3所示的智能合约模型,可终结性质公式《》(rejected/finished)=true的条件rejected和finished对应的库所在所有状态中都不拥有令牌,图3所示petri网络模型满足可终结性质公式《》(rejected/finished)=true。
[0065]
具体的,对时序性质验证包括,根据时序性质公式判断存在时序关系的两个任务在所述状态转移图中是否符合时序要求,若不符合,判断所述petri网络模型不满足所述时序性质公式,获取所述状态转移图中的违例状态,基于所述违例状态,确定所述petri网络模型的错误变迁作为所述错误位置;所述违例状态包括不符合时序要求的任务在状态转移图中对应的变迁所连接的所有状态。
[0066]
例如,对于时序性质公式[](a=》《》b)=true,任务b一定发生在任务a之后,若状态转移图中,任务a对应的变迁可能发生在任务b对应的变迁之后,则判断petri网络模型不满足所述时序性质公式[](a=》《》b)=true,否则判断petri网络模型满足所述时序性质公式[](a=》《》b)=true。
[0067]
对于不满足的时序性质公式,需要确定具体的错误位置。
[0068]
首先确定状态转移图中的所有违例状态,违例状态包括不符合时序要求的任务在状态转移图中对应的变迁所连接的所有状态。例如petri网络模型不满足时序性质公式[](a=》《》b)=true,则任务a和任务b在态转移图中对应的变迁所连接的所有状态均为违例状态。
[0069]
例如对于时序性质公式[](c_pay_order=》《》p_receive_payment)=true,在状态转移图4中c_pay_order和p_receive_payment对应的变迁仍满足时序要求,例如在状态转移图中p_receive_payment对应的变迁一定发生在c_pay_order对应的变迁之后,则判断petri网络模型满足所述时序性质公式[](c_pay_order=》《》p_receive_payment)=true。而对于时序性质公式p_refund_customer对应的变迁不一定发生在s_deliver_goods对应的变迁之后,因此判断petri网络模型不满足所述时序性质公式[](s_deliver_goods=》《》p_refund_customer)=true,在状态转移图中,s_deliver_goods和p_refund_customer对应的变迁所连接的所有状态均为违例状态,如图4中的第6、7、8、9状态。
[0070]
其次,基于违例状态,确定petri网络模型的错误变迁作为所述错误位置,具体包括:
[0071]
采用路径搜索法搜索状态转移图的所有变迁路径,若变迁路径经过违例状态,则标记该路径为错误路径,若变迁路径没有经过违例状态,则标记该路径为正确路径,分别建立所述状态转移图的正确路径集合和错误路径集合。如图4中路径0-1-2-4不经过违例状态,为正确路径,路径0-1-2-3-5-6-7-8-9经过违例状态,为错误路径。
[0072]
搭建变迁路径错误识别模型,示例性的,变迁路径错误识别模型可为深度神经网络模型,变迁路径错误识别模型的输入层包括n个节点,其中n表示状态转移图中的变迁数量,第一个节点对应状态转移图中的第一个变迁、第二个节点对应状态转移图中的第二个变迁,以此类推,第n个点对应状态转移图中的第n个变迁。输出层包括1个节点,表示变迁路径是否是错误路径,如果是错误路径则输出1,否则输出0。基于所述正确路径集合和错误路
径集合构建训练集,对所述变迁路径错误识别模型进行训练。具体的,对于每条路径,若路径覆盖了第k个变迁,则构建的输入数据的第k个节点为1,否则为0。例如对于路径0-1-2-4,对应的输入数据为[1,1,1,0,

0],0-1-2-4覆盖了第一个变迁c_submit_order、第二个变迁p_receive_order和第三个变迁p_reject_order,对应的输入数据的第1、2和3的节点的数为1,其余节点为0。通过对变迁路径错误识别模型进行训练,获得路径中变迁的覆盖情况与路径是否为错误路径的关系。
[0073]
构建虚拟测试集,所述虚拟测试集中的每条路径只包括一个变迁,将所述虚拟测试集输入训练好的所述变迁路径错误识别模型,获得每个变迁的错误可疑度,错误可疑度最大的变迁为所述智能合约中最可能错误的位置。虚拟测试集为n*n的单位矩阵,包含了n条路径,且每条路径只覆盖一个变迁。将每条虚拟测试路径输入训练好的所述变迁路径错误识别模型后,输出的结果为介于0-1之间的值,表示该虚拟路径中覆盖的变迁发生错误的可疑度,值越大错误可疑度越大。
[0074]
根据虚拟测试路径的错误可疑度,可定位petri网络模型中发生错误的变迁的具体位置,帮助程序开发人员迅速找到错误原因并进行修改。对于复杂的智能交易模型,可快速通过本实施例提供的方法帮助开发人员迅速定位错误原因和位置,并进行修改,从而确保智能交易模型的交易完备性。
[0075]
实施时,对可达性质、可终结性质和时序性质验证可按照任意顺序进行,不限于本实施例提供的顺序,例如先验证是否满足可终结性质公式,再验证是否满足可达性质公式,最后验证是否满足时序性质公式。
[0076]
与现有技术相比,本实施例提供的可信智能合约模型的交易完备性分析方法具有以下有益效果:
[0077]
1、通过根据智能合约的合同文本建立时态逻辑性质公式,基于状态转移图可以验证智能合约模型是否满足所有时态逻辑性质公式,若均满足则说明智能合约模型符合交易完备性,若存在不满足的性质,则根据性质公式可定位具体的错误位置,帮助开发人员迅速对错误进行定位和修改,从而保证智能合约模型上线前的可靠性。
[0078]
2、通过可达性质公式可验证智能合约的条件在所述可信智能合约模型中是否满足,从而验证在智能合约中在某时刻一定发生的条件在可信智能合约模型中可达,从而保证交易过程中的每一个状态都可到达,符合设计要求。
[0079]
3、通过可终结性质公式可验证智能合约的终结条件在所述可信智能合约模型中是否满足,从而验证在智能合约的终结条件在可信智能合约模型中可达,即可信智能合约模型是否可终结,从而保证交易可以正常结束,不会出现交易过程无法结束的情况。
[0080]
4、通过时序性质公式可验证智能合约的中先后发生的任务在可信智能合约模型中是否一定是先后发生,从而验证可信智能合约模型的交易过程的正确性和一致性。通过根据正确路径和错误路径搭建变迁路径错误识别模型,可获得路径中变迁的覆盖情况和路径是否是错误路径的关系,通过将虚拟测试集输入训练好的变迁路径错误识别模型,可以得到每个变迁的错误可疑度,从而对错误进行快速准确的定位。
[0081]
本发明的一个具体的实施例公开了一种可信智能合约模型的交易完备性分析装置,其中所述可信智能合约模型为根据智能合约建立的petri网络模型,所述装置包括:
[0082]
时态逻辑性质公式生成模块:用于生成所述petri网络模型的状态转移图;根据智
能合约的合约文本建立时态逻辑性质公式,所述时态逻辑性质公式包括可达性质公式、可终结性质公式和时序性质公式。其具体生成状态转移图及建立时态逻辑性质公式的过程参考前述实施例,此处不再重述。
[0083]
交易完备性判断模块,用于基于所述状态转移图,逐一判断所述petri网络模型是否满足所有所述时态逻辑公式,若均满足,则判断所述可信智能合约模型满足交易完备性,否则,判断所述可信智能合约模型不满足交易完备性,输出所述可信智能合约模型的错误位置。
[0084]
具体的,所述交易完备性判断模块包括可达性质验证模块,用于验证所述可达性质公式中的条件在所述状态转移图中是否出现,若没有出现,则判断所述petri网络模型不满足所述可达性质公式,输出所述可达性质公式中的条件在所述petri网络模型中对应的库所作为所述错误位置。其具体的验证可达性质的过程参考前述实施例,此处不再重述。
[0085]
具体的,交易完备性判断模块还包括可终结性质验证模块,用于验证所述可终结性质公式的所有终结条件在所述状态转移图中是否出现,若均没有出现,则判断所述petri网络模型不满足所述可终结性质公式,输出所述可终止性质公式中的所有终结条件在所述petri网络模型中对应的库所作为所述错误位置。其具体的验证可终结性质的过程参考前述实施例,此处不再重述。
[0086]
具体的,所述交易完备性判断模块还包括时序性质验证模块,用于根据时序性质公式判断存在时序关系的两个任务在所述状态转移图中是否符合时序要求,若不符合,判断所述petri网络模型不满足所述时序性质公式,获取所述状态转移图中的违例状态,基于所述违例状态,确定所述petri网络模型的错误变迁作为所述错误位置;所述违例状态包括不符合时序要求的任务在状态转移图中对应的变迁所连接的所有状态。其具体的验证时序性质的过程参考前述实施例,此处不再重述。
[0087]
具体的,所述时序性质验证模块通过之下以下步骤,基于所述违例状态,确定所述petri网络模型的错误变迁作为所述错误位置:
[0088]
采用路径搜索法分别建立所述状态转移图的正确路径集合和错误路径集合;所述正确路径为所述状态转移图中不经过违例状态的变迁路径,所述错误路径为所述状态转移图中经过违例状态的变迁路径;
[0089]
搭建变迁路径错误识别模型,基于所述正确路径集合和错误路径集合对所述变迁路径错误识别模型进行训练;
[0090]
构建虚拟测试集,所述虚拟测试集中的每条路径只包括一个变迁,将所述虚拟测试集输入训练好的所述变迁路径错误识别模型,获得每个变迁的错误可疑度,错误可疑度最大的变迁为所述智能合约中最可能错误的位置。
[0091]
其具体的确定petri网络模型的错误变迁的过程参考前述实施例,此处不再重述。
[0092]
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
[0093]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1