Hyperledger Fabric 是否支持加密交易?
Does Hyperledger Fabric supports encrypted transaction?
此 video(IBM Hyperledger Fabric 课程的一部分)描述了可以在部署时加密链代码,以便只有一部分成员能够解密它并 运行 它。但是,Fabric 文档(v0.6 和 v1.0)没有提供任何相关细节。是否是社区希望在未来构建的尚未实现的功能?
我不太清楚这是怎么回事。任何从排序服务接收到它无法解密的交易的节点将无法 运行 它并更新它的世界状态,那么它除了跳过它还能做什么呢?它甚至不能将交易标记为有效或无效。
我是不是漏掉了什么?
在 Fabric v1.0 中,有一个通道的概念,可以与网络成员的子集私下共享数据。只有频道成员才能存储和访问数据。
如果您无论如何都想加密数据,应用程序可以在将数据提交到区块链之前加密数据。
是的,可以在链上加密数据,这样链代码仍然能够看到数据并在其上应用逻辑(与链下加密相反其中垃圾数据在链上不可用)。
这个想法是将加密密钥作为瞬态输入参数的一部分传递(不会传输到排序服务和其他通道节点)。因此只有背书者和任何知道密钥的节点才能解密数据。
在 2018 年第一季度发布的 v1.1 中,Fabric 将支持访问状态的加密层 API(参见 FAB 830)。
在链上加密数据有两个缺点:
- 密钥维护和共享是开销
- 未来密钥泄露+加密破解的风险
为了隐私而不是加密,选择数据隔离方法可能更好。这就是 FAB 1151,也是 v1.1 的一部分(实验性的!)提出的:
- 每个私人数据都属于一个集合,该集合定义了可以访问它的组织
- 私有状态的哈希包含在public状态
- Endorser将交易模拟过程中计算出的私有状态保存到临时存储区中,并在commit阶段应用
- 其他允许的节点可以通过八卦请求私有状态
此 video(IBM Hyperledger Fabric 课程的一部分)描述了可以在部署时加密链代码,以便只有一部分成员能够解密它并 运行 它。但是,Fabric 文档(v0.6 和 v1.0)没有提供任何相关细节。是否是社区希望在未来构建的尚未实现的功能?
我不太清楚这是怎么回事。任何从排序服务接收到它无法解密的交易的节点将无法 运行 它并更新它的世界状态,那么它除了跳过它还能做什么呢?它甚至不能将交易标记为有效或无效。
我是不是漏掉了什么?
在 Fabric v1.0 中,有一个通道的概念,可以与网络成员的子集私下共享数据。只有频道成员才能存储和访问数据。
如果您无论如何都想加密数据,应用程序可以在将数据提交到区块链之前加密数据。
是的,可以在链上加密数据,这样链代码仍然能够看到数据并在其上应用逻辑(与链下加密相反其中垃圾数据在链上不可用)。 这个想法是将加密密钥作为瞬态输入参数的一部分传递(不会传输到排序服务和其他通道节点)。因此只有背书者和任何知道密钥的节点才能解密数据。 在 2018 年第一季度发布的 v1.1 中,Fabric 将支持访问状态的加密层 API(参见 FAB 830)。 在链上加密数据有两个缺点:
- 密钥维护和共享是开销
- 未来密钥泄露+加密破解的风险
为了隐私而不是加密,选择数据隔离方法可能更好。这就是 FAB 1151,也是 v1.1 的一部分(实验性的!)提出的:
- 每个私人数据都属于一个集合,该集合定义了可以访问它的组织
- 私有状态的哈希包含在public状态
- Endorser将交易模拟过程中计算出的私有状态保存到临时存储区中,并在commit阶段应用
- 其他允许的节点可以通过八卦请求私有状态