我对可验证的凭据以及它们如何工作以及最近阅读它感兴趣。在阅读时,我有一个问题,我似乎无法找到答案(或者不知道我应该问谁,抱歉我缺乏知识)。
我的问题:
由于允许可验证的证书颁发者在去中心化(分布式)账本中注册一个或多个 DID,验证者如何确保其正在验证的证书实际上是由合法的颁发者颁发的?
下面是一个澄清问题的例子:
假设一个机动车驾驶执照颁发机构 (MDLA) 将自己注册到一个去中心化(分布式)账本中,其 DID 值为“did:example:mdla1”。他们还注册了驾驶执照模式以及如下所示的 DID(简化示例):
"schema_json":{
"id":"mdla:drivinglicence:schema:v:1.0",
"name":"Driving Licence",
"attrNames":["full_name", "credential_created_date", "start_date", "end_date"],
....
}
现在,假设我(一个人/组织/黑客等)想要篡改可验证的驾驶执照凭证。为此,我确实将自己注册在一个分散的(分布式)分类帐中,其 DID 为“did:example:mdla2”以及与上述相同的凭证模式(仅将 ID 更改为我的首选 ID)。然后使用它填充伪造的可验证驾驶执照。
现在,当我将证书(我自己创建的)呈现给一个人(比如警察)进行验证时,验证者如何知道证书是由我颁发的(因此它是假的)而不是由实际权限(MDLA)?
根据我目前的理解,我的 DID (did:example:mdla2) 将与我的公钥相关联,并且我已经使用我的私钥对我的可验证驾驶执照凭证进行了数字签名,因此应该验证签名没有任何问题。
请帮助我澄清这种困惑或指出我可以更好地理解的一些资源。谢谢。