Una máquina del tiempo para los DPP

Imagina que tienes un producto en la mano y escaneas el código QR que lleva. En lugar de un PDF, se abre una pequeña aplicación. Ves el producto tal y como es ahora: de qué está hecho, de dónde procede, qué hay que tener en cuenta. Con un simple deslizamiento, retrocede en el tiempo: puede ver todas las versiones que se han publicado hasta la fecha.

Eso es precisamente lo que puede probar ahora mismo: la demostración muestra un pasaporte de producto completo con datos de ejemplo.

Se trata de Transpareo Time Machine, nuestra aplicación de código abierto para consumidores, compatible con cualquier pasaporte digital de producto. El código está disponible bajo licencia GPL v3 en GitHub.

La estamos desarrollando porque el Reglamento de la UE sobre el Pasaporte Digital del Producto se redactó pensando en los consumidores, es decir, en la persona que tiene el producto en sus manos. La mayoría de los proveedores lo convierten en un formulario de cumplimiento normativo que nadie vuelve a consultar. Nosotros lo convertimos en una aplicación que el consumidor realmente abre.

Qué hace la aplicación

Cuatro puntos de contacto desde la perspectiva de la persona que tiene el producto en la mano. Sin necesidad de iniciar sesión ni de instalar ninguna aplicación.

1

Escanear

Escanea el código QR con la cámara del móvil. La aplicación se abrirá en el navegador.

2

Ver las últimas noticias

El producto se presenta en el presente: componentes, materiales, origen, cuidados y reciclaje.

3

Hojea la historia

Con un movimiento de deslizamiento se puede retroceder en el tiempo. Cada versión anterior, con la fecha y el motivo del cambio.

4

Compartir

Cada versión tiene su propio enlace. Una persona comparte una versión concreta con sus amigos o con las autoridades.

¿Por qué, en realidad?

El Reglamento de la UE sobre el pasaporte digital del producto supone el mayor avance hacia la transparencia de los productos en décadas. Si se leen con atención los textos en los que se basa, se observa que está redactado explícitamente para los consumidores. Las autoridades, las empresas de reciclaje y los talleres se suman a la iniciativa; pero el destinatario principal es la persona que tiene el producto en sus manos.

En términos numéricos, la cuestión es clara. Un ciudadano europeo medio podrá escanear, a finales de esta década, entre docenas y cientos de pasaportes de producto al año. Si lo calculamos para 200 millones de hogares, esto supone miles de millones de interacciones con los consumidores al año. En comparación, el ámbito de las autoridades y las empresas de reciclaje es numéricamente insignificante.

Para que el reglamento llegue al consumidor, la página web destinada a este debe estar bien diseñada: debe ser rápida, atractiva y coherente. De lo contrario, no cumplirá su objetivo. Hemos decidido desarrollar esta página web con código abierto, para que no dependa de un único proveedor.

Comprobado en el navegador, no en nuestro servidor

En la parte superior de cada ficha de producto aparece una insignia: «Verificado por Transpareo». Muestra el resultado de una comprobación que no se realiza en nuestro servidor, sino en el navegador del visitante, a partir de los bytes cargados y las claves públicas del fabricante.

Cada versión del DPP cuenta con la firma de dos entidades independientes entre sí: el fabricante y Transpareo. Ambas firmas deben poder verificarse para que la insignia se vuelva verde. Con «Bring Your Own Key» (BYOK), el fabricante gestiona su propio punto final de firma; Transpareo nunca conserva la clave privada y solo añade la contrafirma independiente. De este modo se crea una firma del emisor que ni siquiera Transpareo puede generar. Un servidor comprometido no puede falsificar la marca de verificación, ya que la comprobación la realiza el propio visitante.

Si quieres saberlo con exactitud, haz clic en la insignia. Detrás verás la cadena de firmas, los hash y el historial de versiones encadenadas. Si solo desea la información, simplemente ignórelo y siga leyendo la ficha del producto.

Esta misma verificación también está disponible en una página independiente: en la verificación DPP, introduzca la URL del manifiesto de cualquier ficha de producto y verá el resultado completo de la verificación, sin necesidad de abrir la ficha.

Publicamos el código

Transpareo Time Machine está disponible bajo la licencia GPL v3 en GitHub. Clonar, bifurcar, alojarlo por tu cuenta: todo está permitido. Las modificaciones publicadas deben estar, a su vez, bajo la licencia GPL v3, para que cualquier desarrollo posterior beneficie a la comunidad.

Tres formas de integrar el paquete:

  • Mediante etiquetas de script: basta con añadir <script> y <transpareo-time-machine src="…"> a la página, sin necesidad de compilar.
  • Mediante npm: npm install transpareo-time-machine en tu propia aplicación.
  • Alojamiento propio: compilar el paquete, infraestructura propia, cero dependencias de terceros en tiempo de ejecución.

Si solo necesitas la verificación de la firma sin la vista completa del producto, importa el elemento asociado <dpp-verifier>; es ideal para herramientas de auditoría. Puedes verlo en directo en la verificación de la DPP.

Quien utilice la aplicación de forma adecuada

La aplicación se ha diseñado en primer lugar para los consumidores. Sin embargo, es útil para cualquiera que desee consultar o verificar los datos de un producto de forma independiente.

  • Los consumidores finales escanean, ven, navegan y comparten. Sin necesidad de iniciar sesión ni rastreadores.
  • Los organismos de vigilancia del mercado y las autoridades pueden consultar el pasaporte del producto en un software cuyo código fuente es auditable públicamente.
  • Los talleres y las empresas de reciclaje pueden consultar la composición de los materiales y las instrucciones de desmontaje directamente en el producto.
  • Las marcas y los operadores de fork personalizan el paquete según su propia marca: tokens CSS, componentes propios, autoalojamiento.

¿Qué pasaría si Transpareo dejara de existir?

La UE exige que un pasaporte de producto registrado permanezca disponible durante al menos diez años, incluso tras la quiebra o la liquidación del fabricante. Un proveedor de SaaS rara vez dura tanto tiempo. Por eso, desde el principio, diseñamos la plataforma de tal forma que los pasaportes de producto sigan siendo utilizables independientemente de nosotros:

  • Cada versión firmada del DPP se almacena en un repositorio de acceso público. Los bytes, junto con las claves públicas publicadas, son suficientes para una verificación posterior.
  • En cuanto los pasaportes de producto se registran en el registro de la UE, un segundo almacenamiento de solo lectura duplica cada versión del DPP y el registro de eventos durante diez años más. Nadie - ni siquiera nosotros - puede modificar estas copias de seguridad a posteriori.
  • Tras una rescisión, se seguirá pudiendo acceder a las URL cortas de los pases de producto a través de una redirección en la plataforma Transpareo.
  • Transpareo Time Machine sigue funcionando sin cambios incluso con datos archivados. El paquete no nos llama en tiempo de ejecución; solo necesita los bytes y las claves.

Si la plataforma Transpareo desapareciera mañana, seguirían existiendo las versiones del DPP y el renderizador de código abierto.

Para los curiosos por la tecnología

Esto es lo que ocurre «bajo el capó». Si no necesitas conocer los detalles, puedes saltarte esta sección; la aplicación seguirá funcionando igualmente.

  • GS1 Digital Link (ISO/IEC 18975): la URL del «Product Pass» contiene la identificación del producto en un formato estandarizado, independiente del resolutor e intercambiable entre proveedores.
  • Esquema de canonización JSON (RFC 8785): una serialización determinista. De este modo, el hash sigue siendo reproducible independientemente del orden de los campos o de los espacios en blanco: cualquiera puede volver a calcularlo por sí mismo.
  • W3C Data Integrity Proofs (eddsa-jcs-sha256): firma Ed25519 sobre la forma canónica (JCS).
  • /.well-known/dpp-keys/ (RFC 8615): las claves públicas de los emisores se encuentran en una ruta estandarizada; no es necesario contactar con Transpareo, cada verificador las encuentra por sí mismo.

Todo está documentado en el README de GitHub, incluida la arquitectura del frontend (núcleo React propio, sin frameworks externos) y las instrucciones de compilación para el autoalojamiento.

Ver el código en GitHub

En el repositorio público encontrarás el código fuente completo, todas las versiones y el hilo de discusión sobre el problema.