在Hyperledger Fabric v0.6中,可以实施供应链应用程序,允许跟踪出处并避免双重花费(即,分配/销售项目比它更多),从而避免伪造.例如,当供应商向分销商提供500个单位的项目时,该数据存储在分类帐中.分销商可以通过调用"转移"功能将指定数量的物品分配给特定的经销商.传递函数执行以下操作:
通过这种方法,分销商不能分配比(例如,分发伪造/走私物品)更多(即,双倍支出).
此外,消费者可以通过查看分类帐来追踪出处(例如,从经销商处购买的物品,该经销商来自供应商).
但是,由于它使用单个分类帐,因此隐私是个问题(例如,经销商2可以查看经销商1订购的商品数量等)
建议的实施隐私的解决方案是在Hyperledger Fabric v1.0中使用多个通道.在这种方法中,供应商和分销商使用单独的渠道/分类帐.同样,分销商和经销商1使用单独的渠道/分类帐,分销商和经销商2使用另一个单独的渠道/分类帐.
但是,由于经销商(即经销商1和经销商2)无法访问供应商和分销商的渠道/分类帐,因此经销商不知道供应商向分销商提供的实际数量.例如,如果供应商仅向分销商提供了500个数量,则分销商可以向经销商索赔其从供应商处采购的1000个数量.采用这种方法,双重消费/假冒将无法避免.
此外,如何实施物源追踪?消费者是否可以访问所有渠道/分类账?如果是这种情况,则隐私再次成为问题.
鉴于此,我们如何在Hyperledger Fabric v1.0中使用多个渠道,同时允许跟踪来源并禁止双重支出?
在Hyperledger Fabric v1.0中,用户可以通过MSP(成员服务提供商)注册并注册到区块链网络中.在注册和注册后,用户被给予公钥(在证书中)和私钥.我理解它的方式,调用者使用私钥来签署事务,而对等端使用公钥来验证签名者.
我可以使用相同的私钥和公钥来加密(使用公钥)和解密(使用私钥)吗?
如果是,我需要使用哪些Node.js库来使用MSP生成的这些密钥进行加密和解密?我尝试使用加密包,但它不起作用.它会产生以下错误:
Error: error:0608B096:digital envelope routines:EVP_PKEY_encrypt_init:operation not supported for this keytype
Run Code Online (Sandbox Code Playgroud)
我尝试在OpenSSL(而不是MSP)生成的RSA公钥/私钥对中使用加密包,并且加密/解密有效.
我正在Hyperledger中创建一个区块链应用程序,该应用程序为一家制造公司执行投标过程。招标过程涉及4个供应商(供应商A到供应商D)。出价最低的一方获胜。
我可以为此创建链码。但是,由于它是区块链,因此供应商可以看到彼此的出价(例如,仅通过查看块的内容即可)。此外,中标的供应商将知道谁真正中标了。
我想在区块链中执行以下隐私规则:
一种。特定供应商的出价只能由制造公司和供应商本身查看(例如,供应商A无法看到供应商B的出价)
b。只有制造公司和中标的供应商知道谁中了(例如,如果供应商A输了标书,那么供应商A只知道它输了标书,却不知道是谁中标了)
我已经查看了交易证书的目的,并且我认为这将解决我的隐私问题。
我可以使用REST API请求多个交易证书。但是,我不确定如何使用交易证书。
它是否打算在链码之外使用(例如,是否用于加密将传递给调用函数的参数)?
还是要将其作为参数传递给链码函数,并在链码内部使用它对特定数据进行加密,然后再将其存储在区块链中?
如何使用交易证书执行实际的加密?
我当前正在将Hyperledger架构的v0.6用于我的链码。对于我的前端,我正在使用Node.JS HFC SDK v0.6.5。
我是否可以使用示例代码作为基础来理解如何使用交易证书解决隐私问题?