Decentralized Identifier


Decentralized Identifier (DID) is a component of the W3C Decentralized Identifiers draft standard and is a globally unique identifier expressed as a URI.

Decentralized Identifier is a globally Unique Identifier that does not require a Centralized system Registration Authority Enrollment because it is registered with Distributed Ledger Technology or other form of Decentralized system. The generic format of a Decentralized Identifier is defined in the specification.

Decentralized Identifier are Algorithmmic Identifier that could be stored on a variety of DataStores but a Distributed Ledger Technology is used most often.

A specific DID scheme is defined in a DID method specification.

Decentralized Identifier may relate generically refer a DID Document or to a specific DID Subject's DID

The Generic DID URI Scheme conformant with RFC 3986. Decentralized Identifier consists of a DID followed by an optional URI Path and/or URI Fragment Identifier. The term DID refers only to the identifier conforming to the did rule in the ABNF below; when used alone, it does not include a URI Path or URI Fragment Identifier. A DID that may optionally include a path and/or fragment is called a DID reference.

Following is the ABNF definition using the syntax in RFC 5234 (which defines ALPHA as UPPERCASE or Lowercase A-Z).

  • did-reference = did [ "/" did-path ] "#" did-fragment
  • did = "did:" method ":" specific-idstring (URI Scheme)
  • method = 1*methodchar
  • methodchar = %x61-7A / DIGIT
  • specific-idstring = idstring *( ":" idstring )
  • idstring = 1*idchar
  • idchar = ALPHA / DIGIT / "." / "-"

A simple example of a Decentralized Identifier (DID)#


Decentralized Identifier Specification #

Decentralized Identifier Specification has two purposes:

Persistent and Immutable#

Decentralized Identifier MUST be persistent and immutable, i.e., bound to an entity once and never changed (forever). Ideally a Decentralized Identifier would be a completely abstract Decentralized Identifier (like a UUID) that could be bound to multiple underlying distributed ledgers or networks over time, thus maintaining its persistence independent of any particular ledger or network. However registering the same identifier on multiple ledgers or networks introduces extremely hard entityship and Trust Anchor problems and also greatly increases implementation complexity for developers.

To avoid these issues, it is RECOMMENDED that DID method specification only produce DIDs and Decentralized Identifier methods bound to strong, stable ledgers or networks capable of making the highest level of commitment to persistence of the DID and DID method over time.

DID method specification#

DID method specification provides definition of how a specific Decentralized Identifier URI Scheme can be implemented on a specific Distributed Ledger Technology or network, including the precise method(s) by which DIDs and DID Documents can be read, written, and revoked.

DID Scheme#

DID Scheme is the formal syntax of a Decentralized Identifier. The generic DID scheme is defined in this specification. A DID method specification defines a specific DID scheme that works with a specific DID method.

Decentralized Identifier Resolution#

To be useful, Identifiers MUST be resolvable (e.g. have a means of discovering what the identifier means). The DID method specification determines the resolution of the Decentralized Identifiers are resolved to a DID Document. Resolution is the act of looking up the DID Document for a specific Decentralized Identifier using the methods given by the DID method specification. Taken as a whole, DID infrastructure functions as a global, decentralized key-value store where DIDs act as the keys and DID Documents are the values.

More Information#

There might be more information for this subject on one of the following: