Временска машина за ДПП

Замислите да држите производ у руци и скенирате QR код на њему. Уместо PDF-а, отвара се мала апликација. Видите производ онаквим какав јесте: од чега је направљен, одакле потиче и шта треба да имате на уму. Повлачењем прста уназад путујете кроз време - можете да прегледате сваку верзију која је икада објављена.

Можете ово одмах да испробате: демо⁠ приказује комплетан пасош производа са примерним подацима.

Ово је Transpareo Time Machine, наша апликација отвореног кода за потрошаче за било који Пасош дигиталног производа. Код је доступан под лиценцом GPL v3 на GitHub⁠.

Радимо на томе јер је ЕУ регулатива о Паспорту дигиталног производа написана за потрошаче - за особу која држи производ у рукама. Већина провајдера га претвара у образац за усаглашеност који нико никада не прегледа два пута. Ми га претварамо у апликацију коју ће потрошачи заиста отворити.

Шта апликација ради

Четири додирне тачке из перспективе особе која држи производ. Без пријаве, без инсталације апликације.

1

Скенирај

Скенирајте QR код помоћу камере вашег паметног телефона. Апликација ће се отворити у вашем прегледачу.

2

Погледајте најновије вести

Производ овде и сада - компоненте, материјали, порекло, одржавање, рециклирање.

3

Прегледајте историју

Повлачењем се враћате кроз време. Сва претходна издања, са датумом и разлогом промене.

4

Подели

Свака верзија има свој линк. Особа дели одређену верзију са пријатељима или властима.

Зашто уопште?

Уредба ЕУ о дигиталном пасошу производа представља највећи помак ка транспарентности производа у последњих неколико деценија. Ако се пажљиво прочитају основни текстови, јасно је да су написани управо за потрошаче. Надлежне институције, рециклажери и сервиси су укључени; али примарни прималац је особа која држи производ у рукама.

Што се тиче бројева, ситуација је јасна. До краја деценије, просечно европско домаћинство ће моћи да скенира десетине до стотине пасоша производа годишње. На основу 200 милиона домаћинстава, то износи милијарде интеракција потрошача годишње. За поређење, свет власти и рециклатера је бројчано занемарљив.

Ако регулатива треба да допре до потрошача, платформа намењена потрошачима мора бити добро осмишљена - брза, атрактивна и кохерентна. У супротном, неће испунити своју сврху. Одлучили смо да ову платформу намењену потрошачима изградимо као софтвер отвореног кода како не би зависила од једног провајдера.

Прелазак провајдера без прекида

Уредба ЕУ о пасошу дигиталног производа захтева пасоше производа који су међусобно компатибилни и засновани на отвореним стандардима - преносиви између услуга и система, уместо да буду везани за једног провајдера. Независност од провајдера услуга стога није опционални додатак, већ део обавезног захтева.

Transpareo Time Machine је решење које ово захтевање спроводи у пракси. Пошто се сваки пасош производа испоручује у складу са отвореним стандардима - резолутерски неутрална идентификација, каноничка серијска обрада, јавно објављени кључеви - а рендерер је отвореног кода под GPL v3 лиценцом, приказ пасоша никада не зависи од наше платформе.

Одговорност за пасош производа лежи на пословном ентитету - произвођачу, увознику или овлашћеном представнику. Ако одлуче да напусте Transpareo и пређу на другог провајдера, приказ остаје доследан: Исти рендерер отвореног кода наставља да приказује претходно објављене верзије, укључујући и историју, без икаквих промена, а нови провајдер који подржава исте отворене стандарде биће приказан прецизно истом апликацијом. Подаци се преносе заједно са њим; потрошачи не осећају прекид, и нико не мора да чека миграцију.

Тестирано у прегледачу, а не на нашем серверу.

На врху сваког пасоша производа појављује се ознака: “Verified by Transpareo”. Она показује резултат процеса верификације који се не одвија на нашем серверу, већ у прегледачу посетиоца - на основу учитаних бајтова и јавних кључева издаваоца.

Две независне стране потписују сваку верзију DPP-а: издавач и Transpareo. Оба потписа морају бити проверљива да би ознака постала зелена. Користећи опцију “Донесите свој кључ” (BYOK), издавач управља сопственим крајњим местима за потписивање - Transpareo никада не поседује приватни кључ и само додаје независни контрапотпис. Ово ствара издавачки потпис који сам Transpareo не може да генерише. Компромитовани сервер не може да фалсификује ознаку, јер се верификација одвија на уређају самог посетиоца.

