数据处理方法、数据处理装置和计算机系统与流程

文档序号:18526655发布日期:2019-08-24 10:18阅读:165来源:国知局
数据处理方法、数据处理装置和计算机系统与流程

本公开涉及一种数据处理方法、数据处理装置和计算机系统。



背景技术:

区块链技术的目标是实现数据的分布式可靠存储。区块链具体实现时,数据在网络内多节点上采用增量式存储,并且通过安全散列函数(securehashalgorithm,sha)确保了入链数据的不可篡改,通过共识算法和网络传输协议实现了数据在各节点上存储的一致性。

区块链一般可以分为公有链(publicchain)和许可链(permissionedchain),其中许可链又可以根据数据维护方是否为单一个体(entity)分成联盟链(consortium)和私有链(privatechain)。

然而,现有技术中,无论对于哪种形式的区块链技术,交易数据在背书和上链过程中对区块链网络中的各节点是可见的,导致无法实现交易数据的隐私保护。



技术实现要素:

本公开的一个方面提供了一种数据处理方法,该方法应用于区块链网络中的一个背书节点,该区块链网络包括多个节点,该多个节点包括一个或多个背书节点。上述方法包括:获取由客户端指定的背书节点集合;生成密钥并分发至所述背书节点集合中的各背书节点,其中,所述背书节点集合中的背书节点数量小于等于所述区块链网络中的背书节点数量;基于所述密钥对来自所述客户端的交易数据进行加密,得到加密数据;将所述加密数据发送至所述区块链网络中的各背书节点,由各背书节点对所述加密数据进行背书验证,其中,持有所述密钥的背书节点能够对所述加密数据进行解密;以及,如果背书验证成功,将所述加密数据发送至所述区块链网络,由所述区块链网络中的各节点将所述加密数据存入区块链。

可选地,上述生成密钥包括:与所述背书节点集合一一对应地生成所述密钥。

可选地,上述背书验证成功包括:接收到第一数量的确认消息,其中,所述第一数量与所述背书节点集合中的背书节点数量的比例超过第一预定比例。具体地,在将所述加密数据发送至所述区块链网络中的各背书节点后,持有所述密钥的任一背书节点基于所述密钥对所述加密数据进行解密,得到所述交易数据,由所述任一背书节点对所述交易数据进行模拟执行,如果执行结果正确,则向所述一个背书节点返回所述确认消息。

可选地,上述多个节点还包括排序节点。上述将所述加密数据发送至所述区块链网络包括:将所述加密数据发送至所述排序节点,由所述排序节点对所述加密数据进行排序,并基于排序位置在指定时间将所述加密数据发送至所述区块链网络中除排序节点之外的其他节点,使得所述其他节点将所述加密数据存入各自对应的区块链中。

可选地,在上述将所述加密数据发送至所述区块链网络中的各背书节点之后,上述方法还包括:响应于任一节点的密钥请求;以及,如果所述任一节点为所述背书节点集合中的背书节点,将所述密钥发送至所述任一节点。

可选地,上述将所述加密数据发送至所述区块链网络包括:如果所述交易数据属于指定类别,将所述加密数据发送至所述区块链网络。

可选地,上述方法还包括:如果所述交易数据不属于所述指定类别,将所述交易数据发送至所述区块链网络,由所述区块链网络中的各节点对所述交易数据进行共识验证,并在验证通过后将所述交易数据存入区块链。

可选地,上述将所述加密数据发送至所述区块链网络中的各背书节点包括:基于疫情传播协议将所述加密数据发送至所述区块链网络中的各背书节点。

本公开的另一方面提供了一种数据处理装置,应用于区块链网络中的一个背书节点,所述区块链网络包括多个节点,所述多个节点包括一个或多个背书节点,上述装置包括:获取模块、生成模块、加密模块、背书模块、以及上链模块。获取模块用于获取由客户端指定的背书节点集合。生成模块用于生成密钥并分发至所述背书节点集合中的各背书节点,其中,所述背书节点集合中的背书节点数量小于等于所述区块链网络中的背书节点数量。加密模块用于基于所述密钥对来自所述客户端送的交易数据进行加密,得到加密数据。背书模块用于将所述加密数据发送至所述区块链网络中的各背书节点,由各背书节点对所述加密数据进行背书验证,其中,持有所述密钥的背书节点能够对所述加密数据进行解密。上链模块用于在背书验证成功时,将所述加密数据发送至所述区块链网络,由所述区块链网络中的各节点将所述加密数据存入区块链。

本公开的另一方面提供了一种计算机系统,应用于区块链网络中的一个背书节点,所述区块链网络包括多个节点,所述多个节点包括一个或多个背书节点,所述计算机系统包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时用于实现如上所述的方法。

本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

附图说明

为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了根据本公开实施例的数据处理方法、装置和计算机系统的应用场景;

图2示意性示出了根据本公开实施例的数据处理方法的流程图;

图3a示意性示出了现有技术中区块链网络的工作原理的示意图;

图3b示意性示出了根据本公开的实施例的区块链网络的工作原理的示意图;

图4示意性示出了根据本公开实施例的数据处理装置的框图;

图5示意性示出了根据本公开另一实施例的数据处理装置的框图;以及

图6示意性示出了根据本公开的实施例的计算机系统的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。

附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。

本公开的实施例提供了一种数据处理方法、装置以及能够应用该方法的计算机系统。该方法包括策略获取阶段、密钥生成阶段、数据加密阶段、背书阶段以及上链阶段。在策略获取阶段,获取由客户端指定的背书节点集合,该背书节点集合表征了该客户端当前制定的背书策略,该背书节点集合包括由客户端指定的一个或多个背书节点。在密钥生成阶段,生成密钥并分发至所述背书节点集合中的各背书节点。在数据加密阶段,基于所述密钥对来自所述客户端的交易数据进行加密,得到加密数据。然后进入背书阶段,将加密数据发送至区块链网络中的各背书节点进行背书验证。最后在上链阶段,对背书验证成功的加密数据进行上链存储。

图1示意性示出了根据本公开实施例的数据处理方法、装置和计算机系统的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1所示,该应用场景示出了区块链网络(blockchainnetwork)100,该区块链网络100可以包括节点(node)101~106,节点101~106共同维护区块链(blockchain)110。

节点101~106可以是具有相同或不同计算能力的各种计算节点,例如可以是个人计算机、网络服务器、数据库服务器、智能手机等等,在此不做限定。节点101~106中任意两个节点之间都可进行点对点通信。

区块链110是通过散列指针按时间顺序链接的区块(block)的分布式数据库。区块链的区块是按照时间顺序加入的,当满足预定条件时,区块链网络中的各节点允许当前节点创建区块并将该区块加入到区块链中,加入的区块作为该区块链上当前最新区块。在某一特定时刻,维护同一区块链的节点从区块链上获取的当前最新区块是相同的。

应该理解,图1中的区块链网络的规模和类型、节点的数量、区块链的长度、区块的数量等仅仅是示意性的。根据实际需要,可以具有任意规模和类型的区块链网络、任意数量的节点、任意长度的区块链、任意数量的区块等,在此不做限制。

图2示意性示出了根据本公开实施例的数据处理方法的流程图。该方法应用于区块链网络中的一个背书节点,该区块链网络包括多个节点,该多个节点包括一个或多个背书节点。

如图2所示,该方法包括操作s201~s205:

在操作s201,获取由客户端指定的背书节点集合。

其中,由客户端指定的背书节点集合包括一个或多个背书节点,背书节点集合中的背书节点数量小于等于区块链网络中的背书节点数量。由客户端指定的背书节点集合表示在本次数据处理过程中该客户端信任的背书节点的集合,可视为在本次数据处理过程中该客户端所制定的背书策略。客户端每次指定的背书节点集合可以相同或不同,视具体情况而定。例如,对于不同安全等级的交易数据客户端指定的背书节点集合不同,在不同的时期客户端指定的背书节点集合不同,等等,在此不做限定。本背书节点为与该客户端相绑定的背书节点,则该客户端可以信任本背书节点,因此在本操作s201中本背书节点可以获取到由该客户端指定的背书节点集合,且该背书节点集合中至少包含本背书节点。

在操作s202,生成密钥并分发至所述背书节点集合中的各背书节点。

其中,在获得由客户端指定的背书节点集合后,本操作s202针对该背书节点集合生成密钥,将该密钥作为当前有效密钥分发至该背书节点集合中的各背书节点,以使该客户端当前所信任的背书节点均能获得该密钥,而区块链网络中的其他背书节点不能获得该密钥。

