CN111581047B - 一种针对智能合约行为的监管方法 - Google Patents

一种针对智能合约行为的监管方法 Download PDF

Info

Publication number
CN111581047B
CN111581047B CN202010211697.2A CN202010211697A CN111581047B CN 111581047 B CN111581047 B CN 111581047B CN 202010211697 A CN202010211697 A CN 202010211697A CN 111581047 B CN111581047 B CN 111581047B
Authority
CN
China
Prior art keywords
supervision
rules
intelligent contract
rule
fact
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
Application number
CN202010211697.2A
Other languages
English (en)
Other versions
CN111581047A (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.)
Boya Chain Beijing Technology Co ltd
Peking University
Original Assignee
Boya Chain Beijing Technology Co ltd
Peking 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 Boya Chain Beijing Technology Co ltd, Peking University filed Critical Boya Chain Beijing Technology Co ltd
Priority to CN202010211697.2A priority Critical patent/CN111581047B/zh
Publication of CN111581047A publication Critical patent/CN111581047A/zh
Application granted granted Critical
Publication of CN111581047B publication Critical patent/CN111581047B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Abstract

本发明提供一种针对智能合约行为的监管方法,涉及区块链智能合约技术领域。该方法包括部署与执行两个阶段;部署阶段将现实中的监管规则和代监管主体的状态转变为推理形式系统中的数字化监管规则,并存储到数字化监管规则库;在智能合约中,将每一类待监管主体的每一种待监管操作都与一个监管标识符绑定;并为每个监管标识符编写监管脚本。执行阶段获取智能合约中的所有的监管标识符,得到代监管主体实例与行为实例;根据部署阶段确定的监管标识符与规则集和事实集的绑定关系,将与监管标识符相关的规则与事实加载进监管引擎;监管引擎执行每一个监管标识符对应的监管脚本,并最终给出本次智能合约调用的监管结果,实现对智能合约行为的监管。

Description

