Indy使用哪个验证码作为管家

时间:2019-03-28 08:05:46

标签: hyperledger blockchain identity hyperledger-indy

我正在查看Hyperledger Indy SDK的getting started documentation

第4步经历了通过管理员加入新成员的过程。对于文档中概述的过程,我尤其有三个广泛的疑问。

  1. 对创建NYM交易的分类账的调用意味着什么?是不是,成对的DID应该存储在钱包中而不要公开。

  2. Fabric的哪个键会向Faber查询分类帐,是Steward的合法DID还是它为Faber创建的DID。

  3. 对于私人DID存储在钱包中的情况。像Faber这样的实体如何获取发送连接邀请的实体的加密密钥?

1 个答案:

答案 0 :(得分:2)

问题1

您的困惑是公义的,现在指出您的原因也使我感到困惑。我转向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关联的密钥对通信进行加密)

问题2

  1. 我认为您是指第10步:
  

Faber向分类帐询问管家DID的验证码   通过调用did.key_for_did。

因此,这里Faber从分类帐中读取Steward的DID及其关联的密钥(公共密钥)。然后,Faber使用此密钥对消息进行加密-该消息将无法被任何人解密,但该密钥的私有部分的所有者Steward也是如此。

问题3

以下是通常建立连接的方式:

假定某些安全通道已建立,一方通过该安全通道接收另一方的连接邀请。例如,您可以通过HTTPS获得邀请,或者仅是银行的雇员向您提供一个包含银行邀请进行连接的QR码。 当生成连接邀请消息时,邀请方生成带有verkey的成对DID。这已包含在邀请消息中,因此,假设您以任何方式确保了此邀请的安全传递,可以肯定地说您可以将加密的消息发送给邀请方。 此时,您将为此连接生成成对的DID和Verkey,并将此数据发送给邀请者。此时,您已经建立了安全连接,因为您都安全地交换了会话的彼此成对的DID / Verkey。