Authereum:提升以太坊的身份验证机制

文章介绍了Authereum如何通过改进以太坊的认证系统,提升用户体验。它详细阐述了当前非托管认证系统的问题,并提出了基于合约账户和Meta交易的解决方案,以减少用户在管理私钥和理解区块链复杂性方面的负担。

问题

非托管认证方案在将新用户引入以太坊时是一个巨大的用户体验挑战。目前的机制要求终端用户要么必须复制并备份种子短语,要么加密一个 keystore 文件,将其存储在电脑上,并祈祷当他们忘记密码时不会丢失解密的密码短语。在移动设备上,当用户需要重新输入 12 个单词的助记符种子短语时,用户体验变得更糟。大多数人仍然依赖于密码的记忆,而不到四分之一的人使用密码管理器。显然,目前的用户体验远非愉快。

以太坊和区块链的主流采用正被可用性问题所阻碍,这些问题导致用户偏离他们习惯的现有流程和过程。不愉快的用户体验让用户感到不快,并使他们短期内不太可能再次尝试。

普通用户体验区块链的 UX

标准的 Web 2.0 用户不关心去中心化,不希望用户体验中增加额外的障碍,并且更倾向于便利而非隐私。目前的用户体验要求用户下载浏览器扩展,每次需要交易时都会弹出警告,签署他们可能不理解的数据,甚至需要考虑 gas。所有这些复杂性都需要被抽象掉,以提供如黄油般顺滑的用户体验。不要让用户思考

改进现有流程

去中心化和隐私是一个光谱。在完全中心化的一端,用户可以通过当前的系统(如使用 Twitter 或 Google 登录)获得良好的用户体验。在另一端,用户完全负责自己的密钥,如生成和存储,并且还要负责管理自己的多重签名合约,部署基于合约的钱包,计算 gas 需求等。

如果用户丢失了他们的密钥,他们将无计可施。

普通用户不希望增加额外的责任,如果可以选择,他们总是会偏好便利而非最大程度的去中心化。我们可以通过最初引导用户来帮助他们上手。

期望用户在上手过程中理解密钥管理以及交易的工作原理而不事先引导,就像期望一个从未骑过自行车的人在没有辅助轮的情况下学习一样

新用户被要求学习密钥管理 😞

我们可以通过引导用户并给他们机会在理解和掌握了与生态系统无缝交互所需的知识水平后移除辅助轮,使这一过程变得更容易。

新用户在密钥管理中有辅助轮 😀

在可用性和完全去中心化之间做出妥协是必要的,以便创建不吓跑用户的可使用系统,同时仍然为用户提供完全控制和选择退出任何引导系统的能力,当他们关于密钥管理的知识足够成熟时。

基于合约的账户

通过使用基于合约的账户来管理新用户的资金,我们可以为用户提供额外的安全层。每个由智能合约支持的账户的行为类似于访问控制列表 (ACL)。在 web 环境下,ACL 维护附加到对象的权限以验证尝试访问资源的用户。在基于合约账户的背景下,ACL 是维护哪些密钥可以访问哪些方法的结构的智能合约。本质上,有能力拥有可以验证通过基于合约账户的某些类型交易的密钥。

这个过程类似于 JSON Web 令牌 (JWT),其中令牌包含服务器验证请求所需的所有信息,如过期时间戳和有效载荷。在合约背景下,令牌是认证设备密钥所做证明的签名。

认证密钥证明登录密钥

认证设备可以是智能手机。设备上的认证应用生成一个新的密钥对,并被账户合约列入白名单。这个新生成的认证密钥对合约具有根权限,可以授权新设备。

例如,当用户在浏览器中访问 dapp 时,会生成一个新的临时密钥对,并向认证设备发送请求,以推送通知的形式要求设备上的认证密钥签署临时密钥(或更上下文化的术语登录密钥)。建议但不强制使用认证应用;用户可以将认证密钥存储在浏览器中,并通过电子邮件确认接收认证密钥签名请求。

对于每个 dapp 都有一个由认证密钥签署的临时登录密钥

从用户的角度来看,这个过程类似于熟悉的 Web 2.0 体验。以下是认证密钥签署登录密钥的流程图示:

用户签署在不同浏览器中的新登录密钥的示例

登录密钥由认证密钥散列并签名后,用户可以使用登录密钥无缝签署交易。签署的交易以及登录密钥的签名由认证密钥发送到账户合约,进行验证和处理。由于 EVM 中添加了 create2 操作码,可以确定性地计算基于合约的地址,这意味着可以为新用户生成智能合约,但只有在有资金存在时才部署,并且部署合约的发送方会获得退款。

为了帮助理解这一过程,这里是账户合约处理交易的样子:

账户合约处理交易的示例

