Saltar al contenido principal

Sistema de Billeteras de ULedgerNET

Descripción General​

ULedgerNET implementa un sistema de billeteras jerárquico que soporta relaciones padre-hijo, control de acceso basado en permisos y gestión de billeteras en cascada. Esta arquitectura permite la gestión de identidades a nivel empresarial mientras mantiene la seguridad criptográfica.

Arquitectura de Billetera​

Estructura Jerárquica​

🔍 click to expand

Tipos de Billetera​

TipoDescripciónCampo Padre
Billetera PadreBilletera de nivel raíz sin padreVacío
Billetera HijaCreada por una billetera padreDirección del padre
Billetera SatéliteTérmino para cualquier billetera descendienteRastreado por el padre

Estructura de Billetera​

Propiedades Principales​

🔍 click to expand

Detalles de Propiedades​

PropiedadTipoDescripción
publicKeystringLa clave pública de la billetera (codificada en hex)
addressstringHash SHA256 de la clave pública en minúsculas
parentstringDirección de la billetera padre (vacío para billeteras raíz)
enabledbooleanSi la billetera puede realizar transacciones
satelliteWalletsstring[]Lista de direcciones de billeteras hijas
authGroupsmapGrupos de permisos para control de acceso
keyTypeenumAlgoritmo criptográfico (secp256k1, ED25519, BLS12-377, ML-DSA-87)

Sistema de Permisos​

Grupos de Autorización​

ULedgerNET utiliza un sistema de permisos flexible basado en grupos de autorización:

🔍 click to expand

Estructura de Permisos​

Cada grupo de autorización contiene permisos CRUD:

PermisoDescripción
CreateCrear nuevas entradas de este tipo
ReadLeer entradas existentes
UpdateModificar entradas existentes
DeleteEliminar entradas

Grupos Integrados​

GrupoPropósito
adminAcceso administrativo completo (CRUD completo en todos los recursos)
walletPermisos de gestión de billeteras (crear, actualizar billeteras hijas)

Lógica de Verificación de Administrador​

Una billetera se considera administradora si tiene el grupo admin con los cuatro permisos habilitados:

🔍 click to expand

Operaciones de Billetera​

Creación de Billeteras​

🔍 click to expand

Payload de Transacción: Crear Billetera​

CampoTipoRequeridoDescripción
publicKeystringSíClave pública para la nueva billetera
keyTypeenumSíTipo de clave criptográfica
authGroupsmapNoPermisos iniciales para la billetera

Requisitos de la Billetera Padre​

Para crear una billetera hija, el padre debe:

  1. Existir en el blockchain
  2. Estar habilitado (no deshabilitado)
  3. Tener permiso - ya sea:
    • Ser administrador (grupo admin con CRUD completo)
    • Tener el grupo wallet con permiso create

Modificación de Billetera​

Operación de Modificación de Billetera​

🔍 click to expand

Payload de Transacción: Modificar Billetera​

CampoTipoRequeridoDescripción
targetstringSíDirección de la billetera a modificar
enabledbooleanSíNuevo estado de habilitación
authGroupsmapNoPermisos actualizados

Reglas de Autorización​

EscenarioAutorización Requerida
Padre modificando hijoEl padre debe tener wallet.update o ser administrador
Billetera modificándose a sí mismaDebe tener wallet.update o ser administrador
No existe padreSolo la billetera misma puede modificarse

Deshabilitación en Cascada​

Deshabilitación Automática de Hijos​

Cuando una billetera padre es deshabilitada, todas las billeteras descendientes son deshabilitadas automáticamente:

🔍 click to expand

Algoritmo en Cascada​

🔍 click to expand

Esto garantiza que:

  • Ninguna billetera hija huérfana permanezca activa
  • La suspensión de cuentas empresariales se propague correctamente
  • La revocación de seguridad sea integral

Validación de Transacciones​

Verificaciones Previas a la Validación​

