建立用于区块链数据隐私保护的私有区域的方法及设备与流程

文档序号:18471398发布日期:2019-08-20 20:20阅读:163来源:国知局
建立用于区块链数据隐私保护的私有区域的方法及设备与流程

本公开内容属于区块链技术领域,尤其涉及一种建立用于区块链数据隐私保护的私有区域的方法以及一种建立用于区块链数据隐私保护的私有区域的设备。



背景技术:

区块链(blockchain)是利用分布式节点共识算法来生成和更新数据的分布式账本,利用密码学串接并保护内容不被篡改,用以串连交易记录(又称区块,允许多个交易产生一个区块)。每一个区块包含了前一个区块的加密哈希、相应时间戳记以及交易数据。这样的设计使得区块内容具有难以篡改的特性。用区块链所串接的分布式账本能让多方有效记录交易,且可永久查验此交易。

区块链根据访问权限通常分为公有链、联盟链和私有链。其中,公有链是指任何人都可以根据协议接入并且参与共识的区块链;联盟链是指其共识过程受到预选节点控制的区块链;私有链是指所有权限都在一个组织中,并受该组织任意控制的区块链。

区块链可以方便的实现资产数字化,资产的跨平台流转。数据全网公开透明是区块链最重要的特性之一。但是在联盟链等某些商业应用场景下,用户的数据被分为可公开数据和私有数据,可公开数据可以全网透明,私有数据只有数据拥有者才能查看。但是现在很多的区块链网络由于无法保护数据隐私,不能满足联盟链等某些商业应用场景下的数据要求。

数据隐私保护是指数据拥有方对数据进行保护的措施,避免敏感数据被恶意窃取。现有的数据隐私保护可以选择采用数据库分片技术来实现。而数据库分片的基本思想就要把一个数据库切分成多个部分放到不同的数据库上,从而缓解单一数据库的性能问题。有两种方式:垂直切分和水平切分;其中,垂直切分是把关系紧密(比如同一模块)的数据切分出来放在一个数据库上,水平切分适用于总数据并不多但每张数据表中的数据非常多的情景,即把数据表中的数据按某种规则(比如按id散列)切分到多个数据库上。



技术实现要素:

由于目前市场上的区块链网络中的数据是全网络公开透明的,容易出现大量交易导致网络拥塞、交易速度较慢、交易成本较高的问题,同时由于每一个区块链节点能够读取所有的区块链数据,无法在区块链中实现对某些隐私数据进行保护的商业需求,既导致区块链节点的存储成本非常高,也降低了区块链技术的实际应用范围。

针对上述问题,本公开内容的第一方面提出了一种建立用于区块链数据隐私保护的私有区域的方法,所述方法包括:

部署与构建私有区域相关的智能合约,以生成所述智能合约的合约地址,其中,所述智能合约至少包括创建私有区域函数、添加节点函数、删除节点函数以及删除私有区域函数;

确定与构建私有区域相关的交易的交易内容;以及

利用业务账户私钥对所述交易内容进行签名以形成所述与构建私有区域相关的交易。

在根据本公开内容的第一方面的实施例中,当所述与构建私有区域相关的交易是创建私有区域交易时,所确定的交易内容包括:

所述合约地址;

所述创建私有区域函数的函数名称;

与第一节点相关的第一文本信息,其中,所述第一文本信息包括所述第一节点的网络地址和公钥;

与第二节点相关的第二文本信息,其中,所述第二文本信息包括所述第二节点的网络地址和公钥,由所述第一节点、所述第二节点创建所述私有区域;

由所述第一节点的私钥对所述第一文本信息进行签名形成的第一加密信息;以及

由所述第二节点的私钥对所述第二文本信息进行签名形成的第二加密信息。

在根据本公开内容的第一方面的实施例中,当所述与构建私有区域相关的交易是创建私有区域交易时,利用业务账户私钥对所述交易内容进行签名以形成所述与构建私有区域相关的交易进一步包括:

利用所述业务账户私钥分别对所述合约地址、所述创建私有区域函数的函数名称、所述第一文本信息、所述第二文本信息、所述第一加密信息以及所述第二加密信息进行签名,以形成所述创建私有区域交易。

在根据本公开内容的第一方面的实施例中,当所述与构建私有区域相关的交易是向私有区域添加新的节点的交易时,所确定的交易内容包括:

所述合约地址;

所述添加节点函数的函数名称;

与第三节点相关的第三文本信息,其中,所述第三节点将被添加到所述私有区域,所述第三文本信息包括所述第三节点的网络地址和公钥;

由所述第一节点或所述第二节点的私钥对所述第三文本信息进行签名形成的第三加密信息;以及

所述私有区域的id。

在根据本公开内容的第一方面的实施例中,当所述与构建私有区域相关的交易是向私有区域添加新的节点的交易时,利用业务账户私钥对所述交易内容进行签名以形成所述与构建私有区域相关的交易进一步包括:

