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为备私钥对应的公钥。
生成秘钥的算法支持:

2、Ontology DID

DID格式:did:ont:idString

其中idString生成规则:

  1. 生成32字节的随机nonce,计算h = Hash160(nonce),data = VER || h;
  2. 对data计算两次SHA256,并取结果哈希的前4字节作为校验,即checksum = SHA256(SHA256(data))[0:4];
  3. 令idString = base58(data || checksum);
    上述过程中,|| 表示连接前后两个字节串,VER 是1个字节的标签位。

ONT ID需要在本体区块链上注册之后才能生效,可以在应用中使用。同一个ONT ID不能重复进行注册。

上一篇 下一篇

猜你喜欢

热点阅读