zh
返回所有新闻

本体技术视点 | ENS 是不是真的能够代替 DID?(下)


书接上回,我们为大家分析了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 是不是真的能够代替 DID?(上)》中我们提到过“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 标识符的可读性上可以发挥更大的主动性。


实现逻辑


除了标识符以外,ENS 和 DID在实现逻辑上也存在很大的差异。


1.关注点


就目前来看,ENS 本身关注更多的还是关联地址:对于用户来说,ENS 通过解析与反向解析的功能将用户的以太坊地址与域名相关联,并实现域名与互联网账户的绑定,进而实现在 Web3 中的单点登录;


而 DID 关注的信息则比较广泛,也偏向用户个人数据:


包含用户的链上数据,比如多链地址、内容哈希、链上互动等;

关注用户的链下信息,除了Twitter、邮箱等互联网信息,更会通过三方权威机构关注用户的现实数据。而这些敏感数据都会加密生成可验证凭证,由用户自主保存。


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 的管理角色显出更加精细和具体。


应用逻辑


ENS 创建是基于以太坊进行的,不管是创建还是持有,都需要支付以太坊链上手续费。并且根据 ENS 的设定,持有 ENS 域名需要交付租费,字数越少租费越高,三字以内的域名每年租费高达 640 美元。


同时 ENS 也是一个 NFT,这就意味着 ENS 可以在诸如 Opensea 此类的 NFT 市场上转售。这些能满足用户解绑、变现的需求。

而 DID 的创建,可以由用户自主选择基于哪一条区块链,同样也会产生一定的手续费。并且,DID 一旦创建、与用户身份进行绑定以后,就无法转移以及销毁。因此对于用户而言,创建 DID 需要谨慎,因为 DID 在赋予数据、身份自主管理权的同时,也给予用户重任——需要用户提高身份与数据使用意识,更安全的使用他们的数据。


总结


综上所述,尽管 ENS 在应用层面上也可以作为去中心化身份使用,但从底层实现逻辑和细节上来看,依然与 DID 存在较大的差异。


或许未来 ENS 会有更加精细化的升级,比如通过 KYC 等方式实现与链下数据的交互,加入可验证凭证 VC 满足用户包括隐私方面的需求。但目前而言,想要代替 DID 还为时尚早。