CN113256297B - 基于区块链的数据处理方法、装置、设备及可读存储介质 - Google Patents
基于区块链的数据处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113256297B CN113256297B CN202110747229.1A CN202110747229A CN113256297B CN 113256297 B CN113256297 B CN 113256297B CN 202110747229 A CN202110747229 A CN 202110747229A CN 113256297 B CN113256297 B CN 113256297B
- Authority
- CN
- China
- Prior art keywords
- node
- consensus
- certificate
- service
- sub
- 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
Links
Images
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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请公开了一种基于区块链的数据处理方法、装置、设备及可读存储介质,方法包括:第一代表节点基于业务创建请求遍历证书颁发节点集群;根据第一业务对应的业务类型获取第一目标证书颁发节点;将业务创建请求发送至第一目标证书颁发节点,以使第一目标证书颁发节点为第一子共识节点集群颁发第一节点证书,将第一子共识节点集群的第一节点证书上链;在第一子共识节点集群的第一节点证书成功上链时,获取主链证书颁发节点,向主链证书颁发节点发送业务创建请求,以使主链证书颁发节点为第一代表节点颁发主链证书,通过主共识节点集群对第一代表节点的主链证书进行上链。采用本申请,可以在区块链共识业务中,节约节点计算资源,提高共识效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于区块链的数据处理方法、装置、设备以及可读存储介质。
背景技术
区块链网络中,区块链节点之间的通信通常需要验证彼此的身份,以保证区块链网络和区块链上链数据的安全,为此,通常需要为每个区块链节点颁发公私钥,还需要为每个区块链节点颁发身份证书(即区块链节点是公钥拥有者的身份证明),身份证书通常是由具备权威性的机构,如,证书颁发机构(Certificate Authority,CA)签发的。
目前,在区块链共识业务中,每个共识节点的身份证书是由统一的CA进行颁发的,所有的共识节点均可以参与到针对每个业务的区块的共识中(每个共识节点利用自身计算资源去抢夺针对交易数据的出块权限,再抢夺到后与其他共识节点进行投票共识)。
然而,当区块链被用于某些特殊业务场景(例如,涉及机密、隐私数据的业务场景)中时,并非所有的区块链节点都会拥有足够的计算资源和必要性去成为共识节点来进行共识,若此时所有的区块链节点均利用计算资源去抢夺出块权限,会大大造成区块链节点的资源浪费;同时,将所有的区块链节点均参与到共识的方式,由于节点数量庞大,需要大范围的广播数据,也会影响共识效率。
发明内容
本申请实施例提供一种基于区块链的数据处理方法、装置、设备以及可读存储介质,可以在区块链共识业务中,节约节点计算资源,提高共识效率。
本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:
第一代表节点基于业务创建请求遍历证书颁发节点集群;第一代表节点属于第一子共识节点集群;业务创建请求携带第一业务对应的业务类型;
根据第一业务对应的业务类型在证书颁发节点集群中获取第一目标证书颁发节点;第一目标证书颁发节点对应的执行业务类型与第一业务对应的业务类型相匹配;
将业务创建请求发送至第一目标证书颁发节点,以使第一目标证书颁发节点基于业务创建请求为第一子共识节点集群颁发第一节点证书,将第一子共识节点集群对应的第一节点证书进行上链;第一子共识节点集群对应的第一节点证书用于授予第一子共识节点集群针对第一业务的共识权限;
在第一子共识节点集群对应的第一节点证书成功上链时,在证书颁发节点集群中获取主链证书颁发节点,向主链证书颁发节点发送业务创建请求,以使主链证书颁发节点基于业务创建请求为第一代表节点颁发主链证书,通过主共识节点集群对第一代表节点对应的主链证书进行上链;已上链的主链证书用于表征第一代表节点属于主共识节点集群;主共识节点集群中的第一代表节点与第二子共识节点集群中的第二代表节点用于进行共识交互;第二子共识节点集群具备由证书颁发节点集群中的第二目标证书颁发节点所颁发的第二节点证书,第二节点证书用于授予第二子共识节点集群针对第二业务的共识权限;第二目标证书颁发节点对应的执行业务类型与第二业务对应的业务类型相匹配;第一业务与第二业务不同;第一子共识节点集群、第二子共识节点集群以及主共识节点集群处于同一区块链网络中。
本申请实施例一方面提供了一种基于区块链的数据处理装置,包括:
集群遍历模块,用于基于业务创建请求遍历证书颁发节点集群;第一代表节点属于第一子共识节点集群;业务创建请求携带第一业务对应的业务类型;
节点获取模块,用于根据第一业务对应的业务类型在证书颁发节点集群中获取第一目标证书颁发节点;第一目标证书颁发节点对应的执行业务类型与第一业务对应的业务类型相匹配;
请求发送模块,用于将业务创建请求发送至第一目标证书颁发节点,以使第一目标证书颁发节点基于业务创建请求为第一子共识节点集群颁发第一节点证书,将第一子共识节点集群对应的第一节点证书进行上链;第一子共识节点集群对应的第一节点证书用于授予第一子共识节点集群针对第一业务的共识权限;
请求发送模块,还用于在第一子共识节点集群对应的第一节点证书成功上链时,在证书颁发节点集群中获取主链证书颁发节点,向主链证书颁发节点发送业务创建请求,以使主链证书颁发节点基于业务创建请求为第一代表节点颁发主链证书,通过主共识节点集群对第一代表节点对应的主链证书进行上链;已上链的主链证书用于表征第一代表节点属于主共识节点集群;主共识节点集群中的第一代表节点与第二子共识节点集群中的第二代表节点用于进行共识交互;第二子共识节点集群具备由证书颁发节点集群中的第二目标证书颁发节点所颁发的第二节点证书,第二节点证书用于授予第二子共识节点集群针对第二业务的共识权限;第二目标证书颁发节点对应的执行业务类型与第二业务对应的业务类型相匹配;第一业务与第二业务不同;第一子共识节点集群、第二子共识节点集群以及主共识节点集群处于同一区块链网络中。
在一个实施例中,节点获取模块包括:
集合获取单元,用于获取证书颁发节点集群中每个证书颁发节点分别对应的执行业务类型,得到执行业务类型集合;
节点确定单元,用于获取第一业务对应的业务类型,将执行业务类型集合中与第一业务对应的业务类型相匹配的执行业务类型,确定为目标执行业务类型;
节点确定单元,还用于将目标执行业务类型所对应的证书颁发节点确定为第一目标证书颁发节点。
在一个实施例中,该基于区块链的数据处理装置还包括:
请求接收模块,用于接收第二代表节点发送的针对第一目标区块的跨业务共识请求;第一目标区块为第二代表节点根据第一交易数据所生成;第一交易数据与第一业务以及第二业务相关联;跨业务共识请求携带由第一目标证书颁发节点为第二子共识节点集群颁发的第三节点证书;第三节点证书用于授予第二子共识节点集群具备针对第一业务的共识权限;
证书获取模块,用于基于跨业务共识请求获取第一子共识节点集群对应的第四节点证书;第四节点证书是由第二目标证书颁发节点所颁发的;第四节点证书用于授予第一子共识节点集群具备针对第二业务的共识权限;
共识模块,用于基于第一子共识节点集群对应的第四节点证书、第二子共识节点集群对应的第三节点证书,在第一子共识节点集群和第二子共识节点集群中共同对第一目标区块进行跨业务共识。
在一个实施例中,证书获取模块包括:
账本遍历单元,用于基于跨业务共识请求遍历区块链网络中的数据账本;
证书获取单元,用于若数据账本中存在由第二目标证书颁发节点为第一子共识节点集群所颁发的证书,且由第二目标证书颁发节点为第一子共识节点集群所颁发的证书的证书证明时间为有效时间,则将数据账本中所存储的,由第二目标证书颁发节点为第一子共识节点集群所颁发的证书,确定为第一子共识节点集群对应的第四节点证书;
证书获取单元,还用于若证书证明时间为失效时间,或数据账本中不存在由第二目标证书颁发节点为第一子共识节点集群所颁发的证书,则生成证书颁发请求,根据证书颁发请求与证书颁发节点集群获取第一子共识节点集群对应的第四节点证书。
在一个实施例中,证书获取单元,还具体用于遍历证书颁发节点集群,在证书颁发节点集群中获取第二目标证书颁发节点;
证书获取单元,还具体用于向第二目标证书颁发节点发送证书颁发请求,以使第二目标证书颁发节点基于证书颁发请求为第一子共识节点集群颁发第四节点证书,并将第四节点证书添加至数据账本;
证书获取单元,还具体用于接收第二目标证书颁发节点返回的证书颁发成功信息,基于证书颁发成功信息在数据账本中获取第一子共识节点集群对应的第四节点证书。
在一个实施例中,该基于区块链的数据处理装置还包括:
区块生成模块,用于接收业务节点发送的与第一业务相关联的第二交易数据,根据第二交易数据生成第二目标区块;
区块共识模块,用于将第二目标区块发送至剩余节点;剩余节点为第一子共识节点集群中除第一代表节点以外的节点;
区块共识模块,还用于接收剩余节点基于第二目标区块所返回的投票信息;
区块共识模块,还用于基于投票信息确定针对第二目标区块的共识结果;
区块上链模块,用于在共识结果为共识通过结果时,将第二目标区块进行上链。
在一个实施例中,剩余节点的数量为至少两个;投票信息的数量为至少两个;
区块共识模块,包括:
信息获取单元,用于将至少两个投票信息中用于指示投票通过的投票信息确定为通过投票信息,统计通过投票信息的数量;
信息获取单元,还用于获取第一代表节点的代表节点数量,以及至少两个剩余节点的数量;
运算单元,用于将代表节点数量与至少两个剩余节点的数量进行相加处理,得到节点总数量;
运算单元,还用于将代表节点数量与通过投票信息的数量进行相加处理,得到通过数量;
结果确定单元,用于根据节点总数量与通过数量确定针对第二目标区块的共识结果。
在一个实施例中,结果确定单元,还具体用于确定通过数量与节点总数量之间的比例值;
结果确定单元,还具体用于若比例值大于或等于比例阈值,则将针对第二目标区块的共识结果确定为共识通过结果;
结果确定单元,还具体用于若比例值小于比例阈值,则将针对第二目标区块的共识结果确定为共识失败结果。
在一个实施例中,区块上链模块包括:
区块添加单元,用于在共识结果为共识通过结果时,将第二目标区块添加至第一代表节点的节点缓存中;
竞拍信息生成单元,用于获取节点缓存中所存储的待上链区块,以及待上链区块的区块数量;待上链区块包括第二目标区块;
竞拍信息生成单元,还用于根据区块数量确定针对第二目标区块的区块上链资产,获取第一代表节点的节点标识,根据节点标识与区块上链资产生成针对第二目标区块的区块竞拍信息;
信息发送单元,用于将区块竞拍信息发送至第二代表节点,以使第二代表节点基于区块竞拍信息返回竞拍投票信息;
区块添加单元,用于根据竞拍投票信息确定第一代表节点针对第二目标区块的上链权限;
区块添加单元,还用于在第一代表节点具备上链权限时,将第二目标区块添加至区块链网络中的数据账本中。
在一个实施例中,区块添加单元,还具体用于获取数据账本中具有最大生成时间戳的最大区块,获取最大区块对应的区块哈希值;
区块添加单元,还具体用于将区块哈希值添加至第二目标区块中,得到待添加区块;
区块添加单元,还具体用于获取第一代表节点对应的私钥,基于第一代表节点对应的私钥对待添加区块进行签名,得到第一数字签名;
区块添加单元,还具体用于将待添加区块与第一数字签名发送至第二代表节点,以使第二代表节点基于待添加区块与第一数字签名获取主链证书颁发节点对应的公钥,基于主链证书颁发节点对应的公钥对第一代表节点对应的主链证书进行身份验证,在验证通过后得到第一代表节点对应的公钥,并基于第一代表节点对应的公钥对第一数字签名进行验签,得到验签结果;
区块添加单元,还具体用于在验签结果为验签通过结果时,将待添加区块添加至数据账本中。
在一个实施例中,该基于区块链的数据处理装置还包括:
区块接收模块,用于接收剩余节点发送的第三目标区块;第三目标区块为剩余节点根据与第一业务相关联的第三交易数据所生成;第三目标区块携带剩余节点基于剩余节点对应的私钥对第三目标区块进行签名后得到的第二数字签名;剩余节点为第一子共识节点集群中除第一代表节点以外的节点;
验签模块,用于获取剩余节点对应的公钥;
验签模块,还用于基于剩余节点对应的公钥对第二数字签名进行验签,在验签通过后与剩余节点共同对第三目标区块进行共识;
区块写入模块,用于在第三目标区块通过共识后,将第三目标区块添加至区块链网络的数据账本中。
在一个实施例中,验签模块包括:
证书获取单元,用于在数据账本中获取剩余节点对应的第一节点证书;剩余节点对应的第一节点证书,包括第一目标证书颁发节点基于第一目标证书颁发节点的私钥对剩余节点的公钥,以及剩余节点的身份信息进行签名后得到的签名信息;
公钥获取单元,用于获取第一目标证书颁发节点对应的公钥,基于第一目标证书颁发节点对应的公钥对签名信息进行验证;
公钥获取单元,还用于在验证通过后,获取剩余节点对应的公钥以及剩余节点的身份信息。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行本申请实施例中的方法。
本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中一方面提供的方法。
在本申请实施例中,可将区块链网络中的共识节点分为不同的集群(可将每个集群称之为子共识节点集群),一个子共识节点集群负责为一种业务进行共识。而为了使子共识节点集群之间可以互不干扰,本申请可为每种业务增发一个证书颁发节点,每种业务上线时,可基于该业务对应的证书颁发节点为该业务的子共识节点集群颁发证书,在拥有证书后,这些子共识节点集群即可上线运行,应当理解,只有在任意两个共识节点的证书均是由同一个证书颁发节点所颁发时,这两个共识节点才会互相信任,互相进行通信共识;由此,当有其他非本业务的恶意节点来恶意获取某个业务的数据时,由于该恶意节点并不具备该业务对应的证书颁发节点所颁发的证书,该业务的子共识节点集群并不会信任该恶意节点,该子共识节点集群并不会向恶意节点发送本业务的数据,可以大大提高本业务的数据的安全性。同时,通过子共识节点集群负责为一种业务进行共识的方式,在为某种业务的交易数据进行共识时,不需要区块链网络中所有的区块链节点都利用自身的计算资源来争当该交易数据的共识节点进行共识,只需要该业务对应的子共识节点集群为该交易数据进行共识即可,可以很好地节约区块链网络中区块链节点的计算资源;而且在共识流程中,由于子共识节点集群的节点数量远少于区块链网络中的所有共识节点的数量,只需要进行小范围的数据广播,可以提高共识效率。综上,本申请可以在区块链共识业务中,节约节点计算资源,提高共识效率,提高交易数据的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种方法应用环境示意图;
图2是本申请实施例提供的一种区块链网络的架构示意图;
图3是将区块链网络应用于电子票据场景的架构示意图;
图4是本申请实施例提供的一种区块链共识网络的架构示意图;
图5是本申请实施例提供的一种基于区块链的数据处理方法;
图6是本申请实施例提供的一种将区块添加至数据账本的示意图;
图7是本申请实施例提供的一种为子共识节点集***叉颁发证书的流程示意图;
图8是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图9是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种方法应用环境示意图。如图1所示,本申请所提供的基于区块链的数据处理方法可应用于区块链网络100。区块链网络包括对区块链上的数据区块进行记录和查询的相关节点构成的网络,区块链网络中的每个节点即为区块链节点,是能够对数据区块进行查询或记录的计算机设备。如图1所示,该区块链网络100可包括业务网络1100、路由层1200以及共识网络1300。业务网络1100中的业务节点1102和路由层120中的路由节点1202通过网络连接。路由节点1202和共识网络1300中的共识节点1302通过网络连接。因此业务网络1100与共识网络1300之间需要通过路由节点1202通信。
业务节点1102具体可以是产生交易信息的业务方所使用的台式终端或移动终端,移动终端具体可以为智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视、智能音箱、台式计算机、智能手表、车载终端等携带数据处理功能的智能终端,但并不局限于此。路由节点1202可以用独立的服务器或者是多个服务器组成的服务器集群来实现。共识网络1300中的共识节点1302可以将业务节点所产生的交易信息(交易数据)记录至区块链上,共识节点1302可以用独立的服务器或者是多个服务器组成的服务器集群来实现,共识网络1300中的每个共识节点可以是由权威机构授权设置的,例如,在共识网络1300应用于处理电子票据数据的应用场景中时,共识网络1300中的共识节点通常可由监管机构授权设置。
区块链是运行区块链技术的载体和组织方式。区块链技术(Blockchaintechnology,BT)也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种分布式基础架构与计算方式。
为便于理解,以下将对区块链及其相关概念进行阐述:
区块链是一种分布式数据存储、点对点传输、共识机制以及加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链本质上是一个去中心化的数据库,该数据库中的每个节点均存储一条相同的区块链,区块链网络将节点区分为核心节点、数据节点以及轻节点,其中核心节点负责区块链全网的共识,也就是说核心节点为区块链网络中的共识节点。对于区块链网络中的共识节点进入共识业务流程的过程可以为,客户端发送交易数据至数据节点或轻节点,随后该交易数据以接力棒的方式在区块链网络中的数据节点或轻节点之间传递,直到共识节点收到该交易数据,共识节点再将该交易数据打包进区块,与其他共识节点之间进行共识。
任一核心节点在接收到由数据节点或轻节点发送的交易数据后,可以将该交易数据存储至内存池(如交易池)中,并更新其用于记录输入数据的哈希树;之后,将更新时间戳更新为接收到该交易数据的时间,并尝试不同的随机数进行特征值计算,当得到特征值时,即可确定该得到特征值的核心节点抢夺到了针对该交易数据的出块权限,该核心节点可将该交易数据对应存储,生成区块头和区块主体,得到新生成的区块;随后,核心节点可以根据区块链网络中其他核心节点(即共识节点)的节点标识,将上述新生成的区块分别发送给其所在的区块链网络中的其他核心节点,由其他核心节点对新生成的区块进行校验(即进行共识),并在完成校验后将上述新生成的区块添加至其存储的区块链中。其中,区块链网络中的每个核心节点,均具有与其对应的节点标识,而且区块链网络中的每个核心节点均可以存储有区块链网络中其他核心节点的节点标识,以便后续根据其他核心节点的节点标识,将生成的区块广播至区块链网络中的其他核心节点,使得区块链网络中全部核心节点上存储的交易数据均一致。
为便于理解本申请的区块链网络的架构,请一并参见图2,图2是本申请实施例提供的一种区块链网络的架构示意图。如图2所示,区块链网络可包括业务网络2100、路由层2200以及共识网络2300。业务网络2100可包括业务节点2101(业务节点2101可对共识节点记录到区块链上的数据区块进行验证),共识网络2300中可包括将数据区块记录至区块链上的共识节点2301。业务网络2100与共识网络2300之间可通过路由层2200连接,路由层2200中的路由节点2201可以向共识节点2301传递业务节点2101发送的数据处理请求,路由节点2201还可以向业务节点2101转发从共识节点2301获取的区块链上的交易信息(如针对交易数据的执行结果)。业务节点2101部署在处于公网的业务网络中,而运行区块链共识协议的共识节点2301则部署在私有的共识网络中,二者可通过路由节点(如路由节点2201)进行交互。路由节点2201可以起到对业务网络2100和核心的共识网络2300之间的隔离作用。在业务网络2100中,每个业务节点之间是对等的,业务节点之间形成的点对点(Peer ToPeer,P2P)网络,其中,P2P协议是一个运行在传输控制协议(Transmission ControlProtocol,TCP)协议之上的应用层协议。业务节点2101可将从路由节点2201接收到的消息向周围的业务节点传递,使得该消息能够在业务网络中的每个业务节点之间传播。
为便于理解上述区块链网络的应用场景,以下将以将区块链网络应用于电子票据场景为例,对具体的场景架构进行阐述。请一并参见图3,图3是将区块链网络应用于电子票据场景的架构示意图。
当上述图2所示的区块链网络应用于电子票据的场景时,区块链网络可以为电子票据的整个流转过程中产生的交易信息进行记录。如图3所示,该区块链网络可包括业务网络3200、路由层3400以及共识网络3600。
电子票据的流转过程可以包括电子票据的申领、电子票据的开具、电子票据的报销、电子票据的报税等过程。其中,电子票据的开具也可称之为电子票据的生成,由于整个电子票据的流转过程涉及到的角色包括监管机构、开票方、报销方和报税方,因此业务网络3200中可包括监管机构提供相关服务的监管机构专网3201,还可包括开票方、报销方、报税方提供相关服务的公有云3202,还可包括为消费者提供电子票据保存服务的私有云3203。其中,监管结构专网3201中可包括电子票据所涉及的监管机构所使用的计算机设备,包括监管机构终端32011。公有云3202中可包括电子票据所设计的开票方、报销方、报税方所使用的计算机设备,包括开票方终端32021、报销方终端32022以及报税方终端32023,其中,开票方可以是开票服务商,报销方可以是报销服务商,企业终端可以访问公有云。私有云3203中可包括电子票据所涉及的用户所使用的计算机设备,包括用于进行支付的支付终端32031,还可包括用于临时为用户保存电子票据的电子票据流转终端32032,还可包括企业的专用终端32033,消费者终端可以访问私有云。监管机构专网3201、公有云3202以及私有云3202中的计算机设备均可以作为业务节点通过路由节点向共识网络发送针对电子票据的数据上链请求或数据查询请求。
路由层3400中的任一路由节点可包括提供认证服务3401、证书缓存3402、路由服务3403和P2P服务3404的功能模块。认证服务3401可用于对业务网络中的业务节点进行身份验证,证书缓存3402可用于缓存各个业务节点的身份证书,路由服务3403可用于实现业务网络与共识网络之间的网络隔离,P2P服务器可用于在具备幂等性的路由节点之间分配任务,路由节点之间形成组成点对点(P2P)网络,P2P协议是一个运行在TCP协议之上的应用层协议。
共识网络3600中可包括多个共识分支网络360,每个共识分支网络360可包括多个共识节点3601,这多个共识节点3601维护该共识分支网络360所对应的子区块链。比如,有的子区块链用于记录属于某个票据号段区间的电子票据相关的交易信息,有的子区块链用于记录冲红的电子票据相关的交易信息。在需要记录电子票据相关的数据时,可根据业务节点的权限确定要记录至的子区块链,然后由维护该子区块链的共识分支网络来记录。共识节点3601通常可以是各个地区的监管机构所使用的计算机设备。每个共识分支网络360中的共识节点3601可包括权限合约、权限合约存储了关于电子票据的整个生命周期的流转逻辑,比如电子票据的票据状态、流转流程、数据的访问权限、电子票据申领条件、电子票据开具条件等。共识节点3601还可包括高速缓存和数据区块,这些功能可以为交易信息的上链与查询提供支持。
可以理解的是,为了在区块链共识业务中,节约节点计算资源,提高交易数据的安全性,本申请将区块链共识网络划分为了多个共识子网络,每个共识子网络可负责为不同的业务进行存储共识,每个共识子网络可以拥有属于自己网络的网络缓存,每生成一个区块,可将该区块存储至自己网络中的网络缓存中;同时,区块链网络中可共同拥有一个区块链,(可称之为主网链),每个子共识网络所生成的区块可存储至主网链中,以便于对所有的子共识网络进行统一管理。也就是说,上述所提的架构以及***流程是本申请的基础框架,在此基础之上,本申请将区块链共识网络划分为多个子共识网络,每个子共识网络可包括一个或多个共识节点,即每个子共识网络即为一个子共识节点集群,每个集群可负责为不同的业务进行存储共识。每新增一个业务,则可新增一个子共识节点集群。为便于理解,请一并参见图4,图4是本申请实施例提供的一种区块链共识网络的架构示意图。
如图4所示,共识网络中可包括子共识网络4100、子共识网络4200、子共识网络4300以及子共识网络4400。其中,子共识网络4100可以负责为***业务的交易信息进行存储共识,子共识网络4200可以负责为出口业务的交易信息进行存储共识,子共识网络4300可以负责为征信业务的交易信息进行存储共识,子共识网络4400可以负责为法人业务的交易信息进行存储共识。如图4所示,该区块链共识网络中还可包括区块链400,该区块链400可为主网链,每个子共识网络最终处理的交易都需要提交到主网链(即区块链400)上,通过主网链可统一对各个子共识网络的交易进行统一存储与管理。
可以理解的是,每个子共识网络中均可包括一个代表节点,而每个子共识网络所需要提交到主网链上的数据,可以由代表节点提高到主网链上。如图4所示,该子共识网络4100可以包括代表节点4101、子共识网络4200可以包括代表节点4201、子共识网络4300可以包括代表节点4301、子共识网络4400可以包括代表节点4401,代表节点4101、代表节点4201、代表节点4301、代表节点4401可用于将自己网络中的交易提交至主网链400中。
应当理解,本申请的区块链网络可由前文的业务网络、路由层以及共识网络(如图4所对应的共识网络)共同组成。在本申请包括多个子共识网络的架构下,可以使得一个子共识网络负责为一个业务进行存储共识,由此可以无需区块链网络中的所有节点均利用其计算资源来参与到某一业务的区块共识中,可以节约节点资源。而在此架构上,为了可以对每个子共识网络中的共识节点进行针对性的身份管理,同时对各个子共识网络进行统一管理,本申请可以通过根证书认证中心为不同的业务增发不同的二级证书认证中心、同时为主网链增发一个二级证书认证中心,每个业务对应的二级证书认证中心可用于为一个业务对应的共识节点签发身份证书,每新增一个业务,则可新增发一个二级证书认证中心,通过该二级证书认证中心来为其对应的子共识节点集群(子共识网络对应的节点集群)签发身份证书;而主网链中的二级证书认证中心可用于为每个子共识网络中的代表节点签发身份证书,使得这些代表节点可以参与主网链中的通信共识;通过二级证书认证中心的方式,可以有效保证根证书认证中心对各个子共识网络的节点的身份的灵活且安全的管理。其签发身份证书的具体方法可参见后续图5所对应实施例中的描述。
为便于理解,请一并参见图5,图5是本申请实施例提供的一种基于区块链的数据处理方法。该数据处理方法为在区块链网络中签发身份证书的方法,该区块链网络可包括业务网络、共识网络(如图4所示的共识网络)以及用于隔离业务网络与共识网络的路由层;一下将以方法应用于上述图4所对应实施例中的代表节点(如代表节点4101来举例说明)。如图5所示,该基于区块链的数据处理方法可包括以下步骤S101-步骤S104:
步骤S101,第一代表节点基于业务创建请求遍历证书颁发节点集群;所述第一代表节点属于第一子共识节点集群;所述业务创建请求携带第一业务对应的业务类型。
本申请中,证书颁发节点集群中可包括一个或多个证书颁发节点,每个证书颁发节点可理解为是一个二级证书认证中心。应当理解,本申请可为每个业务(如,***业务、出口业务、法人业务、征信业务等等)分配不同的子共识节点集群以及二级证书认证中心,每新增一个业务,就可由根证书认证中心签发一个二级证书认证中心,通过该业务对应的二级证书号认证中心可为该业务对应的子共识节点集群签发身份证书。
其中,可以理解的是,证书认证中心是签发身份证书的区块链节点。证书认证中心可以根据每个业务的管理逻辑分为根证书认证中心、一级证书认证中心、二级证书认证中心。以业务为电子票据业务为例,根证书认证中心可用于生成根证书,根证书是根证书认证中心为其他证书签名的证书,根证书是由根证书认证中心自签名的。根证书认证中心可以根据根证书来确定一级证书认证中心,为一级证书认证中心签发一级身份证书,一级证书认证中心通常是监管机构终端,也就是通过根证书认证中心为监管机构终端发放监管机构身份证书。一级证书认证中心用于根据一级身份证书来确定二级证书认证中心,为二级证书认证中心签发二级身份证书,二级证书认证中心通常是管理机构终端,也就是通过一级证书认证中心为管理机构终端发放管理机构身份证书。本申请中的二级证书认证中心可用于根据二级身份证书来确定基层单位认证中心,为基层单位认证中心签发基层单位身份证书,基层单位通常为业务节点与共识节点,比如上述图3所对应实施例中处于业务网络中的公有云、私有云的终端设备,以及处于共识网络中的终端设备,均可以通过二级证书认证中心为业务节点与共识节点发放身份证书。
本申请中,可将每个二级证书认证中心称之为证书颁发节点,每个业务可对应有不同的证书颁发节点,每种业务对应的每个子共识节点集群对应的身份证书可由其业务对应的证书颁发节点所发放。而每个子共识节点集群中代表节点的身份证书可由主网链中的二级证书认证中心(即主链证书颁发节点)所发放。在每个业务上线时,可由其子共识节点集群中的代表节点向根证书认证中心(可称之为根证书颁发节点)发起请求(如业务创建请求),此时根证书认证中心可为该新增的业务增发一个二级证书颁发节点,该增发的二级证书颁发节点可专用于负责该业务(即该二级证书颁发节点所对应的执行业务类型与该业务的业务类型相匹配)。根证书颁发节点可将该新增发的二级证书颁发节点存储至二级证书颁发节点集群中,由此,该业务对应的代表节点可基于业务创建请求遍历该二级证书颁发节点集群,以查找到与本业务的业务类型匹配的二级证书颁发节点,再通过该二级证书颁发节点为自己所在的子共识节点集群发放身份证书。
本申请中的任一业务可称之为第一业务,该第一业务对应的子共识节点集群可称之为第一子共识节点集群,第一子共识节点集群中的代表节点可称之为第一代表节点。应当理解,每个子共识节点集群形成一个子共识网络。
步骤S102,根据所述第一业务对应的业务类型在所述证书颁发节点集群中获取第一目标证书颁发节点;所述第一目标证书颁发节点对应的执行业务类型与所述第一业务对应的业务类型相匹配。
本申请中,第一目标证书颁发节点可为根证书颁发节点为第一业务增发的二级证书颁发节点,可通过第一业务对应的业务类型在证书颁发节点集群中获取到。其具体方法可为:可获取证书颁发节点集群中每个证书颁发节点分别对应的执行业务类型,得到执行业务类型集合;随后,可获取第一业务对应的业务类型,将执行业务类型集合中与第一业务对应的业务类型相匹配的执行业务类型,确定为目标执行业务类型;随后,可将目标执行业务类型所对应的证书颁发节点确定为第一目标证书颁发节点。
步骤S103,将所述业务创建请求发送至所述第一目标证书颁发节点,以使所述第一目标证书颁发节点基于所述业务创建请求为所述第一子共识节点集群颁发第一节点证书,将所述第一子共识节点集群对应的第一节点证书进行上链;所述第一子共识节点集群对应的第一节点证书用于授予所述第一子共识节点集群针对所述第一业务的共识权限。
本申请中,第一代表节点在查找到第一目标证书颁发节点后,第一目标证书颁发节点即可为该第一代表节点所在的第一子共识节点集群中的每个共识节点发放身份证书,身份证书中可包括通信证书与签名证书。其中,该第一子共识节点集群中可包括参与共识的共识节点与不参与共识的非共识节点,而第一代表节点可请求第一目标证书颁发节点为第一子共识节点集群中的共识节点签发(即颁发)通信证书与签名证书(即双证书,共识节点对应的双证书可称之为共识节点对应的第一节点证书)、为第一子共识节点集群中的非共识节点颁发通信证书(非共识节点对应的通信证书可称之为非共识节点对应的第一节点证书)。同时,第一目标证书颁发节点在为第一子共识节点集群中的各个节点颁发证书后,可将第一子共识节点集群对应的第一节点证书(即共识节点对应的第一节点证书与非共识节点对应的第一节点证书)上链,这里的上链即生成区块添加至区块链网络中的主网链(如上述图4所对应架构图中的区块链400)中。
在第一目标证书颁发节点将该第一子共识节点集群对应的第一节点证书上链至主网链后,第一子共识节点集群中的各个节点可从该主网链中获取到自己对应的身份证书,并在获取到身份证书后上线运行(如,对第一业务对应的交易进行执行共识)。
步骤S104,在所述第一子共识节点集群对应的第一节点证书成功上链时,在所述证书颁发节点集群中获取主链证书颁发节点,向所述主链证书颁发节点发送所述业务创建请求,以使所述主链证书颁发节点基于所述业务创建请求为所述第一代表节点颁发主链证书,通过主共识节点集群对所述第一代表节点对应的所述主链证书进行上链;已上链的所述主链证书用于表征所述第一代表节点属于所述主共识节点集群;所述主共识节点集群中的所述第一代表节点与第二子共识节点集群中的第二代表节点用于进行共识交互;所述第二子共识节点集群具备由所述证书颁发节点集群中的第二目标证书颁发节点所颁发的第二节点证书,所述第二节点证书用于授予所述第二子共识节点集群针对第二业务的共识权限;所述第二目标证书颁发节点对应的执行业务类型与所述第二业务对应的业务类型相匹配;所述第一业务与所述第二业务不同;所述第一子共识节点集群、所述第二子共识节点集群以及所述主共识节点集群处于同一区块链网络中。
本申请中,因为各个子共识节点集群分别对应的交易需要存储至主网链上,而每个子共识节点集群中的交易是由代表节点提交至主网链中的,则本申请中的代表节点除了自己集群对应的二级证书颁发节点所颁发的身份证书以外,还需要有用于在主网链上进行通信共识的身份证书,则上述第一代表节点除了申请用于在自己集群中进行业务共识的身份证书以外,还需要向主链二级颁发节点请求为自己颁发主链证书(可包括通信证书与签名证书)。同理,主链二级颁发节点为第一代表节点签发主链证书后,也可将该第一代表节点的主链证书上链至主网链中,第一代表节点可在主网链中获取到该主链证书,可基于该主链证书与其他代表节点在主网链中进行共识交互。
可以理解的是,每个子共识节点集群可用于对不同业务的交易数据进行记录共识,其中,共识是指多方参与的区块链节点在预设规则下,通过多个区块链节点交互对某些数据、行为或流程达成一致的过程。在本申请中,每个子共识节点集群中的任意一个共识节点接收到待记录至主网链上的交易信息时,就可以基于主网链中的自己集群对应的二级证书颁发节点的身份证书(包含该二级证书颁发节点的公钥),来验证向自己发送交易信息的节点的身份证书,若该验证通过,则各个共识节点可对该交易信息进行共识,在共识通过后,可由集群的代表节点将该交易信息提交至主网链中进行存储。
以第一代表节点接收到业务节点发送的第二交易数据,生成了第二目标区块为例,第一代表节点可将该第二目标区块发送至第一子共识节点集群中的其他所有的共识节点,其他所有的共识节点可对该第一代表节点的身份证书进行验证,并在验证通过后,对该第二目标区块进行共识。其具体方法可为:可接收业务节点发送的与第一业务相关联的第二交易数据,根据第二交易数据可生成第二目标区块;随后,可将第二目标区块发送至剩余节点;其中,剩余节点为第一子共识节点集群中除第一代表节点以外的节点;接收剩余节点基于第二目标区块所返回的投票信息,基于投票信息确定针对第二目标区块的共识结果;在共识结果为共识通过结果时,将第二目标区块进行上链。
其中,以剩余节点的数量为至少两个;投票信息的数量为至少两个为例,对于基于投票信息确定针对第二目标区块的共识结果的具体方法可为:将至少两个投票信息中用于指示投票通过的投票信息确定为通过投票信息,统计通过投票信息的数量;获取第一代表节点的代表节点数量,以及至少两个剩余节点的数量;将代表节点数量与至少两个剩余节点的数量进行相加处理,得到节点总数量;将代表节点数量与通过投票信息的数量进行相加处理,得到通过数量;根据节点总数量与通过数量确定针对第二目标区块的共识结果。
其中,对于根据节点总数量与通过数量确定针对第二目标区块的共识结果的具体方法可为:可确定通过数量与节点总数量之间的比例值;若比例值大于或等于比例阈值,则将针对第二目标区块的共识结果确定为共识通过结果;若比例值小于比例阈值,则将针对第二目标区块的共识结果确定为共识失败结果。
应当理解,在确定第二目标区块是否通过共识时,可以获取投票结果为投票通过的共识节点对应的第一数量,以及投票结果为投票未通过的共识节点对应的第二数量,根据第一数量与第二数量中的至少一个可确定该第二目标区块的共识结果。例如,可以是当满足以下条件中的至少一个时,共识结果为通过:第一数量大于第二数量、第一数量达到第一预设阈值、第一数量与参与到共识校验的共识节点的数量的比值达到第二预设阈值(如2/3)。第一预设阈值、第二预设阈值对应的具体数值可根据需要设置。例如,假设共识节点1至2对应的投票结果分别为通过与不通过,而第一代表节点的投票结果为通过,则第一数量可为2,第二数量为1,假设共识通过的条件为第一数量占参与到共识校验的共识节点的数量的比例大于(或等于)2/3,则可判定该第二目标区块的共识结果为共识通过结果。
为避免子共识节点集群中的共识节点集体作恶,保证数据的真实性,本申请可将每个子共识节点集群中的数据区块同步至主网链中,以实现对子共识节点集群中的数据进行监督。以上述第二目标区块为例,在通过共识后,可将该第二目标区块上链至主网链中。其具体方法可为:在共识结果为共识通过结果时,将第二目标区块添加至第一代表节点的节点缓存中;随后,可获取节点缓存中所存储的待上链区块,以及待上链区块的区块数量;待上链区块包括第二目标区块;根据区块数量确定针对第二目标区块的区块上链资产,获取第一代表节点的节点标识,根据节点标识与区块上链资产生成针对第二目标区块的区块竞拍信息;将区块竞拍信息发送至第二代表节点,以使第二代表节点基于区块竞拍信息返回竞拍投票信息;根据竞拍投票信息确定第一代表节点针对第二目标区块的上链权限,在第一代表节点具备上链权限时,将第二目标区块添加至区块链网络中的数据账本中。应当理解,这里的数据账本即可为上述主网链。
其中,将第二目标区块添加至区块链网络中的数据账本中的具体方法可为:可获取数据账本中具有最大生成时间戳的最大区块,获取最大区块对应的区块哈希值;将区块哈希值添加至第二目标区块中,得到待添加区块;随后,可获取第一代表节点对应的私钥,基于第一代表节点对应的私钥对待添加区块进行签名,得到第一数字签名;将待添加区块与第一数字签名发送至第二代表节点,以使第二代表节点基于待添加区块与第一数字签名获取主链证书颁发节点对应的公钥,基于主链证书颁发节点对应的公钥对第一代表节点对应的主链证书进行身份验证,并在验证通过后得到第一代表节点对应的公钥,并基于第一代表节点对应的公钥对第一数字签名进行验签,得到验签结果;在验签结果为验签通过结果时,将待添加区块添加至数据账本中。
应当理解的是,第一子共识节点集群中的代表节点可包括节点缓存,该节点缓存中可用于存储通过共识后待上链至主网链的区块,在第二目标区块通过共识后,第一代表节点可基于自身节点缓存中待上链但还未上链的区块的数量,来确定竞拍资产(如,待上链但还未上链的区块的数量越多,为了快速将节点缓存中的区块进行上链,基于数量所确定的竞拍资产也就会越大)。应当理解,在第一代表节点拥有主网链中的主链证书时,该第一代表节点可具备主网链中的竞拍权限,第一代表节点可基于该竞拍资产去与其他代表节点竞争在主网链中的出块权限(如,第一代表节点的竞拍资产为最大竞拍资产,则该第一代表节点可获取到出块权限),在第一代表节点竞拍得到出块权限后,可获取该主网链中的具有最大生成时间戳的区块(即主网链中最新生成的区块),并获取到该区块的区块哈希值;随后,第一代表节点可将该区块哈希值添加至第二目标区块中,得到待添加区块;随后,第一代表节点可基于私钥对该待添加区块进行签名,并将签名后的待添加区块发送至主网链中参与共识校验的共识节点(可包括第二代表节点),第二代表节点可获取主网链中为第一代表节点颁发身份证书的第一目标颁发节点的公钥,并基于该公钥来验证第一代表节点的身份信息,在验证通过后即可认为该待添加区块在主网链中的共识结果为共识通过结果,此时可将该待添加区块添加至主网链中。
应当理解,第二代表节点对该第一代表节点的身份信息进行验证的过程,即可理解为对该待添加区块的共识过程。在此过程中,各个代表节点可同时进行竞拍投票,以确定在待添加区块后的下一个区块由哪一个代表节点出块(即确定拥有下一个区块的出块权限的目标代表节点是谁)。
应当理解,每个子共识节点集群中的交易信息均有代表节点提交至主网链中,则第一子共识节点集群中的第一代表节点也可接收到由第一子共识节点集群中的其他共识节点发送的区块,第一代表节点也需要对这个区块进行投票共识,并在通过共识后将该区块提交至主网链中(先存储至节点缓存,再确定竞拍资产,基于竞拍资产获取到出块权限后,将该区块添加至主网链中)。其具体方法可为:接收剩余节点发送的第三目标区块;第三目标区块为剩余节点根据与第一业务相关联的第三交易数据所生成;第三目标区块携带剩余节点基于剩余节点对应的私钥对第三目标区块进行签名后得到的第二数字签名;剩余节点为第一子共识节点集群中除第一代表节点以外的节点;获取剩余节点对应的公钥,基于剩余节点对应的公钥对第二数字签名进行验签,在验签通过后与剩余节点共同对第三目标区块进行共识;在第三目标区块通过共识后,将第三目标区块添加至区块链网络的数据账本中。
其中,对于获取剩余节点对应的公钥的具体方法可为:可在数据账本中获取剩余节点对应的第一节点证书;剩余节点对应的第一节点证书,包括第一目标证书颁发节点基于第一目标证书颁发节点的私钥对剩余节点的公钥,以及剩余节点的身份信息进行签名后得到的签名信息;获取第一目标证书颁发节点对应的公钥,基于第一目标证书颁发节点对应的公钥对签名信息进行验证;在验证通过后,获取剩余节点对应的公钥以及剩余节点的身份信息。
在本申请实施例中,可将区块链网络中的共识节点分为不同的集群(可将每个集群称之为子共识节点集群),一个子共识节点集群负责为一种业务进行共识。而为了使子共识节点集群之间可以互不干扰,本申请可为每种业务增发一个证书颁发节点,每种业务上线时,可基于该业务对应的证书颁发节点为该业务的子共识节点集群颁发证书,在拥有证书后,这些子共识节点集群即可上线运行,应当理解,只有在任意两个共识节点的证书均是由同一个证书颁发节点所颁发时,这两个共识节点才会互相信任,互相进行通信共识;由此,当有其他非本业务的恶意节点来恶意获取某个业务的数据时,由于该恶意节点并不具备该业务对应的证书颁发节点所颁发的证书,该业务的子共识节点集群并不会信任该恶意节点,该子共识节点集群并不会向恶意节点发送本业务的数据,可以大大提高本业务的数据的安全性。同时,通过子共识节点集群负责为一种业务进行共识的方式,在为某种业务的交易数据进行共识时,不需要区块链网络中所有的区块链节点都利用自身的计算资源来争当该交易数据的共识节点进行共识,只需要该业务对应的子共识节点集群为该交易数据进行共识即可,可以很好地节约区块链网络中区块链节点的计算资源;而且在共识流程中,由于子共识节点集群的节点数量远少于区块链网络中的所有共识节点的数量,只需要进行小范围的数据广播,可以提高共识效率。综上,本申请可以在区块链共识业务中,节约节点计算资源,提高共识效率,提高交易数据的安全性。
为便于理解代表节点将区块上链至数据账本(主网链)的具体过程,请一并参见图6,图6是本申请实施例提供的一种将区块添加至数据账本的示意图。
如图6所示,以子共识节点集群为***业务对应的子共识节点集群6100为例,该子共识节点集群6100所产生的区块6002(子共识节点集群6100中的某一共识节点所生成的区块)中,应该包括该子共识集群6100产生的上一个区块(区块6002的上一个区块,如区块6001)的哈希值;每个子共识集群可以根据每个区块中所包括的上一个区块的哈希值,来组织自己的业务子链(仅包含***业务的业务链)。在子共识节点集群对该区块6002进行共识且该区块6002通过共识后,该子共识节点集群中的代表节点6101可基于自身节点缓存中的待上链但还未上链的区块的区块数量,确定区块竞拍资产。
以代表节点6101中的节点缓存中的全部区块(除区块6002以外的所有区块)均上链至主网链(即如图6所示的区块链600)为例,该子共识节点集群6100中的上一个区块即区块6001对应于区块链600中的C1(也就是在生成区块6002前,子共识节点集群6100所生成的最新区块6001已成功上链至区块链600中),此时,该节点缓存中仅包括刚存储至节点缓存的区块6002,根据该数量1可确定一个竞拍资产。随后,代表节点6101可基于该竞拍资产去与主网链中的其他代表节点争夺主网链中的出块权限。
以代表节点6101争夺到出块权限为例,该代表节点6101可查询区块链600,获取到具有最大生成时间戳的最大区块为D1,代表节点6101可获取该最大区块D1的区块哈希值,并基于该最大区块D1的区块哈希值以及区块6002,生成区块C2,随后,可将该区块C2添加至区块链600中(即添加至区块D1的之后)。应当理解,在区块C2添加至区块链600后,该区块C2即可作为该区块链600中具有最大时间戳的最大区块。应当理解,因为主网链中存储有整个业务生态的全部信息(即除***业务外,还可包括其他业务的信息,如出口业务、法人业务、征信业务等等),可便于统一管理和审查。
进一步地,应当理解,因为本申请中将区块链网络划分为多个区块链子共识网络,而当不同的子共识网络需要交叉访问时,可访问证书颁发节点集群,通过证书颁发节点集群为之颁发有时间限制的交叉验证证书。如子共识节点集群A拥有二级证书颁发节点a,集群B有二级证书颁发节点b。其中,二级证书颁发节点a与二级证书颁发节点b都是由根证书颁发节点R签发的。
因为子共识节点集群A与子共识节点集群B之间的共识节点本身只是负责自己本身的业务共识,所以互相无法验证,但如果出现了跨业务的联通需要,则子共识节点集群A与子共识节点集群B可分别首先向证书颁发节点集群中的CA合约提交申请,可由证书颁发节点集群中的二级证书颁发节点a为子共识节点集群B颁发具有时间限制(例如,在一小时内)的身份证书a1,由证书颁发节点集群中的二级证书颁发节点b为子共识节点集群A颁发具有时间限制(例如,在一小时内)的身份证书b1,将新颁发的证书a1,b1生成区块并提交到主网链中。
进一步地,子共识节点集群A与子共识节点集群B中的节点,在等到证书a1,b1对应的新区块被主网链确认后,可从主网链中取回证书a1与证书b1。其中,应当理解,证书a1的证书链应当为R-b-a1(即为根证书颁发节点R签发了二级证书颁发节点b,二级证书颁发节点a又签发了证书a1);证书b1的证书链是R-a-b1(即根证书颁发节点R签发了二级证书颁发节点a,二级证书颁发节点a又签发了证书b1)。
此时,子共识节点集群A与子共识节点集群B之间的节点都可以将证书a1与证书b1加入自己的证书池(证书a1与证书b1都有一个有效期),在该有效期内,子共识节点集群A与子共识节点集群B之间的各个节点可以互相通过身份证书通信,也可以互相进行身份认证。
为便于理解跨业务进行通信时,为子共识节点集***叉颁发证书的方法,请一并参见图7,图7是本申请实施例提供的一种为子共识节点集***叉颁发证书的流程示意图。以下将以上述图5所对应的第一代表节点来执行本流程为例进行说明,如图7所示,该流程可以包括以下步骤S201-步骤S203:
步骤S201,接收第二代表节点发送的针对第一目标区块的跨业务共识请求;第一目标区块为第二代表节点根据第一交易数据所生成;第一交易数据与第一业务以及第二业务相关联;跨业务共识请求携带由第一目标证书颁发节点为第二子共识节点集群颁发的第三节点证书;第三节点证书用于授予第二子共识节点集群具备针对第一业务的共识权限。
具体的,这里的第一目标区块可以是指第二代表节点基于第一交易数据所生成的,该第一交易数据与第一业务与第二业务均相关。此时若想对该第一目标区块进行共识,则需要第一业务对应的第一子共识节点集群以及第二业务对应第二子共识节点集群来共同对该第一目标区块进行共识。但因为第一子共识节点集群并不具备针对第二业务的共识权限,而第二子共识节点集群也并不具备针对第一业务的共识权限,若第一子共识节点集群与第二子共识节点集群要参与到该第一目标区块的共识校验中,则第一子共识节点集群需要拥有第二业务对应的第二目标证书颁发节点所颁发的证书,第二子共识节点集群需要拥有第一业务对应的第一目标证书颁发节点所颁发的证书。
以第二代表节点已成功获取到第一目标证书颁发节点所颁发的证书(即第三节点证书)为例,第二代表节点可在获取到第三节点证书时,将该第一目标区块发送至第一代表节点。
步骤S202,基于跨业务共识请求获取第一子共识节点集群对应的第四节点证书;第四节点证书是由第二目标证书颁发节点所颁发的;第四节点证书用于授予第一子共识节点集群具备针对第二业务的共识权限。
具体的,此时,若第一代表节点期望与第二子共识节点集群进行跨业务交互,则第一代表节点需要获取到第二目标证书颁发节点所颁发的证书(即第四节点证书)。
首先,第一代表节点可优先遍历主网链,查询主网链中是否已存在由第二目标证书颁发节点所为第一子共识节点集群所颁发的身份证书,若存在,则可检测该身份证书的有效期,若有效期还未过期,则可直接获取该身份证书;而若该主网链中不存在第二目标证书颁发节点所为第一子共识节点集群所颁发的身份证书,或为之颁发的身份证书的有效期已过期,则第一代表节点可向第二目标证书颁发节点发送请求,以请求第二目标证书颁发节点为第一子共识节点集群颁发身份证书。
其具体方法可为:可基于跨业务共识请求遍历区块链网络中的数据账本(即主网链);若数据账本中存在由第二目标证书颁发节点为第一子共识节点集群所颁发的证书,且由第二目标证书颁发节点为第一子共识节点集群所颁发的证书的证书证明时间为有效时间,则可将数据账本中所存储的由第二目标证书颁发节点为第一子共识节点集群所颁发的证书确定为第一子共识节点集群对应的第四节点证书;而若证书证明时间为失效时间,或数据账本中不存在由第二目标证书颁发节点为第一子共识节点集群所颁发的证书,则可生成证书颁发请求,根据证书颁发请求与证书颁发节点集群可获取第一子共识节点集群对应的第四节点证书。
其中,根据证书颁发请求与证书颁发节点集群获取第一子共识节点集群对应的第四节点证书的具体方法可为:可遍历证书颁发节点集群,在证书颁发节点集群中获取第二目标证书颁发节点;随后,可向第二目标证书颁发节点发送证书颁发请求,以使第二目标证书颁发节点基于证书颁发请求为第一子共识节点集群颁发第四节点证书,并将第四节点证书添加至数据账本;随后,可接收第二目标证书颁发节点返回的证书颁发成功信息,基于证书颁发成功信息在数据账本中获取第一子共识节点集群对应的第四节点证书。
步骤S203,基于第一子共识节点集群对应的第四节点证书、第二子共识节点集群对应的第三节点证书,在第一子共识节点集群和第二子共识节点集群中共同对第一目标区块进行跨业务共识。
具体的,第一子共识节点集群中的各个共识节点在获取到第二目标证书颁发节点为自己颁发的身份证书、第二子共识节点集群中的各个共识节点在获取到第一目标证书颁发节点为自己颁发的身份证书后,可基于这些身份证书进行跨业务交互。
在本申请实施例中,可将区块链网络中的共识节点分为不同的集群(可将每个集群称之为子共识节点集群),一个子共识节点集群负责为一种业务进行共识。而为了使子共识节点集群之间可以互不干扰,本申请可为每种业务增发一个证书颁发节点,每种业务上线时,可基于该业务对应的证书颁发节点为该业务的子共识节点集群颁发证书,在拥有证书后,这些子共识节点集群即可上线运行,应当理解,只有在任意两个共识节点的证书均是由同一个证书颁发节点所颁发时,这两个共识节点才会互相信任,互相进行通信共识;由此,当有其他非本业务的恶意节点来恶意获取某个业务的数据时,由于该恶意节点并不具备该业务对应的证书颁发节点所颁发的证书,该业务的子共识节点集群并不会信任该恶意节点,该子共识节点集群并不会向恶意节点发送本业务的数据,可以大大提高本业务的数据的安全性。同时,通过子共识节点集群负责为一种业务进行共识的方式,在为某种业务的交易数据进行共识时,不需要区块链网络中所有的区块链节点都利用自身的计算资源来争当该交易数据的共识节点进行共识,只需要该业务对应的子共识节点集群为该交易数据进行共识即可,可以很好地节约区块链网络中区块链节点的计算资源;而且在共识流程中,由于子共识节点集群的节点数量远少于区块链网络中的所有共识节点的数量,只需要进行小范围的数据广播,可以提高共识效率。综上,本申请可以在区块链共识业务中,节约节点计算资源,提高共识效率,提高交易数据的安全性。
进一步地,请参见图8,图8是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。上述基于区块链的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该基于区块链的数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。该基于区块链的数据处理装置1可以包括:集群遍历模块11、节点获取模块12以及请求发送模块13。
集群遍历模块11,用于基于业务创建请求遍历证书颁发节点集群;第一代表节点属于第一子共识节点集群;业务创建请求携带第一业务对应的业务类型;
节点获取模块12,用于根据第一业务对应的业务类型在证书颁发节点集群中获取第一目标证书颁发节点;第一目标证书颁发节点对应的执行业务类型与第一业务对应的业务类型相匹配;
请求发送模块13,用于将业务创建请求发送至第一目标证书颁发节点,以使第一目标证书颁发节点基于业务创建请求为第一子共识节点集群颁发第一节点证书,将第一子共识节点集群对应的第一节点证书进行上链;第一子共识节点集群对应的第一节点证书用于授予第一子共识节点集群针对第一业务的共识权限;
请求发送模块13,还用于在第一子共识节点集群对应的第一节点证书成功上链时,在证书颁发节点集群中获取主链证书颁发节点,向主链证书颁发节点发送业务创建请求,以使主链证书颁发节点基于业务创建请求为第一代表节点颁发主链证书,通过主共识节点集群对第一代表节点对应的主链证书进行上链;已上链的主链证书用于表征第一代表节点属于主共识节点集群;主共识节点集群中的第一代表节点与第二子共识节点集群中的第二代表节点用于进行共识交互;第二子共识节点集群具备由证书颁发节点集群中的第二目标证书颁发节点所颁发的第二节点证书,第二节点证书用于授予第二子共识节点集群针对第二业务的共识权限;第二目标证书颁发节点对应的执行业务类型与第二业务对应的业务类型相匹配;第一业务与第二业务不同;第一子共识节点集群、第二子共识节点集群以及主共识节点集群处于同一区块链网络中。
其中,集群遍历模块11、节点获取模块12以及请求发送模块13的具体实现方式,可以参见上述图5所对应实施例中步骤S101-步骤S104中的描述,这里将不再进行赘述。
在一个实施例中,节点获取模块12可以包括:集合获取单元121与节点确定单元122。
集合获取单元121,用于获取证书颁发节点集群中每个证书颁发节点分别对应的执行业务类型,得到执行业务类型集合;
节点确定单元122,用于获取第一业务对应的业务类型,将执行业务类型集合中与第一业务对应的业务类型相匹配的执行业务类型,确定为目标执行业务类型;
节点确定单元122,还用于将目标执行业务类型所对应的证书颁发节点确定为第一目标证书颁发节点。
其中,集合获取单元121与节点确定单元122的具体实现方式,可以参见上述图5所对应实施例中步骤S102中的描述,这里将不再进行赘述。
在一个实施例中,该基于区块链的数据处理装置1还可以包括:请求接收模块14、证书获取模块15以及共识模块16。
请求接收模块14,用于接收第二代表节点发送的针对第一目标区块的跨业务共识请求;第一目标区块为第二代表节点根据第一交易数据所生成;第一交易数据与第一业务以及第二业务相关联;跨业务共识请求携带由第一目标证书颁发节点为第二子共识节点集群颁发的第三节点证书;第三节点证书用于授予第二子共识节点集群具备针对第一业务的共识权限;
证书获取模块15,用于基于跨业务共识请求获取第一子共识节点集群对应的第四节点证书;第四节点证书是由第二目标证书颁发节点所颁发的;第四节点证书用于授予第一子共识节点集群具备针对第二业务的共识权限;
共识模块16,用于基于第一子共识节点集群对应的第四节点证书、第二子共识节点集群对应的第三节点证书,在第一子共识节点集群和第二子共识节点集群中共同对第一目标区块进行跨业务共识。
其中,请求接收模块14、证书获取模块15以及共识模块16的具体实现方式,可以参见上述图6所对应实施例中步骤S201-步骤S203中的描述,这里将不再进行赘述。
在一个实施例中,证书获取模块15可以包括:账本遍历单元151与证书获取单元152。
账本遍历单元151,用于基于跨业务共识请求遍历区块链网络中的数据账本;
证书获取单元152,用于若数据账本中存在由第二目标证书颁发节点为第一子共识节点集群所颁发的证书,且由第二目标证书颁发节点为第一子共识节点集群所颁发的证书的证书证明时间为有效时间,则将数据账本中所存储的,由第二目标证书颁发节点为第一子共识节点集群所颁发的证书,确定为第一子共识节点集群对应的第四节点证书;
证书获取单元152,还用于若证书证明时间为失效时间,或数据账本中不存在由第二目标证书颁发节点为第一子共识节点集群所颁发的证书,则生成证书颁发请求,根据证书颁发请求与证书颁发节点集群获取第一子共识节点集群对应的第四节点证书。
其中,账本遍历单元151与证书获取单元152的具体实现方式,可以参见上述图6所对应实施例中步骤S202中的描述,这里将不再进行赘述。
在一个实施例中,证书获取单元152,还具体用于遍历证书颁发节点集群,在证书颁发节点集群中获取第二目标证书颁发节点;
证书获取单元152,还具体用于向第二目标证书颁发节点发送证书颁发请求,以使第二目标证书颁发节点基于证书颁发请求为第一子共识节点集群颁发第四节点证书,并将第四节点证书添加至数据账本;
证书获取单元152,还具体用于接收第二目标证书颁发节点返回的证书颁发成功信息,基于证书颁发成功信息在数据账本中获取第一子共识节点集群对应的第四节点证书。
在一个实施例中,该基于区块链的数据处理装置1还可以包括:区块生成模块17、区块共识模块18以及区块上链模块19。
区块生成模块17,用于接收业务节点发送的与第一业务相关联的第二交易数据,根据第二交易数据生成第二目标区块;
区块共识模块18,用于将第二目标区块发送至剩余节点;剩余节点为第一子共识节点集群中除第一代表节点以外的节点;
区块共识模块18,还用于接收剩余节点基于第二目标区块所返回的投票信息;
区块共识模块18,还用于基于投票信息确定针对第二目标区块的共识结果;
区块上链模块19,用于在共识结果为共识通过结果时,将第二目标区块进行上链。
其中,区块生成模块17、区块共识模块18以及区块上链模块19的具体实现方式,可以参见上述图5所对应实施例中步骤S104中的描述,这里将不再进行赘述。
在一个实施例中,剩余节点的数量为至少两个;投票信息的数量为至少两个;
请参见图8,区块共识模块18可以包括:信息获取单元181、运算单元182以及结果确定单元183。
信息获取单元181,用于将至少两个投票信息中用于指示投票通过的投票信息确定为通过投票信息,统计通过投票信息的数量;
信息获取单元181,还用于获取第一代表节点的代表节点数量,以及至少两个剩余节点的数量;
运算单元182,用于将代表节点数量与至少两个剩余节点的数量进行相加处理,得到节点总数量;
运算单元182,还用于将代表节点数量与通过投票信息的数量进行相加处理,得到通过数量;
结果确定单元183,用于根据节点总数量与通过数量确定针对第二目标区块的共识结果。
其中,信息获取单元181、运算单元182以及结果确定单元183的具体实现方式,可以参见上述图5所对应实施例中步骤S104中的描述,这里将不再进行赘述。
在一个实施例中,结果确定单元183,还具体用于确定通过数量与节点总数量之间的比例值;
结果确定单元183,还具体用于若比例值大于或等于比例阈值,则将针对第二目标区块的共识结果确定为共识通过结果;
结果确定单元183,还具体用于若比例值小于比例阈值,则将针对第二目标区块的共识结果确定为共识失败结果。
在一个实施例中,区块上链模块19可以包括:区块添加单元191、竞拍信息生成单元192、信息发送单元193以及区块添加单元194。
区块添加单元191,用于在共识结果为共识通过结果时,将第二目标区块添加至第一代表节点的节点缓存中;
竞拍信息生成单元192,用于获取节点缓存中所存储的待上链区块,以及待上链区块的区块数量;待上链区块包括第二目标区块;
竞拍信息生成单元192,还用于根据区块数量确定针对第二目标区块的区块上链资产,获取第一代表节点的节点标识,根据节点标识与区块上链资产生成针对第二目标区块的区块竞拍信息;
信息发送单元193,用于将区块竞拍信息发送至第二代表节点,以使第二代表节点基于区块竞拍信息返回竞拍投票信息;
区块添加单元194,用于根据竞拍投票信息确定第一代表节点针对第二目标区块的上链权限;
区块添加单元194,还用于在第一代表节点具备上链权限时,将第二目标区块添加至区块链网络中的数据账本中。
其中,区块添加单元191、竞拍信息生成单元192、信息发送单元193以及区块添加单元194的具体实现方式,可以参见上述图5所对应实施例中步骤S104中的描述,这里将不再进行赘述。
在一个实施例中,区块添加单元194,还具体用于获取数据账本中具有最大生成时间戳的最大区块,获取最大区块对应的区块哈希值;
区块添加单元194,还具体用于将区块哈希值添加至第二目标区块中,得到待添加区块;
区块添加单元194,还具体用于获取第一代表节点对应的私钥,基于第一代表节点对应的私钥对待添加区块进行签名,得到第一数字签名;
区块添加单元194,还具体用于将待添加区块与第一数字签名发送至第二代表节点,以使第二代表节点基于待添加区块与第一数字签名获取主链证书颁发节点对应的公钥,基于主链证书颁发节点对应的公钥对第一代表节点对应的主链证书进行身份验证,在验证通过后得到第一代表节点对应的公钥,并基于第一代表节点对应的公钥对第一数字签名进行验签,得到验签结果;
区块添加单元194,还具体用于在验签结果为验签通过结果时,将待添加区块添加至数据账本中。
在一个实施例中,该基于区块链的数据处理装置1还可以包括:区块接收模块20、验签模块21以及区块写入模块22。
区块接收模块20,用于接收剩余节点发送的第三目标区块;第三目标区块为剩余节点根据与第一业务相关联的第三交易数据所生成;第三目标区块携带剩余节点基于剩余节点对应的私钥对第三目标区块进行签名后得到的第二数字签名;剩余节点为第一子共识节点集群中除第一代表节点以外的节点;
验签模块21,用于获取剩余节点对应的公钥;
验签模块21,还用于基于剩余节点对应的公钥对第二数字签名进行验签,在验签通过后与剩余节点共同对第三目标区块进行共识;
区块写入模块22,用于在第三目标区块通过共识后,将第三目标区块添加至区块链网络的数据账本中。
其中,区块接收模块20、验签模块21以及区块写入模块22的具体实现方式,可以参见上述图5所对应实施例中步骤S104中的描述,这里将不再进行赘述。
在一个实施例中,验签模块21可以包括:证书获取单元211与公钥获取单元212。
证书获取单元211,用于在数据账本中获取剩余节点对应的第一节点证书;剩余节点对应的第一节点证书,包括第一目标证书颁发节点基于第一目标证书颁发节点的私钥对剩余节点的公钥,以及剩余节点的身份信息进行签名后得到的签名信息;
公钥获取单元212,用于获取第一目标证书颁发节点对应的公钥,基于第一目标证书颁发节点对应的公钥对签名信息进行验证;
公钥获取单元212,还用于在验证通过后,获取剩余节点对应的公钥以及剩余节点的身份信息。
其中,证书获取单元211与公钥获取单元212的具体实现方式,可以参见上述图5所对应实施例中步骤S104中的描述,这里将不再进行赘述。
在本申请实施例中,可将区块链网络中的共识节点分为不同的集群(可将每个集群称之为子共识节点集群),一个子共识节点集群负责为一种业务进行共识。而为了使子共识节点集群之间可以互不干扰,本申请可为每种业务增发一个证书颁发节点,每种业务上线时,可基于该业务对应的证书颁发节点为该业务的子共识节点集群颁发证书,在拥有证书后,这些子共识节点集群即可上线运行,应当理解,只有在任意两个共识节点的证书均是由同一个证书颁发节点所颁发时,这两个共识节点才会互相信任,互相进行通信共识;由此,当有其他非本业务的恶意节点来恶意获取某个业务的数据时,由于该恶意节点并不具备该业务对应的证书颁发节点所颁发的证书,该业务的子共识节点集群并不会信任该恶意节点,该子共识节点集群并不会向恶意节点发送本业务的数据,可以大大提高本业务的数据的安全性。同时,通过子共识节点集群负责为一种业务进行共识的方式,在为某种业务的交易数据进行共识时,不需要区块链网络中所有的区块链节点都利用自身的计算资源来争当该交易数据的共识节点进行共识,只需要该业务对应的子共识节点集群为该交易数据进行共识即可,可以很好地节约区块链网络中区块链节点的计算资源;而且在共识流程中,由于子共识节点集群的节点数量远少于区块链网络中的所有共识节点的数量,只需要进行小范围的数据广播,可以提高共识效率。综上,本申请可以在区块链共识业务中,节约节点计算资源,提高共识效率,提高交易数据的安全性。
进一步地,请参见图9,图9是本申请实施例提供的一种计算机设备的结构示意图。如图9所示,上述图8所对应实施例中的基于区块链的数据处理装置1可以应用于上述计算机设备1000,上述计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图9所示,作为一种计算机可读存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及设备控制应用程序。
在图9所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
基于业务创建请求遍历证书颁发节点集群;第一代表节点属于第一子共识节点集群;业务创建请求携带第一业务对应的业务类型;
根据第一业务对应的业务类型在证书颁发节点集群中获取第一目标证书颁发节点;第一目标证书颁发节点对应的执行业务类型与第一业务对应的业务类型相匹配;
将业务创建请求发送至第一目标证书颁发节点,以使第一目标证书颁发节点基于业务创建请求为第一子共识节点集群颁发第一节点证书,将第一子共识节点集群对应的第一节点证书进行上链;第一子共识节点集群对应的第一节点证书用于授予第一子共识节点集群针对第一业务的共识权限;
在第一子共识节点集群对应的第一节点证书成功上链时,在证书颁发节点集群中获取主链证书颁发节点,向主链证书颁发节点发送业务创建请求,以使主链证书颁发节点基于业务创建请求为第一代表节点颁发主链证书,通过主共识节点集群对第一代表节点对应的主链证书进行上链;已上链的主链证书用于表征第一代表节点属于主共识节点集群;主共识节点集群中的第一代表节点与第二子共识节点集群中的第二代表节点用于进行共识交互;第二子共识节点集群具备由证书颁发节点集群中的第二目标证书颁发节点所颁发的第二节点证书,第二节点证书用于授予第二子共识节点集群针对第二业务的共识权限;第二目标证书颁发节点对应的执行业务类型与第二业务对应的业务类型相匹配;第一业务与第二业务不同;第一子共识节点集群、第二子共识节点集群以及主共识节点集群处于同一区块链网络中。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图5所对应实施例中对该基于区块链的数据处理方法的描述,也可执行前文图8所对应实施例中对该基于区块链的数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据处理的计算机设备1000所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文图5所对应实施例中对上述数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的基于区块链的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital, SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中一方面提供的方法。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种基于区块链的数据处理方法,其特征在于,包括:
第一代表节点基于业务创建请求遍历证书颁发节点集群;所述第一代表节点属于第一子共识节点集群;所述业务创建请求携带第一业务对应的业务类型;
根据所述第一业务对应的业务类型在所述证书颁发节点集群中获取第一目标证书颁发节点;所述第一目标证书颁发节点对应的执行业务类型与所述第一业务对应的业务类型相匹配;
将所述业务创建请求发送至所述第一目标证书颁发节点,以使所述第一目标证书颁发节点基于所述业务创建请求为所述第一子共识节点集群颁发第一节点证书,将所述第一子共识节点集群对应的第一节点证书进行上链;所述第一子共识节点集群对应的第一节点证书用于授予所述第一子共识节点集群针对所述第一业务的共识权限;
在所述第一子共识节点集群对应的第一节点证书成功上链时,在所述证书颁发节点集群中获取主链证书颁发节点,向所述主链证书颁发节点发送所述业务创建请求,以使所述主链证书颁发节点基于所述业务创建请求为所述第一代表节点颁发主链证书,通过主共识节点集群对所述第一代表节点对应的所述主链证书进行上链;已上链的所述主链证书用于表征所述第一代表节点属于所述主共识节点集群;所述主共识节点集群中的所述第一代表节点与第二子共识节点集群中的第二代表节点用于进行共识交互;所述第二子共识节点集群具备由所述证书颁发节点集群中的第二目标证书颁发节点所颁发的第二节点证书,所述第二节点证书用于授予所述第二子共识节点集群针对第二业务的共识权限;所述第二目标证书颁发节点对应的执行业务类型与所述第二业务对应的业务类型相匹配;所述第一业务与所述第二业务不同;所述第一子共识节点集群、所述第二子共识节点集群以及所述主共识节点集群处于同一区块链网络中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一业务对应的业务类型在所述证书颁发节点集群中获取第一目标证书颁发节点,包括:
获取所述证书颁发节点集群中每个证书颁发节点分别对应的执行业务类型,得到执行业务类型集合;
获取所述第一业务对应的业务类型,将所述执行业务类型集合中与所述第一业务对应的业务类型相匹配的执行业务类型,确定为目标执行业务类型;
将所述目标执行业务类型所对应的证书颁发节点确定为所述第一目标证书颁发节点。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述第二代表节点发送的针对第一目标区块的跨业务共识请求;所述第一目标区块为所述第二代表节点根据第一交易数据所生成;所述第一交易数据与所述第一业务以及所述第二业务相关联;所述跨业务共识请求携带由所述第一目标证书颁发节点为所述第二子共识节点集群颁发的第三节点证书;所述第三节点证书用于授予所述第二子共识节点集群具备针对所述第一业务的共识权限;
基于所述跨业务共识请求获取所述第一子共识节点集群对应的第四节点证书;所述第四节点证书是由所述第二目标证书颁发节点所颁发的;所述第四节点证书用于授予所述第一子共识节点集群具备针对所述第二业务的共识权限;
基于所述第一子共识节点集群对应的所述第四节点证书、所述第二子共识节点集群对应的所述第三节点证书,在所述第一子共识节点集群和所述第二子共识节点集群中共同对所述第一目标区块进行跨业务共识。
4.根据权利要求3所述的方法,其特征在于,所述基于所述跨业务共识请求获取所述第一子共识节点集群对应的第四节点证书,包括:
基于所述跨业务共识请求遍历所述区块链网络中的数据账本;
若所述数据账本中存在由所述第二目标证书颁发节点为所述第一子共识节点集群所颁发的证书,且所述由所述第二目标证书颁发节点为所述第一子共识节点集群所颁发的证书的证书证明时间为有效时间,则将所述数据账本中所存储的,所述由所述第二目标证书颁发节点为所述第一子共识节点集群所颁发的证书,确定为所述第一子共识节点集群对应的第四节点证书;
若所述证书证明时间为失效时间,或所述数据账本中不存在由所述第二目标证书颁发节点为所述第一子共识节点集群所颁发的证书,则生成证书颁发请求,根据所述证书颁发请求与所述证书颁发节点集群获取所述第一子共识节点集群对应的第四节点证书。
5.根据权利要求4所述的方法,其特征在于,所述根据所述证书颁发请求与所述证书颁发节点集群获取所述第一子共识节点集群对应的第四节点证书,包括:
遍历所述证书颁发节点集群,在所述证书颁发节点集群中获取所述第二目标证书颁发节点;
向所述第二目标证书颁发节点发送所述证书颁发请求,以使所述第二目标证书颁发节点基于所述证书颁发请求为所述第一子共识节点集群颁发所述第四节点证书,并将所述第四节点证书添加至所述数据账本;
接收所述第二目标证书颁发节点返回的证书颁发成功信息,基于所述证书颁发成功信息在所述数据账本中获取所述第一子共识节点集群对应的所述第四节点证书。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收业务节点发送的与所述第一业务相关联的第二交易数据,根据所述第二交易数据生成第二目标区块;
将所述第二目标区块发送至剩余节点;所述剩余节点为所述第一子共识节点集群中除所述第一代表节点以外的节点;
接收所述剩余节点基于所述第二目标区块所返回的投票信息,基于所述投票信息确定针对所述第二目标区块的共识结果;
在所述共识结果为共识通过结果时,将所述第二目标区块进行上链。
7.根据权利要求6所述的方法,其特征在于,所述剩余节点的数量为至少两个;所述投票信息的数量为至少两个;
所述基于所述投票信息确定针对所述第二目标区块的共识结果,包括:
将至少两个投票信息中用于指示投票通过的投票信息确定为通过投票信息,统计所述通过投票信息的数量;
获取所述第一代表节点的代表节点数量,以及所述至少两个剩余节点的数量;
将所述代表节点数量与所述至少两个剩余节点的数量进行相加处理,得到节点总数量;
将所述代表节点数量与所述通过投票信息的数量进行相加处理,得到通过数量;
根据所述节点总数量与所述通过数量确定针对所述第二目标区块的共识结果。
8.根据权利要求7所述的方法,其特征在于,所述根据所述节点总数量与所述通过数量确定针对所述第二目标区块的共识结果,包括:
确定所述通过数量与所述节点总数量之间的比例值;
若所述比例值大于或等于比例阈值,则将针对所述第二目标区块的共识结果确定为共识通过结果;
若所述比例值小于所述比例阈值,则将针对所述第二目标区块的共识结果确定为共识失败结果。
9.根据权利要求6所述的方法,其特征在于,所述在所述共识结果为共识通过结果时,将所述第二目标区块进行上链,包括:
在所述共识结果为共识通过结果时,将所述第二目标区块添加至所述第一代表节点的节点缓存中;
获取所述节点缓存中所存储的待上链区块,以及所述待上链区块的区块数量;所述待上链区块包括所述第二目标区块;
根据所述区块数量确定针对所述第二目标区块的区块上链资产,获取所述第一代表节点的节点标识,根据所述节点标识与所述区块上链资产生成针对所述第二目标区块的区块竞拍信息;
将所述区块竞拍信息发送至所述第二代表节点,以使所述第二代表节点基于所述区块竞拍信息返回竞拍投票信息;
根据所述竞拍投票信息确定所述第一代表节点针对所述第二目标区块的上链权限,在所述第一代表节点具备所述上链权限时,将所述第二目标区块添加至所述区块链网络中的数据账本中。
10.根据权利要求9所述的方法,其特征在于,所述将所述第二目标区块添加至所述区块链网络中的数据账本中,包括:
获取所述数据账本中具有最大生成时间戳的最大区块,获取所述最大区块对应的区块哈希值;
将所述区块哈希值添加至所述第二目标区块中,得到待添加区块;
获取所述第一代表节点对应的私钥,基于所述第一代表节点对应的私钥对所述待添加区块进行签名,得到第一数字签名;
将所述待添加区块与所述第一数字签名发送至所述第二代表节点,以使所述第二代表节点基于所述待添加区块与所述第一数字签名获取所述主链证书颁发节点对应的公钥,基于所述主链证书颁发节点对应的公钥对所述第一代表节点对应的主链证书进行身份验证,在验证通过后得到所述第一代表节点对应的公钥,并基于所述第一代表节点对应的公钥对所述第一数字签名进行验签,得到验签结果;
在所述验签结果为验签通过结果时,将所述待添加区块添加至所述数据账本中。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收剩余节点发送的第三目标区块;所述第三目标区块为所述剩余节点根据与所述第一业务相关联的第三交易数据所生成;所述第三目标区块携带所述剩余节点基于所述剩余节点对应的私钥对所述第三目标区块进行签名后得到的第二数字签名;所述剩余节点为所述第一子共识节点集群中除所述第一代表节点以外的节点;
获取所述剩余节点对应的公钥,基于所述剩余节点对应的公钥对所述第二数字签名进行验签,在验签通过后与所述剩余节点共同对所述第三目标区块进行共识;
在所述第三目标区块通过共识后,将所述第三目标区块添加至所述区块链网络的数据账本中。
12.根据权利要求11所述的方法,其特征在于,所述获取所述剩余节点对应的公钥,包括:
在所述数据账本中获取所述剩余节点对应的第一节点证书;所述剩余节点对应的第一节点证书,包括所述第一目标证书颁发节点基于所述第一目标证书颁发节点的私钥对所述剩余节点的公钥,以及所述剩余节点的身份信息进行签名后得到的签名信息;
获取所述第一目标证书颁发节点对应的公钥,基于所述第一目标证书颁发节点对应的公钥对所述签名信息进行验证;
在验证通过后,获取所述剩余节点对应的公钥以及所述剩余节点的身份信息。
13.一种基于区块链的数据处理装置,其特征在于,包括:
集群遍历模块,用于基于业务创建请求遍历证书颁发节点集群;所述第一代表节点属于第一子共识节点集群;所述业务创建请求携带第一业务对应的业务类型;
节点获取模块,用于根据所述第一业务对应的业务类型在所述证书颁发节点集群中获取第一目标证书颁发节点;所述第一目标证书颁发节点对应的执行业务类型与所述第一业务对应的业务类型相匹配;
请求发送模块,用于将所述业务创建请求发送至所述第一目标证书颁发节点,以使所述第一目标证书颁发节点基于所述业务创建请求为所述第一子共识节点集群颁发第一节点证书,将所述第一子共识节点集群对应的第一节点证书进行上链;所述第一子共识节点集群对应的第一节点证书用于授予所述第一子共识节点集群针对所述第一业务的共识权限;
请求发送模块,还用于在所述第一子共识节点集群对应的第一节点证书成功上链时,在所述证书颁发节点集群中获取主链证书颁发节点,向所述主链证书颁发节点发送所述业务创建请求,以使所述主链证书颁发节点基于所述业务创建请求为所述第一代表节点颁发主链证书,通过主共识节点集群对所述第一代表节点对应的所述主链证书进行上链;已上链的所述主链证书用于表征所述第一代表节点属于所述主共识节点集群;所述主共识节点集群中的所述第一代表节点与第二子共识节点集群中的第二代表节点用于进行共识交互;所述第二子共识节点集群具备由所述证书颁发节点集群中的第二目标证书颁发节点所颁发的第二节点证书,所述第二节点证书用于授予所述第二子共识节点集群针对第二业务的共识权限;所述第二目标证书颁发节点对应的执行业务类型与所述第二业务对应的业务类型相匹配;所述第一业务与所述第二业务不同;所述第一子共识节点集群、所述第二子共识节点集群以及所述主共识节点集群处于同一区块链网络中。
14.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供网络通信功能,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以使所述计算机设备执行权利要求1-12任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行权利要求1-12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110747229.1A CN113256297B (zh) | 2021-07-02 | 2021-07-02 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110747229.1A CN113256297B (zh) | 2021-07-02 | 2021-07-02 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113256297A CN113256297A (zh) | 2021-08-13 |
CN113256297B true CN113256297B (zh) | 2021-09-14 |
Family
ID=77190484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110747229.1A Active CN113256297B (zh) | 2021-07-02 | 2021-07-02 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113256297B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114189341A (zh) * | 2021-12-10 | 2022-03-15 | 北京泰尔英福科技有限公司 | 基于区块链标识的数字证书分级处理方法及装置 |
CN114172747B (zh) * | 2022-02-10 | 2022-07-12 | 亿次网联(杭州)科技有限公司 | 一种基于数字证书的群成员获得认证证书的方法和*** |
CN114928481B (zh) * | 2022-05-13 | 2022-12-20 | 北京丁牛科技有限公司 | 面向未知攻击防御的处理***、方法、装置、中心调度点及存储介质 |
CN118036021A (zh) * | 2022-11-02 | 2024-05-14 | 财付通支付科技有限公司 | 基于多区块链的数据处理方法、装置、设备以及介质 |
CN117692128B (zh) * | 2024-02-02 | 2024-04-16 | 波维希数字科技有限公司 | 一种三级密链*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107995120B (zh) * | 2016-11-22 | 2019-08-09 | 南京银链信息科技有限公司 | 构造多区块链的方法及多区块链*** |
CN107592292B (zh) * | 2017-07-26 | 2019-08-09 | 阿里巴巴集团控股有限公司 | 一种区块链节点间通信方法及装置 |
CN107360248B (zh) * | 2017-07-31 | 2020-08-25 | 众安信息技术服务有限公司 | 用于配置局部共识的方法和装置及计算机可读存储介质 |
US10686611B2 (en) * | 2017-11-24 | 2020-06-16 | International Business Machines Corporation | Data anonymizing blockchain system |
CN111291060B (zh) * | 2020-01-14 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 一种管理区块链节点的方法、装置及计算机可读介质 |
CN111970380B (zh) * | 2020-09-02 | 2022-06-07 | 广东贤能数字科技有限公司 | 基于区块链的业务处理方法和*** |
-
2021
- 2021-07-02 CN CN202110747229.1A patent/CN113256297B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113256297A (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113256297B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN109450638B (zh) | 基于区块链的电子元器件数据管理***及方法 | |
CN110245186B (zh) | 一种基于区块链的业务处理方法及相关设备 | |
CN110599213B (zh) | 一种基于区块链网络的物品管理方法、装置及电子设备 | |
CN110288480B (zh) | 一种区块链的私密交易方法及装置 | |
CN112632629B (zh) | 基于区块链的投票管理方法、装置、介质及电子设备 | |
CN113395363B (zh) | 基于区块链的数据处理方法、装置、设备及存储介质 | |
Abbade et al. | Blockchain applied to vehicular odometers | |
CN107908979B (zh) | 用于在区块链中进行配置和背书的方法和电子设备 | |
CN111292174A (zh) | 一种纳税信息处理方法、装置及计算机可读存储介质 | |
CN113255014B (zh) | 一种基于区块链的数据处理方法以及相关设备 | |
CN111416709A (zh) | 基于区块链***的投票方法、装置、设备及存储介质 | |
CN112448946A (zh) | 基于区块链的日志审计方法及装置 | |
CN110990790B (zh) | 一种数据处理方法及设备 | |
CN115705571A (zh) | 保护可审计的帐户的隐私 | |
CN115310920A (zh) | 基于治理链的跨链互操作管理方法、装置及存储介质 | |
CN112948866A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
Quamara et al. | An In-depth Security and Performance Investigation in Hyperledger Fabric-configured Distributed Computing Systems | |
CN116975901A (zh) | 基于区块链的身份验证方法、装置、设备、介质及产品 | |
CN115714645A (zh) | 基于区块链的数据隐私和安全保护的方法、装置及设备 | |
CN117118640A (zh) | 一种数据处理方法、装置、计算机设备以及可读存储介质 | |
CN115577382A (zh) | 基于区块链的智能合约部署方法及相关设备 | |
CN110910091A (zh) | 一种数据处理方法、设备及介质 | |
CN117061089B (zh) | 一种投票管理方法、装置、设备及存储介质 | |
KR102465466B1 (ko) | 블록체인의 오라클 문제를 보완한 did 기반의 사용자 인증 시스템 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40050032 Country of ref document: HK |