在操作s203,基于所述密钥对来自所述客户端的交易数据进行加密,得到加密数据。

其中,在获得由客户端指定的背书节点集合、以及针对该背书节点集合生成并分发密钥后,本操作s203进一步获取来自该客户端的交易数据,上文中所获取的由该客户端指定的背书节点集合与该交易数据相对应,表示该客户端允许该交易数据向该背书节点集合中的背书节点公开。为了保证该交易数据不被泄露给该客户端不信任的其他背书节点,本操作s203基于上文生成的密钥对该交易数据进行加密从而得到加密数据。

在操作s204,将所述加密数据发送至所述区块链网络中的各背书节点,由各背书节点对所述加密数据进行背书验证。

其中,区块链网络中的背书机制要求将需要进行背书验证的交易数据发送至区块链网络中的各背书节点,本操作s204依据该背书机制将操作s203得到的加密数据发送至区块链网络中的各背书节点。对于上述背书节点集合中的各背书节点来说,这些背书节点持有相应密钥,能够对该加密数据进行解密,进而能够对解密后的交易数据进行背书验证。而对于未持有相应密钥的其他背书节点来说,这些背书节点不能对该加密数据进行解密,进而无法对交易数据进行背书验证。

在操作s205,如果背书验证成功,将所述加密数据发送至所述区块链网络,由所述区块链网络中的各节点将所述加密数据存入区块链。

本操作s205可以根据各背书节点的背书结果来确定是否背书验证成功,如果背书验证成功,可以将该加密数据上链,即将该加密数据存入区块链中,区块链网络中的各节点均可以从区块链获取该加密数据,但由于其为加密数据,真实的交易数据只有持有密钥的背书节点才可以获取到。

可见,图2所示的方法基于客户端指定的背书节点集合,在该背书节点集合范围内生成并分发密钥,对于来自该客户端的交易数据,基于该密钥对该交易数据进行加密得到加密数据,再对该加密数据进行背书和上链。依据该方案,在背书过程中、上链过程中以及上链之后,真实的交易数据仅对于客户端信任的背书节点可见,保护客户端的交易数据隐私。

在本公开的一个实施例中,上述生成密钥可以包括:与所获取到的背书节点集合一一对应地生成密钥,以保证当前有效的密钥只由客户端当前信任的背书节点所持有,对于每次生成的密钥来说,当客户端指定的背书节点集合改变时,该密钥不再有效,需要生成新的当前有效密钥。例如,在第一次数据处理过程中,获取到由客户端指定的背书节点集合1,针对该背书节点集合1生成密钥1。在第二次数据处理过程中,获取到由该客户端指定的背书节点集合2,针对该背书节点集合2生成密钥2。当背书节点集合1与背书节点集合2不同时,密钥1和密钥2不同,当背书节点集合1与背书节点集合2相同时,密钥1和密钥2可以相同也可以不同。如果采用密钥1与密钥2相同的规则,在实际执行过程中,在获取到背书节点集合2后,可以先判断背书节点集合2是否与背书节点集合1相同,如果是则无需再生成密钥2,可以直接沿用密钥1。

在本公开的一个实施例中,在上述将加密数据发送至区块链网络中的各背书节点后,对于持有当前有效密钥的任一背书节点1来说,该任一背书节点1可以基于该密钥对该加密数据进行解密,得到相应的交易数据。该任一背书节点1可以对该交易数据进行模拟执行,如果执行结果正确,确定在该背书节点1上背书成功,则该背书节点1向与客户端绑定的本背书节点返回确认消息。对于未持有当前有效密钥的任一背书节点2来说,该任一背书节点2无法对该加密数据进行解密,进而无法对该加密数据进行模拟执行,则直接确定在该背书节点2上背书失败。

在此基础上,上述背书验证成功包括:接收到第一数量的确认消息,其中,第一数量与所获取到的背书节点集合中的背书节点数量的比例超过第一预定比例。

在上述背书过程中,持有当前有效密钥的背书节点可以顺利对加密后的交易数据进行背书验证,得到成功或失败的背书结果。而未持有当前有效密钥的背书节点无法对加密后的交易数据进行背书验证,只能得到失败的背书结果。对于客户端来说,实现了仅允许当前可信的背书节点对交易数据进行背书验证的目的,避免了交易数据在不可信背书节点上进行背书验证的过程中容易出现了隐私泄露问题。

