“DID 身份系统通识篇(上)”

"DID 身份系统通识篇(上)"

前 言

基于区块链技术的 Web3 显露在历史舞台,有相当部分推力来源于人们对它能够对抗商业组织特权与非自愿审查的期待——通过以代码代替人治来保障每位参与者的权益。就目前的情况来看,行业给出的各类解决方案——用户通过肆意地注册钱包以进行交互——不仅导致女巫攻击和钓鱼攻击的频繁出现且无法问责,侵蚀 Web3 社区的信心,损害 Web3 用户的隐私安全和资产安全;也致使拥有链上信誉但缺乏资产的 Web3 用户无法享受到优质的金融服务(好比线下信用贷模式的金融服务)。

Web2 中被诟病的“强者剥削弱者”、传统社会中“劣币驱逐良币”的恶行在 Web3 中重现。就连 Web3 所呼吁和信奉的数据自主权(SSI )(这也是它吸引用户的特质之一)也在实现的道路上屡屡受阻,因为用户的隐私数据要么被存储在去中心化项目的中心化服务器上,要么被公开完整地呈现在区块链上,其安全性和隐私性并没有获得实际保护;甚至在一定程度上,相较 Web2,带来了更大程度的经济损失,且一旦遭受则几乎无可挽回,并且由于缺乏合适的监管加持,恶意攻击者的身份难以定位和追责。

在这样的背景下 Web3 意识到,可视化身份主体的信誉、建议基于身份的契约、以及引入合适的法规,对其长足发展是不可或缺的。基于这样一个基础意识,由“去中心化标识符(DID)+ 可验证凭证(VC)”构成的去中心化身份概念逐渐清晰,为 Web3 社会下身份系统的构建提供了一份解决方案。

简要说明下,身份系统发展从由单一权威机构进行管理和控制的中心化身份;到使用户身份数据具备一定程度可移植性、可跨平台登录的联盟身份,如微信、谷歌账号的跨平台登录;到需经授权和许可来进行身份数据共享的初步的去中心化身份,如 OpenID;再进步到能真正实现数据完全由个人所拥有和控制的自主权身份(SSI:Self-Sovereign Identity)——在 Web3 中通常指基于 DID+VC 构建的具有隐私安全的去中心化身份系统。中心化正在部分被去中心化所取代,去中心化不再涉及中央数据存储和收集。

image1

身份隐私数据现状

身份及其相关信息多用于证明“我是谁”,“我是否符合享受某项服务所需的特定要求”。如找工作时的学历要求、购买房屋和办理银行贷款时的资产证明、以及我们是否满足成为某实体或虚拟服务商的VIP客户的条件,等等许多场景都需要用到身份信息。

现实生活中,人们的身份信息在公务系统中备案,并在各类生活场景中通过出示相应证件和证书以核查和验证;互联网世界中,我们的身份以账号密码表示,基于此的行为数据由相应服务提供商的数据存储系统记录。

它们的共同点是:

  1. 用户数据由第三方组织保存(他们无法自己控制与身份相关的信息);
  2. 用户无法自由使用自己的数据(因此无法决定谁有权访问他们的身份信息、无法控制访问者的授权范围)。

因为当用户需要通过网络来联接与世界各地的社交、游戏、金融、购物等活动时, 这些身份信息需毫无保留地上传给某个平台,且用户活动生成的线上游戏身份数据、社交身份数据等也被封存在巨头的服务器中——也就是说,用户仅有权查看但无权按照自己的意愿删除、增加或交易自己的数据。这些数据无保留的暴露给机构存在着相当大的隐私和安全隐患,毕竟机构们利用特权擅自盗用用户数据的现象似乎已经是 Web2 中屡见不鲜、习以为常的了。

与此同时,各组织间相对独立的数据系统迫使用户数据被碎片化地保存在不可互相访问的系统中,因此用户难以完整地查看、调用、解析自己的数据。而实现 SSI 的先觉条件之一是用户能自己掌控自己的隐私数据,即拥有数据主权——数据保管权和数据使用权。而 DID 实现了这一点。

image2

DID——归还用户的数据主权

什么是 DID

简单来说,去中心化标识符(DID)是一个字符串形式的 URI, 具有全局唯一性、高可用性、可解析性和加密可验证性,对任何受益于自管理、加密可验证标识符——如个人身份、组织身份、链上活动历史、物联网场景等的应用程序都大有裨益,也可用以标识其他形式的主体——如产品或是一些不存在的东西,譬如想法或概念等。

好比 Ethereum 和 Polygon 之类的很多区块链平台都在关注 DID,但目前都在试验阶段,还没有一方给出系统化的方案。最常使用的 DID 标准来自于W3C(World Wide Web Consortium,全球最大的 Web 规范发展组织)和 DIF(Decentralized Identity Foundation),其中 W3C 标准使用更为广泛。

DID 和 VC 是密不可分的,W3C VC 的商业部署大量使用 DID 来标识人员、组织和事物,并实现一定程度的安全和隐私保护保证,未经许可任何其它方都无法访问、使用、泄露 DID 主体的身份数据。

用户的 DID 完全由用户自主控制,根据确定的算法生成,并非由单一机构全权赋予。DID 可被解析为存储于区块链之上的 DID 文档——包含如授权密钥(Authentication Key)、加密密钥(Agreement Key)、委托密钥(Delegation Key)、验证密钥(Assertion key),以及与 DID 主体交互的服务端点链接等信息。这些密钥可以被通俗的理解为生活中我们用于不同目的的签名,签名的文件(目的)可能是保密涵、委托书、或同意某方使用你的个人信息的授权书等等。

