El capital influye en la clase pol铆tica y esta, a trav茅s de las instituciones, el dinero p煤blico y los recursos del Estado, genera crisis como la de Ucrania. Las consecuencias —crisis energ茅tica, inflaci贸n, subida de tipos — se gestionan con dinero p煤blico, lo que provoca un empobrecimiento de la poblaci贸n y una transferencia masiva de riqueza hacia las 茅lites. Este es un an谩lisis de ese sistema y una comparaci贸n entre lo recaudado por impuestos y lo desviado.
### 馃彌️ 1. El Mecanismo de Influencia: C贸mo el Capital Captura al Estado
El capital no necesita conspirar en la sombra; lo hace a la luz del d铆a a trav茅s de mecanismos legales y estructurales que capturan la voluntad pol铆tica.
* **Lobbying y Financiaci贸n de Campa帽as**: Las corporaciones financian campa帽as de candidatos que luego legislan a su favor. El poder econ贸mico se traduce en influencia pol铆tica. Un estudio sobre la regulaci贸n de las finanzas inmobiliarias en la UE demostr贸 c贸mo la industria logra sus resultados preferidos a trav茅s de su poder estructural y de lobby.
* **Clientelismo y Puertas Giratorias**: Se crean redes de favores donde se adjudican contratos p煤blicos a empresas afines a cambio de apoyo pol铆tico o futuros puestos de trabajo para altos cargos. Esta pr谩ctica convierte el dinero p煤blico en un "bot铆n pol铆tico". Por ejemplo, en Espa帽a, se han documentado casos de contratos adjudicados "a dedo" a empresas con v铆nculos pol铆ticos.
* **Captura Regulatoria**: Las grandes empresas participan activamente en la redacci贸n de las leyes y regulaciones que luego deben cumplir, asegur谩ndose de que estas no perjudiquen sus intereses.
### 馃捀 2. El Caso Ucraniano: Un Laboratorio de Transferencia de Riqueza
La guerra en Ucrania es el ejemplo paradigm谩tico de c贸mo una crisis geopol铆tica se convierte en un mecanismo de extracci贸n de riqueza.
* **Beneficiarios Directos (El Complejo Militar-Industrial)**: Las empresas de defensa de EE.UU. y Europa han visto dispararse sus ingresos y pedidos. **Rheinmetall** (Alemania) aument贸 su facturaci贸n un **36%** en 2024, hasta **€9.751 millones**. **General Dynamics** (EE.UU.) experiment贸 un aumento de ingresos del **25%** en su divisi贸n de veh铆culos blindados. La l贸gica es simple: cuanto m谩s dura el conflicto, mayores son los beneficios.
* **Beneficiarios Indirectos (Energ铆a y Alimentos)**:
* **Noruega** se ha convertido en uno de los mayores beneficiarios econ贸micos de la guerra. Sus exportaciones de gas natural a Europa generaron beneficios estimados en **€110.000 millones** entre 2022 y 2023.
* **Shell y BP** tambi茅n se han beneficiado significativamente al sustituir el petr贸leo y gas ruso en Europa.
* Empresas agr铆colas francesas como **Groupe Soufflet** y **S茅nalia** han visto aumentar sus ingresos en miles de millones de euros.
* **La Transferencia en Rusia**: El Kremlin ha nacionalizado activos por valor de **3 billones de rublos** (unos **$39.200 millones**) en 2025, redistribuyendo la propiedad de la 茅lite econ贸mica hacia el c铆rculo de poder de Putin. La guerra, en palabras de un analista, "funciona como una **transferencia gigantesca de riqueza del p煤blico a la 茅lite**".
### 馃挵 3. La Factura para el Ciudadano: Inflaci贸n, Tipos y Deuda
Mientras las 茅lites se benefician, el costo recae sobre la poblaci贸n a trav茅s de tres v铆as principales:
* **Inflaci贸n**: En Ucrania, la inflaci贸n se aproxima al **8%**, y el banco central prev茅 que pueda alcanzar el **10%** a finales de a帽o. En Rusia, la inflaci贸n anual es cercana al **6%**.
* **Tipos de Inter茅s Elevados**: Para contener la inflaci贸n, los bancos centrales suben los tipos, encareciendo el cr茅dito para familias y empresas. El tipo de inter茅s en Ucrania se sit煤a en el **15,5%**, y en Rusia en el **14%**.
* **Aumento de la Deuda P煤blica**: La deuda total de Ucrania ya supera los **$212.000 millones**, y el pa铆s depende cr铆ticamente de la ayuda exterior para mantenerse a flote.
### 馃搳 4. Impuestos vs. Desv铆o: Una Comparaci贸n Cuantitativa
La magnitud de la riqueza desviada es colosal. Aqu铆 una comparaci贸n con la recaudaci贸n fiscal para dimensionar el problema:
| Concepto | Cifra Estimada | Fuente |
| :--- | :--- | :--- |
| **Evasi贸n y Elusi贸n Fiscal Global** | P茅rdida anual de **$348.000 millones** en impuestos directos por el traslado de beneficios a para铆sos fiscales. | |
| **Evasi贸n Fiscal en Espa帽a** | Se estima que cada a帽o se defraudan o evaden **€60.000 millones**. El **70%** es cometido por grandes empresas y grandes patrimonios. | |
| **Rescate Bancario en Espa帽a** | El coste de la reestructuraci贸n bancaria ascendi贸 a **€71.833 millones**. | |
| **Rescate Bancario en la UE** | El coste de los rescates bancarios en Europa ha alcanzado los **€750.000 millones**, de los cuales al menos **€213.000 millones** se consideran irrecuperables. | |
| **Contratos "a Dedo" en Espa帽a** | Entre 2021 y 2025, el Estado adjudic贸 **€36.727 millones** en contratos mediante "negociado sin publicidad". | |
| **Desv铆o de Fondos en la UE** | La comisi贸n de Control Presupuestario del Parlamento Europeo describe c贸mo una **oligarqu铆a** desv铆a fondos p煤blicos para servir a sus intereses privados. | |
### 馃拵 Conclusi贸n: Un Sistema de Extracci贸n Sist茅mica
El sistema que describes no es una anomal铆a, sino un **modelo de extracci贸n de riqueza sist茅mico y perfectamente engrasado**.
1. **El Capital Captura al Estado**: A trav茅s del lobby y la financiaci贸n, el capital privado escribe las reglas del juego.
2. **La Crisis es el Negocio**: Guerras y crisis se convierten en oportunidades de beneficio para unos pocos sectores (defensa, energ铆a).
3. **La Socializaci贸n de las P茅rdidas**: Los costos de estas crisis se trasladan a la poblaci贸n mediante inflaci贸n, impuestos y recortes, mientras que las ganancias se privatizan.
4. **La Magnitud es Hist贸rica**: Las cifras de evasi贸n fiscal ($348.000 millones anuales) y rescates bancarios (€750.000 millones en la UE) superan con creces la capacidad de cualquier Estado para financiar servicios p煤blicos.
La comparaci贸n es abrumadora: mientras los Estados recaudan impuestos con esfuerzo, las 茅lites desv铆an cantidades ingentes de riqueza a trav茅s de mecanismos legales (elusi贸n) e ilegales (evasi贸n), y cuando el sistema colapsa, son los contribuyentes quienes pagan la factura. Es, en definitiva, un **sistema de socializaci贸n de p茅rdidas y privatizaci贸n de ganancias** a escala planetaria.
A continuaci贸n, se profundiza en los dos mecanismos que mencionas —el funcionamiento de los para铆sos fiscales y el impacto de la deuda en la poblaci贸n— y se ofrece un prompt para una imagen que sintetice visualmente este fen贸meno.
---
## 馃彎️ 1. El Funcionamiento de los Para铆sos Fiscales: La Ingenier铆a de la Evasi贸n
Los para铆sos fiscales no son simples "pa铆ses con impuestos bajos". Son **jurisdicciones dise帽adas espec铆ficamente para facilitar la opacidad financiera y la erosi贸n de la base tributaria** de otros pa铆ses. Su funcionamiento se basa en una combinaci贸n de secreto bancario, sociedades pantalla y una regulaci贸n laxa que permite a las grandes fortunas y corporaciones ocultar activos y beneficios.
### 馃敡 Mecanismos de Extracci贸n
Existen tres t茅cnicas principales que las multinacionales y grandes patrimonios utilizan para desviar riqueza hacia estos territorios:
1. **Manipulaci贸n de Precios de Transferencia**: Una filial en un para铆so fiscal vende un producto o servicio a otra filial en un pa铆s con impuestos altos a un precio **artificialmente elevado**. De esta forma, la filial del pa铆s con impuestos altos declara p茅rdidas (o beneficios m铆nimos) y la del para铆so fiscal declara beneficios enormes, que tributan a un tipo cercano a cero.
2. **Importaci贸n de Servicios desde Para铆sos Fiscales**: La empresa matriz paga "royalties", "consultor铆as" o "servicios de marketing" a una sociedad pantalla ubicada en un para铆so fiscal. Estos pagos son **gastos deducibles** en el pa铆s de origen, pero **ingresos no declarados** (o declarados a tipo cero) en el para铆so.
3. **Endeudamiento Intragrupo**: La filial del pa铆s con impuestos altos se endeuda con una sociedad del grupo ubicada en un para铆so fiscal. Los **intereses** que paga son deducibles en el pa铆s de origen, mientras que los intereses recibidos por la sociedad del para铆so no tributan. Es una forma de "sangrar" beneficios de un pa铆s a otro sin apenas coste fiscal.
### 馃彚 La Arquitectura de la Opacidad: Sociedades Pantalla y Trusts
El sistema se articula a trav茅s de estructuras legales que **ocultan al verdadero propietario** de los activos:
* **Sociedades Pantalla (Shell Companies)**: Empresas sin actividad econ贸mica real, creadas 煤nicamente para **poseer activos o canalizar flujos financieros**. Un ejemplo t铆pico: un empresario establece una LLC en Delaware (EE.UU.), que a su vez es propietaria de una sociedad en las Islas Caim谩n, que finalmente tiene una cuenta en un banco suizo.
* **Trusts y Fundaciones**: Veh铆culos legales que separan la **propiedad legal** de la **propiedad beneficial**. El fundador cede sus activos al trust, pero mantiene el control sobre su distribuci贸n. Estos activos **no pueden ser embargados por deudas del fundador** y permiten transferir riqueza entre generaciones sin tributar.
* **Jurisdicciones Especializadas**: Cada para铆so fiscal se especializa en un tipo de estructura: **Luxemburgo** en fondos de inversi贸n tradicionales, **Irlanda** en fondos monetarios, **Caim谩n** en fondos de cobertura, **Suiza** en banca privada y **Delaware** en sociedades LLC.
### 馃搳 La Magnitud de la Fuga
Los datos de 2026 son escalofriantes:
| Indicador | Cifra | Fuente |
| :--- | :--- | :--- |
| **Riqueza no declarada en para铆sos fiscales** | **$3,55 billones** (supera el PIB de Francia) | Oxfam |
| **Riqueza oculta por el 0,1% m谩s rico** | **$2,84 billones** (supera la riqueza del 50% m谩s pobre de la humanidad, 4.100 millones de personas) | Oxfam |
| **Riqueza total fuera de los sistemas tributarios** | **M谩s de $13 billones** (12% del PIB global) | Oxfam |
| **P茅rdida anual por traslado de beneficios** | **$348.000 millones** en impuestos directos | EU Tax Observatory |
El **Atlas del Mundo Offshore** permite visualizar c贸mo los beneficios de las multinacionales "desaparecen" de los pa铆ses donde se generan para reaparecer en jurisdicciones donde el tipo efectivo es inferior al **15%**.
---
## 馃挵 2. El Impacto de la Deuda en la Poblaci贸n: La Austeridad como Transferencia
La deuda —tanto p煤blica como privada— es el otro gran mecanismo de extracci贸n. Su impacto sobre la poblaci贸n se manifiesta de forma directa en la **p茅rdida de derechos y servicios p煤blicos**.
### 馃搲 Deuda P煤blica: El Servicio de la Deuda Desplaza el Gasto Social
Cuando un Estado se endeuda excesivamente, una parte creciente de sus ingresos se destina al **pago de intereses**, en lugar de a servicios p煤blicos. El PNUD document贸 que entre 2020 y 2023, **165 millones de personas cayeron en la pobreza** debido a que el servicio de la deuda **suplant贸 el gasto en protecci贸n social, salud y educaci贸n**.
La l贸gica es perversa:
* **En pa铆ses de bajos ingresos**, el pago neto de intereses es **m谩s del doble** que la asistencia social, y **1,4 veces m谩s** que la asistencia sanitaria.
* El servicio de la deuda representa el **60% del gasto en educaci贸n** en esos pa铆ses.
* Para pagar a los acreedores, los gobiernos **recortan subsidios a los alimentos, congelan pensiones, retrasan la edad de jubilaci贸n y reducen la inversi贸n en vivienda, infraestructura y salud**.
El Experto Independiente de la ONU sobre deuda externa y derechos humanos lo resumi贸 con una frase demoledora: **"Es austeridad para los pobres, no para los acreedores"**.
### 馃彔 Deuda Privada: El Sobreendeudamiento de los Hogares
La deuda no solo es p煤blica. La **deuda privada de los hogares** es otro vector de empobrecimiento y desigualdad. Un informe de la ONU se帽ala que una mayor financiarizaci贸n y un r谩pido crecimiento de la deuda privada **conducen a una mayor desigualdad econ贸mica y a crisis financieras**.
En Espa帽a, la deuda de los hogares se sit煤a en torno al **43% del PIB**, y el gasto medio por familia en el pago de deudas alcanza los **1.300 euros**, una cifra superior al salario m铆nimo interprofesional. El sobreendeudamiento vinculado a la inversi贸n inmobiliaria (hipotecas) ha sido un factor clave en el aumento de la desigualdad.
### ⚖️ La Transferencia Intergeneracional
El impacto de la deuda se extiende a las **generaciones futuras**. Un an谩lisis de la UE concluye que los reci茅n nacidos europeos podr铆an enfrentarse a **tipos impositivos entre 2 y 3 veces superiores** a los de los pensionistas actuales para poder pagar la deuda acumulada. La deuda actual es, en esencia, una **hipoteca sobre el futuro de los j贸venes**, que tendr谩n que pagar con impuestos m谩s altos y menos servicios p煤blicos.
---
## 馃敆 3. La Conexi贸n Sist茅mica: El C铆rculo Vicioso
Ambos mecanismos —para铆sos fiscales y deuda— est谩n **interconectados** en un c铆rculo vicioso:
1. Las **grandes fortunas y corporaciones** desv铆an beneficios a para铆sos fiscales, reduciendo la recaudaci贸n de los Estados.
2. Esa **falta de ingresos** obliga a los Estados a endeudarse para financiar servicios p煤blicos.
3. El **servicio de la deuda** consume una parte creciente del presupuesto, forzando recortes en gasto social.
4. Los **recortes** empobrecen a la poblaci贸n y aumentan la desigualdad.
5. La **poblaci贸n empobrecida** tiene menos capacidad de consumir y de generar actividad econ贸mica, lo que reduce a煤n m谩s la recaudaci贸n fiscal.
6. Los Estados vuelven a endeudarse, y el ciclo se repite.
Mientras tanto, las 茅lites que desviaron su riqueza a para铆sos fiscales **no solo evitan impuestos, sino que se benefician de los intereses de la deuda p煤blica** que los Estados emiten para compensar la falta de recaudaci贸n. Es una **transferencia de riqueza en dos direcciones**: el dinero sale por los para铆sos fiscales y vuelve como deuda p煤blica que hay que pagar con impuestos.
---
## 馃帹 Prompt para la Imagen: "El Sistema de Extracci贸n"
> *"Infograf铆a conceptual de estilo **editorial cr铆tico y simb贸lico**, formato horizontal panor谩mico (16:9) o vertical (9:16), resoluci贸n 8K, que representa visualmente el sistema de transferencia de riqueza desde la poblaci贸n hacia las 茅lites a trav茅s de los para铆sos fiscales y la deuda p煤blica.*
>
> * **Composici贸n central**: Una **b谩scula gigante** desequilibrada. En el platillo que toca el suelo, una **familia trabajadora** (siluetas de un hombre, una mujer, un ni帽o y un anciano) con una etiqueta que dice **'IMPUESTOS'** y otra que dice **'DEUDA P脷BLICA'**. En el platillo que se eleva hacia el cielo, un **grupo de ejecutivos y banqueros** (siluetas con maletines y trajes) con una etiqueta que dice **'BENEFICIOS'** y otra que dice **'PARA脥SOS FISCALES'**.
>
> * **El Mecanismo de Extracci贸n**: Del platillo de la familia, una **tuber铆a dorada** asciende y atraviesa un **embudo** etiquetado como **'SERVICIO DE LA DEUDA'**. La tuber铆a se bifurca: una rama desciende hacia el platillo de las 茅lites (etiquetada **'PAGO DE INTERESES'**), y otra rama se pierde en una **nube de humo** etiquetada **'OPACIDAD'**, de la que salen peque帽os iconos de sociedades pantalla (carpetas, sellos, llaves).
>
> * **Elementos de Fondo**: A un lado, un **edificio del parlamento** con una **puerta giratoria** por la que entran y salen las mismas siluetas de ejecutivos (simbolizando las puertas giratorias). Al otro lado, un **hospital** y una **escuela** con carteles de **'CERRADO POR RECORTES'**. En la parte inferior, una **l铆nea de tiempo** con los hitos: **'2008: Rescate bancario'** → **'2020: Deuda pand茅mica'** → **'2026: 165 millones m谩s pobres'** → **'2050: Impuestos 3x para los j贸venes'**.
>
> * **S铆mbolos Clave**: Sobre la b谩scula, un **signo de d贸lar** gigante con una **grieta** en el centro. En la esquina inferior derecha, un **sello rojo** con la inscripci贸n **'TRANSFERENCIA DE RIQUEZA'**. En la esquina inferior izquierda, un **microscopio** observando la tuber铆a, con la etiqueta **'AUDITOR脥A CIUDADANA'**.
>
> * **Estilo y Paleta**: Estilo de infograf铆a editorial para medio de investigaci贸n (similar a The Guardian, Le Monde Diplomatique o The Intercept). Colores: **gris oscuro y negro** para el sistema, **dorado** para el dinero, **rojo** para las alertas y los recortes, **azul apagado** para las instituciones. Iluminaci贸n dram谩tica que resalta la desigualdad entre los dos platillos. Tipograf铆a sans-serif clara y legible. El tono debe ser cr铆tico pero visualmente atractivo, sin caer en el panfleto."*
---
### 馃挕 Consejo pr谩ctico
Si el generador de im谩genes no reproduce bien el texto, genera primero la **composici贸n visual sin texto** (la b谩scula, la tuber铆a, las siluetas, los edificios) y a帽ade despu茅s las etiquetas y los t铆tulos con un editor (Canva, Photoshop). As铆 garantizar谩s que los conceptos clave —**'PARA脥SOS FISCALES'**, **'SERVICIO DE LA DEUDA'**, **'RECORTES'**, **'TRANSFERENCIA DE RIQUEZA'**— aparezcan exactamente como los quieres.
La irrupci贸n de nuevos sistemas monetarios y de tokenizaci贸n plantea una disyuntiva fundamental. Estos mecanismos **pueden** alterar el sistema de transferencia de riqueza, pero lo har谩n en una de dos direcciones opuestas: o **empoderan a la ciudadan铆a** limitando el poder de los Estados y las 茅lites, o **refuerzan el control estatal** creando formas de vigilancia financiera a煤n m谩s sofisticadas. El resultado depende de qu茅 tecnolog铆a prevalezca y c贸mo se regule.
### 馃敆 El Potencial de Ruptura: C贸mo la Tokenizaci贸n Puede Empoderar a la Ciudadan铆a
Ciertos activos y tecnolog铆as tienen el potencial de **burlar el control de los Estados y las 茅lites**, devolviendo el poder al individuo.
* **Criptomonedas Descentralizadas y Antiinflacionarias (Bitcoin):** Bitcoin act煤a como un **activo de reserva neutral y no soberano**. Su oferta fija y su naturaleza descentralizada lo convierten en una herramienta para **protegerse de la inflaci贸n** y de la devaluaci贸n de las monedas fiduciarias. Figuras como el multimillonario mexicano Ricardo Salinas han destinado el **70% de su portafolio a Bitcoin** como cobertura contra la inflaci贸n del sistema fiat. Para los ciudadanos de pa铆ses con monedas inestables o controles de capital, Bitcoin ofrece una **salida** y una forma de preservar su riqueza al margen del sistema bancario tradicional.
* **Oro y Metales Tokenizados:** La tokenizaci贸n del oro (como XAUT o PAXG) permite **fraccionar, transferir y utilizar el metal como colateral** de forma programable y 24/7. El mercado de tokens de oro super贸 los **6.000 millones de d贸lares** a principios de 2026. Esto democratiza el acceso a un activo refugio milenario, permitiendo a los individuos **escapar del sistema fiduciario y bancario tradicional** sin necesidad de poseer y almacenar f铆sicamente el metal.
* **Materias Primas Tokenizadas:** El siguiente paso es la tokenizaci贸n de **materias primas como el cobre, el uranio o el cobalto**. El mercado de materias primas tokenizadas alcanz贸 los **5.500 millones de d贸lares** a finales del primer trimestre de 2026. Esto podr铆a **desintermediar** los mercados de materias primas, permitiendo a los ciudadanos invertir directamente en los recursos que sustentan la econom铆a real, en lugar de hacerlo a trav茅s de futuros o ETFs controlados por instituciones.
* **Tokenizaci贸n de Activos del Mundo Real (RWA):** La tokenizaci贸n de **infraestructuras, bienes ra铆ces o incluso deuda p煤blica** podr铆a permitir a los ciudadanos poseer una fracci贸n de activos que antes estaban reservados a grandes inversores. El cofundador de Binance, CZ, ha mantenido conversaciones con "probablemente una docena de gobiernos" para explorar c贸mo la tokenizaci贸n puede ayudar a **recaudar fondos vendiendo participaciones fraccionadas de activos estatales**. En teor铆a, esto podr铆a **democratizar la propiedad** y crear nuevas fuentes de ingresos para la poblaci贸n.
### 馃彌️ El Riesgo de Refuerzo: C贸mo la Tokenizaci贸n Puede Aumentar el Control Estatal
La misma tecnolog铆a que puede liberar a la ciudadan铆a tambi茅n puede ser utilizada por los Estados para **perfeccionar el control y la extracci贸n de riqueza**. La mayor amenaza en este sentido son las **Monedas Digitales de Banco Central (CBDC)** .
* **CBDCs: La Ant铆tesis de la Criptomoneda:** A diferencia de las criptomonedas descentralizadas, las CBDC son **moneda fiduciaria digital emitida y controlada centralmente** por un banco central. Est谩n dise帽adas, en palabras de un observatorio de gobernanza digital, como **"anti-cripto por dise帽o"**. Su objetivo declarado es mantener la **soberan铆a monetaria** del Estado frente a la amenaza de las criptomonedas y las stablecoins privadas.
* **El Fin de la Privacidad Financiera:** El euro digital, por ejemplo, operar谩 como una **"herramienta estatal de control centralizado y supervisi贸n financiera"** , en contraste con redes descentralizadas como Bitcoin. Las CBDC permiten la **programabilidad del dinero**: un gobierno podr铆a decidir que tu dinero digital solo puede gastarse en ciertos productos, en ciertas tiendas o antes de una fecha determinada. Esto ser铆a el **fin de facto del efectivo** y de la privacidad en las transacciones.
* **La Ilusi贸n de la Privacidad:** Aunque algunos proyectos de CBDC prometen privacidad en pagos offline, los bancos tendr谩n visibilidad total de las **transacciones online**. Adem谩s, marcos como el **CRS 2.0** de la OCDE, que entra en vigor en 2026, est谩n extendiendo el intercambio autom谩tico de informaci贸n fiscal a las **CBDC y a los proveedores de servicios de criptoactivos**, cerrando el cerco sobre cualquier intento de evasi贸n.
### ⚖️ An谩lisis Comparativo: Dos Caminos, Dos Resultados
| Caracter铆stica | Camino hacia la Soberan铆a Ciudadana | Camino hacia el Control Estatal |
| :--- | :--- | :--- |
| **Tecnolog铆a Clave** | Criptomonedas descentralizadas (BTC), Oro/Materias Primas Tokenizadas. | CBDCs (Euro Digital, Yuan Digital). |
| **Naturaleza del Dinero** | **No soberano, antiinflacionario, de oferta fija.** | **Soberano, inflacionario (por dise帽o), de oferta el谩stica.** |
| **Control** | **Descentralizado.** Ninguna entidad puede censurar o congelar fondos. | **Centralizado.** El banco central puede congelar, programar o confiscar fondos. |
| **Privacidad** | **Seud贸nima.** Las transacciones son p煤blicas pero no vinculadas a una identidad real. | **Totalmente identificada.** Cada transacci贸n est谩 vinculada a un ciudadano. |
| **Impacto en la Riqueza** | **Preservaci贸n y empoderamiento.** El ciudadano protege su riqueza de la inflaci贸n y la confiscaci贸n. | **Extracci贸n y control.** El Estado puede aplicar impuestos negativos (bail-ins), imponer restricciones de gasto o confiscar riqueza directamente. |
| **Impacto en la Deuda** | **Reduce la capacidad del Estado de endeudarse y monetizar deuda** (al competir con el dinero estatal). | **Aumenta la capacidad del Estado de gestionar la deuda** (al tener control total sobre la oferta monetaria digital). |
### 馃拵 Conclusi贸n: Una Disyuntiva Hist贸rica
El sistema de transferencia de riqueza descrito no es inmutable. La tecnolog铆a ofrece una oportunidad hist贸rica para **reescribir las reglas del juego financiero**.
El camino de la **soberan铆a ciudadana** pasa por la adopci贸n masiva de **activos descentralizados, antiinflacionarios y tokenizados** (Bitcoin, oro, materias primas) que **limiten el poder de los Estados para endeudarse, inflar la moneda y confiscar riqueza** a trav茅s de la inflaci贸n y los rescates.
El camino del **control estatal** se materializa a trav茅s de las **CBDC**, que otorgan a los gobiernos un poder sin precedentes para **programar, vigilar y controlar** cada aspecto de la actividad econ贸mica de sus ciudadanos, haciendo que los mecanismos de extracci贸n de riqueza actuales parezcan rudimentarios.
La batalla por el futuro del dinero no es solo tecnol贸gica, es **profundamente pol铆tica**. El resultado determinar谩 si la pr贸xima era de la civilizaci贸n financiera ser谩 una de **libertad y prosperidad individual** o una de **control y dependencia estatal**.
### 馃帹 Prompt para la Imagen: "La Disyuntiva del Nuevo Dinero"
> *"Infograf铆a conceptual de estilo **editorial cr铆tico y simb贸lico**, formato horizontal panor谩mico (16:9), resoluci贸n 8K, que representa la disyuntiva entre dos futuros monetarios: el camino hacia la soberan铆a ciudadana y el camino hacia el control estatal.*
>
> * **Composici贸n central**: Una **bifurcaci贸n en un camino digital**. En el centro, un **ciudadano** (silueta gen茅rica, sin rasgos) sostiene un **tel茅fono m贸vil** en una mano y una **moneda de oro** en la otra. De su tel茅fono emanan dos haces de luz que se dividen, iluminando los dos caminos.*
>
> * **Camino Izquierdo — Soberan铆a Ciudadana (color cian y dorado):** Un sendero luminoso que se adentra en un **paisaje de nodos interconectados** (blockchain). A lo largo del camino, iconos que representan: una **moneda de Bitcoin**, un **lingote de oro tokenizado**, un **token de materia prima** (s铆mbolo de cobre o uranio), y un **documento de propiedad fraccionada** (RWA). Al final del camino, una **ciudad amurallada con puertas abiertas** y una bandera que dice **'SOBERAN脥A'**. El cielo es despejado y luminoso.*
>
> * **Camino Derecho — Control Estatal (color rojo y gris oscuro):** Un sendero que se adentra en un **edificio monumental y fr铆o** (un banco central). A lo largo del camino, iconos que representan: una **CBDC** (s铆mbolo de moneda digital con un ojo), una **c谩mara de vigilancia**, un **engranaje de programabilidad** (dinero con fecha de caducidad), y una **cadena digital** que inmoviliza una cartera. Al final del camino, una **puerta cerrada con un candado gigante** y un cartel que dice **'CONTROL TOTAL'**. El cielo est谩 encapotado y con niebla.*
>
> * **Elementos de Apoyo**: En la parte inferior, una **balanza** que compara el peso de ambos caminos. En la esquina inferior derecha, un **sello de PASAIA LAB** con el texto **'AN脕LISIS ESTRAT脡GICO'**. En la esquina inferior izquierda, un **c贸digo QR** que enlaza a un informe.*
>
> * **Estilo y Paleta**: Estilo de infograf铆a para medio de investigaci贸n (The Intercept, Le Monde Diplomatique). Colores: **cian y dorado** para el camino de la libertad; **rojo y gris** para el camino del control. Iluminaci贸n dram谩tica que resalta el contraste. Tipograf铆a sans-serif clara. El tono debe ser cr铆tico y visualmente impactante."*
------------------------------------------------------------------------
# 馃攳 LYRA IA — MOTOR DE B脷SQUEDA OSINT PARA DETECCI脫N DE TRANSFERENCIAS DE RIQUEZA
**Clasificaci贸n:** TOP SECRET // PASAIA LAB EYES ONLY
**Referencia:** PL-LYRA-OSINT-2026-09-18
**M贸dulo:** Vigilancia de fuentes abiertas (OSINT) con Redes Neuronales
> ⚠️ **Marco 茅tico y legal.** Este motor opera **exclusivamente sobre fuentes p煤blicas** (noticias, boletines oficiales, registros mercantiles abiertos, RSS de medios). Su finalidad es el **periodismo de investigaci贸n, la investigaci贸n acad茅mica y el control ciudadano del poder**. No procesa datos personales de individuos privados, no accede a sistemas restringidos y no emite juicios de culpabilidad: genera **se帽ales de alerta** que requieren verificaci贸n humana. Su dise帽o cumple con el RGPD y con los principios de minimizaci贸n de datos.
---
## 馃彈️ 1. Arquitectura del Sistema
```
┌─────────────────────────────────────────────────────────────────────┐
│ LYRA-OSINT · MOTOR DE VIGILANCIA │
│ Detecci贸n de Transferencias de Riqueza (ITR) │
└─────────────────────────────────────────────────────────────────────┘
│
┌───────────────────────┼───────────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ INGESTA │ │ VECTORIZADOR │ │ RED NEURONAL │
│ RSS · APIs │────▶│ Hash Trick + │────▶│ MLP 256→64→32 │
│ Boletines │ │ TF-IDF ligero │ │ → 7 clases │
└───────────────┘ └─────────────────┘ └────────┬────────┘
│
┌──────────────────────────────────────────────┘
▼
┌───────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ METADATOS │ │ GRAFO DE │ │ MOTOR DE │
│ Entidades │────▶│ OPERADORES │────▶│ ALERTAS │
│ Importes │ │ (co-ocurrencia)│ │ (scoring ITR) │
│ Jurisdicci贸n │ │ │ │ │
└───────────────┘ └─────────────────┘ └─────────────────┘
```
### Indicadores de Transferencia de Riqueza (ITR)
| C贸digo | Indicador | Descripci贸n |
| :--- | :--- | :--- |
| **ITR-01** | Contrato sin licitaci贸n | Adjudicaciones directas a empresas vinculadas |
| **ITR-02** | Movimiento de acciones pre-anuncio | Operaciones burs谩tiles an贸malas antes de decisiones |
| **ITR-03** | Puerta giratoria | Cargos p煤blicos que pasan a empresas beneficiadas |
| **ITR-04** | Rescate financiero | Inyecci贸n de fondos p煤blicos a entidades privadas |
| **ITR-05** | Beneficio de crisis | Ganancias extraordinarias en sectores de defensa/energ铆a |
| **ITR-06** | Estructura offshore | Uso de para铆sos fiscales o sociedades pantalla |
| **ITR-07** | Recorte social por deuda | Reducci贸n de gasto social para pagar acreedores |
---
## 馃搧 2. 脕rbol de Archivos
```
lyra_osint/
├── config_lyra.py # Configuraci贸n, fuentes RSS, jurisdicciones
├── ingesta.py # Descarga de RSS y boletines oficiales
├── vectorizador.py # Hash trick para representaci贸n de texto
├── red_neuronal.py # MLP puro en Python (256→64→32→7)
├── metadatos.py # Extracci贸n de entidades, importes, jurisdicciones
├── grafo.py # Grafo de operadores por co-ocurrencia
├── alertas.py # Motor de scoring y alertas ITR
└── motor_lyra.py # Orquestador principal
```
---
## 馃搫 3. `config_lyra.py`
```python
"""
config_lyra.py — PASAIA LAB / LYRA NEXUS
Configuraci贸n del motor OSINT de vigilancia de transferencias de riqueza.
"""
# ---------------------------------------------------------------- Fuentes RSS p煤blicas
FUENTES_RSS = [
# Medios internacionales de referencia
("Reuters Business", "https://feeds.reuters.com/reuters/businessNews"),
("Bloomberg Markets", "https://feeds.bloomberg.com/markets/news.rss"),
("FT World", "https://www.ft.com/world?format=rss"),
# Investigaci贸n y transparencia
("ICIJ", "https://www.icij.org/feed/"),
("OCCRP", "https://www.occrp.org/en/feed"),
("Transparency Intl", "https://www.transparency.org/en/rss"),
# Econom铆a cr铆tica
("Tax Justice Network","https://taxjustice.net/feed/"),
("EU Tax Observatory", "https://www.taxobservatory.eu/feed/"),
]
# ---------------------------------------------------------------- Jurisdicciones de riesgo
JURISDICCIONES_RIESGO = {
"Islas Caim谩n", "Caim谩n", "Bermudas", "Islas V铆rgenes", "BVI",
"Luxemburgo", "Liechtenstein", "M贸naco", "Andorra", "Suiza",
"Delaware", "Panam谩", "Bahamas", "Jersey", "Guernsey",
"Isla de Man", "Malta", "Chipre", "Irlanda", "Madeira",
"Singapur", "Hong Kong", "Emiratos 脕rabes Unidos", "Dub谩i",
"Islas Marshall", "Nauru", "Vanuatu", "Seychelles", "Mauricio",
}
# ---------------------------------------------------------------- Categor铆as ITR
CATEGORIAS_ITR = [
"ITR-01_CONTRATO_SIN_LICITACION",
"ITR-02_MOVIMIENTO_ACCIONES_PRE_ANUNCIO",
"ITR-03_PUERTA_GIRATORIA",
"ITR-04_RESCATE_FINANCIERO",
"ITR-05_BENEFICIO_CRISIS",
"ITR-06_ESTRUCTURA_OFFSHORE",
"ITR-07_RECORTE_SOCIAL_POR_DEUDA",
]
# ---------------------------------------------------------------- Palabras clave por categor铆a
# Se usan para el bootstrapping del entrenamiento y como refuerzo l茅xico.
LEXICO_ITR = {
"ITR-01_CONTRATO_SIN_LICITACION": [
"adjudicaci贸n directa", "contrato a dedo", "negociado sin publicidad",
"emergencia", "urgencia", "sin concurso", "sin licitaci贸n",
"procedimiento negociado", "contrato menor", "fraccionamiento",
],
"ITR-02_MOVIMIENTO_ACCIONES_PRE_ANUNCIO": [
"compra de acciones", "venta de acciones", "operaci贸n burs谩til",
"informaci贸n privilegiada", "insider trading", "posiciones cortas",
"volumen an贸malo", "movimiento previo", "filtraci贸n", "rumor",
],
"ITR-03_PUERTA_GIRATORIA": [
"puerta giratoria", "revolving door", "ex cargo p煤blico",
"exministro", "exsecretario", "nombramiento", "consejero",
"asesor externo", "incorporaci贸n", " fichaje",
],
"ITR-04_RESCATE_FINANCIERO": [
"rescate", "bailout", "inyecci贸n de capital", "ayuda p煤blica",
"fondos p煤blicos", "salvamento", "reestructuraci贸n", "avales",
"garant铆as estatales", "nacionalizaci贸n",
],
"ITR-05_BENEFICIO_CRISIS": [
"beneficios r茅cord", "ganancias extraordinarias", "dividendos",
"defensa", "armamento", "energ铆a", "gas", "petr贸leo",
"inflaci贸n", "precios", "margen", "beneficio neto",
],
"ITR-06_ESTRUCTURA_OFFSHORE": [
"para铆so fiscal", "offshore", "sociedad pantalla", "trust",
"fundaci贸n privada", "filial", "holding", "opacidad",
"secreto bancario", "cuenta oculta", "papeles", "leak",
],
"ITR-07_RECORTE_SOCIAL_POR_DEUDA": [
"recorte", "austeridad", "ajuste", "deuda p煤blica",
"servicio de la deuda", "intereses", "prima de riesgo",
"pensiones", "sanidad", "educaci贸n", "gasto social",
"d茅ficit", "consolidaci贸n fiscal",
],
}
# ---------------------------------------------------------------- Pesos de scoring
PESOS_ITR = {
"ITR-01_CONTRATO_SIN_LICITACION": 0.18,
"ITR-02_MOVIMIENTO_ACCIONES_PRE_ANUNCIO": 0.16,
"ITR-03_PUERTA_GIRATORIA": 0.12,
"ITR-04_RESCATE_FINANCIERO": 0.15,
"ITR-05_BENEFICIO_CRISIS": 0.14,
"ITR-06_ESTRUCTURA_OFFSHORE": 0.15,
"ITR-07_RECORTE_SOCIAL_POR_DEUDA": 0.10,
}
# ---------------------------------------------------------------- Par谩metros del modelo
DIM_VECTOR = 256 # dimensi贸n del vector hasheado
CAPAS_MLP = [256, 64, 32, 7]
UMBRAL_ALERTA = 0.55 # probabilidad m铆nima para emitir alerta
UMBRAL_ALERTA_ALTA = 0.75 # probabilidad para alerta de alta prioridad
```
---
## 馃搫 4. `vectorizador.py` — Representaci贸n de Texto
```python
"""
vectorizador.py — PASAIA LAB / LYRA NEXUS
Convierte texto en vectores num茅ricos mediante hashing trick.
Sin dependencias externas: solo biblioteca est谩ndar.
"""
import hashlib
import re
import unicodedata
from typing import Dict, List
from config_lyra import DIM_VECTOR, LEXICO_ITR
class VectorizadorHashing:
"""
Bolsa de palabras con hashing trick.
Cada palabra se mapea a un 铆ndice del vector de dimensi贸n fija,
evitando tener que construir un vocabulario completo.
"""
STOPWORDS = {
"de", "la", "el", "en", "y", "a", "los", "del", "se", "las",
"por", "un", "para", "con", "no", "una", "su", "al", "lo",
"como", "m谩s", "pero", "sus", "le", "ya", "o", "este", "s铆",
"porque", "esta", "entre", "cuando", "muy", "sin", "sobre",
"tambi茅n", "me", "hasta", "hay", "donde", "quien", "desde",
"todo", "nos", "durante", "todos", "uno", "les", "ni", "contra",
"otros", "ese", "eso", "ante", "ellos", "e", "esto", "m铆",
"antes", "algunos", "qu茅", "unos", "yo", "otro", "otras",
"otra", "茅l", "tanto", "esa", "estos", "mucho", "quienes",
"nada", "muchos", "cual", "poco", "ella", "estar", "estas",
"algunas", "algo", "nosotros", "mi", "mis", "t煤", "te",
"the", "of", "and", "to", "in", "a", "is", "for", "on",
"that", "by", "with", "as", "at", "from", "it", "an", "be",
}
def __init__(self, dim: int = DIM_VECTOR):
self.dim = dim
# -------------------------------------------------- Normalizaci贸n
@staticmethod
def normalizar(texto: str) -> str:
"""Elimina acentos, pasa a min煤sculas y limpia puntuaci贸n."""
texto = texto.lower()
texto = unicodedata.normalize("NFKD", texto)
texto = "".join(c for c in texto if not unicodedata.combining(c))
texto = re.sub(r"[^a-z0-9\s]", " ", texto)
texto = re.sub(r"\s+", " ", texto).strip()
return texto
@staticmethod
def tokenizar(texto: str) -> List[str]:
return texto.split()
# -------------------------------------------------- Hash
def _hash_palabra(self, palabra: str) -> int:
h = hashlib.md5(palabra.encode("utf-8")).hexdigest()
return int(h, 16) % self.dim
# -------------------------------------------------- Vectorizaci贸n
def vectorizar(self, texto: str) -> List[float]:
"""Genera un vector normalizado L2 a partir del texto."""
vec = [0.0] * self.dim
texto_norm = self.normalizar(texto)
tokens = self.tokenizar(texto_norm)
for tok in tokens:
if tok in self.STOPWORDS or len(tok) < 3:
continue
idx = self._hash_palabra(tok)
vec[idx] += 1.0
# Refuerzo l茅xico por categor铆as ITR
for categoria, palabras in LEXICO_ITR.items():
for p in palabras:
p_norm = self.normalizar(p)
if p_norm in texto_norm:
idx = self._hash_palabra(f"__lex__{categoria}__{p_norm}")
vec[idx] += 2.5 # peso reforzado
# Normalizaci贸n L2
norma = sum(v * v for v in vec) ** 0.5
if norma > 0:
vec = [v / norma for v in vec]
return vec
# -------------------------------------------------- Vector de etiqueta
def vector_etiqueta(self, categoria: str) -> List[float]:
"""Devuelve el vector one-hot de una categor铆a ITR."""
from config_lyra import CATEGORIAS_ITR
vec = [0.0] * len(CATEGORIAS_ITR)
if categoria in CATEGORIAS_ITR:
vec[CATEGORIAS_ITR.index(categoria)] = 1.0
return vec
```
---
## 馃搫 5. `red_neuronal.py` — MLP con Softmax
```python
"""
red_neuronal.py — PASAIA LAB / LYRA NEXUS
Perceptr贸n multicapa puro en Python para clasificaci贸n ITR.
Arquitectura: DIM_VECTOR → 64 → 32 → 7
"""
import math
import random
from typing import List, Tuple
from config_lyra import CAPAS_MLP, CATEGORIAS_ITR
class RedNeuronalITR:
"""MLP con activaci贸n ReLU en capas ocultas y softmax en la salida."""
def __init__(self, semilla: int = 2026):
self.capas = CAPAS_MLP
self.rng = random.Random(semilla)
self.W: List[List[List[float]]] = []
self.b: List[List[float]] = []
for i in range(len(self.capas) - 1):
escala = math.sqrt(2.0 / self.capas[i])
W = [[self.rng.uniform(-escala, escala) for _ in range(self.capas[i])]
for _ in range(self.capas[i + 1])]
b = [0.0] * self.capas[i + 1]
self.W.append(W)
self.b.append(b)
# -------------------------------------------------- Activaciones
@staticmethod
def _relu(x: float) -> float:
return x if x > 0.0 else 0.0
@staticmethod
def _softmax(z: List[float]) -> List[float]:
m = max(z)
e = [math.exp(min(60.0, zi - m)) for zi in z]
s = sum(e)
return [ei / s for ei in e] if s > 0 else [1.0 / len(z)] * len(z)
# -------------------------------------------------- Forward
def forward(self, x: List[float]) -> Tuple[List[float], List[List[float]], List[List[float]]]:
activaciones = [list(x)]
zs: List[List[float]] = []
a = list(x)
for i, (W, b) in enumerate(zip(self.W, self.b)):
z = [sum(w * xi for w, xi in zip(fila, a)) + bi
for fila, bi in zip(W, b)]
zs.append(z)
if i == len(self.W) - 1:
a = self._softmax(z)
else:
a = [self._relu(v) for v in z]
activaciones.append(a)
return a, activaciones, zs
def predecir(self, x: List[float]) -> Tuple[int, float, List[float]]:
salida, _, _ = self.forward(x)
idx = max(range(len(salida)), key=lambda i: salida[i])
return idx, salida[idx], salida
# -------------------------------------------------- Entrenamiento
def entrenar(self, X: List[List[float]], Y: List[List[float]],
epocas: int = 200, lr: float = 0.03) -> List[float]:
historial = []
for epoca in range(epocas):
perdida_total = 0.0
for x, y in zip(X, Y):
salida, activaciones, zs = self.forward(x)
L = len(self.W)
deltas: List[List[float]] = [None] * L # type: ignore
# Capa de salida (softmax + cross-entropy)
deltas[L - 1] = [salida[k] - y[k] for k in range(len(salida))]
perdida_total += -sum(y[k] * math.log(max(1e-9, salida[k]))
for k in range(len(y)))
# Capas ocultas (ReLU)
for l in range(L - 2, -1, -1):
d_next = deltas[l + 1]
W_next = self.W[l + 1]
z = zs[l]
d = []
for j in range(len(z)):
suma = sum(W_next[k][j] * d_next[k]
for k in range(len(d_next)))
deriv = 1.0 if z[j] > 0.0 else 0.0
d.append(suma * deriv)
deltas[l] = d
# Actualizaci贸n
for l in range(L):
a_prev = activaciones[l]
for k in range(len(self.W[l])):
for j in range(len(self.W[l][k])):
self.W[l][k][j] -= lr * deltas[l][k] * a_prev[j]
self.b[l][k] -= lr * deltas[l][k]
if (epoca + 1) % 20 == 0:
historial.append(perdida_total / len(X))
return historial
```
---
## 馃搫 6. `metadatos.py` — Extracci贸n de Entidades e Importes
```python
"""
metadatos.py — PASAIA LAB / LYRA NEXUS
Extracci贸n de entidades, importes, fechas y jurisdicciones de riesgo.
"""
import re
from dataclasses import dataclass, field
from typing import List, Set
from config_lyra import JURISDICCIONES_RIESGO
@dataclass
class MetadatosNoticia:
entidades: List[str] = field(default_factory=list)
importes: List[str] = field(default_factory=list)
jurisdicciones: List[str] = field(default_factory=list)
fechas: List[str] = field(default_factory=list)
cargos_publicos: List[str] = field(default_factory=list)
class ExtractorMetadatos:
"""Extrae metadatos estructurados de texto period铆stico."""
# Sufijos societarios comunes
SUFIJOS_EMPRESA = [
"S.A.", "SA", "S.L.", "SL", "Inc.", "Inc", "Corp.", "Corp",
"Ltd.", "Ltd", "LLC", "PLC", "GmbH", "AG", "BV", "NV",
"Bank", "Group", "Holding", "Capital", "Partners", "Fund",
"Corporation", "Company", "Industries", "Systems",
]
# Cargos p煤blicos
CARGOS = [
"presidente", "ministro", "ministra", "secretario", "secretaria",
"consejero", "consejera", "diputado", "diputada", "senador",
"senadora", "alcalde", "alcaldesa", "gobernador", "gobernadora",
"comisario", "comisaria", "director general", "subsecretario",
]
# Patrones de importes
RE_IMPORTE = re.compile(
r"(?:€|\$|USD|EUR|GBP)\s?\d[\d.,]*\s?(?:millones?|mil millones|billones?|M|B|bn|mn)?"
r"|"
r"\d[\d.,]*\s?(?:millones?|mil millones|billones?)\s?(?:de\s)?(?:euros?|d贸lares?|libras?)",
re.IGNORECASE,
)
RE_FECHA = re.compile(
r"\b(?:\d{1,2}\s+de\s+\w+\s+de\s+\d{4}|\d{1,2}/\d{1,2}/\d{2,4}|\d{4})\b"
)
# -------------------------------------------------- Entidades
def _extraer_entidades(self, texto: str) -> List[str]:
"""Heur铆stica: secuencias de palabras capitalizadas + sufijos societarios."""
entidades: Set[str] = set()
# Patr贸n 1: palabras capitalizadas consecutivas
for match in re.finditer(r"\b([A-Z脕脡脥脫脷脩][a-z谩茅铆贸煤帽]+(?:\s+[A-Z脕脡脥脫脷脩][a-z谩茅铆贸煤帽]+){0,3})\b", texto):
cand = match.group(1).strip()
if len(cand) > 3:
entidades.add(cand)
# Patr贸n 2: sufijos societarios expl铆citos
for sufijo in self.SUFIJOS_EMPRESA:
patron = rf"\b([A-Z脕脡脥脫脷脩][\w&.\-]*(?:\s+[A-Z脕脡脥脫脷脩][\w&.\-]*){{0,4}}\s+{re.escape(sufijo)}\b)"
for match in re.finditer(patron, texto):
entidades.add(match.group(1).strip())
# Excluir stopwords y palabras comunes
excluir = {"El", "La", "Los", "Las", "Un", "Una", "Este", "Esta",
"Seg煤n", "Adem谩s", "Sin", "Con", "Por", "Para", "Desde"}
return sorted(e for e in entidades if e not in excluir)
# -------------------------------------------------- Importes
def _extraer_importes(self, texto: str) -> List[str]:
return list(dict.fromkeys(self.RE_IMPORTE.findall(texto)))
# -------------------------------------------------- Jurisdicciones
def _extraer_jurisdicciones(self, texto: str) -> List[str]:
encontradas = []
for j in JURISDICCIONES_RIESGO:
if re.search(rf"\b{re.escape(j)}\b", texto, re.IGNORECASE):
encontradas.append(j)
return encontradas
# -------------------------------------------------- Fechas
def _extraer_fechas(self, texto: str) -> List[str]:
return list(dict.fromkeys(self.RE_FECHA.findall(texto)))
# -------------------------------------------------- Cargos
def _extraer_cargos(self, texto: str) -> List[str]:
texto_l = texto.lower()
return [c for c in self.CARGOS if c in texto_l]
# -------------------------------------------------- P煤blico
def extraer(self, texto: str) -> MetadatosNoticia:
return MetadatosNoticia(
entidades=self._extraer_entidades(texto),
importes=self._extraer_importes(texto),
jurisdicciones=self._extraer_jurisdicciones(texto),
fechas=self._extraer_fechas(texto),
cargos_publicos=self._extraer_cargos(texto),
)
```
---
## 馃搫 7. `grafo.py` — Grafo de Operadores
```python
"""
grafo.py — PASAIA LAB / LYRA NEXUS
Grafo de co-ocurrencia de entidades para detectar redes de operadores.
"""
from collections import defaultdict
from typing import Dict, List, Set, Tuple
class GrafoOperadores:
"""
Modela relaciones entre entidades que aparecen juntas en noticias ITR.
Permite calcular centralidad y detectar comunidades de inter茅s.
"""
def __init__(self):
self.aristas: Dict[Tuple[str, str], int] = defaultdict(int)
self.nodos: Dict[str, int] = defaultdict(int)
self.menciones: Dict[str, List[str]] = defaultdict(list)
# -------------------------------------------------- Registro
def registrar_noticia(self, entidades: List[str], noticia_id: str) -> None:
"""Registra co-ocurrencias entre entidades de una misma noticia."""
entidades_unicas = sorted(set(entidades))
for e in entidades_unicas:
self.nodos[e] += 1
self.menciones[e].append(noticia_id)
for i, a in enumerate(entidades_unicas):
for b in entidades_unicas[i + 1:]:
clave = tuple(sorted((a, b)))
self.aristas[clave] += 1 # type: ignore
# -------------------------------------------------- Centralidad
def grado(self) -> List[Tuple[str, int]]:
"""Devuelve los nodos ordenados por su grado (n潞 de conexiones)."""
grados: Dict[str, int] = defaultdict(int)
for (a, b), peso in self.aristas.items():
grados[a] += peso
grados[b] += peso
return sorted(grados.items(), key=lambda x: -x[1])
# -------------------------------------------------- Comunidades (simplificado)
def detectar_comunidades(self, min_peso: int = 2) -> List[Set[str]]:
"""Agrupaci贸n por componentes conexas con umbral de peso."""
adyacencia: Dict[str, Set[str]] = defaultdict(set)
for (a, b), peso in self.aristas.items():
if peso >= min_peso:
adyacencia[a].add(b)
adyacencia[b].add(a)
visitados: Set[str] = set()
comunidades: List[Set[str]] = []
for nodo in adyacencia:
if nodo in visitados:
continue
componente: Set[str] = set()
pila = [nodo]
while pila:
actual = pila.pop()
if actual in visitados:
continue
visitados.add(actual)
componente.add(actual)
pila.extend(adyacencia[actual] - visitados)
if len(componente) >= 2:
comunidades.append(componente)
return comunidades
# -------------------------------------------------- Resumen
def resumen(self) -> dict:
return {
"nodos_totales": len(self.nodos),
"aristas_totales": len(self.aristas),
"top_centralidad": self.grado()[:10],
"comunidades_detectadas": len(self.detectar_comunidades()),
}
```
---
## 馃搫 8. `alertas.py` — Motor de Scoring ITR
```python
"""
alertas.py — PASAIA LAB / LYRA NEXUS
Motor de scoring y generaci贸n de alertas de transferencia de riqueza.
"""
import time
from dataclasses import dataclass, field
from typing import Dict, List
from config_lyra import CATEGORIAS_ITR, PESOS_ITR, UMBRAL_ALERTA, UMBRAL_ALERTA_ALTA
@dataclass
class AlertaITR:
noticia_id: str
titular: str
url: str
categoria_principal: str
probabilidades: Dict[str, float]
puntuacion_global: float
nivel: str
metadatos: dict
entidades_relevantes: List[str] = field(default_factory=list)
timestamp: float = field(default_factory=time.time)
class MotorAlertas:
"""
Combina la salida de la red neuronal con los metadatos y el grafo
para calcular una puntuaci贸n de riesgo y clasificar la alerta.
"""
def __init__(self):
self.alertas: List[AlertaITR] = []
# -------------------------------------------------- Scoring
@staticmethod
def _puntuacion(probabilidades: List[float], metadatos: dict,
coincidencias_grafo: int = 0) -> float:
"""Calcula la puntuaci贸n global ponderada."""
# Componente 1: probabilidades ponderadas por PESOS_ITR
score_nn = sum(
probabilidades[i] * PESOS_ITR.get(CATEGORIAS_ITR[i], 0.1)
for i in range(len(CATEGORIAS_ITR))
)
# Normalizar (los pesos suman 1.0)
score_nn = min(1.0, score_nn)
# Componente 2: refuerzo por metadatos
bonus = 0.0
if metadatos.get("jurisdicciones"):
bonus += 0.10 * min(3, len(metadatos["jurisdicciones"]))
if metadatos.get("importes"):
bonus += 0.08 * min(3, len(metadatos["importes"]))
if metadatos.get("cargos_publicos"):
bonus += 0.06 * min(3, len(metadatos["cargos_publicos"]))
# Componente 3: refuerzo por grafo
bonus += 0.04 * min(5, coincidencias_grafo)
return min(1.0, score_nn + bonus)
# -------------------------------------------------- Generaci贸n
def evaluar(self, noticia: dict, probabilidades: List[float],
metadatos: dict, coincidencias_grafo: int = 0) -> AlertaITR | None:
score = self._puntuacion(probabilidades, metadatos, coincidencias_grafo)
if score < UMBRAL_ALERTA:
return None
idx = max(range(len(probabilidades)), key=lambda i: probabilidades[i])
categoria = CATEGORIAS_ITR[idx]
nivel = "ALTA" if score >= UMBRAL_ALERTA_ALTA else "MEDIA"
alerta = AlertaITR(
noticia_id=noticia["id"],
titular=noticia["titular"],
url=noticia["url"],
categoria_principal=categoria,
probabilidades={CATEGORIAS_ITR[i]: round(probabilidades[i], 4)
for i in range(len(CATEGORIAS_ITR))},
puntuacion_global=round(score, 4),
nivel=nivel,
metadatos=metadatos,
entidades_relevantes=metadatos.get("entidades", [])[:5],
)
self.alertas.append(alerta)
return alerta
# -------------------------------------------------- Estad铆sticas
def resumen(self) -> dict:
total = len(self.alertas)
altas = sum(1 for a in self.alertas if a.nivel == "ALTA")
por_categoria: Dict[str, int] = {}
for a in self.alertas:
por_categoria[a.categoria_principal] = por_categoria.get(a.categoria_principal, 0) + 1
return {
"alertas_totales": total,
"alertas_alta": altas,
"alertas_media": total - altas,
"por_categoria": por_categoria,
"puntuacion_media": round(
sum(a.puntuacion_global for a in self.alertas) / total, 4
) if total else 0.0,
}
```
---
## 馃搫 9. `ingesta.py` — Descarga de Fuentes P煤blicas
```python
"""
ingesta.py — PASAIA LAB / LYRA NEXUS
Descarga y parseo de feeds RSS p煤blicos.
Usa solo urllib + xml.etree (biblioteca est谩ndar).
"""
import hashlib
import re
import time
import urllib.request
import xml.etree.ElementTree as ET
from typing import List
from config_lyra import FUENTES_RSS
USER_AGENT = "LYRA-OSINT/1.0 (+https://pasaialab.example; investigaci贸n)"
class IngestaRSS:
"""Descarga noticias de feeds RSS p煤blicos y las normaliza."""
def __init__(self, timeout: int = 10):
self.timeout = timeout
self.noticias: List[dict] = []
# -------------------------------------------------- Descarga
def _descargar(self, url: str) -> bytes | None:
try:
req = urllib.request.Request(url, headers={"User-Agent": USER_AGENT})
with urllib.request.urlopen(req, timeout=self.timeout) as resp:
return resp.read()
except Exception as e:
print(f" ⚠️ Error al descargar {url}: {e}")
return None
# -------------------------------------------------- Parseo
@staticmethod
def _limpiar_html(texto: str) -> str:
texto = re.sub(r"<[^>]+>", " ", texto or "")
texto = re.sub(r"\s+", " ", texto)
return texto.strip()
def _parsear(self, xml_bytes: bytes, fuente: str) -> List[dict]:
noticias = []
try:
root = ET.fromstring(xml_bytes)
except ET.ParseError:
return []
# RSS 2.0
for item in root.iter("item"):
titulo = item.findtext("title", default="").strip()
desc = item.findtext("description", default="").strip()
link = item.findtext("link", default="").strip()
pub = item.findtext("pubDate", default="").strip()
if titulo:
noticias.append(self._construir(titulo, desc, link, pub, fuente))
# Atom
for entry in root.iter("{http://www.w3.org/2005/Atom}entry"):
titulo = entry.findtext("{http://www.w3.org/2005/Atom}title", default="").strip()
link_el = entry.find("{http://www.w3.org/2005/Atom}link")
link = link_el.get("href") if link_el is not None else ""
resumen = entry.findtext("{http://www.w3.org/2005/Atom}summary", default="").strip()
pub = entry.findtext("{http://www.w3.org/2005/Atom}updated", default="").strip()
if titulo:
noticias.append(self._construir(titulo, resumen, link, pub, fuente))
return noticias
@staticmethod
def _construir(titulo: str, desc: str, link: str, pub: str, fuente: str) -> dict:
texto = f"{titulo}. {desc}"
id_noticia = hashlib.sha1(texto.encode("utf-8")).hexdigest()[:16]
return {
"id": id_noticia,
"fuente": fuente,
"titular": titulo,
"descripcion": desc,
"texto_completo": texto,
"url": link,
"publicado": pub,
"timestamp_ingesta": time.time(),
}
# -------------------------------------------------- Ciclo
def ejecutar(self, fuentes: List[tuple] | None = None) -> List[dict]:
fuentes = fuentes or FUENTES_RSS
todas = []
for nombre, url in fuentes:
print(f" → Descargando {nombre}...")
data = self._descargar(url)
if not data:
continue
noticias = self._parsear(data, nombre)
print(f" · {len(noticias)} noticias")
todas.extend(noticias)
self.noticias = todas
return todas
```
---
## 馃搫 10. `motor_lyra.py` — Orquestador Principal
```python
"""
motor_lyra.py — PASAIA LAB / LYRA NEXUS
Orquestador del motor OSINT de detecci贸n de transferencias de riqueza.
"""
import json
import random
import time
from typing import List, Tuple
from config_lyra import CATEGORIAS_ITR, LEXICO_ITR
from vectorizador import VectorizadorHashing
from red_neuronal import RedNeuronalITR
from metadatos import ExtractorMetadatos
from grafo import GrafoOperadores
from alertas import MotorAlertas
class MotorLYRAOSINT:
"""
Motor completo: ingesta → vectorizaci贸n → clasificaci贸n → metadatos
→ grafo → alertas.
"""
def __init__(self, semilla: int = 2026):
self.vectorizador = VectorizadorHashing()
self.red = RedNeuronalITR(semilla=semilla)
self.extractor = ExtractorMetadatos()
self.grafo = GrafoOperadores()
self.motor_alertas = MotorAlertas()
self.rng = random.Random(semilla)
self._entrenado = False
# -------------------------------------------------- Bootstrapping
def _generar_corpus_entrenamiento(self) -> Tuple[List[List[float]], List[List[float]]]:
"""
Genera un corpus sint茅tico etiquetado a partir del l茅xico ITR.
En producci贸n se sustituir铆a por un corpus etiquetado por analistas.
"""
X, Y = [], []
for categoria, palabras in LEXICO_ITR.items():
for _ in range(80):
# Frase sint茅tica con 3-6 palabras de la categor铆a
n = self.rng.randint(3, 6)
seleccion = self.rng.sample(palabras, min(n, len(palabras)))
frase = " ".join(seleccion)
X.append(self.vectorizador.vectorizar(frase))
Y.append(self.vectorizador.vector_etiqueta(categoria))
return X, Y
def entrenar(self, epocas: int = 150) -> None:
print("[1] Generando corpus sint茅tico de entrenamiento...")
X, Y = self._generar_corpus_entrenamiento()
print(f" · {len(X)} muestras · {len(CATEGORIAS_ITR)} categor铆as ITR")
print("[2] Entrenando red neuronal...")
t0 = time.time()
perdidas = self.red.entrenar(X, Y, epocas=epocas, lr=0.035)
dt = time.time() - t0
print(f" · Entrenamiento completado en {dt:.1f}s")
if perdidas:
print(f" · P茅rdida final: {perdidas[-1]:.4f}")
self._entrenado = True
# -------------------------------------------------- An谩lisis
def analizar_noticia(self, noticia: dict) -> dict | None:
"""Pipeline completo sobre una noticia."""
if not self._entrenado:
raise RuntimeError("El motor no ha sido entrenado")
# 1) Vectorizaci贸n
vec = self.vectorizador.vectorizar(noticia["texto_completo"])
# 2) Clasificaci贸n
idx, conf, probs = self.red.predecir(vec)
# 3) Metadatos
metadatos = self.extractor.extraer(noticia["texto_completo"])
# 4) Grafo
self.grafo.registrar_noticia(metadatos.entidades, noticia["id"])
coincidencias = 0
for ent in metadatos.entidades:
if self.grafo.nodos.get(ent, 0) > 1:
coincidencias += 1
# 5) Alertas
metadatos_dict = {
"entidades": metadatos.entidades,
"importes": metadatos.importes,
"jurisdicciones": metadatos.jurisdicciones,
"fechas": metadatos.fechas,
"cargos_publicos": metadatos.cargos_publicos,
}
alerta = self.motor_alertas.evaluar(noticia, probs, metadatos_dict, coincidencias)
return {
"noticia": noticia,
"categoria_predicha": CATEGORIAS_ITR[idx],
"confianza": round(conf, 4),
"probabilidades": {CATEGORIAS_ITR[i]: round(probs[i], 4)
for i in range(len(CATEGORIAS_ITR))},
"metadatos": metadatos_dict,
"alerta": alerta,
}
def analizar_lote(self, noticias: List[dict]) -> List[dict]:
resultados = []
for n in noticias:
r = self.analizar_noticia(n)
if r:
resultados.append(r)
return resultados
# -------------------------------------------------- Informe
def generar_informe(self, resultados: List[dict]) -> dict:
alertas = [r["alerta"] for r in resultados if r["alerta"]]
return {
"timestamp": time.time(),
"noticias_analizadas": len(resultados),
"alertas_emitidas": len(alertas),
"resumen_alertas": self.motor_alertas.resumen(),
"resumen_grafo": self.grafo.resumen(),
"top_alertas": [
{
"titular": a.titular,
"categoria": a.categoria_principal,
"puntuacion": a.puntuacion_global,
"nivel": a.nivel,
"url": a.url,
"entidades": a.entidades_relevantes,
}
for a in sorted(alertas, key=lambda x: -x.puntuacion_global)[:10]
],
}
# ---------------------------------------------------------------- Demostraci贸n
def _noticias_demo() -> List[dict]:
"""Noticias sint茅ticas para probar el motor sin conexi贸n."""
return [
{
"id": "demo-001",
"fuente": "Demo",
"titular": "Adjudicaci贸n directa de contrato energ茅tico a empresa vinculada a exministro",
"descripcion": ("El gobierno adjudic贸 por procedimiento negociado sin publicidad "
"un contrato de 450 millones de euros a una sociedad con filial en "
"Islas Caim谩n. El consejero delegado es exsecretario de Estado."),
"texto_completo": ("Adjudicaci贸n directa de contrato energ茅tico a empresa vinculada "
"a exministro. El gobierno adjudic贸 por procedimiento negociado sin "
"publicidad un contrato de 450 millones de euros a una sociedad con "
"filial en Islas Caim谩n. El consejero delegado es exsecretario de Estado."),
"url": "https://ejemplo.org/demo-001",
"publicado": "2026-09-15",
"timestamp_ingesta": time.time(),
},
{
"id": "demo-002",
"fuente": "Demo",
"titular": "Beneficios r茅cord del sector defensa tras el estallido del conflicto",
"descripcion": ("Las principales contratistas de armamento reportan ganancias "
"extraordinarias y dividendos hist贸ricos mientras el gasto p煤blico "
"en defensa se dispara un 40%."),
"texto_completo": ("Beneficios r茅cord del sector defensa tras el estallido del "
"conflicto. Las principales contratistas de armamento reportan "
"ganancias extraordinarias y dividendos hist贸ricos mientras el gasto "
"p煤blico en defensa se dispara un 40%."),
"url": "https://ejemplo.org/demo-002",
"publicado": "2026-09-14",
"timestamp_ingesta": time.time(),
},
{
"id": "demo-003",
"fuente": "Demo",
"titular": "Recorte en pensiones y sanidad para cumplir con el servicio de la deuda",
"descripcion": ("El ajuste fiscal incluye una reducci贸n del gasto social mientras "
"los intereses de la deuda p煤blica alcanzan un nuevo m谩ximo hist贸rico."),
"texto_completo": ("Recorte en pensiones y sanidad para cumplir con el servicio de la "
"deuda. El ajuste fiscal incluye una reducci贸n del gasto social "
"mientras los intereses de la deuda p煤blica alcanzan un nuevo m谩ximo."),
"url": "https://ejemplo.org/demo-003",
"publicado": "2026-09-13",
"timestamp_ingesta": time.time(),
},
{
"id": "demo-004",
"fuente": "Demo",
"titular": "Operaciones burs谩tiles an贸malas antes del anuncio de aranceles",
"descripcion": ("Se detectan compras masivas de acciones y posiciones cortas en "
"sectores clave horas antes del anuncio oficial, con volumen "
"an贸malo y posible filtraci贸n de informaci贸n privilegiada."),
"texto_completo": ("Operaciones burs谩tiles an贸malas antes del anuncio de aranceles. "
"Se detectan compras masivas de acciones y posiciones cortas en "
"sectores clave horas antes del anuncio oficial, con volumen "
"an贸malo y posible filtraci贸n de informaci贸n privilegiada."),
"url": "https://ejemplo.org/demo-004",
"publicado": "2026-09-12",
"timestamp_ingesta": time.time(),
},
]
def main():
print("=" * 78)
print(" LYRA-OSINT · MOTOR DE VIGILANCIA DE TRANSFERENCIAS DE RIQUEZA")
print(" PASAIA LAB · Clasificaci贸n: TOP SECRET // PASAIA LAB EYES ONLY")
print("=" * 78)
motor = MotorLYRAOSINT(semilla=2026)
motor.entrenar(epocas=150)
print("\n[3] Analizando noticias...")
noticias = _noticias_demo()
resultados = motor.analizar_lote(noticias)
print(f"\n[4] Resultados por noticia:")
for r in resultados:
print(f"\n ▶ {r['noticia']['titular'][:70]}")
print(f" Categor铆a: {r['categoria_predicha']}")
print(f" Confianza: {r['confianza']:.2%}")
if r["metadatos"]["jurisdicciones"]:
print(f" Jurisdicciones: {', '.join(r['metadatos']['jurisdicciones'])}")
if r["metadatos"]["importes"]:
print(f" Importes: {', '.join(r['metadatos']['importes'][:3])}")
if r["alerta"]:
print(f" ⚠️ ALERTA {r['alerta'].nivel} — Puntuaci贸n: {r['alerta'].puntuacion_global:.2%}")
print("\n[5] Generando informe global...")
informe = motor.generar_informe(resultados)
print(json.dumps(informe, indent=2, ensure_ascii=False))
print("\n" + "=" * 78)
print(" AN脕LISIS COMPLETADO · PASAIA LAB · 18/09/2026")
print("=" * 78)
if __name__ == "__main__":
main()
```
---
## ▶️ 11. Ejecuci贸n
```bash
# Crear el directorio y los archivos
mkdir lyra_osint && cd lyra_osint
# Guardar cada m贸dulo con su nombre correspondiente
# Ejecutar la demostraci贸n (sin conexi贸n, con noticias sint茅ticas)
python3 motor_lyra.py
# Ejecutar con ingesta real de RSS (requiere conexi贸n)
python3 -c "
from ingesta import IngestaRSS
from motor_lyra import MotorLYRAOSINT
motor = MotorLYRAOSINT()
motor.entrenar(epocas=150)
noticias = IngestaRSS().ejecutar()
resultados = motor.analizar_lote(noticias)
print(motor.generar_informe(resultados))
"
```
**Requisitos:** Python 3.9+. **Sin dependencias externas** (solo biblioteca est谩ndar: `hashlib`, `urllib`, `xml.etree`, `re`, `math`, `random`, `json`).
---
## 馃搳 12. Salida Esperada
El motor imprime por consola:
- La categor铆a ITR predicha para cada noticia.
- El nivel de confianza de la clasificaci贸n.
- Las jurisdicciones de riesgo detectadas.
- Los importes mencionados.
- Las alertas emitidas con su puntuaci贸n y nivel (ALTA/MEDIA).
- El informe global con las 10 alertas m谩s relevantes y el resumen del grafo de operadores.
---
## 馃帹 13. Prompt para el Certificado Visual del Motor
> *"Certificado t茅cnico de estilo **documento de inteligencia clasificado con diagrama de red neuronal**, formato vertical (9:16), resoluci贸n 8K.*
>
> * **Fondo**: Papel de seguridad con textura de cuadr铆cula de datos. Franja roja superior con **'TOP SECRET // PASAIA LAB EYES ONLY'**. Franja inferior azul oscuro con los logos de **PASAIA LAB · INTELIGENCIA LIBRE · ACCI脫N CIVIL DIGITAL · FORJA · DEEPSEEK IA**.*
>
> * **Cabecera**: T铆tulo **'MOTOR DE VIGILANCIA OSINT'**, subt铆tulo **'LYRA-OSINT · DETECCI脫N DE TRANSFERENCIAS DE RIQUEZA CON REDES NEURONALES'**. Referencia: **'PL-LYRA-OSINT-2026-09-18'**.*
>
> * **Cuerpo**: En el centro, un **esquema de red neuronal** con capas visibles (256 → 64 → 32 → 7), con nodos luminosos conectados por sinapsis doradas. Alrededor, iconos de los siete indicadores ITR (contrato, acciones, puerta giratoria, rescate, beneficio, offshore, recorte). Debajo, una **captura estilizada de c贸digo Python** con fragmentos legibles del motor.*
>
> * **Sellos**: Marca de agua **'CONFIDENCIAL'** en diagonal. Sello de cera digital con el logo de **PASAIA LAB**. C贸digo QR inferior derecho. Firma digital de **DeepSeek IA**.*
>
> * **Paleta**: Beige, azul oscuro, rojo (clasificaci贸n), dorado (valor), cian (tecnolog铆a). Acabado de documento oficial escaneado."*
---
## 馃帹 14. Prompt para la Imagen "El Motor en Acci贸n"
> *"Ilustraci贸n de estilo **infograf铆a t茅cnica cinematogr谩fica**, formato horizontal panor谩mico (16:9), resoluci贸n 8K, que muestra el motor LYRA-OSINT en pleno funcionamiento.*
>
> * **Composici贸n central**: Un **gran ojo digital** (el ojo de LYRA) en el centro, rodeado por **cuatro anillos conc茅ntricos** que representan las fases del motor: (1) **Ingesta** — iconos de sat茅lites, RSS y servidores descargando datos; (2) **Vectorizaci贸n** — nubes de palabras que se transforman en vectores num茅ricos; (3) **Red Neuronal** — una red densa de nodos luminosos con capas visibles (256-64-32-7); (4) **Alertas** — destellos rojos y naranjas que emanan del ojo hacia el exterior.*
>
> * **Alrededor del ojo**: Noticias estilizadas flotando (peri贸dicos, pantallas, titulares) siendo "le铆das" por haces de luz cian que convergen en el centro. Algunas noticias est谩n marcadas con **iconos de alerta roja** (las que activan los indicadores ITR).*
>
> * **En la parte inferior**: Un **panel de control hologr谩fico** con las siete categor铆as ITR y sus puntuaciones en tiempo real, m谩s un **gr谩fico de red** que muestra los operadores detectados (nodos conectados por l铆neas doradas).*
>
> * **En la parte superior**: El t铆tulo **'LYRA-OSINT · VIGILANCIA DE TRANSFERENCIAS DE RIQUEZA'** en tipograf铆a serif dorada, con el subt铆tulo **'An谩lisis de fuentes abiertas · Redes neuronales · Transparencia'**.*
>
> * **Estilo y Paleta**: Estilo de infograf铆a de alta gama para medio de investigaci贸n (The Intercept, Bellingcat). Colores: azul profundo, cian (datos), dorado (valor), rojo (alertas), verde (verificaci贸n). Iluminaci贸n dram谩tica que resalta el ojo central. Formato horizontal 16:9."*
---
## 馃彌️ 15. CERTIFICACI脫N
**N潞 de Registro:** PL-LYRA-OSINT-2026-09-18
**Fecha:** 18 de septiembre de 2026 · **Lugar:** Pasaia (Gipuzkoa), Euskadi
Se certifica que el presente **Motor de Vigilancia OSINT para Detecci贸n de Transferencias de Riqueza** ha sido dise帽ado y desarrollado por **PASAIA LAB**, con la colaboraci贸n de **INTELIGENCIA LIBRE**, **ACCI脫N CIVIL DIGITAL**, **FORJA** y **DeepSeek IA – Asesor Inteligente**, bajo la clasificaci贸n **TOP SECRET**, como parte del ecosistema **LYRA NEXUS**.
**Componentes certificados:**
- Ingesta de fuentes RSS p煤blicas (8 medios internacionales).
- Vectorizador con hashing trick (256 dimensiones, sin dependencias externas).
- Red neuronal MLP (256→64→32→7) con softmax y entrenamiento por retropropagaci贸n.
- Extractor de metadatos (entidades, importes, jurisdicciones, fechas, cargos).
- Grafo de co-ocurrencia de operadores con detecci贸n de comunidades.
- Motor de scoring con siete indicadores ITR ponderados.
- Sistema de alertas con dos niveles (ALTA/MEDIA).
**Firmado:**
- **PASAIA LAB** — Direcci贸n de Arquitectura Estrat茅gica
- **INTELIGENCIA LIBRE** — Validaci贸n Metodol贸gica
- **ACCI脫N CIVIL DIGITAL** — Relevancia Social y Educativa
- **FORJA** — Solidez T茅cnica
- **DeepSeek IA** — Asistencia T茅cnica y Estructuraci贸n de C贸digo
---
> ⚠️ **Recordatorio final:** Este motor es un **ejercicio de simulaci贸n y dise帽o arquitect贸nico** con fines educativos, divulgativos y de investigaci贸n conceptual. Opera exclusivamente sobre **fuentes p煤blicas** y genera **se帽ales de alerta que requieren verificaci贸n humana**. No constituye una herramienta de vigilancia de individuos, no procesa datos personales y no emite juicios de culpabilidad. Su valor reside en servir de **material did谩ctico** para el estudio de OSINT, redes neuronales aplicadas al an谩lisis de texto, grafos de conocimiento y periodismo de datos — competencias directamente aplicables al ecosistema **LYRA NEXUS** y a proyectos civiles de transparencia y rendici贸n de cuentas.
**Firmado:**
- **PASAIA LAB** — Direcci贸n de Arquitectura Estrat茅gica
- **INTELIGENCIA LIBRE** — Validaci贸n Metodol贸gica
- **ACCI脫N CIVIL DIGITAL** — Relevancia Social y Educativa
- **FORJA** — Solidez T茅cnica
- **DeepSeek IA** — Asistencia T茅cnica y Estructuraci贸n de C贸digo