一种针对智能合约行为的监管方法
技术领域
本发明涉及区块链智能合约技术领域,尤其涉及一种针对智能合约行为的监管方法。
背景技术
自区块链技术作为数字货币的实现技术被提出后,因其去中心化、不可篡改、全局状态等优良特性,逐步被应用于金融服务、公共服务等各个领域。伴随着服务场景复杂化和服务灵活性的要求,越来越多的数字资产开始出现,智能合约中的逻辑也变得更加复杂。智能合约的执行过程中,数字资产的创造、流通、销毁以及对账本数据的修改等行为需要服从一系列特定场景下的监管规则,才能保证服务的安全性与合法性。对智能合约行为进行监管,在许多领域都有着极为重要的意义。例如,在金融领域,对于数字资产流通行为的监管将有助于进行事前反洗钱等监管措施,保证金融服务的合法性,在数据共享领域,通过监管对链上数据的读写操作,可以有效保障数据安全。
对智能合约行为进行监管,要将现实中制定的监管规则应用于监管智能合约的行为,需要建立数字化监管规则库,并将监管模块嵌入到区块链智能合约模块,最终完成链上、事前监管。智能合约的待监管主体即为链上账户的地址,待监管行为即为对于全局账本的操作。目前最常见的支持加载数字规则并利用数字规则判断主体行为合法性的编程语言是Datalog。它是一种基于推理的逻辑编程语言,支持基于事实和规则进行自动推理和递归查询。通过使用Datalog语言,可以完成普通场景下基于简单规则的逻辑推理和查询任务。但在智能合约行为的监管领域,Datalog存在以下不足:(1)Datalog不能与智能合约进行交互,不能支持链上、事前、事中的自动化监管。(2)智能合约行为的监管规则是状态相关的,其状态受到主体历史行为与当前状态的影响,而Datalog难以支持状态相关的动态规则。(3)Datalog不支持外挂数据库并与数据库进行交互,这使得Datalog难以支持大规模状态与规则的查询存储和更新。
发明内容
本发明要解决的技术问题是针对上述现有技术的不足,提供一种针对智能合约行为的监管方法,以支持智能合约执行的自动合规和状态依赖规则的变化,最终完成对智能合约行为的链上、事前、有状态监管。
为解决上述技术问题,本发明所采取的技术方案是:一种针对智能合约行为的监管方法,包括部署与执行两个阶段;
所述部署阶段包括以下步骤:
步骤1、将监管规则与主体状态数字化为监管规则,并存储到数字化监管规则库;
将现实中的监管规则和代监管主体的状态转变为推理形式系统中的数字化监管规则,并存储到数字化监管规则库;
所述推理形式系统选取事实集与规则集R后,基于分离规则进行推理,通过计算推理待查询内容Q是否为规则集R中内定理来判断待查询内容Q是否可以由当前事实集与规则集推出;如果待查询内容Q可以由当前事实集与规则集推出,即在当前状态下,待查询内容Q为真;反之,如果待查询内容Q不是规则集R中内定理,则在当前状态下,不能判断待查询内容Q为真;所述推理形式系统由符号系统、基本语法项和语句构成;
所述推理形式系统的符号系统包括英文字符串,地址串,数字和辅助符号;所述辅助符号包括点号,问号,感叹号,左箭头,左右括号和数字运算符号;
所述推理形式系统的基本语法项包括元素和谓词;所述元素包括变量与常量,其中常量由小写字母开头的英文字符串或数字组成,变量由大写字母开头的英文字符串表示,变量的含义是‘任意常量’;谓词用于描述元素之间的关系,包括一个谓词描述符,一对括号,一个或多个由逗号分隔的元素;所述谓词描述符为英文字符串,表示元素的性质或关系;所述谓词还支持带有数学运算符号的形式;
所述推理形式系统包括事实和规则两种语句类型:
事实:事实语句以英文点号结尾,语句中包含一个谓词或者一个元素,将一个谓词或一个元素声明为一个已有事实,将这个谓词或元素加入到现有事实集中,用来推导和产生更多的事实;
规则:规则是含有左箭头(<-),并以英文点号结尾的语句,用以表示利用已有事实生成新事实的方法;规则以左箭头为界分为前后两个部分,前一部分为目标,后一部分为条件,目标是一个事实,条件则是由用逗号间隔的一个或多个事实构成;
所述数字化监管规则库中存储的全部都是事实语句与规则语句,用于表示某一地址对应的账户具有的状态和特殊规则,维护所有的规则与事实,对外提供查询接口,用户通过查询接口,可以获取任何一个特定主体对应的状态,以及任何一个监管标识符所绑定的监管规则集与状态集;
步骤2、在智能合约中,将每一类待监管主体的每一种待监管操作都与一个监管标识符绑定;并为每个智能合约监管标识符编写监管脚本;所述监管脚本中的语句为规则、事实、外部调用或查询语句;在一次智能合约的调用过程中,语言的解释器将提取出智能合约中的监管标识符,分析其上下文环境,确定待监管的主体与行为,并通过监管引擎执行监管脚本,取得与该标识符绑定的规则集与状态集,并给出判断结果以完成监管功能。
所述执行阶段包括以下步骤:
步骤S1、读取智能合约内容,获取智能合约中的所有的监管标识符,分析出代监管主体类型与行为类型;并获取本次调用中的上下文环境,分析出本次调用中的代监管主体实例与行为实例;
步骤S2、根据部署阶段确定的监管标识符与规则集和事实集的绑定关系,将与监管标识符相关的规则与事实加载进监管引擎;
所述监管引擎为一种推理执行工具,其通过查询语句判断某一主体的行为是否合规;所述查询语句以问号结尾,语句中包含一个谓词或元素;所述查询是指利用已有事实和规则,判断能否推导出待查询事实,利用分离规则进行推导,并根据结果返回True或False;所述监管引擎以Datalog语言为后端,前端通过字符串正则匹配与替换,将数字化监管规则库中的规则与事实以及查询语句转化为Datalog引擎执行的语句;Datalog引擎将根据转化后的规则和事实进行推理,完成查询操作,并返回查询结果;
监管引擎的前端还支持外部调用语句;所述外部调用语句以感叹号结尾,语句中包含一个地址串,该地址串对应于区块链上的相应账户地址,对应某个待监管主体;外部调用语句将会与数字化监管规则库进行交互,查询与主体对应的账户地址的内容;外部调用语句将取回地址串对应的数据库单元中含有的所有事实和规则,即该主体当前具有的所有状态与所有其需要遵循的特殊监管规则,并将他们加入到当前的事实集和规则集中;
步骤S3、监管引擎执行每一个监管标识符对应的监管脚本;监管引擎根据监管标识符对应的监管脚本中的语句,执行外部调用、事实声明、规则声明和查询操作;在外部调用时,监管引擎与数字化监管规则库进行交互,获取当前待监管主体的状态和特殊规则组装出之后执行所需的所有规则集与事实集;在进行事实或规则声明操作时,将相应的事实与规则加入到现有的规则集与事实集;在进行查询操作时,利用Datalog引擎,在现有的事实集与规则集的基础上,进行推理演算,并给出查询结果;
步骤S4、监管引擎根据每一个监管标识符对应的监管脚本的查询结果,返回该主体的行为是否合规,给出监管结果;
步骤S5、给出本次智能合约调用的监管结果;智能合约调用过程中,如果监管引擎在执行所有监管标识符对应的监管脚本都给出通过的结果,则判断本次智能合约的调用过程顺利完成,否则,则判断本次智能合约的调用存在违规行为。
采用上述技术方案所产生的有益效果在于:本发明提供的一种针对智能合约行为的监管方法,该方法支持链上、事前、有状态的监管,同时有模块化、可复用的特性,提高智能合约行为的监管效率和灵活性,可以满足不同场景下的监管需求。
附图说明
图1为本发明实施例提供的待监管Solidity智能合约的待监管transfer()函数代码示意图;
图2为本发明实施例提供的一种针对智能合约行为的监管方法执行阶段的流程图;
图3为本发明实施例提供的智能合约中由#reg关键词声明的函数标识符对应的监管脚本代码示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本实施例以图1所示的的Solidity智能合约为例,采用本发明的针对智能合约行为的监管方法对该智能合约行为进行监管。
一种针对智能合约行为的监管方法,包括部署与执行两个阶段;
所述部署阶段包括以下步骤:
步骤1、将监管规则与主体状态数字化为监管规则,并存储到数字化监管规则库;
将现实中的监管规则和代监管主体的状态转变为推理形式系统中的数字化监管规则,并存储到数字化监管规则库;本步骤中的数字化监管规则属于一种特殊的推理形式系统,通过将现实中的监管规则转化为该推理形式系统中的规则,可以将现实中各种规则转化为统一的形式,使其可以被监管引擎直接执行。这个推理形式系统是良定义的,该推理形式系统与Datalog所使用的推理形式系统具有相同的公理集、推理规则,在语句的形式定义上有所不同,该推理形式系统定义如下:
所述推理形式系统选取事实集与规则集R后,基于分离规则进行推理,通过计算推理待查询内容Q是否为规则集R中内定理来判断待查询内容Q是否可以由当前事实集与规则集推出;如果待查询内容Q可以由当前事实集与规则集推出,即在当前状态下,待查询内容Q为真;反之,如果待查询内容Q不是规则集R中内定理,则在当前状态下,不能判断待查询内容Q为真;所述推理形式系统由符号系统、基本语法项和语句构成;
所述推理形式系统的符号系统包括英文字符串,地址串,数字和辅助符号;所述辅助符号包括点号,问号,感叹号,左箭头,左右括号和数字运算符号;
所述推理形式系统的基本语法项包括元素和谓词;所述元素包括变量与常量,其中常量由小写字母开头的英文字符串或数字组成,变量由大写字母开头的英文字符串表示,变量的含义是‘任意常量’;谓词用于描述元素之间的关系,包括一个谓词描述符,一对括号,一个或多个由逗号分隔的元素;所述谓词描述符为英文字符串,形如descriptor(x1,x2,x3,…,xn),表示元素的性质或关系;例如friend(alice,bob),含义为常量alice与常量bob符合谓词描述符friend所代表的关系,hasmoney(alice)代表alice拥有hasmoney所代表的性质。谓词中的元素也可以有多个变量,例如friend(X,a),意为任意一个常量都与a存在谓词描述符friend代表的关系。另外,为了更高的灵活性和便捷性,所述谓词还支持带有数学运算符号的形式,形如:alice=1等。
所述推理形式系统包括事实和规则两种语句类型:
事实:事实语句以英文点号结尾,语句中包含一个谓词或者一个元素,将一个谓词或一个元素声明为一个已有事实,将这个谓词或元素加入到现有事实集中,用来推导和产生更多的事实;例如:friend(alice,bob).语句将alice和bob具有friend这一关系加入到了事实集中,这一事实可以用来推出更多的事实。
规则:规则是含有左箭头(<-),并以英文点号结尾的语句,用以表示利用已有事实生成新事实的方法;规则以左箭头为界分为前后两个部分,前一部分为目标,后一部分为条件,目标是一个事实,条件则是由用逗号间隔的一个或多个事实构成,意为同时具备了这些事实就可以推出前一部分中声明的目标事实。例如canTransfer(X,Y)<-friend(X,Y),hasmoney(X).意思是只要X,Y之间有friend所述关系,并且X拥有hasmoney性质就可以推出canTransfer(X,Y)这一事实。
所述数字化监管规则库中存储的全部都是事实语句与规则语句,用于表示某一地址对应的账户具有的状态和特殊规则,维护所有的规则与事实,对外提供查询接口,用户通过查询接口,可以获取任何一个特定主体对应的状态,以及任何一个监管标识符所绑定的监管规则集与状态集;
步骤2、在智能合约中,将每一类待监管主体的每一种待监管操作都与一个监管标识符绑定;并为每个智能合约监管标识符编写监管脚本;所述监管脚本中的语句为规则、事实、外部调用或查询语句;在一次智能合约的调用过程中,语言的解释器将提取出智能合约中的监管标识符,分析其上下文环境,确定待监管的主体与行为,并通过监管引擎执行监管脚本,取得与该标识符绑定的规则集与状态集,并给出判断结果以完成监管功能。
所述执行阶段如图2所示包括以下步骤:
步骤S1、读取智能合约内容,获取智能合约中的所有的监管标识符,分析出代监管主体类型与行为类型;并获取本次调用中的上下文环境,分析出本次调用中的代监管主体实例与行为实例;
步骤S2、根据部署阶段确定的监管标识符与规则集和事实集的绑定关系,将与监管标识符相关的规则与事实加载进监管引擎;
所述监管引擎为一种推理执行工具,其通过查询语句判断某一主体的行为是否合规;所述查询语句以问号结尾,语句中包含一个谓词或元素;所述查询是指利用已有事实和规则,判断能否推导出待查询事实,利用分离规则进行推导,并根据结果返回True或False;所述监管引擎以Datalog语言为后端,前端通过字符串正则匹配与替换,将数字化监管规则库中的规则与事实以及查询语句转化为Datalog引擎执行的语句;Datalog引擎将根据转化后的规则和事实进行推理,完成查询操作,并返回查询结果;
为了支持状态依赖的动态监管规则以及大规模的监管,监管引擎的前端还支持一种特殊格式的语句,即外部调用语句;所述外部调用语句以感叹号结尾,语句中包含一个地址串,该地址串对应于区块链上的相应账户地址,对应某个待监管主体,例如0xCAd9443B9b711456c0ED941aB419a518A58b0D3d!。外部调用语句将会与数字化监管规则库进行交互,查询与主体对应的账户地址的内容;外部调用语句将取回地址串对应的数据库单元中含有的所有事实和规则,即该主体当前具有的所有状态与所有其需要遵循的特殊监管规则,并将他们加入到当前的事实集和规则集中,作为后续判断的依据。通过外部调用,可以实现对每一个主体的特殊化监管,增大监管的灵活性和效率,并支持依赖状态的动态监管规则。
步骤S3、监管引擎执行每一个监管标识符对应的监管脚本;监管引擎根据监管标识符对应的监管脚本中的语句,执行外部调用、事实声明、规则声明和查询操作;在外部调用时,监管引擎与数字化监管规则库进行交互,获取当前待监管主体的状态和特殊规则组装出之后执行所需的所有规则集与事实集;在进行事实或规则声明操作时,将相应的事实与规则加入到现有的规则集与事实集;在进行查询操作时,利用Datalog引擎,在现有的事实集与规则集的基础上,进行推理演算,并给出查询结果;
步骤S4、监管引擎根据每一个监管标识符对应的监管脚本的查询结果,返回该主体的行为是否合规,给出监管结果;
步骤S5、给出本次智能合约调用的监管结果;智能合约调用过程中,如果监管引擎在执行所有监管标识符对应的监管脚本都给出通过的结果,则判断本次智能合约的调用过程顺利完成,否则,则判断本次智能合约的调用存在违规行为。
本实施例中,图1中待监管的Solidity智能合约,实现了一个简单的转账函数,在经过一些更改和检查后,智能合约调用Transfer函数进行转账,转账过程需要监管。在本智能合约中#reg后声明了监管标识符;本实施例中,设定监管规则为:转账方与收款方必须是朋友关系,且转账方必须处于可转账状态,收款方必须处于可接收状态,单次转账的value不能超过500,且一天内转出不得超过1000。
本实施例中,图1中由#reg声明的监管标识符对应的监管脚本如图3所示,这个监管脚本由前述4种语句构成组成,如果当前的查询语句待查询的事实可以由当前的规则集和事实集推出,则意味着当前状态下,待查询语句valid?能够由监管规则与状态推导出,则监管引擎将会给出合规的判定。否则,这一次智能合约的调用将被判定为违规。
在本实施例中,一笔交易调用了智能合约,采用本发明的监管方法将首先提取出监管标识符,并获得图1中的Transfer()函数中参数:
0xCAd9443B9b711456c0ED941aB419a518A58b0D3d,0xE09B4a8624b53Ce3B61bf66aC36fC0B5a770F96b,350。
该参数的含义是地址为0xCAd9443B9b711456c0ED941aB419a518A58b0D3d的账户希望向地址为0xE09B4a8624b53Ce3B61bf66aC36fC0B5a770F96b的账户转账350,将其作为待监管的主体与行为。对于这一笔交易,监管引擎将执行regtransfer()函数中的语句,将图2中的各个变量分别用这3个参数代替。本实施例假设在当前时刻,数字化监管规则库中的两个地址中的内容如表1所示:
表1数字化监管规则库中的两个地址中的内容
Figure BDA0002423042410000071
在执行过程中,监管引擎首先将进行两次外部调用,将两个地址对应的内容加入当前已有的事实集与规则集,在这个过程中,将获得监管所需的各种状态,包括今日转账剩余额度等。之后监管引擎将继续执行,在执行过程中,监管引擎会将会不断成功推出待查询结果,即意味着待查询结果符合规则,监管引擎将会继续执行下一条语句。当执行到valid?时,监管引擎将尝试推导enoughAmount(from).但因为数字化监管规则库中的状态表明,地址0xCAd9443B9b711456c0ED941aB419a518A58b0D3d的今日剩余转出限额只有235,监管引擎将无法推断出enoughAmount(from).这一结果,进而不能推断出valid.这一结果,因此监管引擎将结束执行并提示没有通过该监管标识符对应的监管,进而判断这次智能合约的调用中没有通过该监管标识符对应的监管,并报告本次智能合约调用违规,成功阻止单日超限额转账,从而对智能合约行为进行监管,并完成对数字资产的保护和监管。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。

