一种基于智能合约的合约变更手续执行方法及系统技术方案

技术编号:39672176 阅读:8 留言:0更新日期:2023-12-11 18:37
本申请公开了一种基于智能合约的合约变更手续执行方法及系统,该方法包括:初始化区块链网络;接收注册请求,进行身份注册,构建可参与节点池;接收业务请求,匹配合约类型,将该用户节点添加至对应的区块链子网络;接收还款确认请求,更新还款记录;接收合约变更请求,确定合约变更情况;根据合约变更情况生成新的业务智能合约;接收合约履行请求,调用智能合约执行程序,在执行成功时设置合约完毕标识为真;响应于合约完毕标识为真,调整权限

【技术实现步骤摘要】
一种基于智能合约的合约变更手续执行方法及系统


[0001]本申请涉及信息
,具体涉及一种基于智能合约的合约变更手续执行方法及系统


技术介绍

[0002]区块链是一种分布式账本技术,涉及共识算法

密码学

分布式存储等不同领域的计算机技术,具有去中心化

不可篡改

可溯源等特性

其中智能合约能够允许在没有第三方的情况下进行可信的交易,并且这些交易是无法被追踪

同时也是不可逆的

[0003]然而相关技术中,智能合约管理平台提供一些通用合约模板的处理方式单一

由于区块链具有的不可篡改的特点,智能合约代码在部署于区块链上后就无法被修改

如果存在金融业务关系的贷款用户所绑定的合约出现变更情况时,需要为逻辑或数据变动而更新合约代码,通过部署一个新的合约,并生成一个新的合约地址,这也导致在合约变更手续时存在一定的局限性,例如扩展性较差的问题,且无法及时满足业务变动时造成的需求多样性


技术实现思路

[0004]为了克服现有技术存在的缺陷与不足,本申请提供了一种基于智能合约的合约变更手续执行方法及系统

[0005]为了达到上述目的,本申请采用以下技术方案:
[0006]根据本申请的一个方面,提供了一种基于智能合约的合约变更手续执行方法,用于贷款区块链管理平台,所述贷款区块链管理平台在服务端中加载并支撑贷款业务;
[0007]所述方法包括初始化阶段

业务关联阶段

业务执行阶段

合约变更阶段和业务结束阶段,所述初始化阶段在第一服务器中运行,所述业务关联阶段

所述业务执行阶段

所述合约变更阶段和所述业务结束阶段均在第二服务器中运行,所述服务端为由所述第一服务器和所述第二服务器组成的服务器集群;
[0008]在初始化阶段中,包括:
S1.
初始化区块链网络,根据所有的贷款业务类型分别通过第一业务合约映射表进行匹配以确定
M
个智能合约模板;
[0009]S2.
接收由用户节点发起的注册请求,对用户节点进行身份注册,以使完成身份注册的用户节点具有可参与标识,统计所有具有可参与标识的用户节点进行构建可参与节点池,并将所述可参与节点池发送至第二服务器;
[0010]在业务关联阶段中,包括:
S3.
接收由具有可参与标识的用户节点发起的业务请求,根据贷款业务类型进行匹配合约类型,将该用户节点添加至对应的区块链子网络;
[0011]在业务执行阶段中,包括:
S4.
接收由用户节点发出的还款确认请求,基于还款确认请求对合约
ID
对应的区块链子网络进行更新还款记录;
[0012]在合约变更阶段中,包括:
S5.
接收由用户节点发起的合约变更请求,解析合约变更请求,进而确定合约变更情况,其中所述合约变更请求包括用户
ID、
原合约
ID
和合约变更
情况,所述合约变更情况为针对业务协议信息的变更元素集合;
[0013]S6.
根据合约变更情况生成新的业务智能合约以更新合约
ID
,在合约管理表中将原合约
ID
进行替换更新,以使调用智能合约时执行最新的合约手续,进而对原有的业务智能合约进行完成更新,所述合约管理表用于管理每个用户所关联的合约
ID

[0014]在业务结束阶段中,包括:
S7.
接收由用户节点发起的合约履行请求,根据合约
ID
对用户
ID
调用智能合约执行程序,在执行成功时设置合约完毕标识为真;
[0015]S8.
响应于合约完毕标识为真,根据合约
ID
将相应容器元素里的参与节点进行调整权限;
[0016]其中所述业务请求包含贷款业务类型

业务协议信息和用户
ID
,所述可参与节点池用于为每个容器元素对应的区块链子网络进行分配共识验证的参与节点,每个容器元素复制一份可参与节点池以用于在业务进行时补充帮助达成共识验证的参与节点

[0017]根据本申请的另一个方面,提供了一种基于智能合约的合约变更手续执行系统,用于贷款区块链管理平台,所述贷款区块链管理平台在服务端中加载并支撑贷款业务;
[0018]所述系统包括初始化模块

业务关联模块

业务执行模块

合约变更模块和业务结束模块,所述初始化模块在第一服务器中运行,所述业务关联模块

所述业务执行模块

