主页 > imtoken最新版app > 为什么“使用以太坊登录”是革命性的

为什么“使用以太坊登录”是革命性的

imtoken最新版app 2024-01-06 05:13:24

来源 | blog.spruceid.com 作者 | 罗科

以太坊有哪几种账户_以太坊有强大_以太坊有公司吗

使用以太坊登录 (SIWE) 彻底改变了用户在 Internet 上的选择。

用户现在可以使用控制其区块链帐户的同一私钥直接登录(无需通过中间人),而不必与一些大型中间人妥协。 借助 SIWE,我们开辟了另一条道路,大公司无法再剥夺用户访问服务和监控其行为的能力。

SIWE 是一个完全开放的认证标准,通过与 dapps、应用程序、钱包、安全公司等社区成员的公开讨论实现。您可以在网站 login.xyz 上找到所有会议记录和笔记。 这种方法与科技巨头或政府供应商封闭式开发专有身份系统大相径庭(受到隐私和数字权利倡导者的抗议)。

相比之下,Sign-In with Ethereum (EIP-4361) 为以太坊账户定义了一种开放的创意共享 (CC) 签名格式,以安全地验证任何基于网络的服务。 SIWE 是由社区在以太坊基金会和 ENS 的直接支持下建立的,Spruce 去年底负责该项目。 我很高兴能在这里讨论“使用以太坊登录”的含义,以及它如何超越所有 Web3 构建者的“连接钱包”。

以太坊有公司吗_以太坊有强大_以太坊有哪几种账户

连接到钱包与使用以太坊登录

以太坊有强大_以太坊有哪几种账户_以太坊有公司吗

“连接钱包”按钮现在是 dapp 的主要功能。 通过单击此按钮,用户开始与 Web3 和区块链交互的旅程。

通过连接钱包,应用可以知道你使用的是哪个账户; 然而,仅此而已。 您的钱包更容易知道您想使用哪个帐户与智能合约交互、发送加密货币,甚至通过 dapp 签署消息。 连接钱包的功能非常简单——dapp对你“没有记忆”,只是搭建一个简单交互的平台。

当应用程序想要与用户进行更丰富的上下文交互时,例如加载用户首选项或私人聊天消息,我们首先需要确保我们正在与帐户背后的实际私钥持有者交谈,而不是假装拥有控制权的人帐户。 “Connect Wallet”不提供此保证,但SIWE可以。 换句话说,我们需要对用户进行身份验证,以便与他们建立会话,然后安全地读写他们的数据。 为了说明两者的区别,我举了下面两个例子——连接钱包的Carl和建立会话的Sam:

以太坊有强大_以太坊有公司吗_以太坊有哪几种账户

(译者注:Session是一种在客户端和服务器之间保持状态的解决方案,它的依据是:当客户端第一次访问时,服务器会生成一个session id返回给客户端。当然,服务器也会同样将session id保存在内存中,client获取到session id后,会在后续的每次请求中将session id发回给server,这样server查询自己的内存就可以知道client访问过.Session可用于实现用户登录认证,服务器生成的session id返回给客户端后,往往保存在cookie中,所以Session-based authentication也称为Cookie-Based authentication。来源)

以太坊有强大_以太坊有公司吗_以太坊有哪几种账户

Carl 使用 dapps 并且有很好的经验。 他可以在 Uniswap 上交易,在 Aave 上借款,甚至可以在 OpenSea 上购买 NFT。 要执行这几个操作,他只需要连接他的钱包。 卡尔的操作一直很顺利,直到有一天,他遇到了这样一个问题:他想让这些dapps记住他的一些情况,这样当他第三次、第四次、第五次使用这些dapps时,可以给他更好的体验。

卡尔在想,如果 Uniswap 可以自动导入他的清算偏好,Aave 可以记住他最喜欢的借贷市场,甚至 OpenSea 可以记住他的名字而不是 0x2Fe1a3……这样一个账户,他的体验会好很多。 卡尔每次连接钱包时都从头开始。

山姆不会有这样的问题。 Dapp对其进行身份验证并建立会话后,相关信息将被保存。 即使 Sam 断开连接并重新进行身份验证,会话也会从他中断的地方继续,并且应用程序仍然会记住关于他的一切。 他的信息甚至可能保存在他控制的远程数据库中。

以太坊有哪几种账户_以太坊有强大_以太坊有公司吗

统一四维

环顾 Web3 空间,您会发现许多现有服务提供某种形式的“使用以太坊登录”,但达到标准的并不多。 他们通常使用它与用户建立基于 cookie 的会话,以管理与帐户关联的专有元数据。 例如,如果您想授予用户在您的站点上自定义他们自己的配置文件的权限(如 OpenSea 所做的那样),您应该在用户进行任何更改之前对他们进行身份验证,以确保只有用户可以编辑他们自己的配置文件。 工作流程如下:

以太坊有强大_以太坊有哪几种账户_以太坊有公司吗

连接钱包后的第一步是向用户提供人类可读的消息,以便他们了解他们正在与之交互的内容。 在许多情况下,用户看到的是“LOGIN”,或者一些告诉您登录的文本,或者有时甚至只是一个任意数字(在这里,签署这个随机疯狂的字母和数字集合)。 因此以太坊有哪几种账户,我们可以根据现有实践确定一组必填字段,实施许多良好的安全措施,并采用严格的语法来平衡人类可读性和安全操作。 此外以太坊有哪几种账户,钱包不需要改变它们现有的界面和做法,至少可以继续为用户提供此类信息。

首先,我们可以获取所有这些混乱的“SIWE”信息,并以可接受的通用方式向用户提交请求:

以太坊有公司吗_以太坊有强大_以太坊有哪几种账户

以太坊有强大_以太坊有哪几种账户_以太坊有公司吗

分享信息-分享界面

在同意签名消息格式后,应用程序和钱包现在可以使用相同的语言。 当应用程序向用户提交签名请求时,钱包可以检查该请求,检查它是否与 EIP-4361 (SIWE) 信息匹配,并让用户知道他们正在登录网站。

此时,钱包可以呈现友好的程式化界面,让用户体验更好,让用户对即将采取的行动毫无疑问。 而不是给用户一个任意的文本块来签名。 用户现在只需单击确认对话框即可“登录”,因为钱包“理解”签名请求。 为了完全透明,EIP-4361 规范中规定的所有信息和字段必须在其他子界面(例如详细信息视图)中仍然可用。

从EIP-4361的信息中,我们可以得到一个比较清晰的界面:

以太坊有强大_以太坊有公司吗_以太坊有哪几种账户

以太坊有强大_以太坊有公司吗_以太坊有哪几种账户

该规范还为钱包引入了额外的安全要求,例如引入域绑定以防止网络钓鱼攻击; 引入随机数来防止重放攻击,并在整个过程中进一步保护用户。 例如,如果钱包发现一条有效的 SIWE 消息,但用户正在为 example.com 签名(但实际上是在 exampie.com),钱包可以警告用户这种情况:

以太坊有公司吗_以太坊有强大_以太坊有哪几种账户

超越认证

SIWE 信息也可以理解为访问特定资源的授权,或者会话私钥的委托,以提高 dapp UX 的功能和易用性。 例如,想象这样一个世界,在这个世界中,用户可以使用他们保留的数据来丰富他们自己的会话,而不是应用程序保存用户的数据。 有关更多信息,我强烈建议阅读这篇文章:

从使用以太坊登录到会话密钥:

我将很快发布本文的第二部分,敬请期待! 在那之前,去实施 SIWE!