Mesin waktu untuk DPP

Bayangkan Anda memegang sebuah produk dan memindai kode QR yang tertera di atasnya. Alih-alih file PDF, sebuah aplikasi kecil pun terbuka. Anda dapat melihat informasi terkini tentang produk tersebut: bahan pembuatannya, asal usulnya, serta hal-hal yang perlu diperhatikan. Dengan gerakan menggeser, Anda dapat menelusuri kembali ke masa lalu - setiap versi yang pernah dirilis dapat dilihat.

Inilah yang dapat Anda coba sekarang: Demo⁠ ini menampilkan paspor produk lengkap dengan data contoh.

Inilah Transpareo Time Machine, aplikasi konsumen sumber terbuka kami untuk setiap Paspor Produk Digital. Kode sumbernya tersedia di bawah lisensi GPL v3 di GitHub⁠.

Kami mengembangkannya karena Peraturan UE tentang Paspor Produk Digital dirancang untuk konsumen - bagi orang yang memegang produk tersebut. Sebagian besar penyedia mengubahnya menjadi formulir kepatuhan yang tidak pernah dibuka dua kali oleh siapa pun. Kami mengubahnya menjadi aplikasi yang benar-benar dibuka oleh konsumen.

Fungsi aplikasi ini

Empat titik interaksi dari sudut pandang orang yang memegang produk tersebut. Tanpa perlu login, tanpa perlu menginstal aplikasi.

1

Memindai

Pindai kode QR menggunakan kamera ponsel pintar. Aplikasi akan terbuka di peramban.

2

Lihat berita terbaru

Produk ini hadir di masa kini - komponen, bahan, asal usul, perawatan, dan daur ulang.

3

Membaca sejarah

Dengan satu gerakan mengusap, Anda dapat menelusuri kembali ke masa lalu. Setiap versi sebelumnya disertai tanggal dan alasan perubahannya.

4

Bagikan

Setiap versi memiliki tautan tersendiri. Seseorang membagikan versi tertentu kepada teman-teman atau pihak berwenang.

Mengapa sih

Peraturan Uni Eropa tentang Paspor Produk Digital merupakan perubahan terbesar menuju transparansi produk dalam beberapa dekade terakhir. Jika teks dasarnya dibaca dengan saksama, peraturan ini secara eksplisit ditujukan bagi konsumen. Pihak berwenang, perusahaan daur ulang, dan bengkel juga turut terlibat; namun, penerima utamanya adalah orang yang memegang produk tersebut.

Dari segi angka, hal ini sangat jelas. Seorang warga Eropa rata-rata akan dapat memindai puluhan hingga ratusan paspor produk per tahun pada akhir dekade ini. Jika dihitung berdasarkan 200 juta rumah tangga, hal ini berarti miliaran interaksi konsumen setiap tahun. Dibandingkan dengan itu, skala interaksi yang melibatkan pihak berwenang dan perusahaan daur ulang secara numerik sangatlah kecil.

Jika peraturan ini ingin sampai ke konsumen, maka sisi konsumennya harus dirancang dengan baik - cepat, menarik, dan koheren. Jika tidak, peraturan ini akan meleset dari tujuannya. Kami telah memutuskan untuk membangun sisi konsumen ini dengan kode sumber terbuka, agar tidak bergantung pada satu penyedia saja.

Diverifikasi di peramban, bukan di server kami

Di bagian atas setiap lembar data produk terdapat sebuah label: “Terverifikasi oleh Transpareo”. Label ini menunjukkan hasil pemeriksaan yang tidak dilakukan di server kami, melainkan di peramban pengunjung - berdasarkan byte yang dimuat dan kunci publik dari produsen.

Setiap versi DPP ditandatangani oleh dua pihak yang saling independen: produsen dan Transpareo. Kedua tanda tangan tersebut harus dapat diverifikasi agar lencana berubah menjadi hijau. Dengan Bring Your Own Key (BYOK), produsen mengoperasikan titik akhir tanda tangan miliknya sendiri - Transpareo tidak pernah menyimpan kunci pribadi dan hanya menambahkan tanda tangan balasan yang independen. Dengan demikian, terciptalah tanda tangan penerbit yang tidak dapat dibuat oleh Transpareo sendiri. Server yang disusupi tidak dapat memalsukan tanda centang tersebut, karena verifikasi dilakukan langsung oleh pengunjung.

Bagi yang ingin mengetahui detailnya, klik lencana tersebut. Di baliknya, Anda akan melihat rantai tanda tangan, nilai hash, dan riwayat versi yang dirangkai. Bagi yang hanya ingin informasi, cukup abaikan saja dan lanjutkan membaca di lembar spesifikasi produk.

Pemeriksaan yang sama juga tersedia sebagai halaman terpisah: Di halaman Verifikasi DPP, masukkan URL manifest dari lembar spesifikasi produk mana pun dan lihat hasil pemeriksaan lengkapnya - tanpa perlu membuka lembar spesifikasi tersebut.

