id:BSN_2021 公眾號:BSN 研習(xí)社

2022年1月25日,區(qū)塊鏈服務(wù)網(wǎng)絡(luò)發(fā)展聯(lián)盟(簡稱“BSN聯(lián)盟”)推出了“BSN-DDC基礎(chǔ)網(wǎng)絡(luò)”(簡稱DDC網(wǎng)絡(luò))。DDC網(wǎng)絡(luò)的推出,為NFT技術(shù)在我國的落地提供基礎(chǔ)設(shè)施能力支撐,并為其合規(guī)發(fā)展保駕護(hù)航。
DDC(Distributed Digital Certificate)即分布式數(shù)字憑證,其屬性和功能類似于NFT。NFT是現(xiàn)實或數(shù)字世界中某個事物在區(qū)塊鏈上的數(shù)字化權(quán)益證明,盡管目前大多被用于數(shù)字藝術(shù)品版權(quán)領(lǐng)域,然而其本質(zhì)上是一種區(qū)塊鏈分布式數(shù)據(jù)庫技術(shù),并不帶有特定的業(yè)務(wù)屬性,它的潛在使用場景是非常廣泛的,可應(yīng)用在數(shù)字商品憑證、票證、賬戶管理、知識產(chǎn)權(quán)等各種領(lǐng)域。DDC網(wǎng)絡(luò)不直接向個人用戶提供服務(wù),而是向擁有DDC/NFT業(yè)務(wù)的平臺方提供極其便捷的網(wǎng)絡(luò)接入服務(wù),以方便這些平臺以極低的成本提供DDC/NFT的生成和管理服務(wù)。
DDC-SDK 是用于開發(fā)者與DDC 合約交互的 API 工具。為了讓運(yùn)營方或各平臺方對DDC-SDK整體設(shè)計有一個全面詳細(xì)的了解,同時為項目的開發(fā)、測試、驗證、交付等環(huán)節(jié)提供原始依據(jù)以及開發(fā)指導(dǎo),BSN研習(xí)社推出BSN-DDC基礎(chǔ)網(wǎng)絡(luò)DDC SDK詳細(xì)設(shè)計系列。分別從整體設(shè)計,DID功能設(shè)計,DDC權(quán)限管理、費(fèi)用管理,官方合約BSN-DDC-721,官方合約 BSN-DDC-1155,交易查詢、區(qū)塊查詢、簽名事件,數(shù)據(jù)解析,示例等八個方面,全面詳細(xì)的介紹DDC-SDK。
本期是系列文章第二期,DID功能設(shè)計。
DID
與實體用戶相關(guān)的數(shù)字化身份信息的管理,包含注冊DID、更新密鑰、驗證DID等鏈方暫時可以不用關(guān)注。
1.1注冊DID
個人或機(jī)構(gòu)都可通過“注冊DID”給自己生成一個數(shù)字化身份。每個DID都對應(yīng)唯一的一份DID Document,且DID Document存儲于區(qū)塊鏈網(wǎng)絡(luò)中。
1.1.1功能介紹
注冊DID包含兩個環(huán)節(jié):為用戶生成DID數(shù)字身份和向區(qū)塊鏈網(wǎng)絡(luò)發(fā)布DID Document 。
1.1.2 API定義
方法定義:
DidDataWrapper createDid();
調(diào)用者:平臺方、運(yùn)營方
核心邏輯:
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| DID | did | String | 是 | |
| DID簽名值 | didSign | String | 是 | |
| 主公私鑰 | authKeyInfo | KeyPair | 是 | |
| 備公私鑰 | recyKeyInfo | KeyPair | 是 | |
| DID文檔 | document | DocumentInfo | 否 | |
| KeyPair | ||||
| 私鑰信息 | privateKey | String | 是 | |
| 公鑰信息 | publicKey | String | 是 | |
| 加密算法 | type | String | 是 | |
| DocumentInfo | ||||
| DID | did | String | 是 | |
| 版本號 | version | String | 是 | |
| 創(chuàng)建時間 | created | String | 是 | |
| 更新時間 | updated | String | 否 | |
| 主公鑰 | authentication | PublicKey | 是 | |
| 備公鑰 | recovery | PublicKey | 是 | |
| 簽名信息 | proof | Proof | 是 | |
| PublicKey | ||||
| 公鑰信息 | publicKey | String | 是 | |
| 加密算法 | type | String | 是 | |
| Proof | ||||
| 簽名值 | signValue | String | 是 | |
| 簽名算法 | type | String | 是 | |
| 簽名者的DID | creator | String | 是 |
1.1.3 DID格式
DID的內(nèi)容格式由W3C標(biāo)準(zhǔn)格式前綴、項目名、DID標(biāo)識符三部分組成,各部分之間以英文符冒號為分隔符。如下示例:
did:bsn:3wxYHXwAm57grc9JUr2zrPHt9HC
1.1.3.1 標(biāo)識符生成規(guī)則
DID標(biāo)識符通過以下算法生成:
base58(ripemd160(sha256()))
以下為Base DID Document的格式示例:
{
"@context": "https://w3id.org/did/v1",
"authentication":
{
"type": "Secp256k1",
"publicKey":"28986472722394106073871327423452879123214061743224210681401278929598807211140001274507530324221923795865447680836742348963337343510229880669968499735858"
}
"recovery":
{
"type": "Secp256k1",
"publicKey":"9251971168042915941551574641987721503984542761641852064853964541181378832746959340151297908312616596971625573967556676367696067937171601766581709843378481"
}
}1.1.3.2 DID Document格式
DID Document里面的主要內(nèi)容有DID和主備公鑰信息,格式如下所示:
{
"did": "did:bsn:3wxYHXwAm57grc9JUr2zrPHt9HC",
"version": 1,
"created": "2021-05-20T16:02:20Z",
"updated": "2021-05-20T16:02:20Z",
"authentication":
{
"type": "Secp256k1",
"publicKey":"28986472722394106073871327423452879123214061743224210681401278929598807211140001274507530324221923795865447680836742348963337343510229880669968499735858"
}
"recovery":
{
"type": "Secp256k1",
"publicKey":"9251971168042915941551574641987721503984542761641852064853964541181378832746959340151297908312616596971625573967556676367696067937171601766581709843378481"
}
}1.1.3.3 DID Document完整格式
DID Document數(shù)據(jù)格式內(nèi)容比摘要格式內(nèi)容多了proof信息,proof是使用主私鑰對DID Document摘要格式內(nèi)容進(jìn)行Secp256k1簽名的一些信息,格式如下所示:
{
"did": "did:bsn:3wxYHXwAm57grc9JUr2zrPHt9HC",
"version": 1,
"created": "2021-05-20T16:02:20Z",
"updated": "2021-05-20T16:02:20Z",
"authentication":
{
"type": "Secp256k1",
"publicKey":"28986472722394106073871327423452879123214061743224210681401278929598807211140001274507530324221923795865447680836742348963337343510229880669968499735858"
}
"recovery":
{
"type": "Secp256k1",
"publicKey":"9251971168042915941551574641987721503984542761641852064853964541181378832746959340151297908312616596971625573967556676367696067937171601766581709843378481"
}
"proof": {
"type": "Secp256k1",
"creator": "did:bsn:3wxYHXwAm57grc9JUr2zrPHt9HC",
"signatureValue": "zD5nt+P/Ga/CRG2hJU/SMRXy210CLdvATsxQdPxTEy9Mc9Y0OSFpE3Yu5k2+OjQKVOtu5of9VFbgO3Zljw/vQxs="
}
}1.2更新密鑰
用戶的主私鑰丟失或者泄漏,可以通過“更新密鑰”重新生成一對主公私鑰。
1.2.1 功能介紹
用戶通過備份的公私鑰來完成主公私密鑰更新。密鑰更新后用戶的DID Document也將更新,但是DID不會改變。
1.2.2 API定義
方法定義:
KeyPair resetDidAuth(ResetDidAuth restDidAuth);
調(diào)用者:平臺方、運(yùn)營方;
核心邏輯:
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| DID | did | String | 是 | |
| 主公私鑰 | primaryKey | KeyPair | 否 | |
| 備公私鑰 | recoveryKey | KeyPair | 是 | |
| KeyPair | ||||
| 私鑰 | privateKey | String | 是 | |
| 公鑰 | publicKey | String | 是 | |
| 加密算法 | type | String | 是 |
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| 新公私鑰 | keyInfo | KeyPair | 是 | |
| KeyPair | ||||
| 私鑰 | privateKey | String | 是 | |
| 公鑰 | publicKey | String | 是 | |
| 加密算法 | type | String | 是 |
用戶可以通過“驗證DID”對自己的DID身份進(jìn)行查驗,以此來確認(rèn)DID Document是否已存在于鏈上;也可以確認(rèn)第三方對自己DID身份的查驗結(jié)果能否通過。
1.3.1 功能介紹
用戶通過DID Document中的主公鑰進(jìn)行簽名驗證,驗簽通過則認(rèn)可DID身份。
1.3.2 API定義
方法定義:
Boolean verifyDIdSign(DidSign didSign);
調(diào)用者:平臺方、運(yùn)營方;
核心邏輯:
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| DID | did | String | 是 | |
| DID簽名值 | didSign | String | 是 |
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| Boolean | 是 |
1.4 注冊發(fā)證方
用戶可以通過“注冊發(fā)證方”使自己的DID身份擁有可注冊憑證模板的權(quán)限。1.4.1 功能介紹注冊發(fā)證方僅是對DID身份進(jìn)行了標(biāo)記,不會改變DID和DID Document。發(fā)證方的信息在鏈上存儲,是公開透明的。1.4.2 API定義
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| 私鑰 | privateKey | String | 是 | 主私鑰 |
| DID | did | String | 是 | |
| 名稱 | name | String | 是 | 發(fā)證方名稱 |
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| Boolean | 是 |
1.5 注冊憑證模板
發(fā)證方依據(jù)自己所要簽發(fā)的憑證信息,自定義憑證屬性形成一份憑證模板。
1.5.1 功能介紹
一個發(fā)證方可以定義多個憑證模板逐個進(jìn)行注冊,基于憑證模板可以簽發(fā)多個憑證,每個憑證都由發(fā)證方的私鑰進(jìn)行簽名。
1.5.2 API定義
方法定義:
CptBaseInfo registerCpt(RegisterCpt registerCpt);
調(diào)用者:運(yùn)營方;
核心邏輯:
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| 私鑰 | privateKey | String | 是 | 主私鑰 |
| DID | did | String | 是 | |
| 屬性信息 | cptJsonSchema | Map | 是 | |
| 標(biāo)題 | title | String | 是 | |
| 描述 | description | String | 是 | |
| 類型 | type | String | 是 | Proof |
| JsonSchema | ||||
| 字段類型 | type | String | 是 | |
| 字段描述 | description | String | 是 | |
| 是否必填 | required | Boolean | 是 | true表示必填;false表示選填 |
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| ID | cptId | Long | 是 | |
| 版本 | cptVersion | Integer | 是 |
1.6 簽發(fā)憑證
發(fā)證方根據(jù)用戶信息,可通過“簽發(fā)憑證”為用戶生成憑證。1.6.1 功能介紹用戶根據(jù)憑證模板的屬性要求,向發(fā)證方提供了對應(yīng)的屬性值后,發(fā)證方可基于憑證模板為其生成一份憑證。1.6.2 API定義
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| 私鑰 | privateKey | String | 是 | 主私鑰 |
| DID | issuerDid | String | 是 | 發(fā)證方的DID |
| DID | userDid | String | 是 | 用戶的DID |
| 到期日 | expirationDate | String | 是 | |
| 屬性 | claim | Map | 是 | 和憑證模板的格式一致 |
| 類型 | type | String | 是 | Proof |
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| 標(biāo)準(zhǔn) | context | String | 是 | |
| ID | id | String | 是 | 憑證ID |
| 類型 | type | String | 是 | Proof |
| ID | cptId | Long | 是 | 憑證模板ID |
| DID | issuerDid | String | 是 | 發(fā)證方DID |
| DID | userDid | String | 是 | 用戶DID |
| 到期日 | expirationDate | String | 是 | 憑證到期日 |
| 生成日期 | created | String | 是 | 憑證簽發(fā)日 |
| 簡要說明 | shortDesc | String | 是 | 憑證簡述 |
| 詳細(xì)說明 | longDesc | String | 是 | 憑證詳述 |
| 內(nèi)容 | claim | Map | 是 | |
| 簽名信息 | proof | Map | 是 |
1.7 驗證憑證
用戶可以通過“驗證憑證”對憑證的真?zhèn)涡浴⒂行赃M(jìn)行查驗。。1.7.1 功能介紹驗證憑證包含兩個方面:驗證憑證內(nèi)容和驗證憑證是否到期,兩個方面都驗證通過,則認(rèn)為憑證有效。1.7.2 API定義
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| 標(biāo)準(zhǔn) | context | String | 是 | |
| ID | id | String | 是 | 憑證ID |
| 類型 | type | String | 是 | Proof |
| ID | cptId | Long | 是 | 憑證模板ID |
| DID | issuerDid | String | 是 | 發(fā)證方DID |
| DID | userDid | String | 是 | 用戶DID |
| 到期日 | expirationDate | String | 是 | 憑證到期日 |
| 生成日期 | created | String | 是 | 憑證簽發(fā)日 |
| 簡要說明 | shortDesc | String | 是 | 憑證簡述 |
| 詳細(xì)說明 | longDesc | String | 是 | 憑證詳述 |
| 內(nèi)容 | claim | Map | 是 | |
| 簽名信息 | proof | Map | 是 |
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| 算法類型 | type | String | 是 | Secp256k1 |
| 公鑰 | publicKey | String | 是 | 主公鑰 |
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| Boolean | 是 |
1.8吊銷憑證
發(fā)證方可通過“吊銷憑證”吊銷已經(jīng)簽發(fā)給用戶的憑證。
1.8.1 功能介紹
發(fā)證方對已簽發(fā)的憑證進(jìn)行作廢標(biāo)記。憑證已簽發(fā)給用戶,發(fā)證方是無法直接修改。所以憑證吊銷后將吊銷的憑證編號存儲與區(qū)塊鏈網(wǎng)絡(luò)中。
1.8.2 API定義
方法定義:
Boolean revokeCredential(RevokeCredential cred) ;
調(diào)用者:平臺方;
核心邏輯:
RevokeCredential
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| ID | credId | String | 是 | 憑證ID |
| 模板ID | cptId | Long | 是 | 憑證模板ID |
| DID | did | String | 是 | 發(fā)證方DID |
| 私鑰 | privateKey | String | 是 | 發(fā)證方私鑰 |
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| Boolean | 是 |
1.9 查詢吊銷憑證
用戶可通過“查詢吊銷憑證”查詢發(fā)證方已吊銷的憑證和吊銷時間。1.9.1 功能介紹用戶查詢某個發(fā)證方已經(jīng)吊銷憑證的吊銷列表。1.9.2 API定義
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| 頁碼 | page | Integer | 是 | 當(dāng)前頁碼 |
| 分頁大小 | size | Integer | 是 | 分頁大小,單次最多可以檢索50條 |
| DID | did | String | 是 | 發(fā)證方的DID |
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| 頁碼 | page | Integer | 是 | 當(dāng)前頁碼 |
| 分頁大小 | size | Integer | 是 | |
| 總數(shù) | totalNum | Integer | 是 | 總記錄數(shù) |
| 總頁數(shù) | totalPage | Integer | 是 | |
| 記錄 | result | List< ?BaseCredential> | 是 | 記錄列表 |
| 字段名 | 字段 | 類型 | 必傳 | 備注 |
|---|---|---|---|---|
| ID | id | String | 憑證編號 | |
| 時間 | created | String | 憑證吊銷時間 |
本文資料內(nèi)容來源于BSN-DDC SDK詳細(xì)設(shè)計-V1.0,GitHub地址為:https://github.com/BSN-DDC/did-sdk。欲瀏覽更多信息,請您點擊登錄查看。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
當(dāng)前文章:BSN-DDC基礎(chǔ)網(wǎng)絡(luò)的DID功能設(shè)計-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://chinadenli.net/article26/edccg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站維護(hù)、建站公司、網(wǎng)站收錄、網(wǎng)站內(nèi)鏈、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容