Một cỗ máy thời gian dành cho các DPP

Hãy tưởng tượng bạn đang cầm một sản phẩm trên tay và quét mã QR trên đó. Thay vì một tệp PDF, một ứng dụng nhỏ sẽ mở ra. Bạn sẽ thấy thông tin về sản phẩm ngay tại thời điểm đó: thành phần của nó, nguồn gốc, và những điều cần lưu ý. Chỉ cần vuốt nhẹ là bạn có thể lướt ngược thời gian - xem được mọi phiên bản từng được phát hành.

Đó chính là Transpareo Time Machine, ứng dụng mã nguồn mở dành cho người tiêu dùng của chúng tôi, hỗ trợ mọi Hộ chiếu Sản phẩm Kỹ thuật số. Mã nguồn được phát hành theo giấy phép GPL v3 trên GitHub.

Chúng tôi phát triển ứng dụng này vì Quy định của Liên minh Châu Âu về Hộ chiếu Sản phẩm Kỹ thuật số được soạn thảo dành cho người tiêu dùng - dành cho chính người đang cầm sản phẩm trên tay. Hầu hết các nhà cung cấp chỉ biến nó thành một biểu mẫu tuân thủ mà chẳng ai thèm quét lại lần thứ hai. Còn chúng tôi biến nó thành một ứng dụng mà người tiêu dùng thực sự muốn mở ra sử dụng.

Hãy tự mình xem thử

Các mẫu phiếu thông tin sản phẩm này đã được điền đầy đủ thông tin và sử dụng dữ liệu giả định: Quý vị có thể xem qua lịch sử các phiên bản và mở nhãn kiểm định - ngay trong trình duyệt, mà không cần tài khoản.

Ứng dụng này làm gì

Bốn điểm tiếp xúc từ góc nhìn của người đang cầm sản phẩm trên tay. Không cần đăng nhập, không cần cài đặt ứng dụng.

1

Quét

Quét mã QR bằng camera điện thoại thông minh. Ứng dụng sẽ mở ra trong trình duyệt.

2

Xem tin tức mới nhất

Sản phẩm được giới thiệu ngay bây giờ - các thành phần, vật liệu, nguồn gốc, cách bảo quản và tái chế.

3

Lướt qua các trang lịch sử

Chỉ cần vuốt một cái là có thể lùi lại theo dòng thời gian. Mỗi phiên bản trước đó đều kèm theo ngày tháng và lý do thay đổi.

4

Chia sẻ

Mỗi phiên bản đều có liên kết riêng. Một người có thể chia sẻ một phiên bản cụ thể với bạn bè hoặc các cơ quan chức năng.

Tại sao lại như vậy?

Quy định của Liên minh Châu Âu về Hộ chiếu Sản phẩm Kỹ thuật số là bước chuyển biến lớn nhất hướng tới tính minh bạch của sản phẩm trong nhiều thập kỷ qua. Nếu đọc kỹ các văn bản cơ sở, có thể thấy quy định này được soạn thảo rõ ràng nhằm phục vụ người tiêu dùng. Các cơ quan chức năng, các đơn vị tái chế và các xưởng sửa chữa đều tham gia; tuy nhiên, đối tượng thụ hưởng chính vẫn là người đang trực tiếp sử dụng sản phẩm.

Về mặt số liệu, vấn đề này rất rõ ràng. Đến cuối thập kỷ này, một cá nhân bình thường tại châu Âu sẽ có thể quét từ hàng chục đến hàng trăm Hộ chiếu Sản phẩm mỗi năm. Tính trên 200 triệu hộ gia đình, con số này tương đương với hàng tỷ lượt tương tác của người tiêu dùng mỗi năm. So với đó, quy mô hoạt động của các cơ quan chức năng và các đơn vị tái chế về mặt số lượng là vô cùng nhỏ bé.

Nếu muốn quy định này thực sự đến được với người tiêu dùng, thì trang web dành cho người tiêu dùng phải được xây dựng một cách hoàn hảo - nhanh chóng, đẹp mắt và logic. Nếu không, nó sẽ không đạt được mục đích.