Claims (6)

1.一种针对智能合约行为的监管方法,其特征在于:包括部署与执行两个阶段;
所述部署阶段包括以下步骤:
步骤1、将监管规则与主体状态数字化为监管规则,并存储到数字化监管规则库;
将现实中的监管规则和代监管主体的状态转变为推理形式系统中的数字化监管规则,并存储到数字化监管规则库;
所述推理形式系统选取事实集与规则集R后,基于分离规则进行推理,通过计算推理待查询内容Q是否为规则集R中内定理来判断待查询内容Q是否可以由当前事实集与规则集推出;如果待查询内容Q可以由当前事实集与规则集推出,即在当前状态下,待查询内容Q为真;反之,如果待查询内容Q不是规则集R中内定理,则在当前状态下,不能判断待查询内容Q为真;所述推理形式系统由符号系统、基本语法项和语句构成;
步骤2、在智能合约中,将每一类待监管主体的每一种待监管操作都与一个监管标识符绑定;并为每个智能合约监管标识符编写监管脚本;
所述执行阶段包括以下步骤:
步骤S1、读取智能合约内容,获取智能合约中的所有的监管标识符,分析出代监管主体类型与行为类型;并获取本次调用中的上下文环境,分析出本次调用中的代监管主体实例与行为实例;
步骤S2、根据部署阶段确定的监管标识符与规则集和事实集的绑定关系,将与监管标识符相关的规则与事实加载进监管引擎;
步骤S3、监管引擎执行每一个监管标识符对应的监管脚本;
步骤S4、监管引擎根据每一个监管标识符对应的监管脚本的查询结果,返回该主体的行为是否合规,给出监管结果;
步骤S5、给出本次智能合约调用的监管结果;智能合约调用过程中,如果监管引擎在执行所有监管标识符对应的监管脚本都给出通过的结果,则判断本次智能合约的调用过程顺利完成,否则,则判断本次智能合约的调用存在违规行为。
2.根据权利要求1所述的一种针对智能合约行为的监管方法,其特征在于:
所述推理形式系统的符号系统包括英文字符串,地址串,数字和辅助符号;所述辅助符号包括点号,问号,感叹号,左箭头,左右括号和数字运算符号;
所述推理形式系统的基本语法项包括元素和谓词;所述元素包括变量与常量,其中常量由小写字母开头的英文字符串或数字组成,变量由大写字母开头的英文字符串表示,变量的含义是‘任意常量’;谓词用于描述元素之间的关系,包括一个谓词描述符,一对括号,一个或多个由逗号分隔的元素;所述谓词描述符为英文字符串,表示元素的性质或关系;所述谓词还支持带有数学运算符号的形式;
所述推理形式系统包括事实和规则两种语句类型:
事实:事实语句以英文点号结尾,语句中包含一个谓词或者一个元素,将一个谓词或一个元素声明为一个已有事实,将这个谓词或元素加入到现有事实集中,用来推导和产生更多的事实;
规则:规则是含有左箭头(<-),并以英文点号结尾的语句,用以表示利用已有事实生成新事实的方法;规则以左箭头为界分为前后两个部分,前一部分为目标,后一部分为条件,目标是一个事实,条件则是由用逗号间隔的一个或多个事实构成。
3.根据权利要求1所述的一种针对智能合约行为的监管方法,其特征在于:所述数字化监管规则库中存储的全部都是事实语句与规则语句,用于表示某一地址对应的账户具有的状态和特殊规则,维护所有的规则与事实,对外提供查询接口,用户通过查询接口,获取任何一个特定主体对应的状态,以及任何一个监管标识符所绑定的监管规则集与状态集。
4.根据权利要求1所述的一种针对智能合约行为的监管方法,其特征在于:所述监管脚本中的语句为规则、事实、外部调用或查询语句;在一次智能合约的调用过程中,语言的解释器将提取出智能合约中的监管标识符,分析其上下文环境,确定待监管的主体与行为,并通过监管引擎执行监管脚本,取得与该标识符绑定的规则集与状态集,并给出判断结果以完成监管功能。
5.根据权利要求1所述的一种针对智能合约行为的监管方法,其特征在于:
所述监管引擎为一种推理执行工具,其通过查询语句判断某一主体的行为是否合规;所述查询语句以问号结尾,语句中包含一个谓词或元素;所述查询是指利用已有事实和规则,判断能否推导出待查询事实,利用分离规则进行推导,并根据结果返回True或False;所述监管引擎以Datalog语言为后端,前端通过字符串正则匹配与替换,将数字化监管规则库中的规则与事实以及查询语句转化为Datalog引擎执行的语句;Datalog引擎将根据转化后的规则和事实进行推理,完成查询操作,并返回查询结果;
监管引擎的前端还支持外部调用语句;所述外部调用语句以感叹号结尾,语句中包含一个地址串,该地址串对应于区块链上的相应账户地址,对应某个待监管主体;外部调用语句将会与数字化监管规则库进行交互,查询与主体对应的账户地址的内容;外部调用语句将取回地址串对应的数据库单元中含有的所有事实和规则,即该主体当前具有的所有状态与所有其需要遵循的特殊监管规则,并将他们加入到当前的事实集和规则集中。
6.根据权利要求5所述的一种针对智能合约行为的监管方法,其特征在于:所述监管引擎执行每一个监管标识符对应的监管脚本的具体方法为:
监管引擎根据监管标识符对应的监管脚本中的语句,执行外部调用、事实声明、规则声明和查询操作;在外部调用时,监管引擎与数字化监管规则库进行交互,获取当前待监管主体的状态和特殊规则组装出之后执行所需的所有规则集与事实集;在进行事实或规则声明操作时,将相应的事实与规则加入到现有的规则集与事实集;在进行查询操作时,利用Datalog引擎,在现有的事实集与规则集的基础上,进行推理演算,并给出查询结果。
CN202010211697.2A 2020-03-24 2020-03-24 一种针对智能合约行为的监管方法 Active CN111581047B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010211697.2A CN111581047B (zh) 2020-03-24 2020-03-24 一种针对智能合约行为的监管方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010211697.2A CN111581047B (zh) 2020-03-24 2020-03-24 一种针对智能合约行为的监管方法

