你有没有想过,为什么我们在互联网上混了这么多年,连一个真正属于自己的ID都没有?为什么每个App都要重新注册一遍?为什么平台说封号就封号,你的社交关系、数字资产、创作内容——那些明明是你”拥有”的东西,一夜间就再也找不回来了?这篇文章不讲概念堆砌,用你能听懂的话,把DID(去中心化标识符)这个技术彻底讲透:它长什么样、怎么工作、凭什么能成为数字世界的身份证。
你有没有想过一个问题——在互联网上,你有微信号、手机号、邮箱、微博ID、钉钉号、抖音号、淘宝ID……但你没有一个真正属于自己的”互联网身份证号”。
听起来不对劲,对吧?你在网络上生活了十几年,居然没有一个”你”的ID。
更扎心的是,你在微信上是”风清扬”,在知乎上是”匿名用户”,在淘宝上是”买家12345678″。这些ID之间没有任何关系,也没有一个属于你自己。它们是平台借给你用的——不收租金,但说收回就收回。你辛辛苦苦写了三年的公众号文章、加了五百个行业群、积累了八千个粉丝,平台一封号,全没了。你连申诉的门都找不到。
你在互联网上的所有身份,本质上都是”租”来的。租约在平台手里,不在你兜里。
这就是数字身份领域最核心的痛点:身份的”所有权”和”控制权”是分离的。
你”拥有”一个微信账号——不,准确地说,是微信允许你使用这个账号。你的身份数据、你的社交图谱、你的数字资产,全都锁在平台的数据库里,你连导出的接口都没有。这不是”拥有”,这是”被托管”。
DID,就是数字世界的”身份证号”
想想你手里那张身份证。正面是一个号码,终生不变,不受任何平台控制。这个号码本身不携带你的隐私信息(名字、住址都在背面),但任何机构都可以通过这个号码来验证你的身份。你拿着它去银行开户、去酒店入住、去高铁站取票,不需要每次都让银行”重新注册”你一次。
DID(Decentralized Identifier,去中心化标识符)做的事,就是把这套逻辑搬到数字世界。
did:example:123456789abcdefghi
did:协议前缀,告诉你”这是一个去中心化标识符”
example:DID Method(方法名),告诉你”这是哪个系统签发的”
123456789abcdefghi:方法特定标识符,全球唯一的ID本体
did = “did:” method-name “:” method-specific-id
method-specific-id = 1*( idchar / “:” / “.” )
就这么简单。但简单背后藏着四个硬核特征,缺一个都不能叫DID——
第一,不可重新分配。这个ID一旦绑定给你,就是你的,永远不能转给别人。就像身份证号,你注销了也不会给下一个新生儿用。
第二,可解析。给一个DID,你一定能查到对应的DID Document(后面会讲这是什么)。就像用身份证号能查到你的户籍信息。
第三,加密可验证。持有DID的人可以通过密码学手段(签名、哈希等)证明”我就是这个DID的主人”。不需要第三方盖章,不需要打电话确认。
第四,去中心化。没有中央注册机构。没有哪个公司、哪个政府能决定”这个DID能不能存在”。只要有一套DID Method的实现,谁都可以签发和解析DID。
DID不是被”分配”的,而是被”发现”的。你看不到任何管理机构,是因为管理机构不应该是任何一家公司。
DID Document:你数字身份的”背面”
身份证正面是号码,背面呢?是你的姓名、性别、住址、签发机关、有效期——这些信息才是验证你身份时真正需要的东西。
DID也一样。DID本身只是一串字符,如果有人想验证你的身份,ta需要知道的是:这个DID对应的公钥是什么?我能用哪个端点来和你建立安全连接?你支持哪种签名算法?
这些信息写在哪里?写在DID Document(DID文档)里。
一个标准的DID Document包含9大核心元素:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
capabilityDelegation/Invocation
|
|
|
给你看一个真实的DID Document长什么样:
“@context”: “https://www.w3.org/ns/did/v1”,
“id”: “did:example:123456789abcdefghi”,
“id”: “did:example:123456789abcdefghi#keys-1″,
“type”: “Ed25519VerificationKey2020”,
“controller”: “did:example:123456789abcdefghi”,
“publicKeyMultibase”: “zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV”
“authentication”: [“did:example:123456789abcdefghi#keys-1″],
“id”: “did:example:123456789abcdefghi#vcs“,
“type”: “VerifiableCredentialService”,
“serviceEndpoint”: “https://example.com/vc/”
看到没有?DID Document里没有你的真实姓名、没有你的生日、没有你的手机号。它只包含密码学材料和访问端点。验证身份靠的是”你知道私钥吗?”,而不是”你叫什么名字?”。
这就带来一个根本性的变化:从”你是谁”变成”你能证明什么”。
DID不回答”你是谁”,只回答’你能证明什么’。前者需要信任,后者只需要数学。
DID解析:从一串字符到一本”身份档案”
好,现在你有一个DID,也知道了DID Document长什么样。但问题是——你拿到的只是一个字符串,怎么查到它背后的DID Document?
这就是DID解析(DID Resolution)要做的事。
它的工作原理非常直观:你有一个DID解析器,给它一个DID,它返回一个DID Document。背后的逻辑类似于DNS解析——你在浏览器里输入 example.com,DNS服务器返回一个IP地址。在DID的世界里,你输入 did:example:123,DID解析器返回一份完整的DID Document。
但比DNS更强大的是,DID解析还有一个升级版叫DID URL解引用(DID URL Dereferencing)。
did:example:123456789abcdefghi#keys-1
这行字符的意思是:去解析 did:example:123456789abcdefghi 这个DID的文档,然后从里面取出#keys-1 这个公钥。一次调用,精准定位。
这就好比你不是问”这个人的户籍信息是什么?”,而是直接问”这个人的电话号码是什么?”——更精确,更高效。
DID Method:不同”手机系统”的哲学之争
前面提到,DID的格式里有一个关键部分叫 method-name。为什么要有这个东西?
你可以把DID Method理解为不同的手机操作系统——都是智能手机(都能打电话、都能装App、都能上网),但iOS的底层是Darwin内核,Android的底层是Linux内核,HarmonyOS的底层是微内核。同样,不同的DID Method背后是不同的底层账本、不同的共识机制、不同的存储方式。
下面说几个最常见的DID Method,你看看它们的差异有多大:
did:key—— 最极简的方案。DID本身就是公钥的哈希值,不需要任何区块链,不需要任何分布式账本。给你看个例子:
did:key:z6MkhaXgBZDj7sP7PfbKj3J6ZUJLJLuNKwKYPfJ5TqJYKJoP
优点是什么?轻量、零成本、离线可用。缺点呢?公钥变了DID就变了,不支持”换钥匙不换ID”。
did:ethr—— 基于以太坊的方案。DID = 以太坊地址。所有操作(创建、更新、删除DID Document)都在以太坊上存证。
did:ethr:0xb9c5714089478a327f09197987f16f9e5d936e8a
优点:利用了以太坊的安全性,可审计。缺点:每次操作都要Gas费,而且以太坊的TPS……懂的都懂。
did:web—— 最有意思的方案之一。DID的解析完全依赖传统的DNS+HTTPS。你的DID Document就是一个托管在你自己域名下的JSON文件。
解析这个DID时,解析器会去 https://example.com/.well-known/did.json 下载DID Document。
优点是什么?不需要区块链,不需要任何新基建,任何一个有域名的人都能拥有DID。缺点呢?它根本不是去中心化的——你的DID受控于你的域名注册商、DNS服务器、以及你的证书颁发机构。
选择哪种DID Method,本质是一种取舍——你在去中心化、性能、成本、易用性之间画一条你认为最合理的线。没有完美方案,只有最合适的方案。
除此之外还有 did:sov(基于Hyperledger Indy)、did:ion(基于比特币的Sidetree协议)、did:keri(基于KERI的轻量级方案)等等。每种Method背后都有不同的设计哲学和应用场景。
回到开头的问题:你凭什么拥有自己的ID?
它不是又一个”账号体系”。它是一套不依赖任何中心化平台的全球唯一标识符标准。
你的DID是你自己生成的,私钥在你手里,DID Document可以存在IPFS上、存在区块链上、甚至存在你自己的服务器上。没有任何公司能”收回”你的DID,没有任何平台能”封禁”你的DID。
当你登录一个应用时,你不是”注册”一个新账号,而是出示你的DID,用私钥签个名,应用确认”嗯,这人是did:example:123″。不需要手机号验证码,不需要邮箱激活,不需要设置密码。
你的社交图谱、你的数字资产、你的信用记录——这些数据跟着你的DID走,而不是跟着平台走。换平台?把DID Document里的service端点改一下就行了。
去中心化标识符不是技术进步,而是权力转移——从平台手里拿回你身份的控制权。
这件事能不能落地、什么时候落地、以什么方式落地,还有很多争议。但方向是明确的:互联网的下一站,一定属于一个真正”属于用户自己”的身份层。