5

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

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

4

4 回答 4

8

DID 大致分为 Verinym 或 Pseudonym。

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

查看入门教程以获取更多详细信息。

于 2018-10-09T18:32:29.440 回答
3

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

nym = nim = nom = name

例如:化名:)

于 2018-11-01T05:31:14.597 回答
2

此处(在 hyperledger-indy.readthedocs.io 上)此处(github.com)NYM的文档中提供了有关 s 的其他信息:

所以从第二个链接:

纽约邮报

为特定用户、背书人、管理者或受托人创建新的 NYM 记录。请注意,只有受托人和管家可以创建新的背书者,而受托人只能由其他受托人创建(请参阅角色)。

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

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

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

示例:from 是 Endorser 创建新 DID 的 DID,dest 是新创建的 DID。

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

TRUSTEE 可以将任何 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"
        }]
    }

}
于 2021-04-29T05:53:41.033 回答
0

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

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

于 2022-01-25T16:21:29.967 回答