制 DID 若烹小鮮 教你六步生成自己的 DID

買賣虛擬貨幣
自從日前微軟宣佈推出去中心化身份識別系統,“去中心化身份”(DID)成為區塊鏈領域最火熱的概念之一。繼 “去中心化交易所”、“去中心化應用”之後,“去中心化”的戰火終於蔓延到了身份識別系統上,但絕大多數人對於這個全新的概念依然是一頭霧水。· DID 本質是什麼?· DID 是由什麼算出來的?· 計算 DID 的過程是什麼?雖然 DID 有各種各樣的應用場景,但 DID 本質上其實是一個地址。DID 和傳統的比特幣、以太坊地址的相似之處在於:它們都是根據一個私鑰算出來的地址。不同私鑰能生成同一個地址的機率在現實世界中接近於零。

而 DID 和傳統地址的區別在於,DID 的計算過程中加入了某些特定資訊,包括這個 DID 使用的加密演算法型別、雜湊演算法型別等。這些演算法型別作用於 DID 生成的不同步驟,如加密演算法是規定使用者私鑰和公鑰是如何計算的,雜湊演算法是規定使用者資訊被計算成雜湊的時候使用什麼演算法(之後會有詳細解釋)。DID 的所有者可以使用此 DID 執行各種操作,包括驗證身份、授權交易等。可以說,DID 將在未來成為網際網路基礎設施,任何需要授權或驗證的行為都可以透過 DID 完成。現在一般的授權驗證行為都是透過輸入密碼、提供有效證件,或透過第三方公證完成,而 DID 的普及將使得一切都可以在移動端用私鑰簽名完成,這將讓人們的數字生活,甚至線下的衣食住行都將得到極大便利。

功能如此強大的 DID,技術工程實現卻並不複雜。

其實,生成 DID 的過程,和下廚房烹飪一道菜的過程非常相似。需要準備如下:

· 廚具:生成 DID 需要的外部工具
· 食材:DID 計算的基礎原材料
· 烹飪方法:如何搭配這些廚具和食材,具體需要執行的步驟

接下來詳細解析如何透過六個步驟生成一個 DID,讓 DID 不再神秘。

一套廚具:簽名演算法、雜湊演算法、DID 型別

生成 DID 的第一步是選擇一套合適的廚具。這些資訊會嵌入在生成的 DID 中,這樣第三方驗證的時候,就知道應該選用對應的工具來驗證。

簽名演算法: 用於生成使用者的私鑰和公鑰的演算法。目前 Forge SDK預設支援兩個簽名系統選項:secp256k1 和 ed25519。

雜湊演算法: 用於計算資料雜湊的演算法。雜湊函式有點像黑盒子,它能將任意長度的資料轉換為固定長度的資料。對於相同的輸入,不同型別的 harsher 將具有不同的輸出。Forge SDK 的預設雜湊演算法是 SHA3 256。

DID 型別: 選擇完簽名演算法和雜湊演算法後,最後一個要選擇的是 DID 角色型別。這指定了 DID 的角色型別,告訴驗證方這個 DID 代表的是應用程式、個人還是裝置等。下面是我們當前支援的角色型別。

這三樣東西是我們生成 DID 時需要的廚具。優秀的壽司師傅總是離不開一把好刀,因為廚具會在對食材的每一次處理中留下痕跡;同理,我們選擇的廚具,也會在之後生成的 DID 中留下自己的影子。

食材:私鑰、公鑰

現在大家已經準備好必要的鍋碗瓢盆了,接下來讓我們看看如果要做一道 DID 大餐需要些什麼原材料。

最核心的食材是私鑰。私鑰是一組需要仔細保管的資料。任何持有你金鑰的人都可以重新生成你的錢包,並用錢包做包括轉賬、批准交易等各種事情,所以大家一定要小心保管好自己的金鑰資訊。

公鑰是根據加密演算法從私鑰計算出來的,通常由於第三方或公眾以驗證簽名。公鑰是公開的,所以如果別人知道了你的公鑰,但不知道你的私鑰,不會對你的資訊保安造成任何威脅。

一般來說,DID 的生成只需要公鑰。但是由於公鑰是從金鑰計算出來的,所以即使只給出金鑰,DID 也可以生成。也就是說,私鑰或公鑰任意提供一個,就可以生成 DID 了。但出於安全考慮,我們一般建議大家提供公鑰,而保管好自己的私鑰資訊。

作為 DID 的原材料,私鑰/公鑰直接決定了 DID 的內容,就像壽司使用的魚,決定了這道壽司是鰻魚壽司,三文魚壽司還是八爪魚壽司。

烹飪方法

介紹完廚具和原材料之後,我們來看看應該如何烹製這道 DID。

在我們介紹 DID 的烹飪方法前,請確定你已經準備好雜湊演算法、簽名演算法、DID 型別,並擁有了一組金鑰和公鑰。接下來按照烹飪方法的步驟,就可以得到一個 DID 了。

步驟 1
使用雜湊演算法為公鑰算一個雜湊值 hash2。

步驟 2
取 hash2 的前 20 個位元組作為 hash2,放置一旁待用。

步驟 3
在 hash2 前面新增 DID 角色型別位元組,得到 hash3。

步驟 4
使用雜湊演算法把 hash3 算出一個雜湊值,得到 hash4

步驟 5
將 hash4 的前 4 個位元組和 hash3 合併起來,生成 hash5。

步驟 6
使用比特幣 base58 方法對 hash5 進行編碼,得到 DID。

恭喜你順利生成了一個自己的 DID!

總結

現在你已經體驗了 DID 生成的全過程,一共只需要六步,比曹植的七步詩還少一步。

雖然後端的技術支援比較複雜,但是使用者和開發者使用過程中完全感受不到。例如,在 ABT 錢包中,建立一個以 DID 為基礎的個人錢包僅需要四步;而對於開發者來說,整個 DID 的生成過程就是自動整合在 Forge SDK 裡的。

DID 讓使用者可以無需額外的註冊流程,而直接使用 DID 中的資訊,整個過程不需要第三方參與。Forge SDK 將所有使用者地址、資產地址的計算全部自動最佳化成了 DID,因此 Forge SDK 開發出來的應用天然享有 DID 的優勢,彼此交流將更將暢順。Forge SDK 把 DID 融入到去中心化應用的核心邏輯中,推動 DID 成為網際網路基礎設施之一,各種應用互聯互通。在 Forge SDK 和 DID 的共同作用下,區塊鏈未來已來。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;