进一步地,在本公开的一个实施例中,区块链网络中的多个节点还包括排序节点。上述将加密数据发送至区块链网络包括:将该加密数据发送至该排序节点,由该排序节点对该加密数据进行排序,并基于排序位置在指定时间将该加密数据发送至区块链网络中除排序节点之外的其他节点,该其他节点可以包括背书节点和/或普通节点,使得这些其他节点将该加密数据存入各自对应的区块链中。

一些情况下,在针对获取到的背书节点集合生成相应的密钥并在该背书节点集合范围内分发该密钥后,该背书节点集合中的背书节点1由于意外丢失该密钥,导致在将加密数据发送至区块链网络中的各背书节点之后,该背书节点1无法利用该密钥对加密数据进行解密并背书验证。为避免此现象,该背书节点1可以向与客户端绑定的本背书节点发送密钥请求,其中,密钥请求是指针对当前有效密钥的请求消息。根据本公开实施例的数据处理方法进一步还可以包括:响应于任一节点的密钥请求,以及,如果该任一节点为当前有效的背书节点集合中的背书节点,将当前有效密钥发送至该任一节点。

在本公开的一个实施例中,上述将加密数据发送至区块链网络包括:如果与该加密数据对应的交易数据属于指定类别,则将该加密数据发送至区块链网络,由区块链网络中的多个节点将该加密数据存入区块链。在此情况下,区块链中的该加密数据不可被篡改,区块链网络中的任一节点均可获取该加密数据,但仅有其中持有与该加密数据对应的密钥的节点可以对该加密数据进行解密,进而获取到与该加密数据对应的真正的交易数据。指定类别的交易数据可以是隐私保护需求较高的数据,本实施例保证了交易数据在上链之后依然可以得到隐私保护。

在此基础上,进一步地,在确定加密数据背书验证成功后,根据本公开实施例的数据处理方法还可以包括:如果与该加密数据对应的交易数据不属于指定类别,直接将该交易数据发送至区块链网络,由区块链网络中的各节点对该交易数据进行共识验证,并在验证通过后将该交易数据存入区块链。其中,当交易数据不属于指定类别时,说明该交易数据的隐私保护需求较低,此时可以直接针对该交易数据进行上链。

下面参考图3a~3b,结合具体实施例对根据本公开实施例的数据处理方法进行展开说明:

图3a示意性示出了现有技术中区块链网络的工作原理的示意图。

图3b示意性示出了根据本公开的实施例的区块链网络的工作原理的示意图。

如图3a所示,上方展示了现有技术中区块链网络中的节点之间的交互过程。区块链网络包括节点1~9,其中,节点1~4具有背书验证能力,为区块链网络中的背书节点,节点5为排序节点,节点6~9为普通节点,背书节点1为与客户端相绑定的节点。客户端向背书节点1发送交易数据a,背书节点1在本地对该交易数据进行背书验证,并将该交易数据a发送至背书节点2~4进行背书验证,根据背书节点1~4的背书结果确定交易数据a是否背书验证成功,其中背书验证结果的确定规则可以根据实际需要进行设置,在此不做限制。当确定交易数据a背书验证成功后,将该交易数据a发送交至排序节点5,排序节点5不审核接收到的交易数据的内容,排序节点5根据预定的排序规则对该交易数据a和其他接收到的交易数据进行排序服务(orderservice),根据排序位置来确定提交交易数据a的时机。在相应时机到达时,排序节点5将交易数据a发送至区块链网络中的多个节点,例如发送至节点2~4和节点6~9,由节点2~4和节点6~9对交易数据a进行共识验证,在通过共识验证后各节点将该交易数据a分别存入各自对应的区块链,实现了交易数据a的上链。

图3a的下方展示了现有技术中区块链网络中的一个背书节点的工作过程。以背书节点2为例,背书节点2在收到交易数据a后可以对该交易数据进行模拟链码(chaincode)执行,确定该交易数据a合法合规后,将背书结果签名后返回背书节点1。以及,背书节点2在收到排序节点5发送的提交信息后经过共识验证将该交易数据a存入自身对应的区块链中,实现了区块链的上链确认(commit)。其中背书节点2本地数据库仅可以保存交易数据a,即交易数据a的公开状态。

上述图3a所示的区块链网络的工作过程中,存入区块链的交易数据对全体节点可见,且各背书节点在进行背书验证的过程中,交易数据对各背书节点可见,容易发生交易数据的隐私泄露问题。

