Litentry 協議解析(首節) :打造一個區塊鏈 DID 聚合器

在這篇文章,我們將會基於 W3C 的標準提出一個跨系統的 DID 聚合(DID Aggregation)的概念,並且介紹一個可以給不同網絡系統的 DID 數據提供互操作性和流動性的 DID 聚合協議。

術語解釋:

Decentralized Identifier (DID): Decentralized Identifier (去中心化身份識別),是一種全球獨立的永久身份識別方法,由密碼學技術生成或(和)見證,無需任何中心化見證機構。 ——萬維網聯盟 W3C 標準定義

Decentralized Identity: Decentralized Identity (去中心化身份)通過使用 DID 識別方法在網絡中產生個人數據後所構成的數字身份。

DID Aggregation: DID Aggregation (DID 身份聚合)在網絡中將屬於同一個用戶的、散落在不同系統中的去中心化身份聚合成一個綜合的去中心化身份。

爲什麼需要 DID 聚合身份?

DID 聚合身份是一個將不同去中心化身份綁定到一起的過程,同時聚合身份也是 DID 的新一層意義。在數字身份的應用場景中,我們通常需要從一些他方系統中的獲取用戶身份信息,因爲區塊鏈系統本身提供的信息是有限的。比如我們需要評估一個用戶的信用,需要非常多的個人數據支撐,特別在去中心化的網絡裏,系統本身不佔有用戶的數據,更不可能獲取全面的個人數據,這時候就會需要很多可靠數據源去支撐有效的身份信息計算。因此,除了提供獨立的身份賬戶之外,DID 更重要的使命是重新建立互聯網身份數據的主權和使用秩序,讓更豐富的身份信息在開放網絡中被挖掘出來。

然而不同去中心化系統會出現不同的 DID 標準,因爲應用場景是差異化的,所以不同的應用會設計不同的 DID 識別方法。這樣做的好處是能快速實現身份的去中心化,但壞處是導致了身份賬戶在不同的系統之間喪失了互操作性,身份數據不互通的問題,形成數據孤島。同時,由於數據主權的保護,從一個去中心化系統中獲取身份信息還涉及到用戶授權的過程,使得身份數據更難在不同系統之間流動。當我們想在去中心化的系統中拓展更寬的應用場景時,比如在 DeFi 中引入信用借貸、在鏈上治理中引入聲譽信息,在社交媒體中引入去中心化的個性化推薦算法等等,我們可能需要從不同的系統用引入身份信息,這時問題就會尤其突出,因爲我們所需要的數據可能存在於另一個網絡或者系統,而去讀取這些數據涉及了 DID 驗證、應用代碼解析等複雜的工作,特別當所需數據源變成多個時,這會變成一個非常頭疼的事情。

這個問題會隨着去中心化應用的發展變得越來越明顯。我們預估最先對解決方案產生需求的領域會在去中心化信用借貸、去中心化自治組織、去中心化個性化推薦當中。爲了保持去中心化、避免單點故障,dApps 在獲取 DID 數據時,會需要數據源也保持去中心化,但是網絡中並不存在現成的、去中心化的身份數據源。

具體來講,當一個應用需要獲取可靠的 DID 數據時,它們會面臨以下問題:

  • 缺乏數據源

  • 在數據註冊中心(Data Registry)中缺乏數據接口

  • 需要解析每一種 DID 識別方法並且驗證可信聲明

  • 需要對新對數據結構進行學習和適配

  • 需要忍受單一數據服務終端帶來的單點故障

目前,很多應用都會選擇自己去開發相關的功能組件去滿足這些需求,但是這非常耗費精力和成本,也不是項目本身主要應該做的事情。

更糟糕的是,我們看到很多去中心化應用都會自己創建一套獨立的 DID 機制,而大部分的這些機制所達到的效果是重複的。比如在證明一個人與某一個 Twitter 賬戶的控制權時,我們通常採取的方法是讓這個人用 Twitter 賬戶發佈一條指定的消息,但是同樣的驗證方法就在不同的去中心化網絡比如 Keybase 和 Polkadot Registrar 上面被重複開發。如果我們能從一些已驗證並且可信的數據源中取這些數據,是不是方便很多?

從另一個角度看,用戶在去中心化的系統中已經產生了很多個人身份數據。如果我們能找到一種方式把這些數據關聯起來,讓個人身份數據能夠在不同的系統中流動,同時保護用戶的數據主權和隱私,這將能夠給互聯網帶來更的廣闊的發展空間,並且這纔是 Web3.0 應有的樣子。而區塊鏈的出現正好提供了很好的前提,區塊鏈是現成的去中心化數據註冊基礎設施(Decentralized Data Registry),能給不同系統的 DID 數據提供索引、調用的系統環境。

什麼是 DID 數據?

Web3.0 中所有的數據都將需要被索引和關聯,而 Litentry 所提供的是其中一部分數據的索引和關聯,這一部分數據就是 DID 數據。

