查看原文
其他

从EIP4361以太坊登录出发,探索Web2到Web3账户体系变革

jason陈老师 今天有更懂这个世界一点了吗 2023-05-15

MetaMask于上周发文官宣支持EIP-4361,不少朋友对于这个协议比较疑惑,从表面来看与普通的签名没有太大区别,本文为大家进行解读,首先要明白EIP-4361这个事其实挺小的,但是背后能够引申出来的领域很大。

EIP4361是与以太坊登录相关的技术规范标准提案,以太坊登录SiwE(Sign-in with Ethereum) 是一种去中心化的身份验证方法,它使用户能够使用他们的以太坊账户实现统一登录并控制身份,而不是依赖于由中心化的公司用的传统用户名/密码身份验证,Vitalik在之前的访谈中曾经提出了认为2023年Web3的三个最大机会,其中就包括以太坊登录,他表示任何有助于以太坊从Facebook、google和twitter等中心化垄断企业手中夺走登录权的技术,最终都会使以太坊在互联网应用程序中获得更多市场主导地位,所以登录体系是Vitalik认为争抢下一个10亿人重要的方向。

其实对于以太坊来说现在我能够感受到其内部的焦虑感,虽然以太坊当前的地位看似不可撼动,但现在面对的竞争压力也非常的大,尤其是前有aptos、sui这些高性能新公链,后又有以cosmos为代表的应用链行业链,所以这也是以太坊必须如此坚决的转POS、搞Layer、做分片等动作的原因,在共识和性能上做出优化加筹码,另一方面也是在面对C端的入口级领域如ENS和登录等领域做的更深,与C端深度绑定打造自己的护城河,另外值得注意的是EIP4361背后有三家支持方,分别为以太坊基金会、ENS和Spruce,除以太坊基金会外另外两家都是DID公司,某种程度可以说是两家DID公司与以太坊基金会一起建立行业标准,所以该标准不能完全具备中立性,能看到文档中与ENS绑定也比较深度,包括可以解析ENS域名等,以下为SiwE的官网:https://login.xyz/

其中ENS大家已经很熟悉了,对于Spruce比较陌生,中文区几乎少有对它的报道和解读,它的使命是一家致力于让用户可以控制自己个人数据,得到包括A16Z、YC等一众明星资本的支持,其所在的领域从类别划分属于DID大类下面的SSI自我主权身份,使个人能够控制自己的身份数据,包括决定哪些第三方应用可以使用它,如何使用等问题,所以如果说我们常理解的DID是通过数据收集后证明你是谁,那SSI则是专注于数据层面的授权、使用和管理。

在聊以太坊登录SiwE之前,需要先聊清楚传统的账号登录体系与现存的连接钱包签名,然后才能理解SiwE的区别与优势。

传统的账号登录体系即使用手机号、邮箱、密码等形式中心化的保存用户的账户并进行登录和验证,用户的账号完全存储在中心化的数据库中,所以存在销号、转号、数据泄漏等问题,总共经历了两个阶段的发展,在以腾讯阿里为代表具备自己生态的巨型互联网公司出现之前,用户的账号体系都是每家公司甚至每个产品独立维护一套的,一般来说会有一个User表用于存储该用户的所有账号信息,包括用户的名称、密码、手机号邮箱等,用户每注册时就会往User表中存储一条数据,后续登录时则输入用户名和密码进行对应的匹配,用户要自己管理一大堆账号密码非常麻烦,很容易丢失忘记,很多用户为了方便,会把所有产品的账号密码都设置成一样的,就导致只要一个产品的数据库被泄漏后,黑客就会使用撞库攻击,来批量的登录所有的产品,如此之多的账号,再加上中心化管理,风险极其大,但后面开始用了大量的手机验证,就又出现了每次换手机号的痛苦阶段。

后续随着腾讯和阿里具备了自己的产品矩阵并有生态后,用户在自家的各个产品之间登录,还需要切换不同的账号非常麻烦,以及最大的问题在于各个产品之间的账号是隔离的,导致腾讯阿里无法去充分的“利用用户数据”,比如我用淘宝购买了床单,又用饿了么点了份外卖,那么通过数据分析其实可以给我贴上“打工单身青年”的标签,但因为这是两个产品,每个产品又有各自的账户体系,所以完全无法知道这两个产品用户之间的关联关系,方法要么就是通过统一的账号来进行匹配识别,比如都使用手机号注册,这样所有的产品中只要使用同一个手机号的那就是同一个人,另外就是用单点登录或统一登录的方式,如现在最常用的微信登录,下图为微信登录的流程图,用户使用微信作为登录方式则免除了重新注册账号和管理账号的冗余流程,对于第三方产品降低了用户的使用门槛从而更好获客,对于微信来说更多的用户和第三方产品以微信作为账户登录入口,则可以很大的提升其竞争壁垒。

toC的登录体系可以使用腾讯阿里这类生态级企业解决方案,toB的登录体系同样面临更麻烦的问题,因为随着企业的发展内部使用的产品会五花八门,来源包括第三方定制化采购、SaaS厂商、自研等,再加上员工众多涉及到大量的权限、数据安全等问题,所以如何能够让上万名员工顺畅且安全的使用内部数百个产品也是需要被解决的问题,有如Authing、Okta等公司为企业提供单点登录解决方案。

以上就是传统Web2经历了这20年对于账户身份体系的主要演变,Web3给普通用户在体验上很直观的区别就在于用一个钱包就可以使用所有Web3的产品,这是最直接的能够让用户感受到区块了这全球一张网的含义,或者说是真正实现了“互联”网。

但因链上资产的特性导致每个人要为自己的安全负责,不再像Web2那样存在一个可以有责任和义务保证用户资金安全的第三方平台了,从而面临用户会被大量的暴露在充满钓鱼网站的环境中,只要进行了相关签名和授权资产就可能被盗,尤其是目前以metamask为代表的钱包交互时披露的信息太少,并且可读性非常差,非技术背景的人甚至大多时候都看不懂要求进行签名和授权的弹窗内容到底意味着什么,所以需要对于索取用户签名授权的动作制定严格的标准,充分的告诉用户要执行的内容。

EIP-4361明确了以太坊账户如何通过链下服务进行身份验证的标准过程,这样身份验证通过签署标准消息格式进行,该消息格式使用会话详细信息、安全机制和范围进行结构化,即会以标准的字段参数进行展示,为开发者提供了Web2 和 Web3应用创建统一身份层的基础设施,这个过程对于用户来说是免费的,只需要在消息上进行签名,不需要与区块链进行交易,也不需要向矿工支付Gas。

如文档中所说“作为 web2 公司,您将有机会成为用户进入 web3 的第一个接触点,并帮助他们控制自己的数字身份”,SiwE是希望能够通过将连接钱包-发送签名-完成登录这个过程标准化出来后,让更多的Web2产品可以接入,成为一个登录选项,就像是我们在使用某些产品时,可以让我们选择登录方式包括谷歌登录、twitter登录、facebook登录,下面就可以再放一个以太坊登录,通过登录入口嵌入从而覆盖极大规模用户的web2产品。

对于这些web2产品接入SiwE的动力则是可以根据用户公开的链上资产进行对应的服务,即如果用谷歌、twitter登录也只是完成登录这一个动作而已,但是用以太坊登录则可以根据用户持有资产情况做出更多特定的服务,如若持有某个NFT则可以打8折之类的。

关于EIP-4361的提案链接如下:https://eips.ethereum.org/EIPS/eip-4361 下图为SiwE的模板消息、完整的ABNF和对应的弹窗样式,可见以非常结构标准化的方式透出了用户要执行的内容Message、请求登录的网址URI、当前版本Version、所登录的链Chain ID、防止重放攻击的Nonce、登录的有效时间Issued AT和结束时间Expires AT。

其中ABNF全程是扩充巴科斯范式 (Augmented Backus–Naur form),是描述一种作为双向通信协议的语言的形式系统,这也是EIP-4361的重点,将登录过程进行标准化。

上文中提到了EIP-4361背后有ENS,所以在该提案中也包含了对ENS比较深度的嵌入,使用SiwE可以解析ENS的数据,包括ENS名称、ENS头像和ENS文档中指定的任何可解析资源,如下图所示ENS除了本身的域名以外,还可以绑定大量的信息包括钱包地址、邮箱、discord、twitter等。

除了标准化登录以外,EIP-4361还可以一定程度预防钓鱼攻击,目前每天都发生大量的用户被钓鱼网站盗取资产的事件,其中EIP-4361在钱包进行登录的过程中有三个步骤

1.验证消息,检查签名内容是否符合上文中提到的ABNF标准格式

2.验证域名,如果符合EIP-4361的登录标准,钱包会验证发起登录的网址是否符合ABNF中所提交的网址,从而避免张冠李戴

3.然后创建以太坊登录弹窗,其中存在的规范是必须要充分的向用户展示所有的条款,并要求用户将页面滚动到最底部再进行签名,即类似于很多APP的用户准则一样,要拉到最下面确保名义上的读完才可以执行下一步

在设计规范里提到了4条

1.必须要呈现一个人类可以理解的页面,其中大部分没有针对机器的工作,例如JOSN、十六进制代码、base编码等,这就是上文中我说到的目前钱包交互所存在的问题,非技术人员根本不知道自己点了之后意味着什么

2.应用程序的后端需要为其终端进行完全可用的支持,不需要强制修改钱包,这一点主要是要求接入SiwE时不能对用户产生体验上的门槛

3.对于已经使用SiwE的应用钱包要做好简单直接的升级路径,在上文中说到会有一个标识SiwE的版本号Version,后续SiwE升级也要保证可以兼容

4.需要做好充分的重放攻击、恶意签名等预防准备

另外在文档中也提到了密钥管理问题,即因为SiwE希望能够有很多Web2的产品可以接入,将更多圈外用户带入Web3的世界,但是主流的用户已经习惯了Web2产品的“找回密码”功能,在Web3中如果你的私钥丢失了则无法找回,所以这个问题对于大量Web2用户的教育门槛很高,其实也非常期待账户抽象AA钱包的普及后可以真正有效解决这个问题。

以上就是从EIP-4361出发对Web2到Web3账户体系变革的解读,其实EIP-4361本身并不是如账户抽象、上海升级这类影响巨大的事件,它更多的是建立一种规范的行业标准,但也正是这类润物细无声的优化,才会逐渐的提升Web2与Web3用户的体验。

在撰写本文时向几位朋友进行了请教交流,特别在此鸣谢周载南、余弦、方军等各位的交流探讨!

如若本文中存在疏忽或者错误,欢迎交流指正,非常感谢!

研究写作不易,欢迎打赏,全凭缘分,交个朋友

欢迎转发本文,请关注我的twitter:@jason_chen998了解更多一手信息,我和读者们互动也会在推特上进行,有需要也可添加微信 cj350306878,请备注姓名、公司和目的,谢谢。

未经授权,各媒体请勿私自转载,请尊重创作者,谢谢

往期文章:



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存