Saltar al contenido principal

Componentes

1. Agente Mobile

Repositorio: https://github.com/gcba/agente-mobile

El agente mobile posibilita la creación de una identidad digital auto-soberana, facilitando la generación de claves para recuperación, actualización, firma y transporte. Además, permite la creación, recepción y compartición de credenciales verificables. Ofrece la posibilidad de establecer contactos de confianza, incluyendo DIDs de organizaciones y gobiernos que sean públicos. Permite el acceso seguro y estándar a servicios de diversas organizaciones. La comunicación con otros agentes u organizaciones se realiza de manera descentralizada, encriptada y autenticada.

Tecnologías:

La aplicación se basa en la implementación de distintas tecnologías, incluyendo Node 14.19.3, React Native 0.69.3, Expo 5.3.0 y Typescript 2.0.4.

Funcionalidades:

Entre las funciones clave del agente mobile se encuentran:

  1. Generación de DID: Permite la generación de claves para recuperación, actualización, firma y transporte.
  2. Almacenamiento de credenciales verificables: Facilita el almacenamiento seguro de credenciales verificables.
  3. Almacenamiento de entidades conocidas: Posibilita gestionar contactos de confianza, incluyendo DIDs de organizaciones.
  4. Manejo del protocolo WACI-DIDComm: Integra el protocolo WACI-DIDComm, con el respaldo del WACI-Interpreter.
  5. Capacidad de presentación de credenciales: Permite presentar credenciales de manera eficiente y segura.
  6. Importación y Exportación de DIDs: Facilita la importación y exportación de DIDs para una mayor flexibilidad y interoperabilidad.

Este agente mobile está diseñado para ofrecer una experiencia integral en la gestión de identidades digitales, priorizando la seguridad, la descentralización y la interoperabilidad en su funcionamiento.

2. Message Manager

Repositorio: https://github.com/gcba/message-manager

Es un componente que actúa como orquestador de mensajes en el cual se gestiona el flujo de trabajo dentro del entorno de SSI. Está diseñado para trabajar dentro de un mismo entorno de red sin medidas de seguridad adicionales.

Fue desarrollado siguiendo los patrones de arquitectura hexagonal y Domain-Driven Design (DDD). El software se encuentra implementado en JavaScript, haciendo uso de Nest.js como framework de Node.js. Además, se incluyen pruebas unitarias escritas en JavaScript para garantizar su calidad y funcionalidad.

Como parte de la infraestructura esencial para su funcionamiento, el MessageManager utilizará un did-resolver para consultar las claves públicas de los DIDs con los que interactúe.

Utiliza HTTP como mecanismo de comunicación para el servicio de API.

Las responsabilidades del Message Manager son las siguientes:

  • Utilizando un scheduler y el DWN Client, se encarga de consultar al DWN en busca de mensajes nuevos.
  • Empleando el paquete del DWN Client, se encarga de responder a los mensajes recibidos.
  • Es responsable de la creación de DIDs (Identificadores Descentralizados).
  • Gestiona el flujo de trabajo relacionado con las credenciales.

3. API ZKSync

Repositorio: https://github.com/gcba/api-zkSync

ApiZksync es un componente diseñado para la creación y administración de Identificadores Descentralizados (DID). Destacándose como una implementación de SideTree, una de sus características principales radica en su capacidad para optimizar los costos de transacción al minimizar las interacciones directas con la cadena de bloques, al mismo tiempo que permite al usuario realizar modificaciones en su DID de manera eficiente.

Tecnologías:

Este componente se basa en distintas tecnologías, incluyendo:

Node.js - 18.17.1 Nest.js - 8.0.0 Typescript - 4.* Yarn - 1.22.19

4. API Proxy

Repositorio: https://github.com/gcba/api-proxy

El componente API Proxy, también conocido como reverse proxy, está diseñado para operar como un punto de entrada a múltiples DID Methods, con el fin de simplificar su gestión y resolución. Esto se debe a que cada implementación de DID tiene sus propias especificaciones y dinámicas.

Funcionalidades Principales:

  1. Punto de Entrada Unificado: El API Proxy sirve como un único punto de entrada para múltiples DID Methods, facilitando la gestión y resolución de diferentes tipos de identificadores descentralizados.

  2. Gestión Simplificada: Simplifica la gestión y resolución de DID Methods al proporcionar una interfaz unificada para interactuar con ellos.

  3. Integración con API Zksync: El API Proxy consume la API Zksync para la resolución de dinámicas y requisitos específicos presentados por esta red.

Tecnologías:

El API Proxy se ha desarrollado utilizando las siguientes tecnologías:

  • NodeJs
  • TypeScript

Integración con API Zksync:

El componente API Zksync se ha desarrollado con el objetivo de ser consumido por el API Proxy para su uso. Sus principales funcionalidades incluyen la resolución y creación de DIDs en la red Zksync.

El API Proxy y la API Zksync trabajan en conjunto para proporcionar una solución integral para la gestión y resolución de identificadores descentralizados en la red Zksync. Con esta integración, se simplifica el proceso de gestión de DIDs y se garantiza su correcta resolución dentro de la red.

5. DWN

Repositorio: https://github.com/gcba/dwn

El componente DWN (Decentralized Web Node) cumple la función de un componente de bandeja de entrada y, al mismo tiempo, ofrece servicios de almacenamiento de datos cifrados para agentes de identidad. Los datos que administra son replicados y sincronizados entre nodos.

Funcionalidades Principales:

  1. Bandeja de Entrada Descentralizada: DWN actúa como una bandeja de entrada descentralizada, proporcionando servicios de almacenamiento de datos cifrados para agentes de identidad.

  2. Replicación y Sincronización de Datos: Administra datos que son replicados y sincronizados entre nodos, asegurando la disponibilidad y consistencia de la información en la red.

  3. Implementación de la Especificación DWN: DWN se implementa según la especificación DWN, consistiendo en un nodo de red diseñado para la mensajería. Utiliza servicios de API REST como interfaz para interactuar con aplicaciones descentralizadas.

  4. Seguridad Basada en Estándares: Emplea JWS (JSON Web Signature) para autorizar el acceso a los mensajes y JWE (JSON Web Encryption) para asegurar que solo el receptor o el creador del mensaje pueda leer su contenido.

  5. Verificación de Claves Públicas: Se basa en redes de identificación descentralizada para verificar ambas claves públicas, garantizando la autenticidad de los mensajes.

  6. Seguridad a Nivel de Protocolo: Implementa protocolos TLS/SSL para garantizar la seguridad de la base de datos y utiliza HTTPS para el servicio de APIs, asegurando la confidencialidad e integridad de la información transmitida.

Tecnologías:

El componente DWN se desarrolla utilizando las siguientes tecnologías:

  • NodeJs
  • TypeScript