Hyperledger Fabric 隐私保护

分布式账本可以帮助多个成员进行数据共享和协作,因此,隐私保护(如哪些数据可以被谁读写)就成了十分关键的问题。

目前,Fabric通过多种技术手段在不同层级上分别进行隐私保护,包括如下几种机制:

●通道机制,网络内同时存在多个通道,各个通道之间数据彼此隔离。

●私密数据库,在同一通道内实现对私密交易内容的保护。

●数据加密保护,在数据上链之前进行客户端加密,实现对链上数据的保护。

通道机制

通道机制是Fabric中最基础的数据保护方案。每个通道都拥有自己独有的账本、组织、Peer、Orderer、Gossip域。不同通道内数据彼此隔离,实现隐私保护。

组织身份属于通道成员是该组织节点可以参与通道活动的前提。组织最新的根CA证书和根TLS CA证书都必须保存在通道配置内,以被其他组织认可。证书过期之前,需要进行证书的更新工作。

只有加入通道共识组的排序节点才可以参与通道内的共识过程,每个通道可以自行添加或删除合法的排序节点,这些排序节点构建内部的Raft集群来动态选举和分发数据。排序节点一旦从通道内删除后,会通过探测机制发现变更,该节点将不再主动参与通道内的活动。排序节点也会通过系统通道配置的变化来判断自己所负责的应用通道。

Peer节点要加入通道中还必须拥有该通道的初始区块。Peer节点会从中解析出维护该通道的排序服务地址(可通过选项覆盖),并从排序服务拉取完整的区块链结构,构建本地账本。构建完成后,Peer会通过Gossip协议在通道范围内获取新的数据,并更新本地状态。通道目前无法单独移除特定Peer节点,但Peer节点自身可以选择不再处理某通道的业务。

需要注意的是,通道一旦创建后无法自动删除(可以通过删除所有组织证书和节点信息来禁用通道),会占据节点本地存储。同时,通道的共识过程会消耗排序节点计算资源,因此要避免同时存在过多通道。


私有数据

私密数据库是自1.1版本开始引入的特性,在通道的隔离性基础上提供了更细粒度的控制。该特性允许在同一个通道内的若干成员组织构成一个集合(Collection),合法Peer只在集合策略指定的成员之间分发Gossip私密数据,并且可以指定私密数据的存活时间。通道内交易中的私密数据读写集在公共账本上只包括摘要内容,排序节点无法获知私密数据。

在背书阶段,用户将包括私密数据(通过transient域)的交易提案发给特定Peer节点,然后该Peer节点将私密数据分发给合法的N个Peer节点(requiredPeerCount≤N≤maxPeerCount),这些节点会将私密数据保存在本地的临时数据库。在提交阶段,Peer节点会记录私密数据到本地的私密状态数据库中,并清理临时数据库中记录(CORE_PEER_GOSSIP_PVTDATA_TRANSIENTSTOREMAXBLOCKRETENTION中指定)。这样,私密数据的原文只在规定组织内的Peer上存在,其他节点只能看到有交易被提交,但无法获知原文。

私密数据典型的应用场景为,在批准和提交链码定义时指定私密数据集合,之后在链码中将私密数据放到指定集合中,只有通过集合相关的API才能读写集合内的私密数据。示例代码如下:

$ peer chaincode instantiate \-o ${ORDERER_URL} \-C ${channel} \-n ${name} \-v ${version} \-c ${args} \-P "${policy}" \--collections-config "${collection_config_file}"

其中,在集合配置文件中可以指定哪些组织成员可以访问,还可以指定分发策略、存活时间、权限和背书策略等,示例代码如下:

[{"name": "collection1","policy": "OR('Org1MSP.member', 'Org2MSP.member')","requiredPeerCount": 1,"maxPeerCount": 3,"blockToLive":99999,"memberOnlyRead": true,"memberOnlyWrite": true,"endorsementPolicy": { "signaturePolicy": "OR('Org1MSP.member')" // "channelConfigPolicy": "Channel/Application/Writers"}}
]

注意:集合配置可以通过链码升级操作进行更新,但注意无法删除已定义的集合,并且集合的blockToLive域不支持更新。


加密保护

用户可以在链码内通过加密机制来实现自定义的保护。由于Fabric支持图灵完备的链码,用户可以在链外将上链数据进行加密,读取数据后在链下进行解密。这种方式提供了较高的独立隐私性,因为只有线下用户可以看到数据原文。但要注意对加密密钥的保护。

如果用户希望链码可以自行完成加密和解密过程,则可在发送交易提案请求时使用transient域来提供键值明文和加密密钥,确保只有加密后的结果被记录到账本。

Hyperledger Fabric 隐私保护相关推荐

  1. Hyperledger Fabric 1.2 --- Chaincode Operator 解读和测试(一)

    前言 本文主要目的是用于整理Hyperledger  Fabric中关于chaincode 管理和操作的内容,作者以release-1.2为范本进行讲解. 主要参考链接: https://hyperl ...

  2. 以太坊、Hyperledger Fabric和Corda,哪个更好?

    原创: Philipp Sandner 区块链前哨 昨天 编译|盖磊编辑|前哨小兵甲区块链前哨导语: 我们分析了 Hyperledger Fabric,R3 Corda 和以太坊这三种分布式账本技术间 ...

  3. Hyperledger Fabric 管道(1) 基本概念

    1. 设计目的 让交易方在各自独立的管道内进行交易,保障交易的秘密性和私有性.一个管道内的交易对其他管道是不可见.每个channel可以理解成独立的hyperledger fabric的实例/子网,通 ...

  4. Hyperledger Fabric、Corda和以太坊对比

     Hyperledger Fabric . Corda 和以太坊的对比 三种不同的框架 我们从 Hyperledger Fabric.R3 Corda和以太坊的白皮书中可以看到,三种框架在可能的应用领 ...

  5. Blurring the Lines between Blockchains andDatabase Systems: the Case of Hyperledger Fabric(翻译)

    Blurring the Lines between Blockchains and Database Systems: the Case of Hyperledger Fabric ABSTRACT ...

  6. Hyperledger Fabric网络环境手动配置及其链码自动化部署

    目录 5.1 网络环境的搭建 5.1.1 生成组织结构与身份证书 5.1.2 生成创世区块和通道 5.1.3 启动Fabric网络 5.1.4  创建Fabric-SDK-GO对象并建立通道 5.1. ...

  7. Hyperledger Fabric 超级账本 区块链技术 概述 优点

    超级账本概述 区块链的第一个也是最被广泛认可的应用是比特币,另一种加密货币以太坊采取了不同的方法,它集成了许多与比特币相同的特征,添加了智能合约来创建分布式应用程序的平台.比特币和以太坊属于区块链,我 ...

  8. 区块链与分布式超级帐本技术(Hyperledger Fabric或R3 Corda)

    与分布式超级账本技术(如Hyperledger Fabric或R3 Corda)相比,以太坊区块链保持了相似性和差异性.在对区块链和分布式超级账本平台进行有根据的评估及其为企业带来的价值时,根据平台的 ...

  9. 以太坊和Hyperledger Fabric之间的差异

    在这篇文章中,我们将介绍区块链中两个主要平台之间的差异:以太坊和Hyperledger.如果你正在考虑在项目中使用哪一个.这个博客的亮点是希望帮助你做出决定.但在我们详细说明之前,我们先来看一些定义. ...

最新文章

  1. Hibernate建立关系配置(hbm.xml)bag中cascade属性
  2. SELinux系列(六)——SELinux安全上下文查看方法 详细介绍
  3. Git报错解决:fatal: unable to access ‘https://github.com/...‘: OpenSSL SSL_read:..., errno 10054
  4. JqueryValidate 表单验证插件
  5. 解码器输出PSNR为0表示什么
  6. Hive高级查询(group by、 order by、 join等)
  7. AdBlock插件离线安装
  8. 【插值】插值方法原理详解
  9. 混合云的那些事,如何做到让公有云和私有云实现1+12
  10. 一位五年工作经验架构师的感悟
  11. [Unity小游戏]打砖块(打方块)教程(超详细)
  12. win10 你没有足够的权限执行此操作
  13. v-model 自带绑定的number 、lazy 、debounce属性
  14. 永磁同步电机转子位置估算专题 —— 基波模型与转子位置角
  15. 第一位程序员原来是一个女性!
  16. python中国社区-Python中文社区名称的统一
  17. 一文读懂JVM虚拟机:JVM虚拟机的内存管理(万字详解)
  18. 漫画解读:车规芯片为何比普通芯片贵?跟普通芯片有什么差异?
  19. 浙大愤青郑强教授的演讲(大学生都来看看吧)
  20. 【原创】关于企业或组织实行OKR的心得

热门文章

  1. 有关基于细分曲面造型系统的探讨
  2. 儿童生日快乐相册PPT模板
  3. unity  通过键盘控制角色的移动和旋转
  4. 简单的线性回归+softmax分类
  5. 随机产生唯一的app_key和app_secret
  6. Wetool免费版+配套vx+修复器/开卡机(底部附资源链接)
  7. en_core_web_sm
  8. 基于Hadoop + Hive框架进行电子商务数据分析的设计与实现
  9. VMware下ubuntu20.04的ros安装
  10. B. AND Sequences