Chúng tôi đã quyết định xây dựng trang web dành cho người tiêu dùng này theo mô hình mã nguồn mở, để nó không phụ thuộc vào bất kỳ nhà cung cấp nào cụ thể.

Quá trình là quy định, còn bản tuyên ngôn là do chúng tôi soạn thảo

Thông tin sản phẩm có thể thay đổi: một lần sửa chữa, một tỷ lệ nguyên liệu tái chế mới, một đợt thu hồi sản phẩm. Do đó, các quy định yêu cầu các phiên bản trước đó phải luôn có thể truy cập được: Tiêu chuẩn về lưu trữ sẽ “đóng băng” từng phiên bản, còn tiêu chuẩn về giao diện quy định rằng mỗi phiên bản phải có thể được đọc một cách có mục đích. Điều mà các quy định chưa đề cập đến chính là phần kết nối giữa các phiên bản: một danh sách liên kết tất cả các phiên bản của một thẻ thông tin thành một chuỗi lịch sử. Transpareo công bố danh sách này dưới dạng bản tuyên ngôn cho mỗi thẻ thông tin, được ký điện tử, với mỗi phiên bản được liên kết với phiên bản trước đó thông qua dấu vân tay số. Nhờ đó, “cỗ máy thời gian” này lật giở qua lịch sử của một sản phẩm, và người đọc không chỉ xác minh tính xác thực của một phiên bản mà còn đảm bảo rằng đó là phiên bản mới nhất trong một chuỗi liên tục không có khoảng trống.

Tuy nhiên, ứng dụng không phụ thuộc vào điều này. Nếu thay vì bản tuyên ngôn, quý vị cung cấp cho ứng dụng một “hộ chiếu” riêng lẻ - loại mà mọi nhà cung cấp đều công bố theo các tiêu chuẩn mở - ứng dụng sẽ hiển thị phiên bản đó, kiểm tra chữ ký (nếu có) và đơn giản là bỏ qua dòng thời gian. Một thẻ không có chữ ký không được coi là lỗi, mà chỉ đơn giản được hiển thị mà không kèm theo dấu xác thực. Do đó , cùng một ứng dụng này cũng hiển thị các thẻ chưa từng được đăng ký trên Transpareo.

Chuyển đổi nhà cung cấp mà không bị gián đoạn

Quy định của Liên minh Châu Âu về Hộ chiếu Sản phẩm Kỹ thuật số yêu cầu các hộ chiếu sản phẩm phải có khả năng tương tác và được xây dựng dựa trên các tiêu chuẩn mở - có thể chuyển giao giữa các dịch vụ và hệ thống, thay vì bị ràng buộc với một nhà cung cấp duy nhất. Do đó, tính độc lập với nhà cung cấp dịch vụ không phải là một tính năng bổ sung, mà là một phần của yêu cầu bắt buộc.

Transpareo Time Machine chính là giải pháp cụ thể hóa yêu cầu này. Do mỗi Hộ chiếu Sản phẩm đều được cung cấp dựa trên các tiêu chuẩn mở - nhận dạng trung lập với bộ giải quyết, tuần tự hóa chuẩn mực, khóa công khai - và trình hiển thị được phát hành dưới dạng mã nguồn mở theo Giấy phép GPL v3, nên việc hiển thị Hộ chiếu Sản phẩm không bao giờ phụ thuộc vào nền tảng của chúng tôi.

Chủ thể chịu trách nhiệm về một Thẻ sản phẩm là một chủ thể kinh tế - nhà sản xuất, nhà nhập khẩu hoặc đại diện được ủy quyền. Nếu chủ thể này quyết định rời khỏi Transpareo và chuyển sang một nhà cung cấp khác, cách hiển thị vẫn được duy trì ổn định: các phiên bản đã được công bố cùng với lịch sử sẽ tiếp tục được trình hiển thị mã nguồn mở này hiển thị nguyên vẹn như cũ, và một nhà cung cấp mới, miễn là tuân thủ cùng các tiêu chuẩn mở đó, sẽ được hiển thị bởi chính ứng dụng này.

Dữ liệu sẽ được chuyển theo, người tiêu dùng không nhận thấy sự gián đoạn nào, và không ai phải chờ đợi quá trình di chuyển.

