DID生成
1实檀、百度DID
DID格式:did:ccp:<method-specific-id>
其中<method-specific-id>=base58(ripemd160(sha256(<Base DID Document>))) (參考比特幣典予,使用雙 hash)。
其中<Base DID Document>:
{
"@context": "https://w3id.org/did/v1",
"publicKey": [
{
"id": "#keys-1",
"type": "Secp256k1",
"publicKeyHex": "02b97c30de767f084ce3080168ee293053ba33b235d7116a3263d29f1450936b71"
},
{
"id": "#keys-2",
"type": "Secp256k1",
"publicKeyHex": "4b4042665b3235a12fb49730ff620fef1c96e9efa5c90119abd2e8acfe856053"
}
],
"authentication": ["#key-1"],
"recovery": ["#key-2"]
}
在<Base DID Document>中定義了兩個(gè)公鑰,#keys-1主私鑰對(duì)應(yīng)的公鑰第美,#keys-2為備私鑰對(duì)應(yīng)的公鑰。
生成秘鑰的算法支持:
- Secp256k1
- RSA(TBD)
2、Ontology DID
DID格式:did:ont:idString
其中idString生成規(guī)則:
- 生成32字節(jié)的隨機(jī)nonce涨享,計(jì)算h = Hash160(nonce),data = VER || h书在;
- 對(duì)data計(jì)算兩次SHA256灰伟,并取結(jié)果哈希的前4字節(jié)作為校驗(yàn),即checksum = SHA256(SHA256(data))[0:4]儒旬;
- 令idString = base58(data || checksum)栏账;
上述過(guò)程中,|| 表示連接前后兩個(gè)字節(jié)串栈源,VER 是1個(gè)字節(jié)的標(biāo)簽位挡爵。
ONT ID需要在本體區(qū)塊鏈上注冊(cè)之后才能生效,可以在應(yīng)用中使用甚垦。同一個(gè)ONT ID不能重復(fù)進(jìn)行注冊(cè)茶鹃。