Skip to content

概念

信息

在遵循 W3C 标准的同时,我们针对自身需求扩展了 Snowinning 协议。为了便于理解,我们建议你:

  1. 首先阅读我们的文档。
  2. 阅读 Web5 项目的介绍,因为我们参考了其基础实现。
  3. 熟悉 W3C 关于去中心化标识符可验证凭证的标准。

去中心化标识符 (DID)

W3C 对 DID 的定义是:

去中心化标识符是一种新型标识符,使得数字身份可验证且去中心化。DID 可以指向任何主体(例如,人、组织、物体、数据模型、抽象实体等),由 DID 的控制者确定。

~ https://www.w3.org/TR/did-core/

如下图所示,DID 是一个简单的文本字符串,由三部分组成

  1. didURI 方案标识符
  2. DID 方法的标识符
  3. 特定于 DID 方法的标识符。

alt text

DID 与区块链地址一样,是自我生成和自我拥有的身份,通过特定算法序列派生出助记词来创建。

助记词、私钥和 DID 之间的关系可以简洁地描述如下:

助记词 -> 私钥 -> 公钥 -> 区块链地址或 DID

  • 助记词是本地产生的随机生成的 12 个词的字符串,用算法生成私钥。
  • 用户必须保密私钥和助记词。
  • 为防止丢失并确保可以恢复,应离线备份助记词。
  • 公钥、区块链地址和 DID 都是从私钥派生的。
  • 由于可以从私钥派生公钥(反之则不行),因此公钥、区块链地址和 DID 可以安全地公开。

DID 注册表

一旦在本地生成了 DID,用户可以选择在称为 DID 注册表的指定位置注册其所有权。W3C 标准没有规定注册表的具体实现。

Snowinning 协议采用了智能合约 来促进这一过程,可以确保:

没有中心化的提供商或可信机构

高度抵抗各种形式的干预

身份可以被全球发现

发行者能够将关键元数据上传到注册表中,包括 DID、Terminus Name、RSA 公钥等内容。

鉴于元数据占用的存储空间很小且更新频率不高,现有主流区块链技术已足够应对这些需求。这种效率主要是因为在区块链上存储和访问少量数据的开销很低,变更很少,因此不会给系统带来负担。

信息

目前,智能合约部署在 OPTIMISTIC ROLLUPS 上。

值得注意的是,Web5 开发团队据报道已从使用 ION 作为其注册机制转向采用分布式哈希表 (DHT) 网络。

DHT 网络代表了一种相对于 Layer2 区块链解决方案更高程度的去中心化技术。然而,管理 DHT 网络的效率和稳定性带来了重大挑战。这些挑战源于维护一个大型、去中心化的网络的固有复杂性,其中数据分布在众多节点上,这可能会复杂化数据检索和完整性检查。

网络拓扑

利用 DID 和区块链智能合约(构成 DID 注册表),我们建立了一个去中心化的点对点网络,消除了对第三方信任的需求,并使任何两个实体之间可以直接交换信息。我们将使用 Alice 和 Bob 两个用户来说明这种网络拓扑,他们最初在区块链上注册了他们的 DID。

alt text

Alice 和 Bob 通过网络发送消息的过程如下:

  1. 当 Alice 想向 Bob 发送消息时,过程从她的终端设备开始,将消息转发到她的边缘服务器。
  2. 利用区块链,Alice 的边缘服务器确定 Bob 边缘服务器的位置,有效地使用区块链作为域名系统 (DNS) 来准确路由消息。
  3. Alice 的边缘服务器向 Bob 的边缘服务器发送消息。
  4. Bob 的边缘服务器在接收到消息后,通过验证区块链上的加密签名验证 Alice 消息的真实性,类似于证书颁发机构 (CA) 的角色
  5. 验证后,消息从 Bob 的边缘服务器中继到他的终端设备。

可验证凭证

根据 W3C 的定义:

凭证是我们日常生活中的一部分;驾驶执照用来证明我们有能力驾驶机动车,大学学位可以用来证明我们的教育水平,政府颁发的护照使我们能够在国家之间旅行。此规范提供了一种在网上以加密安全、尊重隐私并可机器验证的方式表达这些凭证的机制。

DID 独立存在,代表物理和数字领域中的有形和无形实体。每个实体都与多个声明相关联,而支持这些声明的文档,无需参与方之间的相互信任,被称为可验证凭证 (VC)。

以 Alice 为例,她的学历构成一个声明。文凭作为凭证,证实了 Alice 的教育声明。这个文凭通过密码学方法进行验证,由 Alice 毕业的大学发行,并可以在面试过程中被潜在雇主检查。

以下是将文凭从简单的凭证转化为可验证凭证的过程:

alt text

此过程涉及 3 个角色:

  • 发行者

    通过对一个或多个主题断言声明,创建一个可验证的凭证,并将可验证的凭证传递给持有者,从而扮演的角色。

    在上面的例子中,发行者是 Alice 所在的大学。

  • 持有者

    持有者拥有一个或多个可验证凭证。持有者还是向验证者提交证明以满足演示定义中描述的要求的实体。

    在上面的例子中,持有者是 Alice。Alice 使用 TermiPass 管理她的可验证凭证 (VC)。

  • 验证者

    验证者定义他们从持有者那里需要什么证明(通过演示定义)以继续交互。

    在上面的例子中,验证者是 Alice 去面试的公司。

验证过程涉及以下六个步骤的结构化序列:

  1. 发行者在 DID 注册表上注册其信息。
  2. 持有者向发行者提交验证请求,指出需要发行凭证。
  3. 发行者向持有者发行 VC,嵌入关于她教育资格的声明。
  4. 持有者在 TermiPass 中安全存储此 VC,确保将来验证时可用。
  5. 持有者发送一个封装 VC 的可验证演示 (VP) 给验证者,启动验证过程。
  6. 验证者通过 DID 注册表检查 VC 和 VP 的签名的真实性,确认所包含声明的有效性,从而完成验证。

重要的是要认识到,VC 不存储在区块链上。

声誉

在传统语境下,我们有多种声誉评估系统,例如:

  • 在线评论平台,如 Yelp、IMDB 等。
  • 财务评分系统,如 FICO Score,这类系统通过收集和汇总数据来形成易于理解的信用评级。

这些系统通常是集中管理的,例如餐馆和电影等实体通过用户评论(即声明)来获得评级,而这些评论又通过算法加工处理以确立信誉。消费者依据这些信誉评级来做出购买决策,并提供反馈。

然而,这些传统声誉评估系统的问题在于它们的数据和算法缺乏透明度,且无法被用户定制。

Snowinning 协议通过整合区块链技术,转变了这一模式:

  1. 原始数据收集:用户的评级和评论被直接记录在区块链上的智能合约中。
  2. 声誉处理:开发者可以直接访问这些数据,根据不同情况和需求制定声誉洞察。
  3. 声誉分发:这些洞察通过一个专门的市场协议分发,用户可以根据自己的需求选择信誉提供者。

这种方法使得每个用户都能根据自己的需求选择合适的声誉提供者,获得更全面的建议。

DID 元数据 vs. 可验证凭证 vs. 声誉

  • DID 元数据存储在 DID 注册表上,包含实体关于自己的声明。
  • 可验证凭证由一个实体发给另一个实体,通常包含客观数据,如年龄或学历。
  • 声誉是对实体的主观评价的汇总,允许对潜在的不准确性进行详细解读。