Transpareo Time Machine
En open source-app til forbrugere, der understøtter alle DPP’er, ikke kun Transpareo-pas: scan, blad gennem produktets historie, del en versionsstatus. En tidsmaskine til DPP’er.
En tidsmaskine til DPP'er
Forestil dig, at du holder et produkt i hånden og scanner QR-koden på det. I stedet for en PDF-fil åbnes der en lille app. Du ser produktet her og nu: hvad det består af, hvor det kommer fra, og hvad du skal være opmærksom på. Et enkelt stryg med fingeren tager dig tilbage i tiden - du kan se alle versioner, der nogensinde er blevet udgivet.
Det er Transpareo Time Machine, vores open source-app til forbrugere, der understøtter alle digitale produktpas. Koden er tilgængelig under GPL v3 på GitHub.
Vi udvikler den, fordi EU-forordningen om det digitale produktpas er skrevet til forbrugerne - til den person, der holder produktet i hånden. De fleste udbydere gør det til et compliance-formular, som ingen kigger på to gange. Vi gør det til en app, som forbrugeren rent faktisk åbner.
Se selv
Demoen viser komplette produktpas med eksempeldata: Bladr gennem versionshistorikken og åbn kontrolmærket - direkte i browseren, uden at skulle oprette en konto.
Hvad appen gør
Fire berøringspunkter set fra den persons perspektiv, der holder produktet i hånden. Ingen login, ingen app-installation.
Scanning
Scan QR-koden med smartphone-kameraet. Appen åbnes i browseren.
Se nyheder
Produktet i nutiden - komponenter, materialer, oprindelse, pleje, genbrug.
Bladre gennem historien
En strygebevægelse bladrer tilbage i tiden. Hver tidligere version med dato og årsag til ændringen.
Del
Hver version har sit eget link. En person deler en bestemt version med venner eller myndigheder.
Hvorfor overhovedet?
EU-forordningen om det digitale produktpas er det største skridt i retning af produktgennemsigtighed i årtier. Hvis man læser de underliggende tekster grundigt, er den udtrykkeligt skrevet med forbrugerne for øje. Myndighederne, genvindingsvirksomhederne og værkstederne følger med, men den primære modtager er den person, der holder produktet i hånden.
Tallene taler for sig selv. En gennemsnitlig europæisk privatperson vil ved udgangen af dette årti kunne scanne snesevis til hundreder af produktpas om året. Omregnet til 200 millioner husstande svarer det til milliarder af forbrugerinteraktioner om året. Myndighedernes og genvindingsvirksomhedernes verden er i sammenligning numerisk ubetydelig.
Hvis forordningen skal nå ud til forbrugerne, skal forbrugersiden være godt udformet - hurtig, flot og sammenhængende. Ellers går den glip af sit formål.
Vi har besluttet at udvikle denne forbrugerside som open source, så den ikke er afhængig af en enkelt udbyder.
Forløbet er fastlagt, manifestet er vores
Et produktpas ændres: en reparation, en ny genanvendelsesandel, en tilbagekaldelse. Kravene foreskriver derfor, at tidligere versioner skal forblive tilgængelige: Standarden for lagring fastfryser hver version, mens standarden for grænseflader sikrer, at hver version kan læses målrettet. Det, som kravene ikke omhandler, er det, der ligger imellem: en liste, der forbinder alle versioner af et pas til en sammenhængende historie. Transpareo offentliggør den for hvert certifikat som et manifest, signeret, hvor hver version er kædet sammen med sin forgænger via et fingeraftryk. Dermed bladrer tidsmaskinen gennem et produkts historie, og en læser kontrollerer ikke blot, at en version er ægte, men også at den er den aktuelle i en sammenhængende række.
Appen er dog ikke afhængig af dette. Hvis man i stedet for manifestet viser den et enkelt pas, som enhver udbyder offentliggør i henhold til de åbne standarder, viser den denne ene version, kontrollerer dens signatur, hvis den har en, og udelader simpelthen tidslinjen. Et pass uden signatur betragtes ikke som en fejl, men vises blot uden verifikationsmærke. På samme måde gengiver den samme app også pass, der aldrig har været registreret hos Transpareo.
Skift af udbyder uden afbrydelse
EU-forordningen om det digitale produktpas kræver produktpas, der er interoperable og baseret på åbne standarder - som kan overføres mellem tjenester og systemer i stedet for at være bundet til en enkelt udbyder. Uafhængighed af tjenesteudbyderen er altså ikke et tillæg, men en del af kravet.
Transpareo Time Machine er det værktøj, der konkretiserer dette krav. Da hvert produktpas leveres i åbne standarder - resolver-neutral identifikation, kanonisk serialisering, offentligt offentliggjorte nøgler - og rendereren er open source under GPL v3, er visningen af et produktpas aldrig afhængig af vores platform.
Ansvaret for et produktpas ligger hos en økonomisk aktør - producenten, en importør eller en bemyndiget repræsentant. Hvis denne beslutter at forlade Transpareo og skifte til en anden udbyder, forbliver visningen stabil: Den samme open source-renderer viser fortsat de allerede offentliggjorte versioner samt historikken uændret, og en ny udbyder, der anvender de samme åbne standarder, vises af nøjagtig den samme app.
Dataene følger med, forbrugerne oplever ingen afbrydelse, og ingen behøver at vente på en migrering.
Selve flytningen er ikke et projekt. Transpareo Time Machine er et statisk bundt: én gang opbygget, kopieret til en vilkårlig webserver - færdig. Det design, du har oprettet i Transpareo til dine pas, følger med som et offentliggjort stylesheet med hvert pas. Den pasvisning, som dine kunder er vant til, ser altså nøjagtig den samme ud på din egen server, inklusive farver, skrifttype og logo.
Testet i browseren, ikke på vores server
Øverst i hvert produktpas vises et mærke: Verificeret af Transpareo. Det viser resultatet af en kontrol, der ikke finder sted på vores server, men i den besøgendes browser - baseret på de indlæste bytes og udstederens offentlige nøgler.
To uafhængige instanser signerer hver DPP-version: udstederen og Transpareo. Begge signaturer skal kunne verificeres, for at mærket bliver grønt. Med Bring Your Own Key (BYOK) driver udstederen sit eget signaturendepunkt - Transpareo opbevarer aldrig den private nøgle og tilføjer kun den uafhængige modsignatur. På den måde opstår der en udstedersignatur, som Transpareo selv ikke kan generere.
En kompromitteret server kan ikke forfalske afkrydsningen, da kontrollen foregår hos besøgende selv.
Hvis man vil vide det helt præcist, skal man klikke på mærket. Bagved kan man se signaturkæden, hashværdierne og den sammenkædede versionshistorik. Hvis man blot ønsker informationen, kan man blot ignorere det og læse videre i produktpasset.
Den samme kontrol findes også som en selvstændig side: På DPP-verifikation indsætter man manifest-URL’en for et hvilket som helst produktpass og ser det fulde kontrolresultat - uden at åbne passet selv.
Vi frigiver koden
Transpareo Time Machine er udgivet under GPL v3 på GitHub. Offentliggjorte ændringer skal selv være under GPL v3, så enhver videreudvikling kommer almenheden til gode.
Klon, fork, selvhost - alt er tilladt.
Hvordan du integrerer appen - enten med en enkelt linje på siden, som et pakke i din egen applikation eller fuldstændig selvhostet - fremgår af README-filen der. Der finder du også søsterelementet til den rene signaturkontrol, som kører live på DPP-verifikation.
Hvem der bruger appen på en fornuftig måde
Appen er primært udviklet til forbrugere. Den kan dog bruges af alle, der ønsker at se eller verificere produktdata uafhængigt.
- Slutforbrugere scanner, ser, bladrer og deler. Ingen login, ingen sporingsværktøjer.
- Markedstilsynsmyndigheder og offentlige myndigheder kan se produktpasset i et program, hvis kildekode kan kontrolleres offentligt.
- Værksteder og genvindingsvirksomheder kan se materialesammensætning og demonteringsvejledning direkte på produktet.
- Mærker og fork-operatører tilpasser pakken til deres eget mærke - CSS-tokens, egne komponenter, selvhosting.
Hvad sker der, hvis Transpareo ikke længere findes?
EU kræver, at et registreret produktpas forbliver tilgængeligt i mindst ti år - også efter udstederens konkurs eller likvidation. En SaaS-udbyder eksisterer sjældent så længe. Derfor bygger vi platformen fra starten af på en sådan måde, at produktpassene forbliver anvendelige uafhængigt af os:
- Hver signeret DPP-version ligger i et offentligt læsbart lager. Bytterne samt de offentliggjorte offentlige nøgler er tilstrækkelige til en senere verifikation.
- Så snart produktpassene er registreret i EU-registret, spejles hver DPP-version og hændelsesloggen i et andet, skrivebeskyttet lager i yderligere ti år. Ingen - heller ikke vi - kan ændre disse spejlkopier efterfølgende.
- Efter en opsigelse forbliver de korte produktpas-URL’er tilgængelige via en omdirigering på Transpareo-platformen.
- Transpareo Time Machine kører uændret, også på arkiverede data. Pakken kalder ikke tilbage til os under kørsel; den har kun brug for bytes og nøglerne.
Hvis Transpareo-platformen forsvandt i morgen, ville DPP-versionerne og den open source-baserede renderer forblive.
Til de teknologisk nysgerrige
Her er en beskrivelse af, hvad der foregår »under motorhjelmen«. Hvis du ikke har brug for at kende detaljerne, kan du springe dette afsnit over - appen fungerer alligevel.
- GS1 Digital Link (ISO/IEC 18975): Produktpass-URL’en indeholder produktidentifikationen i en standardiseret form - resolverneutral og udskiftelig mellem udbydere.
- JSON Canonicalization Scheme (RFC 8785): En deterministisk serialisering. På den måde forbliver hashen reproducerbar uafhængigt af feltrækkefølge eller mellemrum - alle kan selv beregne den.
- W3C Data Integrity Proofs (eddsa-jcs-2022): Ed25519-signatur via den kanoniserede form (JCS).
- /.well-known/dpp-keys/ (RFC 8615): Udstederens offentlige nøgler findes under en standardiseret sti - der er ikke behov for at kontakte Transpareo, da enhver verifikator selv kan finde dem.
Alt er dokumenteret i README på GitHub - inklusive frontend-arkitekturen (egen reaktiv kerne, ingen eksterne rammeværker) og vejledningen til selvhosting.
Relaterede emner
Transpareo Time Machine er forbrugersiden i en bredere indsats for at gøre digitale produktpas uafhængigt verificerbare.

EU-DPP-registeret: hvad Kommissionens udkast af 29. april indeholder
EU-registret er en fortegnelse, ikke en kopi af dine oplysninger. Du indtaster selv oplysningerne, og registret gemmer adresse og fingeraftryk.

Have Your Say: Hvad vi har skrevet til EU-Kommissionen om DPP-registerforordningen
Der lå et lovforslag på bordet, og alle måtte skrive deres kommentarer ind i det. Det gjorde vi - fire gange - vedrørende de fire punkter, som en producent først og fremmest har indvendinger imod.
Se koden på GitHub
Den fulde kildekode, alle udgivelser og diskussionen om problemet findes i det offentlige repository.