在去中心化系統中,我們把可被證明屬於某一個獨立身份(Self-sovereign Identity)的所有數據稱爲 DID 數據。這些數據可能可以被直接理解爲身份數據,也可能需要通過二次計算後纔跟“身份”產生關聯。比如,一些爲提供 DID 服務的區塊鏈應用所產生的就是直接的身份數據,像你的鏈上駕照、或你的鏈上 COVID-19 核酸檢測結果就是直接的 DID 數據;而潛在的身份數據,則源於我們在其他去中心化應用中產生的使用數據,這些數據將需要計算分析之後纔會變成與“你”相關的身份信息,比如你在去中心化協作系統中的代碼貢獻量、在去中心化自治組織(DAO)中的投票積極度等等。

無論是直接的 DID 數據,還是潛在的 DID 數據都是有價值的。我們認爲,爲 DID 數據提供跨系統的索引流動性是 Web3.0 網絡的必要構成部分,它將能提供強大的數據基礎,加速應用發展的爆發,甚至能提供前所未有的互聯網價值——the Web of Trust。因爲,去中心化系統中所有的數據都是可驗證的,不可篡改的,代表了這些數據的產生和存在是可信的。而在中心化的現有網絡裏面,用戶的數據主權集中在服務端的控制者手上,這意味着無法驗證、隨時可能被篡改。

現有的身份關聯解決方案

爲了使用戶在 Web3.0 網絡中獲得一個完整的身份,我們需要將不同系統中零散的身份信息關聯起來,形成 Web3.0 身份的同一性。在身份關聯的過程中,我們需要解析不同的 DID 識別方法。一個潛在的解決方案是制定標準化的通用數據交換語言,比如 Presentation Exchange,一個給不同系統交換可信憑證時提供標準數據格式的一個協議。Presentation Exchange 的設計者提出,這個協議通過創造一種不同身份系統交換身份證明時的通用語言,從而使得一個第三方應用在從其他協議獲取 DID 數據時懂得如何定義它的證明要求,同時另一方面證明的持有者知道如何提交這個數據。Presentation Exchange 是一個能減少身份系統之間 DID 數據摩擦、幫助實現 Web3 身份同一性的一個辦法。但是對於一門計算機語言來說,從創造、推廣到成爲通用需要經過很長一段時間,並且在這門語言還沒有成爲通用之前,身份數據在不同系統中都是不自由可流動的。如果我們擁有一個去中心化的數據中轉站,能夠一站式地解決獲取任意 DID 數據的問題,是不是很理想?

接下來我們將要介紹一個兼容任何 DID 標準的,開放、且去中心化的聚合性 DID 解析(resolving)模型,這個模型由一個基於 Substrate 的區塊鏈、一個分佈式的 DID 驗證網絡、和一個模塊化的 DID 數據交換協議組成,我們統稱爲一個 DID 聚合器。它將允許任何人上傳新的 DID 身份證明算法並且共享到網絡,並且提供 DID 數據索引、DID 驗證和關聯、DID 數據聚合的一站式服務,能夠允許應用輕鬆地獲取用戶在 Web3 網絡的整合身份數據,並且保證了數據的可靠性、安全性和完整性。

設計目標

開放協議

這個聚合器將會是開源的,並且允許任何人往系統中添加新的 DID 驗證算法併產生去中心化的信任憑證。網絡中所有執行的算法將會被記錄至區塊鏈,並且通過 DAO (去中心化自治組織)一個算法可以被標記爲可信任的。

去中心化

爲了讓協議開放給所有無論是否有技術背景的人去使用,讓他們可以使用不同的 DID 或者讓他們的應用可以認證任何未知的 DID 機制,我們需要引入一箇中間人去接替身份驗證的工作,但這很容易導致單點故障。

爲了在 DID 驗證的過程中排除中心化機構或者避免單點故障,我們會建造 PoS 區塊鏈上一個去中心化的驗證節點網絡,同時這個區塊鏈會管理 DID 驗證需求請求者與驗證者雙方的交易模型。這個網絡將會通過鏈上執行的合約保證驗證節點的誠實。

驗證節點網絡會處理服務請求者的 DID 驗證請求,並且返回一個可靠的 DID 信任憑證。驗證的過程將會由網絡中一組隨機的驗證節點執行,經過一個拜占庭容錯共識算法來保證結果的可靠性。

容易驗證

需要驗證可信聲明當時候,我們只需要簡單地驗證可信聲明文件中驗證者的簽名即可。所有合格的驗證者身份都會註冊在區塊鏈上,並且受帶有懲罰機制的 PoS 協議和一個社區選舉的議會管治。

節點網絡將能夠識別區塊鏈上的可信 DID 驗證機制,並且將其他的機制定義爲未知。除非服務需求者本身信任未知的機制,否則未知的 DID 驗證機制默認是具有風險的。在這種情況下,節點會根據服務需求者選定的 DID 驗證機制來計算結果。

比如,在 DID 聚合器兼容來以太坊賬戶驗證方法之後,我們將可以在 Litentry 上證明自己的以太坊賬戶所有權,同時他人可以輕鬆地通過驗證網絡節點的簽名即可以辨認所有權的真僞。類似的,如果我們需要證明一個波卡賬戶所有權,相對應的賬戶驗證方法需要被添加到 DID 聚合器,上傳到網絡並請求節點網絡進行驗證。所上傳的驗證代碼需要經過社區投票決議才能被網絡承認爲“可信的”,否則第三方將需要自行認證這些代碼的安全性或代碼發佈者的信譽才能相信計算結果。

鏈上數據最少化

鏈上將保存最少可行的用戶數據,即鏈上只會保存 DID 賬戶之間的關聯關係,並且數據經過加密。其他的 DID 計算數據將會實時地直接返回給服務請求者,而不是保存在節點網絡。我們之所以需要保存 DID 賬戶關聯關係,是因爲避免讓用戶在訪問的時候每次都重新關聯他們的區塊鏈賬戶。

隱私保護

在去中心化身份驗證的過程中,DID 賬戶關聯關係不可避免地會暴露給驗證節點。我們相信隱私和便利之間會有一個平衡。在保證功能可用和去中心化的前提下,我們會在這個環節採用一些隱私計算技術,比如 TEE 實現和零知識證明。另一方面,協議中我們將嘗試採用 ID 混淆技術。ID 混淆技術可以隱藏身份憑證擁有者的 ID 或者服務請求者的 ID。這樣驗證節點將不會知道 DID 數據的真正擁有者和數據的去向,從而失去作惡的動機,比如發送一些廣告或詐騙信息。

民主管治

我們需要所有的網絡節點共同協作去產生可信的輸出結果,使 DID 聚合的結果變得可信。由於驗證節點是服務提供者,並且會得到工作獎勵,它們有義務去提供更優的產品。而身份憑證的消耗者是服務請求者,服務請求者有權參與決定協議的迭代和更新。

因此,聚合器中的所有函數化功能都能夠被一個 _ 去中心化自治組織(DAO)_ 所修改。這個社區可以通過投票升級協議且把代碼更新到網絡。比如社區可以決定在計算信用的時候,如何去計算來自不同網絡的交易源數據的權重;再比如社區可以決定哪一種 DID 驗證方法是可信的,那麼網絡就會自動辨認可信的算法。這種方式可以提供高效的信任環境,用戶只需要知道 DAO 組織能有效爲網絡安全作出最優化決策,也可以親自參與到治理決策裏面來,即可以放心信任節點網絡所計算的身份憑證的有效性。

互操作性

這個 DID 聚合器將爲從不同身份系統中集成 DID 機制、並提供不同系統中身份數據的流動性而設計,因此我們需要保持良好的互操作性。我們將會採用互操作性強的標準,以更方便集成現有的爲提供互操作性而設計的工具和軟件庫。

總結

總的來說,這個 DID 聚合器將建立一個去中心化的超級 DID 容器。它將允許使用者通過組合多種 DID 解析方法來計算更深層次的去中心化數字身份(比如“治理積分”、“DeFi 信用積分” 等),也可以成爲開發者添加新的身份算法並且從網絡中獲取可信聲明的工具(比如獲取“我是長期流動性提供者”證明),允許任何人通過區塊鏈驗證自己的身份,用於各種鏈上治理,DeFi 等數字身份應用場景。下一節我們將會展示這個 DID 聚合器的技術架構,敬請關注。


Litentry 協議解析(首節) :打造一個區塊鏈 DID 聚合器

關於 Litentry

Litentry 是一個去中心化的身份聚合器,以基於 Substrate 構建的區塊鏈和分佈式的去中心化身份(DID)驗證網絡爲核心特色。DID 驗證網絡可以爲任何區塊鏈上的 DID 應用程序提供去中心化、可驗證的身份聚合服務,讓 dApp 能夠通過可信任的方式,從多個服務端點實時獲取屬於同一個身份控制者的 DID 數據。Litentry 的身份聚合器承擔瞭解決不可知 DID 機制所涉及的冗餘處理、代碼等難題,並充當了 Web 3.0 網絡中去中心化信用計算和身份生成的底層驅動協議。

Website: litentry.com
Medium: litentry.medium.com
Telegram:t.me/Litentry
Twitter: @litentry
Github: https://github.com/litentry

🍄 Litentry 正在招聘:「平面設計師」與「產品市場策劃」,希望熱愛 Web3.0、英語水平良好、富有創作精神的優秀小夥伴加入我們,歡迎感興趣的同學提交簡歷至郵箱 info@litentry.com

(獲取 JD 請訪問:https://docs.google.com/document/d/1dr77wFiEyE-Zi5v3SYZwTK1nGKhBuTz4Iz3wMezE770/edit?usp=sharing)

【掃碼加入 Litentry 官方社羣】

Litentry 協議解析(首節) :打造一個區塊鏈 DID 聚合器

期待我們更多的更新,Stay tuned!

來源鏈接:mp.weixin.qq.com