• ¿Qué son los Decentralised Identifiers (DID)?
  • Características especiales de los Decentralisez Identifiers (DID)
  • ¿Cómo se forma un Decentralized Identifier (DID)?
  • Introducción a la arquitectura de los Decentralised Identifiers (DID)

 

En esta tercera guía, explicaremos cómo funciona uno de los pilares de la Sovereign Identity, los Identificadores Descentralizados (DID). Nos limitaremos a repasar lo que hemos introducido en las guías anteriores. 

 

Hemos visto que existen tres modelos de gestión de identidades. 

El primero es el llamado “Silos Model”, que está completamente centralizado y fragmenta nuestra identidad digital entre las diferentes organizaciones con las que interactuamos. Este modelo utiliza estándares de seguridad como https, SSL y TSL. El segundo modelo se denomina “Federated or Third Party IDP”, que se basa en Identity Providers, como Facebook o Twitter, que garantizan la identidad del usuario. Este modelo utiliza a su vez estándares de seguridad como SAML, OAuth y OpenID Connect.

Hemos visto cómo los modelos mencionados pueden tener potenciales riesgos y debilidades en términos de seguridad, privacidad y control.

El tercer modelo se define como ” Self-Sovereign Identity” (SSI), que se basa en el libro mayor distribuido (es decir, blockchain) y otras técnicas más tradicionales para crear un sistema en el que un usuario tiene el “control” total de sus datos. En comparación con los dos enfoques anteriores, SSI se basa en la idea de peer-to-peer y non-account-based connections. La herramienta que permite estas conexiones es el monedero criptográfico. Este modelo también cuenta con normas para funcionar y ser seguro: la primera de ellas son los identificadores descentralizados (DID), un nuevo tipo de “identificador”. 

Para tener una idea general, los otros estándares utilizados son Verifiable Credentials, DKMS y DID Auth. Los otros tres estándares se tratarán en las próximas guías.

¿Qué son los Decentralised Identifiers?

Un DID es un elemento constitutivo de un nuevo nivel de identidad descentralizada que tiene cuatro propiedades: 

 

  • Persistencia
  • Resolubilidad
  • Encriptación
  • Descentralización

 

Pero vayamos por orden.

Según la definición del W3C, un DID es un nuevo tipo de identificador: no es más que una cadena alfanumérica que identifica un recurso. Por recurso entendemos cualquier objeto que pueda ser identificado, desde una página web hasta una persona o un planeta. Esta cadena se parece mucho a cualquier otra dirección web, salvo que empieza por “did:” y no por “https:” o “http”.

 

Si queremos ser más técnicos, un DID es un tipo de URI (Uniform Resource Identifier) . 

Un URI es una cadena de caracteres que identifica un recurso abstracto o concreto en un formato específico y único. Cada recurso tiene uno y sólo un URI, cada URI tiene uno y sólo un recurso. Dentro del conjunto de URIs se encuentran los URLs (Uniform Resource Locators) y los URNs (Uniform Resource Names). 

Una URL es una subclase de URI que se utiliza para localizar un recurso por su ubicación en la Web. Por ejemplo, la página que está leyendo ahora mismo es un recurso que es una página específica del sitio web selfsovereignidentity.it. Cada página web, archivo, imagen, vídeo, tiene su propia URL. No está “en la Web” si no tiene una URL y suele llamarse “representación”. Las direcciones que aparecen en la barra de direcciones del navegador son generalmente URLs. Lo importante es que estos identificadores pueden cambiar.

 

Mientras tanto, la segunda subclase de identificadores se define como URN y se utiliza para identificar un recurso por su “nombre”.  Un ejemplo de URN es el ISBN: este identifica de forma única un libro, pero no nos da ninguna información sobre la ubicación del libro o dónde se encuentra en la red. El factor principal es que este identificador no puede cambiar con el tiempo.

Una vez descritos el URI, el URL y el URN, podemos ser más precisos en la definición del DID

Si queremos ser más técnicos, un DID es un tipo de URI (Uniform Resource Identifier) .

Un DID es un URN que puede ser “buscado” (técnicamente definido como resuelto) para obtener un conjunto estandarizado de información sobre el recurso que es identificado por el DID. Por recurso, podemos pensar en una persona, una asociación/organismo colectivo o un objeto. Por lo tanto, la información relacionada con el DID es información relacionada con personas, asociaciones/organismos colectivos u objetos. Está claro, ¿no?

 

La particularidad de los Decentralised Identifiers

