Saltar al contenido principal

Arquitectura de QuarkID

La arquitectura de la identidad digital auto-soberana abarca la estructura y diseño global del sistema, definiendo la disposición y las interrelaciones de elementos clave como los Identificadores Descentralizados (DIDs), Credenciales Verificables (VC), DID Resolvers, billeteras digitales y aplicaciones verificadoras. QuarkID ha desarrollado su arquitectura en consonancia con principios fundamentales de descentralización, privacidad, seguridad y empoderamiento del usuario. Esta estructura guía la implementación de protocolos, asegurando que trabajen de manera cohesionada para alcanzar los objetivos mencionados en el ámbito de la identidad digital.

A partir de estos principios, se han desarrollado diversos componentes que colaboran de manera integrada para llevar a cabo los procesos de creación de identidades, emisión de credenciales, verificación de credenciales e intercambio de mensajería encriptada. Estos componentes incluyen: 1. Agente mobile, 2. Message Manager, 3. API ZKSync, 4. API Proxy y 5. DWN.

Generación de DID

La generación de Identificadores Descentralizados (DID) es un proceso central en nuestra arquitectura, donde varios componentes interactúan para garantizar la seguridad y la integridad de los datos.

El flujo comienza con la Wallet, que se conecta a un backend para obtener credenciales necesarias. Al abrir la Wallet y generar un DID, se crean claves e información asociada, las cuales se envían a una blockchain para su registro.

Para llevar a cabo este proceso, la Wallet se conecta con API Proxy, el primer componente del backend, que a su vez se conecta a Sidetree, un proyecto de código abierto diseñado para gestionar claves. Este API Proxy facilita la interacción con la blockchain.

Creación y gestión de claves

La gestión de claves es esencial en este proceso. El API Proxy se encarga de generar las claves, tanto públicas como privadas, las cuales se almacenan en la blockchain como un par nuevo. Para garantizar la seguridad, se utiliza una combinación única de claves públicas y privadas (clave criptográfica) para cada DID. Es importante destacar que estas claves se almacenan durante la generación del DID.

El API Proxy desempeña un papel crucial en la gestión integral de claves. Utiliza una vault para guardar las claves cifradas y otro componente para el almacenamiento propiamente dicho.

Emisión y verificación de credenciales verificables

La emisión o verificación de credenciales implica una gestión compleja de información que se procesa y traduce a través de una capa de software específica. Cada cliente tiene datos que deben incorporarse en sus credenciales

Para llevar esta información a la wallet, se utiliza el componente message-manager. El proceso implica tomar un conjunto de información y convertirla al formato Quark ID utilizando una capa de lógica, conocido como middleware-issuer, y el message manager.

La conexión puede ser a través de un WebSocket, lo que permite una comunicación directa y eficiente entre ambos componentes. O mediante DWN de manera asincrónica, actuando como un servicio de mensajería que administra la diferencia de tiempo entre el envío y la recepción de mensajes. Esta asincronía es fundamental para manejar eficazmente operaciones que involucran lapsos temporales extensos.

Flujo de emisión y verificación

El proceso de funcionamiento implica la comunicación entre el frontend del issuer y el message manager para preparar la invitación y generar la credencial deseada. El frontend solicita al message manager la preparación de la invitación, proporcionando la información necesaria y asignándole un WACI Invitation ID, un código identificador para que la wallet pueda reconocer y marcar estas credenciales de manera adecuada.

Una vez preparada la invitación, el frontend recibe un código QR que contiene toda la información disponible en las credenciales generadas. Este código QR se comparte y se proporciona al middleware issuer para su procesamiento adicional.

Gráfico de arquitectura

IMG