ERC-1078 实现以太坊通用登录注册的 ENS 子域名方案

·

概述

ERC-1078 提出了一种以太坊原生解决方案,旨在替代传统的用户名和密码注册登录模式。该方案无需密码、无需备份私钥或输入助记词,用户可通过 ENS 子域名实现无缝登录体验。对于去中心化应用开发者而言,这代表了一种全新的交易处理思维方式。

核心机制

身份标识与密钥管理

用户的唯一标识符是一个智能合约,该合约需同时实现 Identity 和 Executable Signed Messages 相关标准。用户无需直接提供合约地址,只需提供指向该合约的 ENS 名称即可。

此类合约间接受私钥控制:私钥可签署表达操作意图的消息,随后由第三方或去中心化部署者网络将消息部署到合约中。设备“登录”应用的本质是在本地生成私钥,并请求授权将该密钥添加为身份的签名者之一,同时设定权限范围。

由于该私钥仅用于消息签名,无需持有以太币或其他资产,丢失后可轻松替换——用户资产始终安全存储在身份合约中。

登录流程详解

第一步:获取用户 ENS 名称

流程的第一步是获取用户指向其身份的 ENS 名称。若用户尚未设置登录名,应用应提供选项让其使用子域名或已有名称。

用户体验提示:应用需优雅处理名称验证。若用户尝试注册已存在名称,应提示是否直接登录;若尝试连接不存在的名称,应友好提示并询问是否立即创建。避免让用户重复输入相同信息。

第二步:创建新身份或连接现有身份

创建新身份流程

  1. 在设备或浏览器本地安全生成并存储私钥
  2. 创建支持 ERC720 和 ERC1077 的身份合约
  3. 将新生成的私钥注册为合约的唯一管理员密钥
  4. 注册请求的子域名并将其所有权转移至合约
  5. (可选)设置恢复方法以防主密钥丢失

这些步骤可设计为单笔交易完成。应用可对注册收费或要求用户完成反女巫攻击验证。

连接现有身份流程
应用需明确请求的权限级别:

具体步骤包括:

  1. 本地生成并安全存储私钥
  2. 查询 ENS 解析身份地址
  3. 生成添加密钥的交易字节码
  4. 通过去中心化网络广播交易请求
  5. 尝试通过 web3 或 EIP681 格式URL发送交易
  6. 显示二维码作为最终备用方案

👉 探索更先进的以太坊身份管理方案

第三步:交易请求处理

获得适当权限后,应用可使用密钥签名并执行交易。需注意:

部署交易时:

技术实现现状

目前尚无完整实现案例,但已引起开发者社区的广泛关注。后续发展需标准化去中心化消息传递协议和开源部署工具,以构建可靠的消息部署层。

优势与前景

该方案使轻量级应用无需持有以太币即可运行,设备可保持解锁状态以发送消息和进行游戏操作,无需频繁请求用户确认。未来改进将聚焦于去中心化消息协议的标准化和部署工具的完善。

常见问题

ERC-1078 的主要创新点是什么?

ERC-1078 通过 ENS 子域名和智能合约身份系统,实现了无需密码的以太坊原生登录方案。用户使用本地生成的签名密钥即可安全访问应用,而资产始终受身份合约保护。

这种方案如何保证安全性?

私钥仅用于签名,不持有资产,丢失可替换。权限分级管理确保不同应用获得最小必要权限。交易可能需要多签名验证,提供额外安全层。

与传统登录方式相比有哪些优势?

消除了密码管理和助记词备份需求,提供无缝登录体验。用户资产由智能合约托管,应用无法直接访问,增强了安全性。同时支持灵活的权限管理和链下操作。

开发者集成需要注意哪些关键点?

需正确处理 ENS 名称解析、密钥权限管理和交易签名流程。应提供优雅的用户引导体验,特别是处理名称冲突和交易状态跟踪时。建议遵循标准化的消息格式和gas管理规范。

这种方案是否支持私钥恢复?

是的,身份合约可设置恢复方法。用户在创建身份时可选择注册恢复选项,在主密钥丢失时通过预定流程重新获得访问权限。

交易部署如何解决网络拥堵问题?

应用可通过调整 gas 价格和选择适当时机部署交易。此外,一些操作可在链下完成,减少链上交易压力,只在必要时才进行最终结算。


本文基于以太坊改进提案 ERC-1078 技术文档编写,旨在提供清晰的技术解读和实践指导。