什么是 NYM 以及它与 VERINYM 有何关系



在Hyperledger Indy文档和代码中,我经常看到对NYM的引用,但我在官方词汇表中找不到关于这意味着什么的明确描述。

什么是 NYM,它与 VERINYM 有何不同?

DID大致分为Verinym或Pseudonym。

创建账本已知的 DID 称为 Verinym,用于创建 Verinym 的交易称为 NYM 转换。

有关更多详细信息,请查看入门教程。

当我进入代码时,我有同样的问题。然后我在一个英文词典网站上找到了这个:

nym = nim = nom = name

例如:化名:)

有关NYM的其他信息可从此处(hyperledger-indy.readthedocs.io(和此处(github.com(的文档中找到:

所以从第二个链接:

纽约

为特定用户、背书人、监管员或受托人创建新的 NYM 记录。请注意,只有受托人和监管员才能创建新的背书人,并且受托人只能由其他受托人创建(请参阅角色(。

该事务可用于创建新 DID、设置和轮换验证密钥、设置和更改角色。

  • dest(base58 编码的字符串(:

目标 DID 作为 base58 编码的字符串,表示 16 或 32 字节 DID 值。它可能与 from 元数据字段不同,其中 from 是提交者的 DID。如果它们相等(在无许可的情况下(,则交易必须由新创建的 verkey 签名。

示例:from 是创建新 DID 的认可者的 DID,dest 是新创建的 DID。

  • role(枚举数为整数;可选(: 为其创建 NYM 记录的用户的角色。以下值之一
    • 无(普通用户(
    • "0"(受托人(
    • "2"(管家(
    • "101"(背书人(
    • "201"(NETWORK_MONITOR(

受托人可以将任何 Nym 的角色更改为 None,从而阻止它进行任何进一步的写入(请参阅角色(。

  • verkey(base58 编码的字符串,可能以"~"开头;可选(:

将验证密钥作为 base58 编码的字符串。它可以以"~"开头,这意味着它是一个缩写的verkey,解码时应该有16个字节长,否则它是一个完整的verkey,解码时应该有32个字节长。如果未设置,则目标标识符 (did( 是 32 位加密名 CID(已弃用(,或者这是受监护的用户(尚未拥有标识符(。Verkey可以由所有者更改为"无",这意味着该用户将重新受到监护。

  • alias(字符串;可选(:

    NYM 的别名。

如果指定的 DID (did( 还没有 NYM 事务,那么这可以被视为创建新 DID。

如果已经存在具有指定 DID (did( 的 NYM 事务,则将其视为该 DID 的更新。在这种情况下,只应指定需要更新的值,因为任何指定的值都被视为更新,即使它与账本中的当前值匹配。所有未指定的值保持不变。

因此,如果需要执行密钥轮换,DID 的所有者需要仅发送包含 did 和 verkey 的 NYM 请求。 角色和别名将保持不变。

例:

{
"ver": 1,
"txn": {
"type":"1",
"ver": 1,        
"protocolVersion":2,
"data": {
"dest":"GEzcdDLhCpGCYRHW82kjHd",
"verkey":"~HmUWn928bnFT6Ephf65YXv",
"role":101,
},
"metadata": {
"reqId":1513945121191691,
"from":"L5AD5g65TDQr1PPHHRoiGf",
"digest": "4ba05d9b2c27e52aa8778708fb4b3e5d7001eecd02784d8e311d27b9090d9453",
"payloadDigest": "21f0f5c158ed6ad49ff855baf09a2ef9b4ed1a8015ac24bccc2e0106cd905685",
"taaAcceptance": {
"taaDigest": "6sh15d9b2c27e52aa8778708fb4b3e5d7001eecd02784d8e311d27b9090d9453",
"mechanism": "EULA",
"time": 1513942017
}
},
},
"txnMetadata": {
"txnTime":1513945121,
"seqNo": 10,
"txnId": "N22KY2Dyvmuu2PyyqSFKue|01"
},
"reqSignature": {
"type": "ED25519",
"values": [{
"from": "L5AD5g65TDQr1PPHHRoiGf",
"value": "4X3skpoEK2DRgZxQ9PwuEvCJpL8JHdQ8X4HDDFyztgqE15DM2ZnkvrAh9bQY16egVinZTzwHqznmnkaFM4jjyDgd"
}]
}
}

NYM("Verinym"的缩写(与身份所有者的法定身份相关联,并且是数据对象的Hyperledger Indy特定术语,它保存DID解析期间返回的一个具体身份的DID数据。虽然任何客户端都可以从Hyplerledger Indy Node读取NYM,但只要写入实体拥有适当的权限,NYM只能写入Hyperledger Indy网络。

从页面: https://hyperledger.github.io/indy-did-method/

最新更新