Pruebas de Conocimiento Cero en Metadatos P2P para dVPN

Zero-Knowledge Proofs p2p metadata dVPN privacy bandwidth mining DePIN security
V
Viktor Sokolov

Network Infrastructure & Protocol Security Researcher

 
17 de abril de 2026 11 min de lectura
Pruebas de Conocimiento Cero en Metadatos P2P para dVPN

TL;DR

Este artículo analiza cómo las pruebas de conocimiento cero permiten gestionar metadatos de sesiones P2P privadas en redes VPN descentralizadas. Exploramos el equilibrio entre recompensas por minería de ancho de banda y anonimato, mostrando cómo los proyectos DePIN verifican el uso de la red sin exponer registros de conexión ni identidades de usuario.

El problema de los metadatos en las redes descentralizadas

¿Alguna vez te has preguntado por qué tu VPN "sin registros" (no-logs) sigue sabiendo exactamente a qué hora te diste ese atracón de series anoche? Esto sucede porque, aunque no analicen tu tráfico, los metadatos —esos rastros digitales de cuándo y desde dónde te conectas— siguen gritando tu identidad a cualquiera que esté observando.

En una configuración tradicional, depositas tu confianza en una sola empresa. Sin embargo, en una VPN descentralizada (dVPN), básicamente estás enrutando tus paquetes a través de la conexión a internet de un desconocido. Si bien esto elimina el problema del "punto único de falla", crea uno nuevo: cada nodo en esa red P2P es un espía potencial.

Si yo opero un nodo, puedo ver tu dirección IP y exactamente cuántos datos estás transfiriendo. Peor aún, veo las marcas de tiempo. Si eres un informante en una región de alto riesgo, el simple hecho de que te hayas conectado a un nodo específico a las 2:00 AM es suficiente para que la vigilancia del ISP (proveedor de servicios de internet) te ponga bajo la lupa.

El problema de los metadatos es, en esencia, un mapa de tu vida digital. Como explica el concepto de Prueba de conocimiento cero, el objetivo de una ZKP es demostrar que una afirmación es cierta sin revelar el secreto en sí mismo; que es precisamente lo que les falta a las redes P2P actuales.

Esto se vuelve realmente complicado cuando introducimos el "minado de ancho de banda". En una DePIN (Red de Infraestructura Física Descentralizada), las personas reciben tokens por compartir su conexión. Para cobrar, el nodo debe demostrar que realmente realizó el trabajo.

Normalmente, probar que se prestó el servicio implica mostrar un "recibo" de la sesión: "Oye, el usuario X consumió 5GB de mi ancho de banda de 4:00 a 5:00". Y listo: la privacidad se esfumó. La red necesita esos datos para prevenir el fraude, pero el usuario necesita que esos datos permanezcan ocultos para mantener su anonimato.

Diagrama 1

  • Sector Salud: El problema principal aquí es la filtración de la duración de la sesión. Si un nodo detecta que un paciente está conectado a un portal médico durante tres horas, sugiere una consulta seria incluso si los datos están cifrados.
  • Finanzas: El conflicto reside en el vínculo entre una dirección IP y una billetera (wallet). Si un nodo observa una IP específica moviendo datos durante una operación financiera de alto valor, ese usuario se convierte en blanco de ataques de "dusting".

La industria se encuentra en un punto muerto. Queremos un internet descentralizado, pero lo estamos construyendo sobre una base de metadatos visibles. Según la literatura sobre pruebas de conocimiento cero, investigadores como Goldwasser y Micali demostraron ya en 1985 que es posible probar que la "complejidad del conocimiento" es cero. Simplemente no lo hemos aplicado lo suficiente al enrutamiento P2P todavía.

Y siendo honestos, hasta que no resolvamos cómo pagar a un nodo sin que dicho nodo sepa a quién está sirviendo, solo estaremos cambiando a un gran dueño por mil pequeños propietarios.

A continuación, profundizaremos en cómo los ZK-SNARKs solucionan esto al permitirnos verificar estas sesiones sin revelar el "quién" ni el "cuándo".

Cómo las pruebas de conocimiento cero salvan el día

¿Alguna vez has sentido que te observan mientras simplemente intentas navegar por la web? Incluso con una VPN, tu proveedor de servicios de internet (ISP) o el propietario de un nodo entrometido pueden ver la "forma" de tus datos, lo cual representa una grieta enorme en el casco de nuestro barco de la privacidad.

