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. Обе подписи должны поддаваться проверке, чтобы значок стал зелёным. Используя подход «Принесите свой собственный ключ» (BYOK), эмитент управляет собственным конечным пунктом подписи - Transpareo никогда не хранит закрытый ключ и лишь добавляет независимую встречную подпись. Таким образом формируется подпись эмитента, которую сама компания Transpareo не может создать.
Взломанный сервер не может подделать галочку, поскольку проверка происходит непосредственно у посетителя.
Тот, кто хочет узнать подробности, нажимает на значок. За ним вы увидите цепочку подписей, хэши и цепочку версий. Если вам нужна только информация, просто проигнорируйте это и продолжайте читать описание продукта.
Такая же проверка доступна и на отдельной странице: на сайте Проверка DPP введите URL-адрес манифеста любого описания продукта и увидите полный результат проверки - без необходимости открывать само описание.
Мы публикуем код
Transpareo Time Machine распространяется по лицензии GPL v3 на GitHub. Опубликованные модификации, в свою очередь, должны распространяться по лицензии GPL v3, чтобы любое дальнейшее развитие приносило пользу обществу.
Клонирование, форки, самостоятельное размещение на хостинге - всё разрешено.
О том, как интегрировать приложение - будь то с помощью одной строки на странице, в виде пакета в собственном приложении или полностью на собственном хостинге, - подробно описано в файле README на этом ресурсе. Там же вы найдёте сопутствующий компонент для проверки подписи, который работает в режиме реального времени на сайте Проверка DPP.
Кто грамотно использует приложение
Приложение изначально разработано для потребителей. Однако оно подходит для всех, кто хочет самостоятельно просматривать или проверять данные о продукте.
- Конечные потребители сканируют, просматривают, листают, делятся. Без входа в систему, без трекеров.
- Органы рыночного надзора и государственные учреждения просматривают паспорт продукта в программном обеспечении, исходный код которого доступен для публичного аудита.
- Ремонтные мастерские и предприятия по переработке отходов видят состав материалов и инструкции по разборке непосредственно на самом продукте.
- Бренды и операторы платформ адаптируют этот пакет под свой бренд - с помощью CSS-токенов, собственных компонентов и самостоятельного хостинга.
Что произойдет, если компании «Транспарео» больше не будет?
ЕС требует, чтобы зарегистрированный паспорт продукта оставался доступным не менее десяти лет - даже после банкротства или ликвидации эмитента. Поставщики 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 - включая архитектуру фронтенда (собственное ядро React, без внешних фреймворков) и инструкции по сборке для самостоятельного хостинга.
Связанные темы
Transpareo Time Machine представляет собой потребительский компонент более широкой инициативы, направленной на обеспечение возможности независимой проверки цифровых паспортов продукции.

Реестр EU-DPP: что предусматривает проект Комиссии от 29 апреля
Реестр ЕС представляет собой справочник, а не копию ваших данных. Вы вводите информацию самостоятельно, а реестр сохраняет адрес и отпечаток пальца.

Выскажите своё мнение: что мы написали Еврокомиссии по поводу Регламента о реестре DPP
На столе лежал проект закона, и каждый мог внести в него свои поправки. Мы это сделали - четыре раза, по четырём пунктам, которые в первую очередь вызывают возражения у производителей.
Посмотреть код на GitHub
Полный исходный код, все релизы и обсуждение проблем можно найти в общедоступном репозитории.






