CN117372016A - 基于区块链的数据处理方法、装置、设备及可读存储介质 - Google Patents
基于区块链的数据处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN117372016A CN117372016A CN202311350021.1A CN202311350021A CN117372016A CN 117372016 A CN117372016 A CN 117372016A CN 202311350021 A CN202311350021 A CN 202311350021A CN 117372016 A CN117372016 A CN 117372016A
- Authority
- CN
- China
- Prior art keywords
- approval
- transaction
- transaction data
- contract
- resource management
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 30
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000000034 method Methods 0.000 claims abstract description 104
- 238000012545 processing Methods 0.000 claims abstract description 86
- 238000013507 mapping Methods 0.000 claims description 124
- 238000004590 computer program Methods 0.000 claims description 26
- 230000006870 function Effects 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 9
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 238000007726 management method Methods 0.000 description 293
- 238000010586 diagram Methods 0.000 description 15
- 239000003999 initiator Substances 0.000 description 9
- 230000003993 interaction Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Accounting & Taxation (AREA)
- General Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请公开了一种基于区块链的数据处理方法、装置、设备及可读存储介质,方法包括:获取第一交易数据以及第一交易数据所属的交易类型;按照第一交易数据所属的交易类型,在区块链的资源管理合约集合中确定用于处理第一交易数据的目标资源管理合约;基于目标资源管理合约调用区块链中的交易审批合约,通过交易审批合约对第一交易数据进行链上多重审批,得到链上多重审批结果;在确定第一交易数据的链上多重审批结果为审批通过结果时,通过目标资源管理合约将第一交易数据进行上链处理。采用本申请,可以提高交易数据的审批流程的透明性,进而提升交易数据的安全性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于区块链的数据处理方法、装置、设备及可读存储介质。
背景技术
区块链是一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。
由于区块链具备防篡改性与数据一致性等特性,区块链得到了广泛应用,越来越多的领域(如医疗领域、金融领域等等)中采用区块链来存储相关交易数据。通常情况下,对于提交到区块链上以进行交易执行及存储的交易数据,需要预先经由相关人员的审批后才能够提交到区块链上,以此来确保提交到区块链上的交易数据具备一定的安全性。由于提交到区块链上的交易数据,是会默认为交易数据是经过相关人员审批的,则区块链对该交易数据不会再进行额外的校验,区块链会直接将交易数据进行执行并上链,那么由此会产生部分交易发起方自行绕过审批流程,直接提交未经过审批的交易数据到区块链上的情况,这种情况下无法确保交易发起方所发起的交易数据是否为合法的交易数据,交易数据的安全性并不能得到有效保护。可见,当前提交到区块链上的交易数据的审批流程,存在较大的安全隐患,不利于交易数据的安全性。
发明内容
本申请实施例提供一种基于区块链的数据处理方法、装置、设备及可读存储介质,可以提高交易数据的审批流程的透明性,进而提升交易数据的安全性。
本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:
获取第一交易数据以及第一交易数据所属的交易类型;
按照第一交易数据所属的交易类型,在区块链的资源管理合约集合中确定用于处理第一交易数据的目标资源管理合约;资源管理合约集合中的一个资源管理合约负责处理一种或多种配置交易类型的交易数据;
基于目标资源管理合约调用区块链中的交易审批合约,通过交易审批合约对第一交易数据进行链上多重审批,得到链上多重审批结果;交易审批合约中记录有资源管理集合与N个审批对象集合之间的映射关系,一个资源管理合约与一个审批对象集合之间存在映射关系;第一交易数据的链上多重审批是指目标审批对象集合通过交易审批合约所执行的链上多重审批;目标审批对象集合是指N个审批对象集合中,与目标资源管理合约之间具有映射关系的审批对象集合;
在确定第一交易数据的链上多重审批结果为审批通过结果时,通过目标资源管理合约将第一交易数据进行上链处理。
本申请实施例一方面提供了一种基于区块链的数据处理装置,包括:
交易获取模块,用于获取第一交易数据以及第一交易数据所属的交易类型;
合约确定模块,用于按照第一交易数据所属的交易类型,在区块链的资源管理合约集合中确定用于处理第一交易数据的目标资源管理合约;资源管理合约集合中的一个资源管理合约负责处理一种或多种配置交易类型的交易数据;
合约调用模块,用于基于目标资源管理合约调用区块链中的交易审批合约;
结果确定模块,用于通过交易审批合约对第一交易数据进行链上多重审批,得到链上多重审批结果;交易审批合约中记录有资源管理集合与N个审批对象集合之间的映射关系,一个资源管理合约与一个审批对象集合之间存在映射关系;第一交易数据的链上多重审批是指目标审批对象集合通过交易审批合约所执行的链上多重审批;目标审批对象集合是指N个审批对象集合中,与目标资源管理合约之间具有映射关系的审批对象集合;
交易上链模块,用于在确定第一交易数据的链上多重审批结果为审批通过结果时,通过目标资源管理合约将第一交易数据进行上链处理。
在一个实施例中,在交易获取模块获取第一交易数据以及第一交易数据所属的交易类型之前,基于区块链的数据处理装置还包括:
第一请求获取模块,用于获取关于资源管理合约集合的第一部署请求;第一部署请求中携带关于资源管理合约集合的合约映射表;合约映射表中记录有资源管理合约集合与配置交易类型集合之间的映射关系,资源管理合约中的一个资源管理合约,与配置交易类型集合中的一种或多种配置交易类型之间存在映射关系;
第一部署模块,用于基于第一部署请求将资源管理合约集合部署于区块链中;
类型记录模块,用于按照合约映射表中所包含的映射关系,记录区块链中的每个资源管理合约所负责的配置交易类型。
在一个实施例中,在类型记录模块按照合约映射表中所包含的映射关系,记录区块链中的每个资源管理合约所负责的配置交易类型之后,基于区块链的数据处理装置还包括:
第二请求获取模块,用于获取关于交易审批合约的第二部署请求;第二部署请求用于请求将交易审批合约部署于区块链中;交易审批合约中包含有资源管理合约集合与N个审批对象集合以及N个审批通过阈值之间的映射关系;一个资源管理合约与一个审批对象集合以及一个审批通过阈值之间存在映射关系;N为正整数;
第二部署模块,用于基于第二部署请求,将交易审批合约部署于区块链中。
在一个实施例中,合约确定模块按照第一交易数据所属的交易类型,在区块链的资源管理合约集合中确定用于处理第一交易数据的目标资源管理合约的具体实现方式,包括:
获取资源管理合约集合中,每个资源管理合约所负责的配置交易类型;
将每个资源管理合约所负责的配置交易类型,与第一交易数据所属的交易类型进行匹配;
将配置交易类型与第一交易数据所属的交易类型相匹配的资源管理合约,确定为用于处理第一交易数据的目标资源管理合约。
在一个实施例中,结果确定模块通过交易审批合约对第一交易数据进行链上多重审批,得到链上多重审批结果的具体实现方式,包括:
获取交易审批合约中所存储的关系映射表;关系映射表中包含有资源管理合约集合与N个审批对象集合以及N个审批通过阈值之间的映射关系,一个资源管理合约与一个审批对象集合以及一个审批通过阈值之间存在映射关系,N为正整数;
在交易审批合约中的关系映射表中,将与目标资源管理合约具有映射关系的审批对象集合确定为目标审批对象集合;
在交易审批合约中的关系映射表中,将与目标资源管理合约具有映射关系的审批通过阈值确定为目标审批通过阈值;
将第一交易数据发送至目标审批对象集合,通过目标审批对象集合与目标审批通过阈值对第一交易数据进行链上多重审批,得到链上多重审批结果。
在一个实施例中,结果确定模块通过目标审批对象集合与目标审批通过阈值对第一交易数据进行链上多重审批,得到链上多重审批结果的具体方式,包括:
接收目标审批对象集合中的M个审批对象分别发送的关于交易审批合约的合约调用请求;一个审批对象的合约调用请求用于请求提交对第一交易数据的审批结果至区块链上;M为小于或等于W的正整数;W是指目标审批对象集合所包含的审批对象的总数量;
统计M个审批结果中的一个或多个有效审批结果;
通过一个或多个有效审批结果以及目标审批通过阈值,确定第一交易数据的链上多重审批结果。
在一个实施例中,M个审批对象中包含审批对象Si,M个审批结果中包含审批对象Si对第一交易数据的审批结果Si;i为正整数;审批对象Si的合约调用请求中还包含目标资源管理合约;
结果确定模块统计M个审批结果中的一个或多个有效审批结果的具体实现方式,包括:
基于审批对象的合约调用请求中所包含的目标资源管理合约,在交易审批合约所包含的关系映射表中,获取与目标资源管理合约存在映射关系的目标审批对象集合;
遍历目标审批对象集合;
若目标审批对象集合中包含审批对象Si,则确定审批对象Si具备目标资源管理合约的审批权限,将审批对象Si对第一交易数据的审批结果Si确定为有效审批结果;
若目标审批对象集合中未包含审批对象Si,则确定审批对象Si不具备目标资源管理合约的审批权限,将审批对象Si对第一交易数据的审批结果Si确定为无效审批结果。
在一个实施例中,结果确定模块通过一个或多个有效审批结果以及目标审批通过阈值,确定第一交易数据的链上多重审批结果的具体方式,包括:
统计一个或多个有效审批结果所包含的审批通过结果的通过数量;
将通过数量与目标审批通过阈值进行比较;
按照通过数量与目标审批通过阈值之间的比较结果,确定第一交易数据的链上多重审批结果。
在一个实施例中,结果确定模块按照通过数量与目标审批通过阈值之间的比较结果,确定第一交易数据的链上多重审批结果的具体方式,包括:
若确定通过数量大于或等于目标审批通过阈值,则确定第一交易数据的链上多重审批结果为审批通过结果;
若确定通过数量小于目标审批通过阈值,则确定第一交易数据的链上多重审批结果为审批不通过结果。
在一个实施例中,基于区块链的数据处理装置还包括:
上链请求接收模块,用于接收关于第二交易数据的交易上链请求;交易上链请求用于请求将第二交易数据进行直接上链处理,交易上链请求携带第二交易数据的交易审批结果;
审批合约调用模块,用于基于交易上链请求调用交易审批合约;
审批属性确定模块,用于通过交易审批合约的历史审批交易数据集合确定第二交易数据的交易审批结果的审批属性;历史审批交易数据集合中的每个历史审批交易数据,均是指通过交易审批合约进行链上多重审批,且具备历史链上多重审批结果的交易数据;历史审批交易数据集合中包含第一交易数据;
信息推送模块,用于在确定交易审批结果的审批属性为链下审批属性时,将第二交易数据确定为异常交易数据,向第二交易数据的交易发送对象推送交易警示信息;交易警示信息用于警示交易发送对象第二交易数据的交易审批结果为无效审批结果。
在一个实施例中,审批属性确定模块通过交易审批合约确定第二交易数据的交易审批结果的审批属性,包括:
基于第二交易数据遍历历史审批交易数据集合;
若历史审批交易数据集合包含第二交易数据,则确定第二交易数据的交易审批结果的审批属性为链上审批属性;
若历史审批交易数据集合未包含第二交易数据,则确定第二交易数据的交易审批结果的审批属性为链下审批属性。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行本申请实施例中的方法。
本申请的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行本申请实施例中一方面提供的方法。
在本申请实施例中,引入交易审批合约,该交易审批合约会部署于区块链中,对于提交到区块链中的交易数据,会通过区块链中的交易审批合约对其进行链上多重审批,在确定链上多重审批结果为审批通过结果时,才会通过相应的资源管理合约将其进行上链处理。以第一交易数据为例,按照第一交易数据所属的交易类型会在区块链上确定出用于对其进行处理的目标资源管理合约,而在目标资源管理合约将该第一交易数据进行交易执行并上链之前,该目标资源管理合约会先调用交易审批合约对其进行链上多重审批,在审批通过后才会将其进行交易执行并上链。应当理解,通过在区块链上部署交易审批合约的方式,可以使得资源管理合约的审批流程在区块链上进行,该区块链上进行的审批流程是公开透明的,由此可以使得交易发起方难以绕过审批流程,那么交易发起方自行提交交易数据进行上链的可能性非常小,由此可以很好地提升交易数据的安全性;此外,由于交易数据的审批流程是公开透明的,那么对于交易数据的审批流也难以作假,那么由此也可以提升交易数据审批的公平性。综上,本申请通过部署交易审批合约的方式,将交易数据的审批流程应用到区块链上进行,可以大大提升交易审批的公开透明性与公平性,进而可以提升交易数据的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构图;
图2是本申请实施例提供的一种将交易数据进行上链的场景示意图;
图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图4是本申请实施例提供的一种将交易数据进行链上多重审批的流程示意图;
图5是本申请实施例提供的一种系统逻辑架构示意图;
图6是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图7是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例所提供的方法涉及到区块链等相关技术,为便于理解,以下将优先对区块链及其相关技术进行阐述:
1、区块链:狭义上,区块链是一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前获取的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求;广义上,区块链还指代区块链结构实现的分布式记账技术,包括分布式共识、隐私与安全保护、点对点通信技术、网络协议、智能合约等。区块链的目标是实现一个分布的数据记录账本,此账本只允许添加,不允许删除。账本底层的基本结构是一个线性的链表。链表由一个个“区块”串联组成,后继区块中记录前继区块的哈希(Hash)值,每个区块(以及区块中的交易)是否合法,可通过计算哈希值的方式进行快速检验。若网络中的节点提议添加一个新的区块,必须经过共识机制对区块达成共识确认。
2、区块链节点:区块链网络将节点区分为共识节点(也可以称作核心节点)、数据节点或轻节点。其中,共识节点负责区块链全网的共识业务;数据节点或轻节点负责同步共识节点的账本信息,即同步最新的区块数据。无论是共识节点还是数据节点(或轻节点),其内部构造都包括网络通信组件,因为区块链网络本质是一个点对点网络,需通过相关组件与区块链网络中的其他节点进行通信。区块链网络中的资源和服务都分散在各个节点上,信息的传输和服务的实现都直接在节点之间进行,无需中间环节或中心化的服务器(第三方)介入。
3、公钥(public key)与私钥(private key):公钥与私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密数据、验证数字签名等。通过这种算法能够确保得到的密钥对是唯一的,使用这种密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密,例如,用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。
4、智能合约(Smart Contract):是一种旨在以信息化方式传播、验证或执行合同的计算机协议。在区块链系统当中,智能合约(简称合约)是一种区块链各节点可以理解并执行的代码,可以执行任意逻辑并得到结果。在实际应用中,智能合约通过区块链上的交易来管理与试用。每条交易相当于对区块链系统的一个远程过程调用(Remote ProcedureCall,RPC)请求。如果说智能合约相当于可执行程序,区块链就相当于提供运行环境的操作系统。区块链可以包含多个合约,以合约账号(Identity,ID)、标识号或名称来区分。例如,智能合约中可以包含治理共识委员会合约,其主要用于管理共识节点,可以包括记录共识节点的节点状态,动态地加入共识节点,剔除异常共识节点等。
请参见图1,图1是本申请实施例提供的一种网络架构图。如图1所示,该网络架构可以包括终端设备集群10以及区块链网络,而区块链网络中可以包括核心节点(共识节点)集群1000、数据节点或轻节点集群100。该核心节点集群1000可以包括至少两个核心节点,数据节点集群100可以包括至少两个数据节点。如图1所示,该核心节点集群1000可以包括核心节点1000a、核心节点1000b、…、核心节点1000n,该数据节点集群100具体可以包括数据节点100a、数据节点100b、…、数据节点100n,该终端设备集群10具体可以包括终端设备10a、终端设备10b、…、终端设备10n。
如图1所示,终端设备10a、终端设备10b、…、终端设备10n可以分别与数据节点100a、数据节点100b、…、数据节点100n进行网络连接,以便于终端设备可以通过该网络连接与数据节点进行数据交互;数据节点100a、数据节点100b、…、数据节点100n可以分别与核心节点1000a、核心节点1000b、…、核心节点1000n进行网络连接,以便于数据节点可以通过该网络连接与核心节点进行数据交互;数据节点100a、数据节点100b、…、数据节点100n互相连接,以便于数据节点之间可以进行数据交互,核心节点1000a、核心节点1000b、…、核心节点1000n互相连接,以便于核心节点之间可以进行数据交互。
以终端设备10a、数据节点100a以及核心节点1000a为例,数据节点100a可以接收到终端设备10a发送的交易业务请求(该交易业务请求中携带智能合约的ID或名称),随后,数据节点100a可以通过数据节点集群100将该交易业务请求发送至核心节点1000a;而核心节点1000a可以运行该智能合约,并通过该智能合约执行该交易业务,得到执行结果后,可以将该执行结果存储至内存池(如交易池)中,并根据该执行结果生成新的区块;随后,核心节点1000a可以根据区块链网络中其他核心节点(即共识节点)的节点标识,将上述新生成的区块分别发送给其所在的区块链网络中的其他核心节点,由其他核心节点对新生成的区块进行校验(即进行共识),并在完成校验后将上述新生成的区块添加至其存储的区块链中(也就是说,在共识通过后将执行结果存储至区块链中)。其中,区块链网络中的每个核心节点,均具有与其对应的节点标识,而且区块链网络中的每个核心节点均可以存储有区块链网络中其他核心节点的节点标识,以便后续根据其他核心节点的节点标识,将生成的区块广播至区块链网络中的其他核心节点,使得区块链网络中全部核心节点上存储的数据均一致。
其中,如图1所示的终端设备具体可以是产生交易信息的业务方所使用的台式终端或移动终端,具体可以为智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视、智能音箱、台式计算机、智能手表、智能车载终端、智能语音交互设备等携带数据处理功能的智能终端,但并不局限于此。终端设备所产生的交易信息(交易数据)在经过用户授权后,可以经数据节点或轻节点传递至共识节点,共识节点可以将终端设备产生的交易信息(交易数据)记录至区块链上。数据节点集群100中的任一数据节点可以用独立的服务器或者是多个服务器组成的服务器集群来实现,核心节点集群1000中的任一核心节点可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
可以理解的是,终端设备的交易业务可以理解为交易数据,对于区块链存储交易数据的主要形式为:将交易数据以接力棒的形式传递至共识节点,共识节点再对接收到的交易数据进行交易验证,在交易验证通过后可以将其添加至自己的交易池中,在添加交易数据至自己的交易池之后,该共识节点可以将该交易数据广播至区块链的其他共识节点,而其他共识节点也会对该交易数据进行验证,然后再对该交易数据进行验证,在验证通过后可以将交易数据添加至自己的交易池中。进一步地,对于每个共识节点而言,在接收到出块信号(出块信号可以是指定时器发出的出块信号或交易池发出的出块信号)时,共识节点可以从交易池中获取一批交易数据来进行打包出块(即打包交易数据生成区块),对于生成的区块需要广播至每个共识节点,以使得所有的共识节点来对新生成的区块进行共识校验,在通过各个共识节点的共识后可以将区块添加到区块链上。
应当理解,由于区块链具备公开性、透明性、数据一致性等特点,所以当前区块链已经应用于多个领域中,例如,在金融、医疗、保险等领域中,相关金融企业(如银行)、医疗企业(如医疗机构)以及保险企业均采用区块链中的智能合约来管理企业的资源业务(这里的资源业务可以是指企业中产生的资金交易业务),也就是说,这些企业会在区块链中创建一个用于对企业的资源业务进行管理的智能合约,从而可以使得企业中产生的相关资源交易业务中的交易数据(如资源汇出交易、资源接收交易、资源抵押交易等等)能够通过智能合约在区块链上进行存储、更新等操作,该资源管理合约也可以理解为企业的钱包合约,有关于企业中的相关资源交易数据均可提交至钱包合约,再经由钱包合约执行该资源交易数据并将其上链至区块链上进行存储。
通常情况下,对于某个对象(如用户、智能机器人等)提交到钱包合约的交易数据(如资源交易数据,资源汇出交易、资源接收交易、资源抵押交易等),需要预先经过多个审批对象的审批才能够提交到钱包合约以进行执行并上链。例如,假设某个用户为企业中某个部门中的成员为例,该成员所发起的资源交易业务(也就是资源交易数据),需要交由部门中的多个审批者进行审批才能够顺利执行该资源交易业务,而在将该资源交易业务提交到企业的钱包合约后,该钱包合约不会再进行额外的校验,钱包合约会执行该资源交易业务,得到交易执行结果后,再将该资源交易业务与其交易执行结果添加到区块链上进行存储。可见,对于提交到区块链上的交易数据(也就是提交到钱包合约的交易数据),其审批流程是置于区块链之外的,该审批流程存在较大的安全隐患,提交交易数据的对象(也称之为交易发起方或交易提交对象)很容易绕过审批流程自行提交交易数据到区块链上进行执行上链,这样很可能会使得一些不合理的交易数据被绕过审批然后执行,交易数据的安全性很低;此外,倘若交易数据的审批流程未被绕过,但由于该审批流程是具备暗箱操作性的,那么很容易存在交易提交对象与交易数据的审批对象之间进行暗箱操作,从而使得不应该审批通过的交易数据的审批结果变成审批通过结果,这种情况也会使得一些不合理的交易数据被成功执行,交易数据的安全性无法得到保障。
基于此,为了提升提交到区块链上的交易数据的可靠性与安全性,本申请提出一种数据处理方法,具体是基于区块链对交易数据进行链上审批的方法,通过该方法可以将交易数据的审批流程变得公开透明,从而使得该交易数据的审批流程难以被绕过,且每个审批对象的审批结果都是公开的,那么由此可以提升交易数据审批的安全性与公正性,从而可以提升交易数据的可靠性与安全性。
具体的,本申请可以在区块链上部署一个智能合约作为交易数据的交易审批合约,该交易审批合约中存储有不同的资源管理合约(如钱包合约)与其对应的审批对象(审批对象的数量通常是多个,所以这里可以理解为是一个审批对象集合)之间的映射关系,同时还可以存储有与审批通过阈值之间的映射关系,那么将某个交易数据提交至相应的资源管理合约后,该资源管理合约即可调用交易审批合约,再通过交易审批合约中存储的映射关系,来查找到具有本资源管理合约的审批权限的审批对象集合以及审批通过阈值。进一步地,该资源管理合约即可将该交易数据发送至审批对象集合中的每个审批对象,由这些审批对象对该交易数据进行多重审批,而每个审批对象可以调用交易审批合约将自己对交易数据的审批结果提交到区块链上,那么资源管理合约即可通过该交易审批合约确定出每个审批对象对该交易数据的审批结果(包含审批通过结果与审批不通过结果),一旦有达到一定数量(即审批通过阈值所指示的数量)的审批对象的审批结果均为审批通过结果,那么即可确定该交易数据的审批结果为审批通过结果,资源管理合约即可执行该交易数据;否则可确定该交易数据的审批结果为审批不通过结果,资源管理合约不会执行该交易数据。也就是说,本方案可以通过交易审批合约来将交易数据(如下文提及的第一交易数据)进行链上多重审批,其具体过程主要是通过交易审批合约来收集到每个审批对象对交易数据的审批结果,再结合审批通过阈值来判断交易数据是否通过了审批。
可以理解的是,在区块链上可以部署有不同的资源管理合约,每个资源管理合约可以负责处理一种配置交易类型或多种配置交易类型的交易数据,其中,配置交易类型可以为预先配置的交易类型(如通过人为预先配置,配置交易类型如资源汇出类型、资源抵押类型、资源接收类型等。在资源管理合约为企业的资源管理合约时,该配置交易类型还可以按照部门的不同来进行配置,例如,一个部门可对应一种配置交易类型,那么不同的部门可以配置不同的资源管理合约,对于不同部门的交易数据可以提交至不同的资源管理合约,当然,两个或多个部门可以配置同一个资源管理合约来进行处理。对于配置交易类型的确定方法,本申请不进行限制,而对于资源管理合约所负责处理的配置交易类型,本申请对其确定方法也不进行限制,可以基于不同的业务场景进行不同的配置部署)。在部署完成资源管理合约与其负责处理的配置交易类型之后,本申请可以按照业务场景需求为每个资源管理合约配置审批对象(审批对象的数量通常为多个,可理解为为每个资源管理合约配置审批对象集合),那么提交到该资源管理合约的交易数据,可以均由配置的审批对象集合对其进行审批(审批对象的数量为多个时,对交易数据的审批可理解为多重审批,在多个审批对象中有超过一定数量的审批对象同意执行交易数据时,该交易数据才可被执行);而本申请通过部署交易审批合约的方式,可以使得审批对象对交易数据的审批流程能够在链上进行,每个审批对象对交易数据的审批结果均会提交到区块链上,该审批流程是公开透明的,那么由此可以提升交易数据的审批公正性;同时,由于将交易数据的审批流程置于链上,那么对于交易数据的审批流程是无法被绕过的,由此可以提升交易数据的审批可靠性与安全性,进而提升交易数据的可靠性与安全性。
为便于理解,以下以第一交易数据(任一个交易数据)为例,区块链在获取到该第一交易数据后,可以按照该第一交易数据所属的交易类型找到相应的资源管理合约以执行该第一交易数据并上链,这里可以将用于处理第一交易数据的资源管理合约称为目标资源管理合约。进一步地,目标资源管理合约即可调用区块链中的交易审批合约(具体可通过目标资源管理合约的合约地址来调用交易审批合约的地址),以通过交易审批合约查找到具备目标资源管理合约的审批权限的审批对象集合(即用于对第一交易数据进行审批的审批对象),随后,即可通过该交易审批合约与该审批对象对该第一交易数据进行链上多重审批(例如,目标资源管理合约所映射的审批对象集合可以调用交易审批合约来提交自己对第一交易数据的审批结果,然后目标资源管理合约可以通过该交易审批合约查看到每个审批对象对第一交易数据的审批结果,再结合与目标资源管理合约具有映射关系的审批通过阈值,即可判断该第一交易数据的链上多重审批结果是否为审批通过结果。换言之,对于第一交易数据的链上多重审批,可以是指与目标资源管理合约具有映射关系的目标审批对象集合通过交易审批合约所执行的链上多重审批,对于链上多重审批结果需要结合目标审批对象集合中每个审批对象的审批结果,以及与目标资源管理合约具有映射关系的目标审批通过阈值来共同确定),在确定链上多重审批结果为审批通过结果后,即可通过该目标资源管理合约将该第一交易数据进行执行以及上链处理。
可以理解的是,本申请的终端设备中可以安装有目标应用(即应用客户端),当该应用客户端运行于终端设备中时,可以与上述图1所示的区块链网络中的其他区块链节点之间进行数据交互。其中,该应用客户端可以包含多媒体客户端(例如,视频客户端)、娱乐客户端(例如,游戏客户端)、教育客户端、直播客户端等应用客户端。其中,该应用客户端可以为独立的客户端,也可以为集成在某客户端(例如,教育客户端以及多媒体客户端等)中的嵌入式子客户端,在此不做限定。本申请中区块链节点可以是指服务器,该服务器可以通过终端设备中的应用,与终端设备之间进行数据交互(如服务器可以接收到终端设备中的应用的业务数据(如用户产生的交易数据),服务器可以将这些业务数据进行处理并上链)。这里的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
可以理解的是,本发明实施例提供的方法可以由计算机设备执行,计算机设备包括但不限于终端设备或服务器(如业务服务器)。本发明实施例中的区块链节点可以为计算机设备。
需要说明的是,在本申请的具体实施方式中,涉及到用户信息、用户数据(如用户发起的交易信息、交易数据)等相关的数据,均是需要经过用户手动授权许可(即经过用户同意)才进行获取得到的。也就是说,当本申请以上实施例运用到具体产品或技术中时,本申请实施例所提供的方法与相关功能是在获得用户许可或者同意下所运行的(可以由用户主动开启本申请实施例所提供的功能),且相关数据的收集、使用和处理需要遵守相关地域、地区的相关法律法规和标准。
本申请实施例可应用于各种场景,包括但不限于游戏场景、金融场景、云技术、人工智能、智慧交通、辅助驾驶等。为便于理解,请参见图2,图2是本申请实施例提供的一种将交易数据进行上链的场景示意图。其中,如图2所示的场景是以游戏场景中的某个游戏企业为例进行说明的场景。如图2所示,对象a1可以是指该游戏企业中某个部门中的成员,对于该成员所提交的交易数据,可以将其提交至区块链中的相应的资源管理合约中。这里假设该游戏企业中的每个部门负责有不同的业务,那么每个部门所产生的交易数据的交易类型则是不同的,基于此,本申请可以预先在区块链中,为该游戏企业中的不同部门部署有相应的资源管理合约(即一个部门对应有一个资源管理合约,部门中产生的交易数据可以由对应的资源管理合约来进行处理),那么对于该对象a1所提交的交易数据,可以按照该交易数据所属的交易类型(或者是该对象a1所在的部门),提交到相应的资源管理合约中,该资源管理合约即可作为该交易数据的目标资源管理合约。
如图2所示,假设区块链中的资源管理合约201为该对象a所在部门所对应的资源管理合约,那么可以将该资源管理合约201作为该交易数据的目标资源管理合约,进一步地,该目标资源管理合约201在接收到该交易数据之后,即可调用交易审批合约。其中,这里的交易审批合约中可以部署有上述不同资源管理合约与其对应的审批对象、以及审批通过阈值之间的映射关系。具体的,通过上述可知,在区块链中已经为不同部门部署有相应的资源管理合约用于处理部门的交易数据,而每个部门可以按照游戏企业的业务需求,自行配置部门内部的审批对象(如部门部长、部门副部长、部门中的组长等等),以及每个部门的审批通过阈值(这里的审批通过阈值也就是指审批通过的限值,该审批通过阈值具体可以基于审批对象的数量来确定,该审批通过阈值应该达到甚至超过审批对象的总数量的一半。例如,部门的审批对象共有10个,那么审批通过阈值则应该为5个或5个以上,那么一旦有达到5个或5个以上的审批对象同意该交易数据执行(即审批通过),那么即可认为该交易数据的审批通过结果为审批通过结果,也就是说,该审批通过阈值是用于决策交易数据是否被审批通过的阈值)。每个资源管理合约可以对应有一批审批对象,以及一个审批通过阈值,也就是说,一个资源管理合约理应与一个审批对象集合、以及一个审批通过阈值(该审批对象集合的审批通过阈值)之间存在映射关系,这些映射关系可以存储于交易审批合约中,对于每个资源管理合约而言,在接收到交易数据之后,均需要调用该交易审批合约来查询与自己具有映射关系的审批对象集合以及审批通过阈值,随后该资源管理合约即可通过该交易审批合约,来让该审批对象集合在区块链上对该交易数据进行多重审批(即进行链上多重审批),并基于该审批通过阈值来判断交易数据的多重审批结果是否为审批通过结果。
那么基于此,目标资源管理合约201在调用交易审批合约后,即可查询到与目标资源管理合约201具有映射关系的审批对象集合为审批对象集合200、审批通过阈值为5,目标资源管理合约201可以将该接收到的交易数据发送至审批对象集合200,由审批对象集合200中的每个审批对象(包括审批对象2001至审批对象2009)对该交易数据进行审批,每个审批对象可以调用交易审批合约以将自己的审批结果(包括审批不通过结果与审批通过结果)提交到区块链上(即提交给交易审批合约),而目标资源管理合约201即可通过该交易审批合约获取到每个审批对象对该交易数据的审批结果,一旦确定有5个或5个以上审批对象的审批结果均为审批通过结果,那么即可确定该交易数据的链上多重审批结果为审批通过结果,该目标资源管理合约201即可将该交易数据进行执行并进行上链处理,再向对象a1返回一个上链结果(即成功上链结果);若目标资源管理合约确定未有5个或5个以上审批对象的审批结果均为审批通过结果(即仅有5个以下数量的审批对象为审批通过结果,其余均未审批不通过结果),那么即可确定该交易数据的链上多重审批结果为审批不通过结果,该目标资源管理合约201不可执行该交易数据,该目标资源管理合约201可以向对象a1返回一个上链结果(上链失败结果)。
应当理解,对于提交到资源管理合约的交易数据,需要通过交易审批合约来确定交易数据的审批对象集合,这些审批对象集合需要通过交易审批合约来提交自己对交易数据的审批结果,由此可以使得每个审批对象对交易数据的审批均在区块链上进行,公开透明难以作假,可以提升交易数据的审批公正性;同时,由于交易数据的审批流置于区块链上,那么对于交易数据的审批流程是难以被绕过的,每个添加到区块链上的交易数据均是经过审批流程的,由此也可以提升交易数据的可靠性与安全性。
为便于理解,接下来将结合附图对本申请实施例提供的基于区块链的数据处理方法进行详细描述。请参见图3,图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。该流程可以由计算机设备来执行,该计算机设备可为如图1所示的终端设备,也可以是指某个服务器。如图3所示,该流程可以至少包括以下步骤S101-步骤S104:
步骤S101,获取第一交易数据以及第一交易数据所属的交易类型。
本申请中,交易数据可以由任一对象(如用户、智能机器人等)发送到区块链,该交易数据可以由区块链中的节点提交到相应的智能合约(这里的智能合约可以是指用于处理不同交易数据的资源管理合约)中,由智能合约执行相应的程序来执行交易数据得到交易执行结果,然后再将该交易数据以及其交易执行结过生成区块提交到区块链上进行存储。也就是说,区块链中的节点(如共识节点)在接收到交易数据之后,可以调用相应的资源管理合约(部署于区块链中的某个智能合约),以通过该资源管理合约执行该交易数据得到交易执行结果,并将该交易数据以及其交易执行结果存储到区块链上。而这里的第一交易数据可以是指任一对象提交到区块链中的任一交易数据(也就是区块链的节点所接收到的某个交易数据),区块链中的节点(如共识节点,以下将称之为区块链节点)在接收到第一交易数据之后,可以获取到该第一交易数据所属的交易类型,以基于该交易类型确定出用于处理该第一交易数据的资源管理合约为哪一个,这里可以将用于处理第一交易数据的资源管理合约称之为目标资源管理合约。
其中,交易数据的交易类型等同于交易数据所属的业务类型,业务类型(交易类型)可以基于不同的业务场景来进行配置确定,例如,在金融场景中,业务类型(交易类型)可以包括资源汇出类型、资源兑换类型、资源抵押类型等等;在游戏场景中,业务类型可以包括虚拟角色的属性(如外形、角色攻击力等属性)更新的类型、账户充值类型等等。当然,在一些场景中,交易数据的交易类型还可以按照所属组织的不同来进行简单划分,例如,在游戏场景的某个游戏企业中,可以包含有不同的部门,那么这里可以按照部门的不同来配置交易数据的交易类型,具体的,假设游戏企业中存在游戏部门1、游戏部门2以及游戏部门3,那么该交易数据的交易类型即可划分为交易类型1、交易类型2以及交易类型3。对于交易数据的交易类型的具体配置确定方式,当然并不限制于此,这里将不再进行一一举例说明。
换句话说,本申请需要先在区块链上部署资源管理合约,然后再接收交易数据,并按照交易数据所属的交易类型确定相应的资源管理合约。即在获取第一交易数据与第一交易数据所属的交易类型之前,本申请可以获取关于资源管理合约集合的第一部署请求;其中,第一部署请求中携带关于资源管理合约集合的合约映射表,该合约映射表中记录有资源管理合约集合与配置交易类型集合之间的映射关系,资源管理合约中的一个资源管理合约,与配置交易类型集合中的一种或多种配置交易类型之间存在映射关系;进一步地,可以基于第一部署请求将资源管理合约集合部署于区块链中;按照合约映射表中所包含的映射关系,可以记录区块链中的每个资源管理合约所负责的配置交易类型。由此,即可将每个资源管理合约部署在区块链上,同时,在区块链上记录了每个资源管理合约所负责的配置交易类型,那么在接收到第一交易数据后,即可按照第一交易数据所属的交易类型与各个资源管理合约所负责的配置交易类型,确定出用于处理第一交易数据的目标资源管理合约。对于按照第一交易数据所属的交易类型,在区块链的资源管理合约集合中确定用于处理第一交易数据的目标资源管理合约的具体实现方式可为:可以获取资源管理合约集合中,每个资源管理合约所负责的配置交易类型;进一步地,可以将每个资源管理合约所负责的配置交易类型,与第一交易数据所属的交易类型进行匹配;将配置交易类型与第一交易数据所属的交易类型相匹配的资源管理合约,确定为用于处理第一交易数据的目标资源管理合约。具体的,若某个资源管理合约所负责的配置交易类型,为该第一交易数据所属的交易类型,或包含有该第一交易数据所属的交易类型,则可将该资源管理合约确定为目标资源管理合约,在后续可由该目标资源管理合约处理该第一交易数据。
步骤S102,按照第一交易数据所属的交易类型,在区块链的资源管理合约集合中确定用于处理第一交易数据的目标资源管理合约;资源管理合约集合中的一个资源管理合约负责处理一种或多种配置交易类型的交易数据。
本申请中,在区块链中可以部署多个智能合约,每个智能合约中包含有不同的资源管理程序,通过这些资源管理程序可以执行不同的逻辑,这些智能合约可以作为资源管理合约,能够用于处理不同交易类型的交易数据,例如,以交易数据的交易类型包括交易类型1、交易类型2以及交易类型3为例,可以在区块链中部署资源管理合约1、资源管理合约2以及资源管理合约3,资源管理合约1可以用于处理所属交易类型为交易类型1的交易数据,资源管理节约2可以用于处理所属交易类型为交易类型2的交易数据,资源管理合约3可以用于处理所属交易类型为交易类型3的交易数据。
需要说明的是,本申请中的一个资源管理合约,其负责处理的交易类型并不局限于一种,即一个资源管理合约可以负责处理一种或多种交易类型的交易数据,而本申请可以将预先配置的资源管理合约所负责处理的交易类型称为配置交易类型,也就是说,本申请中区块链中所部署的每个资源管理合约,均需要负责处理一种或多种配置交易类型的交易数据。
应当理解,区块链中所部署的各个资源管理合约,可以共同组成资源管理合约集合,对于第一交易数据而言,在获取到第一交易数据之后,即可按照该第一交易数据所属的交易类型,在区块链的资源管理合约集合中确定用于处理第一交易数据的资源管理合约,该用于处理第一交易数据的资源管理合约可称为目标资源管理合约,该目标资源管理合约所负责处理的配置交易类型,是包含有该第一交易数据所属的交易类型的。
步骤S103,基于目标资源管理合约调用区块链中的交易审批合约,通过交易审批合约对第一交易数据进行链上多重审批,得到链上多重审批结果;所述交易审批合约中记录有所述资源管理集合与N个审批对象集合之间的映射关系,一个所述资源管理合约与一个所述审批对象集合之间存在映射关系;所述第一交易数据的链上多重审批是指目标审批对象集合通过所述交易审批合约所执行的链上多重审批;所述目标审批对象集合是指所述N个审批对象集合中,与所述目标资源管理合约之间具有映射关系的审批对象集合。
本申请中,为了提升提交至区块链中交易数据的可靠性与安全性,本申请可以在区块链中部署交易审批合约,再通过该交易审批合约来将每个交易数据进行链上审批,由此即可将交易数据的审批流程置于链上,除了能够带来实现交数据的审批流程公开透明以外,还可以使得交易数据的审批流程难以被忽略,由此可以确保交易数据的审批公正性,提升交易数据的可靠性与安全性。
具体的,对于部署于区块链上的每一个资源管理合约,本申请可以配置审批对象,一个资源管理合约的审批对象可以为一个或多个(多个通常是指两个及两个以上),那么这些审批对象可以对资源管理合约负责处理的交易数据进行审批(审批对象为多个时,对交易数据的审批即可理解为多重审批),一旦存在有一定数量的审批对象对交易数据的审批结果均为审批通过结果,那么即可认为该交易数据的审批结果为审批通过结果,该资源管理合约可以执行该交易数据并将交易数据的交易执行结果上链。例如,假设某个资源管理合约的审批对象为10个,对于提交到该资源管理合约的交易数据,10个审批对象需要对交易数据进行审批,若有6个审批对象对交易数据的审批结果均为审批通过结果,那么该资源管理合约即可确定该交易数据的审批结果为审批通过结果,可以对该交易数据进行执行得到交易执行结果,并将交易数据与其交易执行结果进行上链处理。也就是说,对于每个资源管理合约的审批对象而言,应当存在一个数值,用于判断交易数据的审批结果是否为审批通过结果,本申请可以将该数值称之为审批通过阈值,只有在审批结果为审批通过结果的审批对象的数量,达到或超过该审批通过阈值的情况下,才会将交易数据的审批结果确定为审批通过结果。
可以理解的是,本申请可以基于不同业务场景的不同业务需求,为每个资源管理合约配置不同的审批对象,同时配置这些审批对象的审批通过阈值,换言之,一个资源管理合约应该配置有一个审批对象集合(该审批对象集合中可能包含一个审批对象,也可能包含多个审批对象),同时还配置有一个审批通过阈值,而本申请可以在区块链中部署一个智能合约,并在该智能合约中存储每个资源管理合约、资源管理合约的审批对象集合、资源管理合约的审批通过阈值之间的映射关系,该存储有资源管理合约、资源管理合约的审批对象集合、资源管理合约的审批通过阈值之间的映射关系的智能合约,本申请可称之为交易审批合约,那么对于每个资源管理合约而言,在接收到某个交易数据之后,即可调用该交易审批合约来查询该交易数据的审批对象集合,并将该交易数据发送至该审批对象集合,而审批对象集合也可以通过该交易审批合约在区块链上对交易数据进行多重审批(由于审批对象集合是在区块链上对交易数据进行多重审批,那么可以将这个多重审批过程称为链上多重审批),资源管理合约可以结合具有映射关系的审批通过阈值来判断审批对象集合所审批的交易数据是否通过了审批。
也就是说,本申请在区块链中部署资源管理合约集合以及每个资源管理合约所负责的配置交易类型之后,还可以在区块链中部署交易审批合约,以存储资源管理合约、审批对象集合以及审批通过阈值之间的映射关系。即,在按照合约映射表中所包含的映射关系,记录区块链中的每个资源管理合约所负责的配置交易类型之后,还可以获取关于交易审批合约的第二部署请求;其中,第二部署请求用于请求将交易审批合约部署于区块链中;该交易审批合约中包含有资源管理合约集合与N(N为正整数)个审批对象集合以及N个审批通过阈值之间的映射关系;且资源管理合约集合中的一个资源管理合约,与N个审批对象集合中的一个审批对象集合以及N个审批通过阈值中的一个审批通过阈值之间存在映射关系;进一步地,基于第二部署请求,可以将交易审批合约部署于区块链中。通过在区块链中部署该交易审批合约,即可将资源管理合约、审批对象集合以及审批通过阈值之间的映射关系存储到区块链上,在后续对交易数据进行审批时,即可基于区块链中所存储的这些映射关系来进行交易审批。
为便于理解交易审批合约,请一并参见表1,表1是本申请实施例提供的一种交易审批合约所存储的内容的示例,如表1所示:
表1
钱包地址1——>{审批对象a1,审批对象b1,…,审批对象z1},审批通过阈值5 |
钱包地址2——>{审批对象a2,审批对象b2,…,审批对象z2},审批通过阈值2 |
钱包地址3——>{审批对象a3,审批对象b3,…,审批对象z3},审批通过阈值3 |
其中,如表1所示的钱包地址可以是指资源管理合约的合约地址,例如,钱包地址1可以是指资源管理合约1的合约地址,钱包地址2可以是指资源管理合约2的合约地址,钱包地址3可以是指资源管理合约3的合约地址。通过表1所示的交易审批合约可知,该资源管理合约1的审批对象集合为{审批对象a1,审批对象b1,…,审批对象z1},该资源管理合约1的审批通过阈值为5;该资源管理合约2的审批对象集合为{审批对象a2,审批对象b2,…,审批对象z2},该资源管理合约2的审批通过阈值为2,该资源管理合约1的审批通过阈值为5;该资源管理合约3的审批对象集合为{审批对象a3,审批对象b3,…,审批对象z3},该资源管理合约3的审批通过阈值为3。那么通过该如表1所示的交易审批合约,即可确定出资源管理合约1、资源管理合约2以及资源管理合约的审批对象集合以及审批通过阈值。
具体的,以第一交易数据为例,对于目标资源管理合约,即可通过该目标资源管理合约调用交易审批合约(例如,以目标资源管理合约的合约地址为参数来调用交易审批合约),通过交易审批合约即可确定出该目标资源管理合约的审批对象集合以及审批通过阈值,进一步地,即可将该第一交易数据发送至审批对象集合,该审批对象集合即可再通过该交易审批合约来对该第一交易数据进行链上多重审批,而目标资源管理合约即可基于第一交易数据的链上多重审批结果来确定是否执行第一交易数据以及将其进行上链处理,若第一交易数据的链上多重审批结果为审批通过结果,即可通过目标资源管理合约来执行第一交易数据并将其进行上链处理,而若第一交易数据的链上多重审批结果为审批不通过结果,则该第一交易数据是不能够进行执行的。
基于上述可知,对于通过交易审批合约对第一交易数据进行链上多重审批,得到链上多重审批结果的具体实现方式,可为:可以获取交易审批合约中所存储的关系映射表;其中,关系映射表中包含有资源管理合约集合与N(N为正整数)个审批对象集合以及N个审批通过阈值之间的映射关系,一个资源管理合约与一个审批对象集合以及一个审批通过阈值之间存在映射关系;进一步地,即可在交易审批合约中的关系映射表中,将与目标资源管理合约具有映射关系的审批对象集合确定为目标审批对象集合;在交易审批合约中的关系映射表中,将与目标资源管理合约具有映射关系的审批通过阈值确定为目标审批通过阈值;可以将第一交易数据发送至目标审批对象集合,再通过目标审批对象集合与该目标审批通过阈值对第一交易数据进行链上多重审批,由此可以得到链上多重审批结果。对于目标审批对象集合与该目标审批通过阈值对第一交易数据进行链上多重审批的具体方式,具体可以是指通过调用交易审批合约来提交对第一交易数据的审批结果,由此即可使得每个审批对象对第一交易数据的审批结果是公开于区块链上的,随后即可基于每个审批对象对第一交易数据的审批结果,再结合目标审批通过阈值来确定第一交易数据的链上多重审批结果。对于通过目标审批对象集合与目标审批通过阈值对第一交易数据进行链上多重审批,得到第一交易数据的链上多重审批结果的具体实现方式,可以参见后续实施例中的描述。
综上可见,对于第一交易数据的链上多重审批而言,其需要目标审批对象集合通过交易审批合约来在链上执行多重审批(即执行链上多重审批),而对于第一交易数据的链上多重审批结果,可以结合目标审批通过阈值,与目标审批对象集合中每个审批对象对第一交易数据的审批结果来共同确定。
步骤S104,在确定第一交易数据的链上多重审批结果为审批通过结果时,通过目标资源管理合约将第一交易数据进行上链处理。
本申请中,对于第一交易数据的链上多重审批结果可以包括审批通过结果与审批不通过结果,在确定第一交易数据的链上多重审批结果为审批不通过结果时,即可不执行该第一交易数据(此种情况下可以向第一交易数据的交易提交对象推送一个交易上链失败的通知,以提示该第一交易数据的审批未通过,无法执行并上链);而在确定该第一交易数据的链上多重结果为审批通过结果时,即可通过该目标资源管理合约执行该第一交易数据,得到第一交易数据的交易执行结果,再将该第一交易数据与该第一交易数据的交易执行结果进行上链处理。对于上链过程可以是常规的先将交易数据进行打包生成区块,然后对区块进行共识,在区块通过共识后将区块添加到区块链上的流程,这里对于交易数据的上链处理的过程将不进行详细阐述。
应当理解的是,对于某个交易数据而言,通过在区块链中部署资源管理合约与交易审批合约的方式,可以使得交易数据的审批流程需要通过交易审批合约才能够进行,由此可以将交易数据的审批流程置于区块链,将交易数据的审批流程变得具备公开透明性,由此可以使得交易数据的审批流程难以作假,且无法被绕过,那么在交易数据执行上链之前,是必须会经过审批流程的,由此可以提升交易数据的可靠性与审批公正性。基于此,假设某个对象期望绕过审批流程,直接将某个交易数据进行执行并上链,但是由于区块链中交易审批合约的存在,可以验证该交易数据是否经过了审批流程,若该交易数据确实是通过了审批,才可将该交易数据进行执行上链处理。
以第二交易数据为例,在将上述第一交易数据成功上链之后,假设接收到了关于第二交易数据的交易上链请求(用于请求直接执行该第二交易数据并进行上链处理),那么此时理应通过交易审批合约来验证该第二交易数据是否是经过了审批的交易数据,只有确定该第二交易数据是通过了链上多重审批的交易数据的情况下,才能够将该第二交易数据进行上链处理。具体的,若接收到关于第二交易数据的交易上链请求,其中,交易上链请求用于请求将第二交易数据进行直接上链处理(将该第二交易数据直接进行执行并上链处理),且交易上链请求携带第二交易数据的交易审批结果;进一步地,可以基于交易上链请求调用交易审批合约,通过交易审批合约的历史审批交易数据集合可以确定第二交易数据的交易审批结果的审批属性;其中,历史审批交易数据集合中的每个历史审批交易数据,均是指通过交易审批合约进行链上多重审批,且具备历史链上多重审批结果的交易数据;应当理解的是,该历史审批交易数据集合中是包含有上述第一交易数据的;进一步地,在确定交易审批结果的审批属性为链下审批属性时,可以将第二交易数据确定为异常交易数据,并向第二交易数据的交易发送对象推送交易警示信息;其中,交易警示信息用于警示交易发送对象第二交易数据的交易审批结果为无效审批结果。
可以理解的是,通过本申请中所设置的交易审批合约,可以将交易数据的审批流程置于区块链上,那么可以将交易数据的审批流程设置为只能通过交易审批合约来进行审批的流程,任一交易数据只能通过交易审批合约来进行链上多重审批,若采用链下审批的方式或不审批的方式,均无法通过验证,该交易数据的交易审批结果均会被认为是无效审批结果。那么对于上述第二交易数据而言,假设该第二交易数据是经过链下审批的(即并未通过交易审批合约来进行审批),那么对于该第二交易数据而言是无法执行也无法上链的。对于任一交易数据,只能通过交易审批合约来进行链上多重审批这种审批方式来进行审批,由此才能够使得交易数据的审批流程变得具备公开透明性,由此提升交易数据的审批公正性与可靠性。
其中,对于通过交易审批合约确定第二交易数据的交易审批结果的审批属性的具体实现方式,可为:基于第二交易数据可以遍历历史审批交易数据集合;若历史审批交易数据集合包含第二交易数据,则可以确定第二交易数据的交易审批结果的审批属性为链上审批属性;而若历史审批交易数据集合未包含第二交易数据,则可以确定第二交易数据的交易审批结果的审批属性为链下审批属性。也就是说,在第二交易数据之前,对于通过交易审批合约来进行链上多重审批的交易数据,均可以作为历史审批交易数据,这些历史审批交易数据均会进行记录,这些历史审批交易数据可以组成历史审批交易数据集合,在接收到第二交易数据的交易上链请求之后,即可通过该历史审批交易数据集合,来确定该第二交易数据是否为通过交易审批合约来进行审批的交易数据,若交易审批合约的历史审批交易数据集合中未包含有该第二交易数据,则可以确定该第二交易数据的交易审批结果并非为链上审批得到的结果,其审批属性可为链下审批属性,由于链下审批的过程并不具备公开性,可能存在暗箱作假的情况,所以对于该交易审批结果是不具备足够的可靠性的,那么在确定交易审批结果的审批属性为链下审批属性时,即可将第二交易数据确定为异常交易数据,并向第二交易数据的交易发送对象推送交易警示信息,用以警示交易发送对象该第二交易数据的交易审批结果是无效的,无法将该第二交易数据进行执行上链处理。
在本申请实施例中,引入交易审批合约,该交易审批合约会部署于区块链中,对于提交到区块链中的交易数据,会通过区块链中的交易审批合约对其进行链上多重审批,在确定链上多重审批结果为审批通过结果时,才会通过相应的资源管理合约将其进行上链处理。以第一交易数据为例,按照第一交易数据所属的交易类型会在区块链上确定出用于对其进行处理的目标资源管理合约,而在目标资源管理合约将该第一交易数据进行交易执行并上链之前,该目标资源管理合约会先调用交易审批合约对其进行链上多重审批,在审批通过后才会将其进行交易执行并上链。应当理解,通过在区块链上部署交易审批合约的方式,可以使得资源管理合约的交易数据的审批流程在区块链上进行,该区块链上进行的审批流程是公开透明的,由此可以使得交易发起方难以绕过审批流程,那么交易发起方自行提交交易数据进行上链的可能性非常小,由此可以很好地提升交易数据的安全性;此外,由于交易数据的审批流程是公开透明的,那么对于交易数据的审批流也难以作假,那么由此也可以提升交易数据审批的公平性。综上,本申请通过部署交易审批合约的方式,将交易数据的审批流程应用到区块链上进行,可以大大提升交易审批的公开透明性与公平性,进而可以提升交易数据的安全性。
进一步地,请参见图4,图4是本申请实施例提供的一种将交易数据进行链上多重审批的流程示意图。其中,该流程可以对应于上述图3所对应实施例中,对于通过目标审批对象集合与目标审批通过阈值对第一交易数据进行链上多重审批,得到链上多重审批结果的流程。如图4所示,该流程可以至少包括以下步骤S401-步骤S403:
步骤S401,接收目标审批对象集合中的M个审批对象分别发送的关于交易审批合约的合约调用请求;一个审批对象的合约调用请求用于请求提交对第一交易数据的审批结果至区块链上;M为小于或等于W的正整数;W是指目标审批对象集合所包含的审批对象的总数量。
具体的,基于上述可知,在确定第一交易数据的目标审批对象集合后,可以将第一交易数据发送至目标审批对象集合,而目标审批对象集合中的每个审批对象可以对该第一交易数据进行审批,得到一个审批结果,该审批结果可以包含审批通过结果与审批不通过结果,每个审批对象可以调用该交易审批合约,以将自己的审批结果提交到交易审批合约(也就是提交到区块链上)。需要说明的是,目标审批对象集合中的部分审批对象若不同意执行该第一交易数据(即对第一交易数据的审批结果为审批不通过结果),那么该审批对象也可选择不提交该第一交易数据的审批结果,若交易审批合约未接收到该审批对象的审批结果,可默认为该审批对象的审批结果为审批不通过结果。
基于此,对于目标审批对象集合而言,其可能存在有M(M为小于或等于W的正整数,且W是指目标审批对象集合中所包含的审批对象的总数量)个审批对象会调用交易审批合约,那么计算机设备(区块链节点)则会接收到M个审批对象发送的关于该交易审批合约的合约调用请求,每个合约调用请求均是用于请求提交自己对该第一交易数据的审批结果(提交至区块链上)。需要说明的是,每个合约调用请求中需要包含有第一交易数据(可包含有用于表征第一交易数据的交易信息,如交易哈希)、用于处理该第一交易数据的目标资源管理合约的合约地址以及对该第一交易数据的审批结果,通过该第一交易数据的交易信息以及目标资源管理合约的合约地址,区块链节点才可明确该审批对象所审批的交易数据为第一交易数据,且该第一交易数据的合约为目标资源管理合约。
步骤S402,统计M个审批结果中的一个或多个有效审批结果。
具体的,对于计算机设备而言,接收到的每一个审批结果均需要验证其是否为有效审批结果,具体可以通过合约调用请求中包含的合约地址,来确定该审批对象是否具备该第一交易数据的审批权限,若具备则可以确定该审批结果为有效审批结果。为便于理解,以M个审批对象中包含审批对象Si(i为正整数)为例,那么M个审批结果中可以包含该审批对象Si对第一交易数据的审批结果Si,且审批对象Si的合约调用请求中还包含该目标资源管理合约(具体可包含该目标资源管理合约的合约地址),对于统计M个审批结果中的一个或多个有效审批结果的具体实现方式,可为:基于审批对象的合约调用请求中所包含的目标资源管理合约,可以在交易审批合约所包含的关系映射表中,获取与目标资源管理合约存在映射关系的目标审批对象集合;进一步地,可以遍历目标审批对象集合;若目标审批对象集合中包含审批对象Si,则可以确定审批对象Si具备目标资源管理合约的审批权限,并将审批对象Si对第一交易数据的审批结果Si确定为有效审批结果;而若目标审批对象集合中未包含审批对象Si,则可以确定审批对象Si不具备目标资源管理合约的审批权限,可以将审批对象Si对第一交易数据的审批结果Si确定为无效审批结果。
那么确定审批结果Si是否为有效审批结果的方式,可以确定出M个审批结果中,每个审批结果的有效性(即每个审批结果为有效审批结果还是为无效审批结果),由此即可确定出M个审批结果中所包含的一个或多个有效审批结果。
步骤S403,通过一个或多个有效审批结果以及目标审批通过阈值,确定第一交易数据的链上多重审批结果。
具体的,对于通过一个或多个有效审批结果,确定第一交易数据的链上多重审批结果的具体实现方式,可为:可以统计一个或多个有效审批结果所包含的审批通过结果的通过数量;进一步地,可以将通过数量与目标审批通过阈值进行比较;按照通过数量与目标审批通过阈值之间的比较结果,即可确定第一交易数据的链上多重审批结果。
其中,对于按照通过数量与目标审批通过阈值之间的比较结果,确定第一交易数据的链上多重审批结果的具体实现方式,可为:若确定通过数量大于或等于目标审批通过阈值,则可以确定第一交易数据的链上多重审批结果为审批通过结果;而若确定通过数量小于目标审批通过阈值,则可以确定第一交易数据的链上多重审批结果为审批不通过结果。
应当理解的是,有效审批结果中可能包含有部分为审批通过结果,也可能包含有部分为审批不通过结果。若有效审批结果中的审批通过结果的通过数量,大于或等于了目标审批通过阈值,则可以确定目标审批对象集合中有满足数量的审批对象均同意执行该第一交易数据,可以确定第一交易数据的链上多重审批结果为审批通过结果;反之,若有效审批结果中的审批通过结果的通过数量,小于了目标审批通过阈值,则可以确定目标审批对象集合中未有满足数量的审批对象同意执行该第一交易数据,可以确定第一交易数据的链上多重审批结果为审批不通过结果。
在本申请实施例中,引入交易审批合约,该交易审批合约会部署于区块链中,对于提交到区块链中的交易数据,会通过区块链中的交易审批合约对其进行链上多重审批,在确定链上多重审批结果为审批通过结果时,才会通过相应的资源管理合约将其进行上链处理。通过在区块链上部署交易审批合约的方式,可以使得资源管理合约的交易数据的审批流程在区块链上进行,该区块链上进行的审批流程是公开透明的,由此可以使得交易发起方难以绕过审批流程,那么交易发起方自行提交交易数据进行上链的可能性非常小,由此可以很好地提升交易数据的安全性;此外,由于交易数据的审批流程是公开透明的,每个审批对象的审批结果均需提交到区块链上进行公开,那么对于交易数据的审批流也难以作假,那么由此也可以提升交易数据审批的公平性。综上,本申请通过部署交易审批合约的方式,将交易数据的审批流程应用到区块链上进行,可以大大提升交易审批的公开透明性与公平性,进而可以提升交易数据的安全性。
进一笔地,请参见图5,图5是本申请实施例提供的一种系统逻辑架构示意图。如图5所示,该系统逻辑架构中至少可以包括终端设备、资源管理合约、交易审批合约以及区块链。为便于理解,以下将对该系统逻辑架构中的各个组成部分进行阐述:
终端设备:终端设备中可以安装有应用客户端,当应用客户端运行于终端设备时,可以与区块链中的区块链节点之间进行数据交互。例如,区块链节点可以采集到对象(用户或智能机器人)在应用客户端中所产生的交易数据,区块链节点可以基于交易数据所属的交易类型调用相应的资源管理合约。这里的应用客户端可以包括但不限于资源管理客户端(如资源转账客户端)、多媒体客户端、娱乐客户端、教育客户端等等,这里将不再进行一一举例说明。
资源管理合约:资源管理合约可以调用交易审批合约,以查询对交易数据进行审批的审批对象集合,以及审批通过阈值,而对于查询到的审批通过阈值,资源管理合约可以与交易数据的交易哈希一起进行关联存储。具体的,资源管理合约中可以存储有哈希映射表,该哈希映射表中可以记录有不同对象发起的交易数的交易哈希、交易数据的交易参数(可以包括交易对象(如转账对象)、交易资源量(如交易金额)、交易用途等等)以及交易通过审批所需要的票数(也就是交易审批合约中所存储的审批通过阈值),其中,这里的交易参数可以是对象在提交交易数据时所输入的参数,即交易参数可以由交易发起对象所输入确定,而交易通过审批所需要的票数则可以在交易审批合约中查询得到。如图5所示,对于资源管理合约所接收到的交易数据1而言,其交易哈希为交易哈希1,资源管理合约可以从交易审批合约中查询该交易数据1所对应的审批通过阈值(也就是交易审批合约中,与该资源管理合约的合约地址具有映射关系的审批通过阈值),该审批通过阈值即可作为与该交易哈希1具有映射关系的需要的票数,可以与其建立映射关系;同理,对于接收到的交易数据2而言,在资源管理合约中也可以存储交易哈希2、转账参数以及需要的票数之间的映射关系;对于接收到的交易数据3而言,在资源管理合约中也可以存储交易哈希3、转账参数以及需要的票数之间的映射关系。对于该资源管理合约中的哈希映射表的数据结构可为mappint(bytes32=>{bytes,uint256})。
交易审批合约:交易审批合约中可以存储有审批映射表,该审批映射表中可以记录有不同资源管理合约的合约地址、审批对象集合以及审批通过阈值之间的映射关系,例如,如图5所示,该交易审批合约中存储有合约地址1(资源管理合约1的合约地址)、资源管理合约1的审批对象集合以及审批通过阈值之间的映射关系;存储有合约地址2(资源管理合约2的合约地址)、资源管理合约2的审批对象集合以及审批通过阈值之间的映射关系;存储有合约地址3(资源管理合约3的合约地址)、资源管理合约3的审批对象集合以及审批通过阈值之间的映射关系。通过该交易审批合约,可以确定提交至不同资源管理合约的交易数据的审批对象集合以及审批通过阈值(交易通过审批所需要的票数)。交易数据的每个审批对象可以调用交易审批合约以提交自己对交易数据的审批结果,而上述资源管理合约可以通过该交易审批合约获取到每个审批对象对交易数据的审批结果,从而可以确定该交易数据的多重审批结果是否为审批通过结果,在确定交易数据通过审批后,即可获取到这个交易数据的转账参数,并按照该转账参数执行交易数据,得到一个交易执行结果,资源管理合约之后可以将该交易数据与其交易执行结果添加到区块链上(即上链处理)。
对于该系统逻辑架构中的各个组成部分的具体实现方式,可以参见前文所对应实施例中的描述,这里将不再进行赘述,其带来的有益效果,也不再进行过于赘述。
进一步地,请参见图6,图6是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。该基于区块链的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该基于区块链的数据处理装置为一个应用软件;该基于区块链的数据处理装置可以用于执行图3所示的方法。如图6所示,该基于区块链的数据处理装置1可以包括:交易获取模块11、合约确定模块12、合约调用模块13、结果确定模块14以及交易上链模块15。
交易获取模块11,用于获取第一交易数据以及第一交易数据所属的交易类型;
合约确定模块12,用于按照第一交易数据所属的交易类型,在区块链的资源管理合约集合中确定用于处理第一交易数据的目标资源管理合约;资源管理合约集合中的一个资源管理合约负责处理一种或多种配置交易类型的交易数据;
合约调用模块13,用于基于目标资源管理合约调用区块链中的交易审批合约;
结果确定模块14,用于通过交易审批合约对第一交易数据进行链上多重审批,得到链上多重审批结果;交易审批合约中记录有资源管理集合与N个审批对象集合之间的映射关系,一个资源管理合约与一个审批对象集合之间存在映射关系;第一交易数据的链上多重审批是指目标审批对象集合通过交易审批合约所执行的链上多重审批;目标审批对象集合是指N个审批对象集合中,与目标资源管理合约之间具有映射关系的审批对象集合;
交易上链模块15,用于在确定第一交易数据的链上多重审批结果为审批通过结果时,通过目标资源管理合约将第一交易数据进行上链处理。
其中,交易获取模块11、合约确定模块12、合约调用模块13、结果确定模块14以及交易上链模块15的具体实现方式,可以参见上述图3所对应实施例中步骤S101-步骤S104的描述,这里将不再进行赘述。
在一个实施例中,在交易获取模块11获取第一交易数据以及第一交易数据所属的交易类型之前,基于区块链的数据处理装置1还包括:第一请求获取模块16、第一部署模块17以及类型记录模块18。
第一请求获取模块16,用于获取关于资源管理合约集合的第一部署请求;第一部署请求中携带关于资源管理合约集合的合约映射表;合约映射表中记录有资源管理合约集合与配置交易类型集合之间的映射关系,资源管理合约中的一个资源管理合约,与配置交易类型集合中的一种或多种配置交易类型之间存在映射关系;
第一部署模块17,用于基于第一部署请求将资源管理合约集合部署于区块链中;
类型记录模块18,用于按照合约映射表中所包含的映射关系,记录区块链中的每个资源管理合约所负责的配置交易类型。
其中,第一请求获取模块16、第一部署模块17以及类型记录模块18的具体实现方式,可以参见上述图3所对应实施例中步骤S101的描述,这里将不再进行赘述。
在一个实施例中,在类型记录模块18按照合约映射表中所包含的映射关系,记录区块链中的每个资源管理合约所负责的配置交易类型之后,基于区块链的数据处理装置1还包括:第二请求获取模块19以及第二部署模块20。
第二请求获取模块19,用于获取关于交易审批合约的第二部署请求;第二部署请求用于请求将交易审批合约部署于区块链中;交易审批合约中包含有资源管理合约集合与N个审批对象集合以及N个审批通过阈值之间的映射关系;一个资源管理合约与一个审批对象集合以及一个审批通过阈值之间存在映射关系;N为正整数;
第二部署模块20,用于基于第二部署请求,将交易审批合约部署于区块链中。
其中,第二请求获取模块19以及第二部署模块20的具体实现方式,可以参见上述图3所对应实施例中步骤S103的描述,这里将不再进行赘述。
在一个实施例中,合约确定模块12按照第一交易数据所属的交易类型,在区块链的资源管理合约集合中确定用于处理第一交易数据的目标资源管理合约的具体实现方式,包括:
获取资源管理合约集合中,每个资源管理合约所负责的配置交易类型;
将每个资源管理合约所负责的配置交易类型,与第一交易数据所属的交易类型进行匹配;
将配置交易类型与第一交易数据所属的交易类型相匹配的资源管理合约,确定为用于处理第一交易数据的目标资源管理合约。
在一个实施例中,结果确定模块14通过交易审批合约对第一交易数据进行链上多重审批,得到链上多重审批结果的具体实现方式,包括:
获取交易审批合约中所存储的关系映射表;关系映射表中包含有资源管理合约集合与N个审批对象集合以及N个审批通过阈值之间的映射关系,一个资源管理合约与一个审批对象集合以及一个审批通过阈值之间存在映射关系,N为正整数;
在交易审批合约中的关系映射表中,将与目标资源管理合约具有映射关系的审批对象集合确定为目标审批对象集合;
在交易审批合约中的关系映射表中,将与目标资源管理合约具有映射关系的审批通过阈值确定为目标审批通过阈值;
将第一交易数据发送至目标审批对象集合,通过目标审批对象集合与目标审批通过阈值对第一交易数据进行链上多重审批,得到链上多重审批结果。
在一个实施例中,结果确定模块14通过目标审批对象集合与目标审批通过阈值对第一交易数据进行链上多重审批,得到链上多重审批结果的具体方式,包括:
接收目标审批对象集合中的M个审批对象分别发送的关于交易审批合约的合约调用请求;一个审批对象的合约调用请求用于请求提交对第一交易数据的审批结果至区块链上;M为小于或等于W的正整数;W是指目标审批对象集合所包含的审批对象的总数量;
统计M个审批结果中的一个或多个有效审批结果;
通过一个或多个有效审批结果以及目标审批通过阈值,确定第一交易数据的链上多重审批结果。
在一个实施例中,M个审批对象中包含审批对象Si,M个审批结果中包含审批对象Si对第一交易数据的审批结果Si;i为正整数;审批对象Si的合约调用请求中还包含目标资源管理合约;
结果确定模块14统计M个审批结果中的一个或多个有效审批结果的具体实现方式,包括:
基于审批对象的合约调用请求中所包含的目标资源管理合约,在交易审批合约所包含的关系映射表中,获取与目标资源管理合约存在映射关系的目标审批对象集合;
遍历目标审批对象集合;
若目标审批对象集合中包含审批对象Si,则确定审批对象Si具备目标资源管理合约的审批权限,将审批对象Si对第一交易数据的审批结果Si确定为有效审批结果;
若目标审批对象集合中未包含审批对象Si,则确定审批对象Si不具备目标资源管理合约的审批权限,将审批对象Si对第一交易数据的审批结果Si确定为无效审批结果。
在一个实施例中,结果确定模块14通过一个或多个有效审批结果以及目标审批通过阈值,确定第一交易数据的链上多重审批结果的具体方式,包括:
统计一个或多个有效审批结果所包含的审批通过结果的通过数量;
将通过数量与目标审批通过阈值进行比较;
按照通过数量与目标审批通过阈值之间的比较结果,确定第一交易数据的链上多重审批结果。
在一个实施例中,结果确定模块14按照通过数量与目标审批通过阈值之间的比较结果,确定第一交易数据的链上多重审批结果的具体方式,包括:
若确定通过数量大于或等于目标审批通过阈值,则确定第一交易数据的链上多重审批结果为审批通过结果;
若确定通过数量小于目标审批通过阈值,则确定第一交易数据的链上多重审批结果为审批不通过结果。
在一个实施例中,基于区块链的数据处理装置1还包括:上链请求接收模块21、审批合约调用模块22、审批属性确定模块23以及信息推送模块24。
上链请求接收模块21,用于接收关于第二交易数据的交易上链请求;交易上链请求用于请求将第二交易数据进行直接上链处理,交易上链请求携带第二交易数据的交易审批结果;
审批合约调用模块22,用于基于交易上链请求调用交易审批合约;
审批属性确定模块23,用于通过交易审批合约的历史审批交易数据集合确定第二交易数据的交易审批结果的审批属性;历史审批交易数据集合中的每个历史审批交易数据,均是指通过交易审批合约进行链上多重审批,且具备历史链上多重审批结果的交易数据;历史审批交易数据集合中包含第一交易数据;
信息推送模块24,用于在确定交易审批结果的审批属性为链下审批属性时,将第二交易数据确定为异常交易数据,向第二交易数据的交易发送对象推送交易警示信息;交易警示信息用于警示交易发送对象第二交易数据的交易审批结果为无效审批结果。
其中,上链请求接收模块21、审批合约调用模块22、审批属性确定模块23以及信息推送模块24的具体实现方式,可以参见上述图3所对应实施例中步骤S104中的描述,这里将不再进行赘述。
在一个实施例中,审批属性确定模块23通过交易审批合约确定第二交易数据的交易审批结果的审批属性,包括:
基于第二交易数据遍历历史审批交易数据集合;
若历史审批交易数据集合包含第二交易数据,则确定第二交易数据的交易审批结果的审批属性为链上审批属性;
若历史审批交易数据集合未包含第二交易数据,则确定第二交易数据的交易审批结果的审批属性为链下审批属性。
在本申请实施例中,引入交易审批合约,该交易审批合约会部署于区块链中,对于提交到区块链中的交易数据,会通过区块链中的交易审批合约对其进行链上多重审批,在确定链上多重审批结果为审批通过结果时,才会通过相应的资源管理合约将其进行上链处理。以第一交易数据为例,按照第一交易数据所属的交易类型会在区块链上确定出用于对其进行处理的目标资源管理合约,而在目标资源管理合约将该第一交易数据进行交易执行并上链之前,该目标资源管理合约会先调用交易审批合约对其进行链上多重审批,在审批通过后才会将其进行交易执行并上链。应当理解,通过在区块链上部署交易审批合约的方式,可以使得资源管理合约的交易数据的审批流程在区块链上进行,该区块链上进行的审批流程是公开透明的,由此可以使得交易发起方难以绕过审批流程,那么交易发起方自行提交交易数据进行上链的可能性非常小,由此可以很好地提升交易数据的安全性;此外,由于交易数据的审批流程是公开透明的,那么对于交易数据的审批流也难以作假,那么由此也可以提升交易数据审批的公平性。
进一步地,请参见图7,图7是本申请实施例提供的一种计算机设备的结构示意图。如图7所示,上述计算机设备8000可以包括:处理器8001,网络接口8004和存储器8005,此外,上述计算机设备8000还包括:用户接口8003,和至少一个通信总线8002。其中,通信总线8002用于实现这些组件之间的连接通信。其中,用户接口8003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口8003还可以包括标准的有线接口、无线接口。网络接口8004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器8005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器8005可选的还可以是至少一个位于远离前述处理器8001的存储装置。如图7所示,作为一种计算机可读存储介质的存储器8005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图7所示的计算机设备8000中,网络接口8004可提供网络通讯功能;而用户接口8003主要用于为用户提供输入的接口;而处理器8001可以用于调用存储器8005中存储的设备控制应用程序,以实现:
获取第一交易数据以及第一交易数据所属的交易类型;
按照第一交易数据所属的交易类型,在区块链的资源管理合约集合中确定用于处理第一交易数据的目标资源管理合约;资源管理合约集合中的一个资源管理合约负责处理一种或多种配置交易类型的交易数据;
基于目标资源管理合约调用区块链中的交易审批合约,通过交易审批合约对第一交易数据进行链上多重审批,得到链上多重审批结果;
在确定第一交易数据的链上多重审批结果为审批通过结果时,通过目标资源管理合约将第一交易数据进行上链处理。
应当理解,本申请实施例中所描述的计算机设备8000可执行前文图3到图5所对应实施例中对该基于区块链的数据处理方法的描述,也可执行前文图6所对应实施例中对该基于区块链的数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据处理的计算机设备8000所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文图3到图5所对应实施例中对上述基于区块链的数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的基于区块链的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行本申请实施例中一方面提供的方法。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种基于区块链的数据处理方法,其特征在于,包括:
获取第一交易数据以及所述第一交易数据所属的交易类型;
按照所述第一交易数据所属的交易类型,在区块链的资源管理合约集合中确定用于处理所述第一交易数据的目标资源管理合约;所述资源管理合约集合中的一个资源管理合约负责处理一种或多种配置交易类型的交易数据;
基于所述目标资源管理合约调用所述区块链中的交易审批合约,通过所述交易审批合约对所述第一交易数据进行链上多重审批,得到链上多重审批结果;所述交易审批合约中记录有所述资源管理集合与N个审批对象集合之间的映射关系,一个所述资源管理合约与一个所述审批对象集合之间存在映射关系;所述第一交易数据的链上多重审批是指目标审批对象集合通过所述交易审批合约所执行的链上多重审批;所述目标审批对象集合是指所述N个审批对象集合中,与所述目标资源管理合约之间具有映射关系的审批对象集合;
在确定所述第一交易数据的链上多重审批结果为审批通过结果时,通过所述目标资源管理合约将所述第一交易数据进行上链处理。
2.根据权利要求1所述的方法,其特征在于,在获取第一交易数据以及所述第一交易数据所属的交易类型之前,所述方法还包括:
获取关于资源管理合约集合的第一部署请求;所述第一部署请求中携带关于所述资源管理合约集合的合约映射表;所述合约映射表中记录有所述资源管理合约集合与配置交易类型集合之间的映射关系,所述资源管理合约中的一个资源管理合约,与所述配置交易类型集合中的一种或多种配置交易类型之间存在映射关系;
基于所述第一部署请求将所述资源管理合约集合部署于所述区块链中;
按照所述合约映射表中所包含的映射关系,记录所述区块链中的每个资源管理合约所负责的配置交易类型。
3.根据权利要求2所述的方法,其特征在于,在按照所述合约映射表中所包含的映射关系,记录所述区块链中的每个资源管理合约所负责的配置交易类型之后,所述方法还包括:
获取关于交易审批合约的第二部署请求;所述第二部署请求用于请求将所述交易审批合约部署于所述区块链中;所述交易审批合约中包含有所述资源管理合约集合与N个审批对象集合以及N个审批通过阈值之间的映射关系;一个所述资源管理合约与一个所述审批对象集合以及一个所述审批通过阈值之间存在映射关系;N为正整数;
基于所述第二部署请求,将所述交易审批合约部署于所述区块链中。
4.根据权利要求1所述的方法,其特征在于,所述按照所述第一交易数据所属的交易类型,在区块链的资源管理合约集合中确定用于处理所述第一交易数据的目标资源管理合约,包括:
获取所述资源管理合约集合中,每个资源管理合约所负责的配置交易类型;
将每个资源管理合约所负责的配置交易类型,与所述第一交易数据所属的交易类型进行匹配;
将配置交易类型与所述第一交易数据所属的交易类型相匹配的资源管理合约,确定为用于处理所述第一交易数据的目标资源管理合约。
5.根据权利要求1所述的方法,其特征在于,所述通过所述交易审批合约对所述第一交易数据进行链上多重审批,得到链上多重审批结果,包括:
获取所述交易审批合约中所存储的关系映射表;所述关系映射表中包含有所述资源管理合约集合与N个审批对象集合以及N个审批通过阈值之间的映射关系,一个所述资源管理合约与一个所述审批对象集合以及一个所述审批通过阈值之间存在映射关系,N为正整数;
在所述交易审批合约中的关系映射表中,将与所述目标资源管理合约具有映射关系的审批对象集合确定为目标审批对象集合;
在所述交易审批合约中的关系映射表中,将与所述目标资源管理合约具有映射关系的审批通过阈值确定为目标审批通过阈值;
将所述第一交易数据发送至所述目标审批对象集合,通过所述目标审批对象集合与所述目标审批通过阈值对所述第一交易数据进行链上多重审批,得到链上多重审批结果。
6.根据权利要求5所述的方法,其特征在于,所述通过所述目标审批对象集合与所述目标审批通过阈值对所述第一交易数据进行链上多重审批,得到链上多重审批结果,包括:
接收所述目标审批对象集合中的M个审批对象分别发送的关于所述交易审批合约的合约调用请求;一个所述审批对象的合约调用请求用于请求提交对所述第一交易数据的审批结果至所述区块链上;M为小于或等于W的正整数;W是指所述目标审批对象集合所包含的审批对象的总数量;
统计M个审批结果中的一个或多个有效审批结果;
通过所述一个或多个有效审批结果以及所述目标审批通过阈值,确定所述第一交易数据的链上多重审批结果。
7.根据权利要求6所述的方法,其特征在于,所述M个审批对象中包含审批对象Si,M个审批结果中包含所述审批对象Si对所述第一交易数据的审批结果Si;i为正整数;所述审批对象Si的合约调用请求中还包含所述目标资源管理合约;
所述统计M个审批结果中的一个或多个有效审批结果,包括:
基于所述审批对象的合约调用请求中所包含的所述目标资源管理合约,在所述交易审批合约所包含的关系映射表中,获取与所述目标资源管理合约存在映射关系的所述目标审批对象集合;
遍历所述目标审批对象集合;
若所述目标审批对象集合中包含所述审批对象Si,则确定所述审批对象Si具备所述目标资源管理合约的审批权限,将所述审批对象Si对所述第一交易数据的审批结果Si确定为有效审批结果;
若所述目标审批对象集合中未包含所述审批对象Si,则确定所述审批对象Si不具备所述目标资源管理合约的审批权限,将所述审批对象Si对所述第一交易数据的审批结果Si确定为无效审批结果。
8.根据权利要求6所述的方法,其特征在于,所述通过所述一个或多个有效审批结果以及所述目标审批通过阈值,确定所述第一交易数据的链上多重审批结果,包括:
统计所述一个或多个有效审批结果所包含的审批通过结果的通过数量;
将所述通过数量与所述目标审批通过阈值进行比较;
按照所述通过数量与所述目标审批通过阈值之间的比较结果,确定所述第一交易数据的链上多重审批结果。
9.根据权利要求8所述的方法,其特征在于,所述按照所述通过数量与所述目标审批通过阈值之间的比较结果,确定所述第一交易数据的链上多重审批结果,包括:
若确定所述通过数量大于或等于所述目标审批通过阈值,则确定所述第一交易数据的链上多重审批结果为审批通过结果;
若确定所述通过数量小于所述目标审批通过阈值,则确定所述第一交易数据的链上多重审批结果为审批不通过结果。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收关于第二交易数据的交易上链请求;所述交易上链请求用于请求将所述第二交易数据进行直接上链处理,所述交易上链请求携带所述第二交易数据的交易审批结果;
基于所述交易上链请求调用所述交易审批合约,通过所述交易审批合约的历史审批交易数据集合确定所述第二交易数据的交易审批结果的审批属性;所述历史审批交易数据集合中的每个历史审批交易数据,均是指通过所述交易审批合约进行链上多重审批,且具备历史链上多重审批结果的交易数据;所述历史审批交易数据集合中包含所述第一交易数据;
在确定所述交易审批结果的审批属性为链下审批属性时,将所述第二交易数据确定为异常交易数据,向所述第二交易数据的交易发送对象推送交易警示信息;所述交易警示信息用于警示所述交易发送对象所述第二交易数据的交易审批结果为无效审批结果。
11.根据权利要求10所述的方法,其特征在于,所述通过所述交易审批合约确定所述第二交易数据的交易审批结果的审批属性,包括:
基于所述第二交易数据遍历所述历史审批交易数据集合;
若所述历史审批交易数据集合包含所述第二交易数据,则确定所述第二交易数据的交易审批结果的审批属性为链上审批属性;
若所述历史审批交易数据集合未包含所述第二交易数据,则确定所述第二交易数据的交易审批结果的审批属性为链下审批属性。
12.一种基于区块链的数据处理装置,其特征在于,包括:
交易获取模块,用于获取第一交易数据以及所述第一交易数据所属的交易类型;
合约确定模块,用于按照所述第一交易数据所属的交易类型,在区块链的资源管理合约集合中确定用于处理所述第一交易数据的目标资源管理合约;所述资源管理合约集合中的一个资源管理合约负责处理一种或多种配置交易类型的交易数据;
合约调用模块,用于基于所述目标资源管理合约调用所述区块链中的交易审批合约;
结果确定模块,用于通过所述交易审批合约对所述第一交易数据进行链上多重审批,得到链上多重审批结果;所述交易审批合约中记录有所述资源管理集合与N个审批对象集合之间的映射关系,一个所述资源管理合约与一个所述审批对象集合之间存在映射关系;所述第一交易数据的链上多重审批是指目标审批对象集合通过所述交易审批合约所执行的链上多重审批;所述目标审批对象集合是指所述N个审批对象集合中,与所述目标资源管理合约之间具有映射关系的审批对象集合;
交易上链模块,用于在确定所述第一交易数据的链上多重审批结果为审批通过结果时,通过所述目标资源管理合约将所述第一交易数据进行上链处理。
13.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供网络通信功能,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使所述计算机设备执行权利要求1-11任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行权利要求1-11任一项所述的方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,所述计算机程序适于由处理器读取并执行,以使得具有所述处理器的计算机设备执行权利要求1-11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311350021.1A CN117372016A (zh) | 2023-10-18 | 2023-10-18 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311350021.1A CN117372016A (zh) | 2023-10-18 | 2023-10-18 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117372016A true CN117372016A (zh) | 2024-01-09 |
Family
ID=89397776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311350021.1A Pending CN117372016A (zh) | 2023-10-18 | 2023-10-18 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117372016A (zh) |
-
2023
- 2023-10-18 CN CN202311350021.1A patent/CN117372016A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113691597B (zh) | 区块链合约部署方法、装置、设备以及存储介质 | |
US20210089514A1 (en) | Tracking and verification of physical assets | |
CN112686671B (zh) | 基于区块链的智能合约部署方法、装置、设备以及介质 | |
CN110598434B (zh) | 基于区块链网络的房屋信息处理方法、装置、电子设备及存储介质 | |
AU2021210206B2 (en) | Index structure for blockchain ledger | |
CN111383114A (zh) | 基于区块链的资产信息管理方法和装置 | |
US11379472B2 (en) | Schema-based pruning of blockchain data | |
CN113256297B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN111340628A (zh) | 基于区块链的资产信息管理方法和装置 | |
CN111402033A (zh) | 基于区块链的资产信息管理方法和装置 | |
CN110674531B (zh) | 基于区块链的居住信息管理方法、装置、服务器及介质 | |
CN115701078B (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
AU2021300620B2 (en) | Permissioned eventing in a decentralized database | |
CN112069529B (zh) | 基于区块链的卷宗管理方法、装置、计算机以及存储介质 | |
US11356260B2 (en) | Decentralized secure data sharing | |
US11271742B2 (en) | Decentralized secure data sharing | |
US11088833B1 (en) | Decentralized secure data sharing | |
CN117372016A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN117040766B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN116708463B (zh) | 基于多区块链的信息处理方法、装置、设备以及介质 | |
CN116804949B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
US20230208648A1 (en) | Htlc with proof of elapsed time | |
CN118827077A (zh) | 基于分层链的数据处理方法、装置、设备及介质 | |
CN117370463A (zh) | 基于区块链的数据存证方法、装置及存储介质 | |
CN116074027A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |