Conceptos
Roles del ecosistema
La wallet ISBE opera dentro del modelo de confianza SSI (Self-Sovereign Identity), en el que intervienen tres roles:
| Rol | Descripción | Ejemplo en ISBE |
|---|---|---|
| Issuer (emisor) | Entidad acreditada que emite credenciales verificables. | Una administración pública que emite un certificado de empadronamiento. |
| Holder (titular) | Persona que recibe, almacena y presenta sus credenciales. | El ciudadano que usa la wallet. |
| Verifier (verificador) | Entidad que solicita la presentación de una o más credenciales para autenticar o autorizar al holder. | Un servicio digital que solicita verificar la identidad del usuario. |
La wallet implementa exclusivamente el rol de holder.
Glosario
Términos de este paquete (nuevos)
| Término | Descripción |
|---|---|
| wallet | La ISBE Holder Wallet: aplicación móvil para gestionar credenciales. No se traduce. |
| cartera digital | Traducción aceptada de wallet para contextos no técnicos. En contextos técnicos usar siempre "wallet". |
| titular de credenciales | La persona que posee y gestiona sus propias credenciales. Sinónimo de holder. |
| presentación verificable | Contenedor firmado que agrupa una o más VCs para presentarlas a un verificador. |
| divulgación selectiva | Capacidad de compartir solo un subconjunto de atributos de una credencial. No disponible en la implementación actual: la wallet presenta siempre la credencial completa. |
| prueba de posesión | Prueba criptográfica que demuestra que el holder posee la clave privada asociada al DID. |
| solicitud de credencial | Oferta de emisión de credencial codificada en un QR o deep link. |
| verificador | Entidad que solicita la presentación de credenciales. Sinónimo de relying party. |
| consentimiento de presentación | Confirmación explícita del usuario antes de compartir una credencial. |
| flujo pre-autorizado | Flujo OID4VCI donde el emisor genera el código de autorización sin intervención del usuario. |
| código de transacción | tx_code en OID4VCI: PIN adicional que el emisor puede requerir para activar la oferta de credencial. |
Términos de paquetes anteriores (referencia rápida)
Los términos siguientes están definidos en los paquetes de Identidad y Credenciales. Se incluyen aquí como referencia rápida para la wallet.
| Término | Descripción breve |
|---|---|
| DID | Identificador descentralizado. El holder tiene un DID gestionado localmente en su dispositivo. |
| VC / Verifiable Credential | Credencial verificable firmada por un emisor. |
| VP / Verifiable Presentation | Presentación verificable que contiene una o más VCs. |
jwt_vc_json | Único formato de VC soportado actualmente en la wallet. |
did:key | Método DID que genera un identificador a partir de una clave pública. El holder usa did:key. |
did:jwk | Variante de DID que codifica la clave pública como JWK. |
Formato de credenciales
La wallet soporta exclusivamente el formato jwt_vc_json (JWT Verifiable Credentials según W3C VC Data Model). Una credencial en este formato es un JWT con los siguientes campos principales:
{
"iss": "did:isbe:uc:zpxbBfHYA5GN45rS1tSEBJg",
"sub": "did:key:z6MkszZtxCmA2Ce4vUV132PCuLQmwnaDD5mw2L23fGNnsiRn",
"vc": {
"@context": ["https://www.w3.org/2018/credentials/v1"],
"type": ["VerifiableCredential", "NombreDelTipoDeCredencial"],
"credentialSubject": {
"id": "did:key:z6MkszZtxCmA2Ce4vUV132PCuLQmwnaDD5mw2L23fGNnsiRn",
"nombre": "Ada Lovelace",
"fechaNacimiento": "1815-12-10"
}
},
"iat": 1700000000,
"exp": 1731622400
}
El campo iss corresponde al DID del emisor (un did:isbe). El campo sub corresponde al DID del holder (un did:key o did:jwk).
DID del holder
El DID del holder se genera localmente en el dispositivo al crear la cuenta. La wallet soporta:
did:keycon secp256k1 — curva por defecto.did:keycon Ed25519 — soporte alternativo.did:jwk— representación JWK del material de clave.
El DID del holder no se registra en la blockchain de ISBE. Es un identificador local que no requiere ninguna transacción on-chain. La blockchain de ISBE interviene únicamente para la resolución del DID del emisor y la validación de la cadena de acreditaciones.
Flujo de vida de una credencial
Oferta de credencial (QR / deep link)
│
▼
Wallet solicita la credencial al emisor (OID4VCI)
│
▼
Credencial almacenada cifrada en el dispositivo
│
▼
Verificador solicita presentación (OID4VP / DCQL)
│
▼
Usuario confirma el consentimiento de presentación
│
▼
Wallet envía VP firmada al verificador
Limitaciones actuales
Divulgación selectiva. La wallet presenta siempre la credencial completa (jwt_vc_json). Los formatos vc+sd-jwt (Selective Disclosure JWT) y ldp_vc (Linked Data Proofs) no están implementados.
Verificación de estado de revocación. La wallet valida la firma de la credencial y su fecha de expiración (validUntil/exp), pero no verifica el campo credentialStatus. El mecanismo de status lists para comprobar si una credencial ha sido revocada no está implementado en la versión actual.