一种基于区块链的数据处理方法以及相关装置
文献发布时间:2024-01-17 01:15:20
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于区块链的数据处理方法以及相关装置。
背景技术
随着互联网技术的迅速发展,人们对数据共享的要求越来越高。特别是在政务数据的管理过程中,往往会产生大量的数据,各部门之间如何进行数据的共享成为难题。
一般,城市内各政务部门通过集中统一的城市大数据共享平台实现数据的采集、交换、存储、清洗、整合、共享、开放,为各政务部门以及社会提供统一的政务服务。各政务部门依托电子政务网络和共享交换平台维护、更新共享政务数据信息到集中统一的政务大数据平台,最终实现政务数据共享。
但是,随着政务大数据平台中数据的积累,数据规模会越来越大,不便于数据的管理,且在数据共享的过程中可能出现数据获取延时或数据丢失的情况,影响数据共享的效率和安全性。
发明内容
有鉴于此,本申请提供一种基于区块链的数据处理方法,可以有效提高数据共享的效率和安全性。
本申请第一方面提供一种基于区块链的数据处理方法,可以应用于终端设备中包含基于区块链的数据处理功能的系统或程序中,具体包括:
第一终端向区块链发送数据读取请求,所述数据读取请求包含第二终端对应的身份标识、数据指纹和所述第一终端对应的第一签名,所述第一签名用于指示所述区块链对所述第一终端进行身份验证以生成记链结果;
所述第一终端接收所述区块链发送的所述记链结果,并向所述第二终端发送所述记链结果、所述第一终端对应的身份标识和加密公钥,所述记链结果用于指示所述第二终端向所述区块链发起请求查询并记录所述第二终端对应的第二签名,所述请求查询的结果用于指示所述第二终端向所述第一终端发送所述数据指纹对应的加密数据,所述加密数据由所述加密公钥加密所得;
所述第一终端接收所述第二终端发送的所述加密数据;
所述第一终端基于所述加密公钥对所述加密数据进行解密得到目标数据,并向所述区块链发送数据应答,所述数据应答用于指示所述区块链记录所述第一终端与所述目标数据的关联关系。
可选的,在本申请一些可能的实现方式中,所述第一终端向区块链发送数据读取请求之前,所述方法还包括:
所述第一终端生成加密密钥对和签名密钥对,所述加密密钥包含所述加密公钥程,所述签名密钥对用于管理所述第一签名的加密和解密过程;
所述第一终端基于所述加密密钥对和所述签名密钥对生成身份注册信息;
所述第一终端向所述区块链发送所述身份注册信息,以使得所述区块链为所述第一终端生成区块链证书并记录。
可选的,在本申请一些可能的实现方式中,所述方法还包括:
所述第一终端生成待处理数据对应的数据指纹;
所述第一终端基于所述待处理数据对应的数据指纹生成数据发布指令;
所述第一终端向所述区块链发送所述数据发布指令,以使得所述区块链验证所述第一签名并将所述待处理数据进行上链记录。
可选的,在本申请一些可能的实现方式中,所述第一终端向区块链发送数据读取请求之前,所述方法还包括:
所述第一终端向所述区块链发送数据共享请求和所述第一签名,以使得所述区块链基于所述第一签名对所述第一终端进行身份验证,所述数据协作请求包含数据共享对象集和共享数据,所述数据共享对象集用于指示所述区块链确定所述共享数据的共享范围;
所述第一终端接收所述区块链反馈的请求结果。
可选的,在本申请一些可能的实现方式中,所述方法还包括:
所述第一终端响应于共享更新指令确定更新对象;
所述第一终端向所述区块链发送所述更新对象和所述第一签名,以使得所述区块链基于所述更新对象对所述共享对象集进行更新;
所述第一终端接收所述区块链反馈的更新响应。
可选的,在本申请一些可能的实现方式中,所述方法还包括:
所述第一终端向所述区块链发送目标标识,所述目标标识用于指示所述区块链基于所述目标标识在所述区块链记录的数据节点中进行数据请求广播,所述数据请求广播用于指示接收到所述数据请求广播的数据节点反馈与所述目标标识关联的关联数据;
所述第一终端接收所述区块链中的数据节点反馈的所述关联数据。
可选的,在本申请一些可能的实现方式中,所述区块链为联盟链,所述第一终端和所述第二终端为所述联盟链中的节点,所述联盟链中的节点应用于政务服务。
本申请第二方面提供一种基于区块链的数据处理装置,包括:
发送单元,用于向区块链发送数据读取请求,所述数据读取请求包含第二终端对应的身份标识、数据指纹和所述第一终端对应的第一签名,所述第一签名用于指示所述区块链对所述第一终端进行身份验证以生成记链结果;
接收单元,用于接收所述区块链发送的所述记链结果,并向所述第二终端发送所述记链结果、所述第一终端对应的身份标识和加密公钥,所述记链结果用于指示所述第二终端向所述区块链发起请求查询并记录所述第二终端对应的第二签名,所述请求查询的结果用于指示所述第二终端向所述第一终端发送所述数据指纹对应的加密数据,所述加密数据由所述加密公钥加密所得;
所述发送单元,还用于接收所述第二终端发送的所述加密数据;
所述处理单元,用于基于所述加密公钥对所述加密数据进行解密得到目标数据,并向所述区块链发送数据应答,所述数据应答用于指示所述区块链记录所述第一终端与所述目标数据的关联关系。
可选的,在本申请一些可能的实现方式中,所述处理单元,具体用于生成加密密钥对和签名密钥对,所述加密密钥包含所述加密公钥程,所述签名密钥对用于管理所述第一签名的加密和解密过程;
所述处理单元,具体用于基于所述加密密钥对和所述签名密钥对生成身份注册信息;
所述处理单元,具体用于向所述区块链发送所述身份注册信息,以使得所述区块链为生成区块链证书并记录。
可选的,在本申请一些可能的实现方式中,所述处理单元,具体用于生成待处理数据对应的数据指纹;
所述处理单元,具体用于基于所述待处理数据对应的数据指纹生成数据发布指令;
所述处理单元,具体用于向所述区块链发送所述数据发布指令,以使得所述区块链验证所述第一签名并将所述待处理数据进行上链记录。
可选的,在本申请一些可能的实现方式中,所述处理单元,具体用于向所述区块链发送数据共享请求和所述第一签名,以使得所述区块链基于所述第一签名对进行身份验证,所述数据协作请求包含数据共享对象集和共享数据,所述数据共享对象集用于指示所述区块链确定所述共享数据的共享范围;
所述处理单元,具体用于接收所述区块链反馈的请求结果。
可选的,在本申请一些可能的实现方式中,所述处理单元,具体用于响应于共享更新指令确定更新对象;
所述处理单元,具体用于向所述区块链发送所述更新对象和所述第一签名,以使得所述区块链基于所述更新对象对所述共享对象集进行更新;
所述处理单元,具体用于接收所述区块链反馈的更新响应。
可选的,在本申请一些可能的实现方式中,所述处理单元,具体用于向所述区块链发送目标标识,所述目标标识用于指示所述区块链基于所述目标标识在所述区块链记录的数据节点中进行数据请求广播,所述数据请求广播用于指示接收到所述数据请求广播的数据节点反馈与所述目标标识关联的关联数据;
所述处理单元,具体用于接收所述区块链中的数据节点反馈的所述关联数据。
本申请第三方面提供一种计算机设备,包括:存储器、处理器以及总线系统;所述存储器用于存储程序代码;所述处理器用于根据所述程序代码中的指令执行上述第一方面或第一方面任一项所述的基于区块链的数据处理方法。
本申请第四方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一项所述的基于区块链的数据处理方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面或者第一方面的各种可选实现方式中提供的基于区块链的数据处理方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
通过第一终端向区块链发送数据读取请求,该数据读取请求包含第二终端对应的身份标识、数据指纹和第一终端对应的第一签名,该第一签名用于指示区块链对第一终端进行身份验证以生成记链结果;然后第一终端接收区块链发送的记链结果,并向第二终端发送记链结果、第一终端对应的身份标识和加密公钥,记链结果用于指示第二终端向区块链发起请求查询并记录第二终端对应的第二签名,请求查询的结果用于指示第二终端向第一终端发送数据指纹对应的加密数据,加密数据由加密公钥加密所得;进一步的第一终端接收第二终端发送的加密数据;进而第一终端基于加密公钥对加密数据进行解密得到目标数据,并向区块链发送数据应答,数据应答用于指示区块链记录第一终端与目标数据的关联关系。从而实现基于区块链的数据共享过程,由于数据共享过程中的各个步骤会通过区块链进行验证并记录,保证了数据共享过程中的安全性,且各个数据方之间直接进行数据传输,提高了数据共享的效率和安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为基于区块链的数据处理系统运行的网络架构图;
图2为本申请实施例提供的一种基于区块链的数据处理的流程架构图;
图3为本申请实施例提供的一种基于区块链的数据处理方法的流程图;
图4为本申请实施例提供的一种基于区块链的数据处理方法的场景示意图;
图5为本申请实施例提供的另一种基于区块链的数据处理方法的流程图;
图6为本申请实施例提供的另一种基于区块链的数据处理方法的流程图;
图7为本申请实施例提供的另一种基于区块链的数据处理方法的场景示意图;
图8为本申请实施例提供的另一种基于区块链的数据处理方法的流程图;
图9为本申请实施例提供的另一种基于区块链的数据处理方法的场景示意图;
图10为本申请实施例提供的另一种基于区块链的数据处理方法的场景示意图;
图11为本申请实施例提供的另一种基于区块链的数据处理方法的流程图;
图12为本申请实施例提供的另一种基于区块链的数据处理方法的流程图;
图13为本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图14为本申请实施例提供的一种服务器的结构示意图;
图15A为本申请实施例提供的一种数据共享系统;
图15B为本申请实施例提供的一种区块链的区块组成;
图15C为本申请实施例提供的一种区块链节点的输入信息。
具体实施方式
本申请实施例提供了一种基于区块链的数据处理方法以及相关装置,可以应用于终端设备中包含基于区块链的数据处理功能的系统或程序中,通过第一终端向区块链发送数据读取请求,该数据读取请求包含第二终端对应的身份标识、数据指纹和第一终端对应的第一签名,该第一签名用于指示区块链对第一终端进行身份验证以生成记链结果;然后第一终端接收区块链发送的记链结果,并向第二终端发送记链结果、第一终端对应的身份标识和加密公钥,记链结果用于指示第二终端向区块链发起请求查询并记录第二终端对应的第二签名,请求查询的结果用于指示第二终端向第一终端发送数据指纹对应的加密数据,加密数据由加密公钥加密所得;进一步的第一终端接收第二终端发送的加密数据;进而第一终端基于加密公钥对加密数据进行解密得到目标数据,并向区块链发送数据应答,数据应答用于指示区块链记录第一终端与目标数据的关联关系。从而实现基于区块链的数据共享过程,由于数据共享过程中的各个步骤会通过区块链进行验证并记录,保证了数据共享过程中的安全性,且各个数据方之间直接进行数据传输,提高了数据共享的效率和安全性。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,对本申请实施例中可能出现的一些名词进行解释。
区块链(BlockChain):区块链是分布式数据存储,点对点传输,共识机制,加密算法等计算机技术的新型应用模型。区块链本质上是一个去中心化的数据库,是一串使用密码学相关联产生的数据块,各个数据块之间通过随机散列(也称哈希算法)实现链接,后一个区块包含前一个区块的哈希值。区块链技术在数字资产,智能合约,物流搜索,产品保护等场景有着广泛应用。
联盟链:为一种针对特定某个群体的成员和有限的第三方,内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定,其他接入节点可以参与交易,但不过问记账过程,其他第三方可以通过该区块链开放的API进行限定查询。为了获得更好的性能,联盟链对于共识或验证节点的配置和网络环境有一定要求。有了准入机制,可以使得交易性能更容易提高,避免由参次不齐的参与者产生的一些问题。
区块链数据协同:基于区块链技术,实现政务数据的跨域实时共享、行政信息的不可篡改记录,同时支持对数据共享的全程安全管控与数据溯源,运用智能合约实现多级访问权限管理,为政务数据共享平台提供基于区块链的数据共享防护体系,实现数据共享确权确责,可控流转。
应理解,本申请提供的基于区块链的数据处理方法可以应用于终端设备中包含基于区块链的数据处理功能的系统或程序中,例如政务服务,具体的,基于区块链的数据处理系统可以运行于如图1所示的网络架构中,如图1所示,是基于区块链的数据处理系统运行的网络架构图,如图可知,基于区块链的数据处理系统可以提供与多个信息源的基于区块链的数据处理过程,即通过终端侧的触发操作对服务器下发的多个互动视频进行切换,以实现多个互动视频的关联;可以理解的是,图1中示出了多种终端设备,终端设备可以为计算机设备,在实际场景中可以有更多或更少种类的终端设备参与到基于区块链的数据处理的过程中,具体数量和种类因实际场景而定,此处不做限定,另外,图1中示出了一个服务器,但在实际场景中,也可以有多个服务器的参与,特别是在多模型训练交互的场景中,具体服务器数量因实际场景而定。
本实施例中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,终端以及服务器可以连接组成区块链网络,本申请在此不做限制。
可以理解的是,上述基于区块链的数据处理系统可以运行于个人移动终端,例如:作为政务服务这样的应用,也可以运行于服务器,还可以作为运行于第三方设备以提供基于区块链的数据处理,以得到信息源的基于区块链的数据处理处理结果;具体的基于区块链的数据处理系统可以是以一种程序的形式在上述设备中运行,也可以作为上述设备中的系统部件进行运行,还可以作为云端服务程序的一种,具体运作模式因实际场景而定,此处不做限定。
随着互联网技术的迅速发展,人们对数据共享的要求越来越高。特别是在政务数据的管理过程中,往往会产生大量的数据,各部门之间如何进行数据的共享成为难题。
一般,城市内各政务部门通过集中统一的城市大数据共享平台实现数据的采集、交换、存储、清洗、整合、共享、开放,为各政务部门以及社会提供统一的政务服务。各政务部门依托电子政务网络和共享交换平台维护、更新共享政务数据信息到集中统一的政务大数据平台,最终实现政务数据共享。
但是,随着政务大数据平台中数据的积累,数据规模会越来越大,不便于数据的管理,且在数据共享的过程中可能出现数据获取延时或数据丢失的情况,影响数据共享的效率和安全性。
为了解决上述问题,本申请提出了一种基于区块链的数据处理方法,采用了区块链技术。区块链技术是一种去中心化、公开透明的分布式数据存储技术,能够降低信任成本,实现安全可靠的数据交互。区块链由多方维护,采用多种密码技术保证传输和访问安全以适应不同场景需求,采用哈希指针连接以有效地防篡改。区块链可靠地记录、同步、共享、验证交易和数据,在电子政务复杂的业务环境中,有助于便捷地建立部门间信任关系。实现城市范围内甚至更大范围跨空间、跨时间多主体高效协作。
进一步的,数据资产协作管控及确权溯源服务系统通过数据指纹和区块链技术实现数据资产共享的分布式可信共识验证可信管控,并形成不可篡改的数据资产流转使用记录,为数据资产的共享协作、确权溯源服务提供有效支撑。
另外,数据资产协作管控及确权溯源服务系统共对外提供数据资产发布确权、数据资产流转共享管控、数据资产可信溯源查询呈现三个服务,可对接的数据交换形式包括三种:数据库、文件、接口,通过安全套件实现数据指纹的提取以及后端安全服务的调用;具体的,本申请可应用于如图2所示的架构,图2为本申请实施例提供的一种基于区块链的数据处理的流程架构图,数据资产协作管控及确权溯源服务系统的技术架构主要包括服务系统和安全sdk套件两个部分,服务系统主要包括区块链服务系统、数据关联分析及查询、数据资产评价统计、系统参数配置、国密算法模块等。
其中,区块链服务系统主要分为:区块链基础服务、共识算法和智能合约协议等。通过区块链基础服务,各节点负责存储数据资产协作记录,共识算法实现多个不同节点对数据资产协作的多方共识验证,智能合约协议主要是根据数据资产协作的操作需求,对数据资产的业务进行实现,并部署在不同的分布式节点,为数据资产协作操作行为的正确性提供验证依据。
可以理解的是,本申请所提供的方法可以为一种程序的写入,以作为硬件系统中的一种处理逻辑,也可以作为一种基于区块链的数据处理装置,采用集成或外接的方式实现上述处理逻辑。作为一种实现方式,该基于区块链的数据处理装置通过第一终端向区块链发送数据读取请求,该数据读取请求包含第二终端对应的身份标识、数据指纹和第一终端对应的第一签名,该第一签名用于指示区块链对第一终端进行身份验证以生成记链结果;然后第一终端接收区块链发送的记链结果,并向第二终端发送记链结果、第一终端对应的身份标识和加密公钥,记链结果用于指示第二终端向区块链发起请求查询并记录第二终端对应的第二签名,请求查询的结果用于指示第二终端向第一终端发送数据指纹对应的加密数据,加密数据由加密公钥加密所得;进一步的第一终端接收第二终端发送的加密数据;进而第一终端基于加密公钥对加密数据进行解密得到目标数据,并向区块链发送数据应答,数据应答用于指示区块链记录第一终端与目标数据的关联关系。从而实现基于区块链的数据共享过程,由于数据共享过程中的各个步骤会通过区块链进行验证并记录,保证了数据共享过程中的安全性,且各个数据方之间直接进行数据传输,提高了数据共享的效率和安全性。
结合上述流程架构,下面将对本申请中基于区块链的数据处理方法进行介绍,请参阅图3,图3为本申请实施例提供的一种基于区块链的数据处理方法的流程图,该管理方法可以是由终端执行的,本申请实施例至少包括以下步骤:
301、第一终端向区块链发送数据读取请求。
本实施例中,区块链为联盟链,第一终端和第二终端为联盟链中的节点,联盟链中的节点应用于政务服务,具体的节点应用应用场景还可以是公司架构下的多个子公司数据服务等分布式数据管理的场景,此处以政务服务的数据管理过程为例进行说明。
可以理解的是,第一终端与第二终端可以是区块链中注册的任一终端,具体的区分方式因其作用的功能而定,即数据请求协作方(第一终端)或数据权属方(第二终端)。
在一种可能的场景中,数据读取请求包含第二终端对应的身份标识RID、数据指纹dFingerprint_data和第一终端对应的第一签名Sign_R_ssk(*),例如数据请求协作方(第一终端)发送{getDataRequire、RID、CID、dFingerprint_data、Sign_R_ssk(*)}给区块链,请求数据读取;
具体的,第一签名用于指示区块链对第一终端进行身份验证以生成记链结果,即区块链验证签名VerifySign(*),查验RID是否为合法的数据共享对象,记链读取请求,从而保证第一终端的可靠性。
302、区块链对第一终端进行身份验证以生成记链结果。
本实施例中,对第一终端进行身份验证用于保证请求的合法性,即由于政务服务中数据的保密性,仅允许核定注册终端的数据进行本实施例中数据共享的过程。
具体的,身份验证可以是终端标识验证,即验证签名VerifySign(*),查验RID是否为合法的数据共享对象;还可以是请求格式验证,例如对于区块链中的终端设定了固定格式的请求形式,以提高数据共享的安全性。
303、第一终端接收区块链发送的记链结果,并向第二终端发送记链结果、第一终端对应的身份标识和加密公钥。
本实施例中,记链结果用于指示第二终端向区块链发起请求查询并记录第二终端对应的第二签名,例如记链结果为chainResult={getDataRequire、RID、CID、dFingerprint_data}。
具体的,请求查询的结果用于指示第二终端向第一终端发送数据指纹对应的加密数据,加密数据由加密公钥加密所得;即数据请求协作方(第一终端)发送{chainResult、RID、epk}给数据贡献者,请求数据读取。从而使得数据权属方(第二终端)区块链请求查询chainResult,进一步的区块链返回记链值{0,1}给数据权属方,即记录上链。
304、第二终端基于记链结果向区块链发起请求查询并记录第二终端对应的第二签名。
本实施例中,第二终端基于记链结果向区块链发起请求查询即核对第一终端数据请求的有效性,一方面可以核对请求的有效性;另一方面,由于政务系统中的数据请求频繁,请求查询还可以核对当前数据共享是否为核定序列中规定序列的数据,即在第一终端与第二终端之间存在多组共享的数据队列,该请求查询用于核对数据队列中的序号是否匹配。
进一步的,区块链在对请求查询进行核对后,会记录第二终端的查询记录,从而保证数据核对流程的完整性。
305、第二终端向第一终端发送数据指纹对应的加密数据。
本实施例中,通过数据指纹进行加密数据的提取,为一种二次加密的过程,即一方面由共识的加密算法对数据进行加密得到加密数据,二方面再对加密数据进行指纹化处理,以达到模糊数据形式的效果。
可以理解的是,上述加密的过程也可以是先进行指纹化处理,然后进行共识的加密算法的加密,具体的方式因实际场景而定。
306、第一终端接收第二终端发送的加密数据。
本实施例中,第二终端发送的加密数据之前会计算C=Enc_R_epk(data),即进行加密,然后发送C给第一终端。
具体的,第二终端还会发送{getDataRequire、dFingerprint_data、RID、Sign_C_ssk(*)}给区块链,请求上链,以保证数据的可追溯性。
307、第一终端基于加密公钥对加密数据进行解密得到目标数据,并向区块链发送数据应答。
本实施例中,第一终端的解密过程即数据请求协作方计算data=Dec_R_esk(C),获取共享数据data(目标数据)。
进一步的,第一终端会发送{Response、dFingerprint_data、Sign_R_ssk(*)}给区块链,以使得区块链验证签名VerifySign(*),并记链,然后区块链返回记链结果{0,1}给第一终端,以保证数据的可追溯性。
308、区块链记录第一终端与目标数据的关联关系。
本实施例中,区块链会响应于第一终端发送的数据应答进行共享数据的记录,一方面为共享流程的闭环操作,二方面进行链上记录,在其他终端需求该目标数据时,区块链可以响应于请求进行第一终端、第二终端的共同反馈,从而提高数据共享的便利性。
结合图2所示的架构,本申请中包含的数据处理方式主要通过数据协同共享协议进行,如图4所示,
图4为本申请实施例提供的一种基于区块链的数据处理方法的场景示意图;即在设计基于区块链的数据协同共享协议主要包括5个部分:对象注册智能合约协议、数据发布智能合约协议、数据协作智能合约协议、数据协作更新智能合约协议、数据接收读取智能合约协议。
可以理解的是,本实施例中的对象可以是用户、终端或具有指示性的标识,例如对象注册可以是用户注册,具体的对象形式因实际场景而定。
具体的,对象注册智能合约协议,主要用于数据拥有方和数据协作方的身份合规认证。
数据发布智能合约协议,主要用于生成共享协作数据的数据指纹及权属信息及部分特征信息。
数据协作智能合约协议,主要用于生成数据协作的请求指令。
数据协作更新智能合约协议,主要用于生成更新的数据协作请求指令。
数据接收读取智能合约协议,主要描述完整的数据协作请求,数据协作响应,及流程中涉及的数据合规性校验。
下面对上述协议在图2所示架构中的执行过程进行说明。
对于数据共享的过程,参见图5,图5为本申请实施例提供的另一种基于区块链的数据处理方法的流程图;其中,数据请求协作方即为第一终端,数据权属方即为第二终端,图中示出了如下步骤:
501、数据请求方发送数据请求。
本实施例中,数据请求可以包括数据请求方的身份、请求的数据、数据请求方的签名、数据权属方身份,该签名为数据请求方在上链登记时注册的合法凭证。
具体的,数据请求协作方可以发送{getDataRequire、RID、CID、dFingerprint_data、Sign_R_ssk(*)}给区块链,请求数据读取。
下面,对本实施例中出现的字段进行说明。具体的,RID表示数据请求协作方身份。CID表示数据权属方身份。getDataRequire表示数据获取请求标识。dFingerprint_data表示数据data的数据指纹。Sign_R_ssk(*)表示数据请求协作方签名。epk表示数据请求协作方的加密公钥。enc_*_*表示加密。dec_*_*表示解密。Sign_C_ssk(*)表示数据权属方签名。chainResult表示上链结果。
502、区块链验证数据请求合法性,并上链记录。
本实施例中,验证数据请求合法性可以是身份验证,即验证数据请求方是否为注册的对象;验证数据请求合法性也可以是数据验证,例如验证请求的数据是否为合法或非共享数据;验证数据请求合法性还可以是签名验证,即数据请求方是否为本身,具体的,验证过程可以是上述方式的一种或多种组合。
在一种可能的场景中,区块链验证签名VerifySign(*),查验RID是否为合法的数据共享对象,记链读取请求。
503、区块链将上链结果发送至数据请求方。
本实施例中,上链结果可以包含请求方的身份、请求的数据、数据请求方的签名以及数据权属方身份的验证结果。
具体的,若验证未通过,则验证结果还可以包含上述结果的未通过原因,以便于数据请求方进行身份自查,例如上链注册未完成等,从而提高数据共享过程的可执行性。
在一种可能的场景中,记链结果可以为chainResult={getDataRequire、RID、CID、dFingerprint_data}。
504、数据请求方向数据权属方发送数据请求。
本实施例中,数据请求方通过区块链进行身份验证后,即可向数据权属方发送数据请求,具体可以包括数据请求方在区块链的上链结果、身份标识以及加密公钥。
可以理解的是,本实施例中不同步骤之间的上链结果聚可以进行共享,即数据请求方需要核对数据权属方的上链结果才可以进行后续步骤,而数据权属方需要核对数据请求方的上链结果才可以进行后续步骤,从而保证数据的安全性。
在一种可能的场景中,数据请求方可以发送{chainResult、RID、epk}给数据贡献者,请求数据读取。
505、数据权属方基于数据请求向区块链查询。
本实施例中,数据权属方区块链请求查询chainResult,即数据权属方确定数据请求是否在区块链经过核验,避免伪造请求的终端获取数据。
506、区块链返回查询结果。
本实施例中,查询结果用于表示数据请求是否在区块链经过核验,具体可以是数数字表示、也可以是文字表示或其他具有表示含义的标识。例如区块链返回记链值{0,1}给数据权属方。
507、数据权属方向数据请求方发送数据包。
本实施例中,数据权属方发送的数据均是经过共享的密钥加密后的数据包,例如计算C=Enc_R_epk(data),发送C给读取者,从而避免中途截取数据造成的数据泄露。
508、数据权属方共享上链信息。
本实施例中,数据权属方在向数据请求方发送数据包之后,可以在区块链上进行记录,即共享上链信息,从而保证数据的可追溯性,其他终端可以从数据请求方获取该数据。
具体的,数据权属方可以发送{getDataRequire、dFingerprint_data、RID、Sign_C_ssk(*)}给区块链,请求上链。
509、区块链进行上链记录。
本实施例中,区块链进行上链记录的过程也可以对数据权属方的签名进行验证,即在本实施例中区块链执行任务之前局可以进行请求方前面的验证。即验证VerifySign(*),并上链。
510、区块链返回上链结果。
本实施例中,区块链返回记链结果{0,1}。
511、数据请求方对数据包进行解密。
本实施例中,数据请求方对数据包进行解密的过程基于区块链中共享的解密算法进行,即数据请求协作方计算data=Dec_R_esk(C),获取共享数据data,从而保证数据的安全性。
512、数据请求方向区块链发送数据应答。
本实施例中,就数据共享的层面看,数据请求方已经获取到目标数据;但是为了实现数据的可追溯性,本实施例中,数据请求方还可以在获取目标数据之后进行区块链的上链记录过程。
具体的,数据请求协作方发送{Response、dFingerprint_data、Sign_R_ssk(*)}给区块链。
513、区块链记录上链。
本实施例中,区块链验证签名VerifySign(*),并记链。
514、区块链返回上链结果。
本实施例中,区块链返回记链结果{0,1}给读取者。
基于上述实施例,在一种可能的场景中,可以基于如下操作步骤进行数据共享的过程。
步骤1:数据请求协作方发送{getDataRequire、RID、CID、dFingerprint_data、Sign_R_ssk(*)}给区块链,请求数据读取。
步骤2:区块链验证签名VerifySign(*),查验RID是否为合法的数据共享对象,记链读取请求。
步骤3:返回记链结果chainResult={getDataRequire、RID、CID、dFingerprint_data}。
步骤4:数据请求方发送{chainResult、RID、epk}给数据贡献者,请求数据读取。
步骤5:数据权属方区块链请求查询chainResult。
步骤6:区块链返回记链值{0,1}给贡献者。
步骤7:数据权属方计算C=Enc_R_epk(data),发送C给读取者。
步骤8:数据权属方发送{getDataRequire、dFingerprint_data、RID、Sign_C_ssk(*)}给区块链,请求上链。
步骤9:区块链验证VerifySign(*),并上链。
步骤10:区块链返回记链结果{0,1}。
步骤11:数据请求协作方计算data=Dec_R_esk(C),获取共享数据data。
步骤12:数据请求协作方发送{Response、dFingerprint_data、Sign_R_ssk(*)}给区块链。
步骤13:区块链验证签名VerifySign(*),并记链。
步骤14:区块链返回记链结果{0,1}给读取者。
在一种可能的场景中,第一终端需要在区块链上进行注册才能进行数据协作共享的过程,即首先第一终端生成加密密钥对和签名密钥对,加密密钥包含加密公钥程,签名密钥对用于管理第一签名的加密和解密过程;然后第一终端基于加密密钥对和签名密钥对生成身份注册信息;进而第一终端向区块链发送身份注册信息,以使得区块链为第一终端生成区块链证书并记录。
具体的,注册过程如图6所示,图6为本申请实施例提供的另一种基于区块链的数据处理方法的流程图;图中示出了如下步骤:
601、候选终端生成加密密钥对。
本实施例中,加密密钥对即为候选终端注册时规定的数据加密解密规则,该规则可以是区块链中共享的,也可以是针对于候选终端设定的,还可以是多个终端之间共用加密密钥对,例如政务系统中司法系统共用一套加密密钥对,而财政系统共用一套加密密钥对,从而实现二次区块的过程,例如对象生成加密密钥对(esk,epk)和签名密钥对(ssk,spk)。
下面,对本实施例中的字段进行说明ID表示对象身份;(esk,epk)表示加密密钥对;(ssk,spk)表示签名密钥对;EnrollRequire表示身份注册请求标识;email、orgnization、position表示对象身份属性,电子邮件、单位、职位;RF(RF1,RF2)表示Redundant field,冗余字段,对象其他属性信息。
602、候选终端向区块链发送身份注册信息。
本实施例中,身份注册信息可以包括注册请求、注册身份、加解密钥、联系方式以及其他候选终端可以自选的冗余字段,用于指示对象其他属性信息,例如通用密钥,即在加密密钥对丢失时的备用密钥等。
具体的,对象可以发送{EnrollRequire、ID、epk、spk、email、orgnization、position、RF1、RF2、Sign(*)}给区块链,请求身份注册。
603、区块链关联公钥,并上链记录。
本实施例中,区块链关联公钥即将候选终端的密钥以及身份进行记录,并可以验证对象签名VerifySign(*),关联绑定对象公钥,为对象生成区块链证书,并记链。
进一步的,区块链可以为候选终端颁发证书,以便于候选终端在后续操作中进行便捷的身份认证过程。
另外,对于数据资产的发布过程,如图7所示,图7为本申请实施例提供的另一种基于区块链的数据处理方法的场景示意图;即在数据资产发布确权资源提供方发布数据资产时,安全SDK套件提取该资产的数据指纹,连同发布时间、发布者等信息一同记入区块链服务系统,生成不可篡改记录。数据资产发布后,任何时间均可通过该资产的数据指纹查询到首次发布记录,以此实现确权。
具体的,在数据资产的发布过程中,第一终端首先生成待处理数据对应的数据指纹;然后第一终端基于待处理数据对应的数据指纹生成数据发布指令;进而第一终端向区块链发送数据发布指令,以使得区块链验证第一签名并将待处理数据进行上链记录。
在一种可能的场景中,数据资产的发布过程如图8所示,图8为本申请实施例提供的另一种基于区块链的数据处理方法的流程图;图中示出了如下步骤:
801、候选终端生成待发布数据。
本实施例中,待发布数据可以是与数据指纹的形式发布的,即对数据进行处理所得的标识性数据,例如对象生成data的dFingerprint_data。
802、候选终端向区块链发送发布数据请求。
本实施例中,发布数据请求可以包括候选终端的标识、数据指纹;另外,由于政务系统中数据的使用领域有所不同,在发布过程中还可以进行数据领域的划分,例如财政领域、司法领域等,从而提高数据的可操作性。
在一种可能的场景中,对象(候选终端)可以发送{putRequire、dFingerprint_data、dDomain、dSensitivity、RF1、RF2、Sign(*)}给区块链,请求数据发布。
803、区块链对待发布数据进行验证,并上链记录。
本实施例中,区块链验证对象签名VerifySign(*),查验数据指纹dFingerprint_data,并记链。
804.区块链返回上链结果。
区块链返回记链结果{0,1}异步返回给对象。
具体的,在本实施例中,字段释义如下。dFingerprint_data表示数据指纹;putRequire表示数据发布请求标识;dDomain表示数据所属领域;dSensitivity表示数据敏感度;RF表示冗余字段,数据其他属性;Sign(*)表示对象签名。
另外,对于数据发布后可以进行管控。即数据共享分布式共识管控,具体架构如图9所示,为本申请实施例提供的另一种基于区块链的数据处理方法的场景示意图;即在数据共享过程中,发布数据、制定共享策略、读取数据等请求发送到区块链服务系统后,分布在区块链网络中的各个节点将按照共识算法开展多方验证:对于数据发布,各节点对记录的方式与位置进行共识验证,达成共识后记录数据指纹;对于共享策略,各节点按策略格式、合规性等进行验证,达成共识后确认;对于读取数据的请求,各节点按共享策略验证读取条件,达成共识后授权。
另外,对于数据管控过程中的操作流转均可以溯源,具体参考图10所示架构,图10为本申请实施例提供的另一种基于区块链的数据处理方法的场景示意图;即依托全局数据确权以及共享交换的不可篡改记录,可确保共享数据在整个生命周期拥有较为完善的流转使用存证,继而获得整个数据使用过程中的使用者、使用对象、使用数据方式、使用数据的时间、使用数据范围等信息,实现数据资产流转的溯源。
具体的,对于数据共享(管控)的过程,可以通过第一终端向区块链发送数据共享请求和第一签名,以使得区块链基于第一签名对第一终端进行身份验证,数据协作请求包含数据共享对象集和共享数据,数据共享对象集用于指示区块链确定共享数据的共享范围;然后第一终端接收区块链反馈的请求结果。在一种可能的场景中,如图11所示,图11为本申请实施例提供的另一种基于区块链的数据处理方法的流程图;对象即为区块链中的政务终端,图中示出了如下步骤:
1101、候选终端请求数据共享。
本实施例中,候选终端请求数据共享的过程即需要候选终端向区块链发起申请,具体可以是候选终端收到其他终端的请求,而候选终端并未上链发布数据时。
具体的,对象(候选终端)可以发送{shareRequire、shareObjects{}、dFingerprint_data、Sign(*)}给区块链,请求数据共享。
1102、区块链验证对象和数据并记链。
本实施例中,验证数据请求合法性可以是身份验证,即验证数据请求方是否为组成对象;验证数据请求合法性也可以是数据验证,例如验证请求的数据是否为合法或非共享数据;验证数据请求合法性还可以是签名验证,即数据请求方是否为本身,具体的,验证过程可以是上述方式的一种或多种组合。
在一种可能的场景中,区块链验证对象签名VerifySign(*)和数据指纹dFingerprint_data,并记链。
1103、区块链返回记链结果给候选终端。
本实施例中,区块链返回记链结果{0,1}给对象,其中1表示记链成功,0表示记链失败,以便于候选终端进行后续的共享操作,具体的标识类型因实际场景而定,此处不做限定。
具体的,在本实施例中,字段释义如下。shareRequire:数据协作共享请求标识;shareObjects{}:数据共享对象集;dFingerprint_data:data的数据指纹。
另外,对于数据共享对象也可以进行实时的更新,具体通过第一终端响应于共享更新指令确定更新对象;然后第一终端向区块链发送更新对象和第一签名,以使得区块链基于更新对象对共享对象集进行更新;进一步的第一终端接收区块链反馈的更新响应。具体流程如图12所示,图12为本申请实施例提供的另一种基于区块链的数据处理方法的流程图;图中示出了如下步骤:
1201、候选终端请求更新共享数据。
本实施例中,对象发送{updateShareRequire、dFingerprint_data、shareObjects{}、Sign(*)}给区块链,请求更新数据共享。
1202、区块链验证候选终端身份,并记链。
本实施例中,验证数据请求合法性可以是身份验证,即验证数据请求方是否为组成对象;验证数据请求合法性也可以是更新的共享数据验证,例如验证请求的数据是否为合法或非共享数据;验证数据请求合法性还可以是签名验证,即数据请求方是否为本身,具体的,验证过程可以是上述方式的一种或多种组合。
在一种可能的场景中,区块链验证对象签名VerifySign(*),查验dFingerprint_data,并记链。
1203、区块链返回记链结果。
本实施例中,区块链返回记链结果{0,1}给对象。其中1表示记链成功,0表示记链失败,以便于候选终端进行后续的共享操作,具体的标识类型因实际场景而定,此处不做限定。
具体的,在本实施例中,字段释义如下。updateShareRequire:数据协作共享更新请求标识;dFingerprint_data:数据data的数据指纹;{0,1}:记链结果。
在另一种可能的场景中,还可以进行信息的收集,例如收集某一身份证号在各个政务系统中的数据,首先第一终端向区块链发送目标标识(例如身份证号、护照号等),该目标标识用于指示区块链基于目标标识在区块链记录的数据节点中进行数据请求广播,该数据请求广播用于指示接收到数据请求广播的数据节点反馈与目标标识关联的关联数据;进而第一终端接收区块链中的数据节点反馈的关联数据。
上述实施例在协同处理的基础上进行了更大范围的数据收集,主要针对数据资产管理过程中确权确责问题,通过数据指纹技术对数据进行有效标识,通过区块链共识验证技术对数据资产的发布确权、共享管控、使用溯源进行多方共识验证,对数据共享进行细粒度的权限控制,实现敏感加密数据不出库,降低数据提供方与需求方的协作成本。通过数据共享协作及追溯机制为数据建立良好的审计机制,最终形成不可篡改的数据确权、协作、使用等全生命周期的流转记录,为建立安全、可信、繁荣的数据共享生态奠定基础。
结合上述实施例可知,本实施例中数据责任交接清晰明确基于区块链分布式总账对数据提交、授权、申请、共享、确认等过程进行公证记录,为数据溯源提供高可靠数据支撑,结合数据实例化进一步提升溯源效能。另外数据管控责任采用多方分担:多方共同参与记账,账本不可更改,资源提供者参与了交易的记录与确认,既降低了对平台的信任依赖,同时也分担了平台的数据管控责任。具体通过第一终端向区块链发送数据读取请求,该数据读取请求包含第二终端对应的身份标识、数据指纹和第一终端对应的第一签名,该第一签名用于指示区块链对第一终端进行身份验证以生成记链结果;然后第一终端接收区块链发送的记链结果,并向第二终端发送记链结果、第一终端对应的身份标识和加密公钥,记链结果用于指示第二终端向区块链发起请求查询并记录第二终端对应的第二签名,请求查询的结果用于指示第二终端向第一终端发送数据指纹对应的加密数据,加密数据由加密公钥加密所得;进一步的第一终端接收第二终端发送的加密数据;进而第一终端基于加密公钥对加密数据进行解密得到目标数据,并向区块链发送数据应答,数据应答用于指示区块链记录第一终端与目标数据的关联关系。从而实现基于区块链的数据共享过程,由于数据共享过程中的各个步骤会通过区块链进行验证并记录,保证了数据共享过程中的安全性,且各个数据方之间直接进行数据传输,提高了数据共享的效率和安全性。
为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关装置。请参阅图13,图13为本申请实施例提供的一种基于区块链的数据处理装置的结构示意图,基于区块链的数据处理装置1300包括:
发送单元1301,用于向区块链发送数据读取请求,所述数据读取请求包含第二终端对应的身份标识、数据指纹和所述第一终端对应的第一签名,所述第一签名用于指示所述区块链对所述第一终端进行身份验证以生成记链结果;
接收单元1302,用于接收所述区块链发送的所述记链结果,并向所述第二终端发送所述记链结果、所述第一终端对应的身份标识和加密公钥,所述记链结果用于指示所述第二终端向所述区块链发起请求查询并记录所述第二终端对应的第二签名,所述请求查询的结果用于指示所述第二终端向所述第一终端发送所述数据指纹对应的加密数据,所述加密数据由所述加密公钥加密所得;
所述发送单元1301,还用于接收所述第二终端发送的所述加密数据;
所述处理单元1303,用于基于所述加密公钥对所述加密数据进行解密得到目标数据,并向所述区块链发送数据应答,所述数据应答用于指示所述区块链记录所述第一终端与所述目标数据的关联关系。
可选的,在本申请一些可能的实现方式中,所述处理单元1303,具体用于生成加密密钥对和签名密钥对,所述加密密钥包含所述加密公钥程,所述签名密钥对用于管理所述第一签名的加密和解密过程;
所述处理单元1303,具体用于基于所述加密密钥对和所述签名密钥对生成身份注册信息;
所述处理单元1303,具体用于向所述区块链发送所述身份注册信息,以使得所述区块链为生成区块链证书并记录。
可选的,在本申请一些可能的实现方式中,所述处理单元1303,具体用于生成待处理数据对应的数据指纹;
所述处理单元1303,具体用于基于所述待处理数据对应的数据指纹生成数据发布指令;
所述处理单元1303,具体用于向所述区块链发送所述数据发布指令,以使得所述区块链验证所述第一签名并将所述待处理数据进行上链记录。
可选的,在本申请一些可能的实现方式中,所述处理单元1303,具体用于向所述区块链发送数据共享请求和所述第一签名,以使得所述区块链基于所述第一签名对进行身份验证,所述数据协作请求包含数据共享对象集和共享数据,所述数据共享对象集用于指示所述区块链确定所述共享数据的共享范围;
所述处理单元1303,具体用于接收所述区块链反馈的请求结果。
可选的,在本申请一些可能的实现方式中,所述处理单元1303,具体用于响应于共享更新指令确定更新对象;
所述处理单元1303,具体用于向所述区块链发送所述更新对象和所述第一签名,以使得所述区块链基于所述更新对象对所述共享对象集进行更新;
所述处理单元1303,具体用于接收所述区块链反馈的更新响应。
可选的,在本申请一些可能的实现方式中,所述处理单元1303,具体用于向所述区块链发送目标标识,所述目标标识用于指示所述区块链基于所述目标标识在所述区块链记录的数据节点中进行数据请求广播,所述数据请求广播用于指示接收到所述数据请求广播的数据节点反馈与所述目标标识关联的关联数据;
所述处理单元1303,具体用于接收所述区块链中的数据节点反馈的所述关联数据。
通过第一终端向区块链发送数据读取请求,该数据读取请求包含第二终端对应的身份标识、数据指纹和第一终端对应的第一签名,该第一签名用于指示区块链对第一终端进行身份验证以生成记链结果;然后第一终端接收区块链发送的记链结果,并向第二终端发送记链结果、第一终端对应的身份标识和加密公钥,记链结果用于指示第二终端向区块链发起请求查询并记录第二终端对应的第二签名,请求查询的结果用于指示第二终端向第一终端发送数据指纹对应的加密数据,加密数据由加密公钥加密所得;进一步的第一终端接收第二终端发送的加密数据;进而第一终端基于加密公钥对加密数据进行解密得到目标数据,并向区块链发送数据应答,数据应答用于指示区块链记录第一终端与目标数据的关联关系。从而实现基于区块链的数据共享过程,由于数据共享过程中的各个步骤会通过区块链进行验证并记录,保证了数据共享过程中的安全性,且各个数据方之间直接进行数据传输,提高了数据共享的效率和安全性。
本申请实施例还提供了一种服务器,请参阅图14,图14是本申请实施例提供的一种服务器的结构示意图,该服务器1400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1422(例如,一个或一个以上处理器)和存储器1432,一个或一个以上存储应用程序1442或数据1444的存储介质1430(例如一个或一个以上海量存储设备)。其中,存储器1432和存储介质1430可以是短暂存储或持久存储。存储在存储介质1430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1422可以设置为与存储介质1430通信,在服务器1400上执行存储介质1430中的一系列指令操作。
服务器1400还可以包括一个或一个以上电源1426,一个或一个以上有线或无线网络接口1450,一个或一个以上输入输出接口1458,和/或,一个或一个以上操作系统1441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由管理装置所执行的步骤可以基于该图14所示的服务器结构。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有基于区块链的数据处理指令,当其在计算机上运行时,使得计算机执行如前述图3至图12所示实施例描述的方法中基于区块链的数据处理装置所执行的步骤。
本申请实施例中还提供一种包括基于区块链的数据处理指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图3至图12所示实施例描述的方法中基于区块链的数据处理装置所执行的步骤。
本申请实施例还提供了一种基于区块链的数据处理系统,所述基于区块链的数据处理系统可以包含图13所描述实施例中的基于区块链的数据处理装置,或者图14所描述的服务器。
在一种可能的场景中,本申请中的网络资源管理的方法应用于区块链设备中,即权威DNS、LDNS或终端为区块链设备,且该区块链设备为区块链中的节点,下面结合附图进行说明;参见图15A所示的数据共享系统,数据共享系统1500是指用于进行节点与节点之间数据共享的系统,该数据共享系统中可以包括多个节点1501,多个节点1501可以是指数据共享系统中各个客户端。每个节点1501在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该数据共享系统内的共享数据。为了保证数据共享系统内的信息互通,数据共享系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当数据共享系统中的任意节点接收到输入信息时,数据共享系统中的其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得数据共享系统中全部节点上存储的数据均一致。
对于数据共享系统中的每个节点,均具有与其对应的节点标识,而且数据共享系统中的每个节点均可以存储有数据共享系统中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至数据共享系统中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
表1节点名称与节点标识的对应关系
数据共享系统中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图15B,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
在生成区块链中的各个区块时,参见图15C,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))<TARGET其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据数据共享系统中其他节点的节点标识,将新生成的区块分别发送给其所在的数据共享系统中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,基于区块链的数据处理装置,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
- 一种区块链的数据处理方法、装置、设备及介质
- 一种区块链数据的并行验证处理方法及装置
- 一种区块链的数据处理方法、装置、设备及介质
- 一种基于区块链的数据处理平台及数据处理方法
- 基于区块链的分布式数据库集群处理方法及装置
- 一种基于区块链网络的数据处理方法及相关装置
- 一种基于区块链网络的数据处理方法及相关装置