CN109493226B - 一种基于区块链的智能合约状态监测系统及监测方法 - Google Patents
一种基于区块链的智能合约状态监测系统及监测方法 Download PDFInfo
- Publication number
- CN109493226B CN109493226B CN201811393275.0A CN201811393275A CN109493226B CN 109493226 B CN109493226 B CN 109493226B CN 201811393275 A CN201811393275 A CN 201811393275A CN 109493226 B CN109493226 B CN 109493226B
- Authority
- CN
- China
- Prior art keywords
- contract
- monitoring
- intelligent contract
- dynamic
- monitor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于区块链的智能合约状态监测系统,包括:合约虚拟机,用于运行智能合约代码,保证智能合约的独立性和隔离性,内置多个监测模块,用于接收合约监测器发送的信息,并在监测点将其对应的监测属性或事件封装成格式化的消息传递给动态事件接收器;合约监测器,包括两个模块:动态事件接收器,负责接收监测智能合约状态所得信息;属性验证器,负责对智能合约状态展开分析,将分析结果向合约虚拟机进行反馈,完成一个合约监测通信循环。还公开了相应的监测方法,动态代码插桩是非侵入性的,可以在内存中将监测模块无侵入的植入合约代码中,实现代码动态插桩。在获得更丰富的状态信息的同时不影响智能合约代码的内容。
Description
技术领域
本发明涉及一种信息技术的监测领域,特别是涉及一种基于区块链的智能合约状态监测系统及监测方法。
背景技术
早在1997年,智能合约的概念就被Nick Szabo提出,发表于“Formalizing andSecuring Relationships on Public Networks”以及“A Formal Language forAnalyzing Contracts”两篇论文中,相对于传统纸质合约,智能合约具有信息化的优势,通过新兴的互联网和相关信息安全技术来加强其适用范围。
智能合约虽然很早就被提出,但实践却一直落后于理论,主要原因是缺乏有效机制来保证满足合约的可观察性、可验证性与自强制性。在区块链技术出现之前,合约方无法直接观察与验证其他合约方的执行动作,只能通过第三方审核各方合约执行的记录,导致合约执行效率低下,并且成本较高。区块链可追踪、不可篡改、安全、可靠以及分布式的特征,可有效满足Nick Szabo对智能合约的基本要求。因此,区块链和智能合约结成天然的联盟,互相配合,发挥重要作用。
由于智能合约通常需要多方交互,涉及多方利益,一旦上链很难更改,因此智能合约对正确性的要求很高,同时智能合约的执行效率也是系统有效运行的前提条件。这些都是基于区块链的智能合约高效运行的必要因素。
目前,为了保证智能合约执行的正确性,通常的做法是:1)合约代码在运行前可正确编译,并可进行用例调试,或是通过更加可靠的形式化方法进行验证;2)合约在运行时出现错误,则需将合约运行立即中断,合约所更改的数据状态进行回滚,系统将运行合约代码与区块链上所保存的合约代码进行对比验证,防止合约被恶意篡改。
然而,当前智能合约正确性的保障方法存在错误修复和性能提升上的不足。无法实时感知合约运行的状态,在合约出现错误时,所提供的错误日志有限,使合约修复复杂化,并且合约只注重正确性而忽视了合约的运行性能,无法得到合约在执行各个阶段的代码运行时间,使得合约性能提升困难化。因此需要进行运行时验证,是一种首先监测系统的运行情况,然后对系统是否符合给定的属性或规范进行判定的验证技术。
发明内容
为了解决这些问题,本发明提出了一种基于区块链的智能合约状态监测系统,包括:
合约虚拟机,用于运行智能合约代码,所述合约虚拟机保证合约的独立性和隔离性,所述合约虚拟机内置多个监测模块,用于接收合约监测器发送的信息,并在监测点将其对应的监测属性或事件封装成格式化的消息传递给动态事件接收器;
合约监测器,所述合约监测器包括两个模块:一个是动态事件接收器,负责接收监测智能合约状态所得信息;一个是属性验证器,负责对智能合约状态展开分析,将分析结果向所述合约虚拟机进行反馈,完成一个合约监测通信循环。
优选的,合约监测器还包括策略器,所述属性验证器将监测属性分析结果发送给策略器,所述策略器根据接收的所述合约监测器的属性监测分析结果动态对合约代码进行插桩点的调整,所述合约虚拟机与所述合约监测器相互通信,在无外界干预的情况下,动态监测智能合约运行状态是否正确,实现对于所述智能合约的智能监测。
本发明的目的还在于提供一种基于区块链的智能合约状态监测方法,包括步骤:
(1)在智能合约运行前操作人员设置所述合约监测器,根据需求完成插桩的预备操作,以便完成合约代码在内存运行中的动态插桩;
(2)在智能合约运行过程中,所述合约虚拟机在监测点将其对应且符合需求的监测属性或事件封装成格式化的消息传递给所述合约监测器;
(3)所述合约监测器接收到消息后,对合约的监测属性进行验证分析,并将验证结果向所述合约虚拟机进行反馈,完成一个合约监测通信循环;
(4)通过多次的迭代通信循环,实现智能合约的动态监测。
优选的,所述方法还包括:在监测系统进行迭代通信和智能合约的所述动态监测过程中,所述策略器根据接收的所述合约监测器的属性监测分析结果动态调整运行代码插桩点,实现所述智能合约的运行时状态信息的智能监测。
优选的,所述方法还包括:对所述智能合约的状态信息进行展示,如果发现智能合约存在执行问题,智能合约执行被中止且及时进行相关处理,避免产生不必要的损失。
采用本发明的有益效果在于:动态代码插桩是非侵入性的,可以在内存中将监测模块无侵入的植入合约运行程序中,实现代码动态插桩。在获得更丰富的状态信息的同时不会影响存储的合约代码的内容。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:
图1为根据本发明实施例的基于区块链的智能合约的状态监测系统结构以及监测方法原理图。
具体实施方式
为了使得本发明能够针对其发明要点更加明显易懂,下面将结合附图和实例对本发明作进一步的说明。在下面的描述中阐述了很多细节和具体实例,提供这些实例是为了能够更透彻地理解本发明,并且能够将本发明完整形象地传达给本领域的技术人员。虽然本发明能够以很多不同于此的描述的其它方式实施,但是本领域技术人员可以在不违背本发明内涵的情况下做相应的推广,因此本发明不受下面公开的具体实例及具体附图所限制。
参见图1,本实施例中,基于区块链的智能合约状态监测系统,包括:合约虚拟机,用于运行智能合约代码,并可保证合约的独立性和隔离性。合约虚拟机内置多个监测模块,用于接收合约监测器发送的信息,并在监测点将其对应的监测属性或事件封装成格式化的消息传递给动态事件接收器;合约监测器,合约监测器包括两个模块:一个是动态事件接收器,负责接收监测智能合约状态所得信息;一个是属性验证器,负责对智能合约状态展开分析,将分析结果向合约虚拟机进行反馈,完成一个合约监测通信循环;合约监测器还包括策略器,属性验证器将监测属性分析结果发送给策略器,策略器根据接收的合约监测器的属性监测分析结果动态对合约代码进行插桩点的调整,合约虚拟机与所述合约监测器相互通信,在无外界干预的情况下,可动态监测智能合约运行状态是否正确,实现对于合约的智能监测。
关于智能合约执行状态的采集方法,通常使用代码插桩的方法。合约的插桩分为静态代码插桩以及动态代码插桩。静态代码插桩对合约的代码具有侵入性,会导致执行合约代码无法与区块链上的合约存档代码进行正确比对;动态代码插桩则是非侵入性的,可以在内存中将监测模块无侵入的植入合约运行程序中,实现代码动态插桩。动态插桩在获得更丰富的状态信息的同时不会影响存储的合约代码的内容,只是在运行时插桩。本智能合约状态监测方法选用动态插桩方式,包括以下步骤:
(1)在智能合约运行前操作人员设置合约监测器,根据需求完成插桩的预备操作,以便完成合约代码在内存运行中的动态插桩;
(2)在智能合约运行过程中,合约虚拟机在监测点将其对应且符合需求的监测属性或事件封装成格式化的消息传递给合约监测器;
(3)合约监测器接收到消息后,对合约的监测属性进行验证分析,并将验证结果向合约虚拟机进行反馈,完成一个合约监测通信循环;
(4)通过多次的迭代通信循环,可实现智能合约的动态监测;
(5)对于设置策略器的监测系统,在监测系统进行迭代通信和智能合约动态监测过程中,策略器根据接收的合约监测器属性监测分析结果动态调整运行代码插桩点,实现智能合约的运行时状态信息的智能监测;
(6)对智能合约的状态信息进行展示,如果发现智能合约存在执行问题,智能合约执行被中止且及时进行相关处理,避免产生不必要的损失。
采用本实施例的应用场景,动态代码插桩是非侵入性的,可以在内存中将监测模块无侵入的植入合约运行程序中,实现代码动态插桩。在获得更丰富的状态信息的同时不会影响存储的智能合约代码的内容。虽然本发明已经参考特定的说明性实施例进行了描述,但是不会受到这些实施例的限定而仅仅受到附加权利要求的限定。本领域技术人员应当理解可以在不偏离本发明的保护范围和精神的情况下对本发明的实施例能够进行改动和修改。
Claims (4)
1.一种基于区块链的智能合约状态监测系统,其特征在于包括:
合约虚拟机,用于运行智能合约代码,所述合约虚拟机保证所述智能合约的独立性和隔离性,所述合约虚拟机内置多个监测模块,用于接收合约监测器发送的信息,并在监测点将其对应的监测属性或事件封装成格式化的消息传递给动态事件接收器;
合约监测器,所述合约监测器包括两个模块:一个是动态事件接收器,负责接收监测智能合约状态所得信息;一个是属性验证器,负责对智能合约状态展开分析,将分析结果向所述合约虚拟机进行反馈,完成一个合约监测通信循环;
所述合约监测器还包括策略器,所述属性验证器将监测属性分析结果发送给所述策略器,所述策略器根据接收的所述合约监测器的属性监测分析结果动态对合约代码进行插桩点的调整,所述合约虚拟机与所述合约监测器相互通信,在无外界干预的情况下,动态监测智能合约运行状态是否正确,实现对于所述智能合约的智能监测。
2.一种使用如权利要求1所述的基于区块链的智能合约状态监测系统执行的基于区块链的智能合约状态监测方法,其特征在于包括步骤:
(1)在智能合约运行前操作人员设置所述合约监测器,根据需求完成插桩的预备操作,以便完成合约代码在内存运行中的动态插桩;
(2)在智能合约运行过程中,所述合约虚拟机在监测点将其对应且符合需求的监测属性或事件封装成格式化的消息传递给所述合约监测器;
(3)所述合约监测器接收到消息后,对合约的监测属性进行验证分析,并将验证结果向所述合约虚拟机进行反馈,完成一个合约监测通信循环;
(4)通过多次的迭代通信循环,实现智能合约的动态监测。
3.根据权利要求2所述的一种基于区块链的智能合约状态监测方法,其特征在于所述方法还包括:在所述监测系统进行迭代通信和智能合约的所述动态监测过程中,所述策略器根据接收的所述合约监测器的属性监测分析结果动态调整运行代码插桩点,实现所述智能合约的运行时状态信息的智能监测。
4.根据权利要求2所述的一种基于区块链的智能合约状态监测方法,其特征在于所述方法还包括:对所述智能合约的状态信息进行展示,如果发现智能合约存在执行问题,智能合约执行被中止且及时进行相关处理,避免产生损失。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811393275.0A CN109493226B (zh) | 2018-11-21 | 2018-11-21 | 一种基于区块链的智能合约状态监测系统及监测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811393275.0A CN109493226B (zh) | 2018-11-21 | 2018-11-21 | 一种基于区块链的智能合约状态监测系统及监测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109493226A CN109493226A (zh) | 2019-03-19 |
CN109493226B true CN109493226B (zh) | 2019-07-16 |
Family
ID=65697272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811393275.0A Active CN109493226B (zh) | 2018-11-21 | 2018-11-21 | 一种基于区块链的智能合约状态监测系统及监测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109493226B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110263536B (zh) * | 2019-06-21 | 2024-05-24 | 深圳前海微众银行股份有限公司 | 一种区块链中智能合约的监控方法及装置 |
CN111680290B (zh) * | 2020-06-02 | 2023-04-11 | 浙江大学 | 一种基于以太坊虚拟机的代码插桩框架系统 |
CN112445691B (zh) * | 2020-12-02 | 2024-05-28 | 中国建设银行股份有限公司 | 非侵入式智能合约性能检测方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598549A (zh) * | 2016-12-08 | 2017-04-26 | 天津米游科技有限公司 | 一种基于区块链的智能合约系统及实现方法 |
CN107507091A (zh) * | 2017-09-07 | 2017-12-22 | 复旦大学 | 基于区块链和智能合约的增强型数据权益保护方法 |
CN108536445A (zh) * | 2018-03-28 | 2018-09-14 | 成都链安科技有限公司 | 面向区块链智能合约的高度自动化形式化验证系统及方法 |
-
2018
- 2018-11-21 CN CN201811393275.0A patent/CN109493226B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598549A (zh) * | 2016-12-08 | 2017-04-26 | 天津米游科技有限公司 | 一种基于区块链的智能合约系统及实现方法 |
CN107507091A (zh) * | 2017-09-07 | 2017-12-22 | 复旦大学 | 基于区块链和智能合约的增强型数据权益保护方法 |
CN108536445A (zh) * | 2018-03-28 | 2018-09-14 | 成都链安科技有限公司 | 面向区块链智能合约的高度自动化形式化验证系统及方法 |
Non-Patent Citations (1)
Title |
---|
基于区块链基于区块链、智能合约和物联网的供应链原型系统;叶小榕等;《科技导报》;20171231(第23期);62-69 |
Also Published As
Publication number | Publication date |
---|---|
CN109493226A (zh) | 2019-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109493226B (zh) | 一种基于区块链的智能合约状态监测系统及监测方法 | |
Sarma et al. | Automatic test case generation from UML models | |
Hägg | A sentinel approach to fault handling in multi-agent systems | |
CN111459821B (zh) | 一种基于TestNG的软件自动化单元测试方法 | |
CN105141441B (zh) | 一种ip网络图形化配置的方法 | |
CN103077111B (zh) | 一种持续集成失败用例的定位方法及系统 | |
CN102014016A (zh) | 一种网络协议缺陷测试系统及方法 | |
CN104794057A (zh) | 一种交叉事件自动化测试方法和装置 | |
CN112306889A (zh) | 充电桩的测试方法、装置、存储介质及处理器 | |
CN106330599A (zh) | Android应用程序网络流量多线程采集系统及方法 | |
CN109542589B (zh) | 一种面向区块链智能合约的运行无损的监测系统及方法 | |
CN105095087A (zh) | 一种基于权限操作的软件测试系统和方法 | |
CN102111801B (zh) | 第三代移动通信网网络管理接口的测试方法及系统 | |
Cao et al. | Online testing framework for web services | |
EP2908498B1 (en) | Integrated application generating system and method for internet of things terminal | |
CN101303646B (zh) | 基于可执行元语言的电信领域建模方法 | |
Caracas | From business process models to pervasive applications: Synchronization and optimization | |
CN110519107A (zh) | 城域网电路扩容方法及装置 | |
Cavalli et al. | Webmov: A dedicated framework for the modelling and testing of web services composition | |
US12135640B2 (en) | General blockchain performance evaluation method based on dynamic proxy and smart contract | |
Che et al. | Scenario-based architectural design decisions documentation and evolution | |
Micalizio et al. | On-line monitoring of plan execution: A distributed approach | |
CN104158903B (zh) | Oam协议栈编码方法及系统 | |
CN113110999A (zh) | 基于轻量级测试框架的智能电能表软件白盒交叉测试方法 | |
Vain et al. | Automatic distribution of local testers for testing distributed systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |