失去護照要如何證明身份?快導入區塊鏈

許恆修 | Heng-Shiou Sheu
11 min readNov 21, 2022

自烏俄戰爭發生以來,流離失所的民眾也越來越多,整個歐洲有超過 520 萬烏克蘭難民;超過 350 萬人在異鄉申請臨時居留[1]。然而,到了海關時,才發現護照丟包了,面對守門人的眼神下,必須證明自己是烏克蘭人,不是俄國間諜。在這個情況,要怎麼辦呢?出示照片?學歷證明?房契?人們缺少的是無時無刻帶著走的身份證書,也就是自主身份權(self-sovereign identity;SSI)

圖片來自 Blockchain 101 for Ophthalmologists

重點摘要

區塊鏈乃去中心化分散式資料庫,建構了自主身份權的技術基礎。

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)。

可驗證憑證模型:結合上述三者技術,之稱的 SSI 的基礎,圖片取自 Ocena

例如說:申請新的銀帳戶
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 架構、重要元素。

Indy, Aries, Ursa 與 VCM 角色對應

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 開發
Hyperledger Indy, Aries, Ursa 技術堆疊示意圖,取材自介紹 Agent

現有各種框架連結

由於 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。

結語

截至目前為止,希望你對於 SSI 有基礎的認識之外,也能夠理解區塊鏈在 SSI 當中的角色與職權,最後也希望想加入開發 SSI 應用程式開發人員,對於第一步該往哪走,有初步了解。

引用

  1. 烏戰爭造成了多少烏克蘭難民?他們去了哪裡?各國提供了哪些幫助?
  2. 區塊鏈身份驗證應用,興起「自主身份」世代降臨!
  3. SSI Essentials: What are Decentralized Identifiers (DIDs) & Verifiable Credentials (VCs)?
  4. SSI/VCモデルとHyperledger Indy/Ariesを使ったシステム構築実証[前編]

--

--

許恆修 | Heng-Shiou Sheu
許恆修 | Heng-Shiou Sheu

Written by 許恆修 | Heng-Shiou Sheu

AI研究員 @喬泰科技,軟體工程師@微光國際,業界講師 @FCU 創能學院,Co-Founder @圖靈文本。專注將科技應用於改善生活中,持續性分享軟體架構設計、前沿人工智慧研究、公司治理等觀念。整合科技、人文思維於一體。聯絡 📪 hengshiousheu@gmail.com

No responses yet