數位產品護照 DPP
Digital Product Passport 測試平台與區塊鏈驗證
什麼是 DPP?
數位產品護照 (Digital Product Passport, DPP) 是歐盟《生態設計法規》(ESPR) 核心政策,旨在建立產品從原料、製造到回收的全生命週期透明度。其架構包含產品唯一識別碼、材料組成、環境足跡 (碳/水足跡)、維修資訊及回收指示,以數位格式 (如 QR Code) 記錄並供供應鏈、消費者及回收商查詢。
DPP 核心架構
-
🔗1. 物理識別層 (Physical Identity) 通過 QR Code、RFID 或 NFC 晶片與實體產品綁定。
-
⛓️2. 數據存儲層 (Data Storage) 使用區塊鏈、雲端資料庫或分散式帳本技術 (DLT),確保數據不可篡改。
-
📊3. 信息披露層 (Information Layer) 包含基礎身分(UID/GTIN)、材質與環境(碳足跡)、循環與維修等16大類數據。
⚙️ 建立 DPP 數據 (以電池為例)
輸入產品資訊,我們將為您生成數位產品護照與專屬 QR Code。
📱 DPP 識別結果
區塊鏈數據預覽 (JSON)
等待數據輸入...
⛓️ 區塊鏈瀏覽器 共 1 個區塊
每個區塊的資料都經過 SHA-256 雜湊處理,並與前一區塊的 Hash 鏈接,形成不可篡改的鏈式結構。
🔓 篡改偵測測試
模擬攻擊者竄改區塊資料,觀察區塊鏈如何自動偵測並標示異常。
區塊鏈與 DPP 運作原理
深入了解分散式帳本如何確保資料透明與不可篡改
🔗 區塊鏈核心原理與 DPP 上鏈流程
區塊鏈 (Blockchain) 是一種**去中心化的分散式帳本技術 (DLT)**。在數位產品護照 (DPP) 的應用中,它解決了傳統供應鏈資料容易被篡改、不透明的問題。
- 1. 資料收集與雜湊 (Hashing): 產品在各個生命週期階段 (製造、運輸、回收) 產生的資料,會先被轉換為一組獨一無二的「數位指紋」(Hash 值)。👇 查看詳細原理
- 2. 分散式儲存 (IPFS/Cloud): 由於區塊鏈儲存空間昂貴,完整的 DPP 數據 (如 JSON 檔案、檢驗報告) 通常會存放在 IPFS (星際文件系統) 或安全的雲端資料庫。
- 3. 智能合約上鏈: 產品的 UUID 結合上述的資料 Hash 值與儲存位址 (CID),會透過「智能合約」寫入區塊鏈中。一旦上鏈,這筆紀錄將被廣播到全球所有節點,無法再被修改。
🔐 雜湊 (Hash) 原理深入解析
雜湊函數 (Hash Function) 是一種單向數學運算,能夠將任何長度的資料轉換為一組固定長度的字串(稱為「雜湊值」或「數位指紋」)。在區塊鏈與 DPP 中最常使用的是 SHA-256 演算法。
SHA-256 的四大核心特性
相同的輸入永遠產生相同的輸出。無論在世界任何角落、任何電腦上運算,只要輸入資料一樣,Hash 值就會完全相同。
無法從 Hash 值反推出原始資料。就像把一顆雞蛋打散後,無法再還原成完整的雞蛋一樣。這保護了原始資料的隱私。
即使原始資料只改動了一個字元,產生的 Hash 值也會完全不同。這讓任何微小的篡改都無所遁形。
不論輸入資料是 1 個字元還是一整本書,SHA-256 的輸出永遠是 64 個十六進位字元 (256 bits)。
🧪 互動式 Hash 測試
在下方輸入任意文字,即時觀察 SHA-256 雜湊值的變化。試著只改動一個字元,觀察「雪崩效應」!
⚡ 雪崩效應對比
下方會自動將您的輸入「最後一個字元」替換為 *,觀察即使只改了一個字,Hash 值也完全不同。
-
-
-
-
📦 在 DPP 中的實際應用場景
a3f7c2...8e1b4d...5c9f0a...每個階段的資料都會獨立產生 Hash 值,並寫入區塊鏈。消費者掃描 QR Code 時,系統會重新計算下載到的資料的 Hash,與鏈上的 Hash 進行比對。只要有任何一個 Hash 不吻合,就代表該階段的資料被篡改過。
架構流程圖
貼有 QR Code
Ethereum / Polygon
IPFS / 雲端資料庫
❓ 既然是分散式帳本,如何掃描 QR Code 取得各帳本資料?
分散式帳本雖然由全球成千上萬的「節點 (Nodes)」共同維護,但**每個節點都保存著相同的資料狀態**。
1. 單一入口 (Gateway) 的角色:
當您掃描 QR Code 時,QR Code 中的網址 (例如 dpp-verify.eu/item/UUID) 實際上是指向一個由政府或企業維護的**「前端閘道器 (Gateway)」**或 RPC 節點。
2. 向區塊鏈網路廣播查詢:
這個 Gateway 就像一個翻譯員,它會將您的 UUID 轉換為區塊鏈上的查詢指令,並向任一區塊鏈節點讀取智能合約狀態。因為所有節點的資料都是同步且一致的,所以問哪個節點都會得到相同的答案。
3. 雜湊驗證確保真實性:
為了防止 Gateway 造假,前端應用程式會將從 IPFS 下載下來的產品資料 (如您剛剛生成的 JSON) 重新進行一次 Hash 運算,並與從區塊鏈上讀取出來的 Hash 值進行比對。如果兩者完全相符,就證明這份資料是**原始且未被篡改**的。
資料上鏈 流程圖
從商品資料輸入到 SHA-256 雜湊、寫入區塊鏈的完整流程解析
📋 流程總覽
當使用者在 DPP 測試平台填寫商品資料並提交後,系統會依序執行以下步驟,將資料安全地寫入區塊鏈。
每一步都有其不可或缺的安全意義,確保資料的完整性、可驗證性與不可篡改性。
使用者填寫商品資料
輸入層使用者在表單中輸入產品的各項資訊(UUID、供應商、材料組成、碳足跡等)。
{
"identity": {
"uuid": "BAT-123456-ABCDE",
"supplier": "ABC Battery Co."
},
"materials": {
"cobalt_nickel_ratio": "15% / 20%",
"recycled_percentage": "30%"
},
"environmental": {
"carbon_footprint": "120 kgCO2e/kWh"
}
}
SHA-256 雜湊 → 產生 Data Hash
雜湊層將整份 JSON 字串通過 SHA-256 演算法計算,產生一組 64 位十六進位字元的「數位指紋」(Data Hash)。
{"identity":{"uuid":"BAT-123456-ABCDE", ...}}
a3f7c2e91b4d...
建立新區塊 (Block)
區塊層系統將 Data Hash 與其他區塊資訊打包成一個新的區塊。區塊的結構如下:
1
2026-05-10T14:50:00Z
{identity: {...}, ...}
a3f7c2e9...
00e3b400...
0 (初始值)
previousHash 是讓區塊「鏈接」在一起的關鍵。每個區塊都記錄著前一個區塊的 Hash,形成一條不可斷裂的鏈。
挖礦 (Mining) — 計算 Block Hash
共識層將區塊內所有資訊串接後,反覆進行 SHA-256 計算(不斷調整 nonce),直到找到一個符合難度條件的 Hash 值。
Block Hash = SHA-256( index + previousHash + timestamp + dataHash + nonce )
SHA-256(...) → 7f3a2b... ✗ 不符合SHA-256(...) → b91c4e... ✗ 不符合SHA-256(...) → e05f7a... ✗ 不符合SHA-256(...) → 00d9bb1c... ✓ 前2位為0!區塊加入鏈中 — 資料永久記錄
存儲層挖礦成功後,新區塊被加入區塊鏈尾端。此時區塊鏈瀏覽器會即時更新,顯示完整的鏈式結構。
🔍 「上鏈」到底是上到哪裡?
前面的流程都發生在你的電腦或伺服器上。但「上鏈」這一步,資料會被寫入一個由全球節點共同維護的分散式帳本。以下詳細說明。
⛓️ 上到什麼「鏈」?— 三種主要類型
公有鏈 (Public Chain)
聯盟鏈 (Consortium Chain)
政府鏈 (Government Chain)
🤔 為什麼會有這些「鏈」?
Ethereum 由全球開發者在 2015 年共同創建。任何人都可以下載軟體,運行一台「節點」加入網路。目前全球有超過 8,000 個節點共同維護同一份帳本。
EBSI 由歐盟委員會在 2018 年主導建立,歐盟 27 個成員國各運行節點。專門服務歐盟的數位身分、學歷認證、DPP 產品護照等政策需求。
📝 上鏈需要「申請」嗎?
- 下載錢包 (如 MetaMask)
- 購買少量加密貨幣 (付 Gas Fee)
- 透過智能合約寫入資料
- 向管理方提交企業資格申請
- 通過 KYC (身分驗證) 審查
- 取得 API Key 或數位憑證
- 透過授權接口寫入資料
⚠️ 上鏈有什麼風險?
公有鏈的手續費隨網路擁堵劇烈波動。Ethereum 曾高達每筆 $50+。
寫入資料的程式碼若有 Bug,可能被攻擊者利用。
如果選用的鏈項目停止運營,資料可能無法存取。
上鏈後無法刪除。若有個資需遵守 GDPR「被遺忘權」,需特別設計架構。
理論上,控制超過半數算力可篡改鏈。但主流公有鏈幾乎不可能。
⚠️ 本 Demo 與真實區塊鏈的差異
本平台為了方便展示,將完整商品 JSON + Hash 同時存入區塊。但在真實的區塊鏈應用中,做法截然不同:
| 📦 本 Demo 做法 | 🌐 真實區塊鏈做法 | |
|---|---|---|
| 鏈上存什麼 | 完整 JSON + Hash |
只存 Hash + CID(內容定址識別碼) |
| 完整資料放哪 | 也在鏈上 (Block.data) | 鏈下 (Off-Chain) IPFS / 雲端資料庫 |
| 原因 | Demo 方便展示驗證流程 | 鏈上儲存非常昂貴 Ethereum: 每 32 bytes ≈ 20,000 gas |
🌐 真實世界的資料流
❓ 商品資料是明碼,不需要加密嗎?
這是一個很好的問題。答案是:DPP 的資料故意用明碼,因為歐盟法規的核心目的就是資訊透明化。
Hash (雜湊)
「資料有沒有被改過?」
加密 (Encryption)
「資料有沒有被偷看?」
📦 DPP 為什麼用明碼?
歐盟《生態設計法規》(ESPR) 要求 DPP 資料必須對以下對象公開透明:
🔒 什麼時候需要加密?
如果區塊鏈上的資料不想公開(例如醫療紀錄、商業機密),流程會變成:
原始資料
AES 加密
🔒 變成密文
密文存 IPFS
SHA-256(密文)
Hash 上鏈
| 📦 DPP (產品護照) | 🏥 醫療 / 機密場景 | |
|---|---|---|
| 資料要公開嗎? | ✅ 是,法規要求透明 | ❌ 否,需要隱私保護 |
| 需要 Hash? | ✅ 需要,防篡改 | ✅ 需要,防篡改 |
| 需要加密? | ❌ 不需要 | ✅ 需要 (AES等) |
| IPFS 存的是 | 明文 JSON | 加密後的密文 |
🛡️ 為什麼這個流程是安全的?
商品資料的 SHA-256 Hash 確保資料完整性。任何竄改都會被即時偵測。
每個區塊記錄前一個區塊的 Hash,形成不可斷裂的鏈。無法插入或刪除區塊。
工作量證明要求消耗算力才能新增區塊,防止惡意大量寫入。
區塊鏈資料同步到所有節點,任何單一節點被攻擊都不影響整體。