互联网需要一套新身份证系统——W3C DID标准全景解读

这篇文章要给你一张地图。当你打开W3C DID Core标准文档,面对一百多页的规范、术语表和架构图时,很容易迷失在细节的丛林里。本文把DID究竟是什么、为什么要有它、它想实现什么、它长什么样——这四个最根本的问题一一讲清。看完之后你再翻开标准文档,每一页都有坐标。

你在互联网上有多少种身份?

数一数:微信、支付宝、微博、知乎、抖音、GitHub、Gmail、钉钉、飞书……每个平台都是一套独立的账号密码。有人做过统计,中国网民平均持有超过40个网络账号。40套密码,40种登录方式,40个一旦被封禁就全部归零的”数字身份”。
更糟的是,这些身份没有一个是真正属于你的。平台封你的号,你的身份就消失;平台倒闭,你在上面的社交关系、创作内容、数字资产全部归零。最近一个新闻里,一个程序员的GitHub被误封,十年的开源贡献瞬间不可见,申诉了72小时才恢复——而那72小时里,他的代码、他的贡献历史、他在技术社区的信任积累,全都不属于他。
你像一个数字世界的流浪者,在每个平台租借一套临时的”身份证”,随时可能被收走。
这不仅仅是”不方便”的问题。这是互联网底层身份设计出了结构性缺陷。

一、DID是什么:不是地址,不是名字,是一把钥匙

DID,全称Decentralized Identifier(去中心化标识符),可以理解为数字世界的”身份证体系”。
很多人第一次接触DID时,会下意识地把它类比成URL、域名或者IP地址。这种类比只说对了一半。
URL:标识的是”资源在哪里”——像你家地址,告诉你往哪儿走能找到这个东西
域名:标识的是”谁拥有这个空间”——像小区名称,给你一个可读的名字空间
IP地址:标识的是”网络上的位置”——像经纬度坐标,告诉路由器数据包该往哪儿扔
而DID
标识的是”你是谁,并且你能证明你是你”
这个差别的分量有多重?URL的核心操作是”解析”——你给它一个地址,它返回一个资源。DID的核心操作是”解析+验证”——你给它一个DID,它返回一份文档,然后用文档里的密码学材料证明”这个实体确实拥有这个DID”。
URL解决的是定位问题,DID解决的是信任问题。
说的更直白一点:你知道某人的URL,不代表你确定那个人就是他声称的那个人。你知道某人的DID,加上密码学验证,你可以确信——不需要中间的第三方给你担保。

身份的本质不是名字,而是控制权。能证明你拥有的,才是你的身份。

DID的格式也很直观:did:method:method-specific-id。比如did:example:123456789abcd。没有https://,没有域名,没有路径——它不告诉你”在哪里”,只告诉你”是谁”。具体这套标识符在哪个系统上运行,由中间的”method”字段决定——可以是区块链、分布式账本、或者其他可信网络。这是架构层面的解耦。

二、传统身份体系为什么必须被重构

