真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

BSN-DDC基礎(chǔ)網(wǎng)絡(luò)的DID功能設(shè)計(jì)-創(chuàng)新互聯(lián)

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

10年積累的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有南澗免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

2022年1月25日,區(qū)塊鏈服務(wù)網(wǎng)絡(luò)發(fā)展聯(lián)盟(簡(jiǎn)稱(chēng)“BSN聯(lián)盟”)推出了“BSN-DDC基礎(chǔ)網(wǎng)絡(luò)”(簡(jiǎn)稱(chēng)DDC網(wǎng)絡(luò))。DDC網(wǎng)絡(luò)的推出,為NFT技術(shù)在我國(guó)的落地提供基礎(chǔ)設(shè)施能力支撐,并為其合規(guī)發(fā)展保駕護(hù)航。

DDC(Distributed Digital Certificate)即分布式數(shù)字憑證,其屬性和功能類(lèi)似于NFT。NFT是現(xiàn)實(shí)或數(shù)字世界中某個(gè)事物在區(qū)塊鏈上的數(shù)字化權(quán)益證明,盡管目前大多被用于數(shù)字藝術(shù)品版權(quán)領(lǐng)域,然而其本質(zhì)上是一種區(qū)塊鏈分布式數(shù)據(jù)庫(kù)技術(shù),并不帶有特定的業(yè)務(wù)屬性,它的潛在使用場(chǎng)景是非常廣泛的,可應(yīng)用在數(shù)字商品憑證、票證、賬戶管理、知識(shí)產(chǎn)權(quán)等各種領(lǐng)域。DDC網(wǎng)絡(luò)不直接向個(gè)人用戶提供服務(wù),而是向擁有DDC/NFT業(yè)務(wù)的平臺(tái)方提供極其便捷的網(wǎng)絡(luò)接入服務(wù),以方便這些平臺(tái)以極低的成本提供DDC/NFT的生成和管理服務(wù)。

DDC-SDK 是用于開(kāi)發(fā)者與DDC 合約交互的 API 工具。為了讓運(yùn)營(yíng)方或各平臺(tái)方對(duì)DDC-SDK整體設(shè)計(jì)有一個(gè)全面詳細(xì)的了解,同時(shí)為項(xiàng)目的開(kāi)發(fā)、測(cè)試、驗(yàn)證、交付等環(huán)節(jié)提供原始依據(jù)以及開(kāi)發(fā)指導(dǎo),BSN研習(xí)社推出BSN-DDC基礎(chǔ)網(wǎng)絡(luò)DDC SDK詳細(xì)設(shè)計(jì)系列。分別從整體設(shè)計(jì),DID功能設(shè)計(jì),DDC權(quán)限管理、費(fèi)用管理,官方合約BSN-DDC-721,官方合約 BSN-DDC-1155,交易查詢(xún)、區(qū)塊查詢(xún)、簽名事件,數(shù)據(jù)解析,示例等八個(gè)方面,全面詳細(xì)的介紹DDC-SDK。

本期是系列文章第二期,DID功能設(shè)計(jì)。

DID

與實(shí)體用戶相關(guān)的數(shù)字化身份信息的管理,包含注冊(cè)DID、更新密鑰、驗(yàn)證DID等鏈方暫時(shí)可以不用關(guān)注。

1.1注冊(cè)DID

個(gè)人或機(jī)構(gòu)都可通過(guò)“注冊(cè)DID”給自己生成一個(gè)數(shù)字化身份。每個(gè)DID都對(duì)應(yīng)唯一的一份DID Document,且DID Document存儲(chǔ)于區(qū)塊鏈網(wǎng)絡(luò)中。

1.1.1功能介紹

注冊(cè)DID包含兩個(gè)環(huán)節(jié):為用戶生成DID數(shù)字身份和向區(qū)塊鏈網(wǎng)絡(luò)發(fā)布DID Document 。

