Vremenska mašina za DPP-ove

Zamislite da držite proizvod u ruci i skenirate QR kod na njemu. Umjesto PDF-a otvara se mala aplikacija. Vidite proizvod onakav kakav jest sada: od čega je napravljen, odakle dolazi i što trebate imati na umu. Potegom prsta vraćate se kroz vrijeme - možete pregledati svaku verziju koja je ikada objavljena.

Ovo je Transpareo Time Machine, naša open-source aplikacija za potrošače za bilo koji digitalni putovnica proizvoda. Kôd je dostupan pod licencom GPL v3 na GitHubu.

Izrađujemo ga jer je Uredba EU o digitalnom putovnici proizvoda napisana za potrošače - za osobu koja drži proizvod u rukama. Većina pružatelja usluga pretvara je u obrazac za usklađenost koji nitko nikada ne pregledava dvaput. Mi ga pretvaramo u aplikaciju koju će potrošači doista otvoriti.

Uvjerite se sami

demo prikazuje potpune putovnice proizvoda s primjerima podataka: pregledajte povijest verzija i otvorite naljepnicu inspekcije - izravno u vašem pregledniku, bez potrebe za računom.

Što aplikacija radi

Četiri točke dodira iz perspektive osobe koja drži proizvod. Bez prijave, bez instalacije aplikacije.

1

Skeniraj

Skenirajte QR kod kamerom svog pametnog telefona. Aplikacija će se otvoriti u vašem pregledniku.

2

Pogledajte najnovije vijesti

Proizvod u ovdje i sada - komponente, materijali, podrijetlo, održavanje, recikliranje.

3

Pregledaj povijest

Jednim prevlačenjem vraćate se kroz vrijeme. Svaka prethodna verzija, s datumom i razlogom promjene.

4

Podijeli

Svaka verzija ima vlastitu poveznicu. Osoba dijeli određenu verziju s prijateljima ili vlastima.

Zašto uopće?

Uredba EU o digitalnoj iskaznici proizvoda predstavlja najveći pomak prema transparentnosti proizvoda u posljednjih nekoliko desetljeća. Ako se pažljivo pročitaju temeljni tekstovi, jasno je da su napisani za potrošače. Nadležna tijela, reciklaže i servisi za popravak podržavaju to; ali primarni korisnik je osoba koja drži proizvod u svojim rukama.

Što se tiče brojki, situacija je jasna. Do kraja desetljeća prosječno europsko kućanstvo moći će skenirati desetke do stotine putovnica proizvoda godišnje. Na temelju 200 milijuna kućanstava, to iznosi milijarde interakcija s potrošačima godišnje. U usporedbi, svijet vlasti i reciklera je brojčano zanemariv.

Ako regulativa treba dosegnuti potrošače, platforma namijenjena potrošačima mora biti dobro dizajnirana - brza, privlačna i koherentna. Inače, neće ispuniti svoju svrhu.

Odlučili smo izgraditi ovu platformu namijenjenu potrošačima kao open source kako ne bi ovisila o jednom pružatelju usluga.

Tok događaja je uklesan u kamen; manifest je naš

Putovnica proizvoda se mijenja: popravak, novi cilj udjela recikliranog sadržaja, opoziv. Specifikacije stoga zahtijevaju da prethodne verzije ostanu dostupne: standard za pohranu zamrzava svaku verziju, dok standard za sučelja osigurava da se svaka verzija može specifično pročitati. Ono što specifikacije ostavljaju otvorenim je poveznica između njih: popis koji povezuje sve verzije putovnice u jednu povijest. Transpareo objavljuje to za svaki putovnica kao manifest, potpisan i s svakom verzijom povezanu s prethodnom putem digitalnog otiska. Na taj način “vremenska mašina” prolazi kroz povijest proizvoda, a čitatelj može provjeriti ne samo da je verzija autentična, već i da je najnovija u neprekinutom nizu.

