研究 | 探討分佈式數字身份 DID 技術實現與應用

撰文:王普玉,就職於 HashKey Capital Research
審核:鄒傳偉,萬向區塊鏈首席經濟學家

近年來,大家對個人數據的隱私安全問題關注度明顯上升,本文將從身份管理角度討論該問題,主要包括四方面:第一,傳統身份管理方案有什麼問題?第二,DID 是什麼?技術實現過程是怎麼樣的?第三,DID 技術發展有什麼瓶頸?第四,區塊鏈技術和 DID 技術的結合能夠擦除什麼樣的火花?

身份管理

身份系統包括三個要素:身份、身份證明和身份驗證。我們結合三個要素,從物理世界和互聯網世界兩個維度分別討論身份管理。

身份系統

身份

在物理世界中,每個人從出生就擁有獨一無二的身份特徵,包括外貌、體重、年齡、膚色、指紋等等;為了快速描述任何個體的身份特徵,我們使用姓名作為代號,可以幫助大家快速識別他人並聯想到關於對方的一切信息,這些內容被統稱為身份。

與物理世界相對應的還有一個互聯網世界,身份的概念完全不同。在互聯網世界,用戶完全可以根據自己的喜好設置想象中的「身份」,包括姓名、性別、身高、體重等;甚至可以隨時更改這些「身份特徵」,確切來說,此時的身份不同於傳統意義上的身份,因為不具有唯一性和確定性。

身份證明

在物理世界中,由人構成的系統變得日益龐大,為了便於中心化機構的管理,出現了身份證明。中心化機構根據不同人的身份特徵簽發了唯一身份證明,用於證明主體擁有某項資產的所有權或申明其享有某種社會權益,同時在不同個體及組織之間交互時,可以用於定責、糾紛追溯和信任保障。身份證明使身份的特徵從隱性變為可視以及可追蹤,例如政府簽發的身份證、護照等,證明主體屬於某個國家的身份以及享有某種權益;再比如駕駛證,能夠證明某個身份具有車輛駕駛技能。

在互聯網世界中的主體身份證明完全不同於物理世界。在物理世界中,身份證明與身份有着直接的關聯,即通過身份證明就能映射到主體本人;但在最初的互聯網世界中,身份證明和身份之間並不存在映射關係,不同主體只需根據設想中的身份特徵(年齡、身高、姓名等)提交身份證明申請,而無需與物理世界身份特徵保持一致,因此僅憑互聯網身份證明是無法映射到主體本人。隨着互聯網世界的發展,匿名性和不可追溯性逐漸影響到了物理世界的治理和安全,多項規定要求平台方需做好用戶實名制驗證工作,這樣就出現了互聯網身份證明與物理世界身份證明映射的關係,進一步出現與主體身份映射的關係。

有意思的是,互聯網用戶的身份證明,需要依賴於物理世界身份證明的映射,來確定身份的唯一性和確定性。但互聯網世界中的網站卻完全不同,它從開始就有一套完整的身份證明體系,如圖 1 所示的統一資源標識符 URI。每個網站擁有獨一無二的域名,域名的簽發(身份證明)是由國際域名管理中心統一管理,我國是由中國互聯網絡信息中心管理。

研究 | 探討分佈式數字身份 DID 技術實現與應用

圖 1:統一資源標識符架構

身份驗證

在現代社會體系下,身份的驗證是信任建立的基礎。當個體或組織之間發生交互關係時,均需要進行身份的驗證,即證明某個體或組織擁有某項資源的所有權或享有某些權益,目的是通過身份驗證系統維護系統運行的基本規則和安全。

物理世界身份驗證

物理介質證明,如各種紙質文件或卡片證明,是人類發展史上依賴最長久的身份證明,包括身份證、護照、社會醫療保障卡、駕駛證等等。隨着技術的發展,物理介質證明作假越來越容易,且在身份驗證環節無法有效辨別,經常出現身份篡改、身份冒用等導致資產非法轉移及社會權益盜用等問題。因此,通過物理介質實現身份證明來維護原有的社會規則和安全難以持續下去。為了防止身份作假,各政府及組織從兩方面進行升級:第一方面是對身份證明的物理介質升級,增加了各種特徵可供驗證,如我國身份證上增加激光變色識別、增加微縮文字、視覺上呈現圖層疊放等;這些升級只是增加了非法分子的作假成本,一旦他們掌握了這些技術,依然可以複製出各種身份證明,而無法從根本上杜絕作假問題;第二方面是提升驗證手段,政府機構對接各類身份證明平台,能夠在某主體享有權益或處置資產前,通過比對物理介質證明與系統信息進行身份真偽識別,這種模式下存在兩方面問題,第一個問題是各類身份證明平台未全面聯通,數據孤島導致驗證信息不完整;第二個問題是企業及其他個體用戶無權對接身份識別平台,在日常交易合作中,無法通過該模式驗證身份真偽。