利用所述业务账户私钥分别对所述合约地址、所述添加节点函数的函数名称、所述第三文本信息、所述第三加密信息以及所述私有区域的id进行签名,以形成向私有区域添加新的节点的交易。

在根据本公开内容的第一方面的实施例中,当所述与构建私有区域相关的交易是从私有区域中删除节点的交易时,所确定的交易内容包括:

所述合约地址;

所述删除节点函数的函数名称;

与第四节点相关的第四文本信息,其中,所述第四节点是将从所述私有区域中删除的节点,所述第四文本信息包括所述第四节点的网络地址和公钥;

由所述第一节点或所述第二节点的私钥对所述第四文本信息进行签名形成的第四加密信息;以及

所述私有区域的id。

在根据本公开内容的第一方面的实施例中,当所述与构建私有区域相关的交易是从私有区域中删除节点的交易时,所确定的交易内容包括:

所述合约地址;

所述删除节点函数的函数名称;

与第四节点相关的第四文本信息,其中,所述第四节点是将从所述私有区域中删除的节点,所述第四文本信息包括所述第四节点的网络地址和公钥;

由第五节点的私钥对所述第四文本信息进行签名形成的第四加密信息,其中,所述第五节点是所述私有区域中与所述第四节点不同的节点;以及

所述私有区域的id。

在根据本公开内容的第一方面的实施例中,当所述与构建私有区域相关的交易是从私有区域中删除节点的交易时,利用业务账户私钥对所述交易内容进行签名以形成所述与构建私有区域相关的交易进一步包括:

利用所述业务账户私钥分别对所述合约地址、所述删除节点函数的函数名称、所述第四文本信息、所述第四加密信息以及所述私有区域的id进行签名,以形成从私有区域中删除节点的交易。

在根据本公开内容的第一方面的实施例中,当所述与构建私有区域相关的交易是删除私有区域交易时,所确定的交易内容包括:

所述合约地址;

所述删除私有区域函数的函数名称;

所述私有区域的id;

由所述第一节点的私钥对所述私有区域的id进行签名形成的第五加密信息;以及

由所述第二节点的私钥对所述第五加密信息进行签名形成的第六加密信息。

在根据本公开内容的第一方面的实施例中,当所述与构建私有区域相关的交易是删除私有区域交易时,利用业务账户私钥对所述交易内容进行签名以形成所述与构建私有区域相关的交易进一步包括:

利用所述业务账户私钥分别对所述合约地址、所述删除私有区域函数的函数名称、所述第五加密信息、所述第六加密信息以及所述私有区域的id进行签名,以形成删除私有区域交易。

针对上述问题,本公开内容的第二方面提出了一种建立用于区块链数据隐私保护的私有区域的方法,所述方法包括:

接收与构建私有区域相关的交易,其中,所述交易是创建私有区域交易、向私有区域添加新的节点的交易、从私有区域中删除节点的交以及删除私有区域交易中的任一交易,并且所述与构建私有区域相关的交易至少包括与构建私有区域相关的智能合约的合约地址、相应的函数名称;

验证所述交易;

在所述交易被打包成为区块的一部分并且所述区块被达成共识的情况下,接收所述区块;

执行所述区块中的所述交易;以及

在所述交易执行完成的情况下,更新节点状态数据,并将所述节点状态数据在区块链内广播。

在根据本公开内容的第二方面的实施例中,当所述交易是创建私有区域交易时,执行所述区块中的所述交易进一步包括:

解析所述交易,以获得相应的交易内容,其中,所述交易内容包括所述合约地址、创建私有区域函数的函数名称、第一文本信息、第二文本信息、第一加密信息以及第二加密信息,所述第一文本信息包括第一节点的网络地址和公钥,所述第二文本信息包括第二节点的网络地址和公钥,所述第一加密信息是由所述第一节点的私钥对所述第一文本信息进行签名所形成,所述第二加密信息是由所述第二节点的私钥对所述第二文本信息进行签名所形成,并且由所述第一节点、所述第二节点创建所述私有区域;

基于所述合约地址、所述创建私有区域函数的函数名称调用所述创建私有区域函数对所述第一文本信息和所述第一加密信息进行验签,以得到第一公钥;

基于所述合约地址、所述创建私有区域函数的函数名称调用所述创建私有区域函数对所述第二文本信息和所述第二加密信息进行验签,以得到第二公钥;

确定所述第一公钥、所述第二公钥是否分别与所述第一节点、所述第二节点的公钥匹配;

在确定所述第一公钥、所述第二公钥分别与所述第一节点、所述第二节点的公钥相匹配的情况下,创建所述私有区域并生成所述私有区域的id。

在根据本公开内容的第二方面的实施例中,当所述交易是创建私有区域交易时,更新节点状态数据进一步包括:

将所述第一节点、所述第二节点的网络地址、公钥以及所述私有区域的id作为新增的节点状态数据进行保存。