理解DID的价值,首先要看清传统身份体系的结构性缺陷。这不是某几个平台的”产品体验不好”,而是整个互联网底层身份模型的三个根本性问题。
问题一:中心化控制——你的身份是别人租给你的。
在传统模型里,你的数字身份由平台颁发、平台存储、平台冻结。GitHub封禁账号,你几十年的代码贡献瞬间不可见;微信封号,你的社交关系链全部归零;淘宝店被封,你的经营记录和客户资源一并消失。
平台拥有对你身份的最终裁决权,而你没有申诉通道之外的任何救济手段。这不是某个平台”不讲武德”,这是中心化身份架构的必然结果——发证者即执法者。当同一个实体既拥有身份发放权又拥有身份冻结权,用户永远处于不对称的权力关系之下。
问题二:隐私泄露——你不得不交出远比所需更多的信息。
每次登录一个新的网站或者App,你几乎把全套身份信息都交了出去——手机号、邮箱、昵称、头像、甚至实名认证信息。这个网站本来不需要知道你叫什么,它只需要知道你符合某个条件(比如”成年用户”或者”已付费用户”)。但在现有架构下,你没有选择权:要么交出全部个人信息,要么无法使用服务。
全国每年报告的数据泄露事件数以千计,你的手机号、身份证号在各个平台的数据库里裸奔,而你对此无能为力。更讽刺的是,这些信息往往不是你需要用——而是平台需要存,存了还可能被卖。
问题三:跨系统互操作困难——数据孤岛本质上是身份孤岛。
平台之间是天然的壁垒。你在A平台的信用分,B平台不认;你在A平台验证过的学历,到B平台要重新上传、重新审核。每一次跨平台协作,都是一次从头开始的身份认证。
这不是技术做不到。OAuth、SAML、OpenID Connect这些协议都尝试过解决跨域身份问题,但它们在架构上是”联邦式”的,仍然依赖中心化的身份提供商——Google可以登录GitHub,但这套信任关系建立在Google和GitHub之间的商业协议之上。如果你不想用Google,或者Google封了你的账号,这套体系就崩了。
这三个问题互相纠缠,构成了传统互联网身份体系最核心的困境。你可以选择一个方便的中心化平台(比如微信登录一切),代价是丧失控制权和隐私;你也可以在不同平台用不同身份以保护隐私,代价是极度不便和无法跨系统协作。你得不到一个”既要又要还要”的方案。

你无法在别人的地基上,盖一栋属于自己的房子。


三、十大设计目标:DID世界的”宪法条款”

W3C DID Core标准第1章开宗明义,列出了十个设计目标。这些目标不是功能特性列表,而是像宪法条款一样——它们框定了DID生态的游戏规则,所有实现都必须尊重这些原则。
可以把这十条分成三组来看。
第一组:还权于用户——分布式、可控性、可移植性。
分布式:DID不依赖任何单一的中心注册机构或权威机构来管理。没有一个人或者组织可以单方面决定一个DID是否存在、是否有效。
可控性:DID的持有者(subject)拥有对DID的最终控制权。不需要第三方许可就可以创建、更新、撤销自己的DID。
可移植性:你的DID可以在不同系统、不同服务商之间自由迁移。不会被某个平台锁定,不因为某个DID方法背后的技术平台变化而失效。
这三条目标的本质是解耦——把”身份”和”平台”之间的绑定关系彻底切断。你的身份不是平台发的,是你自己生成的;不依赖哪个平台存活,可以在多个平台间流转。
第二组:安全与隐私底线——隐私性、安全性、可证明性。
隐私性:你可以只披露最少的信息来完成一次身份验证。零知识证明、选择性披露等技术方向,都是这个目标的实现路径。不交全集,给最小集。
安全性:从一个DID到其DID文档的解析过程,以及文档中密码学材料的验证过程,必须有防篡改、防伪造的保障。这个保障通常来自底层的分布式账本或可信网络。
可证明性:DID文档中包含的加密材料(如公钥)可以被第三方独立验证。不需要发证机构出具证明,只需要密码学。
这三条回答了”凭什么信任一个DID”:底层系统保证它是真的(安全性),密码学证明你的身份是有效的(可证明性),而你只披露必须的信息(隐私性)。
第三组:生态底座——可发现性、互操作性、简易性、可扩展性。
可发现性:给定一个DID,任何人都能找到对应的DID文档。DID不是闭门造车的私有标识符,它是开放的。
互操作性:不同DID method(方法)实现的系统之间能互相理解、互相协作。以太坊上的DID和Hyperledger上的DID,在标准层面对齐。
简易性:标准本身要足够简洁,让开发者容易理解、容易实现。太复杂会阻碍采纳。
可扩展性:标准不限制未来的创新空间,允许新的DID method不断涌现。标准给出的是最小公约数,不是天花板。

好的标准不是锁住所有人,而是让每个人在同一个语言框架里自由创造。