Međutim, aplikacija nije vezana za to. Ako joj umjesto manifesta pokažete pojedinačni putovnicu - poput onih koje objavljuje svaki pružatelj usluga u skladu s otvorenim standardima - ona prikazuje tu jednu verziju, provjerava njezin potpis (ako ga ima) i jednostavno izostavlja vremensku crtu. Prolaz bez potpisa ne smatra se pogreškom, već se jednostavno prikazuje bez pečata odobrenja. Na taj način ista aplikacija prikazuje i prolaze koji nikada nisu bili registrirani kod Transpareo.

Promjena pružatelja usluga bez prekida

Uredba EU o putovnici digitalnog proizvoda zahtijeva putovnice proizvoda koje su interoperabilne i temeljene na otvorenim standardima - prenosive između usluga i sustava, a ne vezane uz jednog pružatelja usluga. Neovisnost o pružatelju usluga stoga nije neobavezna dodatna značajka, već dio zahtjeva.

Transpareo Time Machine je rješenje koje ovu zahtjevnost provodi u praksi. Budući da se svaki putni list proizvoda isporučuje u skladu s otvorenim standardima - identifikacija neovisna o resolveru, kanonička serijalizacija, javno objavljeni ključevi - a renderer je otvorenog koda pod licencom GPL v3, prikaz putnog lista nikada ne ovisi o našoj platformi.

Odgovornost za putovnicu proizvoda leži na poslovnom subjektu - proizvođaču, uvozniku ili ovlaštenom zastupniku. Ako odluče napustiti Transpareo i prijeći na drugog pružatelja usluga, prikaz ostaje stabilan: isti renderer otvorenog koda nastavlja prikazivati već objavljene verzije, zajedno s njihovom poviješću, bez ikakvih promjena, a novi pružatelj usluga koji podržava iste otvorene standarde bit će prikazan pomoću potpuno iste aplikacije.

Podaci se prenose zajedno s njim; potrošači ne primjećuju prekid, a nitko ne mora čekati migraciju.

Sam prijelaz nije projekt. Transpareo Time Machine je statički paket: izradite ga jednom, kopirajte na bilo koji web poslužitelj i gotovi ste. Dizajn koji ste postavili za svoje propusnice u Transpareu putuje s svakom propusnicom kao objavljeni stilski list. Prikaz propusnice na koji su vaši kupci navikli stoga izgleda potpuno isto na vašem poslužitelju, s bojama, fontom i logotipom.

Testirano u pregledniku, a ne na našem poslužitelju.

Na vrhu svakog putovnice proizvoda pojavljuje se bedž: ‘Verificirano od strane Transpareo’. On prikazuje rezultat postupka verifikacije koji se ne odvija na našem poslužitelju, već u pregledniku posjetitelja - na temelju preuzetih podataka i javnih ključeva izdavatelja.

Svaku verziju DPP-a potpisuju dvije neovisne strane: izdavatelj i Transpareo. Oba potpisa moraju biti provjerljiva da bi oznaka postala zelena. Uz model “Donesi svoj ključ” (BYOK), izdavatelj upravlja vlastitim krajnjim tokom za potpis - Transpareo nikada ne posjeduje privatni ključ i samo dodaje neovisni su-potpis. To rezultira potpisom izdavatelja koji Transpareo sam ne može generirati.

Kompromitirani poslužitelj ne može krivotvoriti kvačicu jer se provjera odvija na poslužitelju posjetitelja.

Ako želite točno znati što se događa, kliknite na bedž. Iza njega vidjet ćete lanac potpisa, haševe i povijest verzija u lancu. Ako samo želite informacije, jednostavno zanemarite ovo i nastavite čitati putovnicu proizvoda.

Ista provjera dostupna je i kao samostalna stranica: na Verifikacija DPP-a unesite URL manifesta bilo koje putovnice proizvoda i pogledajte cjelokupni rezultat provjere - bez otvaranja same putovnice.

Objavljujemo kod

Transpareo Time Machine licenciran je pod GPL v3 na GitHubu. Sve objavljene izmjene moraju biti licencirane pod GPL v3, kako bi i daljnji razvoj koristio široj zajednici.