Sin embargo, esta definición sólo recoge dos de las cuatro propiedades de un DID, a saber, la persistencia y la resolubilidad. En cuanto a la tercera propiedad -la criptografía-, un DID está asociado a un par de claves criptográficas (clave pública y clave privada) y el titular de la clave privada puede demostrar ser el controlador del DID. Si ya has tenido alguna experiencia con bitcoins o carteras de criptomonedas, sabrás que la clave privada es el secreto que te permite gastar tus bitcoins, mientras que la clave pública es el código alfanumérico que muestras a terceros para recibir nuevos bitcoins.

Por último, estas claves privadas y públicas utilizan la cadena de blockchain como libro de contabilidad o fuente de verdad compartida para demostrar a terceros tu control, sin depender de libros de contabilidad centralizados. Este es el mismo proceso por el que se crean los monederos de bitcoin u otras criptodivisas, y es como funciona todo sin una contrapartida centralizada.

¿Cómo se forma un Decentralised Identifier?

A estas alturas, hemos entendido que un DID no es más que un código alfanumérico que representa un recurso genérico. Yo tendré un DID y tú tendrás un DID diferente al mío. Este código tiene un esquema muy concreto y se compone de tres partes, a saber, “Método”, “Método DID” y “Método-Identificador específico”.

 

  1. La primera parte se llama Esquema y no es más que el prefijo “did:”
  2. La segunda parte se define como Método DID. Esta segunda parte es muy importante porque identifica en qué ledger descentralizado o blockchain se resolvió este DID. Por ejemplo, si se resuelve en la blockchain de Bitcoin se expresará como “did:btcr”.
  3. La tercera parte se define como Identificador Específico del Método y es la extensión que caracteriza el DID para el recurso específico (mi DID, tu DID). Por ejemplo, mi DID específico para bitcoin podría ser el siguiente did:btcr:13n29cn30cn3ncr84dc.

 

Un DID completamente genérico se reporta como

 did:example:123456789abcdefghi

 

Cada DID se registra de forma autónoma, directamente por el propietario dentro de blockchains sin permiso y/o con permiso. No hay intermediarios, por lo que se denomina Self-Sovereign Identity. Cada usuario es completamente soberano de sí mismo y de su propia identidad.

 

La arquitectura del Decentralised Identifier Architecure

Así pues, hemos comprendido que un DID tiene una forma muy específica y que el proceso de creación es completamente autónomo y no requiere una contrapartida centralizada. Pero, en realidad, ¿cómo permite el concepto de Self Sovereign Identity?

Imaginemos el DID como el código de identificación de nuestro permiso de conducir. La gran diferencia es que este código no lo proporciona el DMV, sino que seremos nosotros quienes le digamos al DMV que el “ejemplo” DID pertenecerá a una persona concreta (yo mismo). Esto tiene que ver con el concepto de conexión y poder decidir cómo conectarse. El SSI se basa en la idea de que un individuo puede abrir varios canales de comunicación privada con terceros, como personas, entidades colectivas y objetos. Este es el mecanismo fundamental que hay que entender y hacer comprender. 

 

Por último, debemos precisar que existen diferentes tipos de DID, precisamente porque, como hemos visto anteriormente, éste es un identificador genérico.

Por ejemplo, hay un DID que se define como “DID Subject” y un DID que se define como “DID Controller”. Un ejemplo para explicar la diferencia podría ser el siguiente: cuando un padre comprueba un DID que identifica a sus propios hijos, el “DID Subject” es el hijo pero el “DID Contoller” (al menos hasta que el hijo haya alcanzado la mayoría de edad) es el padre. Sin embargo, cuando el niño alcance la mayoría de edad se convertirá tanto en “DID Subject” como en “DID Controller”. Además, esta información (es decir, quién controla o quién es el sujeto) se incluye en un documento particular que se denomina “DID Document”. Cada DID tiene su propio “DID Document” en el que hay una estructura de datos estandarizada que proporciona especificaciones y metadatos asociados al DID.  También existe el “DID Resolver”, que es un componente de software y/o hardware que toma un DID (y las opciones asociadas) como entrada y produce un “Documento DID” conforme (y los metadatos asociados) como salida. Este proceso se denomina “DID Resolution”. Por último, también existen las “DID URL”, que toman la sintaxis de los DID y asocian una URL en el “Method Specific Identifier” de la que se puede extraer información de la Web sobre el propio DID. 

También hay que tener en cuenta que un usuario genérico puede tener potencialmente varios DID, en función del número y la confidencialidad de los enlaces que desee realizar.

Concluimos esta guía recordando al lector que un DID es un identificador único y persistente que, a diferencia de un URI, utiliza la criptografía y la descentralización (a través de blockchain) para generarse a sí mismo y para que el proceso sea completamente autónomo y “soberano”. Por último, recordemos que un DID también puede identificar objetos, empresas o entidades colectivas. En la próxima guía, explicaremos el segundo pilar fundamental de la Self-Sovereign Identity, a saber, las Verifiable Credentials.