Bupt3分享18-# 公共物品 EAS 拆解

Hacker Dōjo Workshop
资助金额:100 USDT
分享者:北邮在读硕士 Syshems
本项目由Hacker Dōjo资助,文章转载请联系
Telegram: @DoraDojo0
WeChat: @HackerDojo0

Ethereum Attestation Service(EAS, Ethereum Attestation Service)是一个用于创建、验证和撤销链上及链下证明的公共产品,允许任何人注册一个关于任何主题的模式并使用该模式进行认证,目的是为证明创建一个通用层,可以被不同应用程序和协议使用及整合及验证不同社区信息的真实性和完整性。本课题旨在拆解 EAS 模型的架构设计,探索公众产品可能带来的特性,以及新的可以被用来落地的方向。

一、EAS 简介 :wave:

Official Definaton: Ethereum Attestation Service (EAS) is an infrastructure public good for making attestations onchain or offchain about anything.

1、EAS 是什么

以太坊认证服务(EAS)是一种公共服务,让任何人都可以针对任何事物进行链上或链下的认证 (Attestation) 。你只需注册一个关于任何主题的模式 (Schema),或使用现有的模式进行认证。目的是在去中心化的环境中,基于纯粹主观的信任网络构建动态的身份集,构建去中心化身份/声誉系统的基石。

个人觉得可以理解 EAS 为去中心化 Linkedin 的评价系统。在传统 Linkedin 的评价体系中,工作上司和同事可以基于你个人在职期间的工作状态,或是对你个人进行评价,但这类评价是存放到 Linkedin 中心化的服务器上的。EAS 做的事情就是构建类似 Linkedin 这样一套去中心化评价体系的一个公共基础设施,补全链上除资产信息和交易信息外的社会关系信息。

2、为什么需要 EAS

2.1 数字身份/声誉基础层

金融的本质是信用。信用在传统金融中发挥着巨大的作用,是一种加杠杆的方式。而信用一定程度上基于一个人的资产负债表、现金流状况和社会地位。一个资产状况越好现金流越好的人,理论上社会地位也越高,越不可能信用违约。

链上信息公开透明,包含了每个地址的资产信息和交易信息。对于构建信用来说,目前我们仍缺少身份信息/声誉信息。 EAS 目的是让超越金钱和资产类的信息实现去中心化,在以太坊上建立一个用于认证的通用账本,这个账本将有助于建立我们在线交互中的更多信任。无论何时你需要证明或验证某件事,认证都将发挥关键作用。通过允许任何人创建和验证认证,EAS 有可能改变在线信息以及在整个以太坊生态系统中如何共享和验证的方式。

2.2 对开发者有利

EAS 为开发人员提供了一个统一的协议,开发人员现在不必在无数的解决方案中去选择,简化了集成和数字身份方面的复杂性。

3、EAS 的特性

3.1 为认证而生的全球注册表:

EAS 作为协调、创建和注册认证模式的基础层。这允许各种认证协议和解决方案之间的互操作性和可组合性,使得认证层可以随时间演进。

3.2 免费、无代币、开源和无需许可:

EAS 是一个开源的、无需许可的平台,任何人都可以使用和贡献其开发。EAS 由社区建立和服务于社区,维护了区块链的原始承诺。开源,意味着任何人都可以使用。去中心化意味着它不由任何一个人或公司所有,而是由 ETH 社区支持。

  • 无代币,因为所有的交易都使用以太坊进行结算。
  • 公共服务:EAS 是免费使用的,并为以太坊生态系统的更大利益而创建的。
  • 互操作性:认证层的不同部分可以顺利地一起工作。
  • 可组合性:你可以像乐高积木一样在彼此之上和彼此之间添加和构建认证。
  • 无需许可:你不需要从权限就可以使用 EAS。
  • EAS 不预设任何事情: EAS 是一个原始的基础层,不对其使用方式或特定用例的适当模式结构进行假设。它被设计为一个可以用来在其上构建更具体和复杂系统的基础,可以根据不同用户的需求进行定制。这个原始层将使得可以自由地创建和强化适合正确用例和正确用户的正确模式和认证。
  • 简洁优雅的智能合约: EAS 运行在两个简单的智能合约上:一个用于注册认证模式,另一个用于进行认证。可以为任何用例注册模式,并可以在链上或链下进行认证。你还可以添加一个解析器合约到模式中,以处理高级用例,如链上验证认证数据和将支付附加到认证上。

二、EAS 是怎么工作的

1、理解 Attestation

在研究 EAS 原理之前,理解 Attestation 的概念至关重要。Attestations are simply one entity saying something about something. 任何时候,一个实体需要用其声誉对某件事进行认证,并用密码学签名保证真实性和不可篡改。证明的可信度取决于出具证明的实体的声誉。例如,信用评分认证是由公认的信用机构发布的,但如果是由个人发布的,则没有那么大的影响力。