也正是因为基于这样的公钥基础设施,DID+VC 身份系统才使得户能更好地保护他们的数据并选择是否共享以及如何共享数据,因为只有私钥的所有者才拥有 DID 的完全授权。这和区块链中资产由私钥控制同理。

说句题外话,但这也会导致以下问题的出现:

  • 找回丢失的私钥非常困难;
  • 一旦你的私钥被盗,冒充等恶意行为可能会导致“你”行为不端。

因此所有用户都有责任做好其私钥和助记符的安全备份。

image3

VC——线上可信赖的身份信息

VC 是比 SBT 深入的身份系统要素。

2022 年 5 月,以太坊的联合创始人 Vitalik Buterin、微软首席技术官办公室的研究员 Glen Weyl、Flashbots 的策略师 Puja Ahluwalia Ohlhaver 共同发布了《Decentralized Society: Finding Web3’s Soul – 去中心化社会:寻找 Web3 的灵魂》 引发了人们对 SBT(SoulBound Token:灵魂绑定通证)的热议。去中心化身份概念也因此获得更多关注。

SBT 在一定程度上可以代替 VC 用以构建 Web3 的社会关系,EIP-4973、EIP-5114、ERC721S 、EIP-3525 等协议基本代表了对 SBT 应用形式的畅想。但 SBT 天然的局限性限制着它构成一个完善的去中心化身份系统:

  1. 首先,SBT 的本质仍是 Token。Token 指向的是一个钱包地址,而非某个能代表身份的身份标识,任何能获得钱包地址的人都可以查看该钱包所有者拥有的 SBTs,毫无隐私可言。更重要的是,我们并不希望社会契约主体是一个个钱包而非身份,因为交易只是社会活动的一部分。
  2. 其次,SBT 依赖于链存在。虽可在如 EVM 等多链兼容环境态中证明身份,但对于跨生态、跨平台、甚至脱链的场景是无能为力的。
  3. 最后,SBT 在出示和应用场景方面也具有相当的局限性。类似于 NFT,现有的 SBT 只有完全展示和完全隐藏这两种出示形式 ,并不具有完备的保护数据隐私的功能。

虽然目前业内也在做 SBT 聚合,但各项目发布的 SBT 的信息承载形式并不统一,所以也只能是在白板上排列展示,其可读性极差,并不便于用户使用和解读。

即使现在可以选择性地披露 SBT——即根据需要出示 SBT 中的部分信息,但这里要敲黑板的是,这部分信息也是属于不加修饰和掩盖的明文披露,这就存在一个问题——用户在证明自己的身份情况时由于必须部分暴露 SBT 中的隐私数据,那么经多次暴露后,这些隐私数据仍可被收集、整理、分析,形成完整的用户画像,从而威胁隐私安全。这一点和我们所说的 Web2 画像是一样的,你想想当你打开淘宝看见的推送广告,居然是相似于你刚才逛过的家具店品类的信息,或者淘宝总是根据你的消费习惯来向你推送对应款式、价位、风格的商品,非常像一个信息茧房。并不是所有人都总是喜欢信息茧房,它会限制你的信息开拓甚至更严重情况下的会局限你的认知。

所以如我们所见,SBT 风华短暂,能够广泛、深度使用的场景非常有限,我们已经对“SBT 能够满足未来 Web3 社会复杂的身份数据交互需求”这样一个想法打上了问号。

而 DID+VC 方案则有效地化解了上述 SBT 的三个局限,通过密码学等技术手段确保发布、持有和控制 DID 和 VC 的最终权掌握在用户手中。并通过系列技术和协议保证:

  • 身份系统可跨链、跨平台、甚至脱链使用;
  • 身份信息展示方案统一,无需根据不同的场景来使用不同的展示方案;
  • 甚至可在 DID 协议之上开发定制化的产品。

(补充:至于 NFT,笔者认为并不能拿来和 VC 做比较,因为 NFT 代表的是一种所有权,且这种所有权是可以更改和转让并可追踪的。而 VC 承载的则是与身份相关的信息,这些信息是属于你的、独一无二的,是不能转让的。)

image4

什么是 VC

VC 是一个 DID(如某可信机构、某 DAO 组织、政务系统、商业机构)对另一个 DID(如用户、合作方)的某些属性做背书而发出的描述性声明,是基于密码学生成和验证的,用以证明其所有者某些属性且这些属性是真实的(如身份、能力、资质等)[1]。这些认证结果又可以被记录在存储于类似 Arweave、IPFS 之上的其他 VC 之中,所有相关信息公开、可验、可查、永久可追溯,任何人都可以对其进行独立验证以确保凭证内容的真实可信[2]。这些 VC 也可以上线各主要公链,与其他生态应用程序互操作。有且仅有具有 VC 所有权的 DID 主体能够控制谁可以访问以及如何访问他们的 VC。

注意,上面一段我们提到了两种 VC,一个用于存储用户的隐私数据[1],我们在这里称为个人 VC;另一个用于存储个人 VC 验证的凭证 [2],我们在这里称为结果 VC。这里有个问题,目前大多数的可验证凭证都是存储在没有能力提供隐私保护的中心化数据库中或区块链上,这对于结果 VC[2] 来讲并无大碍,但对于个人 VC[1] 来讲则是无法容忍的。

那么我们要如何才能确保包含个人隐私数据的 VC 的存储安全性和隐私性呢?这里