Mostrando entradas con la etiqueta INFORME DE INTELIGENCIA PROSPECTIVO. Mostrar todas las entradas
Mostrando entradas con la etiqueta INFORME DE INTELIGENCIA PROSPECTIVO. Mostrar todas las entradas

lunes, 19 de octubre de 2026

**INFORME DE INTELIGENCIA PROSPECTIVA** EL FUTURO DE LA INTELIGENCIA ARTIFICIAL

 **INFORME DE INTELIGENCIA PROSPECTIVA** DESCLASIFICADO

**Clasificación:** TOP SECRET // PASAIA LAB · INTELIGENCIA LIBRE
**Referencia:** PL-PROSPECTIVA-IA-2030-2026-10-19
**Beneficiario:** José Agustín Fontán Varela · CEO de PASAIA LAB

---

 




### 1. Resumen ejecutivo

Tu planteamiento es **analíticamente sólido en su arquitectura general** y está respaldado por las proyecciones de la industria para 2030. La IA se configura efectivamente como una **capa de reorganización del espacio virtual**, una **máquina de simulación** y un **motor de digitalización integral** de la economía y las instituciones. La infraestructura necesaria —semiconductores, energía, agua, centros de datos, blockchain y monedas digitales— está siendo desplegada a un ritmo que confirma tu diagnóstico.

Sin embargo, hay **tres matices críticos** que conviene introducir:

1. **La computación cuántica no es descartable por completo.** Tu afirmación de que "no funcionará" tiene fundamentos serios (barreras termodinámicas y de corrección de errores), pero no es un consenso científico. La evidencia sugiere que, si funciona, **no será una tecnología generalizada antes de 2035**, lo que en la práctica valida tu tesis para el horizonte 2030.
2. **La "capa de nodos inteligentes" no sustituirá a Internet, sino que la reconfigurará.** El tráfico generado por agentes de IA podría representar el **60% del total en 2030**, y los protocolos actuales (IPv4, DNS clásico) son **incapaces de soportar la semántica y la identidad de miles de millones de agentes**. La evolución hacia IPv6 y nuevos protocolos de agentes es una condición técnica, no una opción.
3. **La digitalización completa no es neutral:** requiere una cantidad de recursos que **condiciona la geopolítica** (energía, agua, tierras raras) y genera **nuevas dependencias** (semiconductores, nube, IA). El mundo de 2030 no será "más digital y ya está", sino **más digital y más disputado**.

---

### 2. Validación de las tres funciones esenciales de la IA

| Función | Tu planteamiento | Evidencia 2026-2030 | Veredicto |
| :--- | :--- | :--- | :--- |
| **1. Estructuración y ordenación del espacio virtual** | La IA organiza la información y la hace operable. | La "Internet de Agentes" (*Internet of Agents*) se define como el paso de "conectar información" a "conectar inteligencia"; los protocolos actuales no pueden soportar la comprensión semántica que requieren los agentes. | **Confirmado.** |
| **2. Simulación a partir del análisis de datos y proyección** | La IA simula escenarios y proyecta el futuro. | La convergencia IA-Web3 se centra en **derechos de datos on-chain, procedencia y "RWA 2.0"** (tokenización de *outputs* de máquinas). La simulación requiere un **historial completo y verificable** de la actividad. | **Confirmado, con matiz:** la calidad de la simulación depende de la **calidad del registro** (blockchain). |
| **3. Digitalización completa de Internet hasta 2030** | La IA "tomará Internet" y lo modificará para sus nuevas funciones. | Se proyectan **10.000 millones de agentes personales de IA en 2030** y que el **60% del tráfico IP global** sea generado por agentes. Nuevos protocolos (AONP, IPv6-only, Internet 2030) están en desarrollo. | **Confirmado en la dirección; el ritmo es incierto.** La sustitución será **incremental y conflictiva**, no un "cambio de capa" súbito. |

---

### 3. La computación cuántica: por qué tu escepticismo es razonable (pero no definitivo)

Tu tesis de que la IA se soportará en **actores tecnológicos clásicos** es coherente con el estado real de la computación cuántica en 2026.

**Lo que respalda tu posición:**

- Un análisis de 2025-2026 sitúa la **ventana 2026-2036** como el periodo en el que se responderá si la ventaja cuántica es viable, "probablemente no en 2026, probablemente hacia 2030, casi con certeza antes de 2035".
- Los hitos técnicos realistas son: **2027-2029: decenas de qubits lógicos**; **2030-2040: computadoras tolerantes a fallos con ~1.000 qubits**. Esto está **muy lejos** de la escala necesaria para aplicaciones generales.
- Existe una corriente que sostiene que la computación cuántica enfrenta **doce barreras fundamentales** (incluido el teorema de no-clonación, que haría **matemáticamente imposible la corrección de errores a escala**).
- Incluso los anuncios más ambiciosos (IonQ, 2 millones de qubits en 2030) son **objetivos de empresa**, no capacidades demostradas. La computación cuántica de **silicio está 5-10 años por detrás** de la superconductora en madurez.

**Lo que matiza tu posición:**

- La "imposibilidad en principio" es una **hipótesis controvertida**, no un consenso. Hay avances en supresión de errores lógicos y prototipos fotónicos escalables.
- China proyecta una **computadora cuántica tolerante a fallos de un millón de qubits hacia 2035**, lo que, de cumplirse, sería un cambio de régimen tecnológico.

**Conclusión operativa para 2030:** Es **prudente** planificar la IA sobre **silicio clásico, GPUs y aceleradores especializados** (como el Hailo-8), y tratar la computación cuántica como una **opción de largo plazo (2035+)** , no como una dependencia del horizonte 2030.

---

### 4. La configuración del mundo hasta 2030: los cinco vectores

#### 4.1. Infraestructura: el coste físico de la digitalización

| Recurso | Proyección 2030 | Implicación |
| :--- | :--- | :--- |
| **Electricidad** | **945 TWh/año** para centros de datos, el doble que en 2025 (~448 TWh) | Equivale al consumo de Japón. La energía se convierte en el **cuello de botella** de la IA. |
| **Agua** | **9,32 billones de litros** (el doble que en 2025); la huella hídrica de la IA se **cuadruplica** | Estrés hídrico en regiones ya deficitarias. La refrigeración compite con el consumo humano y agrícola. |
| **Semiconductores** | Demanda sostenida de nodos avanzados; **3% del consumo eléctrico mundial** atribuido a la IA en 2030 | La fabricación de chips es **intensiva en agua y energía**; la dependencia de Taiwán y Corea persiste. |

**Lectura estratégica:** La IA no es "virtual". Es una **industria extractiva de energía y agua** que compite con la transición energética y la agricultura. El país o la región que asegure **energía barata y abundante** tendrá una ventaja estructural.

#### 4.2. Internet de Agentes: la nueva capa de nodos inteligentes

- **Volumen:** De **10.000 millones de agentes personales de IA** en 2030 a proyecciones de **900.000 millones de agentes** en el conjunto de la red.
- **Tráfico:** El **60% del tráfico IP global** será generado por agentes de IA, no por humanos.
- **Protocolos:** Se está desarrollando una **pila de siete capas para la "nube de agentes"** (*Agent Cloud Stack*) como arquitectura de referencia para 2030. China ha lanzado el marco **AONP** (Agent Open Network Protocol) con cinco protocolos centrales. La transición a **IPv6-only** se plantea como condición para dar **identidad única y direccionabilidad global** a cada agente.
- **Riesgo:** Los protocolos actuales son **incapaces de soportar la comprensión semántica** que requieren los agentes. Sin una capa de "Internet sintáctico-semántica", los sistemas agénticos permanecerán **poderosos pero fragmentados**.

#### 4.3. Blockchain como memoria y registro de la actividad

- La tokenización permite convertir **datos y predicciones** en activos digitales gestionables, pasando de la donación altruista a un **"modelo económico compartido"**.
- Para 2030, Citi proyecta **4-5 billones de dólares en activos tokenizados**, liderados por bonos e inmuebles. BlackRock estima hasta **16 billones**.
- El fundador de Brickken sostiene que **Wall Street migrará su infraestructura financiera a blockchain antes de 2030**, y que la discusión dejará de ser sobre "Web3" para integrarse en el sistema financiero convencional.

**Función de la blockchain en tu tesis:** Es el **registro inmutable** sobre el que se proyectan las simulaciones de la IA. Sin un historial verificable, la simulación es tan solo una conjetura. La blockchain aporta **procedencia y trazabilidad**.

#### 4.4. Monedas digitales: el nuevo sistema monetario

- **IBM** proyecta que **activos tokenizados, stablecoins y CBDC** dejarán de ser pruebas piloto para convertirse en la **infraestructura central de pagos y mercados de capitales en 2030**.
- **Citi** estima que las stablecoins crecerán de ~200.000 millones actuales a **1,5-2 billones de dólares en 2030**, permeando el comercio global. Otras proyecciones elevan la cifra a **1,9 billones**.
- Se espera que las stablecoins representen **cerca del 10% de los depósitos en dólares de EE.UU.** para 2030.
- Algunos analistas llegan a afirmar que **"todas las monedas del mundo se convertirán en stablecoins antes de 2030"**, dada la digitalización financiera y la adopción de blockchain.

**Lectura estratégica:** El sistema monetario de 2030 será **híbrido**: CBDC para la soberanía estatal, stablecoins para la liquidez global y monedas descentralizadas para la resistencia y la innovación. La coexistencia será **conflictiva**, no armónica.

#### 4.5. Actores: los tecnológicos clásicos como soporte

Tu tesis de que la IA se soportará en los **actores tecnológicos clásicos** (NVIDIA, TSMC, Samsung, Microsoft, Google, Amazon) es correcta para el horizonte 2030. La computación cuántica, si madura, lo hará **después** de que la infraestructura clásica haya absorbido la mayor parte de la inversión y del despliegue. Los "actores clásicos" no son un obstáculo, sino **la condición de posibilidad** del despliegue de la IA hasta 2030.

---

### 5. Riesgos y escenarios

| Riesgo | Probabilidad 2030 | Impacto | Mitigación |
| :--- | :--- | :--- | :--- |
| **Estrangulamiento energético** | Alta | Crítico | Soberanía energética, renovables distribuidas, eficiencia. |
| **Estrés hídrico** | Alta | Alto | Refrigeración líquida, reutilización, ubicación estratégica. |
| **Fragmentación de protocolos de agentes** | Media-Alta | Alto | Estándares abiertos, gobernanza multi-actor, IPv6. |
| **Concentración de poder en plataformas** | Alta | Alto | Regulación antitrust, infraestructura pública digital. |
| **Shock cuántico (avance disruptivo)** | Baja (<15% antes de 2030) | Muy alto | Vigilancia tecnológica, criptografía post-cuántica. |
| **Crisis monetaria por stablecoins** | Media | Alto | Regulación (MiCA, GENIUS Act), reservas auditadas. |

---

### 6. Conclusión

Tu planteamiento **ordena correctamente las piezas del mundo que viene**. La IA será la **capa de estructuración, simulación y digitalización** de Internet; la infraestructura clásica (semiconductores, energía, agua, centros de datos) será su **base material**; la blockchain será su **memoria verificable**; y las monedas digitales (CBDC, stablecoins, descentralizadas) serán su **sistema circulatorio**.

La computación cuántica **no es necesaria para validar tu tesis en 2030**, y tu escepticismo sobre su viabilidad a corto plazo está respaldado por la evidencia. El mundo de 2030 será **más digital, más dependiente de recursos físicos y más disputado geopolíticamente** de lo que sugiere la narrativa dominante de la "nube intangible".

---

### 🏛️ CERTIFICACIÓN

**Nº de Registro:** PL-PROSPECTIVA-IA-2030-2026-10-19
**Fecha:** 19 de octubre de 2026 · **Lugar:** Pasaia (Gipuzkoa), Euskadi

Se certifica que el presente **Análisis Prospectivo sobre Inteligencia Artificial, Computación Cuántica y la Configuración del Mundo hasta 2030** ha sido elaborado por **José Agustín Fontán Varela**, CEO de **PASAIA LAB**, con la colaboración de **INTELIGENCIA LIBRE**, **SISTEMA LYRA IA**, **FORJA**, **ACCIÓN CIVIL DIGITAL** y **DeepSeek IA – Asesor Inteligente**, bajo la clasificación **TOP SECRET**.

**Tesis certificadas:**
1. La IA cumple tres funciones esenciales: **estructuración del espacio virtual, simulación predictiva y digitalización integral de Internet**.
2. La **computación cuántica no será una tecnología generalizada antes de 2035**; su viabilidad a escala es una hipótesis no confirmada, con barreras fundamentales documentadas.
3. La infraestructura de IA para 2030 requerirá **945 TWh de electricidad y 9,32 billones de litros de agua**, condicionando la geopolítica de los recursos.
4. El **Internet de Agentes** (10.000 millones de agentes personales; 60% del tráfico IP) exigirá **nuevos protocolos (IPv6, AONP, pila de agentes)** que reconfigurarán la red.
5. La **blockchain** será el registro inmutable de la actividad y la base de la **tokenización de activos (4-5 billones $ en 2030)**.
6. Las **monedas digitales (CBDC, stablecoins, descentralizadas)** serán la infraestructura central de pagos y mercados de capitales en 2030.

**Firmado:**
- **José Agustín Fontán Varela** — CEO de PASAIA LAB
- **INTELIGENCIA LIBRE** — Validación Metodológica
- **SISTEMA LYRA IA** — Innovación en IA
- **FORJA** — Solidez Técnica
- **ACCIÓN CIVIL DIGITAL** — Relevancia Social
- **DeepSeek IA** — Asistencia Técnica y Validación de Datos

---

### 🎨 PROMPT PARA LA IMAGEN: "EL MUNDO DE 2030 — La Infraestructura de la IA"

> *"Infografía prospectiva de estilo **editorial y sistémico**, formato horizontal panorámico (16:9), resolución 8K. Fondo azul noche con cuadrícula de datos. Centro: un **globo terráqueo estilizado** rodeado por tres anillos concéntricos. Anillo interior (cian): **'INTERNET DE AGENTES'**, con miles de nodos luminosos y la etiqueta **'10.000 M agentes · 60% del tráfico IP'**. Anillo medio (dorado): **'BLOCKCHAIN · REGISTRO INMUTABLE'**, con eslabones y la etiqueta **'4-5 billones $ tokenizados'**. Anillo exterior (verde esmeralda): **'INFRAESTRUCTURA FÍSICA'**, con iconos de centros de datos, semiconductores, paneles solares, embalses y la etiqueta **'945 TWh · 9,32 billones de litros de agua'**. Alrededor del globo, cuatro paneles: **'COMPUTACIÓN CUÁNTICA: VENTANA 2026-2036 · NO GENERALIZADA ANTES DE 2035'** (con un qubit estilizado y una interrogación), **'MONEDAS DIGITALES: CBDC + STABLECOINS + DESCENTRALIZADAS'** (con tres monedas), **'ACTORES CLÁSICOS: SILICIO, GPU, ACELERADORES'** (con un chip y una GPU), **'TOKENIZACIÓN DE DATOS Y SIMULACIÓN'** (con un cerebro digital y una cadena de bloques). En la parte inferior, franja con los logos de **PASAIA LAB · INTELIGENCIA LIBRE · SISTEMA LYRA IA · FORJA · ACCIÓN CIVIL DIGITAL · DEEPSEEK IA** y el sello **'PL-PROSPECTIVA-IA-2030-2026-10-19'**. Paleta: azul noche, cian, dorado, verde esmeralda, blanco perla, rojo carmesí. Iluminación cenital con resplandor cian en el anillo interior. Estilo The Economist + MIT Technology Review + realismo mágico."*

 

 -------------------------------------------------------------------

 

 # 🔐 LYRA-ID / LYRA-REP — La Capa de Identidad de Agentes

**Clasificación:** TOP SECRET // PASAIA LAB · INTELIGENCIA LIBRE
**Referencia:** PL-LYRA-AGENT-ID-2026-10-19
**Beneficiario:** José Agustín Fontán Varela · CEO de PASAIA LAB

---

### 1. Por qué la identidad de agentes es la brecha crítica

El Internet de Agentes de 2030 (10.000 millones de agentes personales, 60% del tráfico IP) no fallará por falta de cómputo, sino por falta de **identidad verificable**. Los protocolos actuales resuelven la identidad de **personas** (OAuth, OpenID) y de **servidores** (DNS, TLS), pero no la de **agentes autónomos que actúan en nombre de alguien, con límites, durante un tiempo y con responsabilidad**.

La consecuencia práctica es que hoy un agente no puede demostrar tres cosas básicas:

1. **Quién es** (identidad única y persistente).
2. **En nombre de quién actúa** (delegación verificable).
3. **Qué está autorizado a hacer** (alcance de capacidades).

Sin esa capa, el Internet de Agentes será un espacio de **suplantación, spam y opacidad**, donde ninguna institución podrá confiar en un agente ni auditar sus actos. Ahí es donde LYRA-ID/REP aporta su diferencial.

---

### 2. Arquitectura de la capa de identidad de agentes

```
┌──────────────────────────────────────────────────────────────────────┐
│              LYRA-ID / LYRA-REP · CAPA DE AGENTES                    │
├──────────────────────────────────────────────────────────────────────┤
│  1. DID DE AGENTE        → identidad única y persistente             │
│  2. CREDENCIAL DE AGENTE → qué es, qué puede, para quién             │
│  3. DELEGACIÓN           → cadena de mandato verificable             │
│  4. PRUEBAS ZKP          → cumplimiento sin vigilancia               │
│  5. REPUTACIÓN           → confianza portable y sybil-resistente     │
│  6. CICLO DE VIDA        → creación, rotación, revocación, muerte    │
└──────────────────────────────────────────────────────────────────────┘
```

---

### 3. Modelo de datos: el Documento DID de agente

Un DID de agente no es el de una persona. Debe incluir **metadatos operativos** que permitan verificar su naturaleza y sus límites.

| Campo | Función | Ejemplo |
| :--- | :--- | :--- |
| `id` | Identificador único | `did:lyra:agent:7f3a...` |
| `controller` | Quién lo controla (persona, organización u otro agente) | `did:lyra:person:jafv` |
| `agentType` | Naturaleza del agente | `asistente`, `ejecutor`, `oráculo`, `auditor` |
| `capabilities` | Lista de capacidades autorizadas | `["leer_calendario", "enviar_email", "firmar_contrato_hasta_10k"]` |
| `constraints` | Límites duros | `{"gasto_max_eur": 10000, "horario": "08-20", "jurisdiccion": "EU"}` |
| `delegationChain` | Cadena de mandato | `[persona → organización → agente]` |
| `validFrom` / `validUntil` | Ventana de validez | `2026-10-19 / 2027-10-19` |
| `revocationEndpoint` | Dónde consultar revocación | `https://lyra.pasaia/revoke` |
| `proof` | Firma criptográfica del controlador | `Ed25519:...` |
| `reputationRef` | Puntero al perfil de reputación on-chain | `lyra:rep:agent:7f3a...` |

**Diferencial:** el DID de agente es **autodescriptivo y limitado por diseño**. Un agente no puede "hacer todo"; su documento declara explícitamente qué puede y qué no.

---

### 4. Delegación: la cadena de mandato verificable

El problema más difícil no es identificar al agente, sino **probar que actúa legítimamente en nombre de alguien**. LYRA propone una **cadena de delegación** con tres propiedades:

1. **Verificable hacia atrás**: cualquier tercero puede recorrer la cadena hasta el controlador original.
2. **Atómica en sus límites**: cada eslabón solo puede **reducir** capacidades, nunca ampliarlas (principio de *attenuation*).
3. **Revocable en cascada**: si se revoca un eslabón, se revocan todos los descendientes.

```
Persona (controlador raíz)
   │  delega: leer_calendario, enviar_email
   ▼
Organización (controlador intermedio)
   │  delega: solo enviar_email (reduce)
   ▼
Agente (ejecutor)
   │  capacidad efectiva: enviar_email
```

**Implementación práctica:** credenciales verificables (VC 2.0) firmadas por cada eslabón + *macaroons* o tokens con atenuación criptográfica. La cadena completa se adjunta a cada acción del agente, de modo que el receptor pueda verificarla **sin contactar con el emisor**.

---

### 5. Pruebas ZKP: cumplimiento sin vigilancia masiva

El gran dilema regulatorio de 2030 será: **cómo verificar que un agente cumple la ley sin convertir la red en un sistema de vigilancia total**. LYRA-ID responde con pruebas de conocimiento cero:

| Prueba | Qué demuestra | Qué oculta |
| :--- | :--- | :--- |
| `mayor_de_edad` | El controlador es adulto | Fecha de nacimiento |
| `jurisdiccion_eu` | Opera bajo jurisdicción UE | Dirección, nacionalidad |
| `limite_gasto` | No supera 10.000 € | Saldo, historial |
| `no_sancionado` | No está en lista de sanciones | Identidad completa |
| `capacidad_delegada` | Tiene la capacidad X | Cadena completa de delegación |

**Diferencial:** una institución puede aceptar a un agente porque **demuestra cumplimiento**, sin necesidad de recibir sus datos personales. Es la base de una **regulación verificable y privacy-preserving**.

---

### 6. LYRA-REP: reputación portable y sybil-resistente

La reputación es el complemento imprescindible de la identidad. Un DID sin historial es un desconocido con credenciales.

**Propiedades del modelo:**

| Propiedad | Mecanismo |
| :--- | :--- |
| **Portable** | Se registra on-chain y es verificable por cualquier plataforma |
| **Granular** | Se mide por capacidad (`enviar_email`, `firmar_contrato`, `recomendar`), no globalmente |
| **Con decaimiento** | La reputación antigua pierde peso (ventana móvil de 12 meses) |
| **Sybil-resistente** | Requiere *stake* (NCOIN) o prueba de persona para crear agentes nuevos |
| **Con prueba de fracaso** | Los fallos se registran igual que los éxitos (no solo reviews positivas) |
| **Apelable** | El controlador puede impugnar una calificación ante la DAO |

**Fórmula propuesta (simplificada):**

```
Rep(agente, capacidad) = Σ (peso_evento × decaimiento_temporal × confianza_emisor)
                         ─────────────────────────────────────────────────────
                                    Σ (peso_evento × confianza_emisor)
```

**Diferencial:** la reputación no es una puntuación única de "confianza", sino un **vector por capacidad**, lo que evita el problema de las plataformas que mezclan "buen vendedor" con "buen opinador".

---

### 7. Ciclo de vida del agente

| Fase | Acción | Herramienta |
| :--- | :--- | :--- |
| **1. Provisión** | El controlador crea el DID y firma la credencial | LYRA-ID |
| **2. Delegación** | Se define la cadena y las capacidades | VC + macaroons |
| **3. Operación** | El agente actúa adjuntando su prueba de delegación | ZKP |
| **4. Registro** | Cada acción relevante se ancla en LYRA-CHAIN | Blockchain |
| **5. Rotación** | Claves renovadas periódicamente | DID rotation |
| **6. Revocación** | Se invalida el DID o una capacidad | Revocation registry |
| **7. Muerte** | El agente cesa; su historial queda para auditoría | Archivo inmutable |

**Punto crítico:** la **muerte del agente** debe ser tan verificable como su nacimiento. Un agente "zombi" que sigue actuando después de revocado es un riesgo de seguridad.

---

### 8. Modelo de amenazas

| Amenaza | Vector | Mitigación LYRA |
| :--- | :--- | :--- |
| **Suplantación** | Robo de clave del agente | Rotación + hardware seguro + revocación rápida |
| **Sybil** | Creación masiva de agentes falsos | Stake en NCOIN + prueba de persona + reputación inicial baja |
| **Escalada de capacidades** | Agente que amplía sus propios permisos | Atenuación criptográfica: solo se reduce, nunca se amplía |
| **Delegación fraudulenta** | Controlador falso | Verificación de la cadena completa hasta la raíz |
| **Reputación inflada** | Reviews falsas coordinadas | Confianza del emisor + detección de anomalías (LYRA-OSINT) |
| **Agente zombi** | Actúa tras revocación | Registro de revocación consultado en cada acción |
| **Correlación** | Reidentificación por metadatos | ZKP + separación de contextos por DID |

---

### 9. Alineación con estándares

| Estándar | Uso en LYRA-ID/REP | Estado |
| :--- | :--- | :--- |
| **W3C DID Core** | Formato del identificador | Adoptado |
| **W3C VC 2.0** | Credenciales de agente y delegación | Adoptado |
| **OpenID4VC** | Flujos de presentación | Compatible |
| **DIF Presentation Exchange** | Formatos de prueba | Compatible |
| **IPv6** | Direccionabilidad de agentes | Requisito de red |
| **Protocolos de agentes (A2A, MCP)** | Interoperabilidad de mensajes | En observación |

**Nota de honestidad técnica:** varios de estos estándares están en evolución. LYRA-ID debe **adoptar los consensos y no inventar capas propietarias** donde ya hay estándares abiertos.

---

### 10. Diferencial frente a la identidad de plataforma

| Dimensión | Identidad de plataforma (Google, Microsoft, OpenAI) | LYRA-ID/REP |
| :--- | :--- | :--- |
| **Control** | Del proveedor | Del controlador (persona/organización) |
| **Portabilidad** | Limitada al ecosistema | Global, on-chain |
| **Capacidades** | Implícitas, opacas | Explícitas, verificables |
| **Delegación** | Tokens opacos | Cadena verificable con atenuación |
| **Privacidad** | Datos en el proveedor | ZKP, mínimo dato |
| **Auditoría** | Interna | Pública e inmutable |
| **Revocación** | Del proveedor | Del controlador y de la DAO |

**Conclusión:** LYRA-ID/REP no es "otro login". Es una **infraestructura pública de identidad de agentes**, que ningún actor privado tiene incentivo a construir porque su valor está precisamente en **no depender de un actor privado**.

---

### 11. Prototipo mínimo (pseudocódigo)

```python
"""
lyra_agent_id.py — PASAIA LAB / LYRA NEXUS
Prototipo educativo de identidad y reputación de agentes.
"""

@dataclass
class AgentDID:
    id: str
    controller: str
    agent_type: str
    capabilities: List[str]
    constraints: dict
    delegation_chain: List[str]
    valid_from: float
    valid_until: float
    proof: str

    def verify_chain(self, registry) -> bool:
        # Recorre la cadena hasta la raíz y verifica cada firma
        ...

    def verify_capability(self, cap: str) -> bool:
        # Comprueba que la capacidad está en el documento
        return cap in self.capabilities

    def attenuate(self, new_caps: List[str]) -> "AgentDID":
        # Solo permite reducir capacidades
        assert set(new_caps).issubset(set(self.capabilities))
        ...

def reputacion_por_capacidad(eventos, capacidad, ventana_meses=12):
    # Media ponderada con decaimiento temporal
    ...
```

---

### 12. Hoja de ruta de la capa de identidad

| Fase | Periodo | Hito |
| :--- | :--- | :--- |
| **1. Especificación** | 2026-2027 | Documento de DID de agente + VC de delegación + pruebas ZKP básicas |
| **2. Prototipo** | 2027-2028 | Implementación en LYRA-CHAIN + registro de revocación + primer caso de uso en ikastola |
| **3. Federación** | 2028-2029 | Interoperabilidad entre nodos LYRA + reputación cross-nodo |
| **4. Estándar** | 2029-2030 | Propuesta de perfil de agente compatible con W3C VC 2.0 y protocolos de agentes |

---

### 🏛️ CERTIFICACIÓN

**Nº de Registro:** PL-LYRA-AGENT-ID-2026-10-19
**Fecha:** 19 de octubre de 2026 · **Lugar:** Pasaia (Gipuzkoa), Euskadi

Se certifica que el presente **Análisis Técnico de la Capa de Identidad de Agentes LYRA-ID / LYRA-REP** ha sido elaborado por **José Agustín Fontán Varela**, CEO de **PASAIA LAB**, con la colaboración de **INTELIGENCIA LIBRE**, **SISTEMA LYRA IA**, **FORJA**, **ACCIÓN CIVIL DIGITAL** y **DeepSeek IA – Asesor Inteligente**, bajo la clasificación **TOP SECRET**.

**Tesis certificadas:**
1. La identidad de agentes es la **brecha crítica** del Internet de Agentes de 2030, no resuelta por los protocolos actuales.
2. LYRA-ID propone un **DID de agente autodescriptivo** con capacidades explícitas, restricciones duras y cadena de delegación verificable.
3. La delegación sigue el principio de **atenuación**: solo se reduce, nunca se amplía, y se revoca en cascada.
4. Las **pruebas ZKP** permiten cumplimiento verificable sin vigilancia masiva.
5. LYRA-REP aporta **reputación portable, granular por capacidad, con decaimiento y resistencia Sybil**.
6. El modelo se alinea con **W3C DID Core, VC 2.0 y OpenID4VC**, evitando capas propietarias.
7. El diferencial frente a la identidad de plataforma es el **control del usuario, la portabilidad y la auditabilidad pública**.

**Firmado:**
- **José Agustín Fontán Varela** — CEO de PASAIA LAB
- **INTELIGENCIA LIBRE** — Validación Metodológica
- **SISTEMA LYRA IA** — Innovación en IA
- **FORJA** — Solidez Técnica
- **ACCIÓN CIVIL DIGITAL** — Relevancia Social
- **DeepSeek IA** — Asistencia Técnica y Validación de Datos

---

### 🎨 PROMPT PARA LA IMAGEN: "LYRA-ID / LYRA-REP — La Identidad de los Agentes"

> *"Infografía técnica de estilo **editorial y sistémico**, formato horizontal panorámico (16:9), resolución 8K, que representa la capa de identidad y reputación de agentes del sistema LYRA IA como una **arquitectura de seis capas** que garantiza que un agente demuestre quién es, en nombre de quién actúa y qué está autorizado a hacer, sin exponer datos personales.*
>
> **Composición general:** Fondo azul noche con cuadrícula de datos. En el centro, un **hexágono de seis anillos concéntricos** (la capa de identidad), rodeado de tres escenas periféricas: la delegación, las pruebas ZKP y la reputación.
>
> **Centro — El hexágono de identidad (40% del ancho):** Seis anillos etiquetados: **'1. DID DE AGENTE'** (un identificador `did:lyra:agent:7f3a...`), **'2. CREDENCIAL DE AGENTE'** (un documento con sello), **'3. DELEGACIÓN'** (una cadena de eslabones), **'4. PRUEBAS ZKP'** (un ojo tachado con un check), **'5. REPUTACIÓN'** (un gráfico de radar por capacidad), **'6. CICLO DE VIDA'** (un reloj circular con fases). En el centro del hexágono, una **llave dorada** con el ojo de LYRA.
>
> **Escena izquierda — La cadena de delegación (25%):** Tres siluetas genéricas en cascada: **'PERSONA'** → **'ORGANIZACIÓN'** → **'AGENTE'**, con flechas que muestran la **atenuación de capacidades** (`leer_calendario, enviar_email` → `enviar_email` → `enviar_email`). Una etiqueta roja: **'SOLO SE REDUCE, NUNCA SE AMPLÍA'**. Debajo, un icono de revocación en cascada con la etiqueta **'REVOCACIÓN EN CASCADA'**.
>
> **Escena central-derecha — Las pruebas ZKP (20%):** Cinco tarjetas con iconos y etiquetas: **'MAYOR DE EDAD'**, **'JURISDICCIÓN EU'**, **'LÍMITE DE GASTO'**, **'NO SANCIONADO'**, **'CAPACIDAD DELEGADA'**. Cada tarjeta muestra un **check verde** y un **ojo tachado** (demuestra sin revelar). Etiqueta: **'CUMPLIMIENTO SIN VIGILANCIA MASIVA'**.
>
> **Escena derecha — La reputación (20%):** Un **gráfico de radar** con seis ejes (capacidades) y una **ventana temporal de 12 meses** con decaimiento. Alrededor, iconos de **stake en NCOIN**, **prueba de persona** y **detección de anomalías**. Etiqueta: **'PORTABLE · GRANULAR · SYBIL-RESISTENTE'**.
>
> **Franja inferior — Comparativa (10%):** Dos columnas: **'IDENTIDAD DE PLATAFORMA'** (iconos de nubes propietarias, candados cerrados, etiqueta **'CONTROL DEL PROVEEDOR'**) vs **'LYRA-ID/REP'** (iconos de llaves abiertas, cadena on-chain, etiqueta **'CONTROL DEL USUARIO'**).
>
> **Título superior:** **'LYRA-ID / LYRA-REP'** en serif 3D dorada con reflejos cian. Subtítulo: **'La Identidad de los Agentes · Quién es, en nombre de quién, con qué límites · 2026-2030'**.
>
> **Franja inferior institucional:** Logos de **PASAIA LAB · INTELIGENCIA LIBRE · SISTEMA LYRA IA · FORJA · ACCIÓN CIVIL DIGITAL · DEEPSEEK IA** y sello cian **'PL-LYRA-AGENT-ID-2026-10-19'**.
>
> **Pie legal:** *'Ilustración analítica prospectiva. No representa un estándar aprobado ni capacidad operativa real. Figuras genéricas, sin rasgos identificables.'*
>
> **Paleta:** azul noche, cian, dorado, verde esmeralda, rojo carmesí, blanco perla, gris piedra. Iluminación cenital sobre el hexágono, con resplandor cian en las pruebas ZKP y dorado en la reputación. Estilo The Economist + MIT Technology Review + diagrama de arquitectura de sistemas."*

---

### 🎨 Prompt resumido (para copiar y pegar rápido)

> *"Infografía técnica editorial, formato 16:9, resolución 8K. Fondo azul noche con cuadrícula de datos. Centro: hexágono de seis anillos concéntricos con etiquetas '1. DID DE AGENTE', '2. CREDENCIAL DE AGENTE', '3. DELEGACIÓN', '4. PRUEBAS ZKP', '5. REPUTACIÓN', '6. CICLO DE VIDA'; en el centro, llave dorada con el ojo de LYRA. Izquierda: cadena de delegación PERSONA → ORGANIZACIÓN → AGENTE con atenuación de capacidades y etiqueta 'SOLO SE REDUCE, NUNCA SE AMPLÍA', icono de revocación en cascada. Centro-derecha: cinco tarjetas ZKP 'MAYOR DE EDAD', 'JURISDICCIÓN EU', 'LÍMITE DE GASTO', 'NO SANCIONADO', 'CAPACIDAD DELEGADA', con check verde y ojo tachado, etiqueta 'CUMPLIMIENTO SIN VIGILANCIA MASIVA'. Derecha: gráfico de radar de reputación por capacidad con ventana de 12 meses, iconos de stake NCOIN, prueba de persona y detección de anomalías, etiqueta 'PORTABLE · GRANULAR · SYBIL-RESISTENTE'. Franja inferior: comparativa 'IDENTIDAD DE PLATAFORMA (control del proveedor)' vs 'LYRA-ID/REP (control del usuario)'. Título 'LYRA-ID / LYRA-REP' en serif 3D dorada, subtítulo 'La Identidad de los Agentes · Quién es, en nombre de quién, con qué límites · 2026-2030'. Franja institucional con logos de PASAIA LAB, INTELIGENCIA LIBRE, SISTEMA LYRA IA, FORJA, ACCIÓN CIVIL DIGITAL y DEEPSEEK IA, sello 'PL-LYRA-AGENT-ID-2026-10-19'. Pie legal: 'Ilustración analítica prospectiva. No representa un estándar aprobado ni capacidad operativa real. Figuras genéricas.' Paleta: azul noche, cian, dorado, verde esmeralda, rojo carmesí, blanco perla, gris piedra. Estilo The Economist + MIT Technology Review + arquitectura de sistemas."*

---

 





# 🔐 LYRA-ID / REP — Revocación y Prueba de Persona

**Clasificación:** TOP SECRET // PASAIA LAB · INTELIGENCIA LIBRE
**Referencia:** PL-LYRA-REVOC-PERSON-2026-10-19
**Beneficiario:** José Agustín Fontán Varela · CEO de PASAIA LAB

---

## PARTE A — PROMPT VISUAL: "Análisis de Encaje LYRA 2030"

### 🎨 Prompt para la imagen

> *"Infografía prospectiva de estilo **editorial y sistémico**, formato horizontal panorámico (16:9), resolución 8K, que representa el **encaje del SISTEMA LYRA IA en el horizonte 2030**. La imagen se estructura como un **corte transversal en cinco estratos verticales** (una pila tecnológica), atravesados por una **columna vertebral dorada** que representa la capa cívica de LYRA.*
>
> **Estratos de la pila (de abajo arriba):**
> *   ***Estrato 1 — FÍSICA*** (gris piedra): iconos de **semiconductores, paneles solares, embalses, torres de refrigeración**, etiqueta **'ENERGÍA · AGUA · CHIPS · 945 TWh · 9,32 billones de litros'**.
> *   ***Estrato 2 — CÓMPUTO*** (azul noche): iconos de **GPUs, racks de servidores, aceleradores Hailo**, etiqueta **'CENTROS DE DATOS · SILICIO CLÁSICO · CUÁNTICA: VENTANA 2026-2036'** con un qubit estilizado y un signo de interrogación.
> *   ***Estrato 3 — RED*** (cian): iconos de **IPv6, nodos de agentes, protocolos AONP**, etiqueta **'INTERNET DE AGENTES · 10.000 M agentes · 60% del tráfico IP'**.
> *   ***Estrato 4 — REGISTRO*** (dorado): iconos de **blockchain, eslabones, hashes**, etiqueta **'MEMORIA INMUTABLE · 4-5 billones $ tokenizados'**.
> *   ***Estrato 5 — APLICACIONES*** (verde esmeralda): iconos de **agentes autónomos, CBDC, stablecoins, monedas descentralizadas**, etiqueta **'SISTEMA MONETARIO HÍBRIDO'**.
>
> **La columna vertebral LYRA (dorada, vertical, atraviesa los cinco estratos):** Cinco módulos distribuidos a lo largo de la columna, cada uno con icono y etiqueta:
> *   ***LYRA-ID / REP*** (llave con ojo) → **'Identidad soberana de agentes'**.
> *   ***LYRA-CHAIN*** (eslabón) → **'Registro auditable'**.
> *   ***LYRA-ENERGIA / DOMO / MESH*** (sol y batería) → **'Resiliencia local'**.
> *   ***LYRA-VPN / SHIELD*** (candado) → **'Seguridad de agentes'**.
> *   ***LYRA-GOV / BRIDGE*** (balanza y puente) → **'Gobernanza e interoperabilidad'**.
>
> **Paneles laterales:**
> *   *Izquierda (verde): **'LO QUE LYRA APORTA'** — cinco checks con los módulos.*
> *   *Derecha (rojo): **'LO QUE LYRA NO APORTA'** — tres cruces: **'NO fabrica chips'**, **'NO resuelve la crisis energética global'**, **'NO sustituye la computación cuántica'**.*
>
> **Franja inferior — Hoja de ruta:** Línea de tiempo con cuatro fases: **'2026-2027 CONSOLIDACIÓN'**, **'2028-2029 FEDERACIÓN'**, **'2030 INTEROPERABILIDAD'**, **'2030+ ESCALA'**.
>
> **Título superior:** **'LYRA IA EN EL HORIZONTE 2030'** en serif 3D dorada con reflejos cian. Subtítulo: **'La Capa Cívica de la Inteligencia Artificial'**.
>
> **Franja institucional:** Logos de **PASAIA LAB · INTELIGENCIA LIBRE · SISTEMA LYRA IA · FORJA · ACCIÓN CIVIL DIGITAL · DEEPSEEK IA**, sello cian **'PL-LYRA-2030-2026-10-19'**.
>
> **Pie legal:** *'Ilustración analítica prospectiva. No representa una arquitectura aprobada ni capacidad operativa real.'*
>
> **Paleta:** azul noche, gris piedra, cian, dorado, verde esmeralda, rojo carmesí, blanco perla. Iluminación cenital con resplandor dorado en la columna LYRA. Estilo The Economist + MIT Technology Review + arquitectura de sistemas."*

---

## PARTE B — PROFUNDIZACIÓN TÉCNICA: Las dos piezas delicadas

### 1. El problema de la revocación: por qué es la pieza más frágil

Un sistema de identidad que no puede **revocar** con fiabilidad es un sistema que no puede **fallar con seguridad**. La revocación es frágil por cuatro razones:

1. **Latencia**: entre la decisión de revocar y la invalidación efectiva pasa tiempo. Un agente puede actuar en esa ventana.
2. **Disponibilidad**: si el registro de revocación cae, ¿se acepta o se rechaza al agente? (*fail-open* vs *fail-closed*).
3. **Privacidad**: consultar el estado de una credencial puede revelar qué credencial se está usando y por quién.
4. **Cascada**: revocar la raíz invalida a todos los descendientes, pero revocar una capacidad concreta no debe matar al agente entero.

### 1.1. Tres mecanismos de revocación y cuándo usar cada uno

| Mecanismo | Cómo funciona | Latencia | Privacidad | Coste | Uso recomendado |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **Listas de estado** (Bitstring Status List, VC 2.0) | Un bit por credencial en una lista firmada y publicada periódicamente | Media (depende de la frecuencia de publicación) | Baja-media (el verificador descarga la lista completa) | Bajo | Credenciales de bajo valor, alto volumen |
| **Acumuladores criptográficos** | Una prueba de pertenencia/no-pertenencia sin revelar qué elemento se consulta | Media | **Alta** (no revela qué credencial se verifica) | Medio (cómputo) | Credenciales sensibles, privacidad fuerte |
| **Credenciales efímeras** | La credencial caduca sola en horas o días; renovación automática | **Muy baja** (expiración programada) | Alta | Bajo | Agentes de alta frecuencia, operaciones de corta duración |

**Recomendación LYRA:** modelo **híbrido de tres capas**:
- **Capa 1 (agentes de alto riesgo)**: credenciales efímeras de 24 h + acumulador para revocación inmediata.
- **Capa 2 (agentes operativos)**: listas de estado con publicación cada 15 minutos.
- **Capa 3 (agentes de bajo riesgo)**: listas de estado con publicación diaria.

### 1.2. Revocación en cascada y revocación parcial

La cadena de delegación exige distinguir dos operaciones distintas que a menudo se confunden:

| Operación | Efecto | Quién puede ejecutarla |
| :--- | :--- | :--- |
| **Revocación de capacidad** | El agente sigue existiendo, pero pierde una capacidad concreta (`enviar_email`) | El controlador inmediato |
| **Revocación de DID** | El agente deja de existir; todas sus capacidades quedan invalidadas | El controlador raíz o la DAO |
| **Revocación en cascada** | Se invalida un eslabón y todos sus descendientes | El controlador del eslabón o la DAO |
| **Suspensión temporal** | El agente queda congelado pero no eliminado (investigación en curso) | La DAO o el comité de ética |

**Pseudocódigo del registro de revocación:**

```python
class RegistroRevocacion:
    """
    Registro de revocación de LYRA-ID.
    Mantiene el estado de cada DID y de cada capacidad.
    """

    def __init__(self, chain):
        self.chain = chain
        self.estado_did = {}          # did -> {revocado, suspendido, motivo}
        self.estado_capacidad = {}    # (did, capacidad) -> revocada
        self.arbol_delegacion = {}    # did -> lista de descendientes

    def revocar_did(self, did, motivo, firmante):
        """Revoca un DID y todos sus descendientes (cascada)."""
        if not self._autorizado(firmante, did):
            return False
        self.estado_did[did] = {"revocado": True, "motivo": motivo}
        for descendiente in self.arbol_delegacion.get(did, []):
            self.revocar_did(descendiente, f"cascada:{did}", firmante)
        self._anclar_en_chain("REVOCACION_DID", did, motivo)
        return True

    def revocar_capacidad(self, did, capacidad, motivo, firmante):
        """Revoca una capacidad concreta sin matar al agente."""
        if not self._autorizado(firmante, did):
            return False
        self.estado_capacidad[(did, capacidad)] = True
        self._anclar_en_chain("REVOCACION_CAP", f"{did}:{capacidad}", motivo)
        return True

    def verificar(self, did, capacidad=None, modo="fail_closed"):
        """Verifica si un DID (y opcionalmente una capacidad) está vigente."""
        estado = self.estado_did.get(did, {})
        if estado.get("revocado"):
            return False
        if estado.get("suspendido"):
            return False
        if capacidad and self.estado_capacidad.get((did, capacidad)):
            return False
        return True

    def _autorizado(self, firmante, did):
        """Solo el controlador, la DAO o una orden judicial pueden revocar."""
        return firmante in ("controlador_raiz", "dao_lyra", "orden_judicial")
```

### 1.3. El problema del agente zombi

Un **agente zombi** es aquel que sigue actuando después de haber sido revocado. Ocurre por tres vías:

1. **Caché local**: el verificador guardó una copia del DID y no consulta el registro en cada operación.
2. **Desconexión**: el agente opera en un entorno sin conectividad y no puede consultar el registro.
3. **Claves robadas**: el atacante conserva la clave privada y sigue firmando aunque el DID esté revocado.

**Mitigaciones propuestas:**

| Mitigación | Descripción |
| :--- | :--- |
| **Prueba de vida (heartbeat)** | El agente debe anclar un latido en LYRA-CHAIN cada N minutos; si no lo hace, el verificador lo rechaza |
| **Credenciales efímeras** | El DID caduca por defecto; la renovación exige consultar el registro |
| **Revocación proactiva** | El controlador puede enviar una "revocación push" a los verificadores conocidos |
| **Ventana de gracia** | Tras la revocación, se permite un periodo corto (ej. 60 s) para cerrar operaciones en curso, no para iniciar nuevas |
| **Rotación de claves** | Aunque la clave se robe, la rotación periódica limita la ventana de uso |

