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á compuesto, de dónde procede, qué hay que tener en cuenta. Con un simple deslizamiento, retrocede en el tiempo: puedes ver todas las versiones que se han publicado hasta la fecha.

Esto es Transpareo Time Machinenuestra aplicación de código abierto para el consumidor, compatible con cualquier pasaporte digital del producto. El código está disponible bajo la licencia GPL v3 en GitHub.

La desarrollamos 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, en cambio, lo convertimos en una aplicación que el consumidor realmente abre.

Compruébalo tú mismo

Los pasaportes del producto de ejemplo están completos y contienen datos ficticios: consulte el historial de versiones y abra la etiqueta de inspección, directamente en el navegador, sin necesidad de crear una cuenta.

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 adaptan a ella; pero el destinatario principal es la persona que tiene el producto en sus manos.

En términos numéricos, la situación es clara. Un ciudadano europeo medio podrá escanear, a finales de esta década, entre docenas y cientos de pasaportes del producto al año. Si lo calculamos sobre la base de 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.

El proceso es una norma, el manifiesto es obra nuestra

El pasaporte del producto puede sufrir modificaciones: una reparación, una nueva cuota de material reciclado, una retirada del mercado. Por ello, las especificaciones exigen que las versiones anteriores sigan estando disponibles: la norma sobre almacenamiento congela cada versión, mientras que la norma sobre interfaces prevé que cada versión pueda consultarse de forma específica. Lo que las especificaciones dejan sin definir es el eslabón intermedio: una lista que conecte todas las versiones de un pasaporte en una historia. Transpareo la publica para cada ficha en forma de manifiesto, firmado, con cada versión enlazada a su predecesora mediante una huella digital. De este modo, la «máquina del tiempo» recorre la historia de un producto, y el lector no solo comprueba que una versión es auténtica, sino que es la más reciente de una secuencia ininterrumpida.

Sin embargo, la aplicación no se limita a ello. Si, en lugar del manifiesto, se le muestra un único pase - tal y como lo publica cualquier proveedor según los estándares abiertos - , muestra esa única versión, comprueba su firma, si la tiene, y simplemente omite la línea temporal. Un pase sin firma no se considera un error, sino que simplemente se muestra sin sello de verificación. De este modo , la misma aplicación también muestra pases que nunca han estado registrados en Transpareo.

Cambio de proveedor sin interrupciones

El Reglamento de la UE sobre el pasaporte digital del producto exige que los pasaportes del producto sean interoperables y se basen en estándares abiertos, es decir, que sean transferibles entre servicios y sistemas, en lugar de estar vinculados a un único proveedor. Por lo tanto, la independencia respecto al proveedor de servicios no es un elemento adicional, sino parte integrante de los requisitos.

Transpareo Time Machine Es el componente que materializa este requisito. Dado que cada pasaporte del producto se entrega en formatos abiertos - identificación independiente del resolutor, serialización canónica, claves publicadas - y que el renderizador es de código abierto bajo la licencia GPL v3, la visualización de un pasaporte nunca depende de nuestra plataforma.

El responsable de un pasaporte del producto es un operador económico: el fabricante, un importador o un representante autorizado. Si decide abandonar Transpareo y cambiarse a otro proveedor, la visualización se mantiene estable: el mismo renderizador de código abierto sigue mostrando sin cambios las versiones ya publicadas, junto con su historial, y un nuevo proveedor que utilice los mismos estándares abiertos se mostrará exactamente en la misma aplicación.

Los datos se transfieren, los consumidores no perciben ninguna interrupción y nadie tiene que esperar a que se produzca una migración.

La migración en sí misma no es un proyecto. Transpareo Time Machine es un paquete estático: una vez creado, se copia en cualquier servidor web y ya está. El diseño que ha configurado en Transpareo para sus pases se transfiere como una hoja de estilo publicada junto con cada pase. Por lo tanto, la vista del pase a la que se han acostumbrado sus clientes tendrá exactamente el mismo aspecto en su propio servidor, incluidos los colores, la tipografía y el logotipo.

Comprobado en el navegador, no en nuestro servidor

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

Dos entidades independientes entre sí firman cada versión del DPP: el emisor y Transpareo. Ambas firmas deben poder verificarse para que la insignia se vuelva verde. Con «Bring Your Own Key» (BYOK), el emisor 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 verificación se realiza en el propio dispositivo del visitante.

Quien desee obtener información detallada, haga clic en la insignia. Detrás de ella podrá ver la cadena de firmas, los hash y el historial de versiones encadenadas. Si solo desea la información, simplemente ignórelo y siga leyendo el pasaporte del producto.

Esta misma comprobación también está disponible en una página independiente: en Verificación DPP, introduzca la URL del manifiesto del pasaporte del producto y podrá ver el resultado completo de la comprobación, sin necesidad de abrir el pasaporte del producto en sí.

Publicamos el código

Transpareo Time Machine está disponible bajo la licencia GPL v3 en GitHub. Las modificaciones publicadas deben estar, a su vez, bajo la licencia GPL v3, para que cualquier desarrollo posterior beneficie a la comunidad.

Clonar, bifurcar, alojarlo usted mismo: todo está permitido.

En el archivo README de ese enlace se explica cómo integrar la aplicación, ya sea con una línea en la página, como paquete en su propia aplicación o alojándola usted mismo por completo. Allí también encontrará el componente complementario para la verificación de la firma, que está en funcionamiento en Verificación 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» adaptan el paquete a su propia marca: tokens CSS, componentes propios, autoalojamiento.

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

La UE exige que un pasaporte del producto registrado permanezca disponible durante al menos diez años, incluso tras la quiebra o la liquidación del emisor. Un proveedor de SaaS rara vez perdura tanto tiempo. Por ello, diseñamos la plataforma desde el principio de tal forma que los pasaportes del 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.
  • Una vez que los pasaportes del producto se hayan registrado en el registro de la UE, un segundo almacenamiento de solo lectura conservará una copia de seguridad de cada versión del DPP y del registro de eventos durante diez años más. Nadie - ni siquiera nosotros - puede modificar estas copias de seguridad a posteriori.
  • Tras la rescisión del contrato, se podrá seguir accediendo a las URL cortas de los pasaportes del producto a través de un redireccionamiento 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 «pasaporte del producto» 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-2022): 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 archivo README de GitHub, incluida la arquitectura del front-end (núcleo reactivo propio, sin marcos 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.