Imagina una prueba de conocimiento cero (ZKP, por sus siglas en inglés) como una forma de demostrar que tienes la llave de una puerta sin mostrar realmente la llave ni abrir la puerta para que todos la vean. Una forma clásica de visualizar esto es la analogía de "¿Dónde está Wally?". Imagina un tablero gigante con la imagen de Wally. Para demostrar que lo has encontrado sin revelar sus coordenadas, colocas una lámina enorme de cartón sobre el mapa con solo un pequeño agujero recortado. Deslizas el mapa hasta que Wally aparece en el agujero. La persona que observa ve a Wally, por lo que sabe que lo has encontrado, pero no tiene ni idea de dónde está ubicado en el mapa real.

En el mundo de las redes P2P, esto es un salvavidas. Normalmente, para recibir un pago por el "minado de ancho de banda" (bandwidth mining), un nodo debe presentar un comprobante del trabajo realizado. Pero ese comprobante suele contener tu dirección IP, la hora de conexión y cuánto descargaste. Es una pesadilla para la privacidad.

Con una ZKP, utilizamos lo que se denomina completitud e integridad (soundness). La completitud significa que, si la sesión realmente ocurrió, el nodo honesto puede demostrarlo. La integridad garantiza que un nodo malintencionado no pueda falsificar una sesión para robar tokens. Según el principio de la prueba de conocimiento cero, esto nos permite demostrar que una afirmación es cierta sin transmitir ninguna información más allá de esa verdad.

Una sistematización de ataques realizada en 2024 por investigadores de Trail of Bits descubrió que el 96% de los errores en sistemas basados en SNARK provienen de circuitos "poco restringidos", lo que significa que las matemáticas no eran lo suficientemente estrictas para evitar trampas.

Por lo tanto, no estamos haciendo cálculos matemáticos solo porque sí. Estamos construyendo un muro donde los ladrillos son la lógica. Si la lógica es sólida, el nodo recibe sus recompensas en cripto y tú mantienes tus hábitos de navegación en privado.

Cuando aplicamos esto a un túnel P2P, básicamente estamos "anonimizando" los metadatos. En lugar de que el nodo informe que "el Usuario A utilizó 500 MB a las 10 PM", genera un zk-SNARK (Argumento de Conocimiento Sucinto No Interactivo). Se trata de un pequeño fragmento de datos que dice: "He facilitado una sesión válida de exactamente 500 MB", y la red puede verificarlo sin saber que fuiste .

  • Sector Minorista (Retail): La solución teórica es demostrar que se recibió una actualización de envío sin filtrar la marca de tiempo exacta. Esto evita que los competidores rastreen la velocidad de la cadena de suministro de una tienda.
  • Sector Salud: Una clínica puede demostrar, mediante una ZKP, que los datos se movieron con fines de facturación. El nodo nunca ve el tamaño del archivo, lo que impide que alguien adivine qué tipo de especialista se está consultando basándose en el volumen de datos.
  • Finanzas: Los operadores pueden utilizar redes tokenizadas donde la prueba valida el ancho de banda utilizado sin vincular una dirección de billetera específica a una IP doméstica.

Diagrama 2

Implementar estas pruebas en nodos móviles —como tu teléfono compartiendo un poco de 5G— es difícil porque la carga matemática es pesada. Sin embargo, protocolos más nuevos como Halo o Virgo están logrando que esto sea lo suficientemente ligero como para ejecutarse sin agotar la batería.

Sinceramente, es la única forma en que una red P2P puede sobrevivir a largo plazo. Si no ocultamos los metadatos, solo estamos construyendo una máquina de vigilancia más grande y distribuida. Necesitamos que el sistema sea de "conocimiento cero" por defecto, no como una ocurrencia tardía.

A continuación, analizaremos cómo se implementan realmente estos zk-SNARKs en el código y cómo se ve cuando un nodo intenta verificar una prueba en tiempo real.

Implementación de ZKPs en el ecosistema dVPN

¿Alguna vez se han detenido a pensar en lo contradictorio que resulta intentar construir un internet "privado" mientras dejamos un rastro de migajas para que cualquier ISP o propietario de un nodo lo siga? Es como llevar una máscara pero ir dejando tu tarjeta de presentación en cada puerta por la que pasas.

Si te apasionan los detalles técnicos de la seguridad de redes, seguirle el ritmo a la evolución de estos protocolos es un trabajo de tiempo completo. Personalmente, suelo analizar informes técnicos sobre vulnerabilidades emergentes en protocolos de túnel (tunneling), porque una cosa es hablar de una cabecera de paquete y otra muy distinta es explicar por qué esa cabecera es, básicamente, una baliza de rastreo para la vigilancia gubernamental.

El modelo de "Airbnb para el ancho de banda" suena genial en teoría, pero es un desastre para la privacidad. Para recibir su pago, un nodo debe demostrar que efectivamente movió tus datos. En una configuración estándar, esto significa que el nodo de retransmisión (relay node) presenta un recibo: "Gestioné 2GB para esta dirección de billetera específica". En ese preciso instante, el vínculo entre tu identidad cripto y tu tráfico queda grabado en piedra.

Utilizamos smart contracts para cerrar esta brecha, pero estos necesitan una forma de verificar el trabajo sin "ver" quién lo realiza. Aquí es donde entran las ZKP (Pruebas de Conocimiento Cero) para gestionar lo que llamamos Prueba de Retransmisión (Proof of Relay). El contrato inteligente actúa como juez: verifica una prueba matemática en lugar de un archivo de registro (log) sin procesar.

  • Prevención del Doble Gasto: En una red tokenizada, una ZKP garantiza que cada ID de sesión sea único y se "gaste" solo una vez en la blockchain, sin que el libro contable sepa jamás qué usuario envió realmente los datos.
  • Recompensa a Nodos Honestos: Dado que la Prueba de Conocimiento Cero se basa en la solidez (soundness), un nodo no puede generar una prueba válida para una sesión que no existió. Si las matemáticas no cuadran, el contrato inteligente no libera los fondos.
  • Ofuscación de Metadatos: Al utilizar una prueba no interactiva, el nodo envía un único "blob" de datos a la cadena. Como se mencionó anteriormente en el artículo, esto significa que el verificador (la blockchain) no aprende nada excepto el hecho de que el trabajo fue completado.

Diagrama 3

Esto no se trata solo de ocultar tus maratones de Netflix; se trata de infraestructura. Tomemos el sector retail (comercio minorista) como ejemplo. En la implementación, la puerta de enlace local de una tienda genera una ZKP por cada sincronización de inventario. El nodo P2P mueve los datos y recibe su pago mediante el contrato inteligente, pero el nodo nunca llega a ver los patrones temporales que podrían revelar secretos de la cadena de suministro.

En las finanzas, los operadores de alta frecuencia (HFT) utilizan ZKPs para ocultar su ubicación física. El contrato inteligente verifica que la retransmisión del ancho de banda fue exitosa, pero como la prueba está "blindada", el nodo no puede vincular el tráfico a una billetera específica para realizar front-running en una operación.

Incluso en el sector de la salud, donde las clínicas comparten expedientes, el contrato inteligente gestiona la prueba de facturación. La implementación garantiza que la "prueba" no revele si un archivo pesaba 10KB o 10GB, manteniendo la posible condición del paciente en privado frente al operador del nodo.

El problema real que observo es el "impuesto computacional". Generar un zk-SNARK no es gratuito; consume ciclos de CPU. Si estás ejecutando un nodo en una Raspberry Pi o en un teléfono móvil, no quieres que el 50% de tu energía se consuma solo para demostrar que hiciste el trabajo.

Un estudio de 2024 realizado por investigadores de Trail of Bits (mencionado anteriormente) reveló que casi todos los errores en estos sistemas provienen de circuitos "sub-restringidos" (under-constrained). Si la lógica matemática no es hermética, un nodo puede "engañar" al sistema creando una prueba de un trabajo que nunca realizó.

Estamos viendo una transición hacia protocolos como Halo o Virgo para acelerar este proceso. Estos protocolos no requieren una "configuración de confianza" (trusted setup), lo cual es una forma elegante de decir que no tenemos que confiar en que los desarrolladores no dejaron una puerta trasera en las constantes matemáticas iniciales. Esto hace que todo el ecosistema P2P sea mucho más transparente y seguro.

En definitiva, implementar esto en una dVPN no es un simple "lujo". Si no logramos controlar los metadatos, solo estaremos construyendo una máquina de vigilancia más grande y eficiente, y llamándola "Web3".

A continuación, analizaremos las estructuras de código reales; específicamente, cómo se construyen estos circuitos y por qué es tan fácil para los desarrolladores dejar accidentalmente esos agujeros de lógica "sub-restringidos".

Desafíos técnicos y el futuro de DePIN

Ya hemos hablado de cómo estas pruebas son prácticamente pura magia para la privacidad, pero seamos realistas por un momento: en el mundo de las redes, nada es gratis. Si intentas ejecutar una red de infraestructura física descentralizada (DePIN) donde cada nodo es básicamente un micro-proveedor de servicios de internet (ISP), te topas con un muro enorme: las matemáticas son sumamente pesadas.

El mayor obstáculo para el futuro de DePIN es el "impuesto computacional". Generar un zk-SNARK no es como aplicar un hash a una contraseña; se parece más a resolver un rompecabezas complejo mientras alguien vigila cada uno de tus movimientos. Hace unos años, crear estas pruebas era tan lento que usarlas para una sesión de VPN en tiempo real era, básicamente, un chiste. Tendrías que esperar segundos solo para verificar un único paquete; tu latencia recordaría a una conexión por módem telefónico de 1995.

Sin embargo, el panorama está cambiando. Los nuevos protocolos finalmente están haciendo que esto sea viable para el minado de ancho de banda. Como mencionamos anteriormente, sistemas como Bulletproofs y STARKs están transformando las reglas del juego porque no requieren esa "configuración de confianza" (trusted setup) que a tantos pone nerviosos. Y lo más importante: son cada vez más rápidos.

  • Latencia vs. Privacidad: Es el clásico dilema. Si tu nodo pasa demasiado tiempo procesando números para demostrar que transfirió 10 MB de datos, la experiencia del usuario se arruina. Estamos viendo una tendencia hacia el "procesamiento por lotes" (batching), donde un nodo demuestra 1,000 sesiones a la vez para ahorrar ciclos de CPU.
  • Limitaciones de hardware: La mayoría de los nodos DePIN no son servidores potentes; son Raspberry Pi o laptops viejas. Si el protocolo de ZKP (Pruebas de Conocimiento Cero) es demasiado exigente, agotará el hardware o simplemente fallará.
  • Nodos móviles: Compartir el 5G de tu teléfono a través de una red P2P es el sueño, pero las pruebas ZK pueden devorar la batería. Protocolos como Virgo (que mencionamos antes) están diseñados específicamente para ser más ligeros con el procesador.

Para entender por qué esto es tan difícil, hay que observar lo que el código hace realmente. No estamos simplemente escribiendo un script; estamos construyendo un circuito aritmético. En la práctica, el código de alto nivel —como el ejemplo en Python de abajo— se compila en R1CS (Rank-1 Constraint System) o circuitos aritméticos. Estos circuitos están formados por "puertas" (gates) que imponen la lógica. Si dejas una puerta "sub-restringida" (under-constrained), como señaló aquel estudio de 2024 de los investigadores de Trail of Bits, un nodo malicioso podría falsificar la sesión completa.

Aquí tienes una visión conceptual de cómo un circuito podría verificar si un nodo realmente se mantuvo dentro de los límites de ancho de banda prometidos, sin revelar el conteo exacto de bytes a la blockchain pública:

# Nota: Esta lógica de alto nivel se compila en un circuito aritmético 
# (R1CS) para que el ZK-SNARK funcione realmente.

def verify_bandwidth_usage(claimed_usage, secret_session_log, limit):
    # El 'secret_session_log' es la entrada privada (el witness)
    # El 'limit' y el 'claimed_usage' son públicos
    
    # 1. Verificar si el registro coincide con la cantidad reclamada
    is_match = (hash(secret_session_log) == claimed_usage_hash)
    
    # 2. Asegurar que el uso esté por debajo del umbral
    is_under_limit = (secret_session_log <= limit)
    
    # El circuito devuelve 'True' solo si ambos puntos son sólidos
    # El verificador (la blockchain) solo ve el 'True/False' y la prueba
    return is_match and is_under_limit

En un entorno DePIN real, el nodo (el probador) envía un "compromiso" (commitment) a la blockchain. Esto es, básicamente, una promesa criptográfica. Más tarde, cuando llega el momento de recibir el pago, presentan la ZKP. El contrato inteligente actúa como el verificador, ejecutando una lógica que tarda milisegundos en comprobarse, incluso si al nodo le tomó un segundo completo generar la prueba.

El futuro de DePIN depende de lograr que estas matemáticas pasen a un segundo plano. En el sector minorista (retail), por ejemplo, si una tienda usa una red P2P para sincronizar datos de ventas, no puede permitir que su caja registradora se congele tres segundos mientras genera una prueba de transferencia de datos. Debe ser imperceptible.

En el sector financiero, vemos problemas similares con el trading de alta frecuencia. Si un operador utiliza una red tokenizada para mantener el anonimato, cualquier fluctuación (jitter) causada por la generación de pruebas podría costarle miles en un escenario de "front-running". El objetivo es reducir el tiempo de generación de la prueba hasta que sea más rápido que el propio ping de la red.

Diagram 4

Sinceramente, el problema de los circuitos "sub-restringidos" es lo que me quita el sueño. Si el 96% de los errores en estos sistemas provienen de una lógica matemática deficiente, básicamente estamos construyendo un banco con una puerta de bóveda que parece pesada pero que no está atornillada a la pared. Los desarrolladores están empezando a utilizar herramientas de "verificación formal" para sus circuitos, lo que básicamente significa usar otra IA o un motor matemático para demostrar que la prueba es realmente sólida.

A continuación, vamos a concluir analizando cómo queda el "stack de privacidad" final cuando combinamos el enrutamiento P2P, las recompensas tokenizadas y los metadatos de conocimiento cero.

Conclusión: Hacia una internet verdaderamente anónima

Después de analizar todas las fórmulas matemáticas y profundizar en los protocolos, ¿en qué punto nos encontramos realmente? Si has seguido el hilo de esta explicación, queda claro que el modelo tradicional —ese en el que simplemente confías en que tu proveedor no sea un entrometido— tiene los días contados.

Básicamente, estamos transitando de un modelo basado en la "confianza" a uno de "blindaje total". Antes, te conectabas a una VPN y rezabas para que no guardaran registros (logs), incluso cuando su modelo de negocio o una orden judicial sugerían lo contrario.

Sin embargo, con una red P2P impulsada por pruebas de conocimiento cero (ZKP), el nodo es literalmente incapaz de delatarte porque nunca llegó a poseer tus datos. Es un cambio de paradigma en la arquitectura de redes.

  • Resistencia a la censura: En países con una vigilancia estricta por parte de los ISP, las dVPN basadas en ZKP marcan un antes y un después. Dado que los metadatos están "anonimizados", la inspección profunda de paquetes (DPI) a nivel estatal no puede vincular fácilmente a un usuario específico con un nodo de salida "prohibido".
  • Equidad económica: El minado de ancho de banda se convierte en un trabajo legítimo. Recibes una compensación por el trabajo realizado, validado mediante matemáticas, sin necesidad de crear una base de datos con los hábitos de tus clientes para satisfacer algún algoritmo de recompensa.
  • El fin del rastro digital: Como hemos visto, ocultar el contenido (payload) es sencillo; el verdadero reto es ocultar el hecho de que lo enviaste. Las ZKP finalmente nos permiten borrar esas huellas digitales en tiempo real.

Esto no es solo para entusiastas de la privacidad o personas que buscan ocultar sus descargas. Las implicaciones para la infraestructura industrial real son masivas.

En el sector de la salud, una cadena de hospitales que utilice una red descentralizada para sincronizar datos de pacientes ahora puede demostrar ante los reguladores que ha movido los registros sin que los nodos de retransmisión hayan visto jamás la "forma" de esos datos. Esto evita que alguien pueda deducir el volumen de pacientes o los tipos de emergencias basándose en las ráfagas de paquetes.

Para los gigantes del comercio minorista (retail), significa sincronizar inventarios en miles de tiendas conectadas mediante P2P sin que un competidor pueda mapear los tiempos de su cadena de suministro. Obtienen la velocidad de una red distribuida con la privacidad de una red local.

Y en las finanzas, todo se reduce a la ventaja competitiva. Los operadores de alta frecuencia pueden usar estas redes tokenizadas para enmascarar su ubicación física. Si un nodo no puede ver la duración de la sesión ni la dirección de la billetera mediante una ZKP, no pueden adelantarse a la operación (front-running).

Diagrama 5

No voy a mentirte: aún no hemos llegado a la internet "perfecta". El coste computacional sigue siendo un factor a tener en cuenta. Si ejecutas un nodo en un router de gama baja, la carga adicional para generar estas pruebas todavía puede afectar un poco a tu velocidad de transferencia.

Pero como mencioné antes, la evolución hacia protocolos como Halo y Virgo está solucionando este problema. Estamos llegando a un punto donde la lógica es tan eficiente que el "impuesto de privacidad" es prácticamente imperceptible para el usuario final.

Según la documentación sobre pruebas de conocimiento cero, el concepto existe desde los años 80, pero es ahora cuando finalmente contamos con el hardware y el código (como los zk-SNARKs) necesarios para que funcione a gran escala en redes P2P.

Sinceramente, si eres un apasionado de la tecnología o alguien que se preocupa por el rumbo de internet, debes seguir de cerca los proyectos DePIN. El modelo del "Airbnb del ancho de banda" solo funciona si los invitados mantienen su anonimato y los anfitriones reciben un pago justo.

El futuro de internet no se trata solo de descentralización; se trata de privacidad verificable. Estamos construyendo una infraestructura donde el enrutamiento P2P se encarga del "dónde", el cifrado del "qué", y las pruebas de conocimiento cero del "quién" y el "cuándo".

Al combinar estos elementos, obtenemos una internet que no pertenece a ninguna empresa ni gobierno. Es una red que existe gracias a sus usuarios, protegida por las leyes de las matemáticas en lugar de los caprichos de un director ejecutivo.

En fin, ha sido un largo recorrido a través de estos protocolos. Ya sea que busques una mejor forma de navegar o pretendas construir la próxima gran aplicación descentralizada, recuerda: si no estás verificando, solo estás suponiendo. Mantén tus circuitos seguros y tus metadatos ocultos.

V
Viktor Sokolov

Network Infrastructure & Protocol Security Researcher

 

Viktor Sokolov is a network engineer and protocol security researcher with deep expertise in how data travels across the internet and where it becomes vulnerable. He spent eight years working for a major internet service provider, gaining firsthand knowledge of traffic analysis, deep packet inspection, and ISP-level surveillance capabilities. Viktor holds multiple Cisco certifications (CCNP, CCIE) and a Master's degree in Telecommunications Engineering. His insider knowledge of ISP practices informs his passionate advocacy for VPN use and encrypted communications.

Artículos relacionados

Zero-Knowledge Proofs for User Privacy in dVPNs
Zero-Knowledge Proofs

Zero-Knowledge Proofs for User Privacy in dVPNs

Discover how Zero-Knowledge Proofs (ZKP) enhance privacy in Decentralized VPNs (dVPN). Learn about zk-SNARKs, DePIN, and P2P bandwidth sharing security.

Por Viktor Sokolov 17 de abril de 2026 9 min de lectura
common.read_full_article
Privacy-Preserving Zero-Knowledge Proofs for Traffic Obfuscation
Privacy-Preserving VPN

Privacy-Preserving Zero-Knowledge Proofs for Traffic Obfuscation

Explore how Zero-Knowledge Proofs (ZKP) enhance dVPN privacy, enable secure bandwidth mining, and protect traffic obfuscation in DePIN networks.

Por Daniel Richter 17 de abril de 2026 7 min de lectura
common.read_full_article
Automated Node Reputation Systems in DePIN Ecosystems
DePIN

Automated Node Reputation Systems in DePIN Ecosystems

Learn how automated reputation systems secure DePIN networks and dVPN services. Explore bandwidth mining, p2p scoring, and blockchain privacy trends.

Por Daniel Richter 16 de abril de 2026 7 min de lectura
common.read_full_article
Traffic Obfuscation Techniques for Censorship-Resistant Nodes
Traffic Obfuscation

Traffic Obfuscation Techniques for Censorship-Resistant Nodes

Learn how decentralized vpn nodes use traffic obfuscation, multimedia tunneling, and WebRTC covert channels to bypass censorship and DPI.

Por Elena Voss 16 de abril de 2026 9 min de lectura
common.read_full_article