DPP用のタイムマシン

ある製品を手に取り、そのQRコードをスキャンすると想像してみてください。PDFが開く代わりに、小さなアプリが起動します。その製品の「今」の様子――素材、産地、注意点などが表示されます。 スワイプするだけで時間を遡り、これまでに公開されたすべてのバージョンを確認できます。

まさにこれを今すぐお試しいただけます。デモ⁠では、サンプルデータを用いた完全な製品パスをご覧いただけます。

これが 「Transpareo Time Machine」です。あらゆるデジタル製品パスに対応した、オープンソースの消費者向けアプリです。ソースコードはGPL v3の下でGitHub⁠に公開されています。

私たちがこれを開発したのは、EUのデジタル製品パスに関する規制が、消費者――つまり製品を手にしている人――のために策定されたものだからです。多くのプロバイダーはこれを、誰も二度とスキャンすることのないコンプライアンス用の書類にしてしまっています。私たちは、消費者が実際に開いてくれるアプリに仕上げました。

このアプリの機能

製品を手にしている人の視点から見た4つの接点。ログインもアプリのインストールも不要。

1

スキャン

スマートフォンのカメラでQRコードをスキャンしてください。ブラウザでアプリが開きます。

2

最新情報を見る

製品は「今」に現れる――構成部品、素材、原産地、お手入れ、リサイクル。

3

歴史をめくる

スワイプ操作で時間を遡ってページをめくることができます。変更日と変更理由が記載された過去のすべてのバージョンが表示されます。

4

シェア

各バージョンにはそれぞれ独自のリンクがあります。ある人が特定のバージョンを友人や当局と共有します。

そもそもなぜ

EUの「デジタル製品パスポート」に関する規則は、ここ数十年で製品透明性に向けた最大の転換点である。その基礎となる文書を注意深く読めば分かるように、この規則は明らかに消費者のために策定されたものである。 行政機関、リサイクル業者、修理工場もこれに対応することになるが、その主な対象は、製品を手にしている個人である。

数値的に見ても、この事実は明らかだ。この10年の終わり頃には、平均的な欧州の一般市民は、年間数十から数百もの製品パスをスキャンできるようになるだろう。 2億世帯で計算すると、年間で数十億件もの消費者とのやり取りが発生することになる。それに比べ、行政やリサイクル業者側の規模は、数値的にはごくわずかである。

この規則を消費者に浸透させるためには、消費者向けサイトが適切に構築されている必要があります――高速で、見やすく、一貫性があるものでなければなりません。そうでなければ、その目的は達成されません。私たちは、特定のプロバイダーに依存しないよう、この消費者向けサイトをオープンソースで構築することを決定しました。

当社のサーバーではなく、ブラウザ上で検証済み

各製品パスの上部には、「 Transpareoによる検証済み」というバッジが表示されます。これは、当社のサーバー上ではなく、訪問者のブラウザ上で、読み込まれたバイトデータとメーカーの公開鍵に基づいて行われる検証の結果を示しています。

各DPPバージョンには、メーカーとTranspareoという、互いに独立した2つの機関による署名が付与されます。バッジが緑色になるためには、両方の署名が検証可能でなければなりません。 「Bring Your Own Key(BYOK)」方式により、メーカーは独自の署名エンドポイントを運用しています。Transpareoは秘密鍵を一切保持せず、独立した対署名のみを追加します。これにより、Transpareo自体では生成できない発行者署名が作成されます。 サーバーが侵害されても、チェックマークを偽造することはできません。なぜなら、検証は訪問者自身によって行われるからです。

詳細を知りたい場合は、バッジをクリックしてください。そこには、署名チェーン、ハッシュ、および連鎖されたバージョン履歴が表示されます。 単に情報だけを知りたい場合は、これを無視して製品パス書の続きをお読みください。

この検証は独立したページでも利用可能です。「DPP検証」ページで、任意の製品パス書のマニフェストURLを入力すると、パス書自体を開くことなく、完全な検証結果を確認できます。

このコードを公開します

