失去護照要如何證明身份?快導入區塊鏈
自烏俄戰爭發生以來,流離失所的民眾也越來越多,整個歐洲有超過 520 萬烏克蘭難民;超過 350 萬人在異鄉申請臨時居留[1]。然而,到了海關時,才發現護照丟包了,面對守門人的眼神下,必須證明自己是烏克蘭人,不是俄國間諜。在這個情況,要怎麼辦呢?出示照片?學歷證明?房契?人們缺少的是無時無刻帶著走的身份證書,也就是自主身份權(self-sovereign identity;SSI)
重點摘要
區塊鏈乃去中心化分散式資料庫,建構了自主身份權的技術基礎。
SSI 強調用戶為主導身份的中心,驗證人可以驗證持有人憑證,降低信任獲取成本。
Hyperledger Indy 為目前實現 SSI 的主要實現專案之一,當中 Aries 提供 Agent 讓開發人員能與 Indy-Network 進行高層及抽象功能開發。
區塊鏈是什麼?如何改變生活
區塊鏈,也可被稱為去中心化分散式資料庫 distributed ledger,藉由密碼學串接保護內容,解決當前網路世界中令人擔憂的安全、信任問題。
區塊鏈本身就是一種紀錄資料的技術,藉由密碼學在產生區塊時,將資料封裝起來。每一個區塊(Block)都會包含前一個區塊的雜湊值(Hash Value)、時間戳記、交易紀錄等,由於每產生新的區塊時,兩兩區塊有所相連,就像是鏈狀般串接。同時也是雜湊值的關係,使得區塊鏈擁有難以竄改的特性。
運作方式
區塊鏈本質上為去中心化分散式資料庫,理解成是一個人人都可參與的電子帳本,每本帳本都將紀錄所有交易紀錄。
假設公司內部有一組人正在打麻將,當志明贏了春嬌 3000 元時,這時候牌桌上的人都要在自己手上帳本中寫上「志明從春嬌贏得 3000 元」,由於打牌過程中任何輸贏都會被記錄在每一個人的帳本中,這是不允許竄改的,有人不同就代表紀錄過程中出錯。
如此一來,這也帶出區塊鏈中的四個特性。
區塊鏈四個特性
不可篡改性
區塊鏈上的每一筆資料只要被驗證完就永遠的被寫入到區塊中,透過加密函數來確保資料不會被輕易更改。
透明性
所有在區塊鏈上的帳本訊息都是公開的,且這些數據都是可以追溯的,任何人都可以通過一個區塊鏈瀏覽轉賬記錄。
去中心化
區塊鏈上的資料都分別存放在不同節點上,沒有第三方機構的存在。
共識機制
在區塊鏈上,為維護整體系統的運作順序與公平性,統一區塊鏈的版本,並獎勵提供資源維護的使用者,以及懲罰惡意使用者。
產業應用場景
鑑於區塊鏈的特性,商業應用專案在以下產業上,當然不限於此。
醫療產業
醫療方面,最主要是對病人醫療紀錄的存放,可以理解為一份電子病歷存放於區塊鏈中。由於目前病歷主要是掌握在醫院,病人自己並無法掌握,也就無法獲得病史狀況,類似於有銀行戶頭,但看不到過往交易紀錄。
數位藝術
數位藝術在區塊鏈行業的主要應用是指,利用區塊鏈技術來註冊任何形式的智慧財產權,還可以透過區塊鏈來保護線上圖片、照片或數位藝術作品,相當於數位資產的智慧財產權。
身份驗證
善用區塊鏈能公開、透明、共識、不可篡改的特性,政府可以用來發行專屬個人的身份區塊,只要有網路的地方,就可以查驗鏈上的資訊。目前網路驗證多是仰賴帳號密碼系統、中心化大廠認證系統,例如:Google、Facebook、Twitter,這些第三方不在時,個人在網路上的身份也消失。將身份轉移到區塊鏈上,使用者可以重新掌控對身份的自主權。
SSI 自主身份權
SSI,又名自主身份,是指建立於區塊鏈技術上,而創建的身份以及相關憑證,其中包含去中心化 ID (Decentralized Identifiers)與可驗證憑證(Verifiable Credentials)
自主身份權指用戶完全擁有數位身分資訊,並可以向網站、服務和應用程式驗證自己是誰的資訊。SSI 特別強調用戶對於身份憑證的自主性,持有者可以方便使用該憑證,驗證者檢查憑證真實性的成本極低,發行商與持有人的關係明確,憑證具備不可篡改性。
區塊鏈如何支持?
區塊鏈藉由網路中的節點分享資料,藉此達成不可篡改、透明性、去中心化。在鏈上的每個人皆可以接收哪些憑證是有效的,憑證時誰發行的,以及誰驗證憑證的事實來源。整體網路通過維護可驗證的 DID 。
去中心化 ID(Distributed identifier)
DID 是在 SSI 世界中識別每一個獨立個體用的 ID,類似於 UUID。可以想成是一個全球性的 key-value 資料庫,每個 key 會對應到一筆資料,而這些資料被稱為 DID document,其中包含了證明身分的相關資訊,像是公鑰、生物識別碼等不同屬性的資料,同時可以證明 DIDs 與其擁有者的關聯。
可驗證憑證(Verifiable Credential; VC)
可驗證憑證是一組具有固定格式的數位化憑證,擁有高度安全性、可認證性、可移值性。可應用於描述身分認證場合,這些場合通常許多敏感資料,例如:持有人名稱、發行人名稱、流水編號、發行日期、過期日等。
可驗證憑證模型(Verifiable Credential model; VCM)
為了將利益相關者之間的 VC 流聯繫起來,我們必須首先描述 SSI 生態系中 3 個主要利益相關者各自的位置:發行者(Issuer VC)、持有者(Store & Share VCs)和驗證者(Verify VCs)。
例如說:申請新的銀帳戶
1. 政府身為發行者,發行 一個國家級別 VC 進到持有者的數字錢包中。
2. 持有者拿到國家級 VC 後,可以向驗證者傳遞該憑證,用於銀行身份辨識用。
3. 在那之後,銀行經由區塊鏈,驗證發行人與持有人在 VC 中的數位簽章。
4. 驗證之後,持有人將獲權能夠使用銀行中的服務。
SSI 可落地場景
降低跨境信任成本
任何出國過的人,都曾痛苦過,需要準備大量簽證,用來證明身份的紙本文件。由於排隊時間長、海關檢查仔細等,驗證個人所需文件就會需要花上許多時間,在 SSI 數字錢包下協助下,拿出憑證即可證明,發行國家,出境時間,生物資訊等。
了解你的客戶(Know your Customer;KYC)
國際市調機構Gartner認為,以區塊鏈建立數碼身份自主權,是最有前景的區塊鏈應用之一。它不僅可讓複雜而零碎的數碼身份驗證系統變得更有條理,還可以大幅降低KYC流程的執行成本。[2]
現在進度在哪?Hyperledger Indy
W3C 已經制定了可驗證憑證模型和 DID 規範。實現之一是 Hyperledger Indy 和 Aries。在實際落地系統中具有代表性的 Indy-Network 是 Sovrin Network,由非營利組織 Sovrin Foundation 管理中。
當前技術對照圖
目前主要由 Hyperledger Project 專案主導,其中以 Hyperledger Indy、Hyperledger Aries、Hyperledger Ursa 專案為主要開發方向。下方內容中,將會說明基於這些專案的 SSI 架構、重要元素。
Hyperledger Indy
Hyperledger Indy 替網路添加一層身分認證層,一套機制能夠易於使用、支持在線信任並增強隱私。隨著區塊鏈的出現,這個目標最近變得可以實現。後續內容中,我們將帶出 Hyperledger Indy 如何使用去中心化身份(DID) 和可驗證憑證將身份添加為網路中的核心要素。
同時也具備以下特性:
- 需要其他網路節點許可,才能加入進行交易驗證
- 不存放任何私人訊息。僅保存發行者與驗證者的公開 DID
- 專務於 ID 訊息交換上。沒有資產交換,也沒有智能合約功能
Hyperledger Aries
抽象 Indy network 當中的節點成為 Agent,同時也是整個 SSI 應用程式的核心元素。多數開發 SSI 應用程式的開發人員都將會花大量時間在此。好比說開發前端網站時,有一個 中間人負責處理 Web server 與 Indy network 之間的溝通。
Hyperledger Ursa
提供 Indy 與 Aries 加密演算法之工具箱。由於加密演算法開發不是簡易的,在開發 SSI 應用程式上,開發人員可以不用過於深入了解底層加密過程。至少知道 zero-knowledge proof 是 Ursa 提供的即可。
總體來說,整體框架提供高層級開發功能,包含以下應用:
- 提供 Agent 之間進行安全通訊管道,以此交換 DID 內容
- 提供查詢 Indy node 上的 訊息
- 提供發行、驗證、保存憑證
- 提供開發人員,透過 Aries 專注於高層度 API 開發
現有各種框架連結
由於 Indy 底下專案過多,而且同時存在開發中、待退中的。下面列出目前已知可以使用的開發工具。
- Aries-cloudagent-python(ACA-py):ACA-Py 是一個用 Python 撰寫的 server,提供 controller 能夠執行與自主身份相關的操作,具體是通過由外部控制器到 cloud agent 的 REST API 執行的。
- Aries-framework-javascript:用於建立 SSI Agnets 與 DIDComm service 專注在提供 Aries RFC 的交互性與合法性。
- Aries-framework-go:基於可交互的分散式帳本技術(DLT)和實現受信任的通信和數據交換。 提供了一個靈活的工具箱,可以使用 DID、DID到DID通信,可驗證憑證交換,交易授權和資料通信協議
- Aries-framework-dotnet:對 Aries protocols 提供廣泛地實現方案,提供建立 SSI 應用程式於雲端、手機端及 IOT 層。
- Aries-mobile-agent-xamarin:提供手機端實現 SSI 應用程式,建立化平台手機 app 包含 IOS 與 android,基於 xamarin 框架。
- Aries-mobile-agent-react-native:提供社群在手機端實現 SSI 應用程式,自身使用了 Aries Framework Javascript 與 indy-sdk-react-native 。
教育資源
目前在 hyperledger Indy 上,主要由 Linux 基金會提供兩門課程,凡事要參與開發 SSI 應用程式的人強烈建議上。內容主要講解 SSI 背景故事,Hyperledger Indy 發展歷程,以及實作 Aries agent。
- Introduction to Hyperledger Sovereign Identity Blockchain Solutions: Indy, Aries & Ursa
- Becoming a Hyperledger Aries Developer
結語
截至目前為止,希望你對於 SSI 有基礎的認識之外,也能夠理解區塊鏈在 SSI 當中的角色與職權,最後也希望想加入開發 SSI 應用程式開發人員,對於第一步該往哪走,有初步了解。