在根据本公开内容的第二方面的实施例中,当所述交易是向私有区域添加新的节点的交易时,执行所述交易进一步包括:

解析所述交易,以获得相应的交易内容,其中,所述交易内容包括所述合约地址、所述添加节点函数的函数名称、第三文本信息、第三加密信息以及所述私有区域的id,所述第三文本信息包括第三节点的网络地址和公钥,所述第三加密信息是由所述第一节点或所述第二节点的私钥对所述第三文本信息进行签名所形成,并且所述第三节点将被添加到所述私有区域;

基于所述合约地址、所述创添加节点函数的函数名称调用所述添加节点函数对所述第三文本信息和所述第三加密信息进行验签,以得到第三公钥;

确定所述第三公钥是否与所述第一节点或所述第二节点的公钥匹配;

在确定所述第三公钥与所述第一节点或所述第二节点的公钥相匹配的情况下,将所述第三节点添加到所述私有区域。

在根据本公开内容的第二方面的实施例中,当所述交易是向私有区域添加新的节点的交易时,更新节点状态数据进一步包括:

将与所述私有区域相关联的所述第三节点的网络地址、公钥作为新增的节点状态数据进行保存。

在根据本公开内容的第二方面的实施例中,当所述交易是从私有区域中删除节点的交易时,执行所述交易进一步包括:

解析所述交易,以获得相应的交易内容,其中,所述交易内容包括所述合约地址、所述删除节点函数的函数名称、第四文本信息、第四加密信息以及所述私有区域的id,所述第四文本信息包括第四节点的网络地址和公钥,所述第四加密信息是由所述第一节点或所述第二节点的私钥对所述第四文本信息进行签名所形成,并且所述第四节点是将从所述私有区域中删除的节点;

基于所述合约地址、所述删除节点函数的函数名称调用所述删除节点函数对所述第四文本信息和所述第四加密信息进行验签,以得到第四公钥;

确定所述第四公钥是否与所述第一节点或所述第二节点的公钥匹配;

在确定所述第四公钥与所述第一节点或所述第二节点的公钥相匹配的情况下,将所述第四节点从所述私有区域中删除。

在根据本公开内容的第二方面的实施例中,当所述交易是从私有区域中删除节点的交易时,执行所述交易进一步包括:

解析所述交易,以获得相应的交易内容,其中,所述交易内容包括所述合约地址、所述删除节点函数的函数名称、第四文本信息、第四加密信息以及所述私有区域的id,所述第四文本信息包括第四节点的网络地址和公钥,所述第四加密信息是由第五节点的私钥对所述第四文本信息进行签名所形成,并且所述第四节点是将从所述私有区域中删除的节点,所述第五节点是所述私有区域中与所述第四节点不同的节点;

基于所述合约地址、所述删除节点函数的函数名称调用所述删除节点函数对所述第四文本信息和所述第四加密信息进行验签,以得到第四公钥;

确定所述第四公钥是否与所述第五节点的公钥匹配;

在确定所述第四公钥与所述第五节点的公钥相匹配的情况下,将所述第四节点从所述私有区域中删除。

在根据本公开内容的第二方面的实施例中,当所述交易是从私有区域中删除节点的交易时,更新节点状态数据进一步包括:

将与所述私有区域相关联的所述第四节点的网络地址、公钥从所述节点状态数据中删除。

在根据本公开内容的第二方面的实施例中,当所述交易是删除私有区域交易时,执行所述交易进一步包括:

解析所述交易,以获得相应的交易内容,其中,所述交易内容包括所述合约地址、所述删除私有区域函数的函数名称、第五加密信息、第六加密信息以及所述私有区域的id,所述第五加密信息是由所述第一节点的私钥对所述私有区域的id进行签名所形成,所述第六加密信息是由所述第二节点的私钥对所述第五加密信息进行签名所形成;

基于所述合约地址、所述删除私有区域函数的函数名称调用所述删除节点函数对所述第五加密信息和所述第六加密信息进行验签,以得到第五公钥;

确定所述第五公钥是否与所述第二节点的公钥匹配;

基于所述合约地址、所述删除私有区域函数的函数名称调用所述删除节点函数对所述私有区域的id和所述第五加密信息进行验签,以得到第六公钥;

确定所述第六公钥是否与所述第一节点的公钥匹配;

在确定所述第五公钥与所述第二节点的公钥相匹配并且所述第六公钥与所述第一节点的公钥相匹配的情况下,将所述私有区域从所述区块链中删除。

在根据本公开内容的第二方面的实施例中,当所述交易是删除私有区域交易时,更新节点状态数据进一步包括:

将与所述私有区域相关联的信息从所述节点状态数据中删除。

针对上述问题,本公开内容的第三方面提出了一种建立用于区块链数据隐私保护的私有区域的设备,所述设备包括:

处理器;以及

存储器,其用于存储指令,当所述指令执行时使得所述处理器执行权利要求1-10中任一项所述的建立用于区块链数据隐私保护的私有区域的方法。

针对上述问题,本公开内容的第四方面提出了一种建立用于区块链数据隐私保护的私有区域的设备,所述设备包括:

处理器;以及

存储器,其用于存储指令,当所述指令执行时使得所述处理器执行权利要求11-20中任一项所述的建立用于区块链数据隐私保护的私有区域的方法。

依据本公开内容的建立用于区块链数据隐私保护的私有区域的方法及设备能够对区块链数据进行隔离,使得私有状态数据仅会被区块链部分节点加密保存,进而在同一区块链节点上实现了私有状态数据与公有状态数据的逻辑隔离,同时针对区块链系统中的不同私有区域实现了数据的物理隔离,从而满足了对要求进行数据隐私保护的商业需求,并且降低了区块链节点存储成本,同时还能够减少网络通信数据,由此提升了区块链网络的性能。

附图说明

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

图1为依据本公开内容的建立用于区块链数据隐私保护的私有区域的方法的实施例之一的示例性流程图;

图2为依据本公开内容的建立用于区块链数据隐私保护的私有区域的方法的实施例之二的示例性流程图;

图3a-3e为依据本公开内容的建立用于区块链数据隐私保护的私有区域的方法的实施例之二的具体流程图;

图4为依据本公开内容的建立用于区块链数据隐私保护的私有区域的方法的实施例之三的示例性流程图;

图5为依据本公开内容的建立用于区块链数据隐私保护的私有区域的方法所构建的区块链的示意图;

图6a-6b为用于依据本公开内容的建立用于区块链数据隐私保护的私有区域的方法的各种数据的示意图;以及

图7为依据本公开内容的建立用于区块链数据隐私保护的私有区域的设备700的示意图。

具体实施方式

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

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。对于附图中的各单元之间的连线,仅仅是为了便于说明,其表示至少连线两端的单元是相互通信的,并非旨在限制未连线的单元之间无法通信。

本公开内容的实施例主要关注以下技术问题:如何使得隐私数据仅被部分区块链节点保存,如何降低区块链数据的存储成本。

为了解决上述问题,本公开内容公开了建立用于区块链数据隐私保护的私有区域的方法及设备,能够在现有区块链网络中构建一个或多个私有区域,实现可以向某个私有区域中的任一节点发送隐私交易,使得该隐私交易仅在该私有区域中的节点上执行,并且仅保存在该私有区域内广播的区域区块(zoneblock)中,在同一区块链节点上实现了私有状态数据与公有状态数据的逻辑隔离。

实施例1

图1示出了建立用于区块链数据隐私保护的私有区域的方法之一的示例性流程图。在本实施例中,区块链中(已存在或要创建的)私有区域中的节点(也即,私有信息参与节点)的业务账户实施图1所示的方法来生成与构建私有区域相关的交易,具体如下:

步骤110:部署与构建私有区域相关的智能合约,以生成所述智能合约的合约地址。

在本实施例中,所述智能合约至少包括创建私有区域函数、添加节点函数、删除节点函数以及删除私有区域函数。

步骤120:确定与构建私有区域相关的交易的交易内容。

在本步骤中,当所述与构建私有区域相关的交易是创建私有区域交易时,所述业务账户所确定的交易内容包括:所述合约地址、所述创建私有区域函数的函数名称、与第一节点相关的第一文本信息、与第二节点相关的第二文本信息、由所述第一节点的私钥对所述第一文本信息进行签名形成的第一加密信息以及由所述第二节点的私钥对所述第二文本信息进行签名形成的第二加密信息。

在本实施例中,由所述第一节点、所述第二节点创建所述私有区域,所述第一文本信息包括所述第一节点的网络地址和公钥,所述第二文本信息包括所述第二节点的网络地址和公钥。

在本步骤中,当所述与构建私有区域相关的交易是向私有区域添加新的节点的交易时,所述业务账户所确定的交易内容包括:所述合约地址、所述添加节点函数的函数名称、与第三节点相关的第三文本信息、由所述第一节点或所述第二节点的私钥对所述第三文本信息进行签名形成的第三加密信息以及所述私有区域的id。

在本实施例中,所述第三节点将被添加到已存在的私有区域,所述第三文本信息包括所述第三节点的网络地址和公钥。

在本步骤中,当所述与构建私有区域相关的交易是从私有区域中删除节点的交易时,所述业务账户所确定的交易内容包括:所述合约地址、所述删除节点函数的函数名称、与第四节点相关的第四文本信息、第四加密信息以及所述私有区域的id。

在本实施例中,所述第四节点是将从所述私有区域中删除的节点,所述第四文本信息包括所述第四节点的网络地址和公钥。所述第四加密信息可以由所述第一节点或所述第二节点的私钥对所述第四文本信息进行签名形成或者可以由第五节点(其是所述私有区域中与所述第四节点不同的节点)的私钥对所述第四文本信息进行签名形成的。

在本步骤中,当所述与构建私有区域相关的交易是删除私有区域交易时,所述业务账户所确定的交易内容包括:所述合约地址、所述删除私有区域函数的函数名称、所述私有区域的id、由所述第一节点的私钥对所述私有区域的id进行签名形成的第五加密信息、以及由所述第二节点的私钥对所述第五加密信息进行签名形成的第六加密信息。

步骤130:利用业务账户私钥对所述交易内容进行签名以形成所述与构建私有区域相关的交易。具体操作如下:

在本步骤中,当所述与构建私有区域相关的交易是创建私有区域交易时,所述业务账户将利用所述业务账户私钥分别对所述合约地址、所述创建私有区域函数的函数名称、所述第一文本信息、所述第二文本信息、所述第一加密信息以及所述第二加密信息进行签名,以形成所述创建私有区域交易。

在本步骤中,当所述与构建私有区域相关的交易是向私有区域添加新的节点的交易时,所述业务账户利用所述业务账户私钥分别对所述合约地址、所述添加节点函数的函数名称、所述第三文本信息、所述第三加密信息以及所述私有区域的id进行签名,以形成向私有区域添加新的节点的交易。

在本步骤中,当所述与构建私有区域相关的交易是从私有区域中删除节点的交易时,所述业务账户利用所述业务账户私钥分别对所述合约地址、所述删除节点函数的函数名称、所述第四文本信息、所述第四加密信息以及所述私有区域的id进行签名,以形成从私有区域中删除节点的交易。

在本步骤中,当所述与构建私有区域相关的交易是删除私有区域交易时,所述业务账户利用所述业务账户私钥分别对所述合约地址、所述删除私有区域函数的函数名称、所述第五加密信息、所述第六加密信息以及所述私有区域的id进行签名,以形成删除私有区域交易。

本实施例公开了由区块链节点的业务账户执行的建立用于区块链数据隐私保护的私有区域的方法,由此生成了用于区块链中私有区域的创建、修改和删除的相应交易,以便后续区块链节点(也即,区块链的全节点)收到并执行该交易,最终完成区块链中私有区域的创建、修改和删除。

实施例2

图2示出了建立用于区块链数据隐私保护的私有区域的方法之二的示例性流程图。在本实施例中,任一区块链的全节点(也即,区块链中非私有区域中所包括的节点)实施图2所示的方法来执行与构建私有区域相关的交易以实现私有区域在区块链中的创建、修改和删除,具体如下:

步骤210:接收与构建私有区域相关的交易,其中,所述交易是创建私有区域交易、向私有区域添加新的节点的交易、从私有区域中删除节点的交以及删除私有区域交易中的任一交易,并且所述与构建私有区域相关的交易至少包括与构建私有区域相关的智能合约的合约地址、相应的函数名称。

步骤220:验证所述交易。在本实施例中,采用与现有技术相同的验证技术对所述交易进行验证。

在步骤220之后,当到达生成区域区块的条件时(例如,到达生成区域区块的时间或达到区域区块的存储容量,并且正好轮流到该区块链节点执行生成区域区块的职能),该区块链节点能够生成区块,并且仅将经共识的所述区块在区块链内广播。

步骤230:在所述交易被打包成为区块的一部分并且所述区块被达成共识的情况下,接收所述区块。

步骤240:执行所述区块中的所述交易。

如图3a所示,当所述交易是创建私有区域交易时,节点对步骤240的具体操作如下:

步骤241a:解析所述交易,以获得相应的交易内容。

在该情况下,所述交易内容包括所述合约地址、创建私有区域函数的函数名称、第一文本信息、第二文本信息、第一加密信息以及第二加密信息。其中,所述第一文本信息包括第一节点的网络地址和公钥,所述第二文本信息包括第二节点的网络地址和公钥,所述第一加密信息是由所述第一节点的私钥对所述第一文本信息进行签名所形成,所述第二加密信息是由所述第二节点的私钥对所述第二文本信息进行签名所形成,并且由所述第一节点、所述第二节点创建所述私有区域。

步骤242a:基于所述合约地址、所述创建私有区域函数的函数名称调用所述创建私有区域函数对所述第一文本信息和所述第一加密信息进行验签,以得到第一公钥。

步骤243a:基于所述合约地址、所述创建私有区域函数的函数名称调用所述创建私有区域函数对所述第二文本信息和所述第二加密信息进行验签,以得到第二公钥。

在本实施例中,步骤242a、243a的顺序可以根据需要而调整。

步骤244a:确定所述第一公钥、所述第二公钥是否分别与所述第一节点、所述第二节点的公钥匹配。

步骤245a:在确定所述第一公钥、所述第二公钥分别与所述第一节点、所述第二节点的公钥相匹配的情况下,创建所述私有区域并生成所述私有区域的id。

在图3a所示的示例中,区块链的全节点生成某个私有区域的id,标志着实现了对区块链中的该私有区域的创建,其中,该私有区域至少包括创建该私有区域的第一节点、第二节点。

如图3b所示,当所述交易是向私有区域添加新的节点的交易时,节点对步骤240的具体操作如下:

步骤241b:解析所述交易,以获得相应的交易内容。

在该情况下,所述交易内容包括所述合约地址、所述添加节点函数的函数名称、第三文本信息、第三加密信息以及所述私有区域的id。其中,所述第三文本信息包括第三节点的网络地址和公钥,所述第三加密信息是由所述第一节点或所述第二节点的私钥对所述第三文本信息进行签名所形成,并且所述第三节点将被添加到所述私有区域。

步骤242b:基于所述合约地址、所述创添加节点函数的函数名称调用所述添加节点函数对所述第三文本信息和所述第三加密信息进行验签,以得到第三公钥。

步骤243b:确定所述第三公钥是否与所述第一节点或所述第二节点的公钥匹配。

步骤244b:在确定所述第三公钥与所述第一节点或所述第二节点的公钥相匹配的情况下,将所述第三节点添加到所述私有区域。

在图3b所示的示例中,区块链的全节点将第三节点添加到与上述私有区域的id相对应的私有区域中,此时,该私有区域中至少还包括第三节点。

如图3c所示,当所述交易是从私有区域中删除节点的交易时,节点对步骤240的具体操作如下:

步骤241c:解析所述交易,以获得相应的交易内容。

在该情况下,所述交易内容包括所述合约地址、所述删除节点函数的函数名称、第四文本信息、第四加密信息以及所述私有区域的id。具体地,所述第四文本信息包括第四节点的网络地址和公钥,所述第四加密信息是由所述第一节点或所述第二节点的私钥对所述第四文本信息进行签名所形成,并且所述第四节点是将从所述私有区域中删除的节点。

步骤242c:基于所述合约地址、所述删除节点函数的函数名称调用所述删除节点函数对所述第四文本信息和所述第四加密信息进行验签,以得到第四公钥。

步骤243c:确定所述第四公钥是否与所述第一节点或所述第二节点的公钥匹配。

步骤244c:在确定所述第四公钥与所述第一节点或所述第二节点的公钥相匹配的情况下,将所述第四节点从所述私有区域中删除。

在图3c所示的示例中,区块链的全节点在与上述私有区域的id相对应的私有区域中删除了第四节点,在本示例中,节点的业务账户可以采用创建私有区域的节点的私钥对第四节点的第四文本信息进行加密形成第四加密文本,并且该全节点可以利用创建私有区域的节点公钥进行对从私有区域中删除节点的交易的执行。

如图3d所示,当所述交易是从私有区域中删除节点的交易时,节点对步骤240的具体操作如下:

步骤241d:解析所述交易,以获得相应的交易内容。

在该情况下,所述交易内容包括所述合约地址、所述删除节点函数的函数名称、第四文本信息、第四加密信息以及所述私有区域的id。具体地,所述第四文本信息包括第四节点的网络地址和公钥,所述第四加密信息是由第五节点的私钥对所述第四文本信息进行签名所形成,并且所述第四节点是将从所述私有区域中删除的节点,所述第五节点是所述私有区域中与所述第四节点不同的节点。

步骤242d:基于所述合约地址、所述删除节点函数的函数名称调用所述删除节点函数对所述第四文本信息和所述第四加密信息进行验签,以得到第四公钥。

步骤243d:确定所述第四公钥是否与所述第五节点的公钥匹配。

步骤244d:在确定所述第四公钥与所述第五节点的公钥相匹配的情况下,将所述第四节点从所述私有区域中删除。

在图3d所示的示例中,区块链的全节点在与上述私有区域的id相对应的私有区域中删除了第四节点,在本示例中,节点的业务账户可以该私有区域除了第四节点之外的节点的私钥对第四节点的第四文本信息进行加密形成第四加密文本,并且该全节点可以利用其公钥进行对从私有区域中删除节点的交易的执行。

如图3e所示,当所述交易是删除私有区域交易时,节点对步骤240的具体操作如下:

步骤241e:解析所述交易,以获得相应的交易内容。

在该情况下,所述交易内容包括所述合约地址、所述删除私有区域函数的函数名称、第五加密信息、第六加密信息以及所述私有区域的id。具体地,所述第五加密信息是由所述第一节点的私钥对所述私有区域的id进行签名所形成,所述第六加密信息是由所述第二节点的私钥对所述第五加密信息进行签名所形成。

步骤242e:基于所述合约地址、所述删除私有区域函数的函数名称调用所述删除节点函数对所述第五加密信息和所述第六加密信息进行验签,以得到第五公钥。

步骤243e:确定所述第五公钥是否与所述第二节点的公钥匹配

步骤244e:基于所述合约地址、所述删除私有区域函数的函数名称调用所述删除节点函数对所述私有区域的id和所述第五加密信息进行验签,以得到第六公钥。

步骤245e:确定所述第六公钥是否与所述第一节点的公钥匹配。

步骤246e:在确定所述第五公钥与所述第二节点的公钥相匹配并且所述第六公钥与所述第一节点的公钥相匹配的情况下,将所述私有区域从所述区块链中删除。

在图3e所示的示例中,区块链的全节点将与上述私有区域的id相对应的私有区域从区块链中删除,使得该私有区域的id、该私有区域的所有节点信息都被删除。

步骤250:在所述交易执行完成的情况下,更新节点状态数据,并将所述节点状态数据在区块链内广播。

针对于图3a所示的执行创建私有区域交易的情况,在步骤250中,节点具体操作如下:

首先,将所述第一节点、所述第二节点的网络地址、公钥以及所述私有区域的id作为新增的节点状态数据进行保存;其次,将所述新增的节点状态数据在区块链内广播;从而完成了私有区域的创建。

针对于图3b所示的向私有区域添加新的节点的交易的情况,在步骤250中,节点具体操作如下:

首先,将与所述私有区域相关联的所述第三节点的网络地址、公钥作为新增的节点状态数据进行保存;其次,将所述新增的节点状态数据在区块链内广播;从而实现了将新的节点添加到私有区域中。

针对于图3c、3d所示的从私有区域中删除节点的交易的情况,在步骤250中,节点具体操作如下:

首先,将与所述私有区域相关联的所述第四节点的网络地址、公钥从所述节点状态数据中删除;其次,在区块链内部广播上述信息;最终实现该私有区域中相应节点的删除。

针对于图3e所示的删除私有区域交易的情况,在步骤250中,节点具体操作如下:

首先,将与所述私有区域相关联的信息从所述节点状态数据中删除;其次,在区块链内部广播上述信息;最终实现将该私有区域从区块链中删除。

图5示出了根据图1和图2形成的具有私有区域的区块链网络。该区块链网络包括节点a、b、c、d以及e,私有区域zone0和zone1,其中,私有区域zone0包括私有信息参与节点(也称区块链节点或节点)a和b,私有区域zone1包括私有信息参与节点c和d,节点e作为区块链网络中的全节点。

实施例1、2所公开的建立用于区块链数据隐私保护的私有区域的方法能够实现将仅属于某个私有区域(例如,zone0或zone1)的私有状态数据存储在该私有区域中,由此在同一区块链节点上实现了私有状态数据与公有状态数据的逻辑隔离,同时针对区块链系统中的不同私有区域实现了数据的物理隔离,进而降低了区块链节点的存储成本,并且减少了网络通信数据、提高了区块链系统的性能。

实施例3

图4示出了基于上述实施例在区块链中所创建的私有区域来实现区块链数据隐私保护的方法的示例性流程图。在本实施例中,区块链中(已存在或要创建的)私有区域中的节点(也即,私有信息参与节点)实施图4所示的方法,例如,图5所示的区块链中的区块链节点(例如,节点a)以及与节点a的客户端相互进行通信来实施5所示的方法,具体如下:

步骤410:节点a的客户端基于要发起的第一交易是属于区块链的多个私有区域中的一个私有区域的隐私交易,查询与所述私有区域相对应的所有私有信息参与节点的公钥。

在本步骤中,任一私有区域(例如,zone0)包含至少两个私有交易参与节点(例如,节点a、b),当zone0构建完成后,客户端可以通过其节点a查询到该zone0所包括的所有私有交易参与节点的公钥来指定该隐私交易属于上述zone0。

步骤420:客户端向所述区块链的节点a发起所述第一交易。

在本步骤中,由于该客户端发起的第一交易是隐私交易,因此所述第一交易至少包括源账户地址、目的账户地址、交易备注以及所述所有私有信息参与节点中的两个或更多个私有信息参与节点的公钥。

在本实施例中,优选地,将zone0中所有的节点(例如,图5中的节点a和b)的公钥写入该隐私交易的数据表中;或者至少将该客户端所属私有信息参与节点的公钥与该zone中的另外一个私有信息参与节点的公钥写入该隐私交易的数据表中。

如图6a所示,在隐私交易的数据表中包括以下参数:所属块高度、交易哈希、源头账户地址、目的账户地址、智能合约地址、交易备注、存储数据以及两个或更多个私有信息参与节点的公钥(例如,privateactor)。

步骤430:节点a接收第一交易。

在本实施例中,节点a既可以接收普通交易,也可以接收隐私交易,其中,普通交易和隐私交易都至少包括源账户地址、目的账户地址以及交易备注。

步骤440:节点a验证所述第一交易是否是隐私交易。

鉴于该区块链节点可以接收普通交易、隐私交易,因此,需要验证所接收到的交易是否是隐私交易。隐私交易的数据表中至少还包括两个或更多个私有信息参与节点的公钥,并且所述两个或更多个私有信息参与节点属于同一个私有区域,所述私有区域内的隐私交易仅能够在所述私有区域内共享。

在本步骤中,首先,节点a验证所述第一交易中是否还包括两个或更多个私有信息参与节点的公钥。

其次,在所述第一交易中还包括所述两个或更多个私有信息参与节点的公钥的情况下,区块链节点确定所述第一交易是隐私交易。

例如,节点a验证所述第一交易中是否包括节点a和节点b的公钥。在该第一交易中包括节点a和节点b的公钥的情况下,确定该第一交易是隐私交易。

步骤450:在验证所述第一交易是隐私交易的情况下,节点a确定能否执行所述第一交易。节点a对本步骤具体操作如下:

第一,确定要执行所述第一交易的节点a(也即,区块链节点自身)是否是属于所述私有区域(例如,zone0)的任一节点;

第二,在确定节点a是私有区域zone0中的节点的情况下,确定能够执行所述第一交易;或者

第三,在确定所述节点不是所述私有区域中的节点的情况下,确定不能够执行所述第一交易。

在本实施例中,当zone0形成后,zone0所包括的所有节点的公钥信息能够被广播到该区块链中的所有节点,因此,当某个区块链节点接收到任一隐私交易时,能够根据其中的私有信息参与节点的公钥信息得知该隐私交易属于zone0,由此可以得知其自身是否有权利执行该隐私交易。

在本实施例中,当确定不能够执行所述第一交易时,区块链节点可以选择性地进行如下操作:

向客户端返回错误信息,或者将所述第一交易转发到所述两个或多个私有信息参与节点中的一个或多个。

步骤460:在确定能够执行所述第一交易的情况下,节点a将所述第一交易在私有区域zone0内广播。

上述步骤能够保证隐私交易仅在相应的私有区域内广播、保存,从而实现了数据隐私保护的目的。

步骤470:在所述第一交易被打包成为区域区块(zoneblock)的一部分并且所述区域区块被达成共识的情况下,节点a可以接收到该区域区块。

在本步骤中,该区域区块在私有区域内进行广播,并且如图6b所示,在区域区块的数据表中包括以下参数:块高度、块哈希、块中包含的交易信息以及私有区域的id。

此外,在步骤170之前,当到达生成区域区块的条件时(例如,到达生成区域区块的时间或达到区域区块的存储容量,并且正好轮流到该区块链节点执行生成区域区块的职能),该节点a还能够生成与所述私有区域zone0相对应的区域区块,并且仅将经共识的所述区域区块在所述私有区域内广播。

在本实施例中,私有区域中所采用的共识算法与该私有区域所属的区块链采用的共识算法不同。

步骤480:该节点a执行该区域区块中的第一交易;最后该节点a保存与所执行的第一交易相关的信息、所接收到的区域区块以及执行所述区域区块所产生的状态数据。

本实施例所公开的技术方案,一方面能够实现私有状态数据(例如,执行隐私交易产生的数据)仅在区块链中要求的私有区域内广播、共识、执行,形成区域区块,并且将该区域区块仅保存在该私有区域的节点上,进而在同一区块链节点上实现了私有状态数据与公有状态数据的逻辑隔离。另一方面,能够减轻区块链的其他节点(也即,区块链中非私有区域所包括的节点)的数据存储压力,减少了网络通信数据,提升了区块链系统的性能。

根据上述实施例1-3可知,本文所公开的私有区域中的区块链节点仅需要存储该私有区域的区域区块(也即,存储由该私有区域中的私有状态数据形成的区域区块)以及区块链的区块(也即,存储由公有状态数据形成的区块),而区块链中的全节点仅需要存储区块链的区块,由此可以大大降低区块链的全节点的存储空间,同时也降低了私有区域中节点的存储空间。最终,既能够实现数据的隐私保护,也能够在同一区块链节点上实现了私有状态数据与公有状态数据的逻辑隔离,同时针对区块链系统中的不同私有区域实现了数据的物理隔离。

图7示出了可以用作节点业务账户实现图1所示的节点业务账户的功能的设备700的示意性框图。其中,图7所示的设备700至少包括处理器710以及存储器720,存储器720用于存储指令,当该指令执行时使得处理器710执行图1中的步骤110-130。

此外,图7还示出了可以用作节点实现图2所示的节点的功能的设备700的示意性框图。其中,图7所示的设备700至少包括处理器710以及存储器720,存储器720用于存储指令,当该指令执行时使得处理器710执行图2中的步骤210-250。

本文所公开的建立用于区块链数据隐私保护的私有区域的设备能够利用区块链分片技术将区块链网络分成几个并发网络,从而达到整个区块链网络更加高效地扩展,避免了大量交易导致网络拥塞,降低交易成本。

以上所述仅为本公开的实施例可选实施例,并不用于限制本公开的实施例,对于本领域的技术人员来说,本公开的实施例可以有各种更改和变化。凡在本公开的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的实施例的保护范围之内。

虽然已经参考若干具体实施例描述了本公开的实施例,但是应该理解,本公开的实施例并不限于所公开的具体实施例。本公开的实施例旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。

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