我正在查看Hyperledger Indy SDK的getting started documentation。
第4步经历了通过管理员加入新成员的过程。对于文档中概述的过程,我尤其有三个广泛的疑问。
对创建NYM交易的分类账的调用意味着什么?是不是,成对的DID应该存储在钱包中而不要公开。
Fabric的哪个键会向Faber查询分类帐,是Steward的合法DID还是它为Faber创建的DID。
对于私人DID存储在钱包中的情况。像Faber这样的实体如何获取发送连接邀请的实体的加密密钥?
答案 0 :(得分:2)
您的困惑是公义的,现在指出您的原因也使我感到困惑。我转向Indy社区,并了解本演练教程的这一部分有些过时了。从Hyperledger Indy的RocketChat频道引用Stephen Curran:
成对的DID概念还不够充实,因此 代码中的DID正在写入分类帐。
要详细说明公共DID和成对DID:
NYM Transaction使用关联的Verkey(密钥对的公共部分)编写一个DID。但是,您必须区分公共DID和成对DID。
公共DID-是您在此处发布的标识符,每个人都知道。如果您是一家机构,则希望拥有这样的标识符。人员/他们的设备随后可以使用它来建立与机构的初始安全连接。
Pairwise DID-是DID,用于标识您与某人建立的安全通道。例如,如果您使用其公共DID与机构联系,则它们将生成成对的DID(密钥对和DID标识符)以与您交谈。您还将生成成对的DID,以识别与它们的连接(并使用与成对的DID关联的密钥对通信进行加密)
Faber向分类帐询问管家DID的验证码 通过调用did.key_for_did。
因此,这里Faber从分类帐中读取Steward的DID及其关联的密钥(公共密钥)。然后,Faber使用此密钥对消息进行加密-该消息将无法被任何人解密,但该密钥的私有部分的所有者Steward也是如此。
以下是通常建立连接的方式:
假定某些安全通道已建立,一方通过该安全通道接收另一方的连接邀请。例如,您可以通过HTTPS获得邀请,或者仅是银行的雇员向您提供一个包含银行邀请进行连接的QR码。 当生成连接邀请消息时,邀请方生成带有verkey的成对DID。这已包含在邀请消息中,因此,假设您以任何方式确保了此邀请的安全传递,可以肯定地说您可以将加密的消息发送给邀请方。 此时,您将为此连接生成成对的DID和Verkey,并将此数据发送给邀请者。此时,您已经建立了安全连接,因为您都安全地交换了会话的彼此成对的DID / Verkey。