Replies: 4 comments 8 replies
-
Is there a communal parallel lookup table to figure out how to route |
Beta Was this translation helpful? Give feedback.
-
Next question: This reminds me a lot of https://www.w3.org/TR/wsdl/ have you read through that for possible insights from earlier travelers? |
Beta Was this translation helpful? Give feedback.
-
Are IID's intended to represent both tokens and accounts, or just tokens? |
Beta Was this translation helpful? Give feedback.
-
This proposal is somewhat related to IID's although it doesn't attempt to leverage DIDs: #9156 (comment). DIDs to me make sense when there is some authentication involved. The URIs I'm proposing above simply relate to identifying any on-chain entity. |
Beta Was this translation helpful? Give feedback.
-
Interchain Identifiers
IIDs for Cosmos DIDs
Background Reading
NFT-RFC 009 IID Specification
Abstract
Every digital asset in the Cosmos context deserves a universally addressable identifier. Interchain Identifiers (IIDs) are a standards-conformant mechanism for uniquely identifying and referring to digital assets within chain namespaces. Each IID is associated with an IID Document, which contains all the properties needed to interact with, or on behalf of, the asset.
We propose that Cosmos modules use IIDs to unambiguously and interoperably expose any on-chain assets managed by the module as well as their available services.
Three steps to add IID capability
By taking these three steps, any Cosmos module can create 100% conformant DIDs for its assets with minimal extra effort.
Further, by leveraging IID-specific DID document properties, any module can craft privacy-respecting metadata management for any asset.
In short, adopting IIDs for Cosmos blockchains will establish an approach for an interoperable family of DID methods that address the needs of any on-chain asset, no matter which chain originates the asset's provenance. Chains that support IIDs will be able to securely interact with, and provide services for, tokens of any kind from any IID-supporting blockchain.
Context
There is currently no standard way to address, refer to, and interact with digital assets across decentralized name-spaces and the Web. The information needed to describe and interact with digital assets is not yet standardised and interoperable.
Within the Internet of Blockchains, it is essential to be able to address, authenticate and interact with digital assets across namespaces. For interoperability with the Web, blockchain asset identifiers would benefit from adherence to the Uniform Resource Identifiers (URI) standard, as defined by RFC3986.
The Interchain Identifier (IID) Specification NFT-RFC-009 describes a standardised Decentralized Identifier (DID) approach to a family of DID methods that identify on-chain assets and resolve to those asset's IID Documents, which contain the information needed to securely interact with the asset. IIDs fully conform to the W3C DID Core specification, making IIDs compatible with the family of specifications and extensive tooling -- such as wallets -- already available for DIDs. Interoperable with any conformant DID system.
The IID Specification extends the DID Core specification with additional properties for Linked Resources and Accorded Rights. This provides a highly versatile and extensible framework for all types and classes of digital assets, for any imaginable use-case.
The goal of this discussion is one or more ADRs to bring DIDs to Cosmos in the form of IIDs, usable by any Cosmos SDK module that manages digital assets.
Three concrete proposals
1. Interchain Identifiers for Cosmos
Decentralized Identifiers (DIDs) are the new W3C standard (currently in Candidate Recommendation stage) for identifying any subject in the physical or digital realm. DIDs are fully-conformant Universal Resource Identifiers (URIs), as defined by RFC3986.
Interchain Identifiers (IIDs) are a family of DID Methods specifically designed for referring to on-chain assets – such as NFTs, fungible tokens, namespace records and account wallets. IIDs are a sub-class of Decentralised Identifiers (DIDs). In short, all IIDs are DIDs, but many DIDs will not be IIDs.
IIDs resolve to a DID Document (IID Document), which describes the asset's:
• Verification relationships and methods
• Service endpoints
• Linked resources
• Accorded rights
For example:
did:cosmos:ixo:token:abc123
is a valid IID referring to a uniquely-identified digital asset, which could be an NFT type of token, of a specific class, in aToken
module on theixo
Cosmos blockchain. Resolving the IID returns the asset's IID Document directly from the Tokens module.The module's resolver service handles message routing to create or deactivate the Interchain Identifier and for authorized users to create, read or update the IID Document properties.
IIDs may be used both within the context of a chain namespace, as well as off-chain, to reference and interact with an on-chain asset. An assertion about the asset issued as a Verifiable Credential, or an Authorization Capability (zCap) which controls services the token owner can invoke, are both examples of off-chain applications of IIDs.
Implementing IIDs in Cosmos SDK modules
To enable IIDs, asset modules at minimum:
2. IID Module for the Hub / Gaia
We propose a standard DID method for the Cosmos ecosystem (did:cosmos), specifying how to reach any asset, managed by any Cosmos module, in any chain namespace. This DID Method will support the IID extensions defined in NFT-RFC-009, making it the world's first IID Method. Cosmos chains can adopt the IID specification and create their own IID compatible DID Method or leverage did:cosmos to add DIDs to their application chain without needing to formally specify a new DID Method.
The proposed did:cosmos method would uses a single Gaia module to serve as the namespace controller so that any Cosmos blockchain can register its namespace for resolution. Any namespace module that adopts the IID specification and works for any Cosmos chain could perform this role.
For example, the ixo chain would register "ixo" so that
did:cosmos:ixo:tokens:abc123
resolves to the DID Document returned by the IID resolve interface on ixo's tokens module (which is running on the ixo application chain). Ixo's module controls the namespace in whichabc123
is defined and renders a DID Document to communicate how to interact securely with that token.In the same way—after the Hub's IID module is deployed— any Cosmos module will be able to register its namespace (and provide an IID interface) and immediately have its own DID namespace under the Cosmos method.
IBC and IIDs
For routing to IIDs and resolving IID Documents across IBC, some form of chain registry module (as currently being discussed by the UX Working Group) will need to be implemented to manage chain-module namespaces.
A Hub IID Module could potentially be a candidate to provide this chain nameservice functionality.
3. IID Module in Cosmos SDK
An IID Module for the Cosmos SDK will provide a reference implementation of the IID Interface, which can be used by any application chain module to access standard IID helper functions and services. Such as an
IID generator
which returns did:cosmos conformant IIDs and anIID Resolver
which returns an IID Document in the DID-standard JSON-LD format.This module will streamline the process of enabling IID support in any module that manages on-chain assets.
Discussion welcome.
Beta Was this translation helpful? Give feedback.
All reactions