什么是 NYM,它与 VERINYM 有什么关系
What is a NYM and how does this relate to a VERINYM
在 Hyperledger Indy 文档和代码中,我经常看到对 NYM 的引用,但我无法在 official glossary 中找到关于这意味着什么的清晰描述。
什么是 NYM,它与 VERINYM 有何不同?
DID 大致分为 Verinym 或 Pseudonym。
分类帐已知的 DID 的创建称为 Verinym,用于创建 Verinym 的交易称为 NYM 交易。
查看 getting started 教程了解更多详情。
我刚刚进入代码的时候也有同样的疑问。然后我在一个英文词典网站上找到了这个:
nym = nim = nom = name
例如:笔名:)
文档 here (on hyperledger-indy.readthedocs.io) and here (github.com):
中提供了有关 NYM
的更多信息
所以从第二个 link:
纽约
为特定用户、背书人、管理员或受托人创建新的 NYM 记录。请注意,只有受托人和管理人才能创建新的背书人,受托人只能由其他受托人创建(参见 roles)。
该交易可用于创建新的 DID、验证密钥的设置和轮换、角色的设置和更改。
dest
(base58编码的字符串):
目标 DID 作为 16 或 32 字节 DID 值的 base58 编码字符串。它可能不同于 from 元数据字段,其中 from 是提交者的 DID。如果它们相等(在无许可的情况下),则交易必须由新创建的 verkey 签名。
示例:from 是创建新 DID 的 Endorser 的 DID,dest 是新创建的 DID。
role
(枚举数为整数;可选):
为其创建 NYM 记录的用户的角色。以下值之一
- None(普通用户)
- “0”(受托人)
- “2”(管家)
- “101”(代言人)
- "201" (NETWORK_MONITOR)
受托人可以将任何 Nym 的角色更改为 None,从而阻止它进行任何进一步的写入(参见 roles)。
verkey
(base58编码的字符串,可能以“~”开头;可选):
目标验证密钥为 base58 编码字符串。它可以以“~”开头,这意味着它是一个缩写的 verkey,解码时应为 16 个字节长,否则它是一个完整的 verkey,解码时应为 32 个字节长。如果未设置,则目标标识符 (did) 是 32 位密码 CID(已弃用),或者这是受监护的用户(尚不拥有该标识符)。 verkey可以被owner改成“None”,表示该用户归监护。
alias
(字符串;可选):
NYM 的别名。
如果指定的DID(did)还没有NYM交易,那么这可以认为是创建了一个新的DID。
如果已存在具有指定 DID (did) 的 NYM 交易,则这被视为对该 DID 的更新。在这种情况下,只应指定需要更新的值,因为任何指定的值都被视为更新,即使它与 ledger 中的当前值匹配。所有未指定的值保持不变。
因此,如果需要进行密钥轮换,则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"
}]
}
}
A NYM(“Verinym”的缩写)与身份所有者的合法身份相关联,是 Hyperledger Indy 数据对象的特定术语,其中包含 DID 数据在 DID 解析期间返回的一个具体身份。虽然任何客户端都可以从 Hyperledger Indy 节点读取 NYM,但只要写入实体拥有适当的权限,NYM 就只能写入 Hyperledger Indy 网络。
在 Hyperledger Indy 文档和代码中,我经常看到对 NYM 的引用,但我无法在 official glossary 中找到关于这意味着什么的清晰描述。
什么是 NYM,它与 VERINYM 有何不同?
DID 大致分为 Verinym 或 Pseudonym。
分类帐已知的 DID 的创建称为 Verinym,用于创建 Verinym 的交易称为 NYM 交易。
查看 getting started 教程了解更多详情。
我刚刚进入代码的时候也有同样的疑问。然后我在一个英文词典网站上找到了这个:
nym = nim = nom = name
例如:笔名:)
文档 here (on hyperledger-indy.readthedocs.io) and here (github.com):
中提供了有关NYM
的更多信息
所以从第二个 link:
纽约
为特定用户、背书人、管理员或受托人创建新的 NYM 记录。请注意,只有受托人和管理人才能创建新的背书人,受托人只能由其他受托人创建(参见 roles)。
该交易可用于创建新的 DID、验证密钥的设置和轮换、角色的设置和更改。
dest
(base58编码的字符串):
目标 DID 作为 16 或 32 字节 DID 值的 base58 编码字符串。它可能不同于 from 元数据字段,其中 from 是提交者的 DID。如果它们相等(在无许可的情况下),则交易必须由新创建的 verkey 签名。
示例:from 是创建新 DID 的 Endorser 的 DID,dest 是新创建的 DID。
role
(枚举数为整数;可选): 为其创建 NYM 记录的用户的角色。以下值之一- None(普通用户)
- “0”(受托人)
- “2”(管家)
- “101”(代言人)
- "201" (NETWORK_MONITOR)
受托人可以将任何 Nym 的角色更改为 None,从而阻止它进行任何进一步的写入(参见 roles)。
verkey
(base58编码的字符串,可能以“~”开头;可选):
目标验证密钥为 base58 编码字符串。它可以以“~”开头,这意味着它是一个缩写的 verkey,解码时应为 16 个字节长,否则它是一个完整的 verkey,解码时应为 32 个字节长。如果未设置,则目标标识符 (did) 是 32 位密码 CID(已弃用),或者这是受监护的用户(尚不拥有该标识符)。 verkey可以被owner改成“None”,表示该用户归监护。
alias
(字符串;可选):NYM 的别名。
如果指定的DID(did)还没有NYM交易,那么这可以认为是创建了一个新的DID。
如果已存在具有指定 DID (did) 的 NYM 交易,则这被视为对该 DID 的更新。在这种情况下,只应指定需要更新的值,因为任何指定的值都被视为更新,即使它与 ledger 中的当前值匹配。所有未指定的值保持不变。
因此,如果需要进行密钥轮换,则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"
}]
}
}
A NYM(“Verinym”的缩写)与身份所有者的合法身份相关联,是 Hyperledger Indy 数据对象的特定术语,其中包含 DID 数据在 DID 解析期间返回的一个具体身份。虽然任何客户端都可以从 Hyperledger Indy 节点读取 NYM,但只要写入实体拥有适当的权限,NYM 就只能写入 Hyperledger Indy 网络。