DID生成
2020-10-30 本文已影响0人
cw0925
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>中定义了两个公钥,#keys-1主私钥对应的公钥,#keys-2为备私钥对应的公钥。
生成秘钥的算法支持:
- Secp256k1
- RSA(TBD)
2、Ontology DID
DID格式:did:ont:idString
其中idString生成规则:
- 生成32字节的随机nonce,计算h = Hash160(nonce),data = VER || h;
- 对data计算两次SHA256,并取结果哈希的前4字节作为校验,即checksum = SHA256(SHA256(data))[0:4];
- 令idString = base58(data || checksum);
上述过程中,|| 表示连接前后两个字节串,VER 是1个字节的标签位。
ONT ID需要在本体区块链上注册之后才能生效,可以在应用中使用。同一个ONT ID不能重复进行注册。