CN115878112A - 一种多方复杂商业协议智能合约生成系统及其生成方法 - Google Patents
一种多方复杂商业协议智能合约生成系统及其生成方法 Download PDFInfo
- Publication number
- CN115878112A CN115878112A CN202211430181.2A CN202211430181A CN115878112A CN 115878112 A CN115878112 A CN 115878112A CN 202211430181 A CN202211430181 A CN 202211430181A CN 115878112 A CN115878112 A CN 115878112A
- Authority
- CN
- China
- Prior art keywords
- contract
- intelligent contract
- model
- module
- bpmn
- 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.)
- Pending
Links
Images
Abstract
一种多方复杂商业协议智能合约生成系统及其生成方法,属于计算机服务技术领域。系统包括文本合同提取模块、合同建模模块、BPMN建模模块、代码生成模块、安全性检查和部署模块以及可复用智能合约代码库模块;方法如下:对多方复杂商业协议的服务合同进行分析;生成统一合同模型并表达出外层模型和内层模型的元素:将合同模型转化为能够体现多方之间交互关系的扩展BPMN流程图;将扩展的BPMN流程图与可复用的智能合约代码库形成映射,生成完整的智能合约代码;对生成的智能合约进行安全性检查和本地私链部署测试。本发明能够保证代码的安全性,提高了开发效率,减少了业务上的交流障碍,避免了手工编程造成的错误。
Description
技术领域
本发明涉及一种多方复杂商业协议智能合约生成系统及其生成方法,属于计算机服务技术领域。
背景技术
多方商业协议是在多个利益相关方之间为了使其各自利益最大化,实现利益和责任的权衡而生成的一种规则。在多方商业协作过程中,多方商业协议发挥了关键作用,保证多方商业协议执行的有效性是重要的。
多方商业协议通常通过合同来体现,数字化的合同通常以建模的方式实现,例如基于行为契约的服务发现和组合形式模型等,但这类方法依赖各种建模方法的实现,从本质上并不能解决合同中最重要的信任问题,因为记录重要信息的文件可能被恶意篡改。
区块链技术的出现为解决合同的信任问题提供了新的方法,它通过节点验证交易后公开存储交易,部署在区块链平台上的智能合约可以实现强大的去中心化功能,有效地防止合同中的数据被恶意篡改的情况,目前智能合约已经成为了数字合同实现的重要技术手段。
传统的智能合约编写方法是业务人员提供需求,开发人员根据需求编写代码。这种方式构筑多方商业协议的智能合约存在着一些问题和挑战:
多方商业协议涉及到多个利益相关方间的复杂交互,业务人员往往缺少技术方面的知识,而开发人员则缺少业务方面的知识,因此业务人员和开发人员间可能存在沟通上的障碍和理解上的冲突,因此需要引入一种建模方法使业务人员和开发人员容易达成共识,弥补交流和理解上的鸿沟;
由于很多商业协议比较复杂,开发人员人工编程效率较低,因此需要引入一种代码自动生成方法提升编码效率;很多重复被使用的协议条款可能会被多次编写为代码,这些重复的代码没有得到复用,因此需要采用一种方法使可复用的功能能够被重复使用;同时,由于区块链的不可更改的特性,代码的安全性也是需要在部署到区块链之前进行安全及漏洞检查,避免造成损失。
因此,为解决上述背景下的问题和挑战,提出了一种基于自然语言处理和可复用代码库的多方复杂商业协议智能合约生成方法,实现多方复杂商业文本协议到智能合约的高效开发。
发明内容
为解决背景技术中存在的问题,本发明提供一种多方复杂商业协议智能合约生成系统及其生成方法。
实现上述目的,本发明采取下述技术方案:一种多方复杂商业协议智能合约生成系统,所述系统包括文本合同提取模块、合同建模模块、BPMN建模模块、代码生成模块、安全性检查和部署模块以及可复用智能合约代码库模块;
所述文本合同提取模块负责提取文本合同的条款语句;
所述合同建模模块负责将合同的条款语句构建成统一合同模型,并将统一合同模型分为外层模型以及内层模型,所述外层模型即为链外部分,所述内层模型即为链上部分;
所述BPMN建模模块负责支持复杂场景建模后生成智能合约代码,同时支持将统一合同模型构建成可以表达交互关系的BPMN流程图;
所述代码生成模块负责形成BPMN流程图到可复用智能合约库的映射,进而生成智能合约代码;
所述安全性检查和部署模块负责对生成的智能合约进行安全性检查并将其部署在本地私链上;
所述可复用智能合约代码库模块负责按照领域维护可复用的基本功能单元,并且支持Blockly可视化编程solidity代码以高效率、低门槛的方式维护复用库。
本发明的一种多方复杂商业协议智能合约生成系统的生成方法,所述方法包括如下步骤:
S1:对多方复杂商业协议的服务合同进行分析;
S2:生成统一合同模型,并表达出外层模型和内层模型的元素:
S3:将合同模型转化为能够体现多方之间交互关系的扩展BPMN流程图;
S4:将扩展的BPMN流程图与可复用的智能合约代码库形成映射,生成完整的智能合约代码;
S5:对生成的智能合约进行安全性检查和本地私链部署测试。
与现有技术相比,本发明的有益效果是:
1、本发明提供了一套较为完备的从文本服务合同到区块链智能合约的生成方法,包括了对合同条款的提取、合同的建模、合同流程建模、智能合约生成、智能合约编译、安全性检查和部署等功能,通过对大量的现实中的合同进行分析,生成了一个完备的可表达大多数领域的统一合同模型,该模型作为文本合同和智能合约的枢纽,在智能合约的生成过程中起到了关键作用。采用BPMN流程图描述业务流程,重点突出了多方之间和智能合约之间的交互关系,提供了将BPMN流程图自动转化为完整的solidity智能合约代码的方法。按照领域维护了一个可复用的代码库,将可复用的功能单元模块化,复用的粒度被分为两层,上层是面向领域的复用思想,包含多个函数完成一个特定领域的功能;下层是支持solidity编程的可视化自定义。能够在方法实现时,对文本合同进行提取并建模,通过映射到可复用代码库生成solidity智能合约,并能够保证代码的安全性,进而提高了开发效率,减少了业务上的交流障碍,避免了手工编程造成的错误。
附图说明
图1是本发明的生成方法流程图;
图2是统一合同模型示意图;
图3是扩展的BPMN图的抽象示意图;
图4是从扩展的BPMN生成智能合约代码的流程图;
图5是本发明的系统模块图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种多方复杂商业协议智能合约生成系统,所述系统包括文本合同提取模块、合同建模模块、BPMN建模模块、代码生成模块、安全性检查和部署模块以及可复用智能合约代码库模块;
所述文本合同提取模块负责提取文本合同的条款语句;
所述合同建模模块负责将合同的条款语句构建成统一合同模型,并将统一合同模型分为外层模型以及内层模型,所述外层模型即为链外部分,所述内层模型即为链上部分;
所述BPMN建模模块负责支持复杂场景建模后生成智能合约代码,同时支持将统一合同模型构建成可以表达交互关系的BPMN流程图;
所述代码生成模块负责形成BPMN流程图到可复用智能合约库的映射,进而生成智能合约代码;
所述安全性检查和部署模块负责对生成的智能合约进行安全性检查并将其部署在本地私链上;
所述可复用智能合约代码库模块负责按照领域维护可复用的基本功能单元,并且支持Blockly可视化编程solidity代码以高效率、低门槛的方式维护复用库。
本发明的一种多方复杂商业协议智能合约生成系统的生成方法,所述方法包括如下步骤:
S1:对多方复杂商业协议的服务合同进行分析;
S101:利用自然语言处理(NLP)提取文本合同中所有条款的句子;
S102:使用多标签分类将提取的句子分为多种类型,例如表达权利的句子、表达义务的句子、表达参与方的句子、表达合同属性的句子等;
S103:对分类后的每个句子均进行句法分析,得到句子中的参与方、规则、行为、数据属性等主体成份。
本步骤主要是针对输入的一个多方商业协议的合同进行分析处理,得到该合同的各类条款语句,并对语句进行语法分析后识别出关键信息。
S2:生成统一合同模型,并表达出外层模型和内层模型的元素:
S201:根据S1得到的数据构建统一合同模型的外层模型,包含合同详细信息、参与方的详细信息、合同条款中使用到的重要定义、权利和义务以及相应的行为;
S202:根据S201所得外层模型,识别出需要部署在区块链上的成份,通常情况下,需要上链的成份包括合同中重要数据信息,涉及交易的规则和容易在多方协作过程中产生分歧的规则。
S203:构建统一合同模型的内层模型,包括规则、行为和数据,其中数据包括原始数据、组合数据、记录数据以及输出数据;
S204:将内层模型和外层模型结合生成统一的合同模型。统一合同模型的示意图如图2所示。
S3:将合同模型转化为能够体现多方之间交互关系的扩展BPMN流程图;
S301:提取合同模型中的利益相关方、链外的数据输入或规则触发以及链上的数据存储行为或规则执行行为;具体为:对S2中生成的统一合同模型进行解析,转化为能够体现合同的利益相关方之间、利益相关方与智能合约之间的交互关系的扩展的BPMN流程图,首先根据合同模型中的参与方,为每一个参与方构建一个泳道,代表在该智能合约中,该参与方需要完成的交互任务。随后,识别出合同模型中的每一个行为以及该行为发起的参与方。如果该行为属于链外行为,则在该行为发起的参与方的泳道中生成一个用户任务,如果该行为属于链上行为,则在当前智能合约的泳道中生成一个脚本任务,如果该脚本任务调用了其他智能合约中的功能,则在外部智能合约的泳道中生成一个服务任务。
S302:将S301所述提取内容映射到扩展的BPMN元素中;
S303:构建出表示交互关系和执行流程的指向流,得到完整的扩展BPMN图。根据合同的规则执行流程和交互关系,补充完善BPMN流程图,形成完整的交互流程模型。扩展的BPMN流程图的逻辑示意图如图3所示。
S4:将扩展的BPMN流程图与可复用的智能合约代码库形成映射,生成完整的智能合约代码;
S401:解析BPMN流程图,将BPMN流程图中代表智能合约任务的元素与可复用代码库进行匹配,并将代表智能合约任务的元素映射成一个或多个solidity函数;
对BPMN图进行解析需要依赖可复用的智能合约代码库,所述智能合约代码库按照领域存储了基本功能块,每一个基本功能块由一个或多个属性和函数组成,共同实现一个功能。为了更快更准确地构建出可复用代码库,本发明提供了一个基于Blockly框架的solidity语言可视化编程系统,在此基础上可以快速生成一个函数。在对BPMN图进行解析时,就是对图中的三类任务进行解析:
1)普通脚本类型任务。
普通脚本类型任务在可复用代码库中映射的基础功能块不包含任何的调用关系,获取到任务名称在可复用代码库中寻找对应的代码。
2)外部调用脚本类型任务。
外部调用脚本类型任务在可复用代码库中映射的基础功能块包含了一个调用其他基础功能块中的函数的函数,所调用的其他基础功能块位于外部智能合约中,当前的智能合约必须知道外部智能合约的名称和地址,智能合约的名称可以通过流关系来获取到,而外部智能合约的地址获取方式有两种:一种是在可替换的函数的参数上提供,这种方式需要用格式化的符号进行占位;另一种是从智能合约内部的属性中获取,这种方式不需要做任何处理。在生成代码时,如果智能合约的地址是从函数参数中获得,那么需要替换两个位置,一个在函数的参数中,替换为统一的合约地址参数:address contractAddress,另一个在函数体内部,替换为如下内容:(contractAddress)外部合约名.函数名,其中的“(contractAddress)外部合约名.”是替换格式化符号的内容。如果智能合约的地址是从合约内部获取的,那么只需要替换上述的第二个内容。
3)内部调用脚本类型任务。
内部调用脚本类型任务在可复用代码库中映射的基础功能块包含了一个调用其他基础功能块中的函数的函数,同时,它与外部调用脚本类型任务不同的是,它所调用的基础功能块是当前智能合约内部的。对内部调用脚本类型任务的解析,要求在BPMN生成时必须在两个任务的流上标注数字,代表流程的执行顺序,因此调用流上的数字比返回流上的数字要小,从而可以判断出哪个是调用者,哪个是被调用者,其余解析过程和外部调用脚本类型任务的解析过程相同。
S402:引入当前智能合约所需要的外部智能合约的路径或库的路径,并定义智能合约的名字和继承关系;
S403:生成完整的可执行的智能合约代码。
S5:对生成的智能合约进行安全性检查和本地私链部署测试。
S501:使用静态检查工具Slither对生成的智能合约进行安全性检查,并记录检查的结果;
S502:对通过安全性检查的智能合约进行ganache私链的truffle框架部署。部署需要两个配置文件的支持——truffle-config.js和1_initial_migration.js。
truffle-config.js的作用主要是为了配置部署的地址、端口号、网络号以及solidity编译器的版本号,这里把部署的ip地址设置为本机地址,端口号为ganache的端口号7545,solidity编译器的版本号设置为0.5.0,因为在部署前需要进行编译。
1_initial_migration.js填写的是需要部署的智能合约的信息,首先将下载的智能合约文件的路径赋值给一个变量,然后通过该变量进行部署,此时需要调用deploy函数,这是truffle框架所提供的,它的参数就是前面提到的代表智能合约文件路径的变量。
如果合约的构造器函数含有参数的话,那么deploy的参数需要加上构造器的参数,并且要加在智能合约路径变量的后面。由于每次生成的智能合约的名称不一样,所以1_initial_migration.js中的变量名和deploy的参数是动态生成的。随后,truffle框架将新生成的智能合约部署在ganache的私链中,并返回编译和部署的结果。
需要说明的是,本发明中的各个模块(或单元)是逻辑意义上的,具体实现时,多个模块(或单元)可以合并成一个模块(或单元),一个模块(或单元)也可拆分成多个模块(或单元),系统模块图如图5所示。
本发明对于从多方复杂的商业协议到智能合约的高效开发问题,提供了一种基于自然语言处理和可复用代码库的多方复杂商业协议智能合约生成方法。本发明提供的方法能够将多方复杂商业协议的合同文本进行文本提取并分类,形成统一的合同模型,将合同模型转化为能够体现多方之间交互关系的扩展BPMN流程图,然后将扩展的BPMN流程图与可复用的智能合约代码库形成映射,自动生成完整的智能合约代码,并对生成的智能合约进行安全性检查和本地私链部署测试。
本发明涉及基于自然语言和可复用代码库的多方复杂商业协议智能合约生成方法,具体涉及一种对文本合同进行自动分析,提取协议核心要素并建模,通过映射到可复用代码库生成solidity智能合约的方法。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同条件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (7)
1.一种多方复杂商业协议智能合约生成系统,其特征在于:所述系统包括文本合同提取模块、合同建模模块、BPMN建模模块、代码生成模块、安全性检查和部署模块以及可复用智能合约代码库模块;
所述文本合同提取模块负责提取文本合同的条款语句;
所述合同建模模块负责将合同的条款语句构建成统一合同模型,并将统一合同模型分为外层模型以及内层模型,所述外层模型即为链外部分,所述内层模型即为链上部分;
所述BPMN建模模块负责支持复杂场景建模后生成智能合约代码,同时支持将统一合同模型构建成可以表达交互关系的BPMN流程图;
所述代码生成模块负责形成BPMN流程图到可复用智能合约库的映射,进而生成智能合约代码;
所述安全性检查和部署模块负责对生成的智能合约进行安全性检查并将其部署在本地私链上;
所述可复用智能合约代码库模块负责按照领域维护可复用的基本功能单元,并且支持Blockly可视化编程solidity代码以高效率、低门槛的方式维护复用库。
2.一种根据权利要求1所述的多方复杂商业协议智能合约生成系统的生成方法,其特征在于:所述方法包括如下步骤:
S1:对多方复杂商业协议的服务合同进行分析;
S2:生成统一合同模型,并表达出外层模型和内层模型的元素:
S3:将合同模型转化为能够体现多方之间交互关系的扩展BPMN流程图;
S4:将扩展的BPMN流程图与可复用的智能合约代码库形成映射,生成完整的智能合约代码;
S5:对生成的智能合约进行安全性检查和本地私链部署测试。
3.根据权利要求2所述的方法,其特征在于:所述S1包括如下步骤:
S101:利用自然语言处理提取文本合同中所有条款的句子;
S102:使用多标签分类将提取的句子分为多种类型;
S103:对分类后的每个句子均进行句法分析,得到句子中的主体成份。
4.根据权利要求3所述的方法,其特征在于:所述S2包括如下步骤:
S201:构建统一合同模型的外层模型;
S202:根据S201所得外层模型,识别出需要部署在区块链上的成份;
S203:构建统一合同模型的内层模型;
S204:将内层模型和外层模型结合生成统一的合同模型。
5.根据权利要求4所述的方法,其特征在于:所述S3包括如下步骤:
S301:提取合同模型中的利益相关方、链外的数据输入或规则触发以及链上的数据存储行为或规则执行行为;
S302:将S301所述提取内容映射到扩展的BPMN元素中;
S303:根据合同的规则执行流程和交互关系,补充完善BPMN流程图,形成完整的交互流程模型。
6.根据权利要求5所述的方法,其特征在于:所述S4包括如下步骤:
S401:解析BPMN流程图,将BPMN流程图中代表智能合约任务的元素与可复用代码库进行匹配,并将代表智能合约任务的元素映射成一个或多个solidity函数;
S402:引入当前智能合约所需要的外部智能合约的路径或库的路径,并定义智能合约的名字和继承关系;
S403:生成完整的可执行的智能合约代码。
7.根据权利要求6所述的方法,其特征在于:所述S5包括如下步骤:
S501:使用静态检查工具对生成的智能合约进行安全性检查,并记录检查的结果;
S502:对通过安全性检查的智能合约进行私链的部署。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211430181.2A CN115878112A (zh) | 2022-11-15 | 2022-11-15 | 一种多方复杂商业协议智能合约生成系统及其生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211430181.2A CN115878112A (zh) | 2022-11-15 | 2022-11-15 | 一种多方复杂商业协议智能合约生成系统及其生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115878112A true CN115878112A (zh) | 2023-03-31 |
Family
ID=85760004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211430181.2A Pending CN115878112A (zh) | 2022-11-15 | 2022-11-15 | 一种多方复杂商业协议智能合约生成系统及其生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115878112A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116661771A (zh) * | 2023-05-16 | 2023-08-29 | 江苏江顺精密机电设备有限公司 | 一种用于物流调度系统的业务逻辑编译执行组件及方法 |
CN117311726A (zh) * | 2023-10-26 | 2023-12-29 | 中央财经大学 | 智能法律合约生成方法、装置、电子设备及存储介质 |
-
2022
- 2022-11-15 CN CN202211430181.2A patent/CN115878112A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116661771A (zh) * | 2023-05-16 | 2023-08-29 | 江苏江顺精密机电设备有限公司 | 一种用于物流调度系统的业务逻辑编译执行组件及方法 |
CN116661771B (zh) * | 2023-05-16 | 2024-04-30 | 江苏江顺精密机电设备有限公司 | 一种用于物流调度系统的业务逻辑编译执行组件及方法 |
CN117311726A (zh) * | 2023-10-26 | 2023-12-29 | 中央财经大学 | 智能法律合约生成方法、装置、电子设备及存储介质 |
CN117311726B (zh) * | 2023-10-26 | 2024-04-09 | 中央财经大学 | 智能法律合约生成方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11169784B2 (en) | Computing expression medium, development environment, and device communication and control architecture | |
Krause et al. | Modeling dynamic reconfigurations in Reo using high-level replacement systems | |
CN102520972B (zh) | 电子游戏开发系统及其方法 | |
CN115878112A (zh) | 一种多方复杂商业协议智能合约生成系统及其生成方法 | |
US20080276229A1 (en) | Incremental model refinement and transformation in generating commerce applications using a model driven architecture | |
Cho et al. | Design patterns for metamodels | |
CN112835560A (zh) | Web多终端低代码智能软件开发平台 | |
Ahmad et al. | A framework for architecture-driven migration of legacy systems to cloud-enabled software | |
WO2006099046A2 (en) | Automated interface-specification generation for enterprise architectures | |
Ahmaro et al. | Taxonomy, definition, approaches, benefits, reusability levels, factors and adaption of software reusability: a review of the research literature | |
Sarjoughian et al. | Behavioral DEVS metamodeling | |
CN109116828B (zh) | 一种控制器中模型代码配置方法和装置 | |
Martinez et al. | Recovering sequence diagrams from object-oriented code: An ADM approach | |
CN107678741A (zh) | 列表视图的实现方法、装置、可读存储介质及设备 | |
Popescu et al. | A formalized, taxonomy-driven approach to cross-layer application adaptation | |
Di Maio | An open ontology for open source emergency response system | |
CN109840074A (zh) | 一种业务生成方法、装置及网络设备 | |
Ameedeen et al. | A model driven approach to represent sequence diagrams as free choice Petri nets | |
Campos et al. | A survey of formalization approaches to service composition | |
Gill et al. | Modified development process of component-based software engineering | |
Davydova et al. | Mining hybrid UML models from event logs of SOA systems | |
Zhao et al. | Pattern-based design evolution using graph transformation | |
Kim et al. | Formal identification of right-grained services for service-oriented modeling | |
Selic | A Short Catalogue of Abstraction Patterns for Model-Based Software Engineering. | |
Soleimani Malekan et al. | Overview of business process modeling languages supporting enterprise collaboration |
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 |