元交易

前面描述的过程涉及元交易。交易首先由元交易中继器的次级网络处理,他们负责验证交易和签名,并在广播之前通过签署交易支付实际的 gas。元交易的美妙之处在于,中继器(任何代表用户签署和广播的人)可以获得他们的 gas 成本退款,并选择性地为他们的服务收取费用。gas 成本也可能以代币形式支付,具体取决于实现。

ENS

集成 ENS(以太坊名称服务)允许用户使用人类可读的用户名注册账户。用户可以像往常一样使用用户名和密码注册,但在这种情况下,用户名与以太坊账户绑定。Universal Login 是这种模式的一个良好的首次实现。

Universal Login 模式的概述

在 Authereum 的背景下,当用户尝试使用现有的用户名和密码登录时,会发送登录确认电子邮件——这封电子邮件发送到属于 ENS 名称的电子邮件地址。用户只需在认证密钥所在的浏览器中打开电子邮件,并使用认证密钥签署登录密钥。如果使用应用,用户会收到推送通知,并在应用上确认或拒绝请求。我们在 ETHNewYork 黑客马拉松上展示了使用 ENS 进行 Web 2.0 风格认证的示例(并赢得了 ENS 集成奖)。

账户恢复

标准用户难以接受的一点是,丢失他们的密钥意味着他们完蛋了。使用基于合约的账户可以恢复丢失的账户,因为资金与合约绑定,而不是与单个密钥绑定。每个账户合约都有能力添加新账户,这些账户有权限对合约及其资金进行操作。

Argent 是基于合约账户的一个很好的例子,它允许你拥有监护人,他们是可信的朋友和家人,可以在你丢失设备的情况下锁定你的账户,并能够向你的账户合约添加新的授权设备。

Torus 允许任何拥有 Google 账户的人拥有自己的钱包,它通过将首次登录时生成的私钥分片到多个 Torus 节点来工作。当用户再次登录时,前端获取所有密钥片以重建私钥。

Authereum 可以利用 Torus 作为恢复账户的机制,将 Torus 账户添加为账户合约上的授权设备。这使得当你忘记 Authereum 登录时,可以通过 Torus 使用 Google 登录,并签署交易以将新设备添加到基于合约的账户。

Web 2.0 安全性

目前,当你在 Google 登录时,例如使用不同的指纹浏览器或设备,你会收到电子邮件通知,并有选项拒绝认证请求。这种安全过程可以在以太坊认证方案中实现,让所有由登录密钥签署的交易都通过执行安全检查的服务器。如果一切正常,那么服务器可以作为监护人的角色签署消息并广播。账户合约检查交易是否包含监护人服务器的签名,否则拒绝。

在反向签名前验证元交易

这仍然是完全非托管的,因为用户可以在任何时候使用他们的认证密钥提交交易,有效地绕过在 Authereum 层实现的任何防火墙。安全服务器充当防火墙,因为它可以拒绝任何不符合安全标准的元交易,无论是提供商还是用户设置的,例如拒绝来自黑名单设备或 IP 的交易,或拒绝涉及黑名单合约和账户的交易。用户还有能力将 IP 列入白名单,或添加元交易请求必须满足的附加要求,才能被监护人服务器签署并广播。我们在这个领域认为可以为用户提供极大的安心,并计划进一步扩展。

防火墙防止签署和转发可疑交易

法币出入金

用户用法币获取以太坊的上手过程是另一个挑战。Authereum 正在与应用程序开发工具包 Abridged 合作,通过 Wyre 集成链下支付和法币出金。这将允许用户使用标准信用卡购买以太坊,并立即能够在Layer2网络中与其他用户进行无费用的价值交易。我们正在考虑将 Authereum 作为 WalletConnect 中的一个选项,允许用户使用 Authereum 登录交易所如 Binance,并将他们的提款直接发送到他们的基于合约的账户。

结论

基于合约的账户允许用户轻松保护他们的资金,通过允许根据权限级别和高级密钥的证明分级密钥对合约进行操作。Authereum 是一个完全非托管的登录过程,利用 ENS 和 Web 2.0 风格的安全性,旨在通过为新用户提供辅助轮和抽象掉他们不习惯的复杂交互来减少摩擦,同时仍不偏离去中心化原则。

即将发布的帖子将包含更多实施细节。敬请期待!

非常感谢 Chris Whinfrey Shane Fontaine 帮助整理,并感谢 Abridged 团队帮助我们启动基于合约的账户。

请关注我们在 Twitter 上的 @authereum 订阅 我们的通讯以获取未来更新。

感谢阅读!

更新

我们改进了密钥管理架构。在这里查看最新细节:

https://learnblockchain.cn/article/11082

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

0 条评论

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