Transpareo Time Machine
Споживчий додаток з відкритим кодом для будь-якого DPP, а не лише для паспортів Transpareo: скануйте, переглядайте історію продукту, діліться інформацією про версію. Машина часу для DPP.
Машина часу для DPP
Уявіть, що ви тримаєте в руках товар і скануєте QR-код на ньому. Замість PDF-файлу відкривається невеликий додаток. Ви бачите товар у реальному часі: з чого він складається, звідки походить, на що слід звернути увагу. Одним рухом пальця ви перегортаєте сторінки в минуле - можна переглянути кожну версію, яка коли-небудь виходила.
Це Transpareo Time Machine - наш відкритий споживчий додаток для кожного цифрового паспорта товару. Код розміщений під ліцензією GPL v3 на GitHub.
Ми розробляємо її, оскільки Регламент ЄС щодо цифрового паспорта товару був написаний саме для споживачів - для тих, хто тримає товар у руках. Більшість постачальників перетворюють його на форму для дотримання вимог, яку ніхто не сканує двічі. Ми ж робимо з нього додаток, який споживач дійсно відкриває.
Переконайтеся самі
У демоверсії представлені повні паспорти продукції з прикладними даними: перегляньте історію версій та відкрийте сертифікат відповідності - безпосередньо у браузері, без реєстрації.
Що робить цей додаток
Чотири точки взаємодії з точки зору людини, яка тримає продукт у руках. Не потрібно входити в систему, не потрібно встановлювати додаток.
Сканування
Відскануйте QR-код за допомогою камери смартфона. Додаток відкриється у браузері.
Переглянути новини
Продукт у сучасному контексті - складові, матеріали, походження, догляд, переробка.
Переглянути історію
Один рух пальцем дозволяє переглянути попередні версії. Кожна попередня версія містить дату та причину зміни.
Поділитися
Кожна версія має власне посилання. Користувач може поділитися певною версією з друзями або державними органами.
А навіщо взагалі
Регламент ЄС щодо цифрового паспорта продукту є найбільшим кроком у напрямку прозорості продукції за останні десятиліття. Якщо уважно прочитати основні тексти, стає зрозуміло, що він написаний саме для споживачів. Державні органи, підприємства з переробки відходів та майстерні також долучаються до цього процесу, але головним адресатом є саме та людина, яка тримає продукт у руках.
З точки зору цифр ситуація є однозначною. До кінця цього десятиліття середньостатистичний європейський громадянин зможе сканувати від десятків до сотень паспортів продуктів щороку. Якщо розрахувати на 200 мільйонів домогосподарств, це становитиме мільярди взаємодій зі споживачами щороку. У порівнянні з цим світ державних органів та підприємств з переробки відходів є мізерно малим.
Якщо ми хочемо, щоб цей регламент дійшов до споживача, то споживчий веб-сайт має бути добре розроблений - швидким, привабливим та логічним. Інакше він не досягне своєї мети.
Ми вирішили створити цей споживчий веб-сайт на основі відкритого коду, щоб він не залежав від жодного окремого постачальника.
Історія - це норма, а маніфест - це наше
Інформація в паспорті продукту може змінюватися: ремонт, нова частка вторинної сировини, відкликання. Тому вимоги передбачають, що попередні версії мають залишатися доступними: стандарт щодо зберігання фіксує кожну версію, а стандарт щодо інтерфейсів передбачає, що кожну версію можна цілеспрямовано прочитати. Що залишається відкритим у цих вимогах, так це проміжна ланка: список, який пов’язує всі версії паспорта в єдину історію. Transpareo публікує його для кожного паспорта у вигляді маніфесту, підписаного, причому кожна версія за допомогою цифрового відбитка прив’язана до попередньої. Таким чином «машина часу» перегортає історію продукту, а читач перевіряє не лише справжність версії, а й те, що вона є найновішою у безперервній послідовності.
Однак додаток не прив’язаний до цього. Якщо замість маніфесту йому показати окремий паспорт, який кожен постачальник публікує згідно з відкритими стандартами, він відображає цю одну версію, перевіряє її підпис, якщо такий є, і просто оминає часову шкалу. Паспорт без підпису не вважається помилкою, а просто відображається без печатки перевірки. Таким чином, цей самий додаток також відображає паспорти, які ніколи не були зареєстровані в Transpareo.
Зміна постачальника без перерви
Регламент ЄС щодо цифрового паспорта продукту вимагає, щоб паспорти продуктів були сумісними та базувалися на відкритих стандартах - тобто могли передаватися між сервісами та системами, а не були прив’язані до одного постачальника. Отже, незалежність від постачальника послуг - це не додаткова вимога, а частина стандарту.
Transpareo Time Machine - це саме те рішення, яке втілює цю вимогу на практиці. Оскільки кожен паспорт продукту надається у відкритих стандартах - ідентифікація, незалежна від резолвера, канонічна серіалізація, публічно оприлюднені ключі - а рендерер є відкритим під ліцензією GPL v3, відображення паспорта ніколи не залежить від нашої платформи.
Відповідальність за паспорт продукту несе суб’єкт господарювання - виробник, імпортер або уповноважена особа. Якщо він вирішить покинути Transpareo та перейти до іншого постачальника, відображення залишається стабільним: той самий рендерер з відкритим кодом продовжує без змін відображати вже опубліковані версії разом з історією, а новий постачальник, який використовує ті самі відкриті стандарти, відображається саме тим самим додатком.
Дані переносяться разом із пасом, споживачі не помічають жодних перебоїв, і нікому не доводиться чекати на міграцію.
Сам перехід не є окремим проєктом. Transpareo Time Machine - це статичний пакет: створили один раз, скопіювали на будь-який веб-сервер - і все готово. Дизайн, який ви налаштували в Transpareo для своїх паспортів, переноситься у вигляді опублікованого стильового шаблону разом із кожним паспортом. Отже, вигляд паспорта, до якого звикли ваші клієнти, виглядає на вашому власному сервері точно так само, разом із кольорами, шрифтом та логотипом.
Перевірено в браузері, а не на нашому сервері
У верхній частині кожного паспорта товару відображається значок: «Перевірено Transpareo». Він показує результат перевірки, яка відбувається не на нашому сервері, а в браузері відвідувача - на основі завантажених байтів та відкритих ключів емітента.
Кожну версію DPP підписують дві незалежні одна від одної сторони: емітент та Transpareo. Обидва підписи мають бути перевірені, щоб значок став зеленим. Завдяки технології «Bring Your Own Key» (BYOK) емітент використовує власний кінцевий пункт підпису - Transpareo ніколи не зберігає приватний ключ і лише додає незалежний контрпідпис. Таким чином утворюється підпис емітента, який Transpareo самостійно створити не може.
Зламаний сервер не може підробити галочку, оскільки перевірка відбувається безпосередньо у відвідувача.
Хто хоче дізнатися деталі, той натискає на значок. За ним ви побачите ланцюжок підписів, хеші та ланцюжок історії версій. Хто хоче лише отримати інформацію, може просто проігнорувати це та продовжити читати опис продукту.
Ця сама перевірка також доступна на окремій сторінці: на сайті Верифікація DPP ви можете ввести URL-адресу маніфесту будь-якого опису продукту та переглянути повний результат перевірки - без необхідності відкривати сам опис.
Ми оприлюднюємо код
Transpareo Time Machine розповсюджується під ліцензією GPL v3 на GitHub. Опубліковані модифікації, у свою чергу, повинні розповсюджуватися під ліцензією GPL v3, щоб кожне подальше вдосконалення слугувало інтересам широкої громадськості.
Клонування, форкування, самостійне хостингування - все дозволено.
Як інтегрувати додаток - чи то одним рядком на сторінці, чи як пакет у власній програмі, чи повністю на власному хостингу - описано у файлі README на цій сторінці. Там ви також знайдете аналогічний компонент для перевірки лише підпису, який працює в режимі реального часу на сайті Верифікація DPP.
Хто раціонально використовує додаток
Цей додаток спочатку розроблено для споживачів. Однак ним можуть користуватися всі, хто хоче самостійно переглянути або перевірити дані про продукт.
- Кінцеві споживачі сканують, переглядають, гортають, діляться. Без входу в систему, без трекерів.
- Органи ринкового нагляду та державні органи переглядають паспорт продукту в програмному забезпеченні, вихідний код якого підлягає публічному аудиту.
- Майстерні та підприємства з переробки бачать склад матеріалів та інструкції з демонтажу безпосередньо на самому продукті.
- Бренди та оператори форків адаптують пакет під власний бренд - CSS-токенів, власні компоненти, самостійне хостинг.
Що станеться, якщо Transpareo перестане існувати
ЄС вимагає, щоб зареєстрований паспорт продукту залишався доступним щонайменше десять років - навіть після банкрутства або ліквідації емітента. Постачальник послуг SaaS рідко проіснує так довго. Тому ми з самого початку будуємо платформу таким чином, щоб паспорти продукту залишалися доступними незалежно від нас:
- Кожна підписана версія DPP зберігається у загальнодоступному сховищі. Байти та опубліковані відкриті ключі достатні для подальшої верифікації.
- Як тільки паспорти продукту зареєстровані в реєстрі ЄС, друге сховище, захищене від запису, додатково зберігає кожну версію DPP та журнал подій протягом десяти років. Ніхто - навіть ми - не може згодом змінити ці дзеркальні копії.
- Після припинення дії контракту короткі URL-адреси паспортів продукту залишаються доступними через переадресацію на платформі Transpareo.
- Transpareo Time Machine без змін працює навіть з архівними даними. Пакет не звертається до нас під час виконання; йому потрібні лише байти та ключі.
Навіть якби платформа Transpareo завтра зникла, версії DPP та рендерер з відкритим кодом залишилися б.
Для тих, хто цікавиться технологіями
Ось що відбувається «під капотом». Якщо вам не потрібно знати це детально, можете пропустити цей розділ - додаток працюватиме й без цього.
- GS1 Digital Link (ISO/IEC 18975): URL-адреса «паспорта товару» містить ідентифікатор товару у стандартизованому форматі - незалежний від резолвера та сумісний між різними постачальниками.
- Схема канонізації JSON (RFC 8785): детермінована серіалізація. Таким чином хеш залишається відтворюваним незалежно від порядку полів або пробілів - кожен може самостійно його перевірити.
- W3C Data Integrity Proofs (eddsa-jcs-2022): підпис Ed25519 над канонізованою формою (JCS).
- /.well-known/dpp-keys/ (RFC 8615): відкриті ключі емітентів розміщені за стандартизованим шляхом - не потрібно звертатися до Transpareo, кожен верифікатор знаходить їх самостійно.
Усе задокументовано в README на GitHub - включаючи архітектуру фронтенду (власне реактивне ядро, жодних зовнішніх фреймворків) та інструкцію зі збірки для самостійного хостингу.
Пов’язані теми
Transpareo Time Machine - це споживча складова більш масштабної ініціативи, спрямованої на забезпечення незалежної перевірки цифрових паспортів продукції.

Реєстр EU-DPP: що передбачає проект Комісії від 29 квітня
Реєстр ЄС - це список, а не копія ваших даних. Ви самі вносите інформацію, а реєстр запам’ятовує адресу та відбиток пальця.

Висловіть свою думку: що ми написали Європейській комісії щодо Регламенту про реєстр DPP
На столі лежав проект закону, і кожен міг внести до нього свої пропозиції. Ми це зробили - чотири рази, щодо чотирьох пунктів, які виробник зазвичай ставить під сумнів у першу чергу.
Переглянути код на GitHub
Повний вихідний код, усі версії та обговорення проблем можна знайти у відкритому репозиторії.






