身份是我們所有人每天(有時是每天的每一刻)如何相互互動的關鍵部分。有時在我們忘記密碼的時候需要一步步找回密碼。
因此無論如何,為使用者控制線上身份而建立通往dweb成功的基本要求。
但是,身份認證很難。對於可互動操作的分散式而言,沒有簡單的解決方案。隱私,安全性,有效性,訪問控制,監視,GDPR,KYC,匿名。
這就像《盜夢空間》,以上因素都是雷區,這些雷區到處都是牽涉到身份認證專案本身。
但是身份認證系統並不是沒有希望。多年來,分散身份基金會(decentralized Identity Foundation)一直在應對這一挑戰,像Rebooting the Web of Trust這樣的組織也是如此。
還有一直努力在IPFS,如上面構建分散的身份系統IP-ID,Nomios.io,THE IPFS IDM以及新加入的Ceramic Network。
但是,今天我們正在慶祝一個分散的身份協議和服務的釋出是在一個不太可能的:Microsoft。
在過去的幾年中,Microsoft在開放原始碼工具和服務中的地位越來越高,並且現在已經推出了基於標準的分散式身份認證服務ION。
ION已經開發了一年多,它是Sidetree(與區塊鏈無關的分散式PKI協議)的例項實現,它在比特幣區塊鏈上執行。
並且交易資料是儲存在IPFS上的。
像HTTP一樣,IPFS也沒有在協議中內建使用者身份。但是,IPFS提供了HTTP無法實現的彈性,驗證和麵向未來的功能:
- 內容定址的IPFS意味著ION節點從區塊鏈網站或其他潛在的公共網路拉出CID時不需要關心其中的交易資料位置。這意味著他們可以切換伺服器或資料中心,或者新的儲存節點可以聯機而無需任何程式碼或基礎架構更改,也不需要更改地址。
- ION節點也不必擔心資料被操縱或篡改,因為基於雜湊的定址意味著對資料的密碼驗證內建在網路請求本身中。
ION中的IPFS
ION是使用JavaScript(特別是TypeScript)實現的,因此微軟使用js-ipfs作為Node.js服務是很有意義的。ION彙總了一批身份交易,透過其IPFS節點將其釋出,然後將該批次的地址(CID)寫入區塊鏈。
為了滿足Microsoft使用js-ipfs作為長期執行的流程的需求,我們向所有API新增了可取消的請求,以確保隨著請求的產生和處理能正確清理:基礎物件,記憶體,檔案以及建立的其他資源以及向下的堆疊。
非常感謝Alex Potsides(@achingbrain)實現了這一長期需要的功能,該功能已在js-ipfs 0.44.0中提供。
對於開發人員來說,這看起來像是可以根據請求設定超時的功能:
const cid = new CID()
try {
await ipfs.get(cid, {
timeout: 1000 // abort after 1000ms
})
} catch (err) {
console.err(err) // err is a TimeoutError
}
立刻嘗試ION
這是ION的公開測試版,現已在區塊鏈上實時執行。
在釋出會上,微軟的ION專案負責人丹尼爾·布赫納(Daniel Buchner)解釋瞭如何在今天的應用程式和服務中執行節點並使用分散身份。
該專案是開源的,建立在開放標準的基礎上,您可以開始使用執行自己的節點。
因此無論如何,為使用者控制線上身份而建立通往dweb成功的基本要求。