L2主域名即将登陆Basenames:ENSIP-19

Basenames 协议将升级以支持 ENSIP-19,这是一个来自 ENS 的新协议规范,用于二层网络(L2)的主域名。此次升级后,Basenames 将成为一个可移植的身份解决方案,支持任何 ENS 支持的链。ENSIP-19 通过新的 L2ReverseRegistrar 合约和 CCIP-read 流程,允许用户在不同的链上设置和验证其主域名,从而实现跨链的身份一致性。

Basenames 协议将升级以支持 ENSIP-19:来自 ENS 的用于 L2 主名称的新协议规范。有了这个,Basenames 将成为任何 ENS 支持链的可移植身份解决方案

背景

Basenames 是 Base 原生的身份层,是一个建立在 ENS 之上的去中心化开放协议,也是你的 Base 账户的身份解决方案。每个加入 The Base App 的新用户都会获得一个唯一的用户名,格式为 name.base.eth;这就是 Basename!

“主名称” 是 ENS 协议的基石。它们允许任何客户端或第三方应用程序使用连接账户的地址来反向查找与该账户关联的名称。这种机制使得用户在钱包应用内看起来像是以 jesse.base.eth 身份登录,而不是显示为 0x1234… 地址。如果你持有多个名称,你可以指定要用哪个名称来表示。

在底层,解析名称或地址分别称为正向和反向解析。正向和反向解析是相互的过程,可以简单地可视化如下:

post image

目前,Basenames 原生支持主名称,但有一些注意事项:

  • 当 Basenames 启动时,ENS 协议不支持在 L2 上为子域名发行者实现主名称。唯一支持的主名称设置路径需要在主网上对 ENS 的 ReverseRegistrar 合约执行昂贵的交易。

  • 想要支持 Basenames 主名称的应用程序必须使用 Basenames 特定的查找方式,这种方式通常由我们的 OnchainKit 代码片段 支持。

这意味着没有专门与自定义 Basenames 反向解析流程集成的应用程序无法检查我们用户的主名称。此外,如果用户想将他们的 Basename 身份转移到其他链,如 Ethereum L1 或 Optimism,他们的 Basename 无法跟随他们。


进入 ENSIP-19

通过与 Basenames 团队的密切合作,ENS 已经完善并发布了 正式规范,以支持 L2 主名称。ENS DAO 投票决定启用此协议升级,截至 7 月 29 日星期二,社区以压倒性的支持通过了该升级。随着此更新的完成,Basenames 现在正在升级以支持此规范。

一旦完全集成,我们将为所有 Basename 用户带来以下好处:

  • 在所有使用现代 Web 应用程序客户端(如 wagmi)的应用程序上进行主名称解析;而不仅仅是那些直接通过 onchainkit 与 Basenames 集成的应用程序。

  • Basenames 可以作为你的主名称用于 许多网络,而不仅仅是 Base。

    • *

ENSIP-19 在底层是如何工作的

ENS 在每个支持的链上部署了一个名为 L2ReverseRegistrar 的新合约。这些合约允许任何地址设置其在该链上的主名称。当用户将其钱包连接到这些支持链上的应用程序时,客户端可以开始用户的反向解析流程。

让我们通过跟踪 Jesse 连接到 Optimism 上的应用程序的反向解析请求来探索它是如何工作的:

  1. Jesse 将他的钱包连接到 Optimism 上的一个应用程序,该应用程序启动 ENSIP-19 反向解析流程。

  2. 一个反向解析请求被发送到 L1 上的 ENS Universal Resolver,要求查询 Jesse 的地址在 Optimism 网络上的主名称。

  3. 该解析请求被转发到一个专门负责 Optimism 上反向解析的 L1 Resolver 合约。

  4. 此请求启动一个 CCIP-read 流程,该流程将解析委托给一个链下 Gateway。

  5. 该 Gateway 查询在 L2ReverseRegistrar 中与 Jesse 在 Optimism 上的地址关联的名称,并为获取的数据构建一个状态证明。

  6. Gateway 将此响应提供给客户端,以便客户端可以使用该数据和用于验证有效性的状态证明回调到 L1 Resolver。

客户端现在知道 Jesse 的地址与 jesse.base.eth 相关联,但我们还没有完成!在 L2 Reverse Registrar 上设置名称时,此合约无法验证地址是否将其主名称设置为其控制的名称。因此,ENSIP-19 流程中有一个闭环验证步骤,非常类似于现有的反向解析流程,该流程验证检索到的名称是否正向解析到原始地址。

  1. 客户端现在请求 jesse.base.eth 在 Optimism 网络上的正向解析数据,该数据根据 ENSIP-11 在 Base 上的 Basenames 合约中配置。

  2. 通过类似的 CCIP-read 流程,从 Basenames 合约中获取 Jesse 名称的正向解析数据。

  3. 如果连接到客户端的地址与 Optimism 特定的正向解析请求返回的地址匹配(ENSIP-11),则主名称有效,Jesse 显示为 jesse.base.eth!

此流程的完整泳道图可以在下面的 附录 中找到。


Basenames 的后续步骤

