DPP를 위한 시간 여행 기계

손에 제품을 들고 그 위에 있는 QR 코드를 스캔한다고 상상해 보세요. PDF 파일이 열리는 대신 작은 앱이 실행됩니다. 여러분은 그 제품의 ‘지금’을 확인할 수 있습니다: 어떤 재료로 만들어졌는지, 어디서 왔는지, 주의해야 할 점은 무엇인지 등입니다. 화면을 스와이프하면 시간을 거슬러 올라가, 지금까지 출시된 모든 버전을 확인할 수 있습니다.

지금 바로 이 기능을 체험해 보세요. 데모⁠에서는 예시 데이터가 포함된 완전한 제품 패스를 보여줍니다.

이것이 바로 Transpareo Time Machine으로, 모든 디지털 제품 패스를 위한 당사의 오픈소스 소비자용 앱입니다. 소스 코드는 GPL v3 라이선스 하에 GitHub⁠에 공개되어 있습니다.

저희가 이 앱을 개발한 이유는, EU의 디지털 제품 패스 규정이 바로 소비자, 즉 제품을 직접 사용하는 사람을 위해 제정되었기 때문입니다. 대부분의 공급업체는 이를 아무도 두 번 다시 확인하지 않는 규정 준수 양식으로만 취급합니다. 반면 저희는 소비자가 실제로 열어볼 수 있는 앱으로 만들었습니다.

앱의 기능

제품을 손에 들고 있는 사용자의 관점에서 본 네 가지 접점. 로그인이나 앱 설치가 필요하지 않습니다.

1

스캔

스마트폰 카메라로 QR 코드를 스캔하세요. 앱이 브라우저에서 열립니다.

2

최신 소식 보기

이 제품은 ‘지금’을 반영합니다 - 구성 요소, 소재, 원산지, 관리, 재활용.

3

역사를 훑어보기

스와이프 동작 하나로 시간을 거슬러 올라갑니다. 수정 날짜와 사유가 표시된 모든 이전 버전을 확인할 수 있습니다.

4

공유하기

각 버전마다 고유한 링크가 있습니다. 사용자는 특정 버전을 친구나 관련 기관과 공유합니다.

애초에 왜

EU의 ‘디지털 제품 패스’ 규정은 수십 년 만에 제품 투명성 분야에서 일어난 가장 큰 변화입니다. 관련 문서를 주의 깊게 읽어보면, 이 규정은 명백히 소비자를 위해 마련된 것임을 알 수 있습니다. 당국, 재활용 업체, 수리점 등도 이에 동참하고 있지만, 이 규정의 주된 수혜자는 바로 제품을 손에 쥔 소비자 본인입니다.

수치상으로 볼 때 상황은 명백합니다. 평균적인 유럽 일반 소비자는 이번 10년이 끝날 무렵에는 매년 수십 개에서 수백 개의 제품 패스를 스캔할 수 있게 될 것입니다. 2억 가구를 기준으로 계산하면, 이는 연간 수십억 건의 소비자 상호작용에 해당합니다. 이에 비해 당국과 재활용 업계의 규모는 수치상 미미한 수준에 불과합니다.

이 규정이 소비자에게 제대로 전달되려면 소비자용 페이지가 빠르고, 보기 좋으며, 논리적으로 잘 구성되어 있어야 합니다. 그렇지 않으면 그 목적을 달성하지 못할 것입니다. 우리는 이 소비자용 페이지를 오픈소스로 구축하기로 결정했습니다. 그래야 특정 공급업체에 의존하지 않을 수 있기 때문입니다.

브라우저에서 테스트되었으며, 당사 서버에서는 테스트되지 않았습니다.

각 제품 정보 페이지 상단에는 ‘Transpareo에서 검증됨’이라는 배지가 표시됩니다. 이 배지는 당사 서버가 아닌 방문자의 브라우저에서, 로드된 바이트와 제조사의 공개 키를 바탕으로 수행된 검증 결과를 나타냅니다.

각 DPP 버전에는 제조사와 Transpareo라는 서로 독립적인 두 기관이 서명합니다. 배지가 녹색으로 표시되려면 두 서명 모두 검증 가능해야 합니다. ‘Bring Your Own Key(BYOK)’ 방식을 통해 제조사는 자체 서명 엔드포인트를 운영하며, Transpareo는 개인 키를 절대 보유하지 않고 독립적인 대조 서명만 추가합니다. 이를 통해 Transpareo조차 생성할 수 없는 발행자 서명이 생성됩니다. 해킹당한 서버라도 확인 표시를 위조할 수 없습니다. 검증은 방문자 측에서 직접 이루어지기 때문입니다.

자세한 내용을 알고 싶다면 배지를 클릭하세요. 배지 뒤에는 서명 체인, 해시 값, 연결된 버전 이력이 표시됩니다. 단순히 정보만 확인하고자 하는 경우, 이를 무시하고 제품 패스를 계속 읽어보시면 됩니다.

동일한 검증 기능을 독립된 페이지에서도 이용할 수 있습니다. DPP 검증 페이지에서 원하는 제품 패스의 매니페스트 URL을 입력하면, 패스를 직접 열지 않고도 전체 검증 결과를 확인할 수 있습니다.