所述合约变更模块和所述业务结束模块均在第二服务器中运行,所述服务端为由所述第一服务器和所述第二服务器组成的服务器集群;
[0019]所述初始化模块包括贷款业务类型匹配子模块和注册响应子模块,所述合约变更模块包括合约变更情况确定子模块和合约
ID
更新子模块,所述业务结束模块包括第一合约履行响应子模块,第二合约履行响应子模块和第三合约履行响应子模块;
[0020]所述贷款业务类型匹配子模块用于初始化区块链网络,根据所有的贷款业务类型分别通过第一业务合约映射表进行匹配以确定
M
个智能合约模板;
[0021]所述注册响应子模块用于接收由用户节点发起的注册请求,对用户节点进行身份注册,以使完成身份注册的用户节点具有可参与标识,统计所有具有可参与标识的用户节点进行构建可参与节点池,并将所述可参与节点池发送至第二服务器;
[0022]所述业务关联模块,用于接收由具有可参与标识的用户节点发起的业务请求,根据贷款业务类型进行匹配合约类型,将该用户节点添加至对应的区块链子网络;
[0023]所述业务执行模块,用于接收由用户节点发出的还款确认请求,基于还款确认请求对合约
ID
对应的区块链子网络进行更新还款记录;
[0024]所述合约变更情况确定子模块,用于接收由用户节点发起的合约变更请求,解析合约变更请求,进而确定合约变更情况,其中所述合约变更请求包括用户
ID、
原合约
ID
和合约变更情况,所述合约变更情况为针对业务协议信息的变更元素集合;
[0025]所述合约
ID
更新子模块,用于根据合约变更情况生成新的业务智能合约以更新合约
ID
,在合约管理表中将原合约
ID
进行替换更新,以使调用智能合约时执行最新的合约手续,进而对原有的业务智能合约进行完成更新,所述合约管理表用于管理每个用户所关联的合约
I本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于智能合约的合约变更手续执行方法,其特征在于,用于贷款区块链管理平台,所述贷款区块链管理平台在服务端中加载并支撑贷款业务;所述方法包括初始化阶段

业务关联阶段

业务执行阶段

合约变更阶段和业务结束阶段,所述初始化阶段在第一服务器中运行,所述业务关联阶段

所述业务执行阶段

所述合约变更阶段和所述业务结束阶段均在第二服务器中运行,所述服务端为由所述第一服务器和所述第二服务器组成的服务器集群;在初始化阶段中,包括:
S1.
初始化区块链网络,根据所有的贷款业务类型分别通过第一业务合约映射表进行匹配以确定
M
个智能合约模板;
S2.
接收由用户节点发起的注册请求,对用户节点进行身份注册,以使完成身份注册的用户节点具有可参与标识,统计所有具有可参与标识的用户节点进行构建可参与节点池,并将所述可参与节点池发送至第二服务器;在业务关联阶段中,包括:
S3.
接收由具有可参与标识的用户节点发起的业务请求,根据贷款业务类型进行匹配合约类型,将该用户节点添加至对应的区块链子网络;在业务执行阶段中,包括:
S4.
接收由用户节点发出的还款确认请求,基于还款确认请求对合约
ID
对应的区块链子网络进行更新还款记录;在合约变更阶段中,包括:
S5.
接收由用户节点发起的合约变更请求,解析合约变更请求,进而确定合约变更情况,其中所述合约变更请求包括用户
ID、
原合约
ID
和合约变更情况,所述合约变更情况为针对业务协议信息的变更元素集合;
S6.
根据合约变更情况生成新的业务智能合约以更新合约
ID
,在合约管理表中将原合约
ID
进行替换更新,以使调用智能合约时执行最新的合约手续,进而对原有的业务智能合约进行完成更新,所述合约管理表用于管理每个用户所关联的合约
ID
;在业务结束阶段中,包括:
S7.
接收由用户节点发起的合约履行请求,根据合约
ID
对用户
ID
调用智能合约执行程序,在执行成功时设置合约完毕标识为真;
S8.
响应于合约完毕标识为真,根据合约
ID
将相应容器元素里的参与节点进行调整权限;其中所述业务请求包含贷款业务类型

业务协议信息和用户
ID
,所述可参与节点池用于为每个容器元素对应的区块链子网络进行分配共识验证的参与节点,每个容器元素复制一份可参与节点池以用于在业务进行时补充帮助达成共识验证的参与节点
。2.
根据权利要求1所述的方法,其特征在于,在业务结束阶段中,还包括:
S9.
根据预设周期对所有容器元素进行检测,当任一容器元素内的所有参与节点均只含有可参与标识时,释放该容器元素中的节点个数直至剩余3个
。3.
根据权利要求2所述的方法,其特征在于,在调用智能合约时,根据合约管理表对每个用户的业务进行自适应管理,通过合约类型确定在智能合约模板,根据用户
ID
和合约
ID
确定业务协议信息,进而当出现合约变更手续的情况时,通过及时匹配正确的业务协议信息使得智能合约无需重新整体部署;在合约管理表中,以用户
ID
为索引进行匹配合约变更记录集合,合约变更记录集合包括至少一个合约变更记录,每个合约变更记录对应一个合约类型以进行区分不同业务,每个合约变更记录包含至少一组记录,每组记录基于时间值按时间先后排序并由一个时间值

