本文為萬向區塊鏈蜂巢學院線上公開課第20期內容。在本期公開課中,MYKEY研究部負責人姚翔分享了他對區塊鏈數字身份的觀點。錯過直播的小伙伴,別錯過下面這篇乾貨。

大家好,我是MYKEY的姚翔。感謝萬向區塊鏈蜂巢學院的邀請,今天可以有機會和大家交流我關於數字身份的思考。

最近發生了一件令人非常震驚的事情,包括億萬富翁比爾·蓋茨、馬斯克、奧巴馬在內的一些特賬戶遭到黑客攻擊,黑客欺詐用戶Bitcoin。漏洞很快被修復,但該地址收到了超過12個Bitcoin。雖然其中可能有黑客自導自演,當託的行為,但可以相信有一些用戶上了當,丟失了資產。

損失不僅僅包括用戶的經濟損失,還包括巨大的信任損失。雖然事情的真相尚不清楚,但這件事嚴重影響了人們對推特的信任,甚至是對互聯網的信任。

其實,說“震驚”,但並不意外。因為作為從業者來說,類似的事情可以說是層出不窮,只是影響大小不同罷了。我們需要反思,是否是目前互聯網的架構存在缺陷,以至於這類安全事件幾乎一定會發生?

譬如說,我們看到這些賬戶上都打了勾,這代表這些賬戶受過驗證,可以和真實世界的人對應起來,但他們的每次發言是否都代表了他們的意圖?互聯網賬號作為人映射的一個身份,是否足夠可信呢?那我們今天就來討論一下,數字身份和區塊鏈,能否重塑數字世界的信任呢?

威廉·吉布森有一句話,經常被廣泛引用,我也很喜歡,“The future is already here - it"s just not evenly distributed(未來方興未艾,只是尚未流行)”。如今的互聯網面臨著什麼樣的問題,與信任互聯網還有多少距離,數字身份、自主權身份、分佈式身份又是什麼,它們是如何幫助互聯網重構信任的,又有哪些挑戰呢?讓我們先從互聯網面臨的一些問題說起。

現在大家在使用互聯網的時候,我想或多或少會遇到以下的這樣一些問題。

第一,賬戶分散導致不便。大家使用互聯網的時候,需要註冊不同的賬號服務,記錄在不同網站的密碼真的是難事。很多人選擇在不同的網站使用相同的密碼,這帶來了額外的風險,只要一個網站保存不當,所謂“拖庫”,那用戶使用相同密碼的網站的賬戶都受到安全威脅。而如果使用不同的密碼,則很容易忘記,因此經常會點擊重試密碼,浪費了很多寶貴的時間。

第二,個人隱私數據洩露。 2018年3月17日,《紐約時報》《衛報》和《觀察者報》,報導了劍橋分析公司及其關聯公司SCL竊取並私自保留了5000萬Facebook用戶數據的消息。在醜聞曝光一周後,扎克伯格於3月26日在《華盛頓郵報》《紐約時報》《華爾街日報》和6家英國報紙上刊登了一整頁廣告,就數據洩露醜聞道歉。致歉信以簡單的白紙黑字開始:“我們有責任保護您的信息。如果我們做不到,就不配為您服務。”最終事情達成了和解,Facebook同意成立一個獨立的隱私委員會。 Facebook首席執行官馬克·扎克伯格(Mark Zuckerberg)將被要求證明該公司的行為,與此同時Facebook必須在其平台上實行更多的隱私保護措施。此外,Facebook還被罰款50億美元。但是,隱私數據洩露的根本原因仍然還在那裡。

第三,身份冒用引發信任危機。去年有一段時間,我的微博賬戶總是莫名其妙給一些營銷賬戶點贊,主要是娛樂新聞、微商、減肥、代購等信息,點贊數都在幾千以上,但大都只有零星評論。我修改了密碼,也清理了登錄的設備,都無法解決。最終,我發現這些行為總是在我連接某一個寬帶之後出現,通過配置固定的DNS我解決了問題。做活動前,我查詢了一下事情后續。根據“隱私護衛隊”自媒體的報導,2018年,浙江紹興警方就曾破獲一起黑產利用運營商管理漏洞劫持流量的案件,包括微博在內的96家互聯網公司用戶數據被竊取,微博是其中之一。

據了解,該犯罪團伙將自主編寫的惡意程序放在運營商內部的服務器上,當用戶的流量經過運營商的服務器時,該程序就自動運行,從中清洗、採集出用戶cookie(用戶登錄網站論壇之類的賬戶密碼等數據記錄)等關鍵數據。下游公司就會利用已洩露的數據操控用戶賬號在微博等社交平台上點贊、關注等。

所以你看到的行為未必是真的,因此如果你的伴侶問你為什麼要給某些內容點贊,你也可以找到一個好的藉口。

這些問題應該怎麼去解決呢?技術上總是有辦法。有一些比較直觀的想法,技術手段幫忙解決。

第一個問題,不夠便利。可以把賬戶統一,一個賬戶去訪問多個賬戶或者一個賬戶去管理多個密碼。

第二個問題,隱私的問題。可以把數據加密,一方面是要提高企業的能力,比如說facebook要把數據加密保存,可以第三方使用的時候去控制數據的內容和邊界,並且有相應的法律在背後去保護。最終,終極的方案是數據在本地加密,這個密鑰由個人去管理。

第三個問題,這件事情是不是你做的。比如說你發一個微博或者說給一個人點贊,怎麼來驗證是不是用戶的真實企圖呢?可以用數字簽名這樣一種手段來識別用戶的意圖,任何人是沒有辦法偽造用戶的意圖。同時,也可以用可驗證憑證的方式來驗證用戶符合某些條件,而不是要把原始的數據披露出來。

舉個例子來說明。譬如去酒吧,酒吧需要查看身份證件,以確認用戶是否達到合法年齡,但這會洩露用戶的信息。通過電子證書的方式,可以讓酒吧只去驗證用戶的證件是否由合法的機構頒發,並且年齡達到標準。

傳統的解決方案也非常成型,大家應該都很熟悉了,比如:

技術手段1:使用Open ID的方式,運用一個社交媒體賬戶去登錄多個網站,這個大家應該都熟悉,國內可能微信登錄或者說微博登錄,這也是流行的一個手段。

技術手段2:數據加密,像PGP,是一種加密的方式。 PGP的意思就是Pretty Good Privacy,就是“超讚的隱私”。用本地加密的方式,中間傳的都是密文數據,當然是沒有辦法洩露隱私。

技術手段3:數字證書,這也是比較常見的技術手段。

雖然這些方式尚未完全流行,但已經慢慢在普及了,但似乎總是很割裂,也沒有解決根本問題。譬如,Open ID仍然依賴這些應用提供商的可信,PGP如何實現密鑰和人的對應,數字證書又是如何和人聯繫起來,怎樣用一個普適、易用的方式解決問題呢?

這就回到今天的主題“數字身份”,我們先看“身份”是什麼?在現實社會中,身份的主體可以是人、組織、物理設備,以人為例,身份既是生物信息的總和,也是包括身份證件、駕駛證、結婚證的證件所給予的社會認同,也包含了社會關係。那麼數字身份又是什麼呢?

我們來看這張圖,首先是實體,實體可以對應很多身份,就像我今天在這裡用真名姚翔,在微信上大家都喊我沙漏。根據 ISO/IEC 24760-1 身份是與一個實體相關的屬性集合,數字身份則是實體的數字化展現,包含個人身份信息和輔助信息。

自主權身份稍有不同,是從身份的最終控制權上說的。自主權身份由用戶完全自主掌控的身份數據和標識符,不會被任何權力機構撤銷。身份持有者可以完全控制自己的憑證,而不需向中介機構或中央主管部門申請許可,並可以控制個人數據的共享和使用方式。

自主身份可以是一個分佈式身份,也可以是來自社交媒體賬戶的數據、電子商務網站上的交易記錄或朋友或同事的證明。 (歐洲區塊鏈觀察站論壇)

分佈式身份則是從身份的註冊上說的,我們看到DID的時候,可能指的是兩種東西,分佈式身份/分佈式標識符。全球唯一的持久性標識符,不需要中心化的註冊機構批准,因為它是通過密碼學方式生成和註冊的。 (W3C Working)

有關數字身份、自主權身份、分佈式身份的關係如圖所示,這個圖是我自己整理的,如有問題還請指出。

分佈式身份到底長什麼樣子呢?右邊這個圖是W3C的一個規範文檔。我們看圖片中間,DID(數據身份)包含了哪些內容,這裡只列了一些主要的,首先它是有一個自描述的標記符,是全局唯一的標識符"id": "did:example:21tDAKCERh95uGgKbJNHYp "  

它包含了一些密鑰,比如說你要去指定這個身份包含哪一個或者哪一組公鑰,以及認證方式,怎麼去認證身份的行為。比如說這個密鑰是用來簽名的,這個密鑰是用來加密的,這個密鑰是用來訪問專門的賬戶,這叫認證方式的集合。同時,密鑰本身就包含了所採用的簽名算法。

還有一個叫服務端點,這其實是一個去定義身份本身,它會包含著一些服務,比如說指定一個URL,說這個身份上的所有證件都可以在這個網址裡找到,就可以通過訪問這個網址來找到證件。此外還包括時間戳和簽名。

DID和其他各個組件之間又是什麼關係呢?先看subject,就是上面提到的主體(entity),DID就是用來標記和識別subject。

還要注意DID和上面的可驗證數據註冊表,這是什麼關係呢? DID是基於上面的。什麼叫可驗證的數據註冊表?這個賣個關子,一會再說。

同時,DID和一些文檔的關係。首先要注意,根據現在的數據指引,DID本身是不能包含標誌符、密鑰,是不能包含個人信息的,比如說證件號或者名字是不能出現在這裡,這些信息是要通過一個附加的文檔來進行處理,通過一個解釋器去指向文檔。其他的內容,詳細的大家可以去看這個文檔,我就不展開了。

剛才賣了一個小關子,說可驗證的註冊器是什麼。大家也會想到今天的題目,數字身份和區塊鏈又是什麼關係呢?其實,區塊鏈就是一個無需許可的、可驗證的、持久化的分佈式的身份註冊器,也就說我們把這些DID去註冊在區塊鏈上。

無需許可指的是任何人都可以去註冊這個身份,可能是一個公鑰,也可以是一個智能合約;可驗證,任何對用戶身份的改動都需要相應的授權,是沒有辦法偽造的,註冊一個身份後其他人是沒有辦法去偽造或者修改身份當中的信息;持久化,這個身份一旦註冊就可以長期存在,因為區塊鏈上的信息具有持久性。

數字身份會為區塊鏈引入更多與現實世界的連接。現在區塊鏈上本身既不能去保存個人信息,但又需要和外界連接,只有和外界、現實社會,和真實的社會生活、生產發生關係,區塊鏈的價值才能被進一步的豐富,數字身份就是很好的切入點。通過上面規定的這套協議,可以增加真實世界的資產信息,與區塊鏈上的身份或者賬戶產生關聯。

現有的區塊鏈以及相應的基礎設施有助於數字身份的推廣和落地。如果說從頭再來推廣數字身份,那相關的一些應用,比如說瀏覽器的支持,比如說和其他應用的兼容性,很多東西是要從頭開始做的。

剛才說到在自主權身份裡有一部分是其他人給頒發的信息,是屬於自主權身份的一部分,或者說DID相關的文檔。這些信息和數字身份到底又是什麼關係呢?

這裡看到,為了保證這個文檔本身的可信度,必須要提供相應的簽名,所以叫它是可驗證憑證(Verifiable Credentials),簡稱叫VC。這個的標准定義是說現實生活中的證書能表達什麼信息,就可以用數字化的方式去表達等價信息。

比如說你有一張駕駛證,駕駛證上可能有你的名字,證件是哪天頒發的、有效期、什麼樣的車。數字化證件裡就包含了相應的信息,以及可信的機構,在我們國家可能就是公安局、交管對應的簽名,這就是一個可驗證憑證。

簽發者:對應簽發這些證書的人就叫做簽發者,可以是任何身份,包括政府、公司和個人,但簽發者簽發的證書是否有意義,取決於他和現實生活中的關聯。

驗證者:就是使用這些憑證的人,回到剛才的例子,比如說你要去酒吧,要檢查,如果有駕照自然是大於18歲的,至少在我們國家應該是這樣。就可以使用憑證當中所攜帶的信息開展業務。

持有者:就是這個身份的主體,這個憑證是頒發給誰的,對應著現實身份的主體。

這些信息的流轉就是由簽發者發給持有人,然後由驗證者去驗證這個憑證是不是符合某些信息,而所有關於這些信息的登記,都是在可驗證註冊表上。再與區塊鏈結合,就是在區塊鏈上做的。這個是可以看W3C的關於可驗證憑證數據模型的文檔。

那我們看看數字身份在現實中可以有哪些應用呢?我舉幾個例子。

應用1:健康信息的管理

現在疫情流行,出行可能不便,大家也有體會,為了控制病毒傳播,在乘坐交通工具或者住酒店的時候要出示相關的健康證明,但現在這種模式有幾個問題:1、容易偽造;2、有可能會造成隱私洩露,現在做了很多手段、很多保護,但還是會有這樣的可能性;3、互認標準的問題,到不同的城市都要去申請相應的憑證,這裡是有一個數據互認的問題。

covidcreds這個網站大概有一百多個全球機構去嘗試在用數字身份作為基礎,去解決這樣一個問題。就採用剛才那套數據模型來實現對個人健康信息的管理和認證。

應用2:網絡應用登錄

這個很好理解,比如說有個區塊鏈賬戶,就可以有它來登錄傳統的應用。如果我是一個應用開發者,也可以去選擇允許一個區塊鏈賬戶來登錄,這個賬戶是不需要再註冊的,具體項目在這裡就不展開了。

應用3:賦能電子政務

比如說出國去辦簽證,可能要提交很多資料,非常麻煩。其實現在歐盟已經提供了相應的電子化流程,在後面會相應展開。

應用4:隱私數據保護

這裡提到一個項目叫Maskbook,大家可能聽說過,它可以讓你在傳統的社交網絡上去公開加密過的信息。比如說我在微博上發一條消息,是加密的,別人是看不到或者看不懂的,看到一串亂碼,但是我選擇分享的人,因為擁有解開這個消息的密鑰,就可以解開這個信息,通過這種方式來保護隱私。

與此同時,數字身份也面臨著很多挑戰:

挑戰1:技術層面。如何實現信息的有限披露?這個在技術上是比較難的點,也有很多相關密碼學的研究。密鑰代表你是這個身份的主人,怎麼去存儲它呢?萬一丟了怎麼辦,這一系列的問題有很多解決方案在探討。

挑戰2:基礎設施層面。首先,相關的標準現在還沒有建立。其次,目前的區塊鏈設施,不管是公有鏈也好,還是聯盟鏈也好,尚不能去承載大規模的應用。同時,比如說有不同的鏈,鏈與鏈之間數據交換的標準也需要去討論。

挑戰3:法律政策層面。剛才也說到歐盟在電子政務領域的嘗試,如果沒有相應的法規,沒有相應的對數字身份和可驗證憑證的一些定義,以及給予它相應法律的支持,那這些應用也是很難推廣。

最後給大家介紹一些行業內領先的機構和全球化的組織,包含標準化組織和技術及產業聯盟。

標準化組織

第一,是eiDAS,歐洲電子簽名及信任,這個是歐盟實施跨境身份互認和開展數字信任服務,推進數字單一市場的關鍵支柱,現在已經有6個國家,包括德國、意大利、愛桑尼亞、西班牙、克羅地亞、盧森堡。可以用這個國家eID來訪問。歐盟其他的會員國也必須是承認相應的eID,在一些政務領域就必須要提供原來的那些紙質證件。

第二,就是剛才提到的W3C的WG,在之前它還是一個社區工作組,現在已經是正式的工作組了。這個是剛剛下午截的圖,是兩天前才更新的,大家一直在討論DID應該包含哪些內容、數據的格式是怎麼樣的。這裡有很多的區塊鏈公司,也在貢獻自己的一些思考。

技術及產業聯盟

第一,更像社區形式組織的,叫DIF(分佈式身份基金會),這是一個開放社區,裡面有很多機構,現在應該有七八十家吧,MYKEY也是最近幾個月前加入了。它有幾個工作組,包括存儲、隱私、認證等等,這些工作組中大家會去討論技術規範以及可供參考的實踐方式,討論產業之間的生態夥伴怎麼去協作。這裡包含了一些像微軟、IBM這樣的科技巨頭,也有很多區塊鏈公司,也有像萬事達這樣的金融公司,所以大家中間會產生很多新的想法。

第二,Hyperledger Indy,超級賬本。超級賬本的一個子項目,它是一個分佈式身份管理的技術平台,會提供一些相應的工具、樣板庫以及模塊化組件,去幫助其他項目來構建自主權身份系統。

第三,分佈式數字身份產業聯盟,大概是兩週前成立的,是國內17家單位聯合發起的,包括百度等等。這些企業聯合起來會促進數字身份的行業應用,搭建中國的數字身份網絡。它們有一個白皮書,預計在今年的三季度發表,到時候大家可以去關注。

最後對今天的分享做總結:

第一,數字身份是重塑數字世界信任的重要基礎設施,能提高使用互聯網的便利,也可以更好的保護用戶隱私。

第二,目前全球各國、重要行業組織、公司都重視數字身份的發展。

第三,區塊鏈有助於數字身份的持久化的登記和驗證。

第四,數字錢包作為數字身份的載體,有助於數字身份的推廣和應用。

第五,目前數字身份仍然面臨著技術、基礎設施以及法律法規的諸多挑戰。

也歡迎大家參與到其中討論,與我們共同去打造更好的互聯網,重塑互聯網的信任。最後謝謝大家,這是我今天的分享。

互動問答

Q:數字身份真的需要區塊鏈嗎?

姚翔:剛才說到數字身份需要有一個註冊器,就說身份得註冊在一個地方,目前來看區塊鍊是一個比較好的註冊平台,因為如果沒有這樣一個地方去註冊,只能依賴一個中心組織去註冊身份,同時要去查詢身份對應的信息。

有這樣一個組織當然是好,但目前來看,這可能還會存在一些問題。比如說像推特黑客攻擊事件,雖然有身份,但是沒有在一個地方登記,其他人並不知道你這個身份的存在,就沒有辦法去和你溝通,這是我覺得區塊鏈存在的意義。

反過來說,數字身份對區塊鏈有什麼意義?我覺得這個也是非常重要的。我舉個例子,比如說在區塊鏈上要去持有股票,實際上是要有相應資質的,不可能說任何一個人都可以去持有。那這些資質怎麼在區塊鏈上進行認定呢?必須要有相應的身份標準,必須要有數據的檢查標準,一個是身份,一個是可驗證憑證。可能就需要有一個可信的機構,給這個身份頒發一個可持有股票的憑證,有這個憑證以後就可以在區塊鏈上持有對應的資產。

Q:數字身份的發展經歷了哪幾個階段? DID現在其實也有很多科技巨頭已經在佈局,可以談一下您的看法嗎?

姚翔:我覺得現在還是在業態非常早期的時間,我可能沒有辦法去給出一個很準確的定義。其實今天我引用的很多定義都是由權威組織給出的,我想談一些自己的看法。

回想最開始上互聯網,可能去使用論壇,非常簡單,只需要輸入一個用戶名、密碼就可以完成註冊,如果忘記了那沒有辦法,因為根本就沒有辦法來鑑別你是“你”,這是最簡陋的階段。

後來發現可以有郵件、手機號,可以和名稱去綁定,如果密碼忘記了可以找回。一直到現在可以用微信賬戶去登錄各個論壇、應用,但這些都不是自主權身份,你的身份都是由相應的應用來管理,它隨時可以撤銷你對這個服務的訪問。

只有當進入到一個大家都擁有自己的密鑰,對身份的認證都是基於對用戶是否擁有公鑰所對應私鑰的認證,方法也就是通過數字簽名來鑑別,這可能會邁向第二階段。

第二個階段我認為就是自主權身份的階段,現在才剛剛開始。當這個做到很好的時候,可能每個人都有自己的密鑰,這樣之後我們會需要解決更多的數據誤操作性等問題。比如說不同的區塊鏈之間怎麼互相訪問,也不一定是區塊鏈,比如自己的密鑰,但是在一個中心化的機構登記,這也沒有問題,但它怎麼去和其他的系統之間產生互認,如果是不同的密碼體系,這中間怎麼去處理,這是接下來長期內的一些挑戰。

關於DID的佈局,我們也看到像微軟、IBM,也包括一些金融機構,大家開始在這個領域去發力。大家都看到了,在互聯網的前面一個階段,賬戶系統變成了非常重要的事情,因為賬戶是用戶進入互聯網非常重要的入口,這個入口可以帶來非常多的想像空間。比如說這些巨頭,不管是微信也好,還是谷歌、facebook也好,擁有了賬戶就擁有了流量,擁有了流量就擁有了無限的可能性。

為什麼別人會接受微信登錄,而不會接受一個很小的論壇去登錄,就是因為它這邊天生有非常多的用戶,就有很多業務上的議價權。

在接下來這個階段,即使是分佈式身份或者自主權身份,仍然會有這樣一些訪問下一代互聯網設施的用戶端產品,這些產品可能是新商業模式的入口點,所以我覺得很多機構在這方面表示重視,可能是出於這方面的原因。但其中會有很多變化,因為原來那套認證用戶的模式可能會發生變化。

Q:數字身份和傳統身份,您覺得本質區別是什麼?

姚翔:傳統身份和數字身份我覺得在數字世界裡,首先是完全對傳統社會的映射,在數字世界裡有這個人。比如說我在這裡是用這個ID和大家溝通,我也有我的微信,這其實是有個映射的過程。但它會有一個問題,這個映射怎麼保證是準確的?比如說像推特黑客攻擊事件,他發了個消息,你會覺得就是他發的,因為你沒有辦法去認證,但如果他是公佈了自己的公鑰,就所有人都可以去檢查這個消息是不是他發的,因為可以通過驗證簽名,即使攻擊者有辦法去攻擊到中心化的賬戶,但因為這個消息是沒有簽名的,所以是沒有辦法偽造。

當然這不是說數字身份和傳統身份的本質區別,我們要做自主權數字身份的目標,我們要把真實的意圖去表達出來,不要有偽造、隱私的洩露,其實我們是更好的去還原現實中的場景。但同時又有一些不一樣的地方,比如現實生活中去簽個名,這總體來說還是比較好偽造的,不太好鑑別。但在數字世界裡這件事情變得比較簡單,很難去偽造,或者說就是不可能去偽造。在傳統世界可以去臨摹筆跡,當然可能會有專家來檢查,但對普通人來說是沒有辦法分辨的。在數字世界裡這個就變得很簡單,可以很直接的去判斷,這個行為是不是由真實的人做出的,而不是別人冒用。  

Q:您認為數字身份最適合應用在什麼領域?

姚翔:其實數字身份會和很多東西都相關,因為現實生活中身份就是自己,和世界萬物發生交互,什麼時候要檢查你是“你”,這時候身份就會有用。在互聯網裡面,我覺得什麼應用是最需要去不停驗證用戶身份的,可能比如說社交網絡、金融系統,都是非常需要去檢查用戶是不是他的真實行為。