而图3b所示的改进的区块链网络的工作过程则可以解决上述问题。如图3b所示,上方展示了根据本公开实施例的区块链网络中的节点之间的交互过程。区块链网络包括节点1~9,其中,节点1~3具有背书验证能力,为区块链网络中的背书节点,节点4为排序节点,节点5~9为普通节点,背书节点1为与客户端相绑定的节点。背书节点1获取由客户端指定的背书节点集合,本例中客户端指定的背书节点集合为{背书节点1,背书节点2},表示客户端当前信任背书节点1和背书节点2。背书节点1在获取到该背书节点集合后,对应地生成密钥1,将该密钥1保存于本地,且通过指定密钥管理手段将该密钥1分发至背书节点2。客户端向背书节点1发送交易数据a,背书节点1在本地对该交易数据进行背书验证,并利用密钥1对该交易数据a进行加密,得到加密数据a’。背书节点1将该加密数据a’发送至背书节点2~4进行背书验证,根据背书节点1~3的背书结果确定加密数据a’是否背书验证成功,其中背书验证结果的确定规则可以根据实际需要进行设置,在此不做限制。

在另一个例子中,密钥1也可以在客户端生成,客户端通过指定密钥管理手段将背书节点集合{背书节点1,背书节点2}、密钥1以及加密数据a’发送至与其绑定的背书节点1,背书节点1将密钥1分发至背书节点2,背书节点1在本地对加密数据a’进行背书验证,并基于疫情传播协议(gossipprotocol)将加密数据a’发送至背书节点2~3进行背书验证,根据背书节点1~3的背书结果确定加密数据a’是否背书验证成功。

当确定加密数据a’背书验证成功后,将该加密数据a’发送交至排序节点4,排序节点4不审核接收到的交易数据的内容,排序节点4根据预定的排序规则对该加密数据a’和其他接收到的交易数据进行排序服务,根据排序位置来确定提交加密数据a’的时机。在相应时机到达时,排序节点4将加密数据a’发送至区块链网络中的多个节点,例如发送至节点2~3和节点5~9,由节点2~3和节点5~9对加密数据a’进行共识验证,在通过共识验证后各节点将该加密数据a’分别存入各自对应的区块链,实现了加密数据a’的上链。

图3b的下方展示了根据本公开实施例的区块链网络中的一个背书节点的工作过程。以背书节点2为例,背书节点2在收到加密数据a’后可以先利用密钥1对该加密数据a’进行解密,得到交易数据a,然后对该交易数据进行模拟链码(chaincode)执行,确定该交易数据合法合规后,更新背书状态为已背书,将背书结果签名后返回背书节点1。以及,背书节点2在收到排序节点4发送的提交信息后经过共识验证将该加密数据a’存入自身对应的区块链中,实现了区块链的上链确认(commit)。其中背书节点2本地数据库可以保存交易数据a也可以保存加密数据a’。再以背书节点3为例,背书节点3不在客户端指定的背书节点集合中,背书节点3未持有密钥1,无法对加密数据a’进行背书验证。

可以看出,对于在背书验证过程中、上链过程中、以及上链后的交易数据a来说,对于持有密钥1的背书节点1~2是可见的,而对于其他节点是不可见的。进一步地,根据本公开实施例的数据处理方法还设置了密钥找回机制,当本该持有密钥的背书节点例如背书节点2由于意外丢失了密钥1时,或者背书节点2误删了本地的隐私数据时,背书节点2无法对加密数据a’进行背书验证,此时,背书节点2可以向背书节点1发起密钥请求,根据具体情况请求密钥1或相应的隐私数据,保证客户端指定的背书节点集合中的各背书节点的内部数据的一致性。

图4示意性示出了根据本公开实施例的数据处理装置的框图。该数据处理装置400应用于区块链网络中的一个背书节点,该区块链网络包括多个节点,该多个节点包括一个或多个背书节点。

如图4所示,数据处理装置400包括:获取模块410、生成模块420、加密模块430、背书模块440、以及上链模块450。

获取模块410用于获取由客户端指定的背书节点集合。

生成模块420用于生成密钥并分发至所述背书节点集合中的各背书节点,其中,所述背书节点集合中的背书节点数量小于等于所述区块链网络中的背书节点数量。

