《
万物研究院:从 EIP4361,探索 Web2 到 Web3 账户体系变革
》
作者: 陈剑 Jason,万物研究院
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 域名等。
其中 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 用户的体验。
文章来源于互联网:从 EIP4361,探索 Web2 到 Web3 账户体系变革