Việc di chuyển bản thân nó không phải là một dự án. Transpareo Time Machine là một gói phần mềm tĩnh: chỉ cần xây dựng một lần, sao chép lên bất kỳ máy chủ web nào là xong. Giao diện mà quý vị đã thiết lập trong Transpareo cho các “Pass” của mình sẽ được chuyển đi dưới dạng bảng kiểu (stylesheet) đã được xuất bản cùng với mỗi “Pass”. Do đó, giao diện “Pass” mà khách hàng của quý vị đã quen thuộc sẽ hiển thị y hệt trên máy chủ của quý vị, bao gồm cả màu sắc, phông chữ và logo.

Đã kiểm tra trên trình duyệt, không phải trên máy chủ của chúng tôi

Ở phần trên cùng của mỗi thẻ thông tin sản phẩm sẽ hiển thị một nhãn: “Đã được Transpareo xác minh”. Nhãn này thể hiện kết quả của quá trình kiểm tra, vốn không diễn ra trên máy chủ của chúng tôi mà được thực hiện ngay trong trình duyệt của người truy cập - dựa trên các byte dữ liệu đã tải về và các khóa công khai của đơn vị cấp phát.

Mỗi phiên bản DPP đều được ký bởi hai bên độc lập với nhau: bên phát hành và Transpareo. Cả hai chữ ký này đều phải có thể kiểm chứng được thì biểu tượng mới chuyển sang màu xanh lá cây. Với cơ chế “Bring Your Own Key” (BYOK), nhà phát hành vận hành một điểm cuối ký riêng - Transpareo không bao giờ lưu giữ khóa riêng và chỉ bổ sung chữ ký đối ứng độc lập. Nhờ đó, một chữ ký của nhà phát hành được tạo ra mà chính Transpareo cũng không thể tạo ra được.

Một máy chủ bị xâm nhập không thể làm giả dấu tích này, vì quá trình xác minh diễn ra ngay tại thiết bị của người truy cập.

Nếu quý vị muốn tìm hiểu chi tiết, vui lòng nhấp vào biểu tượng. Tại đó, quý vị sẽ thấy chuỗi chữ ký, các giá trị băm (hash) và lịch sử phiên bản được liên kết. Nếu quý vị chỉ cần thông tin, xin vui lòng bỏ qua phần này và tiếp tục đọc trong Thông tin sản phẩm.

Quy trình xác minh này cũng có sẵn dưới dạng trang web độc lập: Tại địa chỉ Xác minh DPP, quý vị chỉ cần nhập URL bản kê khai của bất kỳ Thông tin sản phẩm nào và sẽ xem được kết quả xác minh đầy đủ - mà không cần mở trực tiếp Thông tin sản phẩm đó.

Chúng tôi sẽ công bố mã nguồn

Transpareo Time Machine được phát hành theo giấy phép GPL v3 trên GitHub. Các bản sửa đổi được công bố cũng phải tuân theo giấy phép GPL v3 để mọi sự phát triển tiếp theo đều mang lại lợi ích cho cộng đồng.

Sao chép, tách nhánh, tự lưu trữ - tất cả đều được phép.

Cách tích hợp ứng dụng này - dù chỉ bằng một dòng mã trong trang web, dưới dạng gói trong ứng dụng của riêng quý vị hay tự lưu trữ hoàn toàn - đều được hướng dẫn chi tiết trong tệp README tại đó. Quý vị cũng sẽ tìm thấy thành phần liên quan dành riêng cho việc kiểm tra chữ ký, hiện đang hoạt động trực tuyến tại Xác minh DPP.

Ai sử dụng ứng dụng một cách hiệu quả