Antes del procesamiento, las transacciones se validan contra las transacciones pendientes:

🔍 click to expand

Requisitos de Validación​

VerificaciónDescripción
Billetera existenteLa billetera objetivo debe existir (para modificar)
Billetera HabilitadaLa billetera debe estar habilitada para realizar transacciones
Coincidencia de Tipo de ClaveEl tipo de clave de la transacción debe coincidir con la billetera
Firma VálidaVerificación de firma criptográfica
Autorización del PadreEl padre debe autorizar las operaciones del hijo

Identidad de la Billetera​

Derivación de Dirección​

Las direcciones de billetera se derivan de forma determinista a partir de las claves públicas:

🔍 click to expand

Esto garantiza:

  • Generación consistente de direcciones entre nodes
  • Imposibilidad de colisión de direcciones
  • La dirección puede verificar la propiedad de la clave pública

Tipos de Clave Soportados​

Tipo de ClaveAlgoritmoResistente a Quantum
secp256k1ECDSA❌
ED25519EdDSA❌
BLS12-377BLS Signatures❌
ML-DSA-87Dilithium✅

Referencia de API​

Obtener Billetera​

GET /blockchains/{blockchain_id}/wallets/{address}

Respuesta:

{
"publicKey": "04a1b2c3...",
"address": "abc123...",
"parent": "",
"enabled": true,
"satelliteWallets": ["def456...", "ghi789..."],
"authGroups": {
"admin": {"create": true, "read": true, "update": true, "delete": true}
},
"keyType": 0
}

Transacción de Creación de Billetera​

POST /blockchains/{blockchain_id}/transactions

Cuerpo de la Solicitud:

{
"from": "parent_address",
"to": "new_wallet_address",
"payloadType": "CREATE_WALLET",
"payload": "{\"publicKey\":\"04abc...\",\"keyType\":0,\"authGroups\":{}}",
"senderSignature": "signature_hex"
}

Transacción de Modificación de Billetera​

POST /blockchains/{blockchain_id}/transactions

Cuerpo de la Solicitud:

{
"from": "parent_or_self_address",
"payloadType": "ALTER_WALLET",
"payload": "{\"target\":\"wallet_address\",\"enabled\":false}",
"senderSignature": "signature_hex"
}

Casos de Uso Empresarial​

Jerarquía Organizacional​

🔍 click to expand

Revocación de Acceso​

Cuando un empleado se va:

  1. Deshabilitar la billetera del empleado
  2. Todas sus billeteras hijas son deshabilitadas automáticamente
  3. No se pueden iniciar más transacciones
  4. Las transacciones confirmadas existentes permanecen en la cadena

Gestión de Departamentos​

  • Los jefes de departamento pueden crear billeteras para sus equipos
  • Los líderes de equipo pueden crear billeteras para los miembros del equipo
  • Cada nivel tiene los permisos apropiados

Consideraciones de Seguridad​

Gestión de Claves​

PrácticaRecomendación
Billeteras raízUsar HSM o almacenamiento seguro de claves
Rotación de ClavesCrear una nueva billetera hija, deshabilitar la antigua
RespaldoRespaldo seguro de claves privadas
Registros de AccesoMonitorear operaciones de la billetera

Mejores Prácticas de Permisos​

PrácticaRecomendación
Mínimo PrivilegioOtorgar los permisos mínimos requeridos
Administrador con ModeraciónLimitar la asignación del grupo admin
Profundidad de JerarquíaMantener la jerarquía manejable
Auditorías RegularesRevisar los permisos de la billetera periódicamente

Comportamiento de Billeteras Deshabilitadas​

  • Las billeteras deshabilitadas no pueden enviar transacciones
  • Las billeteras deshabilitadas no pueden firmar operaciones de billeteras hijas
  • Las transacciones existentes permanecen válidas
  • La rehabilitación requiere autorización del padre

Fin de la Serie de Documentación Técnica