有了 ENS 合约、Gateway 和工具集成,现代客户端将能够使用 ENSIP-19 反向解析任何 Basename。但是,Basenames 用户数据缺少支持这些请求的两个部分:

  • 如今,Basenames 用户将其反向解析数据直接写入在 ENSIP-19 完成之前部署的通用解析器合约中。此数据需要位于 ENSIP-19 定义的 L2ReverseRegistrar 中,才能用于 ENSIP-19 查找流程(上面第 3-6 步)。

  • ENSIP-19 流程要求用户为他们希望名称成为主名称的每个网络编写由 ENSIP-11 定义的网络特定数据。如今,许多 Basename 用户缺少除 Ethereum 主网之外的任何网络的这种格式的数据。

由于现有的 Basenames 用户数据已经存在准确的内容,但位于非标准化组合的合约或存储槽中,因此 Basenames 团队正在采取积极的方法。我们选择代表所有用户迁移数据。这样,用户无需返回到 Basenames 界面来迁移自己的数据,并且一旦迁移和集成完成,就可以继承 ENSIP-19 的优势。

新合约

为了支持这些工作,我们将部署三个新合约。这些合约目前正在进行严格的测试,并且在上线之前将进行外部审计。

可升级的注册器控制器

如今,我们现有的 RegistrarController 管理与 Basenames 相关的业务逻辑。它处理注册、折扣注册和续订。由于它可以注册新名称,因此它在协议中具有独特的权限。具体来说,它被允许将记录写入我们不可变的 BaseRegistrar 合约,该合约对唯一名称进行代币化并处理到期。此可升级版本将执行现有注册器的所有功能,并且还将在注册期间代表用户写入符合 ENSIP-19 的记录。

可升级的 L2 解析器

目前部署的 L2 解析器合约是不可变的。尽管它继承了所有最新的 ENS 解析器配置文件,但 Basenames 团队计划将来添加功能和特性。我们还需要一个新的解析器目标来配合我们新的可升级注册器控制器。因此,我们正在利用这个机会将更多数据放入可以无缝接受新功能的解析器中。从功能上讲,此合约相对于我们现有的 L2Resolver 的唯一变化是可升级性。

迁移控制器

此临时合约旨在协助正向解析数据迁移。它具有一个仅限管理员使用的 hook,可用于代表 Basename 用户设置符合 ENSIP-11 的正向解析数据。在此合约中构建此 hook 的主要动机有两个:

  1. 它在此项目结束时计划报废

  2. 它有权代表 L2Resolver 合约中的用户写入记录,正向解析记录需要落在此处。

迁移步骤

需要完成两个大型数据迁移才能将所有现有记录转换为符合 ENSIP-19 的标准。由于如今有超过 750,000 个活跃的 Basename,我们需要在多个区块上执行一系列大规模的交易。为了确保此迁移不会导致网络拥塞或增加 Base 上每个人的 Gas 成本,我们将限制每个区块写入的记录数量,以确保我们的活动对其他用户的 Gas 市场产生最小的影响。

由于迁移本身无法原子地发生,而是将在 3000 多个区块上进行,因此我们的合约和界面需要以支持零停机切换的方式进行配置。为了实现这一点,我们正在利用两种策略:

  1. 通过我们新的可升级注册器控制器设置一个新的并行注册路径,该路径可以完成旧版和 ENSIP-19 的反向解析写入。

  2. 同样,当用户选择更改其主名称时,执行“双重写入”,确保集成商可以使用旧版和现代反向记录。

post imageThe Base App 和 Web 的注册流程,展示了 UpgradeableRegistrarController 支持的双重写入策略。

一旦所有新注册和主要变更都符合 ENSIP-19 标准,我们就可以安全地弃用旧的注册路径。此弃用确保我们在迁移状态时不会遗漏任何数据。

首先,我们将迁移用户正向解析数据。通过利用我们新的迁移控制器,我们可以安全地复制 coinType == 60 地址字段中为用户存在的数据,并将其移动到 Base 链特定槽位,即 coinType == 0x80002105。这意味着我们的用户现在将拥有特定于 Base 的正向解析数据,可用于 ENSIP-19 的闭环步骤。

其次,我们可以开始将反向解析数据从我们的 L2 解析器移动到 ENS 的 L2ReverseRegistrar。ENS 非常慷慨地在 Base 实现 中为我们包含了一个管理 Hook,以便我们可以代表我们的用户安全地迁移数据。

一旦两个数据迁移都完成,Basenames 的技术工作就完成了!此时,我们将开始与集成商合作,以切换到支持 ENSIP-19 的更新工具(wagmi、ethers、viem)。


结论

我们正在为该项目进行深入的开发周期,我们最新的支持这一点的合约目前正在接受外部审计。按照目前的速度,我们的目标是在 9 月初进行数据迁移,并在此之前切换到新的注册和设置主要流程。

如果你在 Base 上运行应用程序,并且今天与 Basenames 集成或将来想要集成,我们将很快发布更新的文档以及公开声明。如果你的应用程序今天与 Basenames 集成,请放心,我们的迁移最初是向后兼容的。但是,当为了节省用户的 Gas 而停用旧版数据写入时,你需要升级。我们将与我们的生态系统联系以获取详细信息,因为集成商必须升级。

目前为止就这样!如果你还没有你的 basename,请立即在 https://base.org/name 注册一个。请继续关注 Base Account 团队的更新,因为我们将推出此功能。

附录

post image

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

0 条评论

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