图片来源:由无界版图 AI 工具生成
本文涵盖了去中心化身份的核心概念、互联网上身份的演变、Web3 身份基础设施堆栈的逐层概述以及隐私基元的相关发展。人身证明(Proof-of-Personhood)、合规性和应用层将在未来的文章中介绍。
Web3 身份基础设施生态 - 2022 年 12 月
身份是由与个人、实体或物体相关的数据组成的新兴属性。在物理世界中,我们以抽象的声誉和心理关联的形式将这些数据存储在大脑内。在数字世界中,身份被形式化为两个组成部分:
-
标识符:一组独特的字符或数字,用于识别一个主体(例如,护照号码、Twitter ID、学生 ID)。
-
与该主体相关的数据(如旅行历史、推特和关注、学术成就)。
为互联网创建身份层是困难的,因为对它应该是什么以及如何运行缺乏共识。数字身份与环境有关,我们会通过各种内容体验互联网,而这些内容至少存在于许多不同的环境中。如今,我们的数字身份大部分都是支离破碎的,处于少数利益相关方的控制之下,他们的利益是防止我们从他们的环境中溢出到任何其他地方。
-
企业将客户关系视为关键资产,不愿意放弃对这些关系的控制。到目前为止,没有任何一种方法可以作为这么做的动力。即使是一次性的临时身份,也比他们无法控制的框架要好。
-
当涉及到维护与客户和供应商的数字关系时,像金融这样的特定行业有着独特的需求(如合规)。
-
政府有区别于其他类型组织的需求。例如,对驾驶执照和护照的管辖权。
这种模式在个人和管理我们身份和数据的各方之间造成了权力的不对称。它限制了我们的自主权,使我们无法同意、有选择地披露自己的信息,并在不同的环境中移植我们的身份,以获得在线和离线的一致体验。
在 Crypto 和 web3 兴起之前,去中心化身份已是一项集体努力。总体目标是让个人重新获得对其身份的自主权,而不依赖中心化的、单一的看门人。客户数据的滥用和对大公司信任的减弱,使去中心化成为下一个互联网身份时代的核心。
去中心化身份的核心概念
去中心化标识符(DID)和证明是去中心化身份的主要构建模块。DID 被发布并存储在可验证的数据注册处(VDR),作为自主的“命名空间”,不受中央管理。除了区块链之外,去中心化的存储基础设施和 P2 P 网络也可以作为 VDR。
在这里,实体(个人、社区、组织)可以使用去中心化的公钥基础设施(PKI)来认证、证明所有权和管理他们的 DID,与传统的网络 PKI 不同,它不依赖中心化的证书机构(CA)作为信任根。
关于身份的数据被写成证明,即一个身份对另一个(或他们自己)的“声明”。声明的验证是通过 PKI 实现的加密签名来完成的。
去中心化标识符有 4 个主要属性:
-
去中心化:不依赖中心化机构来创建。实体可以随心所欲地创建,在不同的环境下,保持他们所期望的身份、角色和互动的分离。
-
持续性:一旦创建,就永久地分配给实体。(虽然有些 DID是为短暂的身份设计的)。
-
可解析:可以用来揭示有关该实体的额外信息。
-
可验证:实体可以证明 DID 的所有权或关于它的声明(可验证的凭证),而不依赖第三方,这要归功于加密签名和证明。
这些属性将 DID 与其他标识符区分开来,如用户名(不可验证)、护照(不可去中心化)和区块链地址(非持续性,可解析性有限)。
万维网联盟(W3C)是一个由组织、工作人员和公众组成的国际社区,共同致力于开发网络标准。W3C 的 DID Spec 定义了 4 个主要部分:
-
方案:前缀“did”告诉其他系统,它正在与 DID 进行交互,而不是其他类型的标识符,如 URL、电子邮件地址或产品条形码。
-
DID 方法:向其他系统指定如何解释该标识符。在 W3 C 网站上列出了 100 多种 DID 方法,通常与它自己的 VDR 相关联,并有不同的机制来创建、解析、更新和停用标识符。
-
唯一标识符:一个特定于 DID 方法的唯一标识。例如,一个特定区块链上的地址。
-
DID 文件:上述 3 个部分可解析为 DID 文件,其中包含实体可以自我认证的方式,关于实体的任何属性/声明,以及指向关于实体的额外数据定位的指针(“服务端点”)。
去中心化标识符和DID文档的剖析
Crypto 的影响
虽然公钥基础设施(PKI)已经存在了很长时间,但 Crypto 通过代币网络的激励机制加速了它的采用。曾经主要由注重隐私的技术专家使用的东西,现在成为了参与新经济的先决条件。用户需要创建钱包来自我保管资产,并与 web3 应用程序交互。在 ICO 热潮、DeFi 之夏、NFT 狂热和代币化社区的推动下,用户手中的钥匙比以往任何时候都多。随之而来的是一个充满活力的产品和服务的生态系统,使密钥管理更加容易、更加安全。Crypto 一直是去中心化身份基础设施和采用的完美特洛伊木马。
让我们以钱包开始讲起。虽然钱包仍然主要是在金融意义上的资产管理背景下思考的,但代币化和链上历史已经使我们能够代表我们的利益(NFT 藏品),工作(Kudos,101)和意见(治理投票)。丢失私钥正在变得不像丢失金钱,而更像是丢失护照或社媒账户。Crypto 模糊了我们拥有的东西和我们是谁之间的界限。
然而,我们在链上的活动和持有的东西对我们是谁给出了一个有限的看法(而且不是保护隐私的)。区块链只是去中心化身份堆栈的一个层次。其他的堆栈也有助于解决一些重要的问题,比如:
-
我们如何在网络和生态系统中识别和认证自己?
-
我们如何证明自己的事情(声誉、独特性、合规性),同时保持隐私?
-
我们如何授予、管理和撤销对我们数据的访问?
-
在一个我们控制自己身份和数据的世界里,我们如何与应用程序交互?
这些问题的解决方案对互联网在未来几代人中的面貌有着深远的影响。
下面几节将逐层介绍 Web3 身份堆栈的情况。即可验证的数据注册、去中心化存储、数据的可变性和可组合性、钱包、认证、授权和证明。
去中心化身份基础设施堆栈
Web3 身份堆栈
区块链作为可验证的数据注册处
区块链的分布式和不可改变的特性使其适合作为可验证的数据注册处,并在此基础上发布 DID。事实上,各种公共区块链都有 W3 C 的 DID 方法,例如:
-
以太坊,did:ethr:public key代表以太坊账户的身份。
-
Cosmos,did:cosmos:chainspace:namespace:unique-id代表 Cosmos 链间兼容的资产
-
比特币,其中did:btcr:btcr-identifier代表一个 TxRef 编码的交易 ID,参考基于 UTXO 的比特币区块链中的交易位置。
值得注意的是did:pkh:address——一种与账本无关的生成性 DID 方法,旨在实现区块链网络的互操作性。根据CAIP-10标准,是账户 ID,用于跨链的密钥对表达。
Fractal是一个身份供应和验证协议,旨在为需要独特和不同级别的 KYC 用户的应用而设计。在完成有效性和/或 KYC 检查后,Fractal DID 会被发布到相应的以太坊地址,并被添加到相应的列表中。Fractal 的DID 注册是以太坊上的一个智能合约,交易方可以根据该合约查询 Fractal DID 及其验证级别。
Kilt、Dock和Sovrin是用于自我主权身份的特定应用区块链。在撰写本文时,它们主要被企业用来向终端用户发放身份和凭证。为了参与网络,节点需要质押原生代币,以处理交易,如 DID/凭证的发行,定义凭证模式,并执行撤销更新。
去中心化数据存储
虽然通用区块链也可以作为不可改变的用户数据的数据源,如资产所有权和交易历史(如投资组合跟踪器和 "DeFi 评分" 应用程序),但它们可能不适合存储关于用户的大多数数据,因为编写和定期更新大量信息的操作成本很高,且会损害隐私,因为数据是默认可见的。
也就是说,有一些特定应用的区块链,如Arweave*,是为永久存储而设计的。Arweave 向矿工支付区块奖励和交易费用,以换取对网络上存储的信息的复制。矿工需要提供 "访问证明",以便增加新的区块。一部分费用也被支付给一个永久的捐赠基金,当存储成本不能被通货膨胀和费用覆盖时,该基金将在未来支付给矿工。
以太坊和 Arweave 是基于区块链的数据持续性方法的例子。在 Ethereum 上,每个完整的节点都必须存储整个链。在 Arweave 上,处理新区块和新交易所需的所有数据都被记入每个单独区块的状态中,允许新的参与者加入网络,只需从其受信任的同伴那里下载当前区块。
基于合约的持续性意味着数据不能被每个节点永久地复制和存储。相反,数据是通过与多个节点签订合约而持续存在的,这些节点同意在一段时间内持有一块数据,并且每当它们用完时必须续约以保持数据的持久性。
IPFS允许用户在一个点对点的网络中存储和传输可验证的、有内容地址的数据。用户可以在自己的 IPFS 节点上保存他们想要的数据,利用专门的节点组,或使用第三方的 "pinnin" 服务,如Pinata、Infura或web3.storage。只要有一个节点在存储数据,数据就会存在于网络中,并在其他节点要求时提供给它们。在 IPFS 的顶层是加密经济层,如Filecoin和Crust Network,旨在通过创建一个长期数据持久性的分布式市场来激励为网络存储数据。
对于个人身份信息(PII),许可的 IPFS 可以用来遵守GDPR/CCPA的被遗忘权,因为它允许用户删除他们存储在网络中的数据。身份钱包Nuggets采用了这种方法,并通过让商家和合作伙伴运行专门的节点,进一步去中心化了。
其他基于合约的去中心化存储解决方案包括Sia和Storj,它们在整个网络的多个节点之间加密和分割单个文件。两者都使用擦除编码(只需要一个存储节点的子集来提供文件),以确保数据的可用性,即使一些节点离线。它们也有内置的激励结构,使用原生代币进行存储。
数据变更和可组合性
通用区块链、Arweave 和 IPFS 都保证了不变性,这对静态 NFT 艺术和永久记录等数据来说是一个有用的属性。然而,我们今天与大多数应用程序的交互会不断地更新我们的数据。为易变数据设计的 Web3 协议就是为了实现这一点,利用了下面的去中心化存储层。
Ceramic是一个用于去中心化数据变更和可组合性的协议,其工作原理是将 IPFS 或 Arweave 等持久性数据存储网络中的不可改变的文件转化为动态数据结构。在 Ceramic 上,这些 "数据流" 类似于它自己的可变账本。私人数据可以在链外存储,其模式在 Ceramic 上有索引,附在通往外部私人存储的 DID 数据存储上。
当用户在一个由 Ceramic 驱动的应用程序中更新他们的资料时,该协议将这些更新验证为一个流,将其转化为一个新的状态,同时保持对以前状态变化的跟踪。Ceramic 上的每一个更新都由一个可以映射到多个地址的 DID 来验证,为用户在没有服务器的情况下更新他们的数据铺平道路。
今天,Web2 实体拥有 UI 和后台,它们在那里存储和控制用户数据。谷歌和 Facebook 利用这些数据在算法上个性化我们在他们平台上的体验,进一步将他们收集的数据产品化。新的应用程序必须从头开始,不能从一开始就提供个性化的体验,这使得市场的竞争力下降。
Web3 使数据民主化,为新产品和服务提供了公平的竞争环境,为应用程序的实验和竞争市场创造了一个开放的环境。在一个用户可以把数据从一个平台带到另一个平台的世界里,应用开发者不需要从一个空白的状态开始,它们可以立即给到用户个性化的体验。用户可以用他们的钱包登录,并授权应用程序读取/写入他们完全控制的 "数据库"。
Ceramic 上的ComposeDB是一个去中心化的图形数据库,使应用开发者能够使用GraphQL发现、创建和重用可组合的数据模型。图中的节点是账户(DID)或文件(数据流)。图中的边代表节点之间的关系。
DID 代表可以向图中写入数据的任何实体,例如最终用户、组织、应用程序或任何类型的认证服务。
模型是Ceramic 流,存储关于文档的数据结构、验证规则、关系和发现信息的元数据。开发人员可以创建、组合和重新混合模型,形成数据组合,作为他们应用程序的数据库。这取代了有着中心化的 UID 和相关数据的传统用户表。应用程序可以建立在由用户控制的公共数据集之上,而不是管理他们自己独立的表格。
由于应用程序可以去允许地定义他们将用于特定环境的模型,策展市场就变得非常重要,因为它为最有用的数据模型(为社交图、博客文章等定义的模式)提供了一个信号。有了这些数据模型的市场,应用程序可以对这些模型发出信号,使其更容易被消费。这将激励公共数据集产生更好的分析和信息图,以便产品在此基础上进一步创新。
Tableland是用于可变的、结构化的关系数据的基础设施,其中每个表都是作为 EVM 兼容链上的一个 NFT 被铸造的。NFT 的所有者可以为表设置访问控制逻辑,允许第三方在数据库上执行更新,如果该方有适当的写入权限。Tableland 运行一个链外验证器网络,管理表的创建和后续的变更。
链上和链下的更新由智能合约处理,该合约使用 baseURI 和 tokenURI 指向 Tableland 网络。通过 Tableland,NFT 元数据可以变更(使用访问控制)、查询(使用 SQL)和组合(与 Tableland 上的其他表)。
类似于像 ERC-20 和 ERC-721 这样的智能合约标准给了 dapp 一个关于我们如何创建和转移代币的共享语言,数据模型标准给了应用程序之间关于资料、声誉、DAO 建议和社交图的共享理解。通过任何人都可以提交的开放注册,这些数据可以被多个应用程序重新使用。
将应用程序与数据层解耦,允许用户在平台之间移植自己的内容、社交图和声誉。应用程序可以进入相同的数据库,并在其背景下使用,使用户能够在不同的背景下获得一个可组合的声誉。
钱包
广义上讲,钱包包括用于密钥管理、通信(持有人、发行者和验证者之间的数据交换)以及债权展示和验证的接口和底层基础设施。
值得区分的是加密钱包(MetaMask、Ledger、Coinbase Wallet 等)和身份钱包。加密钱包存储区块链网络特有的加密密钥,旨在发送/接收代币和签署交易。身份钱包存储身份,并允许用户创建和提供声明,这样他们就可以跨应用程序和服务提供身份数据。
身份钱包的例子包括ONTO,Nuggets, 和Polygon ID Wallet.。一些身份钱包,如Fractal,将有效性检查和 KYC 作为其进入流程的一部分,因此用户可以有一个声明(Claim),以提交给有此类要求的应用程序。这在加密钱包中要少得多。此外,身份钱包也更有可能支持 W3C 认可的 DIDs、可验证凭证和DIDComm的实现以及 web3 以外的用例。
WalletConnect是一个连接钱包与钱包以及 dapps 之间的通信协议。作为一个简约的、无偏见的协议,WalletConnect 已经为数以百万计的加密用户提供服务,在加速采用自我主权身份基础设施方面,WalletConnect 可能被证明是 DIDComm 的一个强有力的替代。与 DIDComm 需要服务供应商提供托管调解器基础设施不同的是,WalletConnect 将信息存储在中继网络的“云邮箱”中,当钱包重新上线时,将这些信息推送给钱包。
认证
认证是根据一个或多个认证因素来确认用户的身份。认证因素可以是用户拥有的东西(数字签名、身份证、安全代币)、他们知道的东西(密码、PIN、秘密答案)或生物识别(指纹、声音、视网膜扫描)。
在去中心化的身份范式中,用户可以使用他们的钱包认证自己。在后台,钱包使用其存储的密钥来产生数字签名,作为持有人拥有与该账户相关的私钥的“证明”。由于加密钱包可以产生签名,提供 web3 登录的应用程序能够让用户用他们的 Metamask 或 WalletConnect 进行认证。
多年来,加密用户们通过连“接钱包”与 dapp 交互。dapp 对连接的用户没有任何记忆,每次访问网站时都会把他们当作是一块白板。
今天,用户与 dapp 有了更深的交互模式。去中心化的身份信息在这里变得有用,因为它允许应用程序获得更多围绕用户的背景,在提供个性化的体验的同时,让个人保留对自己数据的控制。
对于更丰富的背景交互,如加载用户偏好、配置文件或私人聊天信息,应用程序需要首先确保它是在与账户背后的实际秘钥持有人对话。虽然“连接钱包”不提供这种保证,但认证标准可以。认证与用户建立了一个会话,并允许应用程序安全地读取和写入他们的数据。
Sign-In with Ethereum(SIWE)是由 Spruce、ENS 和 Ethereum 基金会率先提出的认证标准。SIWE 标准化了一种消息格式(类似于 jwt),供用户使用基于区块链的账户登录服务。Sign-In with X(CAIP-122)在此基础上,使 SIWE 成为以以太坊为中心的 SIWx 的实现,将标准泛化为跨区块链运作。
对于个人来说,这意味着能够用他们的 web3 钱包注册或登录,而不需要创建一个用户名和密码,“只需点击几下”的用户体验就能模仿社交登录,同时保持对其在线身份的主权。应用程序可以将此作为一种针对 web3 原生受众的市场策略,满足用户的需求。
从中期来看,使用加密钱包登录 dapp 和其他 web2 服务的能力将成为 web3 原生的用户体验改进。然而,这将使用户面临相关和跟踪问题,这些问题在 web2 中变得非常有害。通过Peer DIDs或自我认证的标识符的认证可以作为一个替代解决方案。
与上面描述的“普通”DIDs 不同,Peer DIDs 被设计为在 2 个或 N 个已知方之间使用。它们可以被用作每个服务和/或互动的唯一标识符。该数字身份中的加密钱包地址可以与 VC 一起存储,作为每个商家或服务互动的验证证据。
授权和访问控制
认证确认了用户的身份,而授权决定了一个实体应该能够访问哪些资源,以及他们被允许对这些资源做什么。这两个过程是独立的,但在用户体验流程中往往是携手并进的。在用社交登录方式登录到第三方服务后,用户可能会被提示一些授权请求,如下图所示:
在联合身份模式中,你授权第三方应用程序查看或更新你存储在身份供应商(如谷歌)的数据,他们维护着你授权给这些应用程序的列表和相关权限。Web3 授权基础设施和标准同样有助于实现这样的目标,只是你拥有自我主权的数据,并且可以授予每个第三方解密/阅读/更新数据的权利,而不需要中心化的中间人。
随着代币化社区的兴起,web3 代币门控产品如Collab.Land、Guild和Tokenproof也随之出现。这些工具的一个主要用途是对会员专用的 Discord 频道进行访问控制,并根据角色和声誉进行更细化的访问。社区可以根据代币持有量、链上活动或社会验证,以编程方式授予访问权,而不是手动分配访问权。
Lit是一个去中心化的密钥管理和访问控制协议,它利用 MPC 技术在 Lit 网络节点之间分配私钥的 "份额"。公钥/私钥对由PKP(可编程密钥对)NFT 表示,其所有者是该密钥对的唯一控制者。当任意定义的条件得到满足时,PKP 的拥有者可以触发网络聚合密钥份额,代表他们解密文件或签署信息。
在访问控制的背景下,Lit 使用户能够定义链上条件,给予链下资源访问权。例如,一个 DAO 可以上传一个文件到 Arweave 或 AWS,用 Lit 加密,并定义一组条件(如 NFT 所有权)。合格的钱包签署并向协议节点广播一条消息,协议节点检查区块链以确保签署者符合条件,如果符合条件,则为签署者聚集密钥份额以解密文件。这个相同的基础设施也可用于解锁 web2 体验,如 Shopify 折扣,上锁的 Zoom 房间和 Gathertown 空间,现场直播和谷歌驱动器访问。
Kepler围绕用户控制的数据库("Orbits")组织数据,这些数据库代表了数据的指定主机列表,作为一个智能合约,只有他们的密钥可以控制。这些数据库可以由可信方、跨主机的共识机制、资源所有者和许可有效性来管理。任何使用 SIWE 的人都可以立即利用私人数据库来存储他们的偏好、数字证书和私人文件。通过对多个存储后端的 "自带存储" 支持,用户可以自我托管或使用托管版本。
一些例子说明了应用程序如何使用前面提到的构建模块的组合:
-
Orbis是一个社交网络应用("web3 Twitter/Discord"),使用 Ceramic 进行数据存储和更新,私信在存储前首先通过 Lit 进行加密
-
使用 Lit 作为一个去中心化的加密系统,委托谁能够解密你的 Tableland 数据
-
Kepler 可以使用 Ceramic 文档作为一个信标,以路由到私人存储区
-
创建 Lit PKPs,让应用程序 "拥有" 一个 Ceramic 流,并授予 Lit Actions(IPFS 上的代码)在满足任意条件下签署和更新数据库的能力
CACAO是一种表示链不可知对象能力(OCAP)的标准,使用 Sign-in-With X 创建。它定义了一种方法,将 SIWx 签名操作的结果记录为基于IPLD的对象能力(OCAP),不仅创建了认证的事件接受,还为可验证的授权创建了可组合和可重放的授权接收。
授权方法让用户授予应用程序查看/更新其数据的细粒度、良好范围和可验证的能力。此外,它可以是基于会话的,这样它们就不必在每次更新时签署消息,而是在应用程序上进行丰富的交互,并在会话结束时签署一次。
证明和凭证
在这里,我们达到了去中心化身份基础设施堆栈的顶端,如图所示。
一些术语:
-
证明是指证明一项声明和签名是有效的,它们产生于对记录的事件进行独立核查的需要。
-
凭证是任何详细说明一个实体的信息的文件,由另一个实体或他们自己书写和签署。凭证是防篡改和可加密验证的,可以存储在一个钱包里。
可验证凭证(VC)是W3C 可验证凭证规范所定义的可加密的数字凭证的标准数据模型和表示格式:
-
发行者是凭证的签发方(如大学)
-
持有者拥有凭证(例如,学生)
-
验证者验证证书(如潜在的雇主)
-
可验证的呈现是指用户与第三方分享他们的数据,而第三方可以验证该凭证确实是由发行者签署的
请注意,这里的“发行者”、“持有者”和“验证者”是相对的。每个人都有自己的 DID 和他们收集的凭证。
凭证是声誉的基石,而声誉是一种社会现象,随环境的变化而变化。一个或多个凭证可以被用作一个实体的资格、能力或权威的代表。任何人都可以对自己说,他们以优异的成绩毕业于一所著名的大学,但这对其他人来说没有什么意义。大学持有的证书才被认为是合法的或有声望的。
虽然 Web3 原生的徽章和 X 证明项目并不都遵守 W3C 的 VC 标准,但我们可以从上面描述的系统中找到相似之处。
-
最直接的例子是不可转让的 NFT 徽章,只有完成了一些链上活动的钱包才可以铸造。因为所有的交易历史都在链上,所以从一开始就可以验证和防篡改。DegenScore通过汇总你与 DeFi 协议的互动来量化你的 ape 属性,并使用智能合约上的规则输出一个分数。你可以铸币,并将其作为一个 "DeFi 凭证" 保存在你的加密钱包中。如果有一个 Degen DAO 仅限于那些具有一定分数的人,那么你可以将这个 NFT 呈现给 DAO,随后代币门控协议可以验证你持有它,你便可以进入这个 DAO——Degen 证明
-
POAPs* 证明你参加了某个活动或在 IRL 中遇到了某人 -- 出席证明/邂逅证明
-
Otterspace允许 DAO 决定什么是有意义的工作,并为其成员颁发 ntNFT 徽章,Proved要求 DAO 在使其成员为其铸造 DAO 特定的 NFT 徽章之前“签署”一项主张 - 贡献证明
-
101在其在线课程结束时,一旦学生通过测试,就会颁发 ntNFT-- 学习证明。
-
Kleoverse根据 GitHub 数据向用户发放 Typescript、Rust 或 Solidity 能力徽章 - 技能证明
-
除了上面概述的访问控制用例,Lit PKPs还可以作为一个加密公证人,Lit Actions在签署证书之前进行检查。例如,一个去中心化的教育平台可以允许课程创建者定义如何算是通过测试,并将这些条件部署为 Lit Action,根据这些条件使用其 PKP 以编程方式发布 VC。
这里出现了 2 个问题:这些认证数据点中哪些是有意义的,我们如何汇总它们以获得声誉?
Orange协议对此提供了一个解决方案:通过模型提供者将这些数据点整合到定义明确的模型中。在 Orange 上,MPs 一般是指在其系统内有信誉评估措施的平台。“数据提供者”允许他们的数据被用作模型提供者设计的模型的输入。然后 MPs 添加计算方法,并将声誉标记分配给不同的实体,并将这些模型提供给其他人使用。Dapps 可以为他们的用例策划和插入这些信誉模型。
到目前为止,Aave,Gitcoin,Snapshot,DAOHaus等已经将他们的数据提供给了 Orange。这些数据由他们和其他项目如Dework,talentDAO, andCrypto Sapiens建模,为成员提供 ntNFTs,这释放了从使用 CollabLand 和 Guild 改善 Discord 许可,到 Snapshot 的声誉加权治理的广泛机会。
隐私
如果不考虑隐私问题和实现隐私的技术基元,关于身份基础设施的讨论就不完整。隐私是堆栈中所有层级的一个因素。在过去的十年中,区块链的采用加速了强大的加密基元的研发,如 zk-proofs,除了它在扩展技术中的应用,如 rollups,允许身份对可公开验证的信息做出细微的、保护隐私的声明。
隐私保证帮助我们避免使用完全透明的数据产生可信的声明所带来的负面外部性。如果没有这些保证,第三方可以发起与原始交易无关的范围外的互动(例如广告、骚扰)。利用密码学和 zk 技术,我们可以构建身份系统,其中的互动和数据共享被“沙盒化”在明确定义的、与背景相关的范围内。
“普通的”可验证凭证通常以 JSON-JWT 或 JSON-LD 格式出现,每个凭证都有外部或嵌入的证明(数字签名),使其具有防篡改和可验证的特性,由发行人撰写。
Zk-proofs 和新的签名方案则增强了 W3 C VC 的隐私保护特性,如:
-
抗关联性:每次持有人分享凭证时,这个标识符就会被分享,因此,每次出示凭证都意味着验证者有可能串通起来看到持有人在哪里出示他们的凭证,并将其三角定位到一个被识别的人身上。有了签名盲文,你可以每次都共享签名的唯一证明,而不共享签名本身。
-
有选择的披露:只分享 VC 的必要属性,而隐藏其余的属性。JSON-JWT 凭证和 JSON-LD LD - 签名凭证都要求持有人与验证者分享整个凭证 -- 不存在“部分”分享。
-
复合证明:将多个 VC 的属性合并到一个证明中,而不需要去找发行人或生成一个新的 VC。
-
预测:允许在操作中使用隐藏的值,并由验证人提供一个值。例如,凭证持有人的账户余额超过某个阈值而不透露余额,或者经常被引用的情况是证明你是合法饮酒年龄而不透露你的出生日期。
一个有望的方法是BBS 签名方案,最初由MATTR在 2020 年提出。该提案允许 BBS 签名与 VC 常用的 JSON-LD 格式一起使用。持有人可以选择性地披露最初签署的凭证中的声明。该方案产生的证明是签名的零知识证明,这意味着验证者无法确定哪个签名被用来产生证明,从而消除了一个常见的关联来源。
Iden3是一个 zk 原生身份协议,它提供了一个可编程的 zk 框架和开源库,用于 zk 身份原语、认证和证明生成的声明。该协议使用Baby Jubjub椭圆曲线为每个身份生成密钥对,该曲线被设计成能与用于以保护隐私的方式证明身份所有权和声明的 zk-SNARKs 有效协作。PolygonID目前将该协议用于其身份钱包。
应用 zkp 是一个活跃的研究和实验领域,在过去的几年里,已经从加密社区建立了很多兴奋点。在 web3 中,我们已经看到它被用于以下应用中:
-
私人空投:Stealthdrop
-
保护隐私但可信的证明:Sismo(所有权),Semaphore(成员资格)。
-
匿名信息传递:heyanon
-
匿名投票/表决:Melo
结论
本项研究的一些一般启示:
-
就像 Crypto 如何催化 DPKI 的发展和采用一样,授予在线/IRL 访问权限的可组合信誉将成为去中心化身份基础设施的催化剂。目前,凭证发行(x 证明)协议在不同的用例和区块链网络中是零散的。在 2023 年,我们将看到这些的聚合层(如配置文件)成熟,并作为一个统一的界面获得采用,特别是如果它可以用来解锁 crypto 以外的体验,如访问活动或电子商务折扣。
-
密钥管理仍然是一个摩擦点,容易出现单点故障。对大多数加密原生用户来说,这是一个笨重的体验,而对大多数消费者来说,这是一个完全无法访问的体验。联合身份认证是对 web1.0 模式的用户体验改进,允许单点登录与每个应用程序的用户名和密码。虽然 web3 认证的用户体验正在改善,但它仍然提供了较差的用户体验,需要种子短语,并且在密钥丢失时提供有限的追索权。随着MPC 技术的成熟和在个人和机构中的推广,我们将看到这方面的改进。
-
加密基础设施正在满足用户在 web2 中的需求。Web3 基元开始与 web2 应用程序和服务整合,为大众带来去中心化身份,例如Collab.Land 与 Nuggets 整合,允许 Reddit 用户将他们的声誉作为 VC 来解锁访问。Auth0 认证和授权中间件集成了 SIWE作为身份提供者,他们的企业客户现在可以在 SSO 之外提供钱包登录。
-
随着数据的民主化,净化机制需要得到验证。就像索引协议 The Graph 使用策展人和委托人的网络对最有用的子图发出信号一样(链上数据的 API),围绕 Ceramic 和 Orange 等协议的用户和声誉的数据模型需要时间和社区参与才能成熟,从而超越 DAO 和加密用例。
-
隐私考虑。项目在选择其堆栈时应仔细考虑公共或永久存储的影响。相对于保护隐私的 VC、短暂和 P 而 DID 以及链上/链下活动的 ZKP 的组合,“纯”公共数据 ntNFTs 可能适合有限的用例(例如,一些链上活动的抽象),这些活动提供了选择性披露、密钥旋转、反相关和可撤销等功能。
-
像 zkSNARKs 这样的新加密工具将是下一代身份基础设施的重要组成部分。虽然 zkp 目前被应用于孤立的用例,但它将需要一个自下而上的集体研发工作来集中应用程序设计模式、用于加密原语的 ZK 电路实现、电路安全工具和开发人员工具。这是需要密切关注的事情。
去中心化身份是一个大项目,它需要整个生态系统的努力,在标准上趋同,在基元上迭代,并在设计决策的影响上相互检查。
本文涵盖了去中心化身份堆栈的基础设施部分,下一篇文章将讨论配置文件、防女巫攻击、合规性和应用层,这些都是由这里提到的构建模块实现的。
如果你正在这个领域进行建设,或者对这个话题有更多的想法,我们希望能听到你的意见。