Una macchina del tempo per i DPP

Immaginate di avere in mano un prodotto e di scansionarne il codice QR. Invece di un PDF, si apre una piccola app. Potete vedere il prodotto nel momento presente: di cosa è composto, da dove proviene, a cosa bisogna prestare attenzione. Con un semplice gesto di scorrimento si torna indietro nel tempo: è possibile visualizzare ogni versione mai pubblicata.

È proprio quello che potete provare ora: la demo mostra un passaporto di prodotto completo con dati di esempio.

Si tratta di Transpareo Time Machine, la nostra app open source per i consumatori dedicata a ogni passaporto digitale del prodotto. Il codice è disponibile su GitHub sotto licenza GPL v3.

La stiamo sviluppando perché il regolamento UE sul passaporto digitale del prodotto è stato scritto per i consumatori, ovvero per chi ha il prodotto tra le mani. La maggior parte dei fornitori ne fa un semplice modulo di conformità che nessuno legge due volte. Noi ne facciamo un’app che il consumatore aprirà davvero.

Cosa fa l'app

Quattro punti di contatto dal punto di vista della persona che tiene il prodotto in mano. Nessun login, nessuna installazione di app.

1

Scansione

Scansiona il codice QR con la fotocamera dello smartphone. L'app si aprirà nel browser.

2

Visualizza le ultime notizie

Il prodotto nel presente: componenti, materiali, provenienza, manutenzione, riciclaggio.

3

Sfogliare la storia

Con un semplice gesto di scorrimento si torna indietro nel tempo. Ogni versione precedente con data e motivo della modifica.

4

Condividi

Ogni versione ha il proprio link. Una persona condivide una determinata versione con gli amici o con le autorità.

Ma perché mai?

Il regolamento UE sul passaporto digitale del prodotto rappresenta il più grande passo avanti verso la trasparenza dei prodotti degli ultimi decenni. Se si leggono attentamente i testi di riferimento, si nota che è stato redatto esplicitamente a beneficio dei consumatori. Le autorità, le imprese di riciclaggio e le officine ne trarranno beneficio, ma il destinatario principale è la persona che ha il prodotto tra le mani.

In termini numerici, la situazione è chiara. Entro la fine del decennio, un privato europeo medio potrà scansionare da decine a centinaia di passaporti dei prodotti all’anno. Calcolando su 200 milioni di famiglie, si tratta di miliardi di interazioni con i consumatori ogni anno. Il mondo delle autorità e dei riciclatori è, in confronto, numericamente irrisorio.

Se il regolamento deve raggiungere i consumatori, allora il sito dedicato a loro deve essere ben strutturato: veloce, accattivante, coerente. Altrimenti non raggiungerà il suo scopo. Abbiamo deciso di realizzare questo sito con codice aperto, in modo che non dipenda da un singolo fornitore.

Verificato nel browser, non sul nostro server

Nella parte superiore di ogni scheda prodotto compare un bollino: “Verificato da Transpareo”. Esso indica il risultato di una verifica che non avviene sul nostro server, bensì nel browser del visitatore, sulla base dei byte caricati e delle chiavi pubbliche del produttore.

Ogni versione del DPP viene firmata da due enti indipendenti l’uno dall’altro: il produttore e Transpareo. Entrambe le firme devono essere verificabili affinché il badge diventi verde. Con la modalità «Bring Your Own Key» (BYOK), il produttore gestisce un proprio endpoint di firma: Transpareo non detiene mai la chiave privata e si limita ad aggiungere la controfirma indipendente. In questo modo si ottiene una firma dell’emittente che Transpareo non è in grado di generare autonomamente. Un server compromesso non può falsificare il segno di spunta, poiché la verifica avviene direttamente sul dispositivo del visitatore.

Chi desidera approfondire può cliccare sul badge. Dietro di esso sono visibili la catena di firme, gli hash e la cronologia delle versioni concatenata. Chi desidera solo l’informazione, può semplicemente ignorarlo e continuare a leggere la scheda del prodotto.

La stessa verifica è disponibile anche come pagina autonoma: nella verifica DPP è possibile inserire l’URL del manifesto di qualsiasi scheda del prodotto e visualizzare il risultato completo della verifica, senza dover aprire la scheda stessa.

Rendiamo pubblico il codice

Transpareo Time Machine è disponibile sotto licenza GPL v3 su GitHub. Clonare, creare un fork, ospitarlo autonomamente: tutto è consentito. Le modifiche pubblicate devono a loro volta essere rilasciate sotto licenza GPL v3, affinché ogni ulteriore sviluppo sia a beneficio della comunità.

Tre modi per integrare il bundle:

  • Tramite tag script: basta inserire <script> e <transpareo-time-machine src="…"> nella pagina, il gioco è fatto - nessuna fase di compilazione.
  • Tramite npm: npm install transpareo-time-machine nella propria app.
  • Hosting autonomo: creare il bundle, utilizzare la propria infrastruttura, zero dipendenze da terze parti in fase di esecuzione.

Chi ha bisogno solo della verifica della firma senza la visualizzazione completa del prodotto, importi l’elemento correlato <dpp-verifier> - ideale per gli strumenti di audit. Da vedere dal vivo nella verifica DPP.

Chi utilizza l'app in modo appropriato

L’app è stata sviluppata innanzitutto per i consumatori. Tuttavia, è utilizzabile da chiunque desideri consultare o verificare i dati dei prodotti in modo indipendente.

  • I consumatori finali scansionano, visualizzano, sfogliano, condividono. Nessun login, nessun tracker.
  • Le autorità di vigilanza del mercato e le autorità competenti visualizzano il passaporto del prodotto in un software il cui codice sorgente è sottoposto a revisione pubblica.
  • Le officine e le aziende di riciclaggio visualizzano la composizione dei materiali e le istruzioni di smontaggio direttamente sul prodotto.
  • I marchi e i gestori di fork personalizzano il pacchetto in base al proprio marchio: token CSS, componenti propri, self-hosting.

Cosa succederebbe se Transpareo non ci fosse più?

L’UE richiede che un passaporto del prodotto registrato rimanga disponibile per almeno dieci anni, anche in caso di insolvenza o liquidazione del produttore. Un fornitore SaaS raramente rimane in attività così a lungo. Per questo motivo, fin dall’inizio progettiamo la piattaforma in modo che i passaporti di prodotto rimangano utilizzabili indipendentemente da noi:

  • Ogni versione firmata del DPP è archiviata in un archivio accessibile pubblicamente. I byte e le chiavi pubbliche pubblicate sono sufficienti per una verifica successiva.
  • Non appena i passaporti di prodotto vengono registrati nel registro dell’UE, un secondo archivio di sola lettura ne conserva una copia di ogni versione del DPP e del registro degli eventi per altri dieci anni. Nessuno - nemmeno noi - può modificare queste copie di backup in un secondo momento.
  • In caso di disdetta, gli URL abbreviati dei passaporti di prodotto rimangono accessibili tramite un reindirizzamento sulla piattaforma Transpareo.
  • Transpareo Time Machine funziona senza modifiche anche con i dati archiviati. Il bundle non richiede alcun richiamo in fase di esecuzione; gli bastano solo i byte e le chiavi.

Se domani la piattaforma Transpareo scomparisse, rimarrebbero le versioni del DPP e il renderer open source.

Per chi è appassionato di tecnologia

Ecco cosa succede “sotto il cofano”. Chi non ha bisogno di conoscerne i dettagli può saltare questa sezione: l’app funzionerà comunque.

  • GS1 Digital Link (ISO/IEC 18975): l’URL del passaporto del prodotto contiene l’identificativo del prodotto in un formato standardizzato - indipendente dal resolver e intercambiabile tra i fornitori.
  • JSON Canonicalization Scheme (RFC 8785): una serializzazione deterministica. In questo modo l’hash rimane riproducibile indipendentemente dall’ordine dei campi o dagli spazi bianchi: chiunque può ricalcolarlo autonomamente.
  • W3C Data Integrity Proofs (eddsa-jcs-sha256): firma Ed25519 sulla forma canonizzata (JCS).
  • /.well-known/dpp-keys/ (RFC 8615): le chiavi pubbliche degli emittenti si trovano in un percorso standardizzato - non è necessario rivolgersi a Transpareo, ogni verificatore le trova autonomamente.

Tutto è documentato nel README su GitHub, compresa l’architettura frontend (nucleo reattivo proprietario, zero framework esterni) e le istruzioni di compilazione per l’autohosting.

Visualizza il codice su GitHub

Il codice sorgente completo, tutte le versioni e la discussione sull’issue sono disponibili nel repository pubblico.