DID生成

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生成规则:

  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不能重复进行注册。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。