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

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

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

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

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

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

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

1

Скенирај

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

2

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

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

3

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

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

4

Подели

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

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

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

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

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

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

На врху сваког пасоша производа појављује се ознака: “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-у

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