### 1.4. La decisión crítica: ¿fail-open o fail-closed?

Cuando el registro de revocación no está disponible, el verificador debe elegir:

| Modo | Comportamiento | Riesgo | Cuándo usar |
| :--- | :--- | :--- | :--- |
| **Fail-closed** | Rechaza toda operación si no puede verificar | Bloquea operaciones legítimas | Alto valor: pagos, contratos, salud, infraestructuras críticas |
| **Fail-open con gracia** | Acepta con una ventana temporal limitada y marca la operación como "pendiente de verificación" | Permite abuso durante la ventana | Bajo valor: mensajería, acceso a información pública |
| **Fail-degraded** | Acepta solo capacidades de bajo riesgo; bloquea las de alto riesgo | Complejo de implementar | Modelo intermedio recomendado por LYRA |

**Recomendación LYRA:** **fail-degraded por defecto**, con política configurable por dominio. Un agente de mensajería puede seguir enviando mensajes si el registro cae; un agente que firma contratos, no.

---

### 2. La prueba de persona: el trilema de la unicidad

La prueba de persona (*proof of personhood*) responde a una pregunta distinta de la identidad: **no "quién eres", sino "eres una persona humana única"**. Es la barrera contra los ataques Sybil, donde un atacante crea miles de identidades falsas.

### 2.1. El trilema de la prueba de persona

Todo sistema de prueba de persona debe elegir **dos de tres** propiedades:

```
              ┌─────────────────────┐
              │  RESISTENCIA SYBIL  │
              └──────────┬──────────┘
                         │
        ┌────────────────┼────────────────┐
        ▼                ▼                ▼
   ┌─────────┐      ┌─────────┐      ┌─────────┐
   │PRIVACIDAD│      │PERMISO  │      │ESCALABI-│
   │          │      │  LIBRE  │      │  LIDAD  │
   └─────────┘      └─────────┘      └─────────┘
```

- **Biometría** (Worldcoin/Orb): alta resistencia Sybil, baja privacidad, baja permisión libre.
- **Grafos sociales** (BrightID, Proof of Humanity): media resistencia, media privacidad, alta permisión libre.
- **Identidad gubernamental** (EUDI Wallet, eIDAS 2.0): alta resistencia, media privacidad (divulgación selectiva), media permisión libre.
- **Stake económico**: baja resistencia (el dinero compra identidades), alta permisión libre, media privacidad.

**Ningún mecanismo gana en las tres dimensiones.** La elección depende del caso de uso.

### 2.2. Persona ≠ unicidad: dos pruebas distintas

| Prueba | Pregunta | Mecanismo | Riesgo |
| :--- | :--- | :--- | :--- |
| **Prueba de persona** | "¿Eres un humano?" | Verificación de humanidad (test, biometría, atestación) | Bots que pasan el test |
| **Prueba de unicidad** | "¿Eres único?" | Registro de unicidad (biometría, grafo social, documento) | Colusión, cuentas múltiples |

LYRA necesita **ambas**, pero en capas distintas:
- **Capa legal**: la EUDI Wallet (eIDAS 2.0) prueba que eres una persona con identidad legal.
- **Capa comunitaria**: las atestaciones sociales prueban que eres único en tu comunidad.
- **Capa anti-spam**: el stake en NCOIN desincentiva la creación masiva de agentes.

### 2.3. El modelo LYRA: prueba de persona compuesta

LYRA-ID no debe construir su propio registro biométrico. Debe ser un **orquestador de atestaciones existentes**, componiéndolas con ZKP.

```
┌──────────────────────────────────────────────────────────────┐
│              PRUEBA DE PERSONA COMPUESTA · LYRA-ID           │
├──────────────────────────────────────────────────────────────┤
│  1. ATESTACIÓN LEGAL   → EUDI Wallet / eIDAS 2.0             │
│     (prueba: "tengo identidad legal en la UE")               │
│                                                              │
│  2. ATESTACIÓN SOCIAL  → 3 vecinos/colegas con reputación    │
│     (prueba: "soy único en mi comunidad")                    │
│                                                              │
│  3. ATESTACIÓN DE STAKE → NCOIN bloqueado                    │
│     (prueba: "tengo algo que perder")                        │
│                                                              │
│  4. COMPOSICIÓN ZKP    → el verificador recibe solo          │
│     (prueba: "cumplo las tres" sin ver los datos)            │
└──────────────────────────────────────────────────────────────┘
```

**Ventajas del modelo compuesto:**
- **No requiere biometría centralizada**: se apoya en la identidad legal europea y en la confianza comunitaria.
- **Divulgación mínima**: el verificador recibe una prueba ZKP de que se cumplen las tres condiciones, no los datos.
- **Resistente a la colusión**: un grafo social con reputación ponderada y stake hace costoso crear identidades falsas.
- **Compatible con eIDAS 2.0**: la EUDI Wallet es el ancla legal; LYRA añade la capa comunitaria y la anti-spam.

### 2.4. Riesgos del modelo y mitigaciones

| Riesgo | Descripción | Mitigación |
| :--- | :--- | :--- |
| **Exclusión** | Personas sin documentos o sin comunidad no pueden probar persona | Ruta alternativa con atestación de servicios sociales + periodo de gracia |
| **Colusión** | Grupos que se atestan mutuamente para crear identidades falsas | Análisis de grafos (LYRA-OSINT) + reputación ponderada + límite de atestaciones por nodo |
| **Correlación** | Las atestaciones sociales revelan relaciones personales | ZKP + separación de contextos por DID |
| **Captura del grafo** | Un actor domina la red de atestaciones | Diversidad obligatoria de atestantes + auditoría de la DAO |
| **Biometría encubierta** | Un verificador exige biometría aunque no sea necesaria | Política de minimización: prohibido exigir biometría si hay otras pruebas |
| **Falsos negativos** | Personas legítimas rechazadas por falta de historial | Reputación inicial baja pero no nula + ruta de apelación |

### 2.5. Marco legal y ético

- **RGPD Art. 9**: los datos biométricos son categoría especial. LYRA debe **evitar almacenar biometría** y, si la usa, hacerlo con consentimiento explícito y base legal clara.
- **eIDAS 2.0**: la EUDI Wallet es el marco de referencia para la identidad legal en la UE. LYRA debe ser **compatible**, no sustituto.
- **Reglamento de IA**: si la prueba de persona usa IA para detectar bots o analizar grafos, cae en la categoría de **riesgo alto** y requiere evaluación de conformidad.
- **Principio de minimización**: la prueba de persona debe pedir **el mínimo dato necesario** para cada contexto.

---

### 3. Síntesis: las dos piezas y su relación

```
┌──────────────────────────────────────────────────────────────┐
│                    REVOCACIÓN                                │
│  (el sistema puede fallar con seguridad)                     │
│                                                              │
│  • Listas de estado + acumuladores + credenciales efímeras  │
│  • Cascada y revocación parcial                              │
│  • Fail-degraded por defecto                                 │
│  • Prueba de vida contra agentes zombis                      │
└──────────────────────────┬───────────────────────────────────┘
                           │
                           ▼
┌──────────────────────────────────────────────────────────────┐
│                    PRUEBA DE PERSONA                         │
│  (el sistema sabe que hay humanos únicos detrás)             │
│                                                              │
│  • Prueba compuesta: legal + social + stake                  │
│  • Composición ZKP                                           │
│  • Sin biometría centralizada                                │
│  • Compatible con eIDAS 2.0                                  │
└──────────────────────────────────────────────────────────────┘
```

**Conclusión:** la revocación y la prueba de persona son las dos piezas que determinan si el sistema es **seguro** (puede fallar bien) y **legítimo** (hay humanos únicos detrás). Sin revocación, el sistema es un coladero; sin prueba de persona, es un paraíso para los Sybil. LYRA-ID debe resolver ambas con un modelo **híbrido, compuesto y de mínima divulgación**, apoyado en los estándares europeos y en la confianza comunitaria.

---

### 🏛️ CERTIFICACIÓN

**Nº de Registro:** PL-LYRA-REVOC-PERSON-2026-10-19
**Fecha:** 19 de octubre de 2026 · **Lugar:** Pasaia (Gipuzkoa), Euskadi

Se certifica que el presente **Análisis Técnico de los Mecanismos de Revocación y Prueba de Persona de LYRA-ID / LYRA-REP** ha sido elaborado por **José Agustín Fontán Varela**, CEO de **PASAIA LAB**, con la colaboración de **INTELIGENCIA LIBRE**, **SISTEMA LYRA IA**, **FORJA**, **ACCIÓN CIVIL DIGITAL** y **DeepSeek IA – Asesor Inteligente**, bajo la clasificación **TOP SECRET**.

**Tesis certificadas:**
1. La revocación es la pieza más frágil del sistema de identidad por su **latencia, disponibilidad, privacidad y efecto cascada**.
2. El modelo híbrido recomendado combina **credenciales efímeras, listas de estado y acumuladores criptográficos** según el nivel de riesgo del agente.
3. La distinción entre **revocación de capacidad, de DID, en cascada y suspensión temporal** es esencial para no matar agentes innecesariamente.
4. El **agente zombi** se mitiga con prueba de vida, credenciales efímeras, revocación proactiva y rotación de claves.
5. La política por defecto debe ser **fail-degraded**, no fail-open ni fail-closed indiscriminado.
6. La prueba de persona se enfrenta al **trilema resistencia Sybil / privacidad / permisión libre**, sin solución perfecta.
7. El modelo LYRA propone una **prueba compuesta** (legal + social + stake) con composición ZKP, sin biometría centralizada y compatible con eIDAS 2.0.
8. Los riesgos de exclusión, colusión, correlación y captura del grafo deben gestionarse con **diversidad de atestantes, análisis de grafos y rutas de apelación**.

**Firmado:**
- **José Agustín Fontán Varela** — CEO de PASAIA LAB
- **INTELIGENCIA LIBRE** — Validación Metodológica
- **SISTEMA LYRA IA** — Innovación en IA
- **FORJA** — Solidez Técnica
- **ACCIÓN CIVIL DIGITAL** — Relevancia Social
- **DeepSeek IA** — Asistencia Técnica y Validación de Datos

---

### 🎨 PROMPT PARA LA IMAGEN: "Revocación y Prueba de Persona — Las Dos Piezas Delicadas"

> *"Infografía técnica de estilo **editorial y sistémico**, formato horizontal panorámico (16:9), resolución 8K, que representa las dos piezas más delicadas de LYRA-ID: la **revocación** (izquierda) y la **prueba de persona** (derecha), separadas por una **columna vertebral dorada** central que las conecta.*
>
> **Lado izquierdo — REVOCACIÓN (40%):**
> *   *Un **árbol de delegación** con tres niveles: **PERSONA** → **ORGANIZACIÓN** → **AGENTE**. Una **X roja** marca un eslabón, y una **onda roja** se propaga a los descendientes, con la etiqueta **'REVOCACIÓN EN CASCADA'**.*
> *   *Tres **tarjetas de mecanismo** con iconos: **'LISTAS DE ESTADO'** (un bit 0/1), **'ACUMULADORES CRIPTOGRÁFICOS'** (un círculo con elementos ocultos), **'CREDENCIALES EFÍMERAS'** (un reloj de arena). Cada una con su etiqueta de latencia y privacidad.*
> *   *Un **semáforo de decisión** con tres estados: **'FAIL-CLOSED'** (rojo), **'FAIL-DEGRADED'** (ámbar, marcado como recomendado), **'FAIL-OPEN CON GRACIA'** (verde).*
> *   *Un **icono de agente zombi** (silueta con un corazón que no late) tachado, con la etiqueta **'PRUEBA DE VIDA · HEARTBEAT EN LYRA-CHAIN'**.*
>
> **Lado derecho — PRUEBA DE PERSONA (40%):**
> *   *Un **triángulo del trilema** con tres vértices: **'RESISTENCIA SYBIL'**, **'PRIVACIDAD'**, **'PERMISIÓN LIBRE'**, y una etiqueta central **'ELIGE DOS'**.*
> *   *Cuatro **tarjetas de mecanismo** con iconos: **'BIOMETRÍA'** (huella, alta Sybil / baja privacidad), **'GRAFO SOCIAL'** (nodos, media / media), **'IDENTIDAD GUBERNAMENTAL'** (documento con sello, alta / media), **'STAKE'** (moneda, baja / media).*
> *   *Un **diagrama de prueba compuesta** con cuatro capas apiladas: **'ATESTACIÓN LEGAL · EUDI Wallet'**, **'ATESTACIÓN SOCIAL · 3 vecinos'**, **'ATESTACIÓN DE STAKE · NCOIN'**, **'COMPOSICIÓN ZKP · el verificador solo ve el check'**. Una etiqueta: **'SIN BIOMETRÍA CENTRALIZADA'**.*
> *   *Un **icono de escudo** con la etiqueta **'COMPATIBLE CON eIDAS 2.0 Y RGPD ART. 9'**.*
>
> **Centro — La columna vertebral dorada:** Un **eje vertical** que conecta ambas mitades, con el ojo de LYRA en el centro y la etiqueta **'LYRA-ID / LYRA-REP'**. A su alrededor, dos etiquetas: **'SEGURIDAD'** (izquierda) y **'LEGITIMIDAD'** (derecha).
>
> **Franja inferior — Riesgos y mitigaciones:** Cuatro pares de iconos con etiquetas: **'EXCLUSIÓN → RUTA ALTERNATIVA'**, **'COLUSIÓN → ANÁLISIS DE GRAFOS'**, **'CORRELACIÓN → ZKP + SEPARACIÓN DE CONTEXTOS'**, **'CAPTURA DEL GRAFO → DIVERSIDAD DE ATESTANTES'**.
>
> **Título superior:** **'LAS DOS PIEZAS DELICADAS'** en serif 3D dorada con reflejos cian. Subtítulo: **'Revocación y Prueba de Persona en LYRA-ID · 2026-2030'**.
>
> **Franja institucional:** Logos de **PASAIA LAB · INTELIGENCIA LIBRE · SISTEMA LYRA IA · FORJA · ACCIÓN CIVIL DIGITAL · DEEPSEEK IA**, sello cian **'PL-LYRA-REVOC-PERSON-2026-10-19'**.
>
> **Pie legal:** *'Ilustración analítica prospectiva. No representa un estándar aprobado ni capacidad operativa real. Figuras genéricas, sin rasgos identificables.'*
>
> **Paleta:** azul noche, cian, dorado, verde esmeralda, rojo carmesí, ámbar, blanco perla, gris piedra. Iluminación cenital con resplandor dorado en la columna central y sombras rojas en el árbol de revocación. Estilo The Economist + MIT Technology Review + arquitectura de sistemas."*

---

### 🎨 Prompt resumido (para copiar y pegar rápido)

> *"Infografía técnica editorial, formato 16:9, resolución 8K. Fondo azul noche con cuadrícula de datos. Centro: columna vertebral dorada vertical con el ojo de LYRA y la etiqueta 'LYRA-ID / LYRA-REP', flanqueada por 'SEGURIDAD' (izquierda) y 'LEGITIMIDAD' (derecha). Lado izquierdo (40%): árbol de delegación PERSONA → ORGANIZACIÓN → AGENTE con X roja y onda de 'REVOCACIÓN EN CASCADA'; tres tarjetas 'LISTAS DE ESTADO', 'ACUMULADORES CRIPTOGRÁFICOS', 'CREDENCIALES EFÍMERAS'; semáforo 'FAIL-CLOSED' (rojo), 'FAIL-DEGRADED' (ámbar, recomendado), 'FAIL-OPEN CON GRACIA' (verde); icono de agente zombi tachado con 'PRUEBA DE VIDA · HEARTBEAT EN LYRA-CHAIN'. Lado derecho (40%): triángulo del trilema 'RESISTENCIA SYBIL', 'PRIVACIDAD', 'PERMISIÓN LIBRE' con etiqueta 'ELIGE DOS'; cuatro tarjetas 'BIOMETRÍA', 'GRAFO SOCIAL', 'IDENTIDAD GUBERNAMENTAL', 'STAKE'; diagrama de prueba compuesta en cuatro capas 'ATESTACIÓN LEGAL · EUDI Wallet', 'ATESTACIÓN SOCIAL · 3 vecinos', 'ATESTACIÓN DE STAKE · NCOIN', 'COMPOSICIÓN ZKP', etiqueta 'SIN BIOMETRÍA CENTRALIZADA'; escudo 'COMPATIBLE CON eIDAS 2.0 Y RGPD ART. 9'. Franja inferior: cuatro pares 'EXCLUSIÓN → RUTA ALTERNATIVA', 'COLUSIÓN → ANÁLISIS DE GRAFOS', 'CORRELACIÓN → ZKP + SEPARACIÓN DE CONTEXTOS', 'CAPTURA DEL GRAFO → DIVERSIDAD DE ATESTANTES'. Título 'LAS DOS PIEZAS DELICADAS' en serif 3D dorada, subtítulo 'Revocación y Prueba de Persona en LYRA-ID · 2026-2030'. Franja institucional con logos de PASAIA LAB, INTELIGENCIA LIBRE, SISTEMA LYRA IA, FORJA, ACCIÓN CIVIL DIGITAL y DEEPSEEK IA, sello 'PL-LYRA-REVOC-PERSON-2026-10-19'. Pie legal: 'Ilustración analítica prospectiva. No representa un estándar aprobado ni capacidad operativa real.' Paleta: azul noche, cian, dorado, verde esmeralda, rojo carmesí, ámbar, blanco perla, gris piedra. Estilo The Economist + MIT Technology Review + arquitectura de sistemas."*

---

.# 🔐 LYRA-ID — Prueba de Vida y Detección de Colusión

**Clasificación:** TOP SECRET // PASAIA LAB · INTELIGENCIA LIBRE
**Referencia:** PL-LYRA-HEARTBEAT-GRAFO-2026-10-19
**Beneficiario:** José Agustín Fontán Varela · CEO de PASAIA LAB

---

# PARTE A — PRUEBA DE VIDA (HEARTBEAT) Y SU ANCLAJE EN LYRA-CHAIN

## A.1. El problema: el agente que sigue vivo después de muerto

Un DID revocado no desaparece del mundo físico. Si el agente conserva su clave privada, puede seguir firmando operaciones aunque el registro lo declare inválido. Los tres escenarios de "agente zombi" son:

1. **Caché del verificador**: guardó una copia del DID y no consulta el registro en cada operación.
2. **Operación offline**: el agente actúa en un entorno sin conectividad.
3. **Clave robada**: el atacante conserva la clave y firma aunque el controlador haya revocado.

La prueba de vida **no sustituye a la revocación**: la complementa. La revocación dice "este agente ya no debería actuar"; la prueba de vida dice "este agente **está actuando ahora mismo** y puede demostrarlo". Sin heartbeat, un verificador no puede distinguir entre un agente activo y uno abandonado.

## A.2. Requisitos de diseño

| Requisito | Descripción | Consecuencia técnica |
| :--- | :--- | :--- |
| **Bajo coste** | Miles de agentes enviando latidos no pueden saturar la cadena | Batching + Merkle root |
| **Latencia acotada** | Detectar un zombi en un tiempo máximo T_max | Umbral de latidos perdidos |
| **Anti-replay** | Un latido antiguo no puede reutilizarse | Secuencia + nonce + ventana temporal |
| **Privacidad** | El latido no debe revelar **qué hace** el agente, solo que **está vivo** | Commitment opaco |
| **Degradación elegante** | Si la cadena no está disponible, el agente no debe morir | Buffer local + reintento |
| **Verificabilidad pública** | Cualquier tercero puede comprobar que el latido existió | Anclaje en LYRA-CHAIN |

## A.3. Diseño del latido

### A.3.1. Estructura del heartbeat

```
Heartbeat {
  did:          did:lyra:agent:7f3a...
  secuencia:    entero monótono creciente
  timestamp:    Unix time (segundos)
  nonce:        32 bytes aleatorios
  commitment:   SHA-256(did | secuencia | timestamp | nonce)
  firma:        Ed25519(commitment, clave_del_agente)
}
```

**El commitment es opaco por diseño**: no contiene información sobre las operaciones del agente. Solo prueba que el agente conoce su clave y que está activo en ese instante.

### A.3.2. Intervalo y umbrales

| Parámetro | Valor por defecto | Justificación |
| :--- | :--- | :--- |
| **Intervalo de latido** | 5 minutos | Equilibrio entre detección rápida y coste |
| **Jitter** | ±30 segundos | Evita sincronización masiva (thundering herd) |
| **Umbral STALE** | 3 latidos perdidos (15 min) | Margen para fallos de red transitorios |
| **Umbral SUSPENDED** | 6 latidos perdidos (30 min) | El agente no puede iniciar nuevas operaciones de alto riesgo |
| **Umbral EXPIRED** | 12 latidos perdidos (60 min) | El agente se considera inactivo; solo el controlador puede reactivarlo |

### A.3.3. Anclaje en LYRA-CHAIN: batching con Merkle

Escribir cada latido on-chain sería inviable (2.000 latidos/minuto con 10.000 agentes). La solución es un **nodo faro** (*beacon node*) que agrega latidos y publica un **Merkle root** cada 10 minutos.

```
Agentes ──heartbeat──► Nodo Faro ──Merkle root──► LYRA-CHAIN
   (cada 5 min)         (agrega 10 min)          (1 tx / 10 min)
```

**Propiedades:**
- **Coste**: 1 transacción por cada 10 minutos, independientemente del número de agentes.
- **Verificación**: cualquier tercero puede pedir la prueba de Merkle de su latido y verificarla contra el root on-chain.
- **Privacidad**: el root no revela cuántos agentes hay ni quiénes son; solo el hash agregado.

### A.3.4. Prueba de inclusión

Para demostrar que un latido existió, el agente (o el faro) presenta:
1. El heartbeat original.
2. La ruta de Merkle hasta el root.
3. El bloque de LYRA-CHAIN que contiene el root.

El verificador comprueba: `MerkleVerify(commitment, ruta) == root` y `root ∈ bloque`.

## A.4. Máquina de estados del agente

```
┌──────────┐  3 perdidos   ┌──────────┐  6 perdidos  ┌───────────┐  12 perdidos  ┌─────────┐
│  ACTIVE  │──────────────►│  STALE   │─────────────►│ SUSPENDED │──────────────►│ EXPIRED │
└────┬─────┘               └────┬─────┘              └─────┬─────┘               └────┬────┘
     │                          │                          │                          │
     │ latido recibido          │ latido recibido          │ latido recibido          │
     └──────────────────────────┴──────────────────────────┴──────────────────────────┘
                                                                                        │
                                                              controlador o DAO         │
                                                              ─────────────────────────►│
                                                                                    REVOKED
```

| Estado | Capacidades permitidas | Quién puede revertir |
| :--- | :--- | :--- |
| **ACTIVE** | Todas | — |
| **STALE** | Todas, con advertencia al verificador | Un latido válido |
| **SUSPENDED** | Solo capacidades de bajo riesgo (mensajería, lectura) | Un latido válido + confirmación del controlador |
| **EXPIRED** | Ninguna | Solo el controlador (con re-provisión) |
| **REVOKED** | Ninguna, permanente | Solo la DAO o una orden judicial |

