CN109493226A - 一种基于区块链的智能合约状态监测系统及监测方法 - Google Patents

一种基于区块链的智能合约状态监测系统及监测方法 Download PDF

Info

Publication number
CN109493226A
CN109493226A CN201811393275.0A CN201811393275A CN109493226A CN 109493226 A CN109493226 A CN 109493226A CN 201811393275 A CN201811393275 A CN 201811393275A CN 109493226 A CN109493226 A CN 109493226A
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.)
Granted
Application number
CN201811393275.0A
Other languages
English (en)
Other versions
CN109493226B (zh
Inventor
丁毅
靳军
周丽
李洁
唐恒亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Wuzi University
Original Assignee
Beijing Wuzi University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Wuzi University filed Critical Beijing Wuzi University
Priority to CN201811393275.0A priority Critical patent/CN109493226B/zh
Publication of CN109493226A publication Critical patent/CN109493226A/zh
Application granted granted Critical
Publication of CN109493226B publication Critical patent/CN109493226B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; 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 (5)

1.一种基于区块链的智能合约状态监测系统,其特征在于包括:
合约虚拟机,用于运行智能合约代码,所述合约虚拟机保证所述智能合约的独立性和隔离性,所述合约虚拟机内置多个监测模块,用于接收合约监测器发送的信息,并在监测点将其对应的监测属性或事件封装成格式化的消息传递给动态事件接收器;
合约监测器,所述合约监测器包括两个模块:一个是动态事件接收器,负责接收监测智能合约状态所得信息;一个是属性验证器,负责对智能合约状态展开分析,将分析结果向所述合约虚拟机进行反馈,完成一个合约监测通信循环。
2.根据权利要求1所述的一种基于区块链的智能合约状态监测系统,其特征在于:所述合约监测器还包括策略器,所述属性验证器将监测属性分析结果发送给所述策略器,所述策略器根据接收的所述合约监测器的属性监测分析结果动态对合约代码进行插桩点的调整,所述合约虚拟机与所述合约监测器相互通信,在无外界干预的情况下,动态监测智能合约运行状态是否正确,实现对于所述智能合约的智能监测。
3.一种使用如权利要求1-2任一所述的基于区块链的智能合约状态监测系统执行的基于区块链的智能合约状态监测方法,其特征在于包括步骤:
(1)在智能合约运行前操作人员设置所述合约监测器,根据需求完成插桩的预备操作,以便完成合约代码在内存运行中的动态插桩;
(2)在智能合约运行过程中,所述合约虚拟机在监测点将其对应且符合需求的监测属性或事件封装成格式化的消息传递给所述合约监测器;
(3)所述合约监测器接收到消息后,对合约的监测属性进行验证分析,并将验证结果向所述合约虚拟机进行反馈,完成一个合约监测通信循环;
(4)通过多次的迭代通信循环,实现智能合约的动态监测。
4.根据权利要求3所述的一种基于区块链的智能合约状态监测方法,其特征在于所述方法还包括:在所述监测系统进行迭代通信和智能合约的所述动态监测过程中,所述策略器根据接收的所述合约监测器的属性监测分析结果动态调整运行代码插桩点,实现所述智能合约的运行时状态信息的智能监测。
5.根据权利要求3所述的一种基于区块链的智能合约状态监测方法,其特征在于所述方法还包括:对所述智能合约的状态信息进行展示,如果发现智能合约存在执行问题,智能合约执行被中止且及时进行相关处理,避免产生损失。
CN201811393275.0A 2018-11-21 2018-11-21 一种基于区块链的智能合约状态监测系统及监测方法 Active CN109493226B (zh)

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 true CN109493226A (zh) 2019-03-19
CN109493226B 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110263536A (zh) * 2019-06-21 2019-09-20 深圳前海微众银行股份有限公司 一种区块链中智能合约的监控方法及装置
CN111680290A (zh) * 2020-06-02 2020-09-18 浙江大学 一种基于以太坊虚拟机的代码插桩框架系统
CN112445691A (zh) * 2020-12-02 2021-03-05 中国建设银行股份有限公司 非侵入式智能合约性能检测方法和装置
CN110263536B (zh) * 2019-06-21 2024-05-24 深圳前海微众银行股份有限公司 一种区块链中智能合约的监控方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
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 成都链安科技有限公司 面向区块链智能合约的高度自动化形式化验证系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
叶小榕等: "基于区块链基于区块链、智能合约和物联网的供应链原型系统", 《科技导报》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110263536A (zh) * 2019-06-21 2019-09-20 深圳前海微众银行股份有限公司 一种区块链中智能合约的监控方法及装置
WO2020253476A1 (zh) * 2019-06-21 2020-12-24 深圳前海微众银行股份有限公司 一种区块链中智能合约的监控方法及装置
CN110263536B (zh) * 2019-06-21 2024-05-24 深圳前海微众银行股份有限公司 一种区块链中智能合约的监控方法及装置
CN111680290A (zh) * 2020-06-02 2020-09-18 浙江大学 一种基于以太坊虚拟机的代码插桩框架系统
CN111680290B (zh) * 2020-06-02 2023-04-11 浙江大学 一种基于以太坊虚拟机的代码插桩框架系统
CN112445691A (zh) * 2020-12-02 2021-03-05 中国建设银行股份有限公司 非侵入式智能合约性能检测方法和装置
CN112445691B (zh) * 2020-12-02 2024-05-28 中国建设银行股份有限公司 非侵入式智能合约性能检测方法和装置

Also Published As

Publication number Publication date
CN109493226B (zh) 2019-07-16

Similar Documents

Publication Publication Date Title
CN103699489B (zh) 一种基于知识库的软件远程故障诊断与修复方法
CN111459821B (zh) 一种基于TestNG的软件自动化单元测试方法
Hägg A sentinel approach to fault handling in multi-agent systems
CN109493226B (zh) 一种基于区块链的智能合约状态监测系统及监测方法
CN113014449B (zh) 一种用电信息采集系统的本地通信协议压力测试方法及系统
CN105141441B (zh) 一种ip网络图形化配置的方法
CN102014016A (zh) 一种网络协议缺陷测试系统及方法
CN110245088A (zh) 一种基于Jenkins的缺陷自动验证系统及验证方法
CN107689982A (zh) 多数据源数据同步方法、应用服务器及计算机可读存储介质
CN109542589B (zh) 一种面向区块链智能合约的运行无损的监测系统及方法
Kreitz et al. A proof environment for the development of group communication systems
CN102111801B (zh) 第三代移动通信网网络管理接口的测试方法及系统
EP2908498B1 (en) Integrated application generating system and method for internet of things terminal
CN101303646B (zh) 基于可执行元语言的电信领域建模方法
CN112306889B (zh) 充电桩的测试方法、装置、存储介质及处理器
CN107329809A (zh) 一种面向多数据源的分布式事务处理方法及系统
Caracas From business process models to pervasive applications: Synchronization and optimization
CN105095087A (zh) 一种基于权限操作的软件测试系统和方法
CN110519107A (zh) 城域网电路扩容方法及装置
De Almeida et al. A framework for testing peer-to-peer systems
CN111831698B (zh) 一种数据稽核方法、系统和电子设备
CN104158903B (zh) Oam协议栈编码方法及系统
CN107729184A (zh) 一种系统组件服务自愈方法
CN113110999A (zh) 基于轻量级测试框架的智能电能表软件白盒交叉测试方法
CN112511213A (zh) 基于日志分析的缺陷定位方法及系统

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