Ứng dụng này ban đầu được phát triển dành cho người tiêu dùng. Tuy nhiên, nó cũng phù hợp với tất cả những ai muốn xem hoặc xác minh thông tin sản phẩm một cách độc lập.

  • Người tiêu dùng cuối quét mã, xem, lướt qua và chia sẻ. Không cần đăng nhập, không có trình theo dõi.
  • Các cơ quan giám sát thị trường và cơ quan chức năng có thể xem “hộ chiếu sản phẩm” thông qua một phần mềm có mã nguồn mở, cho phép kiểm toán công khai.
  • Các xưởng sửa chữa và đơn vị tái chế có thể xem thành phần vật liệu và hướng dẫn tháo dỡ trực tiếp trên sản phẩm.
  • Các thương hiệu và nhà điều hành nền tảng có thể tùy chỉnh gói sản phẩm phù hợp với thương hiệu của mình - thông qua mã CSS, các thành phần riêng và tự lưu trữ.

Điều gì sẽ xảy ra nếu Transpareo không còn tồn tại nữa?

Liên minh Châu Âu (EU) yêu cầu rằng một “hộ chiếu sản phẩm” đã đăng ký phải được duy trì ít nhất mười năm - ngay cả sau khi đơn vị cấp phát bị phá sản hoặc giải thể. Một nhà cung cấp dịch vụ SaaS hiếm khi tồn tại được lâu đến vậy. Do đó, ngay từ đầu, chúng tôi đã xây dựng nền tảng này sao cho các hồ sơ sản phẩm vẫn có thể được sử dụng độc lập với chúng tôi:

  • Mỗi phiên bản DPP đã được ký điện tử đều được lưu trữ trong một kho lưu trữ công khai có thể truy cập. Dữ liệu (bytes) cùng với các khóa công khai đã được công bố là đủ để thực hiện việc xác minh sau này.
  • Ngay khi các hồ sơ sản phẩm được đăng ký tại Cơ quan Đăng ký của EU, một kho lưu trữ thứ hai, được bảo vệ chống ghi đè, sẽ sao lưu từng phiên bản DPP và nhật ký sự kiện trong thêm mười năm nữa. Không ai - kể cả chúng tôi - có thể thay đổi các bản sao lưu này sau này.
  • Sau khi chấm dứt hợp đồng, các URL ngắn của thẻ sản phẩm vẫn có thể truy cập được thông qua một liên kết chuyển hướng trên nền tảng Transpareo.
  • Transpareo Time Machine vẫn hoạt động bình thường ngay cả với các dữ liệu đã được lưu trữ. Gói phần mềm này không yêu cầu chúng tôi can thiệp trong quá trình chạy; nó chỉ cần các byte dữ liệu và các khóa.

Nếu nền tảng Transpareo biến mất vào ngày mai, các phiên bản DPP và trình hiển thị mã nguồn mở vẫn sẽ tồn tại.

Dành cho những ai tò mò về công nghệ

Dưới đây là những gì diễn ra bên trong hệ thống. Nếu bạn không cần biết chi tiết, có thể bỏ qua phần này - ứng dụng vẫn hoạt động bình thường.

  • GS1 Digital Link (ISO/IEC 18975): URL của “Product Pass” chứa mã nhận dạng sản phẩm dưới dạng chuẩn hóa - không phụ thuộc vào trình giải mã cụ thể và có thể trao đổi giữa các nhà cung cấp.
  • JSON Canonicalization Scheme (RFC 8785): Một phương thức tuần tự hóa xác định. Nhờ đó, giá trị băm vẫn có thể tái tạo được bất kể thứ tự các trường hay khoảng trắng - ai cũng có thể tự tính lại được.
  • W3C Data Integrity Proofs (eddsa-jcs-2022): Chữ ký Ed25519 trên định dạng chuẩn hóa (JCS).
  • /.well-known/dpp-keys/ (RFC 8615): Các khóa công khai của nhà phát hành được đặt tại một đường dẫn tiêu chuẩn - không cần liên hệ với Transpareo, bất kỳ bên xác minh nào cũng có thể tự tìm thấy chúng.

Mọi thứ đều được ghi chép trong tệp README trên GitHub - bao gồm cả kiến trúc frontend (hạt nhân phản ứng riêng, không sử dụng bất kỳ framework bên ngoài nào) và hướng dẫn xây dựng để tự lưu trữ.

Xem mã nguồn trên GitHub

Bạn có thể tìm thấy mã nguồn đầy đủ, tất cả các bản phát hành và cuộc thảo luận về các vấn đề trong kho lưu trữ công khai.