Kloniranje, forkiranje, samostalno hostanje - sve je dopušteno.

Datoteka README tamo objašnjava kako integrirati aplikaciju, bilo jednom linijom koda na stranici, kao paket unutar vlastite aplikacije ili u potpunosti hostanu od strane korisnika. Tamo ćete također pronaći i sestrinsku komponentu za čistu provjeru potpisa, koja je dostupna na adresi Verifikacija DPP-a.

Oni koji učinkovito koriste aplikaciju

Aplikacija je prvenstveno namijenjena potrošačima. Međutim, može je koristiti svatko tko želi neovisno pregledati ili provjeriti podatke o proizvodu.

  • Krajnji potrošači mogu skenirati, pregledavati, pretraživati i dijeliti. Bez prijave, bez praćenja.
  • Tijela za nadzor tržišta i regulatorna tijela mogu pregledati putovnicu proizvoda u softveru čiji je izvorni kod javno provjerljiv.
  • Servisi za popravak i reciklaže mogu pregledati sastav materijala i upute za rastavljanje izravno na proizvodu.
  • Marki i operateri vilica mogu prilagoditi paket kako bi odgovarao njihovoj vlastitoj marki - CSS tokeni, prilagođene komponente, samostalno hostanje.

Što se događa ako Transpareo više ne postoji?

EU zahtijeva da registrirani putovnica proizvoda ostane dostupna najmanje deset godina - čak i nakon insolventnosti ili likvidacije izdavatelja. Pružatelj SaaS usluga rijetko posluje toliko dugo. Stoga platformu od samog početka gradimo na način da putovnice proizvoda ostanu upotrebljive neovisno o nama:

  • Svaka potpisana verzija DPP-a pohranjuje se u javno dostupnom repozitoriju. Podaci, zajedno s objavljenim javnim ključevima, dovoljni su za naknadnu provjeru.
  • Čim se putovnice proizvoda registriraju u EU registru, drugi sustav pohrane samo za čitanje duplicira svaku verziju DPP-a i dnevnik događaja na dodatnih deset godina. Nitko - pa čak ni mi - ne može retroaktivno mijenjati te duplicirane kopije.
  • Nakon prestanka važenja, kratke URL-ove za putovnice proizvoda i dalje je moguće koristiti putem preusmjeravanja na platformi Transpareo.
  • Transpareo Time Machine nastavlja raditi nepromijenjeno, čak i na arhiviranim podacima. Paket nas ne poziva natrag tijekom izvođenja; potrebni su mu samo bajtovi i ključevi.

Da platforma Transpareo sutra nestane, verzije DPP-a i renderer otvorenog koda ostali bi.

Za one koje zanima tehnologija

Evo što se događa ispod haube. Ako ne trebate znati detalje, možete preskočiti ovaj odjeljak - aplikacija će i dalje raditi.

  • GS1 Digital Link (ISO/IEC 18975): URL putovnice proizvoda sadrži identifikator proizvoda u standardiziranom formatu - neovisan o rješavaču i zamjenjiv između pružatelja usluga.
  • Shema kanonizacije JSON-a (RFC 8785): Deterministička serijalizacija. To osigurava da hash ostane reproducibilan bez obzira na redoslijed polja ili praznih znakova - svatko ga može samostalno provjeriti.
  • W3C dokazi o integritetu podataka (eddsa-jcs-2022): Ed25519 potpis nad kanoniziranim oblikom (JCS).
  • /.well-known/dpp-keys/ (RFC 8615): Javni ključevi izdavatelja nalaze se na standardiziranoj putanji - nema potrebe kontaktirati Transpareo; svaki provjeritelj može ih pronaći samostalno.

Sve je dokumentirano u README-u na GitHubu - uključujući arhitekturu front-enda (naše vlastito reaktivno jezgro, bez vanjskih okvira) i upute za izradu za samostalno hostanje.

Pogledajte kod na GitHubu

Možete pronaći cjeloviti izvorni kod, sve izdanja i raspravu o problemu u javnom repozitoriju.