如果你仔细读这十条,会发现它们之间存在内在张力。”分布式”和”可发现性”之间需要平衡——完全去中心化可能让查找变得低效;”隐私性”和”可证明性”之间需要配合——既要能证明某件事,又不能交出全部底牌;”简易性”和”可扩展性”则是经典的工程权衡——太简单会限制未来,太灵活会增加当下的复杂度。
W3C没有回避这些张力,而是把它们作为标准的设计约束明明白白地写在第一章。这种透明度本身就是高质量标准化的标志——不假装世界是完美的,而是告诉你”这些是我们认为值得承受的权衡”。

四、六大核心组件:DID的”城市地址系统”

设计目标是宪法,落地方案是城市。DID架构的六组核心组件,构成了一套完整的”数字身份地址系统”。
1. DID——身份证号
它是全局唯一的标识符。形如did:example:123456789。它本身不包含位置信息、没有语义(不像域名那样一般能读出组织名)、也不可逆推(不能从DID反推出真实身份)。它的唯一作用是——让所有人都能指向同一个”谁”。
2. DID URL——完整地址
在DID的基础上添加路径、查询参数或片段标识。比如did:example:123456789#key-1指向DID文档中的第一个公钥。URL是”DID+子资源定位”的复合体,用来精确指向一个DID相关的特定资源或特定密钥。
3. DID Subject——身份证持有人
DID所标识的那个”实体”。可以是一个人、一个组织、一台物联网设备、一个AI Agent、甚至一份数据模型。DID不关心你”是人是狗”,它只关心你能不能被确定性地标识。
4. DID Controller——身份证管理者
有权修改DID文档的实体。这里有一层重要的架构设计:Subject和Controller可以不是同一个人。父母管理孩子的DID,企业管理员管理设备的DID,托管服务商在用户授权下管理用户的DID——控制权的分层是DID架构中务实的体现。
5. DID Document——身份证本身
这是DID体系中最核心的数据结构。当你解析一个DID时,拿到的就是这个文档。它包含:关联的公钥列表、可用的服务端点(service endpoint)、验证方法、授权规则、以及其他元数据。简单理解——DID是门牌号,DID Document是房子的设计图。
6. Verifiable Data Registry——公安局/民政局
底层记录和管理DID的基础设施。对于基于区块链的DID方法(比如did:ethr),这个注册表就是以太坊链本身;对于基于分布式账本的,就是对应的账本系统;当然也可以基于去中心化的P2P网络或其他可信数据存储。它不关心”你是谁”,只关心”你在不在册”。
这六个组件组合起来,勾勒出一个完整的身份生命周期:
创建:生成密钥对 → 构造DID文档 → 写入注册表
解析:给定DID → 从注册表查找 → 拿到DID文档
验证:用文档中的公钥验证签名 → 确认控制权
更新/撤销:Controller修改文档 → 写入注册表新版本

一个真正的身份系统,不是给你一个账号,而是给你一把钥匙——你用它开门,不用向谁请示。


回到开篇:你还需要记住40个密码吗?

回到那个让你数手指的开篇问题——40个账号,40个身份,没有一个是你的。
DID给出的答案不是让这40个平台联合起来做单点登录。它的答案是更根本的解耦:你的DID不是平台发的,是你自己生成的;你的身份信息不是存在平台的数据库里,是存在你掌控的DID文档里;你不需要在每个平台创建新的身份记录,你只需要用同一个DID,在不同场景下选择性披露不同的信息——给淘宝你的昵称,给银行你的实名,给论坛你的匿名ID,而这三者都可以通过密码学绑定到同一个DID,但彼此不知道对方是谁。
当然,DID不是银弹。它需要生态建设,需要商业模式落地,需要用户愿意管理自己的私钥——这是另一个层面的工程和用户体验挑战。标准本身只是给了我们一张地图,路还得靠自己走。
但至少,这张地图告诉了我们前进的方向——一个身份真正属于个人的互联网。

我是BSN联盟成员。有十年区块链与隐私计算的产品开发和方案咨询经验,先后参与多个国家重大课题,亲手建过区块链、隐私计算、可信数据空间的落地项目。不追概念,写真的。

发表评论