Web3.0--去中心化身份DID介紹
Part 01
互聯(lián)網(wǎng)身份
?1.1 互聯(lián)網(wǎng)身份危機
眾所周知,目前我們使用的互聯(lián)網(wǎng)是沒有身份層設(shè)計的。有個比較經(jīng)典的笑話:在網(wǎng)上聊天你不能確定對方是人還是狗!很多網(wǎng)絡(luò)犯罪往往也是基于此來進行。微博在初期就有很多相似的賬號進行冒充詐騙,后面平臺引入大V等機制來進行人工身份識別,但這種方式是比較繁瑣且難以復(fù)制的。
身份是社會關(guān)系的總和,同一個人在不同的場景下的身份是不同的。比如在家庭身份里面你可能是父親,丈夫,在工作身份里面可能是裁判,同事。不同的場景僅僅只是需要你的一部分身份而已,但目前的互聯(lián)網(wǎng)存在過度收集用戶信息,在用戶不知情的情況下收集用戶信息等風(fēng)險。
1.2 互聯(lián)網(wǎng)身份簡史
在Web1.0時代(中心化身份),每個網(wǎng)站都通過唯一的用戶名來標識不同的用戶身份信息,這些用戶信息都存在于該網(wǎng)站的數(shù)據(jù)庫里。這種身份體系弊病很多:用戶需要注冊比較多的賬號和密碼,復(fù)雜的管理系統(tǒng)對賬號的安全性也是一個比較大的挑戰(zhàn)。
Web1.0
在Web2.0時代(聯(lián)邦制身份),數(shù)字身份以平臺為中心,同一平臺內(nèi)的不同產(chǎn)品間通過賬號系統(tǒng)打通。例如,騰訊的郵箱、游戲、金融等皆可使用同一賬號;Google、Facebook 等互聯(lián)網(wǎng)頭部企業(yè)也均有自己的賬號體系。這種身份體系相比于Web1.0存在減少用戶注冊,平臺背書等優(yōu)勢,但弊病也廣為人知:平臺相互間的賬號并不互通,用戶無法控制自己的身份數(shù)據(jù)。
Web2.0
在Web3.0時代(自主權(quán)身份),身份標識變?yōu)榱艘粋€個的鏈上地址,在保證唯一性的前提下不需要用戶手動去生成。用戶身份數(shù)據(jù)不再存儲于各大互聯(lián)網(wǎng)公司數(shù)據(jù)庫里而是在區(qū)塊鏈上了,用戶對自己的身份數(shù)據(jù)擁有絕對的控制權(quán)。
?
Web3.0
Part 02
去中心化身份DID
?2.1去中心化身份(Decentralized Identity,DID)
我們出國需要護照,需要簽證,需要各種繁瑣且嚴格的審核。但互聯(lián)網(wǎng)是全世界相通的,不可能說我訪問一個國外的網(wǎng)站也需要類似的審核。所以一個通用的自主權(quán)身份就顯得非常有必要。一個主體的身份,既不依賴于也不受制于中心化的組織或者國家。
?
但去中心化身份很容易產(chǎn)生下面的一些認知誤區(qū):
- DID的權(quán)威性來源于用戶本人;
- DID普及之后就可以不再需要政府機構(gòu)管理用戶身份;
- 一套DID可以包打天下,適用于所有場景;
- DID是絕對安全的;
- DID的核發(fā)有一個權(quán)威的中心機構(gòu);
- DID只能用于個人身份;
總的來說,DID是一個現(xiàn)實身份的有效補充,也是在不斷發(fā)展更新的。
2.2 DID的標準和實現(xiàn)方式
目前DID標準主要分為兩種:W3C標準和DIF標準。
W3C:用來標示人員、組織和事物,并保護安全和隱私。主要由“基礎(chǔ)層DID規(guī)范”和“應(yīng)用層可驗證聲明”組成。
DIF:最主要的作用是使用戶掌握充分的所有權(quán),從而可以建立一個開放的、去中心化身份的生態(tài)系統(tǒng),并確保所有參與者之間的互操作性。
這里主要介紹W3C的DID標準和實現(xiàn)方式。其DID系統(tǒng)主要包括兩個層次的要素,基礎(chǔ)層和應(yīng)用層。基礎(chǔ)層——DID規(guī)范,包括DID標識與DID文檔。
-- DID標識符
DID標識符是身份標識符的格式。DID的格式跟瀏覽器里面的URL非常相似。其中Scheme did相當(dāng)于https協(xié)議。DID method相當(dāng)于域名,里面會詳情描述did的生成規(guī)則,并可以提交到W3C去校驗和記錄。最后面的一串?dāng)?shù)字就可以理解為path,生成規(guī)則是基于密碼學(xué)來保證全局唯一性。整個DID只有一個作用就是作為一個索引去打開DID Document,就跟打開一個具體的網(wǎng)頁一樣。DID到Document的映射必須抗篡改,抗審查,且數(shù)據(jù)公開可見。
-- DID文檔
DID文檔是身份信息的格式,是一個基于JSON格式的文檔文件,其中包含很多有意義的鍵值對。
- @context:W3C標準的版本號;
- controller:可以對這個文檔進行修改的用戶,值為一串公鑰;
- verificationMethod:聲明了2把鑰匙,分別是用不同的加密算法生成的不同的publicKey;
- authentication,capabilityDelegation,keyAgreement:這3個分別對應(yīng)3種具體的場景。其中前面2種是用公鑰1去處理,最后一種是用公鑰2去處理;
- service:指明在什么網(wǎng)站上面可以去內(nèi)容進行修改。
應(yīng)用層——可驗證聲明(Verifiable Claims 或 Verifiable Credentials,簡稱VC)
隱私數(shù)據(jù)披露的方式,為數(shù)據(jù)授權(quán)(Authorization)提供了保障。下面是一個大致的運行機制圖:
- Issuer:憑證頒發(fā)機構(gòu),如政府、公安局、銀行、大學(xué)等機構(gòu)和組織;
- Holder:身份持有者,能向Issuer請求,接收、持有VC,向Verifier出示VC,開具的VC可以存放在錢包里,方便以后再次證明時使用;
- Verifier:身份消費機構(gòu),如火車站、游戲網(wǎng)站、香煙店;
- Registry:維護DID標識符及密鑰(DID文檔)的數(shù)據(jù)庫,如區(qū)塊鏈、可信數(shù)據(jù)庫、分布式賬本等。
為了方便理解,我們以持有身份證去火車站坐高鐵為例,整個流程跟我們目前的中心化的驗證場景最大的區(qū)別在于:在中心化的場景里面Verifier的系統(tǒng)是需要跟Issuer聯(lián)網(wǎng)的,而VC則不需要。一旦跟Issuer聯(lián)網(wǎng)則意味著Verifier是有可能獲取到你全部身份信息的,諸如婚姻狀態(tài)等跟乘車毫不相關(guān)的信息。VC既可以減少系統(tǒng)冗余也可以保護用戶隱私。在使用VC時用戶可以根據(jù)不同的安全場景選擇不同的使用方式:
1)全文出示;
2)選擇性出示;
3)存在性證明;
其中“存在性證明”是保護隱私最好的一種方式,這里舉例幾個使用場景:
- A是知乎注冊滿3年的用戶,至少獲得了100個贊,并且社區(qū)積分高于1000,可以參與某NFT的白名單活動;
- B的年收入在20萬到40萬之間,風(fēng)險等級大于3,可以購買該款理財產(chǎn)品;
- C持有一本合法的D國數(shù)字護照,在一次D國的撤僑行動,可以獲得D國的幫助;
VC在驗證的時候就會涉及到一個隱私計算的新領(lǐng)域——本地零知識證明計算。我們希望的是數(shù)據(jù)可證而不可見。在不出示計算輸入數(shù)據(jù)和計算過程的情況下,以零知識證明的方式,證明計算的可信性,從而完成數(shù)據(jù)分析與計算的需要。
零知識證明其實在生活中也比較常見,比如你手機丟了,被人拾到放物業(yè)然后你去取。那物業(yè)如何判斷手機是你的呢?通常我們的手機都會設(shè)置密碼,只要你能通過面容或者密碼解鎖手機,那就可以判斷手機就是你的,而你的其他隱私信息通通是不需要的。
目前已經(jīng)有很多項目在使用零知識證明來構(gòu)建基于Web3.0的自畫像。首先將Web2.0的網(wǎng)站變?yōu)閂C的簽署方,使用零知識數(shù)字身份變?yōu)橐粋€一個Tags,然后出示給Web3.0的網(wǎng)站。這里有個不同的是,Web2.0的網(wǎng)站其實也是對你打了很多Tags,但這是未經(jīng)你允許的,你也無法編輯。而你提供給Web3.0的畫像是你希望的,經(jīng)過篩選的你愿意的,這才是真正的自畫像。
?
Part 03
總結(jié)
人類生存幾千年,早已形成一套依賴組織或國家成熟的身份系統(tǒng),所以很多人會以為自主權(quán)身份離我們很遠。但隨著元宇宙的迅速發(fā)展,相信很多虛擬元素,無人設(shè)備(無人機,機器人...)將會更快的使用上自主權(quán)身份。相信在不久的將來,系統(tǒng)快速、準確地進行身份校驗將會變成一個日常的基本需求。