Что такое NYM и как это связано с VERINYM
В документах и коде Hyperledger Indy я часто вижу ссылку на NYM, но не могу найти четкого описания того, что это значит, в том числе и в официальном глоссарии.
Что такое NYM и чем он отличается от VERINYM?
4 ответа
DID в целом классифицируются как Verinym или псевдоним.
Создание DID, известного в бухгалтерской книге, называется Verinym, а транзакция, использованная для создания Verinym, называется транзакцией NYM.
Обратитесь к руководству по началу работы для получения более подробной информации.
У меня тот же вопрос, когда я просто вхожу в код. Тогда я нашел это на английском сайте dict:
nym = nim = nom = name
например: псевдоним:)
Есть дополнительная информация о
NYM
доступны в документации здесь (на hyperledger-indy.readthedocs.io) и здесь (github.com):
Итак, из второй ссылки:
NYM
Создает новую запись NYM для конкретного пользователя, индоссанта, управляющего или попечителя. Обратите внимание, что только попечители и распорядители могут создавать новых индоссантов, а попечитель может быть создан только другими попечителями (см. ).
Транзакция может использоваться для создания новых DID, установки и ротации ключа проверки, установки и изменения ролей.
-
dest
(строка в кодировке base58):
Целевой DID как строка в кодировке base58 для 16- или 32-байтового значения DID. Может отличаться от поля метаданных from, где from - это DID отправителя. Если они равны (в случае отсутствия прав доступа), то транзакция должна быть подписана вновь созданным ключом.
Пример: from - это DID подтверждающего, создающего новый DID, а dest - это вновь созданный DID.
-
role
(число перечисления как целое; необязательно): роль пользователя, для которого создается запись NYM. Одно из следующих значений- Нет (обычный ПОЛЬЗОВАТЕЛЬ)
- «0» (ДОВЕРИЕ)
- "2" (СТЮАРД)
- «101» (КОНДИТОР)
- «201» (NETWORK_MONITOR)
Доверяющий может изменить роль любого нима на None, тем самым не позволяя ему делать дальнейшие записи (см. РолиРоли).
-
verkey
(строка в кодировке base58, возможно, начинающаяся с "~"; необязательно):
Ключ подтверждения цели как строка в кодировке base58. Он может начинаться с "~", что означает, что это сокращенный verkey и должен иметь длину 16 байт при декодировании, в противном случае это полный verkey, который должен иметь длину 32 байта при декодировании. Если не задан, то либо целевой идентификатор (did) - это 32-битный CID криптонима (это устарело), либо это пользователь под опекой (пока не владеет идентификатором). Владелец может изменить Verkey на «Нет», это означает, что этот пользователь снова будет находиться под опекой.
alias
(строка; необязательно):Псевдоним NYM.
Если еще нет транзакции NYM для указанного DID (did), то это можно рассматривать как создание нового DID.
Если уже существует транзакция NYM с указанным DID (did), то это считается обновлением этого DID. В этом случае следует указывать только те значения, которые необходимо обновить, поскольку любое указанное значение рассматривается как обновление, даже если оно соответствует текущему значению в бухгалтерской книге. Все неуказанные значения остаются без изменений.
Итак, если необходимо выполнить ротацию ключей, владелец DID должен отправить запрос NYM только с did и verkey. роль и псевдоним останутся прежними.
Пример:
{
"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. В то время как NYM может быть прочитан из узла Hyplerledger Indy любым клиентом, NYM может быть записан в сеть Hyperledger Indy только при условии, что записывающий объект обладает соответствующими разрешениями.
Со страницы: https://hyperledger.github.io/indy-did-method/