一个当前合约和一个原合约构成,在替换更新时,新的业务智能合约对应新的合约
ID

当前合约存储新的合约
ID
,原合约存储原合约
ID。4.
根据权利要求3所述的方法,其特征在于,在根据所有的贷款业务类型分别通过第一业务合约映射表进行匹配以确定
M
个智能合约模板中,具体包括:
S101.
利用预存的第一业务合约映射表,通过遍历所有的贷款业务类型以匹配
M
个合约类型,第一业务合约映射表用于建立贷款业务类型与合约类型的映射关系;
S102.
对每个合约类型分别配置相应的智能合约模板,获得
M
个智能合约模板
。5.
根据权利要求4所述的方法,其特征在于,在将该用户节点添加至对应的区块链子网络中,具体包括:
S31.
基于第二业务合约映射表,根据合约类型进行查询容器集合
ID
,若查询的容器集合
ID
存在,则将该用户节点加入至容器集合
ID
所分配的区块链子网络,若查询的容器集合
ID
不存在,则建立新的容器集合,将该用户节点加入至新的容器集合
ID
所分配的区块链子网络;
S32.
基于业务协议信息对当前合约类型所对应的智能合约模板进行填充,以生成业务智能合约,所述业务智能合约用于部署在该用户节点所参与的区块链子网络中,每个业务智能合约具有唯一的合约
ID
,合约
ID
用于定位用户节点在业务请求成功时加入的区块链子网络;
S33.
按用户
ID、
合约
ID、
业务协议信息的顺序拼接得到第一待写入信息,分别对用户
ID、
合约
ID、
业务协议信息进行第一哈希计算以获得第一业务哈希编码,将第一待写入信息和对应的第一业务哈希编码写入该用户节点所参与的区块链子网络中,所述第一业务哈希编码用于通过共识机制进行校验时使用,以防止数据被篡改;所述第二业务合约映射表为通过结合第一业务合约映射表进行构建,所述第二业务合约映射表用于建立合约类型与容器集合
ID
之间的映射关系,每个合约类型与一个容器集合
ID
对应,以区分不同智能合约模板的运行环境区域,每个容器集合包括至少一个容器元素,且每个容器元素对应一个区块链子网络,每个容器集合具有唯一的容器集合
ID
,每个容器元素在容器集合内具有不同的容器元素
ID
以对应同一个容器集合内的不同区块链子网络;所述合约
ID
为通过将三元组作为头部数据并结合尾部数据组成得到,所述三元组为通过结合用户
ID、
容器集合
ID
与容器元素
ID
进行构成,所述尾部数据为唯一不重复的序号以区分同一个区块链子网络中的不同用户节点
。6.
根据权利要求5所述的方法,其特征在于,在分别对用户
ID、
合约
ID、
业务协议信息进行第一哈希计算以获得第一业务哈希编码中,具体包括:对用户
ID
采用第一预设哈希方法计算得到第一哈希值,对合约
ID
采用第二预设哈希方法计算得到第二哈希值,对业务协议信息采用第三预设哈希方法计算得到第三哈希值,依次拼接第一哈希值

第二哈希值和第三哈希值以构成所述第一业务哈希编码,在共识机制进行校验时通过分别校验以确定数据篡改的部分;在业务执行阶段中,具体为:对还款确认请求进行解析,以获得合约
ID、
用户
ID、
还款数额

还款证明标识,基于合约
ID、
用户
ID、
还款数额和还款证明标识进行第二哈希计算以获得第二业务哈希编码,将合约
ID、
用户
ID、
还款数额

还款证明标识和第二业务哈希编码打包发送至合约
ID
对应的区块链子网络,以通过链上其余参与节点的共识验证进行更新还款记录;
在基于合约
ID、
用户
ID、
还款数额和还款证明标识进行第二哈希计算以获得第二业务哈希编码中,具体包括:依次将合约
ID、
用户
ID、
还款数额和还款证明标识进行字符串拼接,以得到待处理字符串数据,对该待处理字符串数据分别采用第四预设哈希方法和第五预设哈希方法以计算得到第四哈希值和第五哈希值,采用第六预设哈希方法计算得到第六哈希值,将第四哈希值

第五哈希值和第六哈希值的相加值作为第二业务哈希编码,第四预设哈希方法和第五预设哈希方法不相同;所述第一业务哈希编码表示为:
Hash
a

Hash1+Hash2*16*
τ1+Hash3*16*(
τ1+
τ2)
其中
Hash
a
为以
16
进制表示的第一业务哈希编码,
Hash1、Hash2、Hash3分别为第一哈希值

第二哈希值和第三哈希值,
τ1为在
16
进制下第一哈希值的位数,
τ2为在
16
进制下第二哈希值的位数,
16*
τ1和
16*(
τ1+
τ2)
均用于隔...

【专利技术属性】
技术研发人员:卢贞杰马继章方凯明张乃王
申请(专利权)人:广州保德来小额贷款有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1