EAS:认证的基础层

  • 4pillars
  • 发布于 2023-12-21 14:39
  • 阅读 23

本文介绍了以太坊认证服务(EAS),它是一种开放的基础设施,旨在通过标准化各种有形和无形资产和交互的认证来弥合现实世界和Web3之间的差距。EAS通过SchemaRegistry定义认证的数据结构,并利用EAS.sol合约创建和撤销认证。文章还讨论了EAS的潜力和局限性,包括信任问题、gas成本和EVM依赖性,并探讨了确保数据机密性的隐私方案。

主要内容

  • 如果个人信息可以由提供者自己管理,并通过一个可以在不同平台上使用的通用界面进行整体组织,我们可以梦想在数字空间以及现实世界及其他领域进行广泛的交互。

  • 以太坊认证服务(EAS)是一个开放的基础设施,可以通过标准化各种有形和无形资产以及交互的认证,为弥合现实世界和 web3 之间的差距做出贡献。

  • 然而,EAS 还有一些改进之处,包括认证者的信任问题、持续链上认证的 Gas 成本以及 EVM 依赖性。

1. 为了更广泛的数字互动

在我们与某人互动之前,我们会收集大量关于他们的信息,并将其汇总以确定互动的范围和深度。收集到的信息包括我们日常生活中可以观察到的大部分信息——通常从显式信息(如人口统计、金融交易和在线社交活动)到主观信息(如第一印象或声誉)。

在现实世界中,得益于物理约束,通常可以从广泛的个人那里收集到全面的数据。因此,每个人都可以与他们花费了大部分时间的环境进行广泛而深入的互动。

在现实世界中,得益于物理约束,通常可以从有限的一群人那里收集到各种此类信息。另一方面,数字世界虽然具有很大程度上不受物理约束的优势,但与现实世界相比,可以进行的互动的范围和深度却相当有限——最近,数字凭证、DID 和其他可以证明身份或各种活动的技术在数字环境中得到了积极的研究。然而,这些技术仍然在有限的领域中使用,并且似乎没有足够的扩展性来适应大量的互动。

造成这种情况的原因有很多,但根本原因在于数据的管理方式。大多数数据由中心化服务器管理,或者由少数平台垄断,因此个人自由地跨平台重组和使用其数据的能力受到限制,即使他们是数据提供者。此外,每个平台组织数据的方式也不同,而不是遵循单一标准,因此这种分散的数据很难在多个平台上集成和实际利用。

简而言之,如果个人信息可以由提供者自己管理,并通过一个可以在不同平台上使用的通用界面进行整体组织,我们可以梦想在数字空间以及现实世界及其他领域进行广泛的交互。

2. 基于区块链的不同认证解决方案

区块链确保所有数据都是开放的,并且可以被任何以可信赖的方式使用。因此,我们期望彻底改变传统数字空间中个人数据的处理方式,因为我们可以在基于信任的网络上传输各种价值,而无需依赖中心化实体。

目前,区块链生态系统中涌现出各种解决方案,以加强个人的身份或存储和表示各种活动的认证。

信誉凭证

Untitled

来源:通过 Web3 声誉迈向更可识别的世界

最活跃的解决方案类别是 Web3 信誉凭证项目。遵循现有 W3C 的验证凭证规范 的结构,这些项目以区块链为核心,重组了以中心化和低效的方式证明身份和声誉的方式。通过这种方法,任何人都可以以低信任成本和边际生产成本创建自己的上下文凭证。

目前,区块链生态系统中有很多项目利用上述结构*,允许用户或项目在各种环境(例如,营销、任务、教育、招聘、信用评分、KYC 等)中创建和使用自己的身份信息/凭证。

Untitled

来源:通过 Web3 声誉迈向更可识别的世界

然而,由于该结构更像是一个抽象的蓝图,而不是一个清晰的界面,因此不同项目实施的凭证彼此不兼容,并且需要一种机制来管理已经部署的许多不同的凭证。

  • 并非所有解决方案都完全遵循上述结构——特别是,Gitcoin Passport 是通过 EAS 创建的模式,本文稍后将对此进行讨论。

社交资料和 ENS 和 SBT

NFT 已被用作表示某些资产的真实性的代表性手段。因此,我们观察到一些尝试,通过向基本 NFT 结构添加各种属性来扩展其使用,以形成身份帐户(例如,Lens Profile、ENS 等)或颁发特定活动证书(例如,SBT 徽章)。

然而,基本上,NFT 标准衍生概念的局限性相对明显,包括 1) 它们的元数据必须外包给外部注册表,这限制了要附加的数据的格式和数量,以及 2) 很难将各种功能(例如,社交恢复,特别是对于基于 NFT 的身份)插入其中。

此外,就 ENS 而言,需要定期支付费用以维持其所有权,而就 SBT 而言,它对于记录个人从属关系、活动历史、资格等以强调其在社区中的地位很有用,但存在持有它的帐户本身可能被转移或丢失的风险。

简而言之,基于 NFT 的身份/认证解决方案在表示数据方面不具有可扩展性,并且在管理方面也存在明显的结构性限制。

通用配置文件

Untitled

来源:LSP0(ERC725 帐户)

通用配置文件是一种“基于智能合约的身份帐户”,它扩展了 ERC725——ERC725 的主要思想是通过一个名为“ERC725X”的通用执行器和一个名为“ERC725Y”的通用可访问的基于键值的存储库来定义身份帐户。通用配置文件允许用户执行传统 EOA 无法实现的各种功能(即,智能合约可以做到这一点),并且配置文件可以以灵活且与格式无关的方式存储、引用和更新数据。

一个积极利用通用配置文件的项目示例是 LUKSO。LUKSO 正在通过提出 自己的一组标准(LSP,LUKSO 标准提案) 来构建一个 UX 友好的主网,以将通用配置文件组织为基本的身份帐户,并确保这些帐户在生态系统中的交互方式是灵活和可扩展的。此外,由于 LUKSO 可以通过分叉以太坊的架构与各种 EVM 链集成,因此非常希望会出现各种应用程序,允许用户在 EVM 生态系统中享受平台无关的体验。

然而,尽管可以在身份帐户(即,通用配置文件)中记录无限范围的活动,但 LUKSO 中仍然缺少一个认证标准框架,用于标记和外部证明这些活动。

还有 EAS

简而言之,从特定用例的角度来看,上述所有解决方案都非常有前景,但它们在整体表示多样化数据或缺乏可以建立其上的通用界面方面受到限制。换句话说,从用户的角度来看,它仍然没有解决个人信息碎片化管理的问题。

Untitled

来源:EAS 文档

作为回应,以太坊认证服务(EAS)提出了一个单一的、抽象的认证*标准框架,该框架统一了在应用程序级别定义的碎片化身份、凭证、声誉等,并且是所有交互的基础。顾名思义,EAS 是一种基础设施工具,旨在证明任何 EVM 支持的链上或链下环境中的事物。

作为一种公共产品,EAS 是一种数字签名方案,完全开源,任何人都可以免费创建和验证结构化认证。用户只需要定义一个数据模式并使用该模式创建一个认证即可证明任何主题。

Untitled

目前,EAS 已 部署 在以太坊主网上,以及各种 L2 解决方案(例如,Arbitrum、Optimism、Base、Linea)和支持 EVM 的测试网环境(例如,Sepolia、Base Goerli、Optimism Goerli、Arbitrum Goerli、Polygon Mumbai、Linea Goerli),截至 2023 年 11 月 29 日,已发布近 13 万+认证。

  • 事实上,术语认证通常用于指共识算法中节点之间的交换,以验证区块或某些信息。

大约 13 万个认证中,超过 10 万个由 Optimism 发布,其中大部分来自 Gitcoin Passport。

3. EAS 概述

EAS 有两个核心合约 - SchemaRegistry.sol & EAS.sol

3.1 定义认证结构 - SchemaRegistry.sol

首先,SchemaRegistry 合约是一个模式合约,用于定义认证的数据结构,即一个数据框架,用于自定义认证试图证明的目的、内容和上下文。

Untitled

来源:EASScan - Optimism

这些模式很容易让任何人都创建或试验,并查看还有哪些其他模式。DApp / 平台开发者可以利用 SDK 或直接与智能合约交互,甚至非编码人员也可以通过 EASScan 轻松创建和验证方案 - 目前支持 EASScan 的协议包括 以太坊主网OptimismBaseArbitrum,并且可以在 SepoliaOptimism GoerliBase Goerli 上进行测试。

Untitled

来源:SchemaRegistry.sol

在大脑中绘制了模式的结构后,可以通过“register”方法将其注册到 SchemaRegistry 合约的注册表中。此时,模式的 UID(唯一标识符)会自动分配并存储在注册表中。除了 UID 和 Schema 之外,其他可以设置的变量还有 Resolver 和 Revocable。

Resolver

  • Resolver 是一个 智能合约,用作 Schema 的Hook。

  • 简单来说,它是在实际颁发认证之前预先检查认证是否符合认证者定义的某些规则或逻辑的步骤。

  • 例如,认证可以限制为特定用户组或满足某些条件的用户——各种参考实现的示例可以在 此链接 中找到。

  • 但是,由于 Resolver 是一个外部智能合约,因此它是否安全仍然不清楚,希望利用它的人应自行承担风险。

Revocable

  • Revocable 是一个变量,指示模式是否可以在以后撤销。

  • 如果认证不再有效,或者最初发布不正确,需要更正,这可以提供灵活性。

  • 如果最初使用设置为 YES 的 Revocable 创建了认证(无论是在链上还是链下创建的),那么只需将认证中 revoked 字段的值更改为 True,该认证将稍后失效——这可以在 EASScan 中轻松设置,或通过直接与 SDK 或智能合约交互来设置。

3.2 认证构建和管理 - EAS.sol

EAS.sol 是一个合约,它利用通过 SchemaRegistry.sol 注册的模式来实际创建和撤销认证。

Untitled

来源:Common.sol

除了 UID 和 Schema 之外,还有 8 个字段值构成一个认证,

Time

  • 此变量是一个字段,用于以 Unix 时间戳的形式记录认证的创建时间。

  • 但是,如果认证是链下认证,则不支持时间戳,在这种情况下,可以利用 SDK 对 UID 进行时间戳以将其存储在链上。

Untitled

ExpirationTime

  • 如果由认证者设置,则此变量指示认证何时到期。

RevocationTime

  • 如果激活了 Revokable 选项,则此变量指示何时撤销认证。

refUID

  • 包含此变量是为了通过引用其他认证的 UID 来为认证提供更丰富、更可配置的上下文。

  • 例如 - 如果特定资产的每笔交易都留下一个认证并引用所有先前的交易,则可以透明地跟踪该资产的交易历史。或者,为了单独管理特定事件及其子事件,可以通过使子事件认证引用父事件认证来配置分层认证集。

Recipient

  • 认证接收者的以太坊地址。

Attester

  • 创建认证的人的以太坊地址。

Revocable

  • 布尔变量,指示认证是否可撤销。

Data

  • 认证中编码的数据。

Untitled

来源:EASScan - Optimism

为了更好地理解,这里有一个来自 Gitcoin Passport Score* 的认证示例,该认证通过 Optimism EAS 部署在链上。

  • Gitcoin Passport Score 是一项人性评分,允许用户证明他们确实是人类,以便 Gitcoin 更透明、更公平地管理其捐赠政策。
  1. UID - 此认证的 UID。

  2. 时间和 ExpirationTime 和 Revokable 和 RevocationTime - 指示认证的创建时间、到期时间(如果到期)以及是否已撤销(如果可撤销)。

  3. 模式 - 指示认证遵循哪个模式结构。此认证遵循 Gitcoin Passport Score V1 模式

  4. Attester 和 Recipient - 指示从谁向谁颁发认证。

  5. 模式数据 - 根据认证中使用的模式解码认证数据。

  6. 交易 ID 和参考 - 显示认证的交易 ID 和参考信息。在这种情况下,它不引用任何其他认证。

3.3 认证存储 - 链上和链下

Untitled

来源:EASScan - Sepolia

最后,在完成认证的数字签名时,用户可以选择信息存储在链上还是链下。请注意,在链上存储认证需要少量 Gas,而在链下存储则不需要。

Untitled

来源:EASScan - Sepolia

一旦在链上创建了认证,任何人都可以通过 EASScan 扫描它

Untitled

来源:EASScan - Sepolia

但是,如果认证是链下创建的,则 EASScan 无法检测到它。

以上是一个在 Sepolia 测试网环境中链下部署一个名为 MAKE A STATEMENT 的方案的示例。因为它是在链下部署的,所以认证被标记为 Private,并且 EAS 提供了各种共享方式,例如下载它或提供浏览器 URL 链接,如右侧所示*。

链下认证可以像上面那样发布在 IPFS 上,也可以通过 SDK 发布在去中心化存储解决方案 Ceramic Network 上 - 如果发布在 Ceramic Network 上,它们将与基于 GraphQL 的 ComposeDB 一起使用,允许开发人员以传统和熟悉的方式流式传输和查询针对认证的数据。

3.4 确保隐私的技巧

一方面,区块链数据公开可用的透明性一直被认为是双刃剑,因为它允许监控个人的活动。因此,人们一直在积极努力地在链上整合隐私解决方案,以便个人的活动通过区块链进行验证,但不会泄露详细信息。

在这种情况下,EAS 可能也需要在某些情况下记录敏感信息,因此务必注意可以确保数据机密性的技巧。

3.4.1 利用链下认证

最直观和最直接的方法是像前面讨论的那样在链下发布认证 - 认证可以使用基于浏览器的 URI 进行管理,也可以通过使用文件格式共享。验证原始数据的计算在外部完成,但只有结果在链上证明,因此第三方无法访问链上认证的详细信息。但是,即使在这种情况下,也存在需要单独努力来管理认证链接或文件的缺点。

3.4.2 利用 PRIVATE DATA 模式

Untitled

来源:coinmonks

第二种方法是利用 Merkle 树结构 - Merkle 树将整个数据分成小块进行哈希,递归地哈希哈希值,最后生成一个 Merkle 证明来证明原始数据。这样做的好处是可以将整个数据表示为单个加密证明,而无需披露它,从而允许以安全且可扩展的方式发布数据。

Untitled

来源:ENSScan - Sepolia

幸运的是,已经利用 OpenZeppelin 的 Merkle 树库ethers.js 构建了一个 MerkleTree(即,PRIVATE DATA)的参考模式,并且目前可以在 以太坊主网ArbitrumSepolia 上使用。用户可以将源数据输入到此模式中,并根据返回的 Merkletree 根值发布特定活动的认证。

3.4.3 利用隐私解决方案

另一种方法是利用隐私解决方案本身,例如零知识证明或同态加密。

零知识证明可用于向另一方证明特定陈述是正确的,而无需披露任何详细信息 - 例如,由 EAS 生成的认证可以在发送给潜在接收者之前再次包装在零知识证明中,从而允许认证者隐藏他们发送的信息的详细信息。

Untitled

来源:Scout 文章(2023 年 10 月)

或者,可以应用同态加密,区块链行业最近一直在 努力采用。同态加密是一种计算加密数据并输出可解释结果而无需先解密的解决方案。这消除了数据泄露的可能性,因为数据从输入到输出始终保持机密。

4. EAS 的潜力和局限性

实际上,跨现实世界和 web3 的“所有类型”有形和无形资产的交互和认证 - 包括身份、凭证、预言机、社交数据、现实世界资产的真实性、供应链跟踪等 - 理论上都可以通过 EAS 支持,具体取决于其结构的定义方式。换句话说,毫不夸张地说,我们可以想象的大部分区块链用例都可以通过 EAS 完成。

因此,EAS 本质上是一个抽象层,允许以各种方式重新定义区块链网络的原始数据 - EAS 最大的优势在于其极高的灵活性和可扩展性。此外,EAS 的结构极其简单,不熟悉代码的非开发人员可以通过 EASScan 轻松设计模式和创建认证,使其利用前景更加广阔。

然而,随着其多功能性的承诺,也存在一些担忧。首先,仍然存在发布认证的认证者的信任问题。EAS 提供对一系列流程的信任,以确保数据的完整性,但不解决认证者本身的可靠性。因此,当用户想要引用大量认证时,他们可能需要付出额外的努力,通过引用其他信息来管理和整理所有认证。

此外,通过 EAS 在链上发布认证可能会花费大量 Gas。当然,EAS 支持批量处理,因此可以一次发布多个认证,但对于需要持续重复认证的用例来说,可能不太理想 - 如上面的统计数据所示,Gas 成本可能是 Optimism 和 Base 与其他主网相比发布如此多认证的一个重要原因。

最后,EAS 高度依赖 EVM,因此仅确保 EVM 生态系统中的互操作性存在局限性。目前,除了 EVM 之外,各种 VM(如 WasmVM、MoveVM 和 SVM)在区块链生态系统中的份额也在增加。当然,如果使用这些 VM 的区块链使其自身与 EVM 兼容,那就没问题了,但如果它们不这样做,并且 EVM 的份额减少,EAS 的吸引力就不会高多少。

感谢 Kate 为此篇文章设计图形。

  • 原文链接: 4pillars.io/en/articles/...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
4pillars
4pillars
江湖只有他的大名,没有他的介绍。