加密模块430用于基于所述密钥对来自所述客户端送的交易数据进行加密,得到加密数据。

背书模块440用于将所述加密数据发送至所述区块链网络中的各背书节点,由各背书节点对所述加密数据进行背书验证,其中,持有所述密钥的背书节点能够对所述加密数据进行解密。

上链模块450用于在背书验证成功时,将所述加密数据发送至所述区块链网络,由所述区块链网络中的各节点将所述加密数据存入区块链。

图5示意性示出了根据本公开另一实施例的数据处理装置的框图。该数据处理装置500应用于区块链网络中的一个背书节点,该区块链网络包括多个节点,该多个节点包括一个或多个背书节点。

如图5所示,数据处理装置500包括:获取模块510、生成模块520、加密模块530、背书模块540、以及上链模块550。其中,获取模块510、生成模块520、加密模块530、背书模块540、以及上链模块550分别具有与获取模块410、生成模块420、加密模块430、背书模块440、以及上链模块450对应相同的功能,重复的部分不再赘述。

在本公开的一个实施例中,生成模块520具体用于与所述背书节点集合一一对应地生成所述密钥。

在本公开的一个实施例中,背书模块540还用于在接收到第一数量的确认消息时确定背书验证成功。其中,所述第一数量与所述背书节点集合中的背书节点数量的比例超过第一预定比例,在将所述加密数据发送至所述区块链网络中的各背书节点后,持有所述密钥的任一背书节点基于所述密钥对所述加密数据进行解密,得到所述交易数据,由所述任一背书节点对所述交易数据进行模拟执行,如果执行结果正确,则向所述一个背书节点的背书模块540返回所述确认消息。

在本公开的一个实施例中,区块链网络中的多个节点还包括排序节点。上链模块550具体用于将所述加密数据发送至所述排序节点,由所述排序节点对所述加密数据进行排序,并基于排序位置在指定时间将所述加密数据发送至所述区块链网络中除排序节点之外的其他节点,使得所述其他节点将所述加密数据存入各自对应的区块链中。

在本公开的一个实施例中,数据处理装置500还包括:响应模块560和发送模块570。响应模块560用于在背书模块540将所述加密数据发送至所述区块链网络中的各背书节点之后,响应于任一节点的密钥请求。发送模块570用于当所述任一节点为所述背书节点集合中的背书节点时,将所述密钥发送至所述任一节点。

在本公开的一个实施例中,上链模块550具体用于如果所述交易数据属于指定类别,将所述加密数据发送至所述区块链网络。

具体地,作为一个可选的实施例,数据处理装置500还包括辅助模块580,用于当所述交易数据不属于所述指定类别时,将所述交易数据发送至所述区块链网络,由所述区块链网络中的各节点对所述交易数据进行共识验证,并在验证通过后将所述交易数据存入区块链。

在本公开的一个实施例中,背书模块540具体用于基于疫情传播协议将所述加密数据发送至所述区块链网络中的各背书节点。

需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。

根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,获取模块510、生成模块520、加密模块530、背书模块540、、上链模块550、响应模块560、发送模块570、以及辅助模块580中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块510、生成模块520、加密模块530、背书模块540、、上链模块550、响应模块560、发送模块570、以及辅助模块580中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块510、生成模块520、加密模块530、背书模块540、、上链模块550、响应模块560、发送模块570、以及辅助模块580中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图6示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机系统的框图。图6示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图6所示,计算机系统600包括处理器610和计算机可读存储介质620。该计算机系统600可以执行根据本公开实施例的方法。

具体地,处理器610例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器610还可以包括用于缓存用途的板载存储器。处理器610可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

计算机可读存储介质620,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;等等。

计算机可读存储介质620可以包括计算机程序621,该计算机程序621可以包括代码/计算机可执行指令,其在由处理器610执行时使得处理器610执行根据本公开实施例的方法或其任何变形。

计算机程序621可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序621中的代码可以包括一个或多个程序模块,例如包括621a、模块621b、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器610执行时,使得处理器610可以执行根据本公开实施例的方法或其任何变形。

根据本发明的实施例,获取模块510、生成模块520、加密模块530、背书模块540、、上链模块550、响应模块560、发送模块570、以及辅助模块580中的至少一个可以实现为参考图6描述的计算机程序模块,其在被处理器610执行时,可以实现上文所述的数据处理方法。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1