이 코드를 공개합니다

Transpareo Time Machine은 GitHub의 GPL v3⁠ 하에 공개되어 있습니다. 클론, 포크, 자체 호스팅 등 모든 것이 허용됩니다. 공개된 수정본은 모든 후속 개발이 대중에게 기여할 수 있도록 GPL v3 라이선스 하에 배포되어야 합니다.

번들을 통합하는 세 가지 방법:

  • 스크립트 태그 사용: 페이지에 <script><transpareo-time-machine src="…">를 추가하면 끝입니다. 별도의 빌드 단계가 필요하지 않습니다.
  • npm을 통해: 자체 앱에서 npm install transpareo-time-machine을 실행합니다.
  • 자체 호스팅: 번들을 빌드하고, 자체 인프라를 활용하며, 런타임 시 제3자 의존성이 전혀 없습니다.

전체 제품 보기 없이 서명 검증만 필요한 경우, 자매 요소인 <dpp-verifier>를 임포트하면 됩니다. 감사 도구 사용에 이상적입니다. DPP 검증 페이지에서 실시간으로 확인하실 수 있습니다.

이 앱을 효과적으로 활용하는 사람

이 앱은 우선 소비자를 위해 개발되었습니다. 하지만 제품 데이터를 독립적으로 확인하거나 검증하고자 하는 모든 사용자에게 유용합니다.

  • 최종 소비자는 스캔하고, 확인하고, 살펴보고, 공유할 수 있습니다. 로그인이나 추적 기능이 없습니다.
  • 시장 감시 기관 및 당국은 소스 코드가 공개적으로 감사 가능한 소프트웨어를 통해 제품 패스를 확인할 수 있습니다.
  • 정비소 및 재활용 업체는 제품에서 직접 재료 구성과 분해 지침을 확인할 수 있습니다.
  • 브랜드 및 포크 운영자는 CSS 토큰, 자체 구성 요소, 자체 호스팅 등을 통해 번들을 자사 브랜드에 맞게 조정할 수 있습니다.

Transpareo가 사라지면 어떻게 될까요?

EU는 등록된 제품 패스가 제조사의 파산이나 청산 후에도 최소 10년 동안 이용 가능하도록 요구합니다. SaaS 제공업체가 그만큼 오랫동안 운영되는 경우는 드뭅니다. 따라서 저희는 처음부터 제품 패스가 당사와 무관하게 계속 사용될 수 있도록 플랫폼을 구축하고 있습니다:

  • 서명된 모든 DPP 버전은 공개적으로 열람 가능한 저장소에 보관됩니다. 바이트 데이터와 공개된 공개 키만으로도 추후 검증에 충분합니다.
  • 제품 패스가 EU 등록부에 등록되는 즉시, 두 번째 쓰기 금지 저장소가 각 DPP 버전과 이벤트 로그를 추가로 10년 동안 미러링합니다. 누구도 - 저희를 포함해서 - 이 미러 사본을 사후에 변경할 수 없습니다.
  • 계약 해지 후에도 짧은 제품 패스 URL은 리디렉션을 통해 Transpareo 플랫폼에서 계속 접근할 수 있습니다.
  • Transpareo Time Machine은 아카이브된 데이터에 대해서도 변함없이 작동합니다. 이 번들은 실행 시점에 저희에게 다시 호출되지 않으며, 바이트와 키만 있으면 됩니다.

만약 내일 Transpareo 플랫폼이 사라지더라도, DPP 버전과 오픈소스 렌더러는 그대로 남게 됩니다.

기술에 호기심이 많은 분들을 위해

다음은 내부에서 어떤 일이 일어나는지 설명한 내용입니다. 자세한 내용을 알 필요가 없는 분들은 이 부분을 건너뛰셔도 됩니다. 앱은 이 부분을 건너뛰더라도 정상적으로 작동합니다.

  • GS1 Digital Link (ISO/IEC 18975): 제품 패스 URL은 표준화된 형식으로 제품 식별 정보를 포함하며, 리졸버에 구애받지 않고 공급자 간에 상호 교환이 가능합니다.
  • JSON Canonicalization Scheme (RFC 8785): 결정론적 직렬화 방식입니다. 이를 통해 해시는 필드 순서나 공백과 무관하게 재현 가능하며, 누구나 직접 계산해 볼 수 있습니다.
  • W3C 데이터 무결성 증명 (eddsa-jcs-2022): 정규화된 형식(JCS)에 대한 Ed25519 서명.
  • /.well-known/dpp-keys/ (RFC 8615): 발행자의 공개 키는 표준화된 경로에 위치하므로, Transpareo에 문의할 필요 없이 모든 검증자가 직접 찾을 수 있습니다.

모든 내용은 GitHub의 README⁠에 문서화되어 있습니다. 여기에는 프론트엔드 아키텍처(자체 반응형 코어, 외부 프레임워크 미사용)와 자체 호스팅을 위한 빌드 안내도 포함되어 있습니다.

GitHub에서 코드 보기

전체 소스 코드, 모든 릴리스 및 이슈 토론 내용은 공개 저장소에서 확인하실 수 있습니다.