概述
ERC-1078 提出了一种以太坊原生解决方案,旨在替代传统的用户名和密码注册登录模式。该方案无需密码、无需备份私钥或输入助记词,用户可通过 ENS 子域名实现无缝登录体验。对于去中心化应用开发者而言,这代表了一种全新的交易处理思维方式。
核心机制
身份标识与密钥管理
用户的唯一标识符是一个智能合约,该合约需同时实现 Identity 和 Executable Signed Messages 相关标准。用户无需直接提供合约地址,只需提供指向该合约的 ENS 名称即可。
此类合约间接受私钥控制:私钥可签署表达操作意图的消息,随后由第三方或去中心化部署者网络将消息部署到合约中。设备“登录”应用的本质是在本地生成私钥,并请求授权将该密钥添加为身份的签名者之一,同时设定权限范围。
由于该私钥仅用于消息签名,无需持有以太币或其他资产,丢失后可轻松替换——用户资产始终安全存储在身份合约中。
登录流程详解
第一步:获取用户 ENS 名称
流程的第一步是获取用户指向其身份的 ENS 名称。若用户尚未设置登录名,应用应提供选项让其使用子域名或已有名称。
用户体验提示:应用需优雅处理名称验证。若用户尝试注册已存在名称,应提示是否直接登录;若尝试连接不存在的名称,应友好提示并询问是否立即创建。避免让用户重复输入相同信息。
第二步:创建新身份或连接现有身份
创建新身份流程:
- 在设备或浏览器本地安全生成并存储私钥
- 创建支持 ERC720 和 ERC1077 的身份合约
- 将新生成的私钥注册为合约的唯一管理员密钥
- 注册请求的子域名并将其所有权转移至合约
- (可选)设置恢复方法以防主密钥丢失
这些步骤可设计为单笔交易完成。应用可对注册收费或要求用户完成反女巫攻击验证。
连接现有身份流程:
应用需明确请求的权限级别:
- 管理者权限:允许更改身份本身(如添加/删除密钥)
- 操作权限:允许在其他地址发起交易(移动资金等)
- 加密权限:仅用于链下签名(适合游戏、社交应用)
具体步骤包括:
- 本地生成并安全存储私钥
- 查询 ENS 解析身份地址
- 生成添加密钥的交易字节码
- 通过去中心化网络广播交易请求
- 尝试通过 web3 或 EIP681 格式URL发送交易
- 显示二维码作为最终备用方案
第三步:交易请求处理
获得适当权限后,应用可使用密钥签名并执行交易。需注意:
- 许多操作可在链下完成(如聊天签名、游戏状态跟踪)
- 链上交易需确定基本参数(to/from/value/data)
- 验证所需权限级别和签名数量
- 合理设置 gas 限制和代币价格
- 遵循标准签署可执行消息
部署交易时:
- 单签名交易可由应用提供商直接部署
- 多签名交易需通过去中心化网络收集签名
- 可监听合约事件跟踪交易状态
技术实现现状
目前尚无完整实现案例,但已引起开发者社区的广泛关注。后续发展需标准化去中心化消息传递协议和开源部署工具,以构建可靠的消息部署层。
优势与前景
该方案使轻量级应用无需持有以太币即可运行,设备可保持解锁状态以发送消息和进行游戏操作,无需频繁请求用户确认。未来改进将聚焦于去中心化消息协议的标准化和部署工具的完善。
常见问题
ERC-1078 的主要创新点是什么?
ERC-1078 通过 ENS 子域名和智能合约身份系统,实现了无需密码的以太坊原生登录方案。用户使用本地生成的签名密钥即可安全访问应用,而资产始终受身份合约保护。
这种方案如何保证安全性?
私钥仅用于签名,不持有资产,丢失可替换。权限分级管理确保不同应用获得最小必要权限。交易可能需要多签名验证,提供额外安全层。
与传统登录方式相比有哪些优势?
消除了密码管理和助记词备份需求,提供无缝登录体验。用户资产由智能合约托管,应用无法直接访问,增强了安全性。同时支持灵活的权限管理和链下操作。
开发者集成需要注意哪些关键点?
需正确处理 ENS 名称解析、密钥权限管理和交易签名流程。应提供优雅的用户引导体验,特别是处理名称冲突和交易状态跟踪时。建议遵循标准化的消息格式和gas管理规范。
这种方案是否支持私钥恢复?
是的,身份合约可设置恢复方法。用户在创建身份时可选择注册恢复选项,在主密钥丢失时通过预定流程重新获得访问权限。
交易部署如何解决网络拥堵问题?
应用可通过调整 gas 价格和选择适当时机部署交易。此外,一些操作可在链下完成,减少链上交易压力,只在必要时才进行最终结算。
本文基于以太坊改进提案 ERC-1078 技术文档编写,旨在提供清晰的技术解读和实践指导。