互聯網用戶身份驗證

在互聯網世界中,身份驗證主要依賴於用戶名和密碼。能夠輸入正確的信息,就意味着身份驗證通過。這種驗證體系存在兩種問題,第一種是用戶名和密碼容易被網絡攻擊者盜用;第二是中心化平台對用戶身份信息擁有絕對控制權,他們可以在未獲得用戶許可的情況下,根據自己的需要刪除、增加、更改、甚至交易用戶的身份信息。

身份信息安全問題

無論是物理世界還是互聯網世界,都存在身份管理方面的問題,而且兩個平行世界的身份證明逐漸融合。物理世界中的身份證明作假問題,藉助互聯網來加強身份驗證能力;而互聯網世界由於匿名信和不可追溯性導致的安全問題,通過與物理世界的身份映射方式來解決。我們解決了身份的真實性和可信性帶來的困擾,但同時也給我們帶來了新的麻煩,即身份的特徵和行為暴露在網絡中,被各個平台無視相關規定,肆意收集身份相關的行為信息並濫用這些信息。

研究 | 探討分佈式數字身份 DID 技術實現與應用

圖 2:用戶信息傳統數據庫管理模式

如圖 2 所示,在中心化管理模式下,用戶信息被不同平台重複收集並存儲,在 2021 年第 76 期《從用戶畫像實現看數據隱私問題》一文中,我們指出其中的問題,包括用戶信息被過度採集、信息被不同平台交易、用戶對個人行為數據沒有控制權等問題。

其他

當前我們面對的不僅僅是上面所提到的關於人的身份管理問題,隨着互聯網技術及通信技術的發展,網絡連接萬事萬物,構築出一個與物理世界相平行的數字世界。數字世界里的參與者不僅僅是人,還有包括其他萬事萬物,如何定義數字世界里的這些萬事萬物所屬權,以及怎麼定義每一個數字對象的權益?這個問題關係著數字世界的正常秩序的維護以及信任的構建。前面提到的三要素「身份-身份證明-身份驗證」僅圍繞人來討論,但物理世界中,除人的身份以外,我們還有其他各種國際統一標識,比如商品相關的統一編碼(RFID,商品序列號,二維碼)等。未來我們需要管理數字世界中每一種要素,前提是做好這些要素的身份管理。進一步說,我們需要一項能夠統一維護不同身份標識方法的工具,能夠做到不同事物的「身份標識-身份證明-身份驗證」。

DID 技術詳述

分佈式數字身份(Decentralized Identifiers, 簡稱 DIDs),在 W3C 的《DID V1.0》中,將 DID 定義為一種新的全球唯一標識符。這種標識符不僅可以用於人,也可以用於萬事萬物,包括一輛車、一隻動物,甚至是一台機器,本文主要以人為例來展開 DID 的討論。

下面我們從技術實現和應用兩個角度介紹 DID 技術,技術實現主要講述 DID 技術的構成要素;而應用主要圍繞「身份-身份證明-身份驗證」討論 DID 的實現。

技術實現

DID 技術的核心構成要素包括三個:DID、DID Document 和 Verifiable Data Registry。

研究 | 探討分佈式數字身份 DID 技術實現與應用

圖 3:DID 架構及相關構成要素之間的關係
(資料來源:W3C DID core)

DID

DID 屬於統一資源標識符 URI 的一種,是一個永久不可變的字符串,它存在的意義有兩點,第一,標記任何目標對象 (DID Subject),可以是一個人、一件商品、一台機器或者一隻動物等等;第二,DID 是通過 DID URL 關聯到描述目標對象的文件(DID Document, 簡稱 DID Doc)唯一標識符,即通過 DID 能夠在數據庫中搜索到具體的 DID Doc。

DID 標識方法

DID 分為三個部分,如圖 4 所示,第一部分是 DID Scheme (類似 URL 中的 http,https,ftp 等協議);第二部分是 DID 方法標識符(一般是 DID 方法的名稱);第三部分是 DID 方法中特定的標識符:在整個 DID 方法命名空間是唯一的。W3C 只規範了 DID 的表示結構,即, 但沒有規範三部分內容的具體標準,具體內容與 DID Method 有關,將在下面第 2 部分介紹。

研究 | 探討分佈式數字身份 DID 技術實現與應用

圖 4:DID 簡單示例(資料來源:W3C DID 白皮書)

DID Method

DID Method 是一組公開的操作標準,定義了 DID 的創建、解析、更新和刪除,並涵蓋了 DID 在身份系統中註冊、替換、輪換、恢復和到期等。目前沒有統一的操作標準,各個公司可以根據場景特徵自行設計,由 W3C CCG 工作組統一維護。截至 2021 年 8 月 3 日發布《DID V1.0》, 在 W3C 登記的 DID Method 高達 103 項,均有不同的名稱和特定的標識符表示方法。

DID URL

為融合現有 URI 網絡位置標識方法,DID 使用了 DID URL 表示資源的位置(如路徑、查詢和片段)。W3C 對 DID URL 的語法描述 ABNF 規定如下:。

DID Document

DID Document(DID Doc) 包含着所有與 DID subject 有關的信息,在 Doc 中有身份信息驗證方法(包括加密公鑰,相關地址等)。DID Doc 是一個通用數據結構,通常是由 DID controller 負責數據寫入和更改,文件里包含與 DID 驗證相關的密鑰信息和驗證方法,提供了一組使 DID 控制者能夠證明其對應 DID 控制的機制。需要說明的是,這裡的管理 DID Doc 的 DID Controller 可能是 DID subject 本人,也有可能是第三方機構,不同 DID Method 對 DID Doc 的權限管理有所區別。

如圖 5 所示,是一個與圖 4 中的 DID 對應的 DID Doc (用 JSON-LD 編寫的文件),存儲在所有人能控制的位置(可以是中心化的,也可以去中心化的),以便輕鬆查找。

研究 | 探討分佈式數字身份 DID 技術實現與應用

圖 5:DID Doc 示例(資料來源:W3C DID 白皮書)

DID Doc 可以被看作是一個身份信息地圖,如圖 6 所示由兩部分組成,第一部分被稱為標籤,在 DID Doc 中可以查詢到並可以直接閱讀的內容,包括三部分:核心標籤(如 id,controller,authentication 等)、拓展標籤(如以太坊地址等)、以及一些未在 W3C DID 規範登記的標籤;第二部分是未在 DID Doc 列出,而是藉助 URL 等特定形式,鏈接到第三方平台或網站系統查詢相關身份信息;為了保證最大程度的互操作性和信息兼容性,W3C 建立了 DID Specification Registry, 保證特定形式的內容在 DID Doc 中是可以被識別和解析的。當有新的標籤出現,相關平台或系統需要向 DID Specification Registry 登記。

研究 | 探討分佈式數字身份 DID 技術實現與應用

圖 6:DID Doc 的身份特徵入口(資料來源:W3C DID 白皮書)

不同 DID 之間可能存在信息交互關係,如圖 7 所示,在 W3C 中提出了 Production & Consumption 概念:創建一個 DID Document 的過程是 Production, 而將創建的這條 Document 引用至該 DID Subject 其他 DID 創建過程則是 Consumption。在驗證過程中,每個 DID 對應的 DID Document 是獨立的,相當於對每個 DID 做了信息隔離。在驗證過程中,DID 持有人可以根據需要對不同 DID 授權,驗證人只能閱讀到被授權的 DID Doc,而無法獲得更多信息,從而達到 DID Subject 的信息保護目的。

研究 | 探討分佈式數字身份 DID 技術實現與應用

圖 7:DID 生成和消耗的表示(資料來源:W3C DID 白皮書)

Verifiable Data Registries(VDR)

DID 的初衷是將用戶身份信息管理權從平台交回用戶自己,這過程中用戶必須解決的問題是信息存儲在哪裡?以及需要驗證的時候去哪裡找到這些數據?怎麼保證數據的真實性?VDR 討論的就是怎麼解決這些問題,我們將支持記錄 DID 數據且能夠在生成 DID Doc 時提供相關數據的系統稱為 Verifiable Data Registry (VDR),這種系統包括分佈式賬本、分佈式文件系統、P2P 網絡或其他可被信任的渠道;而且 VDR 與 DID Method 有着直接的關聯性,一般每個 VDR 都會基於 W3C DID 規範提出自己的 DID Method。目前市場主推 DID 儲存媒介是錢包,分為託管錢包(如 Coinbase)、普通錢包(如 imtoken),以及智能錢包(Gnosis Safe, Dappe,Argent),具體哪種媒介能更有效的存儲 DID 信息,暫不在本文詳細討論。

DID 的實現:「身份-身份證明-身份驗證」

我們基於第一部分的「身份-身份證明-身份驗證「,簡單討論 DID 如何實現這些功能的。

身份

在 DID 方案中,每個人可以在不同場景、不同時間,因為不同目的,在任意可信的第三平台登記不同的 DID,相關權益和資產所屬權與不同的 DID 直接綁定,而身份主體通過持有 DID 來證明其對資產的所有權或具體權益。DID 沒有直接與物理世界身份生成映射關係,且 DID 信息維護也是由身份主體或可信第三方來維護,保證了信息的安全性。對於身份主體而言,需要做好 DID 的安全持有工,同時維護好與 DID 對應的身份文件 (DID Doc)。

身份證明

DID 只是一串帶有密鑰的隨機數值,在具體使用中第三方機構根據 DID 信息將身份證明寫入 DID Doc,同時第三方機構會將自己的數字簽名加入文件中,方便後期身份驗證。例如,張三,需要證明自己具有駕駛能力,此時無需像傳統的中心化方法,由權威機構簽發一張駕駛證給張三,具體個人信息也無需存儲在權威機構的數據庫里; 通過 DID 技術給出的解決方案是:張三向車管所提供自己準備的 DID 或使用車管所提供的 DID,車管所按照 DID Doc 的 JSON-LD 數據結構寫入相關信息(包括但不限於 id,type, 有效期,controller,驗證方法等),同時加入車管所的數字簽名。DID Doc 可以儲存在車管所,可以儲存在張三的智能錢包里,或者其他存儲媒介。需要注意的是,此處 DID 並沒有泄露張三的身份特徵,沒有映射物理世界的其他身份證明,這個 DID 只是張三持有的眾多 DID 中的一個。因此,只要張三本人不出示 DID 證明,就沒有人能知道這份 DID Doc 是張三的,從而保護了張三的個人隱私。

身份驗證

驗證的主要目的是為了證明目標主體可以合規的或有權限的進行某項程序,在 W3C《DID V1.0 白皮書》中從驗證目的進行了梳理,分為五類,分別是:驗證、申明、重要協議、性能調用和性能授權。根據五種不同目的,在 DID Method 中可以設計不同的方案。驗證信息的來源分為兩類,一類是 DID Doc 中列舉的數據;另一類是需要藉助於外部系統或平台的數據,對於材料的格式 W3C 做了要求(主要包括 publicKeyJwk 和 publickeymultibase),以方便解析及識別。下面以「申明」為例說明,根據國家最新青少年網絡遊戲規定中要求每天限時一小時,傳統的方法則需要上傳身份證信息,但分佈式標識符解決方案中,只需要提供自己持有的 DID,通過零知識證明驗證用戶是否超過 18 歲即可,而無需告知平台方用戶具體年齡。這只是眾多驗證方法中的一種。

DID 的應用及發展

DID 從提出到現在已經有四年時間,各行業協會、互聯網平台、基金會都在積極推動並完善 DID 技術。經過長時間探索,W3C 於 2021 年 8 月 3 日發布了 DID 1.0 版白皮書。相比初期 0.1 版搭建了一個全新的身份標識體系,到 1.0 版開始考慮如何融合市場上已有的身份標識方法。其他協會、組織及企業也基於 W3C 的 DID 規範提出了多種 DID Method, 但距離 DID 技術落地應用,仍然有很多問題需要進一步去解決,主要包括:

1、如何滿足合規性要求?

互聯網最初只需要通過用戶名 / 密碼實現平台身份驗證即可,但為了滿足合規要求,增加了物理世界身份驗證。這種方法初衷是為了讓網絡用戶的行為可問責、可追溯,逐步建立網絡信任體系,但負面影響是造成大量個人信息泄露。DID 有效解決了這些問題,但面臨的仍然是合規性問題。雖然當前未出台相關規定,但不遠將來肯定會面臨如何將不同的 DID 映射到具體主體的問題,同時需要考慮這種映射關係,是否會造成新一輪信息泄露問題?該問題有待進一步探討及觀察。

2、如何驗證 DID 與持有人之間的關係?

DID 具有匿名性,當前主流 DID 技術給出的解決方案是:誰持有 DID,誰就有權享受相關權益。這種方案無法驗證 DID 提供者是不是本人,也無法避免 DID 被盜取並用於非法目的。雖然部分 DID Method 提出將 DID 映射到中心化數據庫,通過中心化的一套方法驗證 DID 提供者是不是本人的問題,但這仍將給個人信息保護留下漏洞,例如是否能夠通過中心化數據庫倒推出 DID 持有人?

3、DID 如何市場化推行?

DID 市場化過程中,當前有兩方面瓶頸:第一方面,沒有企業願意主動放棄用戶數據;用戶數據如同平台護城河,產生了大量價值,如果同意 DID 的使用,就等於同意拆除護城河,對於互聯網企業是致命性打擊。第二方面,DID 技術推行誰來買單?第一,不同用戶願不願意為自己的身份信息買單?換句話說,用戶是否願意向類似智能錢包這種供應方付費?雖然未來個人行為數據有機會變現,並足夠支付這部分費用,但商業模式不清晰的情況下,有多少人感興趣參與其中?第二,DID 技術將打破各平台方原有數據管理結構,必定需要新增相關驗證平台,相關成本誰來承擔?這些瓶頸將會極大阻礙 DID 技術的推行,如何平衡相關方利益關係,目前仍沒有理想的方案。

4、密鑰管理風險大

DID 的可信性主要依賴於密鑰技術,如果第三方機構的私鑰被竊取,會不會出現隨意簽發證書的行為?或者某個身份主體將私鑰無意丟失,是否永遠無法使用這些 DID 證書?這些問題目前沒有非常理想的解決方案,對於現實使用也會提出較大挑戰。

5、身份信息泄露風險

相比傳統身份信息管理手段,DID 已經在很大程度上提升了數據的安全性,但在具體應用中仍有一定的風險,例如當第三方收集足夠量的個人 DID 數據時,有可能通過海量數據進行逆向推理,發現 DID 標識符之間的映射關係並推出物理世界的個人身份。這一問題的根本原因在於大多基於 W3C 的 DID Method 是靜態身份,而非動態身份 ; 如果未來能夠設計一套動態身份管理體系,定期可以更新 DID 標識符,那麼即使第三方能夠收集到部分 DID Subject 的數據,但也無法通過海量數據發現 DID 之間的關聯關係。

區塊鏈與 DID 的結合

雖然區塊鏈不是 DID 技術的必選項,但區塊鏈技術能夠助力與 DID 技術的實施,避免很多爭端問題的發生,同時能夠以更低成本維護數據的可信性,主要體現在以下幾方面:

1、降低驗證成本

DID 技術提倡的是將 DID 和 DID Doc 存儲在用戶端,但如何保證 DID Doc 不會在用戶端被篡改?如果不使用區塊鏈,則需要 DID 證書籤發者同步維護這些證書,增加了維護成本。當使用 DID 時,合作方可以將 DID 持有人的 DID Doc 與簽發方的數據庫進行一致性驗證,增加了驗證成本。但使用區塊鏈技術則能降低簽發方這部分成本,只要寫入持有人 DID Doc 的信息將被記錄在鏈上,無法做出修改,保證了信息的真實性和安全性;簽發人無需增加數據庫存儲及維護成本,而合作人也無需增加成本將持有人 DID Doc 與簽發方數據庫做一致性檢驗。

2、基於 DID 的信任體系的搭建

當前圍繞區塊鏈的方案大多沒有實現生態閉環,假如有人在區塊鏈生態中出現違約,仍需回歸到中心化模式下尋找法律解決方法,並沒有減輕政府治理壓力。未來是否會通過構建基於 DID 的信用記錄系統,來補齊這塊生態閉環構建的短板?該問題值得觀察。不同主體的行為信息會隨着 DID 被記錄在 DID Doc 中,也將成為不同相關方合作的重要參考,隨着數據的增加違約的成本也將增加,例如無法從銀行獲取貸款、無法找到工作、無法找到合作夥伴,因此,這種信任體系將會對生態治理起到非常積極影響。而這一切的基礎是可信數據,區塊鏈不能缺席。

本文鏈接:https://www.8btc.com/article/6685206

轉載請註明文章出處

(0)
上一篇 2021-09-13 13:23
下一篇 2021-09-13 13:41

相关推荐