【问题标题】:Hyperledger Fabric: How private keys are stored in Hyperledger?Hyperledger Fabric:私钥如何存储在 Hyperledger 中?
【发布时间】:2018-08-19 18:25:21
【问题描述】:
场景:
每个节点都会向区块链发送一个私人号码,智能合约应添加这些号码并公开分享结果。每个节点只能看到它的编号。
在超级账本中,数字被加密,因此用户无法查看数字。但是,智能合约可以访问解密密钥,这是添加数字所必需的。知道智能合约被复制到所有对等点并存储在本地。因此,用户可以访问智能合约,而智能合约又可以访问解密密钥。因此,用户可以通过篡改机器获得解密密钥。如果是这种情况,那么它并不完全安全。我说的对吗?
问题 2:
私钥是否存储在所有节点上?
问题 3:
代码只能作为背书人运行,以限制拥有私钥的节点数量吗?
【问题讨论】:
标签:
blockchain
hyperledger-fabric
hyperledger
hyperledger-composer
smartcontracts
【解决方案1】:
有多个假设/概念可能不是 100% 正确的。我希望您花更多时间了解 HLF 的工作原理。
智能合约(阅读 Hyperledger Fabric 的链码)始终是公开的,至少对管理员或参与合约的所有各方的决策者而言。通常,智能合约与各方的最终用户是绝缘的,因此最终用户访问链码并不容易。此外,在 HLF 中,链码是在部署之前构建的,这可以增加一层安全性。现在说到你的意思,如果你把私钥放在链码上,它将暴露给该合约的所有参与者(范围有多广,这取决于每一方)
通过私钥,我假设您在谈论最终用户的私钥。现在这取决于最终用户或组织在哪里存储密钥。默认情况下,Hyperledger 不存储任何私钥/公钥。同样,这完全取决于您如何管理每个组织的用户。
是的,Chaincode 可以在有限数量的节点上运行,它与私钥无关(假设这些是您正在谈论的用户的私钥)