1. 程式人生 > >區塊鏈身份協議Sidetree

區塊鏈身份協議Sidetree

身份(Identity)管理是區塊鏈應用的核心元素。在一個不可信、匿名的分佈計算生態中,要實現去中心化身份管理並不是一件容易的事情。Sidetree是一個基於現有區塊鏈平臺的第二層(L2s)協議,專門用於去中心化身份管理。微軟最新開源的ION專案,就是Sidetree協議基於比特幣區塊鏈的一個實現。本文將分6個部分介紹Sidetree去中心化身份管理協議:DID的核心要素、Sidetree協議的起源、概述、工作原理、設計約束與實現進展。

1、去中心化身份管理的核心要素

去中心化身份管理的挑戰並不是單一模組的問題。在去中心化應用(DApp)中,一個身份的生命週期中,有一些需要考慮的關鍵因素:

did key elements

  • 表示:用來描述主體身份的可遷移表示
  • 持久化:用來儲存、提取主體身份的機制,同時還需要保持其隱私
  • 隱私:在去中心化賬本中保護主體身份的模型
  • 斷言: 確定主體身份的特定語句
  • 解析:解析、驗證特定主體身份的機制

2、Sidetree協議的起源

2017年,去中心化身份組織(DIF)的一些成員開始討論如何在全球級別實現去中心化身份系統。對於大多數去中心化身份系統而言,最下面的一層是區塊鏈/賬本,被稱為第一層或L1,用來以某種形式支援去中心化的公鑰體系(Decentralized Public Key Infrastructure)以及W3C去中心化身份(DIDs:Decentralized Identifiers)。

區塊鏈的的可伸縮性不是小問題,但是目前已經存在一個有前途的思路來解決基於區塊鏈的系統的伸縮性問題:第二層協議或L2s,例如:狀態通道、側鏈和比特幣閃電網路。L2s通過確定性(Deterministic)處理與交易方案來實現可伸縮性,這些交易是在區塊鏈之外完成的,只需要在與所依託的底層區塊鏈互動時進行極少的共識處理。

要實現去中心化身份管理,就需要一個大規模執行的系統,同時具備一些核心特性,例如確定性狀態解析以及差分持久化。在過去的18個月中,IDF成員間的思想交流最終形成了一個完整的第二層協議:Sidetree

區塊鏈開發課程精選

3、Sidetree協議概述

Sidetree協議本身並不是去中心化身份(DID)方法,它由一組程式碼層級的元件構成,包括確定性處理邏輯、內容定址儲存抽象以及可以部署到第一層的去中心化賬本(例如:公有鏈)上的狀態驗證過程,從而實現無需許可的、第二層DID網路。通過使用特定鏈相關的介面卡,Sidetree協議可以用來在不同的鏈上建立不同的第二層去中心化身份網路,這些特定鏈的介面卡負責實現與底層區塊鏈的讀寫互動。

無論底層採用哪種區塊鏈,Sidetree協議的幾乎所有實現程式碼都保持一致,這使得它可以適用於多種區塊鏈平臺。下面是Sidetree系統的總體結構,以比特幣作為目標區塊鏈,不過如前所述,這也適用於其他區塊鏈:

sidetree arch

Sidetree協議基於一組模組化元件實現,最重要的包括:

  • Sidetree核心 / Sidetree Core : Sidetree核心是主要的邏輯模組,它監聽來自底層區塊鏈的交易輸入,並使用CAS模組(下面介紹)提取其中的DID操作,然後組合/驗證每個DID的狀態。

  • 內容定址儲存 / Content Address Storage : CAS(Content Address Storage)模組是一個基於雜湊的儲存介面,網路中的第二層節點使用該介面來交換彼此識別的DID操作批次,以便進行本地持久化和網路傳播。該介面抽象自所使用的特定CAS協議,但是值得指出的是,DIF成員已經為此功能選擇了IPFS。

  • 區塊鏈/賬本介面卡 / Blockchain/Ledger Adapter : 介面卡中包含了任何需要讀寫特定區塊鏈的程式碼,以便解除Sidetree主體對特定區塊鏈的依賴。不同 的底層鏈需要分別實現不同的介面卡。

4、Sidetree協議工作原理

基於Sidetree的L2節點按如下步驟來建立、讀取和處理DID操作:

  1. 要將批操作寫入基於Sidetree的L2網路的節點首先彙集儘可能多的DID/DPKI操作(基於確定性協議規則確定的上限),然後建立一個L1鏈上交易並在交易中嵌入該操作批次的雜湊。

  2. DID操作的源資料由發起節點本地儲存,並推送到IPFS網路。當其他節點獲知嵌入Sidetree操作的底層鏈交易後,這些節點將向原始節點或其他IPFS節點請求該批次資料。

  3. 當一個節點收到某個批次後,它會將元資料固定到本地,然後Sidetree核心邏輯模組解壓批次資料來解析並驗證其中的每個操作。目標鏈的區塊/交易體系是Sidetree協議唯一需要的共識機制,不需要額外的區塊鏈、側鏈或諮詢權威單元來讓網路中的DID達成正確的PKI狀態。

下面是關於批次與操作嵌入目標區塊鏈的更詳細的示意圖:

embed

5、Sidetree協議的設計約束

Sidetree協議在設計時做出了一些關鍵的假設:

  1. DIDs不可轉讓,協議沒有提供一個邏輯實體轉讓、購買或獲取其他邏輯實體的DID的途徑。這對於DID/DPKI用例是可行的,但是不適用於資金的雙花(double spend )。
  2. 可以延遲揭示嵌入的批次資料,基於確定性規則集進行處理。
  3. DID狀態彼此獨立,依次一個DID的持有者智慧影響它自己的DID的狀態。

6、Sidetree協議的實現進展

目前在DIF成員中,有兩個團隊分別使用Sidetree協議為比特幣和以太坊開發L2層的去中心化身份網路。微軟主要聚焦於比特幣網路,而Transmute Industries則與ConsenSys合作在開發以太坊版本。你可以在這裡檢視微軟ION專案的實現程式碼。


原文:Sidetree - 去中心化身份管理