Web2 提供了一整套的身份体系,代价是过度中心化,用户无法控制自己的数据。DID 的出现满足了这样的需求,用户的身份不再由某个中心化的平台提供,而是“去中心化”的。与资产不同,身份的特殊之处在于它是社会性的,如果一个人自幼独自生活在荒岛上,那么名字都是没有意义的。这种社会性要求身份是一定程度上公开的,这与区块链和Web3的“应用原语”是天然相悖的,这带来了很多问题。

存在的问题

目前的我们的身份方案大抵是将标识附着在某个去中心平台上,包括以下几种类型:域名服务、内容服务、资产服务等等。这种机制发展到最后无非两个结果:

  1. 由多个平台维系用户的身份,满足不同的场景和需求。用户日常需要多个身份平台,在事实上增加了用户控制自己身份和数据的难度。
  2. 最终只有少数(2个或3个)平台获得了垄断性的地位,绝大多数用户只能使用这些平台。这在事实上同样是中心化的,虽然它们是去中心化平台。

这两种结果揭示了 DID 产品的一个核心悖论:当你去做 DID 时,这已经不再是 DID 了(这个悖论反映到产品上,则是通过新增一个 ID 用来控制用户其他所有的 ID ,依次形成 DID ,例如你可以将不同地址映射到 ENS ,或通过陶瓷建立一个 DID 账号,并将其他地址加入到控制器中。)

具有双向链表结构的 DID

我们希望建立一种 DID 满足一下两个条件

概述

我们通过将用户 ID 以类似于双向链表的形式关联起来,任何第三方从任意 ID 都可以访问到前驱节点和后续节点,从而获取完整身份信息。在计算机领域这是一个相当基础的数据结构,但用在 DID 中相当有用。

用户的 ID 存储着生活的某个片段,将所有片段结合起来构成完整的用户身份,这类似于电影中的蒙太奇手法,我们将其命名为蒙太奇协议,目前为止这仅是一个创意,尚未完全实施。它有几个重要的核心约定:

  1. 可发现性 - 用户与协议的交互应当是公开且可发现的。例如区块链的事件。
  2. 中立性 - 与任何平台无关,包括去中心化平台。
  3. 一致性 - 用户与协议交互的结果应当是一致性的。
  4. 唯一性 - 用户身份在全局是唯一的。

这几个特性让它成为一个正在意义上的去中心化身份。