【问题标题】:Is it possible to hack the world state in Hyperledger composer是否可以破解 Hyperledger composer 中的世界状态
【发布时间】:2018-02-22 03:05:14
【问题描述】:

既然世界状态存储在peer的数据库中,那么是否可以在peer节点上获取其中的所有数据呢? 如果是,如何确保 state 中的所有数据都受到良好的访问控制?

另外,如果每个人都可以看到账本中的交易,那么所有人都可以使用交易负载重建状态。这意味着世界状态对所有参与者都是透明的。 如果这是真的,那么如何确保只有具有适当权限的参与者才能查看状态?

【问题讨论】:

    标签: permissions hyperledger hyperledger-composer


    【解决方案1】:

    任何人都可以建立一个交易,但它要提交到世界状态,它会得到背书系统链码的背书。恶意节点(试图破解世界状态)首先需要成为通道的成员(由 MemberShip 服务提供商控制)并拥有正确的权限,以便将调用传播给排序节点并提交给节点。

    为了限制谁可以看到什么,您可以选择在您的智能合约链代码逻辑中限制查询,或者在您的对等配置 yaml 中为其分配一个只写配置文件。

    【讨论】:

    • 感谢您回答@Data_Kid。是否可以直接破解沙发数据库?由于所有状态都存储在沙发数据库中。
    • 是的,您可以破解一个参与者/节点,但您还必须破解网络中的每个节点,因此向网络添加更多节点可以提高可靠性,因为没有单点故障。如果一个人的世界状态与其他对等体不同,则可以将其视为拜占庭,并从网络中删除
    【解决方案2】:

    是的,您可以直接使用Web界面进入CouchDB并修改数据。 Hyperledger Farbic 不会通知 CouchDB 中的更改。我用 2 个对等点(在 Hyperledger Fabric 1.1.0 上)对此进行了测试,并使用链码中的查询功能,两个对等点的结果不同,即没有错误表明数据已被修改。

    还要检查How your data is safe in Hyperledger Fabric when one can make changes to couchdb data directly,其中给出了类似的答案。

    【讨论】:

    • 可能为什么您需要超过 2 个同行?
    • 如果我在任何对等点上直接更新 CouchDB,同一组织中的所有其他对等点都会随着世界状态的变化而更新。我已经测试过了。
    猜你喜欢
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-16
    • 2021-09-12
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    相关资源
    最近更新 更多