W3C’s Decentralized Identifiers data model v1.0

AbstractDecentralized identifiers (DIDs) are a new type of identifier that enables verifiable, decentralized digital identity. A DID refers to any subject (e.g., a person, organization, thing, data model, abstract entity, etc.) as determined by the controller of the DID. In contrast to typical, federated identifiers, DIDs have been designed so that they may be decoupled from centralized registries, identity providers, and certificate authorities. Specifically, while other parties might be used to help enable the discovery of information related to a DID, the design enables the controller of a DID to prove control over it without requiring permission from any other party. DIDs are URIs that associate a DID subject with a DID document allowing trustable interactions associated with that subject. Each DID document can express cryptographic material, verification methods, or services, which provide a set of mechanisms enabling a DID controller to prove control of the DIDServices enable trusted interactions associated with the DID subject. A DID might provide the means to return the DID subject itself, if the DID subject is an information resource such as a data model.
Year2019 - 2022 (updated)
Link to the paperhttps://www.w3.org/TR/did-core/
Relevance scoreVery relevant
Quality score5
LabelsStandardization efforts

Introduction

In this note, we provide an overview of the World Wide Web Consortium (W3C)’s specification to express and use Decentralized Identifiers (DIDs).

This is of special relevance because many projects we have examined adhere to such specification.

Note: W3C’s specification is highly detailed, being over 100 pages. In these notes, we only describe some of the most relevant parts we found in it.

Decentralized Identifiers

Decentralized Identifiers (DIDs) are a new type of globally unique identifier. They are designed to enable entities to generate their own identifiers and to prove control over them using tools such as digital signatures.

They contrast with traditional identifiers (e.g. national Id, driver license number, URLs, …) in that these are issued by an external authority or party. As such, their validity and usefulness depend on the external party. For example, such a party may make the identifier invalid, or the party may disappear together with all associated identity verification mechanisms.

A DID is a string of characters consisting of the following components:

  1. The DID URI scheme identifier.
  1. The identifier for the DID method.
  1. The DID method-specific identifier.
Figure 1: How a DID looks like Source: https://www.w3.org/TR/did-core/

DID Architecture

Figure 2 depicts the overall architecture of a Decentralised Identifier Infrastructure.

Figure 2: Overview of DID architecture and the relationship of its basic components. Source: https://www.w3.org/TR/did-core/

DID documents and their authentication methods

DID documents can have a wide variety of properties. Probably the most relevant of them is the verificationMethod.

The data in this property can be used to verify, authenticate, or authorize interactions with the DID subject (or with associated parties).

Example 1: A verificationMethod may expose a cryptographic public key. Then the holder of the associated secret key can verify the DID by proving possession of such key.

Example 2: Another example may be a verification method that exposes 5 public keys, corresponding to 5 different IDs, from which any three are required to contribute to a cryptographic threshold signature.

Each verificationMethod consists of at least the following:

Usually, a public key will also be provided.

Source: https://www.w3.org/TR/did-core/

Verification methods can be included inside other fields. For example, the authentication field we saw in Figure 3 contains a verification method. This indicates that the verification method inside the authentication field can only be used so as to authenticate oneself as the DID in the id field.

Other examples: