身份(Identity)管理是區塊鏈應用的核心元素。在一個不可信、匿名的分佈計算生態中,要實現去中心化身份管理並非一件容易的事情。Sidetree是一個基於現有區塊鏈平臺的第二層(L2s)協議,專門用於去中心化身份管理。微軟最新開源的ION項目,就是Sidetree協議基於比特幣區塊鏈的一個實現。本文將分6個部分介紹Sidetree去中心化身份管理協議:DID的核心要素、Sidetree協議的起源、概述、工做原理、設計約束與實現進展。git
去中心化身份管理的挑戰並非單一模塊的問題。在去中心化應用(DApp)中,一個身份的生命週期中,有一些須要考慮的關鍵因素:github
2017年,去中心化身份組織(DIF)的一些成員開始討論如何在全球級別實現去中心化身份系統。對於大多數去中心化身份系統而言,最下面的一層是區塊鏈/帳本,被稱爲第一層或L1,用來以某種形式支持去中心化的公鑰體系(Decentralized Public Key Infrastructure)以及W3C去中心化身份(DIDs:Decentralized Identifiers)。網絡
區塊鏈的的可伸縮性不是小問題,可是目前已經存在一個有前途的思路來解決基於 區塊鏈的系統的伸縮性問題:第二層協議或L2s,例如:狀態通道、側鏈和比特幣 閃電網絡。L2s經過肯定性(Deterministic)處理與交易方案來實現可伸縮性,這些交易是在區塊鏈以外完成的,只須要在與所依託的底層區塊鏈交互時進行極少的共識處理。ide
要實現去中心化身份管理,就須要一個大規模運行的系統,同時具有一些核心特性,例如肯定性狀態解析以及差分持久化。在過去的18個月中,IDF成員間的思想交流最終造成了一個完整的第二層協議:Sidetree。模塊化
Sidetree協議自己並非去中心化身份(DID)方法,它由一組代碼層級的組件構成,包括肯定性處理邏輯、內容尋址存儲抽象以及能夠部署到第一層的去中心化帳本(例如:公有鏈)上的狀態驗證過程,從而實現無需許可的、第二層DID網絡。經過使用特定鏈相關的適配器,Sidetree協議能夠用來在不一樣的鏈上建立不一樣的第二層去中心化身份網絡,這些特定鏈的適配器負責實現與底層區塊鏈的讀寫交互。區塊鏈
不管底層採用哪一種區塊鏈,Sidetree協議的幾乎全部實現代碼都保持一致,這使得 它能夠適用於多種區塊鏈平臺。下面是Sidetree系統的整體結構,以比特幣做爲目標區塊鏈,不過如前所述,這也適用於其餘區塊鏈:scala
Sidetree協議基於一組模塊化組件實現,最重要的包括:翻譯
Sidetree內核 / Sidetree Core : Sidetree內核是主要的邏輯模塊,它監聽來自底層區塊鏈的交易輸入,並使用CAS模塊(下面介紹)提取其中的DID操做,而後組合/驗證每一個DID的狀態。設計
內容尋址存儲 / Content Address Storage : CAS(Content Address Storage)模塊是一個基於哈希的存儲接口,網絡中的第二層節點使用該接口來交換彼此識別的DID操做批次,以便進行本地持久化和網絡傳播。該接口抽象自所使用的特定CAS協議,可是值得指出的是,DIF成員已經爲此功能選擇了IPFS。blog
區塊鏈/帳本適配器 / Blockchain/Ledger Adapter : 適配器中包含了任何須要讀寫特定區塊鏈的代碼,以便解除Sidetree主體對特定區塊鏈的依賴。不一樣的底層鏈須要分別實現不一樣的適配器。
基於Sidetree的L2節點按以下步驟來建立、讀取和處理DID操做:
要將批操做寫入基於Sidetree的L2網絡的節點首先聚集儘量多的DID/DPKI操做(基於肯定性協議規則肯定的上限),而後建立一個L1鏈上交易並在交易中嵌入該操做批次的哈希。
DID操做的源數據由發起節點本地存儲,並推送到IPFS網絡。當其餘節點獲知嵌入Sidetree操做的底層鏈交易後,這些節點將向原始節點或其餘IPFS節點請求該批次數據。
當一個節點收到某個批次後,它會將元數據固定到本地,而後Sidetree核心邏輯模塊解壓批次數據來解析並驗證其中的每一個操做。目標鏈的區塊/交易體系是Sidetree協議惟一須要的共識機制,不須要額外的區塊鏈、側鏈或諮詢權威單元來讓網絡中的DID達成正確的PKI狀態。
下面是關於批次與操做嵌入目標區塊鏈的更詳細的示意圖:
Sidetree協議在設計時作出了一些關鍵的假設:
DIDs不可轉讓,協議沒有提供一個邏輯實體轉讓、購買或獲取其餘邏輯實體的DID的途徑。這對於DID/DPKI用例是可行的,可是不適用於資金的雙花(double spend -- 討厭這個名詞的翻譯,一種輕佻的感受)。
能夠延遲揭示嵌入的批次數據,基於肯定性規則集進行處理。
DID狀態彼此獨立,依次一個DID的持有者智能影響它本身的DID的狀態。
目前在DIF成員中,有兩個團隊分別使用Sidetree協議爲比特幣和以太坊開發L2層的去中心化身份網絡。微軟主要聚焦於比特幣網絡,而Transmute Industries則與ConsenSys合做在開發以太坊版本。你能夠在這裏 查看微軟ION項目的實現代碼。
原文: The Sidetree Protocol: Scalable DPKI for Decentralized Identity
匯智網 / Hubwiz.com 翻譯整理,轉載請標明出處。