用于区块链网络系统的数据处理方法和数据处理装置与流程

文档序号:16755574发布日期:2019-01-29 17:19阅读:151来源:国知局
用于区块链网络系统的数据处理方法和数据处理装置与流程

本申请总体上涉及信息技术领域,更具体地,涉及用于区块链网络系统的数据处理方法和数据处理装置。



背景技术:

区块链(blockchain)作为近几年兴起的新兴技术,得到了广泛的讨论和研究。区块链是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。区块链技术包括以块结构存储数据,使用密码学保证传输和访问安全等,其能够实现数据一致性存储、反篡改、去中心的技术体系。

在区块链网络系统中,不同的机构拥有自己的节点。然而,对于写入链上节点的数据,在链上的节点之间是共享的。也就是说,一个机构的数据对另外一个机构而言是完全共享的,因此存在数据的安全性和隐私保护的问题。



技术实现要素:

鉴于现有技术中的上述问题,本申请提供了一种用于区块连网络的数据处理方案,其通过对单个区块链网络中属于不同机构的数据进行隔离而实现了数据安全和隐私保护。

本申请的一个方面提出了一种用于区块链网络系统的数据处理方法,所述区块链网络系统包括具有多个节点的区块链网络以及与所述多个节点一一对应并通信连接的多个客户端,所述多个节点中的一个或一些节点以及与所述一个或一些节点相对应的客户端属于一个机构,所述数据处理方法包括:获取针对所述多个节点中的第一节点所属于的第一机构的第一私钥和第一证书文件,所述第一证书文件包含与所述第一私钥唯一对应的第一公钥;接收针对所述区块链网络的写入请求,所述写入请求包括所述第一机构的第一机构标识和与所述第一节点对应的第一客户端的第一客户端标识,所述第一机构标识用于唯一标识所述第一机构,所述第一客户端标识用于唯一标识所述第一客户端,运行所述写入请求,以获得运行结果;以及用所述第一公钥对所述运行结果进行加密。

本申请的另一个方面提出了一种用于区块链网络系统的数据处理装置,所述区块链网络系统包括具有多个节点的区块链网络以及与所述多个节点一一对应并通信连接的多个客户端,所述多个客户端中的每个客户端都具有各自的标识,所述多个节点中的一个或一些节点以及与所述一个或一些节点相对应的客户端属于一个机构,所述数据处理装置包括:处理器;存储器,其用于存储指令,当所述指令在执行时,使得所述处理器执行以下操作:获取针对所述多个节点中的第一节点所属于的第一机构的第一私钥和第一证书文件,所述第一证书文件包含与所述第一私钥唯一对应的第一公钥;接收针对所述区块链网络的写入请求,所述写入请求包括所述第一机构的第一机构标识和与所述第一节点对应的第一客户端的第一客户端标识,所述第一机构标识用于唯一标识所述第一机构,所述第一客户端标识用于唯一标识所述第一客户端,运行所述写入请求,以获得运行结果;以及用所述第一公钥对所述运行结果进行加密。

本申请的又一个方面提出了一种计算机可读存储介质。该计算机可读存储介质具有存储在其上的计算机可执行指令。所述计算机可执行指令在装置中运行时使得所述装置执行根据本申请的实施例的方法或过程。

附图说明

结合附图并参考以下详细说明,本申请的各实施例的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本申请的若干实施例,在附图中:

图1示出了根据本申请的实施例的系统的架构示意图;

图2是示出了根据本申请的一个实施例的用于区块链网络系统的数据处理方法的流程图;以及

图3示出了用于实施依据本申请的实施例的用于区块链网络系统的数据处理装置的示意图。

具体实施方式

以下参考附图详细描述本申请的各个示例性实施例。虽然以下描述示例性方法、装置包括在其它组件当中硬件上执行的软件和/或固件,但应注意,这些示例仅仅是说明性的,不应看作限制。例如,考虑在硬件中独占地、在软件中独占地、或在硬件和软件的任何组合中可以实施任何或所有硬件、软件和固件组件。因此,虽然以下描述示例性方法和装置,但本领域技术人员应容易理解,提供的示例不仅仅是用于实现这些方法和装置方式。

此外,附图中的流程图和框图示出了根据本申请的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。

在详细介绍依据本申请的具体实施方式之前,首先对本申请中用到的一些术语进行说明。

在本申请中,术语“机构”是指使用区块链网络的公司或企业。

在本申请中,术语“公共客户端”是指与其有关的数据对于上述机构是共享的客户端。

如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。

总体上,本申请涉及一种用于区块链网络的数据处理方案,其将区块链网络的客户端分为公共客户端和非公共客户端(在本文中以下称为“客户端”)。区块链网络上的节点及其对应的客户端属于一个机构。系统为每个机构提供私钥和包含与私钥对应的公钥的证书。对于客户端(非公共客户端)事务数据,采用与该事务相关联的机构的公钥进行加密。由此仅当属于同一机构的客户端获得经加密的事务数据后,才能用相应的私钥进行解密从而获取事务数据。由此可见,本申请通过基于机构的数据隔离而实现了数据的隐私保护。

图1示出了根据本申请的实施例的区块链网络系统100。如图1所示,区块链网络系统100包括区块链网络110。区块链网络110包括两个或更多个节点112、114、116。区块链网络系统100还包括与两个或更多个节点112、114、116一一对应并通信连接的多个客户端113、115、117。也就是说,客户端113对应于区块链网络110上的节点112并与节点112通信连接。客户端115对应于区块链网络110上的节点114并与节点114通信连接。客户端117对应于区块链网络110上的节点116并与节点116通信连接。多个客户端113、115、117中的每一个客户端都具有各自的账户。客户端的账户的账户信息包含客户端标识,用于唯一标识客户端。例如,第一客户端113具有第一账户,第一账户的账户信息包含用于唯一标识第一客户端113的第一客户端标识。

继续参见图1,区块链网络系统100还包括与区块链网络110上的节点中的全部节点或者部分节点连接的公共客户端。在根据本申请的实施例的区块链网络系统100中,区块链网络110的多个节点112、114、116中的一个或一些节点以及与该一个或一些节点相对应的客户端属于一个机构。例如,如图1所示,节点112、114及其对应的客户端113、115属于第一机构120。节点116以及与节点116相对应的客户端117术语第二机构130。

应当理解,在图1中,区块链网络中节点的数量、客户端的数量、公共客户端的数量都是示意性的,不限于此。

应当理解,根据本申请,任意两个机构之间不包括共同的节点,也不包括共同的客户端。也就是说,不存在节点或客户端同时属于第一机构120和第二机构130。在图1中,第一机构120和第二机构130分别所包括的节点和相应的客户端是示意性的,不限于此。

应当理解,在云应用环境中,区块链网络上的各个节点可以对应于虚拟机实例,在虚拟机实例中运行相应的节点应用程序。

应当理解,在系统构架100中的通信可以基于任何有线和/或无线网络,包括但不限于因特网、广域网、城域网、局域网、虚拟专用网络(vpn)、无线网络,等等。

应当理解,客户端113、115、117,公共客户端119以及区块链网络110中的每个节点112、114、116可以是电子设备,例如固定设备(例如服务器或台式计算机),或移动设备(例如智能手机、平板电脑、便携式计算机等)。

图2示出了根据本申请的一个实施例的用于区块链网络系统的数据处理方法200。应当理解,方法200例如可以在图1中所示的区块链网络110中的节点处执行。以下结合图1和图2来说明根据本申请的实施例的数据处理的过程。

步骤s202:获取针对第一节点112所属于的第一机构120的第一私钥和第一证书文件。第一证书文件包含与第一私钥唯一对应的第一公钥。

在该步骤中,可以在区块链网络110的第一节点(例如,节点112)处生成第一私钥和第一证书文件,也可以由系统平台(未示出)为第一机构提供第一私钥和第一证书文件。第一证书包括与第一私钥唯一对应的第一公钥。接着,例如在第一节点112处,将所生成的第一公钥存储在区块链网络110的账本中,并将所生成的第一私钥发送给与第一节点112对应的第一客户端113的第一账户。这样,第一公钥在区块链网络110中被共享,而第一私钥仅由第一机构120获得,也就是说,区块链网络系统100中属于其他机构的节点以及客户端是无法获得第一私钥的。

步骤s204:接收针对区块链网络110的写入请求。

在该步骤中,例如在区块链网络110的第一节点112处,接收来自第一客户端113的针对区块连网络110写入请求。该写入请求包括第一机构120的第一机构标识和第一客户端113的第一客户端标识。第一机构标识用于唯一标识第一机构120。第一客户端标识用于唯一标识第一客户端113。

步骤206:运行写入请求,以获得运行结果。

在该步骤中,将在区块链网络110的每个节点上运行写入请求,并获得每个节点的运行结果。

步骤208:用第一公钥对运行结果进行加密。

在该步骤中,将判断所有节点对于运行结果是否达成共识,也就是说,判断每个节点上的运行结果是否一致。当判断为达成共识时,进一步判断写入请求是否来自公共客户端119。当判断为写入请求不来自公共客户端119时,用第一公钥对运行结果进行加密。也就是说,在本申请中,采用与第一节点112所属于的第一机构120相关联的第一公钥来为该写入请求的达成共识的运行结果进行加密,由此实现了基于机构的数据隔离。当判断为写入请求来自公共客户端119时,不对运行结果进行加密,并将达成共识的运行结果存储到区块链网络110的账本中。也就是说,该未经加密且达成共识的运行结果中的信息是无需隐私保护的共享数据。

在一些实施例中,判断写入请求是否来自公共客户端119可以通过如下方式来实现:判断第一机构标识和第一账户的账户信息是否为空,如果为空,则判断为写入请求来自公共客户端119。

步骤210:接收来自第二客户端的针对区块链网络110读取请求。该读取请求用于从区块链网络110读取数据,例如读取如上述方法写入的数据。该读取请求包括第二客户端的第二客户端标识。

步骤212:根据第二客户端标识和第一客户端标识,判断第二客户端与第一客户端是否属于同一个机构。

步骤214:当判断为属于同一机构时,向第二客户端返回经加密的、请求读取的数据。例如,当第二客户端标识指示第二客户端为客户端115,即与第一客户端113都属于第一机构120,则判断为第二客户端和第一客户端属于同一个机构。这样,第二客户端115可以采用属于第一机构120的第一私钥来对经加密的、请求读取的数据进行解密,从而获得请求读取的数据。

在一些实施例中,当判断为第二客户端与第一客户端不属于同一机构时,向第二客户端返回表示请求失败的指示。例如,当第二客户端标识指示第二客户端为客户端117时,即第二客户端117属于第二机构130,则判断为第二客户端117与第一客户端113不属于同一机构。

根据本申请的实施例,方法200还可以包括判断第二客户端是否为公共客户端。当判断为第二客户端是公共客户端时,向第二客户端返回未经加密且达成共识的运行结果。例如,当根据第二客户端标识判断为第二客户端为公共客户端119时,向第二客户端返回未经加密且达成共识的运行结果。

应当理解,第一节点和第二节点可以是区块链网络110中的任意节点,不限于此。

图3示意性地示出了根据本申请的实施例的用于区块链网络系统100的数据处理装置300。应当理解,装置300可以实现如图2中任一实施例所描述的方法200。装置300可以包括存储器310和耦合到存储器310的处理器320。

存储器310存储有指令。指令在由处理器320执行时使得处理器320执行以下动作:获取针对多个节点中的第一节点112所属于的第一机构120的第一私钥和第一证书文件,第一证书文件包含与第一私钥唯一对应的第一公钥;接收针对区块链网络110的写入请求,写入请求包括第一机构120的第一机构标识和与第一节点112对应的第一客户端的第一客户端标识,第一机构标识用于唯一标识第一机构120,第一客户端标识用于唯一标识第一客户端113,运行写入请求,以获得运行结果;以及用第一公钥对运行结果进行加密。