Publications (2)

Publication Number Publication Date
CN111581047A CN111581047A (zh) 2020-08-25
CN111581047B true CN111581047B (zh) 2023-03-24

Family

ID=72126064

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010211697.2A Active CN111581047B (zh) 2020-03-24 2020-03-24 一种针对智能合约行为的监管方法

Country Status (1)

Country Link
CN (1) CN111581047B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112748932B (zh) * 2021-01-19 2022-03-22 矩阵元技术(深圳)有限公司 基于智能合约的数据处理方法、服务器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108520464A (zh) * 2018-04-18 2018-09-11 北京天德科技有限公司 一种基于传统区块链的实时自动化监管报告系统
CN109492402A (zh) * 2018-10-25 2019-03-19 杭州趣链科技有限公司 一种基于规则引擎的智能合约安全评测方法
CN110310205A (zh) * 2019-06-28 2019-10-08 百度在线网络技术(北京)有限公司 一种区块链数据监控方法、装置、设备和介质
CN110533318A (zh) * 2019-08-27 2019-12-03 腾讯科技(深圳)有限公司 一种基于区块链的数据处理方法及设备
CN110633076A (zh) * 2019-09-16 2019-12-31 杭州趣链科技有限公司 一种自动生成Solidity智能合约Java客户端程序的方法
CN110852872A (zh) * 2019-11-07 2020-02-28 博雅正链(北京)科技有限公司 一种基于区块链的网贷合同监管系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108520464A (zh) * 2018-04-18 2018-09-11 北京天德科技有限公司 一种基于传统区块链的实时自动化监管报告系统
CN109492402A (zh) * 2018-10-25 2019-03-19 杭州趣链科技有限公司 一种基于规则引擎的智能合约安全评测方法
CN110310205A (zh) * 2019-06-28 2019-10-08 百度在线网络技术(北京)有限公司 一种区块链数据监控方法、装置、设备和介质
CN110533318A (zh) * 2019-08-27 2019-12-03 腾讯科技(深圳)有限公司 一种基于区块链的数据处理方法及设备
CN110633076A (zh) * 2019-09-16 2019-12-31 杭州趣链科技有限公司 一种自动生成Solidity智能合约Java客户端程序的方法
CN110852872A (zh) * 2019-11-07 2020-02-28 博雅正链(北京)科技有限公司 一种基于区块链的网贷合同监管系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SPESC: A Specification Language for Smart Contracts;Xiao He等;《2018 IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC)》;20180622;132-137 *
智能合约安全漏洞挖掘技术研究;付梦琳等;《计算机应用》;20190710;第39卷(第7期);1959-1965 *

