译者按:Spruce 是一家开源软件公司,专注于去中心化身份和数据,从 「不是你的密钥,不是你的币」进化到 「不是你的密钥,不是你的身份」。此前,ENS 和 Spruce 宣布合作关系,Spruce 发文表示 Sign-in with Ethrereum 将使用户能够使用他们的以太坊账户而不是由大企业所有的账户访问 Web2 网络服务。
关于推动使用以太坊登录的工作,我们最初的目标是创建一个规范和参考实现,旨在为用户使用以太坊账户登录到传统 Web2 服务时提供一个端对端的身份认证流程,并使用 ENS 作为主要的用户控制数据聚合器。
这将允许以太坊用户基于密钥提供自己的数字身份,而不是依赖于诸如谷歌、Facebook 或亚马逊等此类中心化身份提供商。我们将进一步描述依赖方如何在保护用户隐私的同时实现检索和验证有关用户身份的信息,例如电子邮件账户、电话号码以及社交媒体账户。
目前,如果用户想要登录网站,他们需要从几家大型互联网公司中选择一家,以作为其数字身份的身份提供商 (identity providers, IdPs)。OAuth 2.0 和 OpenID Connect 的设计者最初打算产生一个完整的身份提供商生态系统供用户选择,而不仅仅是几个统一的实体。这些大型身份提供商通过简化终端用户和开发者的身份验证来控制用户的身份标识,这意味着它们还控制对关键服务 (包括银行、支付和社交网络) 的访问 (它们甚至还拥有可见特权)。这种中介结构限制人们直接访问线上服务大体上类似于中心化银行限制用户直接访问金融市场。
兼容以太坊的钱包越来越普及,如 MetaMask每月活跃用户超过 500 万。现在有一个新的方式来为登录 Web2 服务提供直接的身份验证:即使用直接来自用户的 Web3 钱包和 ENS 的消息前面和声明聚合,而不是借助传统的中介。
这些声明不仅可以用于登录过程,还可以将现有的 Web2 账户更广泛地转变为加密货币的应用。
使用以太坊登录,用户将能够:使用支持 WalletConnect 的以太坊钱包登录到已安装 「Sign-in With Ethereum Server SDK」(使用以太坊登录的服务器 SDK) 的 Web2 服务中。了解 Web2 服务需要验证哪些信息以及完成登录过程的来源有哪些。从 「Sign-in with Ethereum Client SDK」(使用以太坊登录的客户端 SDK) 中选择要呈现给服务器的声明,以便服务器可以从各种来源检索和验证信息,包括以太坊名称服务 (ENS)、星际文件系统 (IPFS)、HTTPS 等。使用加密且需要授权的声明 (注意:这可能会从扩展规范中的核心库和规范中分离出来)。
而 Web2 服务托管将能够:将 Sign-in with Ethereum Server SDK 或规范集成到普及的 Web 框架和授权库中,以直接或通过身份验证方法聚合器 (例如 Auth0 或 Passport.js) 支持 Sign-in with Ethereum。明确 Sign-in with Ethereum 的要求。作为登录过程的一部分,服务可以检索和验证由用户提交和 / 或由 ENS 聚合的声明,例如 Web3 帐户余额、NFT 所有权、W3C 可验证凭据等。将 Web2 帐户链接到以太坊地址。服务可以检索和验证由用户和 / 或 ENS 提交的声明,以使用新功能来扩充他们的 Web2 帐户,例如仅供 NFT 所有者使用的特殊门户或下载、DAO 成员的私有链下管理面板,或从链上数据或链下签名凭证做出的其他决定。仅使用配置将 Sign-in with Ethereum 工作流集成到现有的 OAuth 2.0/OpenID Connect 依赖方。此工作流依赖于受信任的身份提供商,该身份提供商支持 Sign-in With Ethereum 的身份认证方法,并且能够建立 OAuth 2.0/OpenID Connect 会话。
就工作流如何运作而言,依赖方将首先向用户呈现登录要求,包括不同身份验证类型需要来自 ENS 的哪些声明、防止重播的随机数以及唯一的站点身份标识。在这种情况下,ENS 域所有权可以作为基本的反女巫机制。
然后,用户通过 WalletConnect 签名执行基于以太坊的身份验证,该签名被发送到依赖方。此步骤将使用支持用户选择相关声明的数据模式,允许用户规定依赖方应查询哪些声明 (即应该用于建立会话的有关其帐户的选定事实)。这些事实通过 ENS 作为 TXT 记录按值或按引用 (即 URL) 检索。
接着,依赖方使用声明查询方法检索和验证以太坊账户的相关声明,如 ENS 地址、电子邮件验证、社交媒体账户链接或验证 (例如,通过 Uniswap Sybil),以及用户和服务器都支持的任何其他声明。
那么用户就可以像平常一样访问该服务并与之交互,并能够提供自己的数字身份,而不是受中心化身份提供商的支配。我们相信这将是用户控制和管理网络交互的伟大进步。
关于隐私的说明。我们将首先关注那些已经习惯于将他们的以太坊地址与他们的公共形象关联并理解其含义的 Web3 用户,例如许多在 Twitter 上自豪地将他们的 NFTs 作为他们的个人资料图片 (pfp) 展示的人。我们认为,隐私应当是实现适当的信息流动,而不是绝对保密。随着不同用户群体 (如主流网络用户) 对隐私的要求发生变化,我们使用隐私工具的方法也必须改变,例如在每次交互的基础上使用新衍生的以太坊地址,或结合零知识的隐私技术来减少关联性。