1.1.2 API定義

  • 方法定義:

    DidDataWrapper createDid();

  • 調(diào)用者:平臺(tái)方、運(yùn)營(yíng)方

  • 核心邏輯:

  1. 根據(jù)Secp256k1算法生成兩組公私鑰對(duì);
  2. 生成Base DID Document;
  3. 生成DID標(biāo)識(shí)符(生成規(guī)則參照“標(biāo)識(shí)符生成規(guī)則”);
  4. 生成DID Document(格式示例參照“DID Document格式”);
  5. 執(zhí)行DID Document上鏈處理;
  6. 用主公鑰對(duì)DID進(jìn)行簽名;
  7. 返回DID,DID簽名值,主備公私鑰,和 DID Document數(shù)據(jù)內(nèi)容。
  • 輸入?yún)?shù):無(wú)
  • 輸出參數(shù):
字段名字段類(lèi)型必傳備注
DIDdidString
DID簽名值didSignString
主公私鑰authKeyInfoKeyPair
備公私鑰recyKeyInfoKeyPair
DID文檔documentDocumentInfo
KeyPair
私鑰信息privateKeyString
公鑰信息publicKeyString
加密算法typeString
DocumentInfo
DIDdidString
版本號(hào)versionString
創(chuàng)建時(shí)間createdString
更新時(shí)間updatedString
主公鑰authenticationPublicKey
備公鑰recoveryPublicKey
簽名信息proofProof
PublicKey
公鑰信息publicKeyString
加密算法typeString
Proof
簽名值signValueString
簽名算法typeString
簽名者的DIDcreatorString

1.1.3 DID格式

DID的內(nèi)容格式由W3C標(biāo)準(zhǔn)格式前綴、項(xiàng)目名、DID標(biāo)識(shí)符三部分組成,各部分之間以英文符冒號(hào)為分隔符。如下示例:

did:bsn:3wxYHXwAm57grc9JUr2zrPHt9HC

1.1.3.1 標(biāo)識(shí)符生成規(guī)則

DID標(biāo)識(shí)符通過(guò)以下算法生成:

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是使用主私鑰對(duì)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更新密鑰

用戶的主私鑰丟失或者泄漏,可以通過(guò)“更新密鑰”重新生成一對(duì)主公私鑰。

1.2.1 功能介紹

用戶通過(guò)備份的公私鑰來(lái)完成主公私密鑰更新。密鑰更新后用戶的DID Document也將更新,但是DID不會(huì)改變。

1.2.2 API定義

  • 方法定義:

    KeyPair resetDidAuth(ResetDidAuth restDidAuth);

  • 調(diào)用者:平臺(tái)方、運(yùn)營(yíng)方;

  • 核心邏輯:

  1. 驗(yàn)證請(qǐng)求參數(shù)內(nèi)的備公私鑰是否匹配;
  2. 生成新的主公私鑰;
  3. 驗(yàn)證請(qǐng)求參數(shù)內(nèi)的備公鑰與DID Document內(nèi)的備公鑰是否一致;
  4. 更新DID Document并使用新的主私鑰按Secp256k1重新簽名;
  5. 返回新的密鑰。
  • 輸入?yún)?shù)
字段名字段類(lèi)型必傳備注
DIDdidString
主公私鑰primaryKeyKeyPair
備公私鑰recoveryKeyKeyPair
KeyPair
私鑰privateKeyString
公鑰publicKeyString
加密算法typeString
  • 輸出參數(shù):
字段名字段類(lèi)型必傳備注
新公私鑰keyInfoKeyPair
KeyPair
私鑰privateKeyString
公鑰publicKeyString
加密算法typeString
1.3 ? 驗(yàn)證DID

用戶可以通過(guò)“驗(yàn)證DID”對(duì)自己的DID身份進(jìn)行查驗(yàn),以此來(lái)確認(rèn)DID Document是否已存在于鏈上;也可以確認(rèn)第三方對(duì)自己DID身份的查驗(yàn)結(jié)果能否通過(guò)。

1.3.1 功能介紹

用戶通過(guò)DID Document中的主公鑰進(jìn)行簽名驗(yàn)證,驗(yàn)簽通過(guò)則認(rèn)可DID身份。

1.3.2 API定義

  • 方法定義:

    Boolean verifyDIdSign(DidSign didSign);

  • 調(diào)用者:平臺(tái)方、運(yùn)營(yíng)方;

  • 核心邏輯:

  1. 驗(yàn)證DID Document是否在鏈上存在;
  2. 解析DID Document的主公鑰;
  3. 驗(yàn)證DID簽名是否正確,并返回驗(yàn)證結(jié)果。
  • 輸入?yún)?shù):
字段名字段類(lèi)型必傳備注
DIDdidString
DID簽名值didSignString
  • 輸出參數(shù):
字段名字段類(lèi)型必傳備注
Boolean

1.4 注冊(cè)發(fā)證方

用戶可以通過(guò)“注冊(cè)發(fā)證方”使自己的DID身份擁有可注冊(cè)憑證模板的權(quán)限。1.4.1 功能介紹注冊(cè)發(fā)證方僅是對(duì)DID身份進(jìn)行了標(biāo)記,不會(huì)改變DID和DID Document。發(fā)證方的信息在鏈上存儲(chǔ),是公開(kāi)透明的。1.4.2 API定義

  • 方法定義:Boolean registerAuthIssuer(RegisterAuthorityIssuer register);
  • 調(diào)用者:運(yùn)營(yíng)方;
  • 核心邏輯:
  1. 驗(yàn)證DID Document是否在鏈上存在;
  2. 解析DID Document的主公鑰與當(dāng)前公鑰進(jìn)行比對(duì);
  3. 驗(yàn)證DID是否為發(fā)證方;
  4. 注冊(cè)發(fā)證方并對(duì)基本信息上鏈。
  • 輸入?yún)?shù):
字段名字段類(lèi)型必傳備注
私鑰privateKeyString主私鑰
DIDdidString
名稱(chēng)nameString發(fā)證方名稱(chēng)
  • 輸出參數(shù):
字段名字段類(lèi)型必傳備注
Boolean

1.5 注冊(cè)憑證模板

發(fā)證方依據(jù)自己所要簽發(fā)的憑證信息,自定義憑證屬性形成一份憑證模板。

1.5.1 功能介紹

一個(gè)發(fā)證方可以定義多個(gè)憑證模板逐個(gè)進(jìn)行注冊(cè),基于憑證模板可以簽發(fā)多個(gè)憑證,每個(gè)憑證都由發(fā)證方的私鑰進(jìn)行簽名。

1.5.2 API定義

  • 方法定義:

    CptBaseInfo registerCpt(RegisterCpt registerCpt);

  • 調(diào)用者:運(yùn)營(yíng)方;

  • 核心邏輯:

  1. 驗(yàn)證DID Document是否在鏈上存在;
  2. 解析DID Document的主公鑰與當(dāng)前公鑰進(jìn)行比對(duì);
  3. 驗(yàn)證DID是否為發(fā)證方;
  4. 注冊(cè)憑證模板并對(duì)模板信息上鏈。
  • 輸入?yún)?shù):
字段名字段類(lèi)型必傳備注
私鑰privateKeyString主私鑰
DIDdidString
屬性信息cptJsonSchemaMap
標(biāo)題titleString
描述descriptionString
類(lèi)型typeStringProof
JsonSchema
字段類(lèi)型typeString
字段描述descriptionString
是否必填requiredBooleantrue表示必填;false表示選填
  • 輸出參數(shù):
字段名字段類(lèi)型必傳備注
IDcptIdLong
版本cptVersionInteger

1.6 簽發(fā)憑證

發(fā)證方根據(jù)用戶信息,可通過(guò)“簽發(fā)憑證”為用戶生成憑證。1.6.1 功能介紹用戶根據(jù)憑證模板的屬性要求,向發(fā)證方提供了對(duì)應(yīng)的屬性值后,發(fā)證方可基于憑證模板為其生成一份憑證。1.6.2 API定義

  • 方法定義:CredentialWrapper createCredential(CreateCredential createCredential) ;
  • 調(diào)用者:運(yùn)營(yíng)方;
  • 核心邏輯:
  1. 驗(yàn)證DID Document是否在鏈上存在;
  2. 解析DID Document的主公鑰與當(dāng)前公鑰進(jìn)行比對(duì);
  3. 驗(yàn)證DID是否為發(fā)證方;
  4. 驗(yàn)證憑證模板是否在鏈上存在;
  5. 驗(yàn)證屬性格式;
  6. 憑證簽發(fā)并返回憑證信息。
  • 輸入?yún)?shù):
字段名字段類(lèi)型必傳備注
私鑰privateKeyString主私鑰
DIDissuerDidString發(fā)證方的DID
DIDuserDidString用戶的DID
到期日expirationDateString
屬性claimMap和憑證模板的格式一致
類(lèi)型typeStringProof
  • 輸出參數(shù):
字段名字段類(lèi)型必傳備注
標(biāo)準(zhǔn)contextString
IDidString憑證ID
類(lèi)型typeStringProof
IDcptIdLong憑證模板ID
DIDissuerDidString發(fā)證方DID
DIDuserDidString用戶DID
到期日expirationDateString憑證到期日
生成日期createdString憑證簽發(fā)日
簡(jiǎn)要說(shuō)明shortDescString憑證簡(jiǎn)述
詳細(xì)說(shuō)明longDescString憑證詳述
內(nèi)容claimMap
簽名信息proofMap

1.7 驗(yàn)證憑證

用戶可以通過(guò)“驗(yàn)證憑證”對(duì)憑證的真?zhèn)涡?、有效性進(jìn)行查驗(yàn)。。1.7.1 功能介紹驗(yàn)證憑證包含兩個(gè)方面:驗(yàn)證憑證內(nèi)容和驗(yàn)證憑證是否到期,兩個(gè)方面都驗(yàn)證通過(guò),則認(rèn)為憑證有效。1.7.2 API定義

  • 方法定義:Boolean verifyCredential(Credential credential,PublicKey publickKey);
  • 調(diào)用者:平臺(tái)方、運(yùn)營(yíng)方;核心邏輯:
  1. 根據(jù)簽名信息內(nèi)的DID,在鏈上查詢(xún)對(duì)應(yīng)的Document;
  2. 解析Document內(nèi)的公鑰對(duì)憑證驗(yàn)簽;
  3. 驗(yàn)證憑證內(nèi)的到期日期。
  • 輸入?yún)?shù):
  • Credential
字段名字段類(lèi)型必傳備注
標(biāo)準(zhǔn)contextString
IDidString憑證ID
類(lèi)型typeStringProof
IDcptIdLong憑證模板ID
DIDissuerDidString發(fā)證方DID
DIDuserDidString用戶DID
到期日expirationDateString憑證到期日
生成日期createdString憑證簽發(fā)日
簡(jiǎn)要說(shuō)明shortDescString憑證簡(jiǎn)述
詳細(xì)說(shuō)明longDescString憑證詳述
內(nèi)容claimMap
簽名信息proofMap
  • PublicKey
字段名字段類(lèi)型必傳備注
算法類(lèi)型typeStringSecp256k1
公鑰publicKeyString主公鑰
  • 輸出參數(shù):
字段名字段類(lèi)型必傳備注
Boolean

1.8吊銷(xiāo)憑證

發(fā)證方可通過(guò)“吊銷(xiāo)憑證”吊銷(xiāo)已經(jīng)簽發(fā)給用戶的憑證。

