本文阐述了 以太坊账号登录 与 连接钱包的不同, 描述了 以太坊登录提案(EIP-4361)对用户体验的改善。
- 原文:https://blog.spruceid.com/sign-in-with-ethereum-is-a-game-changer-part-1/ 作者: Rocco
- 译文出自:登链翻译计划
- 译者:翻译小组
- 校对:Tiny 熊
- 本文永久链接:learnblockchain.cn/article…
使用以太坊登录将是互联网上用户选择的、一个登录方式的游戏规则改变者。用户可以使用控制其区块链账户的相同密钥登录,而不是提交给
大登录
,没有中间服务商。译者注:
大登录
指的是在很多个互联网服务上使用同一个登录方式(例如:Facebook、Google、Weixin等)
以太坊登录-游戏规则改变者。
用户现在可以使用控制其区块链账户的相同密钥登录,而不是提交给大登录
,没有中间服务商。这种方法有望回归用户权力。通过以太坊登录,我们开辟了一条道路:大公司不能再剥夺用户访问服务的能力,也不能监视用户的行动。
Sign-In with 以太坊是一个完全公开的认证标准,这是与社区成员的包括dapp、应用程序、钱包、安全公司等的公开讨论中形成的。你可以在login.xyz上找到所有的会议记录和笔记。这种方法与科技巨头或政府供应商的封闭式发展的专有身份系统大相径庭,而后者理应受到隐私和数字权利倡导者的抗议。
相比之下,以太坊登录(EIP-4361)为以太坊账户定义了一种开放的创意共享(CC)签名格式,以安全地验证任何基于网络的服务。它是在以太坊基金会和ENS的直接支持下,由社区创建的。我很高兴地讨论以太坊登录的意义,以及对于Web3的所有建设者来说,它比 连接钱包(Connect Wallet)
的意义要大得多。
连接钱包
按钮是当今进入 dapps 的主要方式。点击这个按钮,就开始了一个人进入Web3和区块链交互的旅程。
然而,连接钱包允许你告诉应用程序你申领使用的是哪个账户,仅限于此。这更多的是让钱包了解你想用哪个账户与智能合约交互、发送加密货币,甚至是通过dapp签署消息。连接钱包非常基本--应用程序没有记录你的任何信息,只是为简单交互创建了一个前端显示。
当应用程序想要与用户进行更丰富的上下文互动时,例如加载他们的偏好或私人聊天信息,需要首先确保我们是在与账户背后的实际钥匙持有人交谈,而不是假装控制该账户的人。"连接钱包 "不提供这种保证,但用以太坊登录(简称 SIWE: Sign-In with Ethereum)提供这种保证。换句话说,我们需要认证用户,与他们建立一个会话(session),以安全地读写他们的数据。对于这个例子,我想介绍一下Connected Carl
(使用连接的 Carl)和Session Sam
(使用会话的 Sam)。
Connected Carl
使用dapp,感觉不错。他可以在Uniswap上进行交易,在Aave上进行借贷,甚至在OpenSea上购买NFT,只需要连接他的钱包。一段时间,Carl的事情进行得相当顺利,直到有一天,他遇到了一个问题:他希望这些dapp能记住他,以便在他第三次、第四次、第五次使用这些dapp时,能给他更好的体验。
Carl在想,如果Uniswap能自动导入他的流动性偏好,Aave能记住他最喜欢的借贷市场,甚至OpenSea能记住他的名字而不是0x2Fe1a3...的账户,他的体验会好很多。但每次连接他的钱包时这些都要从头开始。
“Session Sam”就没有这个问题。在与dapps进行认证并建立会话后,这些信息被保存下来。即使Sam断开连接并再次认证,萨姆也会从他离开的地方继续,并且在应用程序中仍然记得关于他的一切。他的信息甚至可以保存在他控制的一个远程数据库中。
在整个Web3中,你会发现许多现有的服务提供某种形式的 用以太坊登录
,但没有多少是标准的。他们通常会利用这一点与用户建立一个基于cookie的会话,可以管理关于账户的特权元数据。例如,如果你想让用户能够在网站上定制用户自己的个人主页(如OpenSea所做的),应该在用户进行任何更改之前对其进行认证,确保只有用户能够编辑自己的个人主页。工作流程看起来像下面这样:
连接钱包后的第一步是给用户一个可读的信息,这样他们就能明白他们正在做的是什么。已经有很多情况下,给用户提示的签名信息是 LOGIN
,或一些关于 登录
的不一致的措辞,甚至有时是一个任意的数字(例如提示用户签署一个随机的魔术字母和数字集
)。其实,我们可以根据现有的实践、一些良好的安全措施和严格的语法来定义一套必要的字段,在人类可读性和安全性之间取得余额。另外,钱包也不必改变他们现有的界面和做法,可以继续为用户提供这种信息。
我们首先可以把所有这些杂乱无章的'用以太坊登录'信息,用一种公认的通用方式来向用户提出请求。
有了一个商定的签名信息格式,应用程序和钱包现在可以说同样的语言。当应用程序向用户提出签名请求时,钱包就可以检查该请求,检查它是否适合作为EIP-4361消息,并让用户知道他们正在签署进入一个网站。
在这一点上,钱包可以呈现一个友好的风格化界面,让用户感觉良好,并消除对用户即将采取的行动的任何怀疑,而不是向用户呈现一个任意的文本块来签名。用户现在可以通过点击确认对话框直接 Sign-In(登录)
,因为钱包理解了的签名请求。为了完全透明,规范指出,完整的消息和字段必须在额外的子界面中提供(如提供详细界面)。
从EIP-4361消息中,我们现在得到一个更简洁的界面:
该规范还为钱包引入了额外的安全要求,如防止网络钓鱼攻击的域名绑定和防止重放攻击的nonce设置,用户在整个体验过程中得到进一步保护。例如,如果钱包发现一个有效的SIWE信息,但用户签署的是example.com
,但实际上是在exampie.com
,钱包可以警告用户这种情况。
用以太坊登录也可以被解释为访问特定资源的授权,或授权给一个会话密钥,以增加功能和围绕dapp用户体验的易用性。例如,想象一下这样一个世界:用户可以用自己持有的数据来填充他们的会话,而不是由应用程序持有用户的数据?关于这一点,建议查看这篇文章:https://blog.spruceid.com/from-sign-in-with-ethereum-to-session-keys/
在这篇文章之后,我还会再写一篇关于Web2用以太坊登录的好处的文章。
不过现在你就可以使用以太坊登录:login.xyz!
欢迎跟随我们继续支持以太坊登录的工作,如果你有兴趣参与,请加入我们的Discord服务器:http://discord.gg/WjvuYqvm5Y
本翻译由 Duet Protocol 赞助支持。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!