CN110147684A - 用于实现区块链数据隐私保护的方法及设备 - Google Patents
用于实现区块链数据隐私保护的方法及设备 Download PDFInfo
- Publication number
- CN110147684A CN110147684A CN201910437644.XA CN201910437644A CN110147684A CN 110147684 A CN110147684 A CN 110147684A CN 201910437644 A CN201910437644 A CN 201910437644A CN 110147684 A CN110147684 A CN 110147684A
- Authority
- CN
- China
- Prior art keywords
- transaction
- node
- block
- home zone
- privacy
- 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.)
- Granted
Links
Classifications
-
- 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
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Economics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Development Economics (AREA)
- General Engineering & Computer Science (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本公开内容公开了用于实现区块链数据隐私保护的方法以及设备,所述方法包括:接收第一交易,第一交易至少包括源账户地址、目的账户地址以及交易备注;验证第一交易是否是隐私交易,隐私交易至少还包括两个或更多个私有信息参与节点的公钥,并且两个或更多个私有信息参与节点属于同一个私有区域;在验证第一交易是隐私交易情况下,确定能否执行第一交易;在确定能够执行第一交易的情况下,将第一交易在私有区域内广播;在第一交易被打包成为区域区块的一部分并且区域区块被达成共识的情况下,接收区域区块;执行区域区块中的第一交易。本公开仅在区块链的私有区域内实现对隐私交易的广播、共识、出块以及执行,实现对区块链隐私数据的保护。
Description
技术领域
本公开内容属于区块链技术领域,尤其涉及一种用于实现区块链数据隐私保护的方法以及一种用于实现区块链数据隐私保护的设备。
背景技术
区块链(Blockchain)是利用分布式节点共识算法来生成和更新数据的分布式账本,利用密码学串接并保护内容不被篡改,用以串连交易记录(又称区块,允许多个交易产生一个区块)。每一个区块包含了前一个区块的加密哈希、相应时间戳记以及交易数据。这样的设计使得区块内容具有难以篡改的特性。用区块链所串接的分布式账本能让多方有效记录交易,且可永久查验此交易。
区块链根据访问权限通常分为公有链、联盟链和私有链。其中,公有链是指任何人都可以根据协议接入并且参与共识的区块链;联盟链是指其共识过程受到预选节点控制的区块链;私有链是指所有权限都在一个组织中,并受该组织任意控制的区块链。
区块链可以方便的实现资产数字化,资产的跨平台流转。数据全网公开透明是区块链最重要的特性之一。但是在联盟链等某些商业应用场景下,用户的数据被分为可公开数据和私有数据,可公开数据可以全网透明,私有数据只有数据拥有者才能查看。但是现在很多的区块链网络由于无法保护数据隐私,不能满足联盟链等某些商业应用场景下的数据要求。
数据隐私保护是指数据拥有方对数据进行保护的措施,避免敏感数据被恶意窃取。现有的数据隐私保护可以选择采用数据库分片技术来实现。而数据库分片的基本思想就要把一个数据库切分成多个部分放到不同的数据库上,从而缓解单一数据库的性能问题。有两种方式:垂直切分和水平切分;其中,垂直切分是把关系紧密(比如同一模块)的数据切分出来放在一个数据库上,水平切分适用于总数据并不多但每张数据表中的数据非常多的情景,即把数据表中的数据按某种规则(比如按ID散列)切分到多个数据库上。
发明内容
由于目前市场上的区块链网络中的数据是全网络公开透明的,容易出现大量交易导致网络拥塞、交易速度较慢、交易成本较高的问题,同时由于每一个区块链节点能够读取所有的区块链数据,使得区块链节点的存储成本非常高。
针对上述问题,本公开内容的第一方面提出了一种用于实现区块链数据隐私保护的方法,所述方法包括:
接收第一交易,其中,所述第一交易至少包括源账户地址、目的账户地址以及交易备注;
验证所述第一交易是否是隐私交易,其中,所述隐私交易至少还包括两个或更多个私有信息参与节点的公钥,并且所述两个或更多个私有信息参与节点属于同一个私有区域;
在验证所述第一交易是隐私交易的情况下,确定能否执行所述第一交易;
在确定能够执行所述第一交易的情况下,将所述第一交易在所述私有区域内广播;
在所述第一交易被打包成为区域区块的一部分并且所述区域区块被达成共识的情况下,接收所述区域区块,其中,所述区域区块在所述私有区域内进行广播,并且所述区域区块至少包括块高度、块哈希、块中包含的交易信息以及所述私有区域的ID;以及
执行所述区域区块中的所述第一交易。
在根据本公开内容的第一方面的实施例中,验证所述第一交易是否是隐私交易进一步包括:
验证所述第一交易中是否还包括两个或更多个私有信息参与节点的公钥;以及
在所述第一交易中还包括所述两个或更多个私有信息参与节点的公钥的情况下,确定所述第一交易是隐私交易。
在根据本公开内容的第一方面的实施例中,确定是否能够执行所述第一交易进一步包括:
确定要执行所述第一交易的节点是否是属于所述私有区域的任一节点;
在确定所述节点是所述私有区域中的节点的情况下,确定能够执行所述第一交易;
在确定所述节点不是所述私有区域中的节点的情况下,确定不能够执行所述第一交易。
在根据本公开内容的第一方面的实施例中,在确定不能够执行所述第一交易的情况下,所述方法进一步包括:
返回错误信息;或者
将所述第一交易转发到所述两个或更多个私有信息参与节点中的一个或多个。
在根据本公开内容的第一方面的实施例中,在将所述第一交易在所述私有区域内广播之后,所述方法进一步包括:
当到达生成区域区块的条件时,生成与所述私有区域相对应的区域区块,并且仅将经共识的所述区域区块在所述私有区域内广播,其中,所述区域区块至少包括块高度、块哈希、块中包含的交易信息以及所述私有区域的ID。
在根据本公开内容的第一方面的实施例中,在执行所述区域区块中的所述第一交易之后,所述方法进一步包括:
至少保存与所执行的第一交易相关的信息、所接收到的区域区块以及执行所述区域区块所产生的状态数据。
针对上述问题,本公开内容的第二方面提出了一种用于实现区块链数据隐私保护的方法,所述方法包括:
基于要发起的第一交易是属于区块链的多个私有区域中的一个私有区域的隐私交易,查询与所述私有区域相对应的所有私有信息参与节点的公钥;以及
向所述区块链的节点发起所述第一交易,其中,所述第一交易至少包括源账户地址、目的账户地址、交易备注以及所述所有私有信息参与节点中的两个或更多个私有信息参与节点的公钥。
针对上述问题,本公开内容的第三方面提出了一种用于实现区块链数据隐私保护的设备,所述设备包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
接收第一交易,其中,所述第一交易至少包括源账户地址、目的账户地址以及交易备注;
验证所述第一交易是否是隐私交易,其中,所述隐私交易至少还包括两个或更多个私有信息参与节点的公钥,并且所述两个或更多个私有信息参与节点属于同一个私有区域;
在验证所述第一交易是隐私交易的情况下,确定能否执行所述第一交易;
在确定能够执行所述第一交易的情况下,将所述第一交易在所述私有区域内广播;
在所述第一交易被打包成为区域区块的一部分并且所述区域区块被达成共识的情况下,接收所述区域区块,其中,所述区域区块在所述私有区域内进行广播,并且所述区域区块至少包括块高度、块哈希、块中包含的交易信息以及所述私有区域的ID;以及
执行所述区域区块中的所述第一交易。
在根据本公开内容的第三方面的实施例中,验证所述第一交易是否是隐私交易进一步包括:
验证所述第一交易中是否还包括两个或更多个私有信息参与节点的公钥;以及
在所述第一交易中还包括所述两个或更多个私有信息参与节点的公钥的情况下,确定所述第一交易是隐私交易。
在根据本公开内容的第三方面的实施例中,确定是否能够执行所述第一交易进一步包括:
确定要执行所述第一交易的节点是否是属于所述私有区域的任一节点;
在确定所述节点是所述私有区域中的节点的情况下,确定能够执行所述第一交易;
在确定所述节点不是所述私有区域中的节点的情况下,确定不能够执行所述第一交易。
在根据本公开内容的第三方面的实施例中,在确定不能够执行所述第一交易的情况下,当所述指令执行时使得所述处理器进一步执行以下操作:
返回错误信息;或者
将所述第一交易转发到所述两个或更多个私有信息参与节点中的一个或多个。
在根据本公开内容的第三方面的实施例中,在将所述第一交易在所述私有区域内广播之后,当所述指令执行时使得所述处理器进一步执行以下操作:
当到达生成区域区块的条件时,生成与所述私有区域相对应的区域区块,并且仅将经共识的所述区域区块在所述私有区域内广播,其中,所述区域区块至少包括块高度、块哈希、块中包含的交易信息以及所述私有区域的ID。
在根据本公开内容的第三方面的实施例中,在执行所述区域区块中的所述第一交易之后,当所述指令执行时使得所述处理器进一步执行以下操作:
至少保存与所执行的第一交易相关的信息、所接收到的区域区块以及执行所述区域区块所产生的状态数据。
针对上述问题,本公开内容的第四方面提出了一种用于实现区块链数据隐私保护的设备,所述设备包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
基于要发起的第一交易是属于区块链的多个私有区域中的一个私有区域的隐私交易,查询与所述私有区域相对应的所有私有信息参与节点的公钥;以及
向所述区块链的节点发起所述第一交易,其中,所述第一交易至少包括源账户地址、目的账户地址、交易备注以及所述所有私有信息参与节点中的两个或更多个私有信息参与节点的公钥。
依据本公开内容的用于实现区块链数据隐私保护的方法及设备能够对区块链数据进行隔离,使得私有状态数据仅会被部分区块链节点加密保存,进而在同一区块链节点上实现了私有状态数据与公有状态数据的逻辑隔离,同时针对区块链***中的不同私有区域实现了数据的物理隔离,从而满足了对要求进行数据隐私保护的商业需求,并且降低了区块链节点存储成本,同时还能够减少网络通信数据,由此提升了区块链网络的性能。
附图说明
结合附图并参考以下详细说明,本公开的各实施例的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实施例,在附图中:
图1为依据本公开内容的用于实现区块链数据隐私保护的方法的实施例之一的示例性流程图;
图2为依据本公开内容的用于实现区块链数据隐私保护的方法的实施例之二的示意图;
图3a-3b为用于依据本公开内容的用于实现区块链数据隐私保护的方法的各种数据的示意图;
图4为依据本公开内容的用于实现区块链数据隐私保护的方法的实施例之二的第一示例性流程图;
图5为依据本公开内容的用于实现区块链数据隐私保护的方法的实施例之二的第二示例性流程图;以及
图6为依据本公开内容的用于实现区块链数据隐私保护的设备600的示意图。
具体实施方式
以下参考附图详细描述本公开的各个示例性实施例。附图中的流程图和框图示出了根据本公开的各种实施例的方法和***的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以使用专用硬件与计算机指令的组合来实现。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。对于附图中的各单元之间的连线,仅仅是为了便于说明,其表示至少连线两端的单元是相互通信的,并非旨在限制未连线的单元之间无法通信。
本公开内容的实施例主要关注以下技术问题:如何使得私有状态数据仅被部分区块链节点保存,如何降低区块链数据的存储成本,以及如何提高交易速度。
为了解决上述问题,本公开内容公开了用于实现区块链数据隐私保护的方法及设备,能够向在区块链中已构建的私有区域中的任一节点发送隐私交易,使得该隐私交易仅在私有区域中的节点上执行,并且仅保存在该私有区域内广播的区域区块(zoneblock)中,实现了在同一区块链节点上实现了私有状态数据与公有状态数据的逻辑隔离,同时针对区块链***中的不同私有区域实现了数据的物理隔离。
实施例1
图1示出了用于实现区块链数据隐私保护的方法的示例性流程图。在本实施例中,区块链节点以及与区块链相关的客户端相互进行通信来实施图1所示的方法,具体如下:
步骤110:客户端基于要发起的第一交易是属于区块链的多个私有区域中的一个私有区域的隐私交易,查询与所述私有区域相对应的所有私有信息参与节点的公钥。
在本步骤中,任一私有区域(zone)包含至少两个私有交易参与节点,该客户端通常情况下是某个zone中的节点的客户端,因此,当该zone构建完成后,客户端可以通过其节点查询到该zone所包括的所有私有交易参与节点的公钥来指定该隐私交易属于上述zone。
步骤120:客户端向所述区块链的节点发起所述第一交易。
在本步骤中,由于该客户端发起的第一交易是隐私交易,因此所述第一交易至少包括源账户地址、目的账户地址、交易备注以及所述所有私有信息参与节点中的两个或更多个私有信息参与节点的公钥。
在本实施例中,优选地,将该zone中所有的节点(也即,私有信息参与节点)的公钥写入该隐私交易的数据表中;或者至少将该客户端所属私有信息参与节点的公钥与该zone中的另外一个私有信息参与节点的公钥写入该隐私交易的数据表中。
如图3a所示,在隐私交易的数据表中包括以下参数:所属块高度、交易哈希、源头账户地址、目的账户地址、智能合约地址、交易备注、存储数据以及两个或更多个私有信息参与节点的公钥(也称为PrivateActor)。
步骤130:区块链节点接收第一交易。
在本实施例中,区块链节点既可以接收普通交易,也可以接收隐私交易,其中,普通交易和隐私交易都至少包括源账户地址、目的账户地址以及交易备注。
步骤140:区块链节点验证所述第一交易是否是隐私交易。
鉴于该区块链节点可以接收普通交易、隐私交易,因此,需要验证所接收到的交易是否是隐私交易。隐私交易的数据表中至少还包括两个或更多个私有信息参与节点的公钥,并且所述两个或更多个私有信息参与节点属于同一个私有区域,所述私有区域内的隐私交易仅能够在所述私有区域内共享。
在本步骤中,首先,区块链节点验证所述第一交易中是否还包括两个或更多个私有信息参与节点的公钥。
其次,在所述第一交易中还包括所述两个或更多个私有信息参与节点的公钥的情况下,区块链节点确定所述第一交易是隐私交易。
步骤150:在验证所述第一交易是隐私交易的情况下,区块链节点确定能否执行所述第一交易。区块链节点对本步骤具体操作如下:
第一,确定要执行所述第一交易的节点(也即,区块链节点自身)是否是属于所述私有区域的任一节点;
第二,在确定所述节点是所述私有区域中的节点的情况下,确定能够执行所述第一交易;或者
第三,在确定所述节点不是所述私有区域中的节点的情况下,确定不能够执行所述第一交易。
在本实施例中,当任一zone形成后,该zone所包括的所有节点的公钥信息能够被广播到该区块链中的所有节点,因此,当某个区块链节点接收到任一隐私交易时,能够根据其中的私有信息参与节点的公钥信息得知该隐私交易属于哪一个zone,由此可以得知其自身是否有权利执行该隐私交易。
在本实施例中,当确定不能够执行所述第一交易时,区块链节点可以选择性地进行如下操作:
向客户端返回错误信息,或者将所述第一交易转发到所述两个或更多个私有信息参与节点中的一个或多个。
步骤160:在确定能够执行所述第一交易的情况下,区块链节点将所述第一交易在所述私有区域内广播。
上述步骤能够保证隐私交易仅在相应的私有区域内广播、保存,从而实现了数据隐私保护的目的。
步骤170:在所述第一交易被打包成为区域区块的一部分并且所述区域区块被达成共识的情况下,接收所述区域区块。
在本步骤中,该区域区块在私有区域内进行广播,并且所述区域区块至少包括块高度、块哈希、块中包含的交易信息以及所述私有区域的ID。
此外,在步骤170之前,当到达生成区域区块的条件时(例如,到达生成区域区块的时间或达到区域区块的存储容量,并且正好轮流到该区块链节点实施生成区域区块的职能),该区块链节点能够生成与所述私有区域相对应的区域区块,并且仅将经共识的所述区域区块在所述私有区域内广播。
在本实施例中,私有区域中所采用的共识算法与该私有区域所属的区块链采用的共识算法不同。
如图3b所示,在区域区块的数据表中包括以下参数:块高度、块哈希、块中包含的交易信息以及私有区域的ID。
步骤180:该节点执行该区域区块中的第一交易;最后该节点保存与所执行的第一交易相关的信息、所接收到的区域区块以及执行所述区域区块所产生的状态数据。
本实施例所公开的技术方案,一方面能够实现私有状态数据(例如,执行隐私交易所产生的数据)仅在区块链中要求的私有区域内广播、共识、执行,并且形成区域区块仅保存在该私有区域的节点上,在同一区块链节点上实现了私有状态数据与公有状态数据的逻辑隔离。另一方面,能够减轻区块链的其他节点(也即,区块链中非私有区域所包括的节点)的数据存储压力,减少了网络通信数据,提升了区块链***的性能。
实施例2
图2公开了本文所公开的用于实现区块链数据隐私保护的方法所应用的具有私有区域的区块链网络。该区块链网络包括节点A、B、C、D以及E,私有区域zone0和zone1,其中,私有区域zone0包括私有信息参与节点(也称区块链节点或节点)A和B,私有区域zone1包括私有信息参与节点C和D,节点E作为区块链网络中的全节点。
以下将根据图4和5来描述区块链网络中私有区域zone0的创建、删除以及私有区域zone0中节点的添加和删除。
例如,区块链节点A的业务账户执行图4所示的步骤以形成与构建私有区域zone0相关的交易。
步骤410:部署与构建私有区域相关的智能合约,以生成所述智能合约的合约地址,其中,所述智能合约至少包括创建私有区域函数、添加节点函数、删除节点函数以及删除私有区域函数。
具体地,区块链节点A的业务账户为了以下目的中的一个来部署相应的智能合约,以生成该智能合约的合约地址:创建私有区域zone0、在已创建私有区域zone0中添加节点、在已创建私有区域zone0中删除节点以及删除已存在的私有区域zone0。
步骤420:确定与构建私有区域相关的交易的交易内容。
具体地,当所述与构建私有区域相关的交易是创建私有区域zone0交易时,所确定的交易内容包括:上述智能合约的合约地址、创建私有区域函数的函数名称、包括节点A的网络地址(IP)和公钥的第一文本信息、包括节点B的IP和公钥的第二文本信息、由节点A的私钥对第一文本信息进行签名形成的第一加密信息以及由节点B的私钥对第二文本信息进行签名形成的第二加密信息。在本实施例中,由节点A和B创建私有区域zone0。
当所述与构建私有区域相关的交易是向私有区域zone0添加新的节点的交易时,所确定的交易内容包括:上述智能合约的合约地址、添加节点函数的函数名称、包括第三节点(未在图2中示出)的IP和公钥的第三文本信息、由节点A或B的私钥对第三文本信息进行签名形成的第三加密信息以及私有区域zone0的ID。在本实施例中,第三节点将被添加到私有区域zone0。
当所述与构建私有区域相关的交易是从私有区域zone0中删除节点的交易时,所确定的交易内容包括:上述智能合约的合约地址、删除节点函数的函数名称、包括第四节点(未在图2中示出)的IP和公钥的第四文本信息、由节点A或B的私钥对第四文本信息进行签名形成的第四加密信息以及私有区域zone0的ID。在本实施例中,第四节点将从私有区域zone0中删除。
替代地,当所述与构建私有区域相关的交易是从私有区域zone0中删除节点的交易时,所确定的交易内容包括:上述智能合约的合约地址、删除节点函数的函数名称、包括第四节点(未在图2中示出)的IP和公钥的第四文本信息、由第五节点(未在图2中示出)的私钥对第四文本信息进行签名形成的第四加密信息以及私有区域zone0的ID。在本实施例中,第五节点是私有区域zone0中与第四节点不同的节点。
当所述与构建私有区域相关的交易是删除私有区域zone0交易时,所确定的交易内容包括:上述智能合约的合约地址、删除私有区域函数的函数名称、私有区域zone0的ID、由节点A对私有区域zone0的ID进行签名形成的第五加密信息以及由节点B对私有区域zone0的ID进行签名形成的第六加密信息。
步骤430:节点A的业务账户利用其私钥对上述交易内容进行签名,以形成所述与构建私有区域相关的交易。
节点A的业务账户针对不同的业务需求形成不同的交易,以便于后续区块链的全节点(例如,节点E)能够在区块链网络中实现私有区域zone0的创建、修改及删除。
例如区块链节点E执行图5所示的步骤实现对私有区域zone0的构建。
步骤510:接收与构建私有区域相关的交易,其中,所述交易是创建私有区域交易、向私有区域添加新的节点的交易、从私有区域中删除节点的交以及删除私有区域交易中的任一个交易,并且所述与构建私有区域相关的交易至少包括与构建私有区域相关的智能合约的合约地址、相应的函数名称。
步骤520:验证所述交易。
步骤530:在所述交易被打包成为区块的一部分并且所述区块被达成共识的情况下,接收所述区块。
步骤540:执行所述区块中的所述交易。
具体地,当所述交易是创建私有区域zone0交易时,节点E执行该交易具体如下:
第一,解析该创建私有区域zone0交易以获得相应的交易内容;
第二,基于交易内容中的合约地址、创建私有区域函数的函数名称,调用创建私有区域函数对第一文本信息和所述第一加密信息进行验签,以得到第一公钥;
第三,基于交易内容中的合约地址、创建私有区域函数的函数名称,调用创建私有区域函数对第二文本信息和第二加密信息进行验签,以得到第二公钥;
第四,确定第一公钥、第二公钥是否分别与节点A、B的公钥匹配;
第五,在确定相匹配的情况下,创建私有区域zone0并生成该私有区域zone0的ID。
或者,当所述交易是向私有区域zone0添加新的节点的交易时,节点E执行该交易具体如下:
第一,解析该交易以获得相应的交易内容;
第二,基于合约地址、创添加节点函数的函数名称调用添加节点函数对第三文本信息和第三加密信息进行验签,以得到第三公钥;
第三,确定第三公钥是否与节点A或B的公钥匹配;
第四,在确定相匹配的情况下,将所述第三节点添加到私有区域zone0。
此外,当所述交易是从私有区域zone0中删除节点的交易时,节点E执行该交易具体如下:
第一,解析该交易以获得相应的交易内容,该交易内容包括:上述合约地址、删除节点函数的函数名称、第四文本信息、第四加密信息以及私有区域zone0的ID;
第二,基于该合约地址、删除节点函数的函数名称调用删除节点函数对第四文本信息和第四加密信息进行验签,以得到第四公钥;
第三,确定所述第四公钥是否与节点A或B的公钥匹配(当第四加密信息是由节点A或B的私钥进行签名形成的);替代地,确定所述第四公钥是否与第五节点的公钥匹配(当第四加密信息是由第五节点(私有区域zone0中与第四节点不同的节点)的私钥进行签名形成的);
第四,在确定相匹配的情况下,将所述第四节点从私有区域zone0中删除。
替代地,当所述交易是删除私有区域交易时,节点E执行该交易具体如下:
第一,解析该交易以获得相应的交易内容,该交易内容包括:上述合约地址、删除私有区域函数的函数名称、第五加密信息、第六加密信息以及私有区域zone0的ID;
第二,基于该合约地址、删除私有区域函数的函数名称调用删除节点函数对第五加密信息和第六加密信息进行验签,以得到第五公钥;
第三,确定所述第五公钥是否与节点B的公钥匹配;
第四,基于该合约地址、删除私有区域函数的函数名称调用删除节点函数对私有区域zone0的ID和第五加密信息进行验签,以得到第六公钥;
第五,确定所述第六公钥是否与节点A的公钥匹配;
第六,在确定所述第五公钥与节点B的公钥相匹配并且所述第六公钥与节点A的公钥相匹配的情况下,将私有区域zone0从所述区块链中删除。
步骤550:在所述交易执行完成的情况下,更新节点状态数据,并将所述节点状态数据在区块链内广播。
例如,当所述交易是创建私有区域交易时,节点E将节点A、B的IP、公钥以及私有区域zone0的ID作为新增的节点状态数据进行保存,并将该新增的节点状态数据广播到区块链网络内。
当所述交易是向私有区域添加新的节点的交易时,节点E将与私有区域zone0相关联的第三节点的IP、公钥作为新增的节点状态数据进行保存,并将该新增的节点状态数据广播到区块链网络内。
当所述交易是从私有区域中删除节点的交易时,节点E将与私有区域zone0相关联的第四节点的IP、公钥从节点E的状态数据中删除,并将更新后的节点状态数据广播到区块链网络内。
当所述交易是删除私有区域交易时,节点E将与私有区域zone0相关联的信息从节点E的状态数据中删除,并将更新后的节点状态数据广播到区块链网络内。
仅区块链网络中的全节点(例如,节点E)而非创建私有区域的节点(例如,节点A、B、C、D)能够根据上述技术方案实现私有区域zone0创建、修改和删除,进而构建了图2所示的私有区域zone0。
在本实施例中,图2中私有区域zone1的构建过程与私有区域zone0的构建过程相似,在此不再赘述。
实施例3
在图2所示的区块链网络中,当节点C的某一客户端发起隐私交易时,具体交易过程如下:
节点C的客户端基于要发起交易是私有区域zone1的隐私交易,查询与私有区域zone1相对应的所有私有信息参与节点的公钥(例如,节点C、D的公钥)。
客户端向区块链网络的节点E发起该隐私交易。
在本步骤中,所述隐私交易至少包括源账户地址、目的账户地址、交易备注以及私有信息参与节点(也即私有区域zone1中的节点)C和D的公钥。
区块链节点E接收该隐私交易,并且基于该隐私交易中存在私有信息参与节点C和D的公钥确定该隐私交易是属于zone1的隐私交易。
在验证所述第一交易是隐私交易的情况下,区块链节点E确定能否执行所述第一交易。区块链节点E对本步骤具体操作如下:
第一,确定节点E是否是属于私有区域zone1的任一节点;
第三,如图2所示,节点E不是属于私有区域zone1的任一节点,因此可以确定节点E不能够执行该隐私交易。
在本实施例中,当确定不能够执行所述第一交易时,区块链节点E可以选择性地进行如下操作:
向节点C的客户端返回错误信息,或者,将该隐私交易转发到私有信息参与节点C和/或D。
当将该隐私交易转发到私有信息参与节点C时,节点C仅在私有区域zone1内广播该隐私交易。
在本实施例中,当到达生成区域区块的条件时(例如,到达生成区域区块的时间或达到区域区块的存储容量,并且正好轮流到节点C执行生成区域区块的职能),节点C能够生成与私有区域zone1相对应的区域区块,并且仅将共识的区域区块在私有区域zone1内广播,其中,所述区域区块至少包括块高度、块哈希、块中包含的交易信息以及私有区域zone1的ID。
节点C执行该区域区块中的隐私交易;最后节点C保存与所执行的隐私交易相关的信息、所接收到的区域区块以及执行所述区域区块所产生的状态数据。
在本实施例中,私有信息参与节点A、B既能够存储私有区域zone0所生成的区域区块(也即,存储由该私有区域中的私有状态数据形成的区域区块),也能够存储区块链网络中的区块(也即,存储由公有状态数据形成的区块);私有信息参与节点C、D既能够存储私有区域zone1所生成的区域区块,也能够存储区块链网络中的区块;全节点E仅能够存储区块链网络中的区块。因此,大大降低全节点E的存储负担、存储成本,进而还能够提高区块链网络的性能。
本实施例所公开的技术方案,一方面能够实现在区块链网络中创建、修改、删除多个私有区域(例如,zone0、zone1),使得属于某个私有区域的私有状态数据仅在该私有区域内广播、形成区域区块,从而在同一区块链节点上实现了私有状态数据与公有状态数据的逻辑隔离。另一方面,能够使得任一私有区域的隐私交易仅由该私有区域中的节点执行,由此降低了区块链网络的网络通信数据量,提升区块链网络的整体性能。
图6示出了可以用作节点客户端实现图1所示的节点客户端的功能的设备600的示意性框图。其中,图6所示的设备600至少包括处理器610以及存储器620,存储器620用于存储指令,当该指令执行时使得处理器610执行图1中的步骤110-120。
此外,图6还示出了可以用作节点实现图1所示的节点的功能的设备600的示意性框图。其中,图6所示的设备600至少包括处理器610以及存储器620,存储器620用于存储指令,当该指令执行时使得处理器610执行图1中的步骤130-180。
本文所公开的用于实现区块链数据隐私保护的设备600能够利用分片技术将区块链网络分成几个并发网络(例如,私有区域),从而达到对整个区块链网络更加高效的扩展,避免了大量交易导致的网络拥塞,提高了交易速度,降低了交易成本。
以上所述仅为本公开的实施例可选实施例,并不用于限制本公开的实施例,对于本领域的技术人员来说,本公开的实施例可以有各种更改和变化。凡在本公开的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的实施例的保护范围之内。
虽然已经参考若干具体实施例描述了本公开的实施例,但是应该理解,本公开的实施例并不限于所公开的具体实施例。本公开的实施例旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
Claims (14)
1.一种用于实现区块链数据隐私保护的方法,所述方法包括:
接收第一交易,其中,所述第一交易至少包括源账户地址、目的账户地址以及交易备注;
验证所述第一交易是否是隐私交易,其中,所述隐私交易至少还包括两个或更多个私有信息参与节点的公钥,并且所述两个或更多个私有信息参与节点属于同一个私有区域;
在验证所述第一交易是隐私交易的情况下,确定能否执行所述第一交易;
在确定能够执行所述第一交易的情况下,将所述第一交易在所述私有区域内广播;
在所述第一交易被打包成为区域区块的一部分并且所述区域区块被达成共识的情况下,接收所述区域区块,其中,所述区域区块在所述私有区域内进行广播,并且所述区域区块至少包括块高度、块哈希、块中包含的交易信息以及所述私有区域的ID;以及
执行所述区域区块中的所述第一交易。
2.根据权利要求1所述的方法,其中,验证所述第一交易是否是隐私交易进一步包括:
验证所述第一交易中是否还包括两个或更多个私有信息参与节点的公钥;以及
在所述第一交易中还包括所述两个或更多个私有信息参与节点的公钥的情况下,确定所述第一交易是隐私交易。
3.根据权利要求1所述的方法,其中,确定是否能够执行所述第一交易进一步包括:
确定要执行所述第一交易的节点是否是属于所述私有区域的任一节点;
在确定所述节点是所述私有区域中的节点的情况下,确定能够执行所述第一交易;
在确定所述节点不是所述私有区域中的节点的情况下,确定不能够执行所述第一交易。
4.根据权利要求3所述的方法,其中,在确定不能够执行所述第一交易的情况下,所述方法进一步包括:
返回错误信息;或者
将所述第一交易转发到所述两个或更多个私有信息参与节点中的一个或多个。
5.根据权利要求1所述的方法,其中,在将所述第一交易在所述私有区域内广播之后,所述方法进一步包括:
当到达生成区域区块的条件时,生成与所述私有区域相对应的区域区块,并且仅将经共识的区域区块在所述私有区域内广播,其中,所述区域区块至少包括块高度、块哈希、块中包含的交易信息以及所述私有区域的ID。
6.根据权利要求1所述的方法,其中,在执行所述区域区块中的所述第一交易之后,所述方法进一步包括:
至少保存与所执行的第一交易相关的信息、所接收到的区域区块以及执行所述区域区块所产生的状态数据。
7.一种用于实现区块链数据隐私保护的方法,所述方法包括:
基于要发起的第一交易是属于区块链的多个私有区域中的一个私有区域的隐私交易,查询与所述私有区域相对应的所有私有信息参与节点的公钥;以及
向所述区块链的节点发起所述第一交易,其中,所述第一交易至少包括源账户地址、目的账户地址、交易备注以及所述所有私有信息参与节点中的两个或更多个私有信息参与节点的公钥。
8.一种用于实现区块链数据隐私保护的设备,所述设备包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
接收第一交易,其中,所述第一交易至少包括源账户地址、目的账户地址以及交易备注;
验证所述第一交易是否是隐私交易,其中,所述隐私交易至少还包括两个或更多个私有信息参与节点的公钥,并且所述两个或更多个私有信息参与节点属于同一个私有区域;
在验证所述第一交易是隐私交易的情况下,确定能否执行所述第一交易;
在确定能够执行所述第一交易的情况下,将所述第一交易在所述私有区域内广播;
在所述第一交易被打包成为区域区块的一部分并且所述区域区块被达成共识的情况下,接收所述区域区块,其中,所述区域区块在所述私有区域内进行广播,并且所述区域区块至少包括块高度、块哈希、块中包含的交易信息以及所述私有区域的ID;以及
执行所述区域区块中的所述第一交易。
9.根据权利要求8所述的设备,其中,验证所述第一交易是否是隐私交易进一步包括:
验证所述第一交易中是否还包括两个或更多个私有信息参与节点的公钥;以及
在所述第一交易中还包括所述两个或更多个私有信息参与节点的公钥的情况下,确定所述第一交易是隐私交易。
10.根据权利要求8所述的设备,其中,确定是否能够执行所述第一交易进一步包括:
确定要执行所述第一交易的节点是否是属于所述私有区域的任一节点;
在确定所述节点是所述私有区域中的节点的情况下,确定能够执行所述第一交易;
在确定所述节点不是所述私有区域中的节点的情况下,确定不能够执行所述第一交易。
11.根据权利要求10所述的设备,其中,在确定不能够执行所述第一交易的情况下,当所述指令执行时使得所述处理器进一步执行以下操作:
返回错误信息;或者
将所述第一交易转发到所述两个或更多个私有信息参与节点中的一个或多个。
12.根据权利要求8所述的设备,其中,在将所述第一交易在所述私有区域内广播之后,当所述指令执行时使得所述处理器进一步执行以下操作:
当到达生成区域区块的条件时,生成与所述私有区域相对应的区域区块,并且仅将经共识的所述区域区块在所述私有区域内广播,其中,所述区域区块至少包括块高度、块哈希、块中包含的交易信息以及所述私有区域的ID。
13.根据权利要求8所述的设备,其中,在执行所述区域区块中的所述第一交易之后,当所述指令执行时使得所述处理器进一步执行以下操作:
至少保存与所执行的第一交易相关的信息、所接收到的区域区块以及执行所述区域区块所产生的状态数据。
14.一种用于实现区块链数据隐私保护的设备,所述设备包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
基于要发起的第一交易是属于区块链的多个私有区域中的一个私有区域的隐私交易,查询与所述私有区域相对应的所有私有信息参与节点的公钥;以及
向所述区块链的节点发起所述第一交易,其中,所述第一交易至少包括源账户地址、目的账户地址、交易备注以及所述所有私有信息参与节点中的两个或更多个私有信息参与节点的公钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910437644.XA CN110147684B (zh) | 2019-05-24 | 2019-05-24 | 用于实现区块链数据隐私保护的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910437644.XA CN110147684B (zh) | 2019-05-24 | 2019-05-24 | 用于实现区块链数据隐私保护的方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110147684A true CN110147684A (zh) | 2019-08-20 |
CN110147684B CN110147684B (zh) | 2023-07-25 |
Family
ID=67593015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910437644.XA Active CN110147684B (zh) | 2019-05-24 | 2019-05-24 | 用于实现区块链数据隐私保护的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110147684B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659903A (zh) * | 2019-09-04 | 2020-01-07 | 华东江苏大数据交易中心股份有限公司 | 一种基于区块链的数据交易方法 |
CN111475826A (zh) * | 2020-05-07 | 2020-07-31 | 杭州烽顺科技信息服务有限公司 | 基于区块链技术的隐私数据出让方法及装置 |
CN111523895A (zh) * | 2020-05-06 | 2020-08-11 | 杭州复杂美科技有限公司 | 数据延时公布方法、设备和存储介质 |
US10762228B2 (en) | 2019-08-30 | 2020-09-01 | Alibaba Group Holding Limited | Transaction scheduling method and apparatus |
WO2021036191A1 (zh) * | 2019-08-30 | 2021-03-04 | 创新先进技术有限公司 | 交易调度方法及装置 |
CN112488680A (zh) * | 2020-12-04 | 2021-03-12 | 深圳前海微众银行股份有限公司 | 一种基于区块链的私有交易处理方法及装置 |
CN112910648A (zh) * | 2019-12-03 | 2021-06-04 | 北京百度网讯科技有限公司 | 区块链隐私状态的共识方法和装置 |
CN113364771A (zh) * | 2021-06-04 | 2021-09-07 | 永旗(北京)科技有限公司 | 一种基于区块链的物联网数据共享方法 |
CN116226137A (zh) * | 2023-05-06 | 2023-06-06 | 山东浪潮科学研究院有限公司 | 一种数据存储方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107579958A (zh) * | 2017-08-15 | 2018-01-12 | 中国联合网络通信集团有限公司 | 数据管理方法、装置及*** |
CN107766542A (zh) * | 2017-10-30 | 2018-03-06 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区查询的方法 |
CN107911216A (zh) * | 2017-10-26 | 2018-04-13 | 矩阵元技术(深圳)有限公司 | 一种区块链交易隐私保护方法及*** |
WO2018235845A1 (ja) * | 2017-06-21 | 2018-12-27 | 日本電信電話株式会社 | 鍵交換システムおよび鍵交換方法 |
CN109377221A (zh) * | 2018-10-16 | 2019-02-22 | 杭州趣链科技有限公司 | 一种基于联盟区块链的隐私交易保护的方法 |
CN109462587A (zh) * | 2018-11-09 | 2019-03-12 | 四川虹微技术有限公司 | 区块链分层共识方法、区块链网络***及区块链节点 |
CN109508982A (zh) * | 2018-11-21 | 2019-03-22 | 北京蓝石环球区块链科技有限公司 | 基于区块链主链加并行多子链的repb共识 |
-
2019
- 2019-05-24 CN CN201910437644.XA patent/CN110147684B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018235845A1 (ja) * | 2017-06-21 | 2018-12-27 | 日本電信電話株式会社 | 鍵交換システムおよび鍵交換方法 |
CN107579958A (zh) * | 2017-08-15 | 2018-01-12 | 中国联合网络通信集团有限公司 | 数据管理方法、装置及*** |
CN107911216A (zh) * | 2017-10-26 | 2018-04-13 | 矩阵元技术(深圳)有限公司 | 一种区块链交易隐私保护方法及*** |
CN107766542A (zh) * | 2017-10-30 | 2018-03-06 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区查询的方法 |
CN109377221A (zh) * | 2018-10-16 | 2019-02-22 | 杭州趣链科技有限公司 | 一种基于联盟区块链的隐私交易保护的方法 |
CN109462587A (zh) * | 2018-11-09 | 2019-03-12 | 四川虹微技术有限公司 | 区块链分层共识方法、区块链网络***及区块链节点 |
CN109508982A (zh) * | 2018-11-21 | 2019-03-22 | 北京蓝石环球区块链科技有限公司 | 基于区块链主链加并行多子链的repb共识 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10762228B2 (en) | 2019-08-30 | 2020-09-01 | Alibaba Group Holding Limited | Transaction scheduling method and apparatus |
WO2021036191A1 (zh) * | 2019-08-30 | 2021-03-04 | 创新先进技术有限公司 | 交易调度方法及装置 |
CN110659903A (zh) * | 2019-09-04 | 2020-01-07 | 华东江苏大数据交易中心股份有限公司 | 一种基于区块链的数据交易方法 |
CN112910648A (zh) * | 2019-12-03 | 2021-06-04 | 北京百度网讯科技有限公司 | 区块链隐私状态的共识方法和装置 |
CN112910648B (zh) * | 2019-12-03 | 2023-04-07 | 北京百度网讯科技有限公司 | 区块链隐私状态的共识方法和装置 |
CN111523895A (zh) * | 2020-05-06 | 2020-08-11 | 杭州复杂美科技有限公司 | 数据延时公布方法、设备和存储介质 |
CN111475826A (zh) * | 2020-05-07 | 2020-07-31 | 杭州烽顺科技信息服务有限公司 | 基于区块链技术的隐私数据出让方法及装置 |
CN111475826B (zh) * | 2020-05-07 | 2023-08-08 | 杭州烽顺科技信息服务有限公司 | 基于区块链技术的隐私数据出让方法及装置 |
CN112488680A (zh) * | 2020-12-04 | 2021-03-12 | 深圳前海微众银行股份有限公司 | 一种基于区块链的私有交易处理方法及装置 |
CN112488680B (zh) * | 2020-12-04 | 2024-02-20 | 深圳前海微众银行股份有限公司 | 一种基于区块链的私有交易处理方法及装置 |
CN113364771A (zh) * | 2021-06-04 | 2021-09-07 | 永旗(北京)科技有限公司 | 一种基于区块链的物联网数据共享方法 |
CN113364771B (zh) * | 2021-06-04 | 2023-08-11 | 佳乔(深圳)投资有限公司 | 一种基于区块链的物联网数据共享方法 |
CN116226137A (zh) * | 2023-05-06 | 2023-06-06 | 山东浪潮科学研究院有限公司 | 一种数据存储方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110147684B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110147684A (zh) | 用于实现区块链数据隐私保护的方法及设备 | |
Rathee et al. | A secure communicating things network framework for industrial IoT using blockchain technology | |
CN107766542B (zh) | 一种分区的区块链网络及其实现分区查询的方法 | |
CN106991334A (zh) | 一种数据存取的方法、***及装置 | |
CN107203344A (zh) | 一种数据存储方法及数据存储*** | |
CN107025409A (zh) | 一种数据安全存储平台 | |
CN110535833A (zh) | 一种基于区块链的数据共享控制方法 | |
US11423473B2 (en) | Blockchain-based leasing | |
CN108446976B (zh) | 一种公积金转移方法、计算机可读存储介质及终端设备 | |
CN110149335A (zh) | 建立用于区块链数据隐私保护的私有区域的方法及设备 | |
CN108881252A (zh) | 身份认证数据处理方法、装置、计算机设备和存储介质 | |
CN109547488A (zh) | 一种基于联盟区块链的可信数据计算及交换*** | |
CN110489996A (zh) | 一种数据库数据安全管理方法及*** | |
CN109063138A (zh) | 用于在区块链即服务平台搜索数据的方法、设备及存储介质 | |
CN114363352B (zh) | 基于区块链的物联网***跨链交互方法 | |
CN110019103B (zh) | 一种基于区块链的跨链***和跨链实现方法 | |
Yang et al. | Publicly verifiable data transfer and deletion scheme for cloud storage | |
CN108537498A (zh) | 基于区块链的跨组织项目管理方法、***、设备及介质 | |
CN109508564A (zh) | 一种基于区块链的数字资产存储***和方法 | |
CN110929229A (zh) | 一种基于区块链的office文档可信性验证方法及*** | |
CN110555318A (zh) | 一种基于区块链的隐私数据保护的方法 | |
CN110581839A (zh) | 内容保护方法及装置 | |
CN111614777B (zh) | 一种基于以太坊区块链的跨组织账户手机号码共享方法 | |
Tang et al. | A Trust‐Based Model for Security Cooperating in Vehicular Cloud Computing | |
CN113269563A (zh) | 基于区块链的企业征信数据共享*** |
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 |