Web3.0--去中心化身份DID介紹

Part 01
互聯網身份
?1.1 互聯網身份危機
眾所周知,目前我們使用的互聯網是沒有身份層設計的。有個比較經典的笑話:在網上聊天你不能確定對方是人還是狗!很多網絡犯罪往往也是基于此來進行。微博在初期就有很多相似的賬號進行冒充詐騙,后面平臺引入大V等機制來進行人工身份識別,但這種方式是比較繁瑣且難以復制的。
身份是社會關系的總和,同一個人在不同的場景下的身份是不同的。比如在家庭身份里面你可能是父親,丈夫,在工作身份里面可能是裁判,同事。不同的場景僅僅只是需要你的一部分身份而已,但目前的互聯網存在過度收集用戶信息,在用戶不知情的情況下收集用戶信息等風險。
1.2 互聯網身份簡史
在Web1.0時代(中心化身份),每個網站都通過唯一的用戶名來標識不同的用戶身份信息,這些用戶信息都存在于該網站的數據庫里。這種身份體系弊病很多:用戶需要注冊比較多的賬號和密碼,復雜的管理系統對賬號的安全性也是一個比較大的挑戰。

Web1.0
在Web2.0時代(聯邦制身份),數字身份以平臺為中心,同一平臺內的不同產品間通過賬號系統打通。例如,騰訊的郵箱、游戲、金融等皆可使用同一賬號;Google、Facebook 等互聯網頭部企業也均有自己的賬號體系。這種身份體系相比于Web1.0存在減少用戶注冊,平臺背書等優勢,但弊病也廣為人知:平臺相互間的賬號并不互通,用戶無法控制自己的身份數據。

Web2.0
在Web3.0時代(自主權身份),身份標識變為了一個個的鏈上地址,在保證唯一性的前提下不需要用戶手動去生成。用戶身份數據不再存儲于各大互聯網公司數據庫里而是在區塊鏈上了,用戶對自己的身份數據擁有絕對的控制權。
?

Web3.0
Part 02
去中心化身份DID
?2.1去中心化身份(Decentralized Identity,DID)
我們出國需要護照,需要簽證,需要各種繁瑣且嚴格的審核。但互聯網是全世界相通的,不可能說我訪問一個國外的網站也需要類似的審核。所以一個通用的自主權身份就顯得非常有必要。一個主體的身份,既不依賴于也不受制于中心化的組織或者國家。
?

但去中心化身份很容易產生下面的一些認知誤區:
- DID的權威性來源于用戶本人;
- DID普及之后就可以不再需要政府機構管理用戶身份;
- 一套DID可以包打天下,適用于所有場景;
- DID是絕對安全的;
- DID的核發有一個權威的中心機構;
- DID只能用于個人身份;
總的來說,DID是一個現實身份的有效補充,也是在不斷發展更新的。
2.2 DID的標準和實現方式
目前DID標準主要分為兩種:W3C標準和DIF標準。
W3C:用來標示人員、組織和事物,并保護安全和隱私。主要由“基礎層DID規范”和“應用層可驗證聲明”組成。
DIF:最主要的作用是使用戶掌握充分的所有權,從而可以建立一個開放的、去中心化身份的生態系統,并確保所有參與者之間的互操作性。
這里主要介紹W3C的DID標準和實現方式。其DID系統主要包括兩個層次的要素,基礎層和應用層。基礎層——DID規范,包括DID標識與DID文檔。
-- DID標識符

DID標識符是身份標識符的格式。DID的格式跟瀏覽器里面的URL非常相似。其中Scheme did相當于https協議。DID method相當于域名,里面會詳情描述did的生成規則,并可以提交到W3C去校驗和記錄。最后面的一串數字就可以理解為path,生成規則是基于密碼學來保證全局唯一性。整個DID只有一個作用就是作為一個索引去打開DID Document,就跟打開一個具體的網頁一樣。DID到Document的映射必須抗篡改,抗審查,且數據公開可見。
-- DID文檔

DID文檔是身份信息的格式,是一個基于JSON格式的文檔文件,其中包含很多有意義的鍵值對。
- @context:W3C標準的版本號;
- controller:可以對這個文檔進行修改的用戶,值為一串公鑰;
- verificationMethod:聲明了2把鑰匙,分別是用不同的加密算法生成的不同的publicKey;
- authentication,capabilityDelegation,keyAgreement:這3個分別對應3種具體的場景。其中前面2種是用公鑰1去處理,最后一種是用公鑰2去處理;
- service:指明在什么網站上面可以去內容進行修改。
應用層——可驗證聲明(Verifiable Claims 或 Verifiable Credentials,簡稱VC)
隱私數據披露的方式,為數據授權(Authorization)提供了保障。下面是一個大致的運行機制圖:

- Issuer:憑證頒發機構,如政府、公安局、銀行、大學等機構和組織;
- Holder:身份持有者,能向Issuer請求,接收、持有VC,向Verifier出示VC,開具的VC可以存放在錢包里,方便以后再次證明時使用;
- Verifier:身份消費機構,如火車站、游戲網站、香煙店;
- Registry:維護DID標識符及密鑰(DID文檔)的數據庫,如區塊鏈、可信數據庫、分布式賬本等。
為了方便理解,我們以持有身份證去火車站坐高鐵為例,整個流程跟我們目前的中心化的驗證場景最大的區別在于:在中心化的場景里面Verifier的系統是需要跟Issuer聯網的,而VC則不需要。一旦跟Issuer聯網則意味著Verifier是有可能獲取到你全部身份信息的,諸如婚姻狀態等跟乘車毫不相關的信息。VC既可以減少系統冗余也可以保護用戶隱私。在使用VC時用戶可以根據不同的安全場景選擇不同的使用方式:
1)全文出示;
2)選擇性出示;
3)存在性證明;
其中“存在性證明”是保護隱私最好的一種方式,這里舉例幾個使用場景:
- A是知乎注冊滿3年的用戶,至少獲得了100個贊,并且社區積分高于1000,可以參與某NFT的白名單活動;
- B的年收入在20萬到40萬之間,風險等級大于3,可以購買該款理財產品;
- C持有一本合法的D國數字護照,在一次D國的撤僑行動,可以獲得D國的幫助;
VC在驗證的時候就會涉及到一個隱私計算的新領域——本地零知識證明計算。我們希望的是數據可證而不可見。在不出示計算輸入數據和計算過程的情況下,以零知識證明的方式,證明計算的可信性,從而完成數據分析與計算的需要。
零知識證明其實在生活中也比較常見,比如你手機丟了,被人拾到放物業然后你去取。那物業如何判斷手機是你的呢?通常我們的手機都會設置密碼,只要你能通過面容或者密碼解鎖手機,那就可以判斷手機就是你的,而你的其他隱私信息通通是不需要的。
目前已經有很多項目在使用零知識證明來構建基于Web3.0的自畫像。首先將Web2.0的網站變為VC的簽署方,使用零知識數字身份變為一個一個Tags,然后出示給Web3.0的網站。這里有個不同的是,Web2.0的網站其實也是對你打了很多Tags,但這是未經你允許的,你也無法編輯。而你提供給Web3.0的畫像是你希望的,經過篩選的你愿意的,這才是真正的自畫像。
?

Part 03
總結
人類生存幾千年,早已形成一套依賴組織或國家成熟的身份系統,所以很多人會以為自主權身份離我們很遠。但隨著元宇宙的迅速發展,相信很多虛擬元素,無人設備(無人機,機器人...)將會更快的使用上自主權身份。相信在不久的將來,系統快速、準確地進行身份校驗將會變成一個日常的基本需求。

