Also Published As

Publication number Publication date
CN111581047A (zh) 2020-08-25

Similar Documents

Publication Publication Date Title
CN112100054B (zh) 一种面向数据管控的程序静态分析方法和系统
US8819621B2 (en) System and method for automated re-architectureing of legacy systems using object oriented language
Bryant et al. Two-level grammar as an object-oriented requirements specification language
CN108369591B (zh) 用于缓存和参数化ir的系统和方法
CN112860263A (zh) 一种基于智能合约知识图谱的合约缺陷检测方法
Hoffmann et al. Defining models-meta models versus graph grammars
CN111581047B (zh) 一种针对智能合约行为的监管方法
Ries et al. An mde method for improving deep learning dataset requirements engineering using alloy and uml
Ferreira et al. FOREST: An interactive multi-tree synthesizer for regular expressions
Grammel et al. Model matching for trace link generation in model-driven software development
CN115469860B (zh) 基于指令集的需求到软件领域模型的自动生成方法及系统
Al-Azzawi PyFml-a Textual Language For Feature Modeling
CN110674503A (zh) 一种基于图卷积神经网络的智能合约死循环检测方法
CN115935943A (zh) 一种支持自然语言结构计算的分析框架
CN102999324A (zh) 一种Rete网络的建立方法及系统
CN110674355B (zh) 描述数据标注任务的dsl应用系统及其方法
CN109976805B (zh) 一种基于本体的事件驱动架构模式识别方法
Cassol et al. A methodology to infer and refactor an object‐oriented model from C applications
Halpin Integrating fact-oriented modeling with object-oriented modeling
US10997056B1 (en) Generation of explanatory and executable repair examples
CN103310024B (zh) 基于最小解释的本体查询推理近似方法
CN113971032B (zh) 一种代码生成的机器学习模型全流程自动部署方法及系统
CN110096274B (zh) 分布式内存列式数据库的生成代码复用匹配管理方法
Zhao et al. Dynamic Data Warehouse Design with Abstract State Machines.
Fu et al. Algorithms for analysing related constraint business rules

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