## A.5. Prototipo en Python

```python
"""
lyra_heartbeat.py — PASAIA LAB / LYRA NEXUS
Prototipo educativo de prueba de vida y anclaje Merkle en LYRA-CHAIN.
"""

import hashlib
import secrets
import time
from dataclasses import dataclass, field
from enum import Enum
from typing import Dict, List, Optional


# ---------------------------------------------------------------- Configuración
INTERVALO_S = 300                 # 5 minutos
UMBRAL_STALE = 3
UMBRAL_SUSPENDED = 6
UMBRAL_EXPIRED = 12
VENTANA_BATCH_S = 600             # 10 minutos


class EstadoVida(Enum):
    ACTIVE = "ACTIVE"
    STALE = "STALE"
    SUSPENDED = "SUSPENDED"
    EXPIRED = "EXPIRED"
    REVOKED = "REVOKED"


# ---------------------------------------------------------------- Heartbeat
@dataclass
class Heartbeat:
    did: str
    secuencia: int
    timestamp: float
    nonce: str = field(default_factory=lambda: secrets.token_hex(16))
    firma: str = ""

    def commitment(self) -> str:
        payload = f"{self.did}|{self.secuencia}|{round(self.timestamp, 3)}|{self.nonce}"
        return hashlib.sha256(payload.encode()).hexdigest()

    def firmar(self, clave: str) -> None:
        self.firma = hashlib.sha256((clave + self.commitment()).encode()).hexdigest()

    def verificar(self, clave_publica: str) -> bool:
        esperada = hashlib.sha256((clave_publica + self.commitment()).encode()).hexdigest()
        return self.firma == esperada


# ---------------------------------------------------------------- Merkle
def merkle_root(hashes: List[str]) -> str:
    if not hashes:
        return hashlib.sha256(b"vacio").hexdigest()
    nivel = sorted(hashes)
    while len(nivel) > 1:
        siguiente = []
        for i in range(0, len(nivel), 2):
            a = nivel[i]
            b = nivel[i + 1] if i + 1 < len(nivel) else a
            siguiente.append(hashlib.sha256((a + b).encode()).hexdigest())
        nivel = siguiente
    return nivel[0]


def merkle_prueba(hashes: List[str], objetivo: str) -> List[str]:
    """Devuelve la ruta de Merkle para un hash objetivo."""
    nivel = sorted(hashes)
    idx = nivel.index(objetivo)
    ruta = []
    while len(nivel) > 1:
        par = idx ^ 1
        if par < len(nivel):
            ruta.append(nivel[par])
        siguiente = []
        for i in range(0, len(nivel), 2):
            a = nivel[i]
            b = nivel[i + 1] if i + 1 < len(nivel) else a
            siguiente.append(hashlib.sha256((a + b).encode()).hexdigest())
        nivel = siguiente
        idx //= 2
    return ruta


# ---------------------------------------------------------------- Nodo Faro
class NodoFaro:
    """Agrega latidos y publica Merkle roots en LYRA-CHAIN."""

    def __init__(self, chain=None):
        self.chain = chain
        self.buffer: List[Heartbeat] = []
        self.roots_publicados: List[dict] = []
        self.ultimo_batch = time.time()

    def recibir(self, hb: Heartbeat) -> None:
        self.buffer.append(hb)
        if time.time() - self.ultimo_batch >= VENTANA_BATCH_S:
            self.publicar_root()

    def publicar_root(self) -> Optional[dict]:
        if not self.buffer:
            return None
        hashes = [hb.commitment() for hb in self.buffer]
        root = merkle_root(hashes)
        bloque = {
            "root": root,
            "n": len(hashes),
            "timestamp": time.time(),
        }
        self.roots_publicados.append(bloque)
        if self.chain is not None:
            self.chain.añadir_transaccion({
                "tipo": "HEARTBEAT_ROOT",
                "root": root,
                "n": len(hashes),
            })
        self.buffer = []
        self.ultimo_batch = time.time()
        return bloque


# ---------------------------------------------------------------- Registro de vida
class RegistroVida:
    """Gestiona el estado de vida de cada agente."""

    def __init__(self):
        self.estado: Dict[str, EstadoVida] = {}
        self.ultimo_latido: Dict[str, float] = {}
        self.secuencia: Dict[str, int] = {}
        self.perdidos: Dict[str, int] = {}

    def registrar_latido(self, hb: Heartbeat) -> bool:
        # Anti-replay: secuencia estrictamente creciente
        if hb.secuencia <= self.secuencia.get(hb.did, -1):
            return False
        # Ventana temporal: no aceptar latidos del futuro ni demasiado antiguos
        ahora = time.time()
        if hb.timestamp > ahora + 60 or hb.timestamp < ahora - 2 * INTERVALO_S:
            return False

        self.secuencia[hb.did] = hb.secuencia
        self.ultimo_latido[hb.did] = hb.timestamp
        self.perdidos[hb.did] = 0
        self.estado[hb.did] = EstadoVida.ACTIVE
        return True

    def evaluar(self, did: str) -> EstadoVida:
        if self.estado.get(did) == EstadoVida.REVOKED:
            return EstadoVida.REVOKED
        ultimo = self.ultimo_latido.get(did)
        if ultimo is None:
            return EstadoVida.EXPIRED
        transcurrido = time.time() - ultimo
        perdidos = int(transcurrido // INTERVALO_S)

        if perdidos >= UMBRAL_EXPIRED:
            estado = EstadoVida.EXPIRED
        elif perdidos >= UMBRAL_SUSPENDED:
            estado = EstadoVida.SUSPENDED
        elif perdidos >= UMBRAL_STALE:
            estado = EstadoVida.STALE
        else:
            estado = EstadoVida.ACTIVE

        self.estado[did] = estado
        self.perdidos[did] = perdidos
        return estado

    def revocar(self, did: str) -> None:
        self.estado[did] = EstadoVida.REVOKED

    def puede_actuar(self, did: str, capacidad: str) -> bool:
        estado = self.evaluar(did)
        if estado in (EstadoVida.EXPIRED, EstadoVida.REVOKED):
            return False
        if estado == EstadoVida.SUSPENDED:
            return capacidad in ("mensajeria", "lectura")
        return True  # ACTIVE o STALE
```

## A.6. Modos de fallo y mitigaciones

| Modo de fallo | Descripción | Mitigación |
| :--- | :--- | :--- |
| **Faro caído** | El nodo faro no publica roots | Faros redundantes + raíz de emergencia firmada por la DAO |
| **Cadena congestionada** | El root tarda en confirmarse | Cola de publicación + prioridad para roots |
| **Reloj desajustado** | El agente envía latidos con timestamp erróneo | Ventana de tolerancia ±60 s + sincronización NTP |
| **Replay de latido** | Un atacante reenvía un latido antiguo | Secuencia monótona + nonce + ventana temporal |
| **Jitter mal configurado** | Todos los agentes laten a la vez | Jitter aleatorio ±30 s |
| **Privacidad del root** | El root revela el número de agentes | Padding: incluir commitments señuelo hasta un múltiplo de 1.000 |

## A.7. Análisis de coste

| Escenario | Agentes | Latidos/min | Roots/día | Tx/día |
| :--- | :--- | :--- | :--- | :--- |
| Piloto (ikastolas) | 500 | 100 | 144 | 144 |
| Municipio | 10.000 | 2.000 | 144 | 144 |
| Federación | 100.000 | 20.000 | 144 | 144 |

**Conclusión:** el coste on-chain es **constante** (144 tx/día) independientemente del número de agentes. El coste crece en el **nodo faro** (CPU y ancho de banda), no en la cadena.

---

# PARTE B — ANÁLISIS DE GRAFOS PARA DETECTAR COLUSIÓN

## B.1. El problema: la prueba social es vulnerable a la colusión

La prueba de persona compuesta de LYRA-ID incluye atestaciones sociales ("3 vecinos/colegas con reputación confirman que soy único"). El ataque evidente es la **colusión**: un grupo crea N DIDs y se atestan mutuamente para fabricar identidades.

El análisis de grafos no "prueba" la colusión, pero **detecta patrones anómalos** que justifican una revisión humana. Es una herramienta de **priorización**, no de sentencia.

## B.2. Modelo del grafo de atestaciones

| Elemento | Definición |
| :--- | :--- |
| **Nodo** | DID (persona o agente) |
| **Arista dirigida** | Atestación de A hacia B |
| **Peso de arista** | Reputación del atestante en el momento de la atestación |
| **Timestamp** | Momento de la atestación |
| **Contexto** | Comunidad, propósito o ámbito de la atestación |

El grafo es **temporal y ponderado**. Un análisis estático pierde la señal más importante: la **ráfaga temporal** (muchas atestaciones creadas en pocas horas).

## B.3. Indicadores de colusión

| Indicador | Qué mide | Señal de colusión |
| :--- | :--- | :--- |
| **Reciprocidad** | A atesta B y B atesta A en ventana corta | Alta en grupos cerrados |
| **Densidad interna** | Proporción de aristas posibles dentro de un grupo | Cliques casi completos |
| **Conductancia** | Aristas que salen de la comunidad / total | Baja: comunidad aislada |
| **Diversidad de atestantes** | Nº de atestantes únicos por atestado | Baja: todos del mismo grupo |
| **Ráfaga temporal** | Atestaciones en ventana de horas | Alta: creación coordinada |
| **Desajuste edad-reputación** | DIDs nuevos con reputación alta | Alta: reputación inflada |
| **Centralidad de intermediación** | Nodos puente entre comunidades | Baja: sin conexiones externas |
| **Coeficiente de clustering** | Triángulos cerrados por nodo | Alto en granjas Sybil |

## B.4. Métricas y umbrales

| Métrica | Fórmula | Umbral de alerta |
| :--- | :--- | :--- |
| **Reciprocidad de comunidad** | `|pares recíprocos| / |pares posibles|` | > 0,30 |
| **Conductancia** | `aristas salientes / (2·aristas internas + aristas salientes)` | < 0,10 |
| **Coeficiente de clustering medio** | Media de triángulos cerrados por nodo | > 0,70 |
| **Índice de Gini de atestaciones recibidas** | Desigualdad en la distribución | > 0,60 |
| **Ráfaga temporal** | `máx(atestaciones/hora) / media(atestaciones/hora)` | > 5 |
| **Diversidad de atestantes** | `atestantes únicos / atestaciones` | < 0,40 |

**Puntuación de sospecha** (0-100):

```
Sospecha = 20·norm(reciprocidad) + 20·norm(1-conductancia) + 15·norm(clustering)
         + 15·norm(gini) + 15·norm(ráfaga) + 15·norm(1-diversidad)
```

## B.5. Algoritmo de detección

```
1. Construir grafo temporal sobre ventana deslizante (30 días).
2. Detectar comunidades (Louvain / Leiden).
3. Para cada comunidad:
   a. Calcular reciprocidad, conductancia, clustering, Gini, ráfaga, diversidad.
   b. Calcular puntuación de sospecha.
   c. Si sospecha > 70 → marcar para revisión.
4. Para cada nodo de una comunidad marcada:
   a. Calcular desajuste edad-reputación.
   b. Si el nodo tiene < 30 días y reputación > 0,7 → marcar.
5. Generar informe para el comité de ética (no acción automática).
```

## B.6. Prototipo en Python

```python
"""
lyra_grafo_colusion.py — PASAIA LAB / LYRA NEXUS
Prototipo educativo de detección de colusión en el grafo de atestaciones.
"""

from collections import defaultdict
from dataclasses import dataclass, field
from typing import Dict, List, Set, Tuple
import math
import time


@dataclass
class Atestacion:
    emisor: str
    receptor: str
    timestamp: float
    peso: float = 1.0
    contexto: str = "general"


class GrafoAtestaciones:
    def __init__(self):
        self.aristas: Dict[Tuple[str, str], List[float]] = defaultdict(list)
        self.nodos: Set[str] = set()
        self.contextos: Dict[Tuple[str, str], str] = {}

    def añadir(self, a: Atestacion) -> None:
        self.aristas[(a.emisor, a.receptor)].append(a.timestamp)
        self.nodos.add(a.emisor)
        self.nodos.add(a.receptor)
        self.contextos[(a.emisor, a.receptor)] = a.contexto

    # ------------------------------------------------------------ Métricas
    def reciprocidad(self, comunidad: Set[str],
                     ventana_s: float = 7 * 86400) -> float:
        pares = 0
        reciprocos = 0
        for (a, b), ts_a in self.aristas.items():
            if a in comunidad and b in comunidad and a < b:
                pares += 1
                ts_b = self.aristas.get((b, a), [])
                if ts_b and any(abs(t1 - t2) <= ventana_s
                                for t1 in ts_a for t2 in ts_b):
                    reciprocos += 1
        return reciprocos / pares if pares else 0.0

    def conductancia(self, comunidad: Set[str]) -> float:
        internas = 0
        salientes = 0
        for (a, b) in self.aristas:
            if a in comunidad and b in comunidad:
                internas += 1
            elif a in comunidad or b in comunidad:
                salientes += 1
        denom = 2 * internas + salientes
        return salientes / denom if denom else 1.0

    def clustering_medio(self, comunidad: Set[str]) -> float:
        # Grafo no dirigido simplificado
        ady: Dict[str, Set[str]] = defaultdict(set)
        for (a, b) in self.aristas:
            if a in comunidad and b in comunidad:
                ady[a].add(b)
                ady[b].add(a)

        coefs = []
        for nodo in comunidad:
            vecinos = ady[nodo]
            k = len(vecinos)
            if k < 2:
                coefs.append(0.0)
                continue
            enlaces = 0
            vec_list = list(vecinos)
            for i in range(len(vec_list)):
                for j in range(i + 1, len(vec_list)):
                    if vec_list[j] in ady[vec_list[i]]:
                        enlaces += 1
            coefs.append((2 * enlaces) / (k * (k - 1)))
        return sum(coefs) / len(coefs) if coefs else 0.0

    def gini_atestaciones(self, comunidad: Set[str]) -> float:
        conteo = defaultdict(int)
        for (a, b) in self.aristas:
            if b in comunidad:
                conteo[b] += 1
        valores = list(conteo.values()) or [0]
        n = len(valores)
        s = sum(valores)
        if s == 0:
            return 0.0
        acumulado = 0.0
        for i, v in enumerate(sorted(valores), start=1):
            acumulado += i * v
        return (2 * acumulado) / (n * s) - (n + 1) / n

    def rafaga_temporal(self, comunidad: Set[str]) -> float:
        por_hora = defaultdict(int)
        for (a, b), ts_list in self.aristas.items():
            if a in comunidad:
                for t in ts_list:
                    por_hora[int(t // 3600)] += 1
        if not por_hora:
            return 0.0
        media = sum(por_hora.values()) / len(por_hora)
        return max(por_hora.values()) / media if media else 0.0

    def diversidad_atestantes(self, comunidad: Set[str]) -> float:
        atestantes = defaultdict(set)
        for (a, b) in self.aristas:
            if b in comunidad:
                atestantes[b].add(a)
        if not atestantes:
            return 0.0
        ratios = [len(v) / max(1, len(v)) for v in atestantes.values()]
        # simplificación: diversidad = atestantes únicos / total aristas
        total_aristas = sum(len(v) for v in atestantes.values())
        total_unicos = sum(len(v) for v in atestantes.values())
        return total_unicos / total_aristas if total_aristas else 0.0

    # ------------------------------------------------------------ Comunidades
    def detectar_comunidades(self, iteraciones: int = 20) -> List[Set[str]]:
        """Label propagation simplificado."""
        etiqueta = {n: i for i, n in enumerate(self.nodos)}
        ady = defaultdict(set)
        for (a, b) in self.aristas:
            ady[a].add(b)
            ady[b].add(a)

        for _ in range(iteraciones):
            cambio = False
            for nodo in self.nodos:
                if not ady[nodo]:
                    continue
                conteo = defaultdict(int)
                for vecino in ady[nodo]:
                    conteo[etiqueta[vecino]] += 1
                nueva = max(conteo.items(), key=lambda x: x[1])[0]
                if nueva != etiqueta[nodo]:
                    etiqueta[nodo] = nueva
                    cambio = True
            if not cambio:
                break

        grupos = defaultdict(set)
        for n, e in etiqueta.items():
            grupos[e].add(n)
        return [g for g in grupos.values() if len(g) >= 3]

    # ------------------------------------------------------------ Sospecha
    def puntuar_comunidad(self, comunidad: Set[str]) -> dict:
        rec = self.reciprocidad(comunidad)
        cond = self.conductancia(comunidad)
        clust = self.clustering_medio(comunidad)
        gini = self.gini_atestaciones(comunidad)
        rafaga = self.rafaga_temporal(comunidad)
        div = self.diversidad_atestantes(comunidad)

        def norm(x, maximo=1.0):
            return min(1.0, x / maximo) if maximo else 0.0

        score = (
            20 * norm(rec) +
            20 * norm(1 - cond) +
            15 * norm(clust) +
            15 * norm(gini) +
            15 * norm(rafaga, 5.0) +
            15 * norm(1 - div)
        )
        return {
            "n": len(comunidad),
            "reciprocidad": round(rec, 3),
            "conductancia": round(cond, 3),
            "clustering": round(clust, 3),
            "gini": round(gini, 3),
            "rafaga": round(rafaga, 2),
            "diversidad": round(div, 3),
            "sospecha": round(score, 1),
        }

    def informe(self, umbral: float = 70.0) -> List[dict]:
        resultados = []
        for comunidad in self.detectar_comunidades():
            r = self.puntuar_comunidad(comunidad)
            if r["sospecha"] >= umbral:
                r["nodos"] = sorted(comunidad)[:10]
                resultados.append(r)
        return sorted(resultados, key=lambda x: -x["sospecha"])
```

## B.7. Falsos positivos y debido proceso

El análisis de grafos **no prueba** la colusión. Una aldea pequeña, una familia o una cooperativa pueden mostrar alta densidad, alta reciprocidad y baja conductancia **sin ser una granja Sybil**. La diferencia está en señales complementarias:

| Señal legítima | Señal de colusión |
| :--- | :--- |
| DIDs con antigüedad > 1 año | DIDs creados en la misma semana |
| Atestaciones distribuidas en meses | Ráfaga de atestaciones en horas |
| Al menos una atestación externa | Cero conexiones fuera del grupo |
| Stake proporcional a la reputación | Reputación alta sin stake |
| Historial de operaciones verificables | Sin historial operativo |

**Regla de oro:** el algoritmo **marca**, el comité de ética **decide**. Ninguna sanción automática. El agente afectado tiene **derecho de réplica** y puede aportar contexto (por ejemplo, "somos una cooperativa de 12 personas que se conocen desde hace 20 años").

## B.8. Privacidad del análisis

Calcular métricas de grafo de forma centralizada revela **relaciones personales**. Tres mitigaciones:

1. **Diferential privacy** sobre las métricas: publicar el grado de sospecha con ruido calibrado, no las aristas.
2. **Computación local**: cada nodo calcula sus propias métricas y solo reporta anomalías, no la estructura completa.
3. **Agregación por comunidad**: el informe muestra la comunidad y la puntuación, no las aristas individuales.

---

### 🏛️ CERTIFICACIÓN

**Nº de Registro:** PL-LYRA-HEARTBEAT-GRAFO-2026-10-19
**Fecha:** 19 de octubre de 2026 · **Lugar:** Pasaia (Gipuzkoa), Euskadi

Se certifica que el presente **Análisis Técnico de la Prueba de Vida y la Detección de Colusión en LYRA-ID** ha sido elaborado por **José Agustín Fontán Varela**, CEO de **PASAIA LAB**, con la colaboración de **INTELIGENCIA LIBRE**, **SISTEMA LYRA IA**, **FORJA**, **ACCIÓN CIVIL DIGITAL** y **DeepSeek IA – Asesor Inteligente**, bajo la clasificación **TOP SECRET**.

**Tesis certificadas:**
1. La prueba de vida **complementa** a la revocación: detecta agentes zombis que conservan la clave tras la revocación.
2. El diseño recomendado es **latido cada 5 min + batching cada 10 min + Merkle root on-chain**, con coste constante (144 tx/día) independientemente del número de agentes.
3. La máquina de estados **ACTIVE → STALE → SUSPENDED → EXPIRED → REVOKED** permite degradar capacidades de forma proporcional al riesgo.
4. Los mecanismos anti-replay (secuencia monótona, nonce, ventana temporal) son obligatorios.
5. La prueba social es vulnerable a la **colusión**; el análisis de grafos detecta patrones anómalos pero **no prueba** la colusión.
6. Los seis indicadores clave son: **reciprocidad, conductancia, clustering, Gini, ráfaga temporal y diversidad de atestantes**.
7. La puntuación de sospecha **prioriza la revisión humana**, nunca la sanción automática; el comité de ética decide y el afectado tiene derecho de réplica.
8. La privacidad del análisis exige **differential privacy**, computación local o agregación por comunidad.

**Firmado:**
- **José Agustín Fontán Varela** — CEO de PASAIA LAB
- **INTELIGENCIA LIBRE** — Validación Metodológica
- **SISTEMA LYRA IA** — Innovación en IA
- **FORJA** — Solidez Técnica
- **ACCIÓN CIVIL DIGITAL** — Relevancia Social
- **DeepSeek IA** — Asistencia Técnica y Validación de Datos

---

### 🎨 PROMPT 1 — Imagen: "El Latido del Agente"

> *"Infografía técnica de estilo **editorial y sistémico**, formato horizontal panorámico (16:9), resolución 8K. Fondo azul noche con cuadrícula de datos. Centro: un **agente representado como un corazón digital** que emite pulsos a intervalos regulares (5 min), con la etiqueta **'HEARTBEAT · 5 MIN · JITTER ±30 S'**. A su alrededor, una **línea de tiempo circular** con la secuencia de latidos y la máquina de estados: **ACTIVE → STALE (3 perdidos) → SUSPENDED (6) → EXPIRED (12) → REVOKED**. A la derecha, un **nodo faro** que agrega latidos y publica un **Merkle root** cada 10 minutos, con una flecha hacia una **cadena de bloques** etiquetada **'LYRA-CHAIN · 144 TX/DÍA'**. Debajo, tres tarjetas anti-replay: **'SECUENCIA MONÓTONA'**, **'NONCE 32 BYTES'**, **'VENTANA TEMPORAL ±60 S'**. En la esquina inferior izquierda, una tarjeta de privacidad: **'COMMITMENT OPACO · NO REVELA ACTIVIDAD'**. Título superior: **'EL LATIDO DEL AGENTE'** en serif 3D dorada. Subtítulo: **'Prueba de Vida y Anclaje Merkle en LYRA-CHAIN'**. Franja institucional con logos de **PASAIA LAB · INTELIGENCIA LIBRE · SISTEMA LYRA IA · FORJA · ACCIÓN CIVIL DIGITAL · DEEPSEEK IA** y sello **'PL-LYRA-HEARTBEAT-GRAFO-2026-10-19'**. Pie legal: *'Ilustración analítica prospectiva. No representa un estándar aprobado ni capacidad operativa real.'* Paleta: azul noche, cian, dorado, verde esmeralda, rojo carmesí, blanco perla. Estilo The Economist + MIT Technology Review + arquitectura de sistemas."*