Transpareo Time Machineは、GitHub上のGPL v3⁠の下で公開されています。クローン、フォーク、自己ホスティング――すべて許可されています。 公開される改変版も、さらなる開発が一般に役立つよう、GPL v3の下で公開される必要があります。

バンドルを組み込む3つの方法:

-スクリプトタグを使用:ページに <script><transpareo-time-machine src="…"> を記述するだけで完了。ビルド作業は不要です。 -npm 経由:自身のアプリで npm install transpareo-time-machine を実行します。 -セルフホスティング:バンドルをビルドし、独自のインフラストラクチャを使用することで、実行時のサードパーティ依存関係をゼロにします。

製品画面全体ではなく、署名検証のみが必要な場合は、姉妹要素 <dpp-verifier> をインポートしてください。監査ツールに最適です。DPP検証で実際に動作を確認できます。

このアプリを効果的に活用している人

このアプリは、主に一般消費者向けに開発されました。しかし、製品データを独自に確認・検証したい方ならどなたでもご利用いただけます。

-一般消費者は、スキャン、閲覧、スクロール、共有が可能です。ログイン不要、トラッカーも一切ありません。 -市場監視機関や行政機関は、ソースコードが公に監査可能なソフトウェア上で製品パスポートを確認できます。 -修理店やリサイクル業者は、製品本体で直接、材料構成や分解手順を確認できます。 -ブランドやフォーク運営者は、CSSトークン、独自のコンポーネント、セルフホスティングなどを活用して、バンドルを自社ブランドに合わせてカスタマイズできます。

もしトランスパレオがなくなったらどうなるのか

EUは、登録された製品パスが、製造業者の破産や清算後も、少なくとも10年間は利用可能であり続けることを求めています。SaaSプロバイダーがこれほど長く存続することはめったにありません。 そのため、当社は当初から、当社とは独立してプロダクトパスが利用可能な状態を維持できるようプラットフォームを構築しています:

  • 署名済みの各DPPバージョンは、誰でも閲覧可能なストレージに保存されます。データと公開鍵さえあれば、後日検証を行うのに十分です。
  • 製品パスがEUレジストリに登録されると、書き込み保護された第2のストレージが、各DPPバージョンおよびイベントログをさらに10年間ミラーリングします。当社を含め、誰もこれらのミラーコピーを事後に変更することはできません。
  • 契約が解除された後も、短いプロダクトパスURLは、Transpareoプラットフォームへのリダイレクトを通じて引き続きアクセス可能です。
  • Transpareo Time Machineは、アーカイブされたデータに対しても変更なく動作します。このバンドルは実行時に当社を呼び戻すことはなく、必要なのはバイトデータと鍵だけです。

仮に明日Transpareoプラットフォームが消滅したとしても、DPPの各バージョンとオープンソースのレンダラーは残ります。

テクノロジーに興味のある方へ

ここでは、内部で何が起きているかを説明します。詳細を知る必要がない方は、このセクションをスキップしても構いません。アプリは問題なく動作します。

-GS1 Digital Link(ISO/IEC 18975):プロダクトパスURLは、標準化された形式で製品識別情報を保持しています。これはリゾルバーに依存せず、プロバイダー間で互換性があります。 -JSON Canonicalization Scheme(RFC 8785):決定論的なシリアライゼーションです。 これにより、フィールドの順序や空白に関係なくハッシュを再現可能にし、誰でも自分で再計算できるようになります。 -W3C Data Integrity Proofs(eddsa-jcs-2022):正規化された形式(JCS)に対するEd25519署名。 -/.well-known/dpp-keys/(RFC 8615): 発行者の公開鍵は標準化されたパス下に配置されており、Transpareoへの問い合わせは不要で、検証者は誰でも自分で見つけることができます。

すべては GitHub上のREADME⁠ に記載されています。これには、フロントエンドアーキテクチャ(独自のReactコア、外部フレームワークは一切使用せず)や、セルフホスティングのためのビルド手順も含まれています。

GitHubでコードを見る

完全なソースコード、すべてのリリース、およびイシューに関する議論は、公開リポジトリでご覧いただけます。