
# 概述
在商业实践中，数据是重要的生产要素。基于区块链的可信数据交换，实现了分布式场景中业务数据的隐私保护与可信共享，有效打破"数据孤岛"，最大化数据价值。可信数据共享中间件集成在Rest API插件中，可快速插拔，支持弹性伸缩。用户可通过RESTful API的方式访问区块链系统，快速集成，实现数据的发布、授权、分享、加密、解密、细粒度访问控制等能力。
#### 功能介绍
- 可信数据交换基于分布式身份实现，参与数据交换的用户需要注册分布式身份，详细方法请参见[分布式身份（公测）](https://support.huaweicloud.com/devg-bcs/bcs_devg_4002.html)。
- 可信数据涉及两个主要数据结构：数据集和数据订单。数据集包括数据描述信息、访问控制信息（属性加密中的策略）等。数据订单包括数据申请、审核信息等。
- 可信数据交换支持三种模式：申请-授权、主动分享和细粒度访问控制。详细请参见[模式介绍]。
  ![](https://support.huaweicloud.com/devg-bcs/public_sys-resources/note_3.0-zh-cn.png)
  可信交换中的数据加密后支持多种存储服务，用户可以根据业务需要自己选择。调用者负责将密文数据存储到公开可访问的存储设备中。
  
 
#### 角色定义
数据所有者Owner和数据申请者Applicants，每一个用户既可以是数据所有者角色，也可以是数据申请者角色。
 #### 模式介绍
- 申请-授权模式，授权流程图请参见[图1]。
  - 数据所有者通过"发布数据集"接口完成用户明文数据的加密和数据描述等信息的注册发布。
  
  - 数据申请者可通过"申请数据集"接口调用链代码触发申请-授权流程。
  
  - 数据所有者可根据申请信息和申请者的did、vc等信息决定授权或者拒绝。
  
  
  图1申请-授权模式使用流程   
  ![](https://support.huaweicloud.com/devg-bcs/zh-cn_image_0000001167660143.png "点击放大") 
- 主动分享模式，使用流程请参见[图2]。
  "主动分享数据集"接口相当于"发布数据集"接口和"授权数据集"接口的组合。数据所有者将数据集发布到区块链，同时授权某申请者解密数据权限，被授权者可以直接解密数据集。此时，其他参与者均可以通过"查询指定数据集"和"查询数据集列表"接口获得数据相关描述信息，并通过申请-授权模式获取数据解密权限。
  接口使用方法请参考数据集管理和数据订单管理。
  图2主动分享模式使用流程   
  ![](https://support.huaweicloud.com/devg-bcs/zh-cn_image_0000001121100342.png "点击放大") 
- 细粒度访问控制模式，使用流程请参见[图3]。
  ![](https://support.huaweicloud.com/devg-bcs/public_sys-resources/note_3.0-zh-cn.png)
  基于属性加密(Attribute-Based Encryption, ABE)细粒度控制的数据交换模式，通过为每个数据集配置合理的、自定义的共享策略，实现对数据申请者属性级别的访问控制，即拥有某些属性组合的申请者可以访问密文。
  细粒度访问控制模式采用CP-ABE（基于密文策略的属性加密，Ciphertext-Policy ABE）方式实现。将策略嵌入到密文中，属性嵌入到用户密钥中。
  - 每个数据所有者都只需初始化一次自己的主公钥和私钥。
  
  - 数据申请者需要使用某数据所有者数据时，需要向其申请用户密钥，当属性没有变化的情况下只需申请一次。
  
  - 当拥有用户密钥且属性满足密文访问策略时，数据申请者可以异步的，随时解密数据所有者发布的所有相应数据。
  
  - 接口使用方法请参考属性加密的密钥管理。
  
  
  图3细粒度访问控制模式使用流程   
  ![](https://support.huaweicloud.com/devg-bcs/zh-cn_image_0000001120940432.png "点击放大")
  ![](https://support.huaweicloud.com/devg-bcs/public_sys-resources/note_3.0-zh-cn.png)
  基本概念介绍：
  - 属性（Attribute）：描述一个实体的性质与实体之间关系的统称。
  
  - 策略（Policy)：策略是属性集合与逻辑关系的组合，由数据所有者制定，将嵌入到数据密文中。例如 "age\>26 \&\& gender=man"代表策略要求年龄大于26岁且性别是男性。
  
  - ABE主密钥包含主公钥（Master Public Key, MPK）和主私钥（Master Secret Key, MSK）：数据拥有者所有，用于加密密文和生成用户（数据申请者）密钥。
  
  - 用户密钥（User Key）: 数据申请者通过提交属性列表，向数据所有者申请获得。密钥中包含用户的属性信息，用于解密密文。
    
 