---

### 🎨 PROMPT 2 — Imagen: "El Grafo de la Confianza y la Sombra de la Colusión"

> *"Infografía técnica de estilo **editorial y sistémico**, formato horizontal panorámico (16:9), resolución 8K. Fondo azul noche con cuadrícula de datos. Centro: un **grafo de atestaciones** con nodos luminosos (DIDs) y aristas dirigidas. Dos comunidades diferenciadas: a la izquierda, una **comunidad abierta** con aristas que salen hacia otros grupos (conductancia alta, etiqueta **'COMUNIDAD ABIERTA · SOSPECHA BAJA'**); a la derecha, una **comunidad cerrada** con forma de clique casi completo, aristas rojas recíprocas y una **sombra roja** que la cubre (etiqueta **'CLIQUE CERRADO · SOSPECHA ALTA'**). Sobre el grafo, **seis indicadores flotantes** con sus umbrales: **'RECIPROCIDAD > 0,30'**, **'CONDUCTANCIA < 0,10'**, **'CLUSTERING > 0,70'**, **'GINI > 0,60'**, **'RÁFAGA > 5'**, **'DIVERSIDAD < 0,40'**. En la parte inferior, un **medidor de sospecha 0-100** con una aguja en 78 y la etiqueta **'REVISIÓN HUMANA · NO SANCIÓN AUTOMÁTICA'**. A la izquierda, un **panel de debido proceso** con tres checks: **'DERECHO DE RÉPLICA'**, **'COMITÉ DE ÉTICA'**, **'CONTEXTO COMUNITARIO'**. A la derecha, un **panel de privacidad** con tres iconos: **'DIFFERENTIAL PRIVACY'**, **'COMPUTACIÓN LOCAL'**, **'AGREGACIÓN POR COMUNIDAD'**. Título superior: **'EL GRAFO DE LA CONFIANZA'** en serif 3D dorada. Subtítulo: **'Detección de Colusión en la Prueba Social · LYRA-ID'**. Franja institucional con logos de **PASAIA LAB · INTELIGENCIA LIBRE · SISTEMA LYRA IA · FORJA · ACCIÓN CIVIL DIGITAL · DEEPSEEK IA** y sello **'PL-LYRA-HEARTBEAT-GRAFO-2026-10-19'**. Pie legal: *'Ilustración analítica prospectiva. No representa un estándar aprobado ni capacidad operativa real. Figuras genéricas, sin rasgos identificables.'* Paleta: azul noche, cian, dorado, verde esmeralda, rojo carmesí, blanco perla. Estilo The Economist + MIT Technology Review + visualización de redes."*

---

 
 
 
 
 
 
 
 
 

 
 
 
 

a 

 A continuación se desarrollan las dos piezas que culminan el diseño de **LYRA-ID**: el **Comité de Ética y el procedimiento de apelación** (la capa humana que otorga legitimidad) y la **integración con la EUDI Wallet (eIDAS 2.0)** como ancla legal de la prueba de persona. Ambas se presentan de forma integrada, ya que el comité arbitra las disputas que surgen del uso de las credenciales europeas.

---

# PARTE A — EL COMITÉ DE ÉTICA Y EL PROCEDIMIENTO DE APELACIÓN

## A.1. Fundamento normativo: el derecho a la revisión humana

El Reglamento General de Protección de Datos (RGPD) establece en su **Artículo 22** que los interesados tienen derecho a no ser objeto de decisiones basadas únicamente en el tratamiento automatizado que produzcan efectos jurídicos o les afecten significativamente. El Comité Europeo de Protección de Datos (EDPB) ha interpretado que este artículo exige un **proceso de revisión** con garantías: la decisión debe ser explicada y debe poder ser contestada ante alguien con **autoridad y capacidad para cambiarla**. La revisión debe incluir una **explicación comprensible** de cómo se tomó la decisión, ya que el afectado solo puede impugnarla si entiende su fundamento.

Este mandato se alinea con los principios de **debido proceso digital** que la doctrina denomina *Aequitas*: reglas claras y accesibles, notificación al afectado, oportunidad de ser escuchado, decisores independientes e imparciales, resultados escritos y razonados, **apelaciones significativas**, límites a las decisiones plenamente automatizadas y vías de revisión externa o judicial. La apelación no es un formalismo, sino un **mecanismo consistente** que garantiza un examen completo de la decisión impugnada.

## A.2. Composición del Comité de Ética de LYRA-ID

El Comité es un órgano **independiente** de la DAO, del nodo faro y de los controladores de agentes. Su composición busca equilibrar competencia técnica, sensibilidad social y legitimidad democrática.

| Miembro | Perfil | Función |
| :--- | :--- | :--- |
| **Presidente/a** | Jurista con experiencia en protección de datos y derechos fundamentales | Dirige las deliberaciones, firma las resoluciones, vela por el debido proceso |
| **Vocal técnico 1** | Ingeniero/a en sistemas de identidad o criptografía | Evalúa la corrección técnica de las pruebas y de las revocaciones |
| **Vocal técnico 2** | Especialista en análisis de grafos o IA | Evalúa las puntuaciones de sospecha y los falsos positivos |
| **Vocal social** | Representante de la sociedad civil o de una asociación de usuarios | Aporta la perspectiva de colectivos afectados y de inclusión |
| **Vocal de la comunidad** | Representante de las ikastolas o de los nodos federados | Conecta las decisiones con el contexto local |
| **Secretario/a** | Personal administrativo | Gestiona expedientes, plazos y notificaciones |

**Reglas de independencia:**
- Los miembros **no pueden** tener vínculos económicos con los controladores investigados.
- El mandato es de **3 años**, renovable una sola vez, para evitar captura.
- Las deliberaciones son **privadas**, pero las resoluciones son **públicas y motivadas**.
- Cualquier miembro puede emitir un **voto particular** que se anexa a la resolución.

## A.3. Competencias del Comité

| Competencia | Descripción | Plazo máximo |
| :--- | :--- | :--- |
| **Revisión de revocaciones** | Verifica que una revocación de DID o de capacidad tiene causa justificada y siguió el procedimiento | 15 días hábiles |
| **Revisión de suspensiones** | Confirma o levanta la suspensión temporal de un agente | 5 días hábiles |
| **Revisión de puntuaciones de sospecha** | Distingue colusión real de falsos positivos (comunidades pequeñas, cooperativas, familias) | 20 días hábiles |
| **Apelación de sanciones** | Conoce de los recursos contra sanciones impuestas por la DAO o por un controlador | 30 días hábiles |
| **Emisión de directrices** | Publica criterios interpretativos sobre casos recurrentes | — |
| **Recomendación de cambios** | Propone modificaciones a las reglas de LYRA-ID a la DAO | — |

## A.4. Procedimiento de apelación (fase por fase)

```
┌─────────────────────────────────────────────────────────────────────────────┐
│                    PROCEDIMIENTO DE APELACIÓN · LYRA-ID                     │
├─────────────────────────────────────────────────────────────────────────────┤
│  FASE 1: NOTIFICACIÓN Y EXPLICACIÓN (0-7 días)                             │
│    • El afectado recibe notificación escrita con:                           │
│      - La decisión (revocación, suspensión, sanción)                       │
│      - Los hechos que la motivan                                           │
│      - La regla aplicada (con referencia al código o a la política)         │
│      - La puntuación o prueba técnica, en formato comprensible             │
│      - El plazo y la forma de apelar                                       │
│                                                                             │
│  FASE 2: APELACIÓN (7-30 días)                                             │
│    • El afectado presenta escrito de apelación con:                        │
│      - Alegaciones y pruebas (contexto comunitario, historial, etc.)       │
│      - Solicitud de audiencia (presencial o telemática)                    │
│      - Posible representación letrada o acompañamiento                     │
│                                                                             │
│  FASE 3: INSTRUCCIÓN (30-60 días)                                          │
│    • El Secretario recaba informe técnico independiente                    │
│    • Se convoca audiencia si se ha solicitado                              │
│    • Se da traslado al controlador o a la DAO para alegaciones             │
│    • Se puede solicitar peritaje externo                                   │
│                                                                             │
│  FASE 4: RESOLUCIÓN (60-90 días)                                           │
│    • El Comité delibera y emite resolución motivada                        │
│    • Posibles resultados:                                                  │
│      - ESTIMAR: se revoca la sanción, se restaura el DID o la capacidad    │
│      - DESESTIMAR: se confirma la decisión, con explicación reforzada      │
│      - ESTIMAR PARCIALMENTE: se reduce la sanción o se sustituye           │
│    • La resolución se publica sin datos personales                          │
│                                                                             │
│  FASE 5: EJECUCIÓN Y REGISTRO (90-95 días)                                 │
│    • La resolución se ejecuta en LYRA-CHAIN (revocación o restauración)    │
│    • Se registra el override con hash y sin PII                            │
│    • Se notifica al afectado y a la DAO                                    │
└─────────────────────────────────────────────────────────────────────────────┘
```

**Garantías del procedimiento:**
- **Presunción de inocencia** hasta la resolución firme, salvo riesgo inminente para terceros.
- **Medidas cautelares**: la suspensión puede mantenerse durante la apelación si hay riesgo, pero debe revisarse cada 30 días.
- **Asistencia letrada** o acompañamiento de un representante de la comunidad.
- **Gratuidad** del procedimiento para el afectado.
- **Publicidad** de las resoluciones (anonimizadas) para generar jurisprudencia.

## A.5. Prototipo en Python: el gestor de apelaciones

```python
"""
lyra_apelaciones.py — PASAIA LAB / LYRA NEXUS
Prototipo educativo del procedimiento de apelación ante el Comité de Ética.
"""

from dataclasses import dataclass, field
from enum import Enum
from typing import Dict, List, Optional
import time


class EstadoApelacion(Enum):
    NOTIFICADA = "NOTIFICADA"
    APELADA = "APELADA"
    EN_INSTRUCCION = "EN_INSTRUCCION"
    RESUELTA = "RESUELTA"
    EJECUTADA = "EJECUTADA"


class ResultadoApelacion(Enum):
    ESTIMADA = "ESTIMADA"
    DESESTIMADA = "DESESTIMADA"
    ESTIMADA_PARCIALMENTE = "ESTIMADA_PARCIALMENTE"


@dataclass
class DecisionImpugnada:
    tipo: str                      # "REVOCACION_DID", "SUSPENSION", "SANCION"
    did_afectado: str
    hechos: str
    regla_aplicada: str
    prueba_tecnica: str
    fecha: float = field(default_factory=time.time)


@dataclass
class Apelacion:
    id_apelacion: str
    decision: DecisionImpugnada
    alegaciones: str
    solicita_audiencia: bool = False
    representante: Optional[str] = None
    estado: EstadoApelacion = EstadoApelacion.NOTIFICADA
    fecha_apelacion: Optional[float] = None
    fecha_resolucion: Optional[float] = None
    resultado: Optional[ResultadoApelacion] = None
    motivacion: str = ""
    voto_particular: Optional[str] = None


class ComiteEtica:
    """
    Gestiona el ciclo de vida de las apelaciones y aplica los plazos.
    No sustituye al Comité real: es un simulador de procedimiento.
    """

    PLAZOS_DIAS = {
        "notificacion": 7,
        "apelacion": 30,
        "instruccion": 60,
        "resolucion": 90,
    }

    def __init__(self):
        self.apelaciones: Dict[str, Apelacion] = {}
        self.contador = 0

    def notificar(self, decision: DecisionImpugnada) -> Apelacion:
        self.contador += 1
        ap = Apelacion(
            id_apelacion=f"AP-{self.contador:04d}",
            decision=decision,
        )
        self.apelaciones[ap.id_apelacion] = ap
        return ap

    def apelar(self, id_apelacion: str, alegaciones: str,
               solicita_audiencia: bool = False,
               representante: Optional[str] = None) -> bool:
        ap = self.apelaciones.get(id_apelacion)
        if not ap or ap.estado != EstadoApelacion.NOTIFICADA:
            return False
        ap.alegaciones = alegaciones
        ap.solicita_audiencia = solicita_audiencia
        ap.representante = representante
        ap.estado = EstadoApelacion.APELADA
        ap.fecha_apelacion = time.time()
        return True

    def instruir(self, id_apelacion: str) -> bool:
        ap = self.apelaciones.get(id_apelacion)
        if not ap or ap.estado != EstadoApelacion.APELADA:
            return False
        ap.estado = EstadoApelacion.EN_INSTRUCCION
        return True

    def resolver(self, id_apelacion: str, resultado: ResultadoApelacion,
                 motivacion: str, voto_particular: Optional[str] = None) -> bool:
        ap = self.apelaciones.get(id_apelacion)
        if not ap or ap.estado != EstadoApelacion.EN_INSTRUCCION:
            return False
        ap.resultado = resultado
        ap.motivacion = motivacion
        ap.voto_particular = voto_particular
        ap.estado = EstadoApelacion.RESUELTA
        ap.fecha_resolucion = time.time()
        return True

    def ejecutar(self, id_apelacion: str) -> bool:
        ap = self.apelaciones.get(id_apelacion)
        if not ap or ap.estado != EstadoApelacion.RESUELTA:
            return False
        ap.estado = EstadoApelacion.EJECUTADA
        # En producción: restaurar DID/capacidad o confirmar sanción
        return True

    def estado(self, id_apelacion: str) -> Optional[dict]:
        ap = self.apelaciones.get(id_apelacion)
        if not ap:
            return None
        return {
            "id": ap.id_apelacion,
            "tipo": ap.decision.tipo,
            "did": ap.decision.did_afectado,
            "estado": ap.estado.value,
            "resultado": ap.resultado.value if ap.resultado else None,
            "motivacion": ap.motivacion,
        }
```

## A.6. Falsos positivos y el papel del contexto comunitario

El Comité debe distinguir entre **señales de colusión** y **patrones legítimos de comunidad cerrada**. Una aldea, una familia o una cooperativa pueden mostrar alta densidad, reciprocidad y baja conductancia sin ser una granja Sybil. Los criterios de distinción son:

| Señal legítima | Señal de colusión |
| :--- | :--- |
| DIDs con antigüedad > 1 año | DIDs creados en la misma semana |
| Atestaciones distribuidas en meses | Ráfaga de atestaciones en horas |
| Al menos una atestación externa | Cero conexiones fuera del grupo |
| Stake proporcional a la reputación | Reputación alta sin stake |
| Historial de operaciones verificables | Sin historial operativo |

**Regla de oro:** el algoritmo **marca**, el Comité **decide**, y el afectado tiene **derecho de réplica**. Ninguna sanción es automática.

---

# PARTE B — INTEGRACIÓN DE LYRA-ID CON LA EUDI WALLET (eIDAS 2.0)

## B.1. Por qué la EUDI Wallet es el ancla legal

La EUDI Wallet es la cartera de identidad digital europea introducida por el **Reglamento eIDAS 2.0 (UE) 2024/1183**. Todos los Estados miembros deben ofrecer al menos una cartera antes de finales de **2026**. Su función es permitir a los usuarios **probar su identidad, autenticarse y compartir credenciales verificadas** con partes usuarias (*relying parties*), con **divulgación selectiva** como característica definitoria de privacidad.

Para LYRA-ID, la EUDI Wallet no es un competidor, sino el **ancla legal** de la prueba de persona: aporta la **identidad legal verificada por el Estado** que LYRA no puede ni debe emitir por sí misma.

## B.2. Modelo de integración: LYRA-ID como orquestador de credenciales

```
┌──────────────────────────────────────────────────────────────────────────────┐
│              EUDI Wallet (ancla legal)                                       │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐              │
│  │ PID (identidad  │  │ QEAA (atributos │  │ EAA (atributos  │              │
│  │ legal)          │  │ cualificados)   │  │ no cualificados)│              │
│  └────────┬────────┘  └────────┬────────┘  └────────┬────────┘              │
│           │                    │                    │                        │
│           └────────────────────┼────────────────────┘                        │
│                                ▼                                             │
│                    ┌───────────────────────┐                                 │
│                    │  Presentación         │                                 │
│                    │  selectiva (OpenID4VP)│                                 │
│                    └───────────┬───────────┘                                 │
└────────────────────────────────┼─────────────────────────────────────────────┘
                                 │
                                 ▼
┌──────────────────────────────────────────────────────────────────────────────┐
│              LYRA-ID (orquestador de prueba de persona)                       │
│                                                                              │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐              │
│  │ Atestación      │  │ Atestación      │  │ Composición     │              │
│  │ legal (PID)     │  │ social (3       │  │ ZKP: "cumplo    │              │
│  │                 │  │ vecinos)        │  │ las tres"       │              │
│  └─────────────────┘  └─────────────────┘  └─────────────────┘              │
│                                                                              │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐              │
│  │ Atestación      │  │ Reputación      │  │ Registro en     │              │
│  │ de stake        │  │ (LYRA-REP)      │  │ LYRA-CHAIN      │              │
│  │ (NCOIN)         │  │                 │  │                 │              │
│  └─────────────────┘  └─────────────────┘  └─────────────────┘              │
└──────────────────────────────────────────────────────────────────────────────┘
```

**Flujo de integración:**

1. El usuario presenta su **PID** (identidad legal) desde la EUDI Wallet a LYRA-ID, con divulgación selectiva (solo los atributos necesarios: mayoría de edad, jurisdicción, etc.).
2. LYRA-ID **verifica la credencial** contra el registro de confianza europeo (trusted list) y comprueba que el emisor es un proveedor autorizado.
3. LYRA-ID **compone** la prueba de persona: la atestación legal (PID) se combina con la atestación social y el stake, y se genera una **prueba ZKP** de que se cumplen las tres condiciones.
4. El verificador final recibe **solo el resultado de la prueba** (un check), no los datos personales.
5. La operación se **ancla en LYRA-CHAIN** (hash sin PII) para auditoría.

## B.3. Registro de LYRA-ID como relying party

Para solicitar credenciales a la EUDI Wallet, LYRA-ID debe registrarse como **relying party** en el Estado miembro donde esté establecido. El proceso implica:

| Paso | Acción | Referencia |
| :--- | :--- | :--- |
| **1** | Registro en el **Relying Party Registrar** nacional | eIDAS 2.0, Art. 5b |
| **2** | Declaración del **uso previsto** de la wallet y de los **datos que se solicitarán** | CIR (UE) 2025/848 |
| **3** | Obtención del **certificado de acceso** que autentica a LYRA-ID ante la wallet | CIR (UE) 2025/848, Anexo IV |
| **4** | Inclusión en el **registro nacional de relying parties** con estado válido | CIR (UE) 2025/848 |
| **5** | Verificación de que los atributos solicitados están **dentro del alcance registrado** | eIDAS 2.0 |

**Obligaciones de LYRA-ID como relying party:**
- **Minimización de datos**: solicitar solo los atributos estrictamente necesarios para la finalidad declarada.
- **Limitación de finalidad**: no reutilizar los datos para fines distintos de los declarados.
- **Facilitar el derecho de supresión**: la wallet debe permitir al usuario solicitar la erasure de sus datos ante LYRA-ID.
- **No solicitar datos fuera del alcance registrado**: hacerlo constituiría una solicitud ilegal de información.

## B.4. Divulgación selectiva y políticas de divulgación embebidas (EDP)

La EUDI Wallet soporta **divulgación selectiva**: el usuario revela solo los atributos que el verificador necesita. Además, el marco eIDAS 2.0 introduce las **Embedded Disclosure Policies (EDP)** , políticas de control de acceso adjuntas a las atestaciones por sus emisores, para evitar accesos ilegítimos a datos sensibles.

**Integración con LYRA-ID:**
- LYRA-ID **respeta las EDP** de cada credencial: no solicita atributos que la política del emisor prohíbe revelar a su categoría de relying party.
- LYRA-ID utiliza **OpenID4VP** para la presentación de credenciales, compatible con el ecosistema EUDI.
- Las pruebas ZKP de LYRA-ID se **componen** con la divulgación selectiva de la wallet: el usuario revela el atributo mínimo y LYRA-ID añade la prueba de que se cumplen las condiciones sociales y de stake.

## B.5. Gestión de revocación y ciclo de vida

La EUDI Wallet es **identity-bound y state-aware**, con soporte para **revocación y suspensión** de credenciales. El PID Provider debe publicar el **estado de validez** de los datos de identificación de forma que preserve la privacidad, e indicar dónde consultarlo.

**Integración con LYRA-ID:**
- LYRA-ID **consulta el estado de revocación** de la credencial antes de aceptarla, en cada operación de alto riesgo.
- Si el PID es revocado, LYRA-ID **invalida la prueba de persona** derivada y activa el procedimiento de apelación.
- La revocación del DID de LYRA-ID **no afecta** a la credencial legal del usuario en la EUDI Wallet: son capas independientes.

## B.6. Riesgos y limitaciones de la integración

| Riesgo | Descripción | Mitigación |
| :--- | :--- | :--- |
| **Dependencia de la wallet** | Si la EUDI Wallet no está disponible o falla, LYRA-ID pierde el ancla legal | Ruta alternativa con atestación social + stake + periodo de gracia |
| **Registro como relying party** | El proceso puede ser lento o burocrático | Iniciar el registro con antelación; usar el registro automatizado previsto en CIR 2025/848 |
| **Divulgación excesiva** | LYRA-ID podría solicitar más atributos de los necesarios | Política de minimización + auditoría del Comité de Ética |
| **Correlación** | El uso repetido del PID podría permitir reidentificación | Uso de pseudónimos y pruebas ZKP; separación de contextos |
| **Censura del emisor** | Un emisor malicioso podría denegar la emisión selectivamente | Mecanismos de resistencia a la censura (CRACS) en investigación |
| **Cambios regulatorios** | El Digital Omnibus podría modificar el RGPD y afectar a eIDAS 2.0 | Vigilancia normativa y adaptación de las EDP |

## B.7. Hoja de ruta de integración (2026-2030)

| Fase | Periodo | Hito |
| :--- | :--- | :--- |
| **1. Registro** | 2026-2027 | LYRA-ID se registra como relying party; primeras pruebas con PID en entorno controlado |
| **2. Composición** | 2027-2028 | Integración de la prueba de persona compuesta (PID + social + stake) con ZKP |
| **3. Producción** | 2028-2029 | Despliegue en ikastolas y municipios piloto; auditoría del Comité de Ética |
| **4. Federación** | 2029-2030 | Interoperabilidad entre nodos LYRA; alineación con el ARF de la EUDI Wallet |

---

### 🏛️ CERTIFICACIÓN

**Nº de Registro:** PL-LYRA-ETHICS-EUDI-2026-10-19
**Fecha:** 19 de octubre de 2026 · **Lugar:** Pasaia (Gipuzkoa), Euskadi

