书接上回,我们为大家分析了ENS是什么,有什么功能?是不是有小伙伴认为 ENS 真的就能代替 DID 了?
NONONO~咱们接着往下看。
DID 是什么?
对比 ENS 和 DID 之前,我们简单了解一下 DID。
DID,全称 Decentralized Identifier,是一种去中心化标识符。根据 W3C DID 标准,DID 可以用来标记任何的实体,包括人、机构、组织、设备等等,并通过与中心化的身份注册机构、身份提供商以及证书权威中心等传统中心化机构解耦,使用户(标识符控制/所有者)可以在无第三方许可的情况下完全控制去中心化标识符。
同时,DID 具有全局唯一性、高可用性、可解析性和密码可验证性,通常与密码技术(如公私钥)相关联。DID 具有广泛用途,比如可在去中心化数据客户端以及服务端之间以建立安全的通信信道。
利用去中心化标识符构建的去中心化身份体系主要包含两个组件:除了上面说明的去中心化标识符以外,还包括可验证凭证(Verifiable Credentials,VC)。
以本体的去中心化身份解决方案为例,当用户创建去中心化身份时,DID 会通过第三方权威机构为用户验证其真实身份,并生成可验证凭证 VC。用户可以将 VC 保存在自己的去中心化数据客户端中,在以后的登录以及验证中,通过授权的方式允许应用验证自己的 VC。
这种授权并不是全盘验证,而是开放部分相关数据,其它的数据均不向应用开放,对方无法查看。比如你在租车时,租车平台能够查看的仅是你授权放开的驾驶证、历史租车记录等,其它数据无法查看。
ENS 和 DID 的差异
表现逻辑
ENS 的标识符是域名,即“xxx.eth”。该标识符对于用户来说是可读的,这也是 ENS 存在的最基本目标,即让不可读的以太坊地址通过 ENS 解析为对用户友好的标识符 ENS 域名。
而对于 DID 来说,它的标识符是“did:method:xxxxxx”,比如本体提供的 DID 标识符就是
“did:ont:AMQoUFjwjVNNSejomUPRmGrkQDyvmujDt5”,即“did”、DID Method 名称“ont”和 Ontology 上的地址拼接起来的字符串,这对于用户来说是不可读的。
但 DID 的标识符并非固定不变,而是可以根据需求进行设计。DID Method 规则赋予了设计者定义 DID 规范的能力,DID 方案的设计者也可以将其设计为可读的地址,比如“did:ont:iris”。这样意味着,设计者在 DID 标识符的可读性上可以发挥更大的主动性。
实现逻辑
1.关注点
就目前来看,ENS 本身关注更多的还是关联地址:对于用户来说,ENS 通过解析与反向解析的功能将用户的以太坊地址与域名相关联,并实现域名与互联网账户的绑定,进而实现在 Web3 中的单点登录;
而 DID 关注的信息则比较广泛,也偏向用户个人数据:
2.链上存储
对于用户的数据(链上和链下),ENS 和 DID 有不同存储方式。
ENS 是通过以太坊智能合约(解析器)来记录,比如通过内容哈希来记录 IPFS 网络中的内容标识;通过文本记录 Twitter、Github、Email 等中心化信息。这意味着基于 ENS 的账户更偏向于公开、可查的状态。
在 DAOrayaki 的一项调查结果显示,Sismo的受访者中有近70%表示不愿意将 ENS 与自己的私人地址联系起来,因为账户的信息太容易被查询了。
而 W3C DID 在存储信息方面没有特别指明。
但在一般实践中,DID 可由设计者根据需求设计,通常设计为:不敏感的信息会进行链上存储,而敏感的信息则通过链下验证生成 VC 等形式,供用户保存在自己的 DID 中以便使用。这样的方式对于用户的隐私来说更加友好。
3.权限控制
在 ENS 的管理中,有两个角色(注册时默认两个均为注册使用的以太坊地址):
*如果设置了新的管理员,那么注册人就无法再设置域名的解析器和解析记录,这些操作必须由管理员进行。
而 DID 具有更丰富的写权限控制。根据 W3C DID 文件所描述,一个 DID 可以有多个验证方法(Verification Method),这些验证方法具有包括创建、验证、更新和停用在内的更改 DID 文件、认证 DID 实体和指定代理者等权利。因此在权限控制上,DID 的管理角色显出更加精细和具体。
应用逻辑
而 DID 的创建,可以由用户自主选择基于哪一条区块链,同样也会产生一定的手续费。并且,DID 一旦创建、与用户身份进行绑定以后,就无法转移以及销毁。因此对于用户而言,创建 DID 需要谨慎,因为 DID 在赋予数据、身份自主管理权的同时,也给予用户重任——需要用户提高身份与数据使用意识,更安全的使用他们的数据。
总结