1.8.1 功能介紹

發(fā)證方對(duì)已簽發(fā)的憑證進(jìn)行作廢標(biāo)記。憑證已簽發(fā)給用戶,發(fā)證方是無(wú)法直接修改。所以憑證吊銷(xiāo)后將吊銷(xiāo)的憑證編號(hào)存儲(chǔ)與區(qū)塊鏈網(wǎng)絡(luò)中。

1.8.2 API定義

  • 方法定義:

    Boolean revokeCredential(RevokeCredential cred) ;

  • 調(diào)用者:平臺(tái)方;

  • 核心邏輯:

  1. 驗(yàn)證請(qǐng)求參數(shù)合法性;
  2. 通過(guò)DID標(biāo)識(shí)符查詢(xún)DID Document內(nèi)的主公鑰,驗(yàn)證其是否與請(qǐng)求參數(shù)內(nèi)的私鑰是否匹配;
  3. 通過(guò)憑證模板編號(hào)查詢(xún)驗(yàn)證發(fā)證方與憑證模板的關(guān)聯(lián)關(guān)系;
  4. 將憑證編號(hào)上鏈標(biāo)記為已吊銷(xiāo);
  5. 返回吊銷(xiāo)結(jié)果。
  • 輸入?yún)?shù):

RevokeCredential

字段名字段類(lèi)型必傳備注
IDcredIdString憑證ID
模板IDcptIdLong憑證模板ID
DIDdidString發(fā)證方DID
私鑰privateKeyString發(fā)證方私鑰
  • 輸出參數(shù):
字段名字段類(lèi)型必傳備注
Boolean

1.9 查詢(xún)吊銷(xiāo)憑證

用戶可通過(guò)“查詢(xún)吊銷(xiāo)憑證”查詢(xún)發(fā)證方已吊銷(xiāo)的憑證和吊銷(xiāo)時(shí)間。1.9.1 功能介紹用戶查詢(xún)某個(gè)發(fā)證方已經(jīng)吊銷(xiāo)憑證的吊銷(xiāo)列表。1.9.2 API定義

  • 方法定義:public Pages getRevokedCredList(QueryCredentialList queryCredentialList) ;
  • 調(diào)用者:運(yùn)營(yíng)方;
  • 核心邏輯:
  1. 驗(yàn)證請(qǐng)求參數(shù)合法性;
  2. 按請(qǐng)求參數(shù)查詢(xún)相應(yīng)結(jié)果;
  3. 返回吊銷(xiāo)結(jié)果。
  • 輸入?yún)?shù):
字段名字段類(lèi)型必傳備注
頁(yè)碼pageInteger當(dāng)前頁(yè)碼
分頁(yè)大小sizeInteger分頁(yè)大小,單次最多可以檢索50條
DIDdidString發(fā)證方的DID
  • 輸出參數(shù):
字段名字段類(lèi)型必傳備注
頁(yè)碼pageInteger當(dāng)前頁(yè)碼
分頁(yè)大小sizeInteger
總數(shù)totalNumInteger總記錄數(shù)
總頁(yè)數(shù)totalPageInteger
記錄resultList< ?BaseCredential>記錄列表
  • BaseCredential
字段名字段類(lèi)型必傳備注
IDidString憑證編號(hào)
時(shí)間createdString憑證吊銷(xiāo)時(shí)間

本文資料內(nèi)容來(lái)源于BSN-DDC SDK詳細(xì)設(shè)計(jì)-V1.0,GitHub地址為:https://github.com/BSN-DDC/did-sdk。欲瀏覽更多信息,請(qǐng)您點(diǎn)擊登錄查看。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)頁(yè)題目:BSN-DDC基礎(chǔ)網(wǎng)絡(luò)的DID功能設(shè)計(jì)-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://weahome.cn/article/edccg.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部