在一些实施例中,指令在由处理器320执行时还使得处理器320执行以下动作:将第一私钥发送给第一客户端113的第一账户;以及将第一公钥存储在区块链网络110的账本中。

在一些实施例中,区块链网络系统110还包括与多个节点中部分或全部通信连接的公共客户端119,处理器320对运行结果进行加密包括:判断写入请求在多个节点中的每个节点上的运行结果是否达成共识;当判断为达成共识时,判断写入请求是否来自公共客户端119;以及当判断为写入请求不来自公共客户端119时,用第一公钥对运行结果进行加密。

在一些实施例中,当处理器320判断为写入请求来自公共客户端119时,不对运行结果进行加密,并将达成共识的运行结果存储到区块链网络110的账本中。

在一些实施例中,处理器320判断写入请求是否来公共客户端包括:判断第一机构标识和第一客户端的第一账户的账户信息是否为空,如果为空,则判断为写入请求来自公共客户端119。

在一些实施例中,指令在由处理器320执行时还使得处理器320执行以下动作:接收来自第二客户端的针对区块链网络110读取请求,读取请求包括第二客户端的第二客户端标识;根据第二客户端标识和第一客户端标识,判断第二客户端与所示第一客户端是否属于同一个机构;当判断为属于同一机构时,向第二客户端返回经加密的、请求读取的数据。

在一些实施例中,指令在由处理器320执行时还使得处理器320执行以下动作:判断第二客户端是否为公共客户端119;当判断为第二客户端为公共客户端119时,向第二客户端返回所述未经加密且达成共识的运行结果。

应当理解,根据本申请的实施例的装置300可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。

在一些实施例中,根据本申请的实施例的存储器310可以用便携式计算机磁盘、硬盘、随机存储存取器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、光存储设备、磁存储设备,云存储器或其任意合适的组合来实现。

在一些实施例中,根据本申请的实施例的处理器320可以用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件等的任意组合来实现。通用处理器可以是微处理器,或者,处理器也可以是任何普通的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器与dsp内核的结合,或者任何其它此种结构。

图2中的数据处理方法的流程还代表机器可读指令,该机器可读指令包括由处理器执行的程序。该编程指令存储于有形计算机可读介质上,如硬盘、闪存、只读存储器(rom)、光盘(cd)、数字通用光盘(dvd)、高速缓存器、随机访问存储器(ram)和/或任何其他存储介质,在该存储介质上信息可以存储任意时间(例如,长时间,永久地,短暂的情况,临时缓冲,和/或信息的缓存)。如在此所用的,该术语有形计算机可读介质被明确定义为包括任意类型的计算机可读存储的信息。附加地或替代地,可利用编码指令(如计算机可读指令)实现图2的示例过程,该编码指令存储于非暂时性计算机可读介质,如硬盘,闪存,只读存储器,光盘,数字通用光盘,高速缓存器,随机访问存储器和/或任何其他存储介质,在该存储介质信息可以存储任意时间(例如,长时间,永久地,短暂的情况,临时缓冲,和/或信息的缓存)。可以理解的,该计算机可读指令还可以存储在网络服务器中、云端平台上,以便于用户使用。

另外,尽管操作以特定顺序被描绘,但这并不应该理解为要求此类操作以示出的特定顺序或以相继顺序完成,或者执行所有图示的操作以获取期望结果。在某些情况下,多任务或并行处理会是有益的。同样地,尽管上述讨论包含了某些特定的实施细节,但这并不应解释为限制任何发明或权利要求的范围,而应解释为对可以针对特定发明的特定实施例的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以整合实施在单个实施例中。反之,在单个实施例的上下文中描述的各种特征也可以分离地在多个实施例或在任意合适的子组合中实施。

因此,虽然参照特定的示例来描述了本发明,其中这些特定的示例仅仅旨在是示例性的,而不是对本发明进行限制,但对于本领域普通技术人员来说显而易见的是,在不脱离本发明的精神和保护范围的基础上,可以对所公开的实施例进行改变、增加或者删除。

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