下面是一个链上认证记录的例子。它来自一个地址 (0x1d86…1EA3F0) ,向 vitalik.eth 证明了一条消息。他说“GM”。

  1. UID:每个证明都是独一无二的,对整个 attestation 取 hash 得到 UID;
  2. 证明状态:可以查看证明是何时创建的、是否已过期,或者证明者是否已撤销它,确定认证是否仍然有效且值得信赖;
  3. 每个认证都遵循一个 schema:schema 是证明的数据,是完全可定制的,可以为任何目的所创建,允许用户利用已有的 schema 或创建新的 schema 对他人做出证明。
  4. From & To:查看证明是由谁创建的,以及发送到什么地址。知道谁参与了认证,这对于理解被认证信息的上下文和可信度非常重要。
  5. Decoded Data:根据所使用的 schema 对认证数据进行解码,以便查看认证内容的验证者/用户都可以轻松地查看证明内容。
  6. 参考证明:构建证明的可组合性。EAS 最强大的功能之一是允许证明引用其他证明 uid 。这使得以更结构化的方式组织认证成为可能,并且更容易理解它们之间的关系。

2、EAS 工作原理

EAS 非常简单。它运行在两个智能合约上:

  • SchemaRegistry.sol:定义证明的数据结构。
  • EAS.sol:允许使用注册的模式创建证明。

Schema 合约核心字段

structSchemaRecord{

// A unique identifier of the schema.
// Schema 唯一标识符

bytes32 uid

// Optional schema resolver contract.
// 可选的执行合约

address resolver

// Whether the schema allows revocations explicitly.
// 设定 Schema 是否允许用户创建 ATST 后撤销

bool revocable

// Custom specification of the schema.
// 自定义 Schema 的特殊规范

string schema

}

Attestion 合约核心字段

structAttestation{

// A unique identifier of the attestation.
// ATST 唯一标识符

bytes32 uid

// A unique identifier of the schema.
// Schema 唯一标识符

bytes32 schema

// The UID of the related attestation.
// 有相关性的 ATST ID

bytes32 refUID

// The time when the attestation was created.
// ATST 创建时间

uint64 time

// The time when the attestation expires.
// ATST 到期时间

uint64 expirationTime

// The time when the attestation was revoked.
// ATST 销毁时间

uint64 revocationTime

// The recipient of the attestation.
// ATST 的接收者地址

address recipient

// The attester/sender of the attestation.
// ATST 的见证者和发送者

address attester

// Whether the attestation is revocable.
// ATST 是否可撤销

bool revocable

// Custom attestation data.
// 自定义 ATST 日期

bytes data

}

3、存储方式

  • Schema:存储在以太坊上,可以看这个例子
  • Attestation:
    • On-Chain:将原始数据直接存储在以太坊上的交易字段中,可以查看这个例子
    • Off-Chain:将原始数据存储在 IPFS 中,可以在后期由任何 attester 触发将 off-chain 的 attestation 时间戳上链。可以查看这个例子
  • on-chain 和 off-chain 对应不同的应用场景:
    • On-chain : 更容易被智能合约交互,具备公开性
      • 预言
      • 信誉
      • 身份验证
      • 可验证书
      • 替代 SBT
    • Off-chain: 可以更好控制可见性
      • 身份文件
      • 社交媒体消息
      • 表决

三、EAS 可能诞生什么

1、身份验证

  • 金融机构可以使用认证来验证客户身份,确保客户遵守了 KYC 和反洗钱 (AML) 法规;
  • 平台和市场可以使用认证来验证买家和卖家的身份,促进用户之间的信任,减少欺诈;
  • 认证可以帮助验证社交网络上的用户身份,减少虚假账户的流行,改善整体用户体验;
  • 认证可以用来创建分散的、自我主权的身份系统,让个人控制自己的个人数据;
  • 认证可以验证访问 dApps 用户的身份,确保只有授权的个人才能使用这些服务。

2、证书认证

  • 可以用来验证学位、文凭和其他教育证书,使雇主更容易验证候选人的资格;
  • 认证可以帮助确认专业认证,使个人能够展示他们在各个领域的专业知识;
  • 可以集成到去中心化的凭证平台中,使用户能够拥有和控制他们的凭证,并与他人安全地共享它们。

3、声誉系统

  • 可以帮助借款人在 P2P 借贷平台上建立信誉,降低贷款人的风险,并使借款人能够根据自己的声誉获得贷款;
  • 可以用来验证自由职业者的技能、经验和过去的工作,使客户能够做出更明智的雇佣决定;
  • 可以帮助验证个人和组织的可信度,减少各种在线互动中的诈骗和欺诈风险。

4、供应链证明

  • 认证可以帮助验证产品的真实性,减少市场上假冒商品的流行;
  • 可以帮助核实产品的来源是否可持续和合乎道德,使消费者能够做出更明智的购买决定。

5、投票场景

  • 可以帮助验证选民身份,并确保传统和基于区块链的投票系统中选举过程的完整性;
  • 证明可用于促进 dao 的去中心化治理流程,确保决策透明和负责任。

参考

Website: https://attest.sh

Docs: https://docs.attest.sh

Github: Ethereum Attestation Service · GitHub

Official Mirror: EAS is Live! Bringing Attestations to Ethereum — Ethereum Attestation Service

OKX Venture: https://twitter.com/OKX_Ventures/status/1707330874474484213

PlanckerDAO: https://www.notion.so/EAS-8a36588a8d9d4f9a815b6b6436d98aff

HackerMD: EAS 调研 - HackMD