我正在Hyperledger中创建一个区块链应用程序,为一家制造公司执行招标过程 . 招标过程涉及4个供应商(供应商A到供应商D) . 出价最低的人获胜 .
我能够为此创建链代码 . 然而,由于它是区块链,供应商可以看到彼此的出价(例如,通过简单地查看块的内容) . 此外,未获奖的供应商将知道谁实际赢得了招标过程 .
我想在区块链中强制执行以下隐私规则:
a . 特定供应商的出价应仅由制造公司和供应商本身(例如,供应商A看不到供应商B的出价)b . 只有制造公司和获胜供应商知道谁赢了(例如,如果供应商A失去了出价,供应商A只知道它失去了出价,但不知道谁赢了)
我已经查看了交易证书的目的,我认为这将解决我的隐私问题 .
我可以使用REST API请求多个事务证书 . 但是,我不确定如何使用交易证书 .
它是否意味着在链代码之外使用(例如,它是否用于加密将传递给调用函数的参数)?
或者它是否意味着作为参数传递给链代码函数并在链代码中使用它来加密特定数据,然后将其存储在区块链中?
如何使用交易证书执行实际加密?
我目前正在使用Hyperledger结构的v0.6作为我的链码 . 对于我的前端,我使用的是Node.JS HFC SDK v0.6.5 .
是否有一个示例代码可以作为了解交易证书如何用于解决隐私的基础?
2 回答
注册用户可以请求交易证书 . 然后,这些证书用于调用区块链上的Chaincode事务 . 我认为这些证书不会让你隐私,他们更多的是验证交易的所有者 .
但是,如果我是你,我会开始使用Hyperledger Fabric的v1.0 .
Hyperledger结构的v0.6是为测试区块链的优缺点而开发的项目 . 他们意识到网络中的每个对等体都需要执行每个事务,维护分类账并达成共识 . 因此,他们可以支持真正的私人交易和保密 Contract . https://www.youtube.com/watch?v=EKa5Gh9whgU
v1.0使您有机会在网络中创建隔离的区块链 . 这要归功于渠道 . 定义 Channels 时,您可以定义谁是其成员,因此,只有那些对等方可以通过该 Channels 发送事务 . 因此,只有 Channels 成员才能看到您的交易 .
因此,对于您的方法,您应该创建四个渠道,每个渠道为每个供应商 . 制造公司应该是所有渠道的合作者 .
在我看来,现在有关于v1.0的更多信息 .
我认为除了艾伦申之前所说的以外,还有一种方法可以用手动的方式来实现这一目标 . 但是,您可能希望遵循一些未解决的问题:
支持Hyperledger中的私人数据:https://jira.hyperledger.org/browse/FAB-5131
和侧边数据库 - 渠道私人数据 - 最近作为实验性功能完成的实验性功能https://jira.hyperledger.org/browse/FAB-1151,正在升级为 生产环境 :https://jira.hyperledger.org/browse/FAB-8718
祝你的用例好运!