Что такое 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/

Другие вопросы по тегам