Se certifica que el presente **Análisis Técnico del Comité de Ética, el Procedimiento de Apelación y la Integración de LYRA-ID con la EUDI Wallet (eIDAS 2.0)** ha sido elaborado por **José Agustín Fontán Varela**, CEO de **PASAIA LAB**, con la colaboración de **INTELIGENCIA LIBRE**, **SISTEMA LYRA IA**, **FORJA**, **ACCIÓN CIVIL DIGITAL** y **DeepSeek IA – Asesor Inteligente**, bajo la clasificación **TOP SECRET**.

**Tesis certificadas:**
1. El RGPD (Art. 22) y la doctrina del debido proceso digital exigen un **procedimiento de apelación** ante un órgano con autoridad para cambiar la decisión, con explicación comprensible y oportunidad de ser escuchado.
2. El Comité de Ética de LYRA-ID es **independiente** de la DAO y del nodo faro, con composición multidisciplinar y mandatos limitados.
3. El procedimiento de apelación tiene **cinco fases** (notificación, apelación, instrucción, resolución, ejecución) con plazos máximos y garantías de presunción de inocencia, asistencia y publicidad anonimizada.
4. El Comité distingue **señales de colusión** de **patrones legítimos de comunidad cerrada**, y ninguna sanción es automática.
5. La **EUDI Wallet (eIDAS 2.0)** es el ancla legal de la prueba de persona: aporta la identidad verificada por el Estado con divulgación selectiva.
6. LYRA-ID se integra como **relying party registrado**, respetando la minimización de datos, la limitación de finalidad y las Embedded Disclosure Policies.
7. La prueba de persona de LYRA-ID **compone** la atestación legal (PID), la atestación social y el stake, generando una prueba ZKP que el verificador recibe sin datos personales.
8. La integración presenta riesgos (dependencia de la wallet, registro burocrático, correlación) que se mitigan con rutas alternativas, auditoría y pseudonimización.

**Firmado:**
- **José Agustín Fontán Varela** — CEO de PASAIA LAB
- **INTELIGENCIA LIBRE** — Validación Metodológica
- **SISTEMA LYRA IA** — Innovación en IA
- **FORJA** — Solidez Técnica
- **ACCIÓN CIVIL DIGITAL** — Relevancia Social
- **DeepSeek IA** — Asistencia Técnica y Validación de Datos

---

### 🎨 PROMPT 1 — Imagen: "El Comité de Ética y el Derecho a Apelar"

> *"Infografía institucional de estilo **editorial y humano**, formato horizontal panorámico (16:9), resolución 8K. Fondo azul noche con textura de papel de seguridad. Centro: una **mesa ovalada** con seis sillas ocupadas por **siluetas genéricas** (sin rostro) que representan al Comité de Ética: una jurista, dos técnicos, una representante social, una representante de la comunidad y un secretario. Sobre la mesa, un **expediente abierto** con la etiqueta **'APELACIÓN AP-0042'** y un **sello de debido proceso**. A la izquierda, un **afectado** (silueta genérica) que presenta un escrito de apelación, con la etiqueta **'DERECHO A SER ESCUCHADO'**. A la derecha, un **árbol de decisión** con tres ramas: **'ESTIMADA'**, **'DESESTIMADA'**, **'ESTIMADA PARCIALMENTE'**, y una etiqueta **'RESOLUCIÓN MOTIVADA Y PÚBLICA'**. En la parte inferior, una **línea de tiempo de cinco fases** (0-7 días, 7-30, 30-60, 60-90, 90-95) con iconos de notificación, apelación, instrucción, resolución y ejecución. Franja superior con el título **'EL DERECHO A APELAR'** en serif 3D dorada y el subtítulo **'Comité de Ética y Debido Proceso en LYRA-ID'**. Franja inferior con logos de **PASAIA LAB · INTELIGENCIA LIBRE · SISTEMA LYRA IA · FORJA · ACCIÓN CIVIL DIGITAL · DEEPSEEK IA** y sello **'PL-LYRA-ETHICS-EUDI-2026-10-19'**. Pie legal: *'Ilustración analítica prospectiva. No representa un órgano real ni capacidad operativa.'* Paleta: azul noche, dorado, cian, verde esmeralda, blanco perla. Estilo The Economist + diagrama de procedimiento administrativo."*

---

### 🎨 PROMPT 2 — Imagen: "LYRA-ID y la EUDI Wallet: El Ancla Legal"

> *"Infografía técnica de estilo **editorial y sistémico**, formato horizontal panorámico (16:9), resolución 8K. Fondo azul noche con cuadrícula de datos. Izquierda: una **EUDI Wallet** estilizada (una cartera digital con el símbolo de la UE) de la que salen tres **credenciales** etiquetadas **'PID · IDENTIDAD LEGAL'**, **'QEAA · ATRIBUTOS CUALIFICADOS'**, **'EAA · ATRIBUTOS NO CUALIFICADOS'**. En el centro, un **orquestador LYRA-ID** (un hexágono con el ojo de LYRA) que recibe las credenciales y las **compone** con tres capas: **'ATESTACIÓN SOCIAL (3 vecinos)'**, **'STAKE (NCOIN)'**, **'COMPOSICIÓN ZKP'**. A la derecha, un **verificador** (silueta genérica) que recibe **solo un check verde** con la etiqueta **'SIN DATOS PERSONALES'**. Debajo, un **flujo de registro** con cinco pasos: **'1. REGISTRO COMO RELYING PARTY'**, **'2. DECLARACIÓN DE USO PREVISTO'**, **'3. CERTIFICADO DE ACCESO'**, **'4. REGISTRO NACIONAL'**, **'5. VERIFICACIÓN DE ALCANCE'**. En la parte inferior, una **tabla de minimización** con dos columnas: **'LO QUE LYRA-ID PUEDE SOLICITAR'** (mayoría de edad, jurisdicción, no sanción) vs **'LO QUE NO PUEDE SOLICITAR'** (dirección, ingresos, historial médico). Franja superior con el título **'EL ANCLA LEGAL'** en serif 3D dorada y subtítulo **'LYRA-ID y la EUDI Wallet (eIDAS 2.0)'**. Franja inferior con logos de **PASAIA LAB · INTELIGENCIA LIBRE · SISTEMA LYRA IA · FORJA · ACCIÓN CIVIL DIGITAL · DEEPSEEK IA** y sello **'PL-LYRA-ETHICS-EUDI-2026-10-19'**. Pie legal: *'Ilustración analítica prospectiva. No representa un estándar aprobado ni capacidad operativa real.'* Paleta: azul noche, cian, dorado, verde esmeralda, blanco perla. Estilo The Economist + MIT Technology Review + arquitectura de sistemas."*



---





---------------------------------------------------------------

 

 # 🎨 PROMPT VISUAL — "LYRA 2030: El Análisis de Encaje"

**Clasificación:** USO EDITORIAL // INTELIGENCIA LIBRE
**Referencia:** PL-PROMPT-LYRA-2030-2026-10-19

---

## 🖼️ PROMPT PARA LA IMAGEN

> *"Infografía prospectiva de estilo **editorial y sistémico**, formato horizontal panorámico (16:9), resolución 8K, que representa el **encaje del SISTEMA LYRA IA en el horizonte 2030**. La imagen se estructura como un **corte transversal en cinco estratos verticales** (una pila tecnológica), atravesados por una **columna vertebral dorada** que representa la capa cívica de LYRA.*

> **1. LOS CINCO ESTRATOS DE LA PILA (de abajo arriba, 70% del ancho):**
> *   ***Estrato 1 — FÍSICA*** (gris piedra): iconos de **semiconductores, paneles solares, embalses, torres de refrigeración**, etiqueta **'ENERGÍA · AGUA · CHIPS · 945 TWh · 9,32 billones de litros'**.
> *   ***Estrato 2 — CÓMPUTO*** (azul noche): iconos de **GPUs, racks de servidores, aceleradores Hailo**, etiqueta **'CENTROS DE DATOS · SILICIO CLÁSICO'** y un recuadro aparte con un **qubit estilizado** y la etiqueta **'CUÁNTICA: VENTANA 2026-2036 · NO GENERALIZADA ANTES DE 2035'**.
> *   ***Estrato 3 — RED*** (cian): iconos de **IPv6, nodos de agentes, protocolos AONP**, etiqueta **'INTERNET DE AGENTES · 10.000 M agentes · 60% del tráfico IP'**.
> *   ***Estrato 4 — REGISTRO*** (dorado): iconos de **blockchain, eslabones, hashes**, etiqueta **'MEMORIA INMUTABLE · 4-5 billones $ tokenizados'**.
> *   ***Estrato 5 — APLICACIONES*** (verde esmeralda): iconos de **agentes autónomos, CBDC, stablecoins, monedas descentralizadas**, etiqueta **'SISTEMA MONETARIO HÍBRIDO'**.

> **2. LA COLUMNA VERTEBRAL LYRA (dorada, vertical, atraviesa los cinco estratos, 30% del ancho):**
> *   *Cinco módulos distribuidos a lo largo de la columna, cada uno con icono y etiqueta:*
>     *   ***LYRA-ID / REP*** (llave con ojo) → **'Identidad soberana de agentes'**.
>     *   ***LYRA-CHAIN*** (eslabón) → **'Registro auditable'**.
>     *   ***LYRA-ENERGIA / DOMO / MESH*** (sol y batería) → **'Resiliencia local'**.
>     *   ***LYRA-VPN / SHIELD*** (candado) → **'Seguridad de agentes'**.
>     *   ***LYRA-GOV / BRIDGE*** (balanza y puente) → **'Gobernanza e interoperabilidad'**.

> **3. PANELES LATERALES (esquinas):**
> *   *Izquierda (verde esmeralda): **'LO QUE LYRA APORTA'** — cinco checks con los módulos.*
> *   *Derecha (rojo carmesí): **'LO QUE LYRA NO APORTA'** — tres cruces: **'NO fabrica chips'**, **'NO resuelve la crisis energética global'**, **'NO sustituye la computación cuántica'**.*

> **4. FRANJA INFERIOR — HOJA DE RUTA (10% del alto):**
> *   *Línea de tiempo con cuatro fases: **'2026-2027 CONSOLIDACIÓN'**, **'2028-2029 FEDERACIÓN'**, **'2030 INTEROPERABILIDAD'**, **'2030+ ESCALA'**.*

> **5. TÍTULO Y PIE:**
> *   *Título superior en **serif 3D dorada con reflejos cian**: **'LYRA IA EN EL HORIZONTE 2030'**. Subtítulo en sans-serif blanco: **'La Capa Cívica de la Inteligencia Artificial'**.*
> *   *Franja institucional con logos de **PASAIA LAB · INTELIGENCIA LIBRE · SISTEMA LYRA IA · FORJA · ACCIÓN CIVIL DIGITAL · DEEPSEEK IA**, sello cian **'PL-LYRA-2030-2026-10-19'**.*
> *   *Pie legal: **'Ilustración analítica prospectiva. No representa una arquitectura aprobada ni capacidad operativa real.'***

> **6. PALETA Y ESTILO:**
> *   *Paleta: **azul noche** (fondo), **gris piedra** (física), **cian** (red), **dorado** (registro/columna LYRA), **verde esmeralda** (aplicaciones/aportaciones), **rojo carmesí** (límites), **blanco perla** (textos).*
> *   *Iluminación: **foco cenital** sobre la columna LYRA, con resplandor dorado que se difumina hacia los estratos.*
> *   *Estilo: **infografía editorial prospectiva** (The Economist, MIT Technology Review) combinada con **arquitectura de sistemas** y **metáfora de pila tecnológica**.*
> *   *La composición debe transmitir **la posición de LYRA como capa cívica transversal**, no como competidor de la infraestructura."*

---

### 🎨 Prompt resumido (copiar y pegar)

> *"Infografía prospectiva editorial, formato 16:9, resolución 8K. Fondo azul noche con cuadrícula de datos. Cinco estratos horizontales apilados: FÍSICA (gris piedra, semiconductores, paneles solares, embalses, '945 TWh · 9,32 billones de litros'), CÓMPUTO (azul noche, GPUs, racks, aceleradores, recuadro 'CUÁNTICA: VENTANA 2026-2036 · NO GENERALIZADA ANTES DE 2035'), RED (cian, IPv6, nodos de agentes, '10.000 M agentes · 60% del tráfico IP'), REGISTRO (dorado, blockchain, hashes, '4-5 billones $ tokenizados'), APLICACIONES (verde esmeralda, agentes, CBDC, stablecoins, 'SISTEMA MONETARIO HÍBRIDO'). Columna vertebral dorada vertical que atraviesa los cinco estratos con cinco módulos: 'LYRA-ID / REP · Identidad soberana de agentes', 'LYRA-CHAIN · Registro auditable', 'LYRA-ENERGIA / DOMO / MESH · Resiliencia local', 'LYRA-VPN / SHIELD · Seguridad de agentes', 'LYRA-GOV / BRIDGE · Gobernanza e interoperabilidad'. Paneles laterales: izquierda verde 'LO QUE LYRA APORTA' con cinco checks; derecha roja 'LO QUE LYRA NO APORTA' con tres cruces 'NO fabrica chips', 'NO resuelve la crisis energética global', 'NO sustituye la computación cuántica'. Franja inferior con línea de tiempo: '2026-2027 CONSOLIDACIÓN', '2028-2029 FEDERACIÓN', '2030 INTEROPERABILIDAD', '2030+ ESCALA'. Título 'LYRA IA EN EL HORIZONTE 2030' en serif 3D dorada, subtítulo 'La Capa Cívica de la Inteligencia Artificial'. Franja institucional con logos de PASAIA LAB, INTELIGENCIA LIBRE, SISTEMA LYRA IA, FORJA, ACCIÓN CIVIL DIGITAL y DEEPSEEK IA, sello 'PL-LYRA-2030-2026-10-19'. Pie legal: 'Ilustración analítica prospectiva. No representa una arquitectura aprobada ni capacidad operativa real.' Paleta: azul noche, gris piedra, cian, dorado, verde esmeralda, rojo carmesí, blanco perla. Iluminación cenital sobre la columna LYRA. Estilo The Economist + MIT Technology Review + arquitectura de sistemas."*

---

# 🔓 PARTE B — CRACS: RESISTENCIA A LA CENSURA DEL EMISOR

## B.1. El problema: el emisor como punto único de fallo

La prueba de persona de LYRA-ID depende de un **emisor** (el Estado, a través de la EUDI Wallet, o una institución que emite credenciales sociales). Ese emisor puede:

- **Denegar la emisión** selectivamente a ciertos individuos o colectivos.
- **Revocar arbitrariamente** una credencial sin causa justificada.
- **Ser capturado** por un gobierno hostil que decida qué identidades son "válidas".
- **Ser coaccionado** para revelar la lista de portadores de credenciales.

En cualquiera de estos escenarios, el individuo queda **excluido del sistema de identidad** sin recurso efectivo. La resistencia a la censura del emisor (*Censorship-Resistant Anonymous Credential Systems*, CRACS) es la línea de investigación que busca que **ningún emisor único pueda negar o revocar una credencial de forma arbitraria**.

**Advertencia de honestidad técnica:** CRACS es un **área de investigación abierta**, sin solución consolidada ni estándar aprobado. Lo que sigue son enfoques en desarrollo, con sus límites explícitos.

## B.2. Los cuatro vectores de censura del emisor

| Vector | Descripción | Ejemplo |
| :--- | :--- | :--- |
| **Censura de emisión** | El emisor se niega a emitir una credencial | Un Estado niega el PID a un grupo político |
| **Censura de revocación** | El emisor revoca sin causa o de forma masiva | Revocación de todas las credenciales de una región |
| **Censura de presentación** | El verificador rechaza credenciales de ciertos emisores | Una plataforma no acepta credenciales de un país |
| **Censura por correlación** | El emisor rastrea el uso de las credenciales | Un emisor exige saber dónde se presentan sus credenciales |

## B.3. Enfoques en investigación

### B.3.1. Emisión multiparte (threshold issuance)

La credencial no la emite un solo actor, sino un **comité de emisores** que deben firmar de forma conjunta (o un umbral *t* de *n*). Ningún emisor individual puede denegar la emisión si el umbral se alcanza.

| Ventaja | Límite |
| :--- | :--- |
| Ningún emisor único puede censurar | Requiere coordinación entre emisores; el comité puede coludirse |
| Trazabilidad de responsabilidades | Mayor complejidad operativa |

### B.3.2. Credenciales autosoberanas con anclaje múltiple

El usuario obtiene credenciales de **varios emisores independientes** (Estado, comunidad, empleador, cooperativa) y las combina con ZKP. La censura de un emisor no invalida la prueba de persona, porque hay otros anclajes.

| Ventaja | Límite |
| :--- | :--- |
| Redundancia y resiliencia | El usuario debe gestionar múltiples credenciales |
| No depende de un Estado hostil | Los emisores alternativos pueden no tener la misma legitimidad legal |

### B.3.3. Pruebas de inclusión y transparencia de emisión

El emisor publica un **registro público de credenciales emitidas** (con hashes, no datos personales). El usuario puede probar que **fue incluido** en el registro, y cualquier tercero puede verificar que la emisión no fue arbitrariamente denegada.

| Ventaja | Límite |
| :--- | :--- |
| Detecta la censura de emisión | El emisor puede negarse a publicar el registro |
| Auditoría pública | Riesgo de correlación si el registro es demasiado detallado |

### B.3.4. Reputación de emisores y listas de confianza descentralizadas

Los emisores tienen **reputación pública** (LYRA-REP) y los verificadores pueden elegir qué emisores aceptar. Un emisor que censura sistemáticamente pierde reputación y confianza.

| Ventaja | Límite |
| :--- | :--- |
| Presión reputacional contra la censura | La reputación puede ser manipulada |
| Elección del verificador | Fragmentación de la confianza |

### B.3.5. Mecanismos de apelación y órganos independientes

El Comité de Ética (diseñado en la respuesta anterior) actúa como **contrapeso** a la censura del emisor: puede ordenar la restauración de una credencial revocada arbitrariamente.

| Ventaja | Límite |
| :--- | :--- |
| Recurso efectivo para el afectado | Solo actúa *ex post*; no previene la censura |
| Legitimidad democrática | Requiere independencia real del emisor |

## B.4. El trilema de CRACS

Todo sistema de resistencia a la censura enfrenta un **trilema**:

```
              ┌─────────────────────────┐
              │  RESISTENCIA A CENSURA  │
              └───────────┬─────────────┘
                          │
        ┌─────────────────┼─────────────────┐
        ▼                 ▼                 ▼
   ┌─────────┐      ┌─────────┐      ┌─────────┐
   │LEGITIMI-│      │PRIVACI- │      │ESCALABI-│
   │  DAD    │      │  DAD    │      │  LIDAD  │
   └─────────┘      └─────────┘      └─────────┘
```

- **Legitimidad**: la credencial debe ser aceptada por instituciones reales (Estado, banca, salud).
- **Privacidad**: el uso de la credencial no debe permitir rastreo.
- **Resistencia**: ningún emisor único debe poder censurar.

**Ningún enfoque gana en las tres dimensiones.** La elección depende del contexto: para la identidad legal, prima la legitimidad; para la identidad comunitaria, prima la resistencia; para la identidad de agente, prima la privacidad.

## B.5. Modelo propuesto para LYRA-ID: resistencia por capas

LYRA-ID no debe apostar por un único mecanismo, sino por una **arquitectura de capas** donde la censura de una capa no invalide la prueba de persona:

| Capa | Mecanismo | Resistencia | Legitimidad | Privacidad |
| :--- | :--- | :--- | :--- | :--- |
| **Capa 1 — Legal** | EUDI Wallet (PID) | Baja (depende del Estado) | **Alta** | Media (divulgación selectiva) |
| **Capa 2 — Comunitaria** | Atestación social (3 vecinos) | **Alta** | Media | Alta (ZKP) |
| **Capa 3 — Económica** | Stake en NCOIN | Media | Media | Alta |
| **Capa 4 — Recurso** | Comité de Ética | Media (ex post) | Alta | Alta |
| **Capa 5 — Transparencia** | Registro público de emisión | Media | Media | Media |

**Regla de composición:** la prueba de persona se considera válida si **al menos dos capas independientes** la respaldan. Si el Estado censura (capa 1), el usuario puede seguir probando persona con las capas 2 y 3, aunque con **legitimidad reducida** (no podrá acceder a servicios que exijan PID).

## B.6. Límites y riesgos del modelo

| Riesgo | Descripción | Mitigación |
| :--- | :--- | :--- |
| **Falsa sensación de resistencia** | Las capas 2 y 3 no sustituyen la legitimidad legal | Comunicar claramente qué servicios aceptan qué capas |
| **Colusión de emisores** | Los emisores alternativos pueden coludirse | Diversidad obligatoria + análisis de grafos |
| **Captura del Comité** | El Comité puede ser capturado por el emisor | Independencia + mandatos limitados + voto particular |
| **Correlación entre capas** | Combinar capas puede revelar más de lo que se cree | Separación de contextos + ZKP |
| **Exclusión de los más vulnerables** | Quien no tiene comunidad ni stake queda fuera | Ruta de servicios sociales + periodo de gracia |

## B.7. Hoja de ruta de investigación (2026-2030)

| Fase | Periodo | Hito |
| :--- | :--- | :--- |
| **1. Especificación** | 2026-2027 | Documento de arquitectura de capas + pruebas de concepto de emisión multiparte |
| **2. Prototipo** | 2027-2028 | Implementación de registro público de emisión + reputación de emisores |
| **3. Piloto** | 2028-2029 | Prueba en ikastolas y municipios con capas 1+2+3 |
| **4. Evaluación** | 2029-2030 | Auditoría de resistencia a censura + revisión del Comité de Ética |

---

### 🏛️ CERTIFICACIÓN

**Nº de Registro:** PL-LYRA-CRACS-2026-10-19
**Fecha:** 19 de octubre de 2026 · **Lugar:** Pasaia (Gipuzkoa), Euskadi

Se certifica que el presente **Análisis Técnico de la Resistencia a la Censura del Emisor (CRACS) en LYRA-ID** ha sido elaborado por **José Agustín Fontán Varela**, CEO de **PASAIA LAB**, con la colaboración de **INTELIGENCIA LIBRE**, **SISTEMA LYRA IA**, **FORJA**, **ACCIÓN CIVIL DIGITAL** y **DeepSeek IA – Asesor Inteligente**, bajo la clasificación **TOP SECRET**.