Ако желите да сазнате тачно шта се дешава, кликните на ознаку. Иза ње ћете видети ланац потписа, хешове и повезану историју верзија. Ако желите само информације, једноставно игноришите ово и наставите са читањем пасоша производа.

Иста верификација је такође доступна као самостална страница: на страници за верификацију DPP-а унесите URL манифеста било ког пасоша производа и погледајте пун резултат верификације - без отварања самог пасоша.

Објављујемо код

Transpareo Time Machine је лиценциран под GPL v3 на GitHub-у⁠. Клонирање, форковање, самостално хостовање - све је дозвољено. Све објављене измене морају заузврат бити лиценциране под GPL v3, како би даљи развој користио широј заједници.

Три начина за интеграцију пакета:

  • Преко script тага: једноставно додајте <script> и <transpareo-time-machine src="…"> на вашу страницу - то је све; није потребан корак изградње.
  • Преко npm-а: npm install transpareo-time-machine у вашој апликацији.
  • Самостално хостовање: изградите пакет, користите своју инфраструктуру, нулта зависност од трећих страна при покретању.

Ако вам је потребна само верификација потписа без пуног приказа производа, увезите сестрински елемент <dpp-verifier> - идеалан за алате ревизора. Погледајте га у акцији на страници за верификацију DPP-а.

Они који ефикасно користе апликацију

Апликација је првенствено намењена потрошачима. Међутим, може да је користи свако ко жели самостално да прегледа или провери податке о производу.

  • Крајњи потрошачи могу да скенирају, прегледају, претражују и деле. Без пријаве, без трагача.
  • Тела за надзор тржишта и регулаторна тела могу да прегледају пасош производа у софтверу чији је изворни код јавно проверљив.
  • Сервиси за поправку и рециклажери могу да прегледају састав материјала и упутства за растављање директно на производу.
  • Брендови и оператери виљушкара могу да прилагоде пакет свом бренду - CSS токени, прилагођене компоненте, самостално хостовање.

Шта ће се догодити ако Transpareo више не постоји?

ЕУ захтева да регистровани пасош производа остане доступан најмање десет година - чак и након стечаја или ликвидације издаваоца. Провајдер SaaS услуга ретко опстане толико дуго. Стога платформу градимо од самог почетка на такав начин да пасоши производа остану употребљиви независно од нас:

  • Свака потписана верзија DPP-а чува се у јавно доступном репозиторијуму. Подаци, заједно са објављеним јавним кључевима, довољни су за накнадну верификацију.
  • Чим се пасоши производа региструју у ЕУ регистру, друга локација за складиштење само за читање дуплира сваку верзију ДПП-а и дневник догађаја још десет година. Нико - чак ни ми - не може ретроактивно да измени ове огледалне копије.
  • Након престанка важења, кратки URL-ови за пасоше производа остају доступни преко преусмеравања на платформи Transpareo.
  • Transpareo Time Machine наставља да ради непромењено, чак и на архивираним подацима. Пакет нас не позива назад током извршавања; потребни су му само бајтови и кључеви.

Ако би платформа Transpareo нестала сутра, верзије DPP-а и рендерер отвореног кода би остали.

За оне који су знатижељни о технологији

Ево шта се дешава у позадини. Ако вам детаљи нису потребни, можете прескочити овај одељак - апликација ће и даље радити.

  • GS1 Digital Link (ISO/IEC 18975): URL производног пасоша садржи идентификатор производа у стандардизованом формату - неутралан у односу на резолутор и заменљив између провајдера.
  • Шема канонизације JSON-а (RFC 8785): Детерминистичка сериализација. Ово осигурава да хеш остане репродуцибилан без обзира на редослед поља или празних знакова - свако може сам да га провери.
  • W3C докази интегритета података (eddsa-jcs-2022): Ed25519 потпис над канонизованим обликом (JCS).
  • /.well-known/dpp-keys/ (RFC 8615): Јавни кључеви издаваоца налазе се на стандардизованој путањи - није потребно контактирати Transpareo; сваки верификатор може сам да их пронађе.

Све је документовано у README на GitHub-у⁠ - укључујући архитектуру фронтенда (наш сопствени реактивни језгро, без спољних фрејмворкова) и упутства за изградњу за самостално хостирање.

Погледајте код на GitHub-у

Можете пронаћи цео изворни код, све верзије и дискусију о проблему у јавном репозиторијуму.