Kami merilis kode tersebut

Transpareo Time Machine dirilis di bawah lisensi GPL v3 di GitHub⁠. Mengkloning, membuat fork, atau menghosting sendiri - semuanya diperbolehkan. Modifikasi yang dipublikasikan harus juga dilisensikan di bawah GPL v3, agar setiap pengembangan lebih lanjut dapat bermanfaat bagi masyarakat umum.

Tiga cara untuk mengintegrasikan bundel ini:

  • Melalui tag script: tambahkan <script> dan <transpareo-time-machine src="…"> ke halaman, selesai - tanpa perlu proses build.
  • Melalui npm: npm install transpareo-time-machine di aplikasi Anda sendiri.
  • Menghosting sendiri: Membangun bundel, menggunakan infrastruktur sendiri, tanpa ketergantungan pihak ketiga saat runtime.

Bagi yang hanya membutuhkan verifikasi tanda tangan tanpa tampilan produk lengkap, impor elemen terkait <dpp-verifier> - ideal untuk alat auditor. Dapat dilihat secara langsung pada verifikasi DPP.

Siapa saja yang menggunakan aplikasi ini dengan bijak

Aplikasi ini awalnya dirancang untuk konsumen. Namun, aplikasi ini juga dapat digunakan oleh siapa saja yang ingin melihat atau memverifikasi data produk secara mandiri.

  • Konsumen akhir dapat memindai, melihat, menelusuri, dan membagikan. Tanpa perlu login, tanpa pelacak.
  • Pihak pengawas pasar dan otoritas dapat melihat paspor produk dalam perangkat lunak yang kode sumbernya dapat diaudit secara publik.
  • Bengkel dan perusahaan daur ulang dapat melihat komposisi bahan serta petunjuk pembongkaran langsung pada produk.
  • Merek dan operator fork dapat menyesuaikan paket tersebut dengan merek mereka sendiri - token CSS, komponen khusus, dan hosting mandiri.

Apa yang akan terjadi jika Transpareo tidak ada lagi?

Uni Eropa mewajibkan agar paspor produk yang terdaftar tetap tersedia setidaknya selama sepuluh tahun - bahkan setelah produsen mengalami kebangkrutan atau likuidasi. Penyedia layanan SaaS jarang bertahan selama itu. Oleh karena itu, kami merancang platform ini sejak awal agar paspor produk tetap dapat digunakan secara independen dari kami:

  • Setiap versi DPP yang telah ditandatangani disimpan dalam penyimpanan yang dapat dibaca publik. Byte data beserta kunci publik yang dipublikasikan sudah cukup untuk verifikasi di kemudian hari.
  • Segera setelah paspor produk terdaftar di Register Uni Eropa, penyimpanan kedua yang dilindungi dari penulisan akan menyalin setiap versi DPP dan log peristiwa selama sepuluh tahun tambahan. Tidak ada seorang pun - termasuk kami - yang dapat mengubah salinan cermin ini di kemudian hari.
  • Setelah pemutusan layanan, URL singkat paspor produk tetap dapat diakses melalui pengalihan di platform Transpareo.
  • Transpareo Time Machine tetap berjalan tanpa perubahan, bahkan terhadap data yang telah diarsipkan. Bundel tersebut tidak memanggil kami kembali saat runtime; yang dibutuhkan hanyalah byte dan kunci.

Jika platform Transpareo menghilang besok, versi DPP dan renderer sumber terbuka akan tetap ada.

Bagi para pecinta teknologi

Inilah yang terjadi di balik layar. Bagi yang tidak perlu mengetahui detailnya, bagian ini dapat dilewati - aplikasi tetap akan berfungsi.

  • GS1 Digital Link (ISO/IEC 18975): URL Product Pass menyertakan identifikasi produk dalam bentuk yang terstandarisasi - netral terhadap resolver, dan dapat dipertukarkan antar penyedia.
  • JSON Canonicalization Scheme (RFC 8785): Serialisasi deterministik. Dengan demikian, hash tetap dapat direproduksi terlepas dari urutan bidang atau spasi kosong - siapa pun dapat menghitungnya sendiri.
  • W3C Data Integrity Proofs (eddsa-jcs-2022): Tanda tangan Ed25519 atas bentuk kanonik (JCS).
  • /.well-known/dpp-keys/ (RFC 8615): Kunci publik penerbit berada di bawah jalur yang terstandarisasi - tidak perlu menghubungi Transpareo, setiap verifikator dapat menemukannya sendiri.

Semuanya didokumentasikan dalam README di GitHub⁠ - termasuk arsitektur frontend (inti reaktif buatan sendiri, tanpa kerangka kerja eksternal) dan panduan pembuatan untuk hosting mandiri.

Lihat kode di GitHub

Sumber kode lengkap, semua rilis, dan diskusi mengenai masalah tersebut dapat Anda temukan di repositori publik.