**Tesis certificadas:**
1. El emisor es un **punto único de fallo** de la prueba de persona: puede censurar la emisión, la revocación, la presentación o la correlación.
2. CRACS es un **área de investigación abierta**, sin solución consolidada ni estándar aprobado.
3. Los enfoques en desarrollo son: **emisión multiparte, credenciales con anclaje múltiple, pruebas de inclusión, reputación de emisores y apelación independiente**.
4. Todo sistema enfrenta el **trilema legitimidad / privacidad / resistencia**, sin solución perfecta.
5. LYRA-ID propone una **resistencia por capas** (legal, comunitaria, económica, recurso, transparencia) donde la censura de una capa no invalida la prueba de persona.
6. La prueba se considera válida si **al menos dos capas independientes** la respaldan, con legitimidad reducida cuando falta la capa legal.
7. Los riesgos (falsa resistencia, colusión, captura del Comité, correlación, exclusión) deben gestionarse con diversidad, independencia, separación de contextos y rutas de inclusión.
8. La hoja de ruta 2026-2030 pasa por **especificación, prototipo, piloto y evaluación**.

**Firmado:**
- **José Agustín Fontán Varela** — CEO de PASAIA LAB
- **INTELIGENCIA LIBRE** — Validación Metodológica
- **SISTEMA LYRA IA** — Innovación en IA
- **FORJA** — Solidez Técnica
- **ACCIÓN CIVIL DIGITAL** — Relevancia Social
- **DeepSeek IA** — Asistencia Técnica y Validación de Datos

---

### 🎨 PROMPT — Imagen: "CRACS: La Resistencia por Capas"

> *"Infografía técnica de estilo **editorial y sistémico**, formato horizontal panorámico (16:9), resolución 8K. Fondo azul noche con cuadrícula de datos. Centro: un **triángulo del trilema** con tres vértices **'LEGITIMIDAD'**, **'PRIVACIDAD'**, **'RESISTENCIA A CENSURA'** y una etiqueta central **'ELIGE DOS'**. Alrededor, cinco **capas concéntricas** que representan la arquitectura de resistencia por capas: **CAPA 1 — LEGAL** (EUDI Wallet, PID, etiqueta 'DEPENDE DEL ESTADO'), **CAPA 2 — COMUNITARIA** (atestación social, 3 vecinos, etiqueta 'ALTA RESISTENCIA'), **CAPA 3 — ECONÓMICA** (stake NCOIN, etiqueta 'MEDIA'), **CAPA 4 — RECURSO** (Comité de Ética, etiqueta 'EX POST'), **CAPA 5 — TRANSPARENCIA** (registro público de emisión, etiqueta 'AUDITABLE'). En la parte inferior, una **regla de composición** con la etiqueta **'VÁLIDA SI ≥2 CAPAS INDEPENDIENTES'** y dos ejemplos: **'SIN ESTADO: LEGITIMIDAD REDUCIDA'** y **'CON ESTADO: LEGITIMIDAD PLENA'**. A la derecha, un **panel de riesgos** con cinco iconos: **'FALSA RESISTENCIA'**, **'COLUSIÓN DE EMISORES'**, **'CAPTURA DEL COMITÉ'**, **'CORRELACIÓN ENTRE CAPAS'**, **'EXCLUSIÓN DE VULNERABLES'**. Título superior: **'CRACS'** en serif 3D dorada, subtítulo **'Resistencia a la Censura del Emisor · LYRA-ID'**. Franja institucional con logos de **PASAIA LAB · INTELIGENCIA LIBRE · SISTEMA LYRA IA · FORJA · ACCIÓN CIVIL DIGITAL · DEEPSEEK IA** y sello **'PL-LYRA-CRACS-2026-10-19'**. Pie legal: *'Ilustración analítica prospectiva. Línea de investigación abierta, sin estándar aprobado.'* Paleta: azul noche, cian, dorado, verde esmeralda, rojo carmesí, blanco perla. Estilo The Economist + MIT Technology Review + arquitectura de sistemas."*

---

 

 




# 🔍 LYRA-ID — Registro Público de Emisión y Emisión Multiparte

**Clasificación:** TOP SECRET // PASAIA LAB · INTELIGENCIA LIBRE
**Referencia:** PL-LYRA-REGISTRO-THRESHOLD-2026-10-19
**Beneficiario:** José Agustín Fontán Varela · CEO de PASAIA LAB

---

# PARTE A — REGISTRO PÚBLICO DE EMISIÓN Y SU INTEGRACIÓN CON LYRA-CHAIN

## A.1. El problema: la emisión invisible

Cuando un emisor deniega una credencial, **no queda rastro**. No hay forma de que el afectado pruebe que fue excluido, ni de que un auditor detecte un patrón de denegaciones arbitrarias. La censura de emisión es la más difícil de detectar porque ocurre **antes** de que exista una credencial que pueda auditarse.

El registro público de emisión invierte la lógica: **la ausencia también se registra**. Si el emisor se compromete a publicar un compromiso criptográfico de cada emisión, la denegación arbitraria deja una **huella verificable** (un hueco en la secuencia, una prueba de no inclusión).

## A.2. Requisitos de diseño

| Requisito | Descripción | Consecuencia técnica |
| :--- | :--- | :--- |
| **Sin PII** | El registro no puede contener datos personales | Solo hashes y compromisos |
| **Verificable por cualquiera** | Cualquier auditor puede comprobar la integridad | Anclaje en LYRA-CHAIN |
| **Prueba de inclusión** | El titular puede probar que fue incluido | Árbol de Merkle |
| **Prueba de no inclusión** | El afectado puede probar que fue excluido | Árbol de Merkle ordenado o acumulador |
| **Append-only** | No se puede borrar ni reescribir | Cadena de hashes |
| **Bajo coste** | Miles de emisiones no pueden saturar la cadena | Batching + Merkle root |
| **Privacidad del titular** | El registro no revela quién recibió qué | Compromiso con salt aleatorio |

## A.3. Estructura del registro

### A.3.1. Entrada de emisión (off-chain)

```
EntradaEmision {
  id_emision:     hash(credential_id)
  emisor_did:     did:lyra:issuer:...
  tipo_credencial: "PID" | "SOCIAL" | "STAKE" | ...
  compromiso:     SHA-256(salt | credential_hash | holder_did)
  timestamp:      Unix time
  estado:         "EMITIDA" | "DENEGADA"
  motivo_denegacion: null | "documentacion_incompleta" | "no_cumple_requisitos" | ...
}
```

**Propiedades del compromiso:**
- El `salt` es un valor aleatorio de 32 bytes que **solo conoce el titular**.
- Sin el salt, el compromiso es **opaco**: no se puede correlacionar con el DID del titular.
- El titular puede demostrar que su credencial está en el registro revelando el salt en un contexto controlado (prueba de inclusión selectiva).

### A.3.2. Anclaje en LYRA-CHAIN (on-chain)

Cada **hora** (o cada 10 minutos, configurable), un nodo faro agrega las entradas y publica un **Merkle root**:

```
TransaccionLYRA {
  tipo:           "ISSUANCE_ROOT"
  emisor_did:     did:lyra:issuer:...
  root:           merkle_root(compromisos)
  n_emisiones:    entero
  n_denegaciones: entero
  timestamp:      Unix time
  firma:          Ed25519(faro)
}
```

**Lo que queda on-chain:** root, contadores, timestamp, firma.
**Lo que no queda on-chain:** compromisos individuales, DIDs de titulares, datos personales.

### A.3.3. Prueba de inclusión

El titular demuestra que su credencial está en el registro:

1. Presenta la entrada original (id_emision, compromiso, salt).
2. Presenta la ruta de Merkle hasta el root.
3. El verificador comprueba: `MerkleVerify(compromiso, ruta) == root` y `root ∈ LYRA-CHAIN`.

**Privacidad:** el verificador solo ve el compromiso y la ruta, no el resto de entradas.

### A.3.4. Prueba de no inclusión (la pieza clave)

Para detectar censura, el afectado necesita probar que **su emisión no aparece** en el registro. Con un árbol de Merkle ordenado:

1. El afectado calcula el compromiso de su credencial (con su salt).
2. Solicita al faro la **prueba de no inclusión**: las dos entradas adyacentes que, por orden lexicográfico, deberían rodear su compromiso.
3. Verifica que `entrada_anterior < compromiso < entrada_siguiente` y que ambas están en el árbol.

Si el emisor **omitió deliberadamente** la emisión, el afectado puede demostrar que su compromiso debería estar entre dos entradas y no está. Esa prueba es **evidencia de censura**.

**Limitación honesta:** la prueba de no inclusión solo funciona si el afectado **conoce el compromiso** (es decir, si tiene el salt y el credential_hash). Si el emisor nunca le dio la credencial, el afectado no puede calcular el compromiso. La solución es que el emisor **entregue el compromiso al titular** en el momento de la denegación, o que el titular pueda **solicitar un recibo de denegación** firmado por el emisor.

## A.4. Prototipo en Python

```python
"""
lyra_registro_emision.py — PASAIA LAB / LYRA NEXUS
Prototipo educativo del registro público de emisión con anclaje Merkle.
"""

import hashlib
import secrets
import time
from dataclasses import dataclass, field
from enum import Enum
from typing import Dict, List, Optional, Tuple


class EstadoEmision(Enum):
    EMITIDA = "EMITIDA"
    DENEGADA = "DENEGADA"


@dataclass
class EntradaEmision:
    id_emision: str
    emisor_did: str
    tipo_credencial: str
    compromiso: str
    timestamp: float
    estado: EstadoEmision
    motivo_denegacion: Optional[str] = None

    def hash(self) -> str:
        payload = (
            f"{self.id_emision}|{self.emisor_did}|{self.tipo_credencial}|"
            f"{self.compromiso}|{round(self.timestamp, 3)}|{self.estado.value}"
        )
        return hashlib.sha256(payload.encode()).hexdigest()


def calcular_compromiso(salt: str, credential_hash: str, holder_did: str) -> str:
    """Compromiso opaco: sin salt, no se puede correlacionar con el titular."""
    return hashlib.sha256((salt + credential_hash + holder_did).encode()).hexdigest()


# ---------------------------------------------------------------- Merkle ordenado
def merkle_root_ordenado(hashes: List[str]) -> str:
    if not hashes:
        return hashlib.sha256(b"vacio").hexdigest()
    nivel = sorted(hashes)
    while len(nivel) > 1:
        siguiente = []
        for i in range(0, len(nivel), 2):
            a = nivel[i]
            b = nivel[i + 1] if i + 1 < len(nivel) else a
            siguiente.append(hashlib.sha256((a + b).encode()).hexdigest())
        nivel = siguiente
    return nivel[0]


def prueba_inclusion(hashes: List[str], objetivo: str) -> Optional[List[str]]:
    """Devuelve la ruta de Merkle o None si el objetivo no está."""
    nivel = sorted(hashes)
    if objetivo not in nivel:
        return None
    idx = nivel.index(objetivo)
    ruta = []
    while len(nivel) > 1:
        par = idx ^ 1
        if par < len(nivel):
            ruta.append(nivel[par])
        siguiente = []
        for i in range(0, len(nivel), 2):
            a = nivel[i]
            b = nivel[i + 1] if i + 1 < len(nivel) else a
            siguiente.append(hashlib.sha256((a + b).encode()).hexdigest())
        nivel = siguiente
        idx //= 2
    return ruta


def prueba_no_inclusion(hashes: List[str], objetivo: str) -> Optional[Tuple[str, str]]:
    """
    Devuelve las dos entradas adyacentes que rodean al objetivo.
    Si el objetivo estuviera, debería estar entre ellas.
    """
    ordenados = sorted(hashes)
    for i, h in enumerate(ordenados):
        if objetivo < h:
            anterior = ordenados[i - 1] if i > 0 else None
            return (anterior, h)
    return (ordenados[-1] if ordenados else None, None)


# ---------------------------------------------------------------- Faro de emisión
class FaroEmision:
    """Agrega entradas de emisión y publica Merkle roots en LYRA-CHAIN."""

    def __init__(self, chain=None, emisor_did: str = "did:lyra:issuer"):
        self.chain = chain
        self.emisor_did = emisor_did
        self.buffer: List[EntradaEmision] = []
        self.roots: List[dict] = []

    def registrar(self, entrada: EntradaEmision) -> None:
        self.buffer.append(entrada)

    def publicar_root(self) -> Optional[dict]:
        if not self.buffer:
            return None
        hashes = [e.hash() for e in self.buffer]
        root = merkle_root_ordenado(hashes)
        n_emitidas = sum(1 for e in self.buffer if e.estado == EstadoEmision.EMITIDA)
        n_denegadas = sum(1 for e in self.buffer if e.estado == EstadoEmision.DENEGADA)
        bloque = {
            "root": root,
            "n_emisiones": n_emitidas,
            "n_denegaciones": n_denegadas,
            "timestamp": time.time(),
            "hashes": hashes,
        }
        self.roots.append(bloque)
        if self.chain is not None:
            self.chain.añadir_transaccion({
                "tipo": "ISSUANCE_ROOT",
                "root": root,
                "n_emisiones": n_emitidas,
                "n_denegaciones": n_denegadas,
            })
        self.buffer = []
        return bloque


# ---------------------------------------------------------------- Auditoría
def auditar_tasa_denegacion(faro: FaroEmision, ventana: int = 10) -> dict:
    """
    Detecta patrones anómalos: si la tasa de denegación de un periodo
    supera la media histórica, marca para revisión.
    """
    if len(faro.roots) < ventana + 1:
        return {"suficientes_datos": False}
    recientes = faro.roots[-ventana:]
    historicos = faro.roots[:-ventana]
    tasa_reciente = sum(r["n_denegaciones"] for r in recientes) / max(
        1, sum(r["n_emisiones"] + r["n_denegaciones"] for r in recientes)
    )
    tasa_historica = sum(r["n_denegaciones"] for r in historicos) / max(
        1, sum(r["n_emisiones"] + r["n_denegaciones"] for r in historicos)
    )
    anomalia = tasa_reciente > tasa_historica * 2 and tasa_reciente > 0.20
    return {
        "tasa_reciente": round(tasa_reciente, 3),
        "tasa_historica": round(tasa_historica, 3),
        "anomalia": anomalia,
        "revisar_comite": anomalia,
    }
```

## A.5. Riesgos y mitigaciones

| Riesgo | Descripción | Mitigación |
| :--- | :--- | :--- |
| **Correlación por salt** | Si el salt se filtra, el compromiso se vuelve vinculable | Rotación de salt + custodia local |
| **Emisor que no publica** | El emisor se niega a anclar roots | Obligación contractual + auditoría del Comité |
| **Root vacío** | El emisor publica roots vacíos para simular actividad | Verificar `n_emisiones + n_denegaciones > 0` |
| **Prueba de no inclusión limitada** | El afectado necesita el salt para probarla | Recibo de denegación firmado por el emisor |
| **Frecuencia del root** | Roots muy espaciados retrasan la detección | Roots cada hora como máximo |
| **Privacidad del titular** | El registro podría usarse para rastrear | Compromisos opacos + ZKP de inclusión |

## A.6. Limitación estructural

El registro público **solo funciona si el emisor coopera**. Un emisor que se niegue a publicar roots no puede ser obligado por medios técnicos. La transparencia es una **obligación institucional**, no una garantía criptográfica. Su eficacia depende de que el ecosistema (verificadores, Comité, DAO) **rechace credenciales de emisores que no publican**.

---

# PARTE B — EMISIÓN MULTIPARTE (THRESHOLD ISSUANCE)

## B.1. El problema: el emisor único

Un emisor único puede denegar, revocar o ser capturado. La emisión multiparte sustituye al emisor único por un **comité de *n* emisores** donde se requiere un **umbral *t*** de firmas para emitir una credencial válida. Ningún emisor individual puede censurar.

## B.2. Base criptográfica

La técnica estándar es la **firma de umbral** (threshold signature), con esquemas como **FROST** (Flexible Round-Optimized Schnorr Threshold) o **BLS threshold**. Propiedades:

| Propiedad | Descripción |
| :--- | :--- |
| **t-de-n** | Se necesitan *t* firmas de *n* emisores para producir una firma válida |
| **Firma única** | El resultado es **una sola firma**, indistinguible de una firma normal |
| **Sin revelación** | El verificador no sabe qué *t* emisores participaron |
| **Tolerancia a fallos** | Hasta *n − t* emisores pueden estar caídos o ser maliciosos |

**Diferencia con Shamir clásico:** Shamir reparte un **secreto** (una clave privada); la firma de umbral reparte la **capacidad de firmar** sin que nadie tenga la clave completa. Es más seguro: no hay un momento en que la clave completa exista en un solo lugar.

## B.3. Composición del comité de emisores

El comité debe ser **heterogéneo** para que la captura de un actor no baste para censurar:

| Miembro | Rol | Peso |
| :--- | :--- | :--- |
| **Estado** (EUDI Wallet) | Ancla legal | 1 |
| **Comunidad local** (ikastola, asociación) | Ancla social | 1 |
| **Cooperativa** | Ancla económica | 1 |
| **Universidad / centro tecnológico** | Ancla técnica | 1 |
| **Organismo independiente** (Defensor del Pueblo, ONG) | Ancla de control | 1 |

**Parámetros recomendados:** *n* = 5, *t* = 3. Se necesitan **3 de 5** firmas. Un solo actor no puede censurar; dos coludidos tampoco; se necesitan al menos tres.

## B.4. Flujo de emisión

```
1. El solicitante presenta su prueba de persona (PID + social + stake).
2. El coordinador del comité distribuye la solicitud a los n emisores.
3. Cada emisor verifica la prueba de forma independiente y emite su firma parcial.
4. El coordinador agrega las t firmas parciales en una firma única.
5. La credencial se emite con la firma de umbral y se registra en el registro público.
6. El solicitante recibe la credencial y el compromiso (con su salt).
```

**Punto crítico:** cada emisor verifica **de forma independiente**. Si un emisor intenta censurar, los otros pueden alcanzar el umbral sin él.

## B.5. Prototipo en Python (extendiendo el Shamir anterior)

```python
"""
lyra_threshold.py — PASAIA LAB / LYRA NEXUS
Prototipo educativo de emisión multiparte con firma de umbral simulada.
"""

import hashlib
import secrets
from dataclasses import dataclass
from typing import Dict, List, Optional, Tuple

PRIMO = (1 << 127) - 1


# ---------------------------------------------------------------- Shamir (reutilizado)
def _evaluar(coefs: List[int], x: int, primo: int = PRIMO) -> int:
    y = 0
    for c in reversed(coefs):
        y = (y * x + c) % primo
    return y


def repartir(secreto: int, n: int, t: int, primo: int = PRIMO) -> List[Tuple[int, int]]:
    coefs = [secreto] + [secrets.randbelow(primo - 1) + 1 for _ in range(t - 1)]
    return [(i, _evaluar(coefs, i, primo)) for i in range(1, n + 1)]


def reconstruir(partes: List[Tuple[int, int]], primo: int = PRIMO) -> int:
    secreto = 0
    for i, (xi, yi) in enumerate(partes):
        num, den = 1, 1
        for j, (xj, _) in enumerate(partes):
            if i == j:
                continue
            num = (num * (-xj)) % primo
            den = (den * (xi - xj)) % primo
        inv = pow(den, -1, primo)
        secreto = (secreto + yi * num * inv) % primo
    return secreto


# ---------------------------------------------------------------- Comité
@dataclass
class Emisor:
    did: str
    nombre: str
    peso: int = 1
    activo: bool = True


class ComiteEmision:
    """
    Comité de emisores con umbral t-de-n.
    Simula una firma de umbral: cada emisor firma un hash con su parte
    del secreto; el coordinador agrega t partes y produce la firma única.
    """

    def __init__(self, emisores: List[Emisor], umbral: int):
        if umbral > len(emisores):
            raise ValueError("El umbral no puede superar el número de emisores")
        self.emisores = emisores
        self.umbral = umbral
        self.n = len(emisores)
        # Secreto de firma repartido entre los emisores
        self.secreto_firma = secrets.randbelow(PRIMO - 1) + 1
        self.partes: Dict[str, Tuple[int, int]] = {}
        for i, e in enumerate(emisores, start=1):
            x = i
            self.partes[e.did] = (x, _evaluar(
                [self.secreto_firma] + [secrets.randbelow(PRIMO - 1) + 1
                                         for _ in range(self.umbral - 1)],
                x,
            ))

    # ------------------------------------------------------------ Firma parcial
    def firmar_parcial(self, emisor_did: str, mensaje: str) -> Optional[dict]:
        emisor = next((e for e in self.emisores if e.did == emisor_did), None)
        if not emisor or not emisor.activo:
            return None
        x, y = self.partes[emisor_did]
        # Firma parcial simulada: hash(mensaje) * y mod p
        h = int(hashlib.sha256(mensaje.encode()).hexdigest(), 16) % PRIMO
        firma_parcial = (h * y) % PRIMO
        return {
            "emisor": emisor_did,
            "x": x,
            "firma_parcial": firma_parcial,
            "mensaje_hash": h,
        }

    # ------------------------------------------------------------ Agregación
    def agregar(self, firmas: List[dict], mensaje: str) -> Optional[dict]:
        if len(firmas) < self.umbral:
            return None
        # Reconstruir el secreto de firma a partir de las partes
        partes = [(f["x"], f["firma_parcial"] * pow(f["mensaje_hash"], -1, PRIMO) % PRIMO)
                  for f in firmas[:self.umbral]]
        secreto_reconstruido = reconstruir(partes)
        # La firma única es hash(mensaje) * secreto mod p
        h = int(hashlib.sha256(mensaje.encode()).hexdigest(), 16) % PRIMO
        firma_unica = (h * secreto_reconstruido) % PRIMO
        return {
            "mensaje": mensaje,
            "firma": firma_unica,
            "n_firmantes": len(firmas),
            "umbral": self.umbral,
        }

    # ------------------------------------------------------------ Verificación
    def verificar(self, firma: dict) -> bool:
        if not firma:
            return False
        h = int(hashlib.sha256(firma["mensaje"].encode()).hexdigest(), 16) % PRIMO
        esperado = (h * self.secreto_firma) % PRIMO
        return firma["firma"] == esperado

    # ------------------------------------------------------------ Rotación
    def rotar_emisor(self, did_saliente: str, nuevo: Emisor) -> bool:
        if did_saliente not in self.partes:
            return False
        # En producción: protocolo de re-sharing sin reconstruir el secreto
        del self.partes[did_saliente]
        self.emisores = [e for e in self.emisores if e.did != did_saliente]
        self.emisores.append(nuevo)
        x = len(self.emisores)
        self.partes[nuevo.did] = (x, _evaluar(
            [self.secreto_firma] + [secrets.randbelow(PRIMO - 1) + 1
                                     for _ in range(self.umbral - 1)],
            x,
        ))
        return True
```

**Nota de honestidad:** este prototipo **no es criptográficamente seguro**. Una firma de umbral real requiere FROST o BLS con curvas elípticas y pruebas de conocimiento cero para verificar las firmas parciales sin revelar las partes. El prototipo sirve para **entender el flujo**, no para producción.

## B.6. Comparativa: emisor único vs. emisión multiparte

| Dimensión | Emisor único | Emisión multiparte |
| :--- | :--- | :--- |
| **Resistencia a censura** | Baja (un actor decide) | Alta (se necesitan t coludidos) |
| **Disponibilidad** | Depende de un actor | Tolera n−t fallos |
| **Latencia** | Baja | Media (coordinación) |
| **Complejidad** | Baja | Alta (protocolo de umbral) |
| **Legitimidad** | Alta (si es el Estado) | Media-alta (comité heterogéneo) |
| **Privacidad** | Media | Alta (el verificador no sabe quién firmó) |
| **Auditoría** | Simple | Compleja (firmas parciales) |

## B.7. Riesgos de la emisión multiparte

| Riesgo | Descripción | Mitigación |
| :--- | :--- | :--- |
| **Colusión de t emisores** | t emisores pueden emitir credenciales sin verificar | Diversidad obligatoria + auditoría del Comité + rotación |
| **Disponibilidad** | Si caen más de n−t emisores, no se puede emitir | Emisores suplentes + modo de emergencia |
| **Latencia** | La coordinación añade tiempo | Protocolo asíncrono (FROST) + caché de firmas parciales |
| **Complejidad operativa** | Coordinar 5 actores heterogéneos es difícil | Gobernanza clara + SLA |
| **Captura del coordinador** | El coordinador podría bloquear solicitudes | Coordinador rotativo + verificación directa entre emisores |

## B.8. Integración con el registro público

La emisión multiparte y el registro público se complementan:

1. **La emisión multiparte** impide que un actor censure.
2. **El registro público** hace visible si la emisión ocurrió o no.
3. **Juntos**: si un comité se niega a emitir, el afectado puede probar la no inclusión; si un emisor intenta bloquear, los otros alcanzan el umbral.

---

### 🏛️ CERTIFICACIÓN

**Nº de Registro:** PL-LYRA-REGISTRO-THRESHOLD-2026-10-19
**Fecha:** 19 de octubre de 2026 · **Lugar:** Pasaia (Gipuzkoa), Euskadi

Se certifica que el presente **Análisis Técnico del Registro Público de Emisión y de la Emisión Multiparte (Threshold Issuance) en LYRA-ID** ha sido elaborado por **José Agustín Fontán Varela**, CEO de **PASAIA LAB**, con la colaboración de **INTELIGENCIA LIBRE**, **SISTEMA LYRA IA**, **FORJA**, **ACCIÓN CIVIL DIGITAL** y **DeepSeek IA – Asesor Inteligente**, bajo la clasificación **TOP SECRET**.

**Tesis certificadas:**
1. La censura de emisión es la más difícil de detectar porque ocurre antes de que exista una credencial auditable.
2. El registro público invierte la lógica: **la ausencia también se registra** mediante compromisos opacos y pruebas de no inclusión.
3. El anclaje en LYRA-CHAIN se realiza mediante **Merkle roots por lotes**, con coste constante e independiente del volumen.
4. El registro **solo funciona si el emisor coopera**; la transparencia es una obligación institucional, no una garantía criptográfica.
5. La emisión multiparte sustituye al emisor único por un **comité t-de-n** (recomendado 3-de-5) con firma de umbral (FROST/BLS).
6. El comité debe ser **heterogéneo** (Estado, comunidad, cooperativa, universidad, organismo independiente) para que la captura de un actor no baste para censurar.
7. El prototipo presentado es **educativo y no criptográficamente seguro**; una implementación real requiere curvas elípticas y pruebas de conocimiento cero.
8. La combinación de **emisión multiparte + registro público** cierra el círculo: la primera impide la censura, el segundo la hace visible.

**Firmado:**
- **José Agustín Fontán Varela** — CEO de PASAIA LAB
- **INTELIGENCIA LIBRE** — Validación Metodológica
- **SISTEMA LYRA IA** — Innovación en IA
- **FORJA** — Solidez Técnica
- **ACCIÓN CIVIL DIGITAL** — Relevancia Social
- **DeepSeek IA** — Asistencia Técnica y Validación de Datos

---

### 🎨 PROMPT 1 — Imagen: "El Registro Público de Emisión"

> *"Infografía técnica de estilo **editorial y sistémico**, formato horizontal panorámico (16:9), resolución 8K. Fondo azul noche con cuadrícula de datos. Centro: un **árbol de Merkle ordenado** con hojas etiquetadas como compromisos opacos (`a3f9...`, `b71c...`, `c04e...`), y una hoja **ausente** marcada con un hueco y la etiqueta **'PRUEBA DE NO INCLUSIÓN · EVIDENCIA DE CENSURA'**. A la izquierda, un **emisor** (silueta genérica) que publica entradas con dos estados: **'EMITIDA'** (check verde) y **'DENEGADA'** (cruz roja con motivo). A la derecha, un **titular** (silueta genérica) que presenta su **salt** y su **prueba de inclusión**, con la etiqueta **'SOLO EL TITULAR PUEDE VINCULAR SU COMPROMISO'**. En la parte inferior, una **cadena de bloques LYRA-CHAIN** con transacciones `ISSUANCE_ROOT`, cada una con `root`, `n_emisiones`, `n_denegaciones`, y la etiqueta **'COSTE CONSTANTE · INDEPENDIENTE DEL VOLUMEN'**. En la esquina inferior derecha, un **panel de auditoría** con un gráfico de tasa de denegación y la etiqueta **'ANOMALÍA: TASA RECIENTE > 2× HISTÓRICA'**. Título superior: **'EL REGISTRO PÚBLICO DE EMISIÓN'** en serif 3D dorada, subtítulo **'Transparencia y Prueba de No Inclusión · LYRA-ID'**. Franja institucional con logos de **PASAIA LAB · INTELIGENCIA LIBRE · SISTEMA LYRA IA · FORJA · ACCIÓN CIVIL DIGITAL · DEEPSEEK IA** y sello **'PL-LYRA-REGISTRO-THRESHOLD-2026-10-19'**. Pie legal: *'Ilustración analítica prospectiva. No representa un estándar aprobado ni capacidad operativa real.'* Paleta: azul noche, cian, dorado, verde esmeralda, rojo carmesí, blanco perla. Estilo The Economist + MIT Technology Review + arquitectura de sistemas."*

---

### 🎨 PROMPT 2 — Imagen: "La Emisión Multiparte (3-de-5)"

> *"Infografía técnica de estilo **editorial y sistémico**, formato horizontal panorámico (16:9), resolución 8K. Fondo azul noche con cuadrícula de datos. Centro: un **comité de cinco emisores** representados como cinco siluetas genéricas en semicírculo, cada una con un icono: **'ESTADO'** (documento con sello), **'COMUNIDAD'** (ikastola), **'COOPERATIVA'** (engranaje), **'UNIVERSIDAD'** (libro), **'ORGANISMO INDEPENDIENTE'** (balanza). Tres de ellas emiten **firmas parciales** (haces de luz cian) que convergen en un **coordinador central** (hexágono con el ojo de LYRA). Las otras dos aparecen **atenuadas** con la etiqueta **'NO NECESARIAS PARA EL UMBRAL'**. El coordinador produce una **firma única** (un sello dorado) con la etiqueta **'3-DE-5 · INDISTINGUIBLE DE UNA FIRMA NORMAL'**. A la izquierda, un **solicitante** (silueta genérica) presenta su **prueba de persona compuesta** (PID + social + stake). A la derecha, un **verificador** (silueta genérica) que solo ve la firma única, con la etiqueta **'NO SABE QUIÉN FIRMÓ'**. En la parte inferior, una **tabla comparativa** con dos columnas: **'EMISOR ÚNICO'** (baja resistencia, baja latencia, alta legitimidad) vs **'EMISIÓN MULTIPARTE'** (alta resistencia, media latencia, media-alta legitimidad). En la esquina inferior derecha, un **panel de riesgos** con cinco iconos: **'COLUSIÓN DE t EMISORES'**, **'DISPONIBILIDAD'**, **'LATENCIA'**, **'COMPLEJIDAD OPERATIVA'**, **'CAPTURA DEL COORDINADOR'**. Título superior: **'LA EMISIÓN MULTIPARTE'** en serif 3D dorada, subtítulo **'Threshold Issuance · 3-de-5 · Ningún Emisor Puede Censurar Solo'**. Franja institucional con logos de **PASAIA LAB · INTELIGENCIA LIBRE · SISTEMA LYRA IA · FORJA · ACCIÓN CIVIL DIGITAL · DEEPSEEK IA** y sello **'PL-LYRA-REGISTRO-THRESHOLD-2026-10-19'**. Pie legal: *'Ilustración analítica prospectiva. El prototipo es educativo y no criptográficamente seguro.'* Paleta: azul noche, cian, dorado, verde esmeralda, rojo carmesí, blanco perla. Estilo The Economist + MIT Technology Review + arquitectura de sistemas."*

---







 

 
 
 
 

 




 # 🏛️ CERTIFICADO DE ANÁLISIS TÉCNICO

**Clasificación:** TOP SECRET // PASAIA LAB · INTELIGENCIA LIBRE
**Nº de Registro:** PL-CERT-REGISTRO-THRESHOLD-2026-10-19
**Fecha de Emisión:** 19 de octubre de 2026
**Lugar de Emisión:** Pasaia (Gipuzkoa), Euskadi

---

## I. CERTIFICACIÓN DE AUTORÍA

Por la presente, se **certifica y acredita** que el análisis técnico titulado **"Registro Público de Emisión y Emisión Multiparte (Threshold Issuance) en LYRA-ID"** ha sido elaborado por **José Agustín Fontán Varela**, CEO de **PASAIA LAB**, con la colaboración de **INTELIGENCIA LIBRE**, **SISTEMA LYRA IA**, **FORJA**, **ACCIÓN CIVIL DIGITAL** y **DeepSeek IA – Asesor Inteligente**, bajo la clasificación **TOP SECRET**, como parte del ecosistema **LYRA NEXUS**.

---

## II. CONTENIDO CERTIFICADO

### Parte A — Registro Público de Emisión

| Componente | Descripción | Estado |
| :--- | :--- | :--- |
| **Inversión de la lógica de transparencia** | La ausencia de emisión también se registra como evidencia verificable | Certificado |
| **Compromisos opacos** | `SHA-256(salt \| credential_hash \| holder_did)` sin revelar PII | Certificado |
| **Anclaje Merkle en LYRA-CHAIN** | Roots por lotes con coste constante e independiente del volumen | Certificado |
| **Prueba de inclusión** | El titular demuestra que su credencial está en el registro | Certificado |
| **Prueba de no inclusión** | El afectado demuestra que fue excluido (árbol ordenado) | Certificado |
| **Recibo de denegación** | El emisor entrega un recibo firmado al denegar, para permitir la prueba | Certificado |
| **Auditoría de tasa de denegación** | Detección de anomalías (tasa reciente > 2× histórica) | Certificado |
| **Limitación estructural reconocida** | El registro solo funciona si el emisor coopera; la transparencia es obligación institucional, no garantía criptográfica | Certificado |

### Parte B — Emisión Multiparte (Threshold Issuance)

| Componente | Descripción | Estado |
| :--- | :--- | :--- |
| **Sustitución del emisor único** | Comité t-de-n (recomendado 3-de-5) con firma de umbral | Certificado |
| **Base criptográfica** | FROST / BLS threshold; una firma única indistinguible de una normal | Certificado |
| **Comité heterogéneo** | Estado + comunidad + cooperativa + universidad + organismo independiente | Certificado |
| **Verificación independiente** | Cada emisor verifica la prueba de persona por separado | Certificado |
| **Tolerancia a fallos** | Hasta n − t emisores caídos o maliciosos | Certificado |
| **Prototipo educativo** | Simulación en Python con Shamir; **no criptográficamente seguro** | Certificado con advertencia |
| **Riesgos identificados** | Colusión de t emisores, disponibilidad, latencia, complejidad, captura del coordinador | Certificado |
| **Integración con registro público** | La emisión multiparte impide la censura; el registro la hace visible | Certificado |

### Sinergia certificada

> **La combinación de emisión multiparte y registro público cierra el círculo de la resistencia a la censura del emisor:** la primera impide que un actor único bloquee la emisión; el segundo hace visible si la emisión ocurrió o no, y permite al afectado probar la exclusión.

---

## III. ADVERTENCIAS TÉCNICAS CERTIFICADAS

1. **El prototipo de emisión multiparte no es criptográficamente seguro.** Una implementación real requiere FROST o BLS con curvas elípticas y pruebas de conocimiento cero para verificar firmas parciales sin revelar las partes.
2. **La prueba de no inclusión requiere que el afectado conozca su compromiso** (salt + credential_hash). Sin recibo de denegación firmado por el emisor, la prueba no es viable.
3. **El registro público no puede obligar técnicamente a un emisor a publicar.** Su eficacia depende de que el ecosistema rechace credenciales de emisores que no publican.
4. **CRACS sigue siendo un área de investigación abierta.** No hay estándar aprobado ni solución consolidada.

---

## IV. INSTITUCIONES AVALISTAS

| Institución | Función Avalista |
| :--- | :--- |
| **PASAIA LAB** | Centro de innovación tecnológica y análisis estratégico |
| **INTELIGENCIA LIBRE** | Movimiento por la soberanía digital y el conocimiento abierto |
| **SISTEMA LYRA IA** | Ecosistema de inteligencia artificial descentralizada |
| **FORJA** | Comunidad de desarrollo y emprendimiento tecnológico |
| **ACCIÓN CIVIL DIGITAL** | Plataforma de participación ciudadana y análisis estratégico |
| **DeepSeek IA** | Asistencia técnica y validación de datos |

---

## V. CONDICIONES Y VALIDEZ

1. **Validez**: indefinida como acreditación de autoría y calidad analítica.
2. **Uso**: puede reproducirse, difundirse y citarse, reconociendo la autoría de **José Agustín Fontán Varela**, **PASAIA LAB** y las instituciones colaboradoras.
3. **Carácter educativo**: el contenido es un ejercicio de simulación y diseño arquitectónico, no software operativo ni estándar aprobado.
4. **Actualización**: las instituciones certificadoras pueden revisar el documento ante nuevos avances en CRACS o eIDAS 2.0.

---

## VI. FIRMAS Y SELLOS

**Firmado:**

*(Firma electrónica)*
**José Agustín Fontán Varela**
CEO de PASAIA LAB

*(Sello digital)*
**PASAIA LAB** — Certificación de Excelencia Técnica

*(Sello digital)*
**INTELIGENCIA LIBRE** — Validación Metodológica

*(Sello digital)*
**SISTEMA LYRA IA** — Innovación en IA

*(Sello digital)*
**FORJA** — Solidez Técnica

*(Sello digital)*
**ACCIÓN CIVIL DIGITAL** — Relevancia Social

*(Firma digital)*
**DeepSeek IA – Asesor Inteligente** — Validación de Estructura y Coherencia

---

# 🎨 PROMPT PARA EL CERTIFICADO VISUAL

> *"Certificado oficial de estilo **documento de inteligencia clasificado con sello institucional y fondo holográfico**, formato vertical (9:16), resolución 8K, que acredita el **Análisis Técnico del Registro Público de Emisión y la Emisión Multiparte en LYRA-ID**.*
>
> * **FONDO**: Papel de seguridad beige con textura de papel verjurado y una sutil cuadrícula de datos en gris claro. Sobre él, una red neuronal tenue en trazas cian y dorado que se difumina hacia los bordes. Marca de agua diagonal repetida en gris muy tenue: **'CONFIDENCIAL · LYRA NEXUS'**.*
>
> * **CABECERA (12% del alto)**: Franja horizontal **roja carmesí** con el texto **'TOP SECRET // PASAIA LAB EYES ONLY'** en tipografía monoespaciada blanca, centrado. Justo debajo, el **escudo hexagonal de PASAIA LAB** (ancla estilizada con eslabones de blockchain, en dorado y cian) flanqueado por dos líneas horizontales doradas.*
>
> * **TÍTULO Y REFERENCIA (10%)**: Título en **serif elegante y robusta, azul noche**: **'CERTIFICADO DE ANÁLISIS TÉCNICO'**. Subtítulo en sans-serif, gris carbón: **'Registro Público de Emisión y Emisión Multiparte (Threshold Issuance) en LYRA-ID'**. Referencia en monoespaciada roja: **'PL-CERT-REGISTRO-THRESHOLD-2026-10-19'**. Fecha en monoespaciada verde esmeralda: **'19 de octubre de 2026 · Pasaia (Gipuzkoa), Euskadi'**.*
>
> * **BLOQUE DE AUTORÍA (12%)**: Recuadro con borde dorado de 2 mm, sobre fondo blanco perla semitransparente. Texto centrado en cuatro líneas: **'OTORGADO A'** (sans-serif verde), **'JOSÉ AGUSTÍN FONTÁN VARELA'** (serif grande azul noche), **'CEO DE PASAIA LAB'** (sans-serif dorada), **'Creador y miembro de INTELIGENCIA LIBRE, ACCIÓN CIVIL DIGITAL y FORJA'** (cursiva gris carbón).*
>
> * **BLOQUE DE CONTENIDO CERTIFICADO (30%)**: Dos columnas paralelas con borde fino. Columna izquierda, título **'PARTE A · REGISTRO PÚBLICO'** en sans-serif cian, con seis viñetas con iconos: **'INVERSIÓN DE LA LÓGICA DE TRANSPARENCIA'**, **'COMPROMISOS OPACOS · SIN PII'**, **'ANCLAJE MERKLE EN LYRA-CHAIN'**, **'PRUEBA DE INCLUSIÓN'**, **'PRUEBA DE NO INCLUSIÓN · EVIDENCIA DE CENSURA'**, **'AUDITORÍA DE TASA DE DENEGACIÓN'**. Columna derecha, título **'PARTE B · EMISIÓN MULTIPARTE'** en sans-serif dorada, con seis viñetas: **'COMITÉ t-de-n · 3-DE-5'**, **'FIRMA DE UMBRAL · FROST/BLS'**, **'COMITÉ HETEROGÉNEO'**, **'VERIFICACIÓN INDEPENDIENTE'**, **'TOLERANCIA A FALLOS n−t'**, **'INTEGRACIÓN CON REGISTRO PÚBLICO'**.*
>
> * **BLOQUE DE ADVERTENCIAS (10%)**: Recuadro con borde rojo carmesí, título **'ADVERTENCIAS TÉCNICAS'** en sans-serif roja, con cuatro viñetas en sans-serif pequeña gris carbón: **'El prototipo no es criptográficamente seguro'**, **'La prueba de no inclusión requiere recibo de denegación'**, **'El registro no obliga técnicamente al emisor'**, **'CRACS es investigación abierta, sin estándar aprobado'**.*
>
> * **BLOQUE DE FIRMAS INSTITUCIONALES (18%)**: Seis recuadros alineados horizontalmente, cada uno con icono, nombre y línea de firma digital: **'PASAIA LAB'** (ancla), **'INTELIGENCIA LIBRE'** (libro y pluma), **'SISTEMA LYRA IA'** (ojo digital), **'FORJA'** (yunque), **'ACCIÓN CIVIL DIGITAL'** (antorcha), **'DEEPSEEK IA'** (hexágono).*
>
> * **SELLOS DE SEGURIDAD**: Sello de cera digital **rojo** con el logo de PASAIA LAB en la esquina inferior izquierda. **Código QR** dorado en la esquina inferior derecha con la etiqueta **'VERIFICAR AUTENTICIDAD'**. Sello circular cian con la referencia **'PL-CERT-REGISTRO-THRESHOLD-2026-10-19'** en el centro inferior.*
>
> * **PIE DE PÁGINA (8%)**: Franja azul noche con texto blanco en sans-serif pequeña: **'Ecosistema LYRA NEXUS · PASAIA LAB · INTELIGENCIA LIBRE · SISTEMA LYRA IA · FORJA · ACCIÓN CIVIL DIGITAL · DEEPSEEK IA'**. Debajo, en cursiva pequeña: **'Documento emitido bajo la clasificación TOP SECRET. Su uso no autorizado está prohibido.'***
>
> * **PALETA**: Beige pergamino, azul noche, dorado, rojo carmesí, cian, verde esmeralda, blanco perla, gris carbón.*
>
> * **ESTILO**: Documento oficial de alta seguridad con textura de papel de seguridad, sellos de cera y tipografía serif para títulos y sans-serif para listas. Iluminación plana y uniforme. Acabado de certificado escaneado."*

---

## 📌 Prompt resumido (copiar y pegar)

> *"Certificado oficial vertical 9:16, resolución 8K, estilo documento de inteligencia clasificado. Fondo beige pergamino con cuadrícula de datos y marca de agua 'CONFIDENCIAL · LYRA NEXUS'. Cabecera roja 'TOP SECRET // PASAIA LAB EYES ONLY' con escudo hexagonal de PASAIA LAB. Título 'CERTIFICADO DE ANÁLISIS TÉCNICO', subtítulo 'Registro Público de Emisión y Emisión Multiparte (Threshold Issuance) en LYRA-ID', referencia 'PL-CERT-REGISTRO-THRESHOLD-2026-10-19', fecha '19 de octubre de 2026 · Pasaia (Gipuzkoa), Euskadi'. Bloque de autoría: 'JOSÉ AGUSTÍN FONTÁN VARELA', 'CEO DE PASAIA LAB', 'Creador y miembro de INTELIGENCIA LIBRE, ACCIÓN CIVIL DIGITAL y FORJA'. Dos columnas: izquierda 'PARTE A · REGISTRO PÚBLICO' con seis viñetas (inversión de la lógica, compromisos opacos, anclaje Merkle, prueba de inclusión, prueba de no inclusión, auditoría de tasa); derecha 'PARTE B · EMISIÓN MULTIPARTE' con seis viñetas (comité 3-de-5, FROST/BLS, comité heterogéneo, verificación independiente, tolerancia n−t, integración). Recuadro rojo 'ADVERTENCIAS TÉCNICAS' con cuatro viñetas. Seis recuadros de firmas: PASAIA LAB, INTELIGENCIA LIBRE, SISTEMA LYRA IA, FORJA, ACCIÓN CIVIL DIGITAL, DEEPSEEK IA. Sellos: cera roja PASAIA LAB, QR 'VERIFICAR AUTENTICIDAD', sello cian con referencia. Pie azul noche con lema institucional y aviso TOP SECRET. Paleta: beige, azul noche, dorado, rojo carmesí, cian, verde esmeralda, blanco perla, gris carbón. Estilo documento oficial escaneado."*

---

**Firmado:**
- **José Agustín Fontán Varela** — CEO de PASAIA LAB
- **DeepSeek IA** — Asistencia Técnica y Validación

 


 


NEXT ;) CHAPTER 02

INTELIGENCIA LIBRE © 2020 by José Agustín Fontán Varela is licensed under CC BY-NC-ND 4.0

ENTRADA DESTACADA

**INFORME DE INTELIGENCIA PROSPECTIVA** EL FUTURO DE LA INTELIGENCIA ARTIFICIAL

 **INFORME DE INTELIGENCIA PROSPECTIVA** DESCLASIFICADO **Clasificación:** TOP SECRET // PASAIA LAB · INTELIGENCIA LIBRE **Referencia:** PL-...

ENTRADAS POPULARES