跳至内容
0%

Web3 身份验证指南

发布于 2025年10月29日3 分钟阅读

Web3 身份验证指南封面图,展示基于钱包的登录方式

Web3 身份验证通过用户的公钥进行验证,而非传统的邮箱或密码。这种加密方式消除了中心化密码数据库,让用户真正拥有自己的数字凭证,但助记词、十六进制地址和密钥管理的复杂性给主流采用带来了很大障碍。近来在嵌入式钱包、账户抽象和智能合约账户方面的创新正在解决这些问题。

本指南介绍 Web3 身份验证的工作原理,探讨使其更易用的技术方案,并展示如何使用现代 Smart Wallets 基础设施实现可用于生产环境的身份验证。

Web3 身份验证是如何工作的?

传统的 Web 身份验证依赖存储在中心化服务器上的凭证。用户输入用户名和密码,服务器核对数据库,凭证匹配则授予访问权限。这种模式要求用户信任服务提供商来保管其身份验证数据。

Web3 身份验证颠覆了这一模式。用户通过将 web3 钱包连接到应用来进行身份验证,通常方式是对交易签名。具体技术流程如下:

1. 钱包连接

当用户点击"Connect Wallet"时,应用会向用户的钱包软件(如 MetaMask、Phantom 或 Rainbow)发起连接请求。此时的连接并不会授予任何权限,只是建立了一个通信通道。

2. 生成挑战信息

应用生成一条唯一的挑战信息,通常是一个随机数(nonce)或包含应用域名、时间戳和身份验证目的的格式化消息,用于防止重放攻击。

3. 加密签名

用户的钱包使用私钥对挑战信息进行签名。私钥需要保密,用于证明对应公钥的所有权。签名可以证明用户掌握与其钱包地址对应的私钥,而无需暴露私钥本身。

4. 签名验证

应用使用用户的公钥(钱包地址)验证签名。如果签名有效,应用确认该用户拥有该钱包地址并授予访问权限。这一验证过程可以在客户端完成,也可以在你的后端完成,取决于你的架构设计。

5. 会话管理

身份验证通过后,应用通常会为后续请求签发一个会话令牌,与传统 Web 会话类似,这样用户就不必为每个操作都重新签名。

这种加密基础在多个方面使该流程比基于密码的身份验证更安全:没有密码可以从数据库泄露中窃取;钓鱼攻击需要诱使用户签署恶意交易,这比窃取密码更容易被察觉;用户掌控自己的身份验证凭证,而不必信任中心化提供商。

Web3 身份验证目前存在哪些问题?

尽管有着加密学上的优势,Web3 身份验证在用户体验上仍存在明显问题,限制了主流采用。理解这些问题,是构建能服务更广泛用户的解决方案的前提。

助记词如何影响用户体验?

Web3 要求用户设置钱包、管理私钥、保存助记词,往往还需要使用体验不佳的浏览器扩展或移动应用。助记词模式要求用户写下并妥善保管 12-24 个随机单词,这与主流用户的预期从根本上是不匹配的。

数据显示,35% 的用户从未备份过钱包助记词,这使他们面临失去资金访问权的严重风险。这不是用户的失误,而是设计上的问题。多年来,我们已经习惯了可以通过邮箱找回密码。而对于加密货币钱包,助记词的运作方式不同:一旦丢失,就没有重置选项。这是一个在上手之前值得理解的关键区别。

为什么钱包的用户体验令人困惑?

在加密货币中进行签名的感受,就像在阅读用户许可协议,只不过取代法律术语的是十六进制代码和原始函数调用。当用户在钱包中点击"Sign"时,通常会看到:

  • 十六进制格式的原始交易数据
  • 以 Gwei 为单位的 gas 费估算
  • 陌生的合约地址
  • 类似 approve\(address,uint256\) 的函数调用
钱包用户体验痛点插图:原始十六进制数据、gas 费用和令人困惑的交易提示

用户缺乏足够的背景信息来判断这些交易是否合法。这种信息不对称造成了安全隐患:用户在不清楚自己在授权什么的情况下点击了"Confirm"。

用户面临哪些技术障碍?

用户在能够登录之前,就要面对多个区块链网络、十六进制地址和 gas 费等问题。想想这带来的认知负担:

  • 网络选择:应该使用 Ethereum mainnet、Polygon、Arbitrum、Base 还是 Optimism?
  • 地址管理:需要理解 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb 代表自己的账户
  • Gas 费:仅仅为了完成身份验证就需要持有原生代币(ETH、MATIC 等)
  • 浏览器扩展:需要安装和管理独立的钱包软件

以上每一项都是导致用户流失的摩擦点。

钱包碎片化如何影响用户?

许多 Web3 用户需要管理多个钱包,每个钱包都有各自的密钥和助记词,都需要单独保护。一个用户可能会有:

  • 一个用于 Ethereum 和 EVM 链的钱包
  • 一个独立的 Solana wallet
  • 针对不同应用或使用场景的不同钱包
  • 用于保管高价值资产的硬件钱包

管理这种碎片化状态,需要大多数用户并不具备的技术知识和自我管理能力。

当前的身份验证方式带来了哪些安全风险?

智能合约和 DeFi 平台是黑客的常见目标,钓鱼攻击会诱骗用户泄露私钥。身份验证机制本身就会成为攻击面,具体表现为:

  • 授权钓鱼:用户在不知情的情况下签署了无限额的代币授权
  • 域名伪装:模仿正规应用的虚假网站
  • 社会工程:攻击者冒充客服骗取助记词
  • 恶意合约:用户与会盗取钱包资产的合约进行交互

私钥的安全性在 Web3 中至关重要,因为失去私钥的访问权限可能意味着失去自己的数字身份和资产。这营造出一种高风险环境,一次失误就可能造成灾难性后果。

Web3 身份验证正在如何改进?

链上生态系统正通过多项技术创新积极应对这些挑战,在不牺牲安全性或去中心化的前提下大幅改善身份验证的用户体验。

现代链上用户体验插图:内嵌钱包、社交登录和 passkey

什么是嵌入式钱包?

嵌入式钱包直接内置于 Web3 应用中,提供熟悉的登录体验,无需记忆和保管助记词。它不要求用户安装浏览器扩展或独立的钱包应用,而是将钱包功能直接集成到你的应用中。

使用嵌入式钱包,用户可以选择用 Google、Apple ID 或 X 账户登录,系统会在后台为其创建一个自托管钱包。这种方式带来以下几个关键好处:

熟悉的身份验证流程

用户使用已经熟悉的方式进行身份验证:邮箱、OAuth 或生物识别。钱包的创建和找回都通过用户熟悉的身份验证流程处理,用户无需直接理解或管理私钥。

无需浏览器扩展

钱包存在于你的应用环境中,用户不需要安装 MetaMask 或任何其他第三方软件。这消除了一个主要的上手障碍,也让你能够完全掌控身份验证体验。

流畅的用户体验

由于钱包嵌入在应用的界面中,你可以完全掌控外观、体验和流程,没有弹窗或跳转页面。身份验证过程与你现有的用户体验融为一体。

社交登录如何实现 Web3 访问?

社交登录集成利用现有的身份验证提供商,弥合了 Web2 与 Web3 之间的差距。其技术架构的运作方式如下:

通过 MPC 拆分密钥

TSS-MPC(多方计算门限签名方案)是一种加密方法,允许多方共同生成一个数字签名,通过在参与方之间分散签名权来提升安全性,同时不向任何单一一方透露私钥。

当用户使用 Google 登录时:

  1. 你的应用通过 OAuth 对用户进行身份验证
  2. 系统生成一个拆分到多方的私钥
  3. 任何单一一方(包括你的应用)都无法获取完整密钥
  4. 交易签名需要各方达到门限值的协作
  5. 用户无需直接管理密钥即可实现自我托管

Passkey 身份验证

Passkeys 是一种基于 WebAuthn 标准的无密码身份验证方式,设计目标是比传统密码更安全、更便捷。Passkeys 使用公钥加密技术,具体如下:

  • 私钥保存在用户设备的安全隔区中(如 Apple 的 Secure Enclave 或 Android 的 Trusted Execution Environment)
  • 公钥保存在你的身份验证服务器上
  • 与传统密码不同(传统密码会造成摩擦并带来钓鱼风险),passkeys 利用了用户熟悉的模式:使用生物识别来安全地创建凭证并将其存储在设备上

这提供了强安全性(私钥永不离开设备)和熟悉的用户体验(FaceID 或 TouchID)。

什么是账户抽象,为什么它很重要?

账户抽象(ERC-4337)代表了链上账户运作方式的根本转变。使用账户抽象的智能合约钱包,创建的是由智能合约管理的钱包,而不是由单一私钥管理的钱包。

传统的 Ethereum 账户(外部拥有账户,即 EOA)由单一私钥控制。智能合约账户由代码控制,这使其能够实现更多功能:

Gas 赞助

有了账户抽象,用户的钱包或账户变得可编程,使开发者能够代表用户赞助 gas 费。这意味着:

  • 用户无需持有 ETH 即可与你的应用交互
  • 你可以赞助上手流程中的交易以减少摩擦
  • 用户可以用稳定币或其他 ERC-20 代币支付 gas 费
  • 你可以设定具体策略来决定赞助哪些交易

批量交易

作为可编程的智能账户,交易可以被打包批量执行,这极大简化了用户体验并降低了延迟。用户可以:

  • 在一次交易中完成代币授权和兑换
  • 原子化地铸造 NFT 并将其挂单出售
  • 无需多次钱包确认即可执行多步骤的 DeFi 策略

社交找回

智能合约账户可以实现不依赖助记词的找回机制:

  • 指定可以帮助找回账户的可信联系人
  • 使用基于邮箱或手机号的找回流程
  • 实现有时间锁定的账户找回流程

可编程安全

由于账户本身就是智能合约,你可以实现自定义逻辑:

  • 高价值交易的多重签名要求
  • 每日或每笔交易的支出限额
  • 用于自动批准的白名单地址
  • 特定操作的时间限制

Ethereum 的联合创始人 Vitalik 认为,从 EOA 向 Smart Wallets 的转变是让主流用户进入链上世界的必要条件。账户抽象不是一个锦上添花的功能——它是实现主流采用的基础设施。

Passkeys 如何提升身份验证的安全性?

Passkeys 自带多项安全优势。具体来说,与密码或口令不同,用户使用 passkey 时不需要记住任何信息,也无法从用户那里通过钓鱼手段获取这些信息。

其安全模型运作方式如下:

设备绑定的凭证

私钥在设备的安全硬件中生成并保存(可信平台模块、Secure Enclave 等),永不离开设备,从而消除了通过网络攻击窃取密钥的风险。

抗钓鱼能力

由于 passkeys 与创建它们的域名绑定,无法在钓鱼网站上使用。即使用户被诱骗访问了虚假网站,由于域名不匹配,passkey 也无法生效。

无共享密钥

与在用户和服务器之间共享的密码不同,passkeys 使用非对称加密。服务器只保存公钥,即便数据库被攻破,公钥对攻击者也毫无用处。

生物识别身份验证

此外,由于 passkeys 与你的 iCloud 或 Google 账户绑定,它们受到 Apple 和 Google 安全体系的保护。这提供了:

  • 默认的多因素身份验证(持有设备 + 生物识别)
  • 抵御 SIM 卡劫持攻击的保护
  • 跨设备的备份与同步

有哪些开发者解决方案能简化 Web3 身份验证?

多家服务商提供简化 Web3 身份验证实现的基础设施。以下是关于这一领域的概况。

有哪些第三方身份验证服务商?

Web3Auth

一套简单的非托管身份验证基础设施,让 Web3 钱包和应用能够为主流用户和 Web3 原生用户提供无缝登录体验。Web3Auth 支持社交登录、邮箱身份验证,并与多个钱包提供商集成。

Magic

提供基于邮箱的钱包创建,使用多方计算进行密钥管理。Magic 处理密钥拆分和找回的复杂性,同时为开发者提供简单的 API。

Dynamic

提供非托管的嵌入式钱包,支持社交登录和账户抽象集成。Dynamic 既提供嵌入式钱包,也支持外部钱包连接。

Privy

为 EVM、Solana、Bitcoin 等链上的任意用户提供硬件加密、符合 SOC 2 标准的钱包。Privy 专注于结合企业级安全性的流畅登录体验,支持 passkey 和硬件令牌。

Alchemy 的智能钱包基础设施是如何工作的?

我们构建 Smart Wallets 是为了提供垂直整合的钱包与交易基础设施。你无需拼凑多个服务,只需一个 SDK,就能获得实现生产级身份验证所需的一切。

用于零摩擦上手的嵌入式钱包

Smart Wallets 让你可以构建体验上像 Web2、底层却完全是 Web3 的产品。具体来说:

用户可以通过以下方式注册:

  • 邮箱身份验证
  • 社交登录(Google、Apple、Twitter)
  • Passkeys(FaceID、TouchID)
  • 自定义身份验证(使用你自己的身份验证方式)
  • 面向加密原生用户的传统钱包连接

实现方式很直接。这里有一份指南可以帮助你上手。

创建智能合约账户

身份验证通过后,你可以为用户创建一个智能合约账户。我们所有的智能合约账户都经过 Quantstamp 审计,并在生产环境中经历了超过 3.8 亿笔交易的实战检验:

智能合约账户提供账户抽象的所有优势——gas 赞助、批量交易和可编程安全。

Gas 赞助配置

通过可编程策略赞助 gas,你可以精确控制赞助哪些交易,并且可以用任意 ERC-20 代币来实现。

在我们的控制台中设置策略:

  • 针对单个钱包或全局的支出限额
  • 特定地址的白名单/黑名单
  • 赞助特定的合约交互
  • 设置每日/每月的支出上限

多链支持

Smart Wallets 已支持包括 Ethereum、Polygon、Base、Optimism、Arbitrum 在内的 30 多条链。只需编写一次身份验证逻辑,即可跨多条链部署。

生产级基础设施

构建于 Alchemy 一流、可靠的基础设施之上,确保智能合约钱包的原语始终可供用户使用。我们提供:

  • 99.99% 正常运行时间 SLA
  • 亚秒级响应速度
  • 自动扩容
  • 面向企业客户的 24/7 支持

Alchemy Smart Wallets 已支撑超过 3800 亿笔交易,是使用量第一的智能钱包,为从小型创业公司到大型企业的各类应用提供支持。

应该如何实现 Web3 身份验证?

基于为数千个应用构建身份验证的经验,以下是在生产环境中行之有效的模式。

应该以社交登录还是钱包连接为起点?

面向主流用户的应用,应从社交登录入手。面向加密原生用户的应用,两者都应支持。

  • 社交登录优先模式: 这种方式能最大化不持有加密钱包的新用户的转化率。之后可以为想要完全掌控钱包的用户增加"导出到 MetaMask"功能。
  • 钱包连接优先模式: 这适用于 DeFi 应用、NFT 交易市场等用户很可能已经拥有钱包的应用。

应该如何处理 gas 费?

不要要求用户在使用你的应用前先购买 ETH。通过赞助 gas,让用户无需 ETH 即可免费试用你的应用。根据你的商业模式配置赞助策略:

免费增值模式:

  • 为每个用户赞助前 N 笔交易
  • 超出免费额度后要求付费或质押
  • 监控每个钱包的支出以防止滥用

订阅模式:

  • 为付费订阅用户赞助全部 gas
  • 限制免费用户的赞助额度

基于交易的模式:

  • 对每笔交易收取费用
  • 将 gas 赞助作为交易成本的一部分

设置全局支出限额,在保证流畅体验的同时控制成本。

应该使用交易批处理吗?

应该使用,只要用户需要多个操作才能完成一个流程。数组中的交易会按其出现顺序依次执行,这样你就可以:

改善用户体验:

  • 一次确认代替多次钱包弹窗
  • 原子化执行(所有操作要么全部成功,要么全部失败)
  • 更低的总 gas 成本

常见模式:

  • 授权 + 兑换:让用户一键完成授权并执行兑换
  • 铸造 + 挂单:原子化地创建并挂单出售 NFT
  • 多代币操作:在一笔交易中与多个合约交互

应该如何处理移动端用户?

Dynamic 投入大量精力优化移动端流程,利用 passkeys 实现便捷的 FaceID 和 TouchID 登录及钱包创建。移动优先的身份验证至关重要,原因在于:

  • 大多数用户是通过移动设备访问应用的
  • 生物识别在移动端更易实现
  • 移动钱包应用(MetaMask Mobile、Rainbow)需要深层链接

移动端最佳实践:

  1. 优先使用 passkeys: FaceID 和 TouchID 能提供最佳的移动端体验
  2. 支持 WalletConnect 服务于使用移动钱包应用的用户
  3. 测试深层链接: 确保与钱包应用之间的顺畅衔接
  4. 为小屏幕设计: 身份验证界面应适配 320px 视口
  5. 减少跳转: 尽可能让用户保持在你的应用环境中

渐进式披露呢?

不要用高级功能让新用户不知所措。先设计好自己的结账流程,初期在后台完成交易签名,之后再逐步开放更多控制权。

阶段一:隐形钱包

  • 仅社交登录
  • 所有交易自动签名
  • 不显示任何钱包相关术语
  • 完全赞助 gas

阶段二:基础控制

  • 显示交易确认
  • 让用户查看自己的钱包地址
  • 显示交易历史
  • 解释 gas 赞助机制

阶段三:高级功能

  • 允许导出到外部钱包
  • 显示高级交易详情
  • 支持手动支付 gas
  • 支持硬件钱包签名

这种方式能在为高级用户提供控制权的同时,最大化转化率。

Web3 身份验证的未来会是什么样子?

链上身份验证的发展方向很明确:默认隐形,需要时强大可控。

智能账户会取代 EOA 吗?

Ethereum 的联合创始人 Vitalik 认为,从 EOA 向 Smart Wallets 的转变是让主流用户进入链上世界的必要条件。这不是猜测——这是技术路线图。

Smart Wallets 提供:

  • 通过可编程权限实现更好的安全性
  • 通过 gas 抽象和批处理实现更优的用户体验
  • 无需助记词的账户找回
  • 跨链互操作性

生态系统正朝着以智能钱包为默认选项的方向发展。出于向后兼容的考虑,EOA 仍会继续受到支持,但新应用应当建立在智能钱包基础设施之上。

链抽象将如何影响身份验证?

链抽象通过让用户一次性完成注册来解决问题,无需密钥、找回短语或多个钱包。用户不应该需要知道自己正在使用哪条链。

未来的身份验证将会:

  • 在所有链上使用同一个账户地址
  • 抽象掉链的具体细节
  • 自动将交易路由到最优链
  • 透明地处理跨链操作

这需要钱包提供商、跨链桥和应用之间的协调配合,但相关技术基础目前正在建设中。

生物识别身份验证会成为标准吗?

用户可以通过 Face ID 或 Touch ID 的生物识别方式生成一个自托管钱包。Passkeys 已经获得 Apple、Google 和 Microsoft 的支持,采用速度正在加快。

预计在未来 2-3 年内:

  • Passkeys 会成为默认的身份验证方式
  • 助记词只面向有此需求的高级用户
  • 生物识别身份验证覆盖所有设备
  • 通过 iCloud/Google 账户实现无缝同步

AI 将扮演什么角色?

AI 代理能将混乱的 DeFi 复杂操作转化为流畅、对人类友好的金融体验,让加密货币不仅仅是技术上可行,而是真正好用。AI 将通过以下方式影响身份验证:

交易意图解析:

  • 用户用自然语言描述想要执行的操作
  • AI 生成相应的交易
  • 用户只需简单确认即可批准

欺诈检测:

  • AI 分析交易模式以发现异常
  • 在用户批准可疑交易前发出警告
  • 从以往的攻击中学习以防范新的攻击

个性化安全:

  • 基于风险等级的自适应身份验证
  • AI 推荐的安全设置
  • 自动化的安全监控

今天就可以开始构建了

Web3 的愿景与其实际用户体验之间的差距正在迅速缩小。现代身份验证基础设施使得在不牺牲去中心化或安全性的前提下,让主流用户顺利上手成为可能。

我们构建 Smart Wallets 正是为了让每一位开发者都能获得这种能力。你将获得:

  • 支持社交登录和 passkeys 的嵌入式钱包
  • 支持 gas 赞助和批处理的智能账户
  • 拥有 99.99% 正常运行时间的企业级基础设施
  • 覆盖 EVM 和 Solana 的多链支持

数以千计的开发者正在使用我们的基础设施,为数百万用户提供上手服务。身份验证的未来,不在于教会用户区块链是如何运作的,而在于构建足够直观的系统,让用户无需思考底层技术。

准备好实现现代 Web3 身份验证了吗?注册开发者账户,通过文档开始上手,或联系我们获取更多信息或集成帮助。

常见问题

为我的应用添加基于钱包的身份验证需要哪些基本步骤?

集成一个钱包连接流程,让用户对一条唯一消息进行签名,在你的后端验证该签名,然后创建一个会话令牌,使用户保持登录状态,无需为每个请求重新签名。

对消息签名如何证明用户拥有该钱包?

应用发送一条挑战消息,只有持有该钱包私钥的人才能对其签名;随后应用使用钱包的公开地址验证签名,以确认用户掌控该地址。

Web3 身份验证应该使用社交登录、钱包登录,还是两者都用?

面向主流用户群体时,应从社交登录入手,可选择在后台创建钱包;而面向加密原生用户的应用通常优先考虑直接的钱包连接,并可能将社交登录作为备选方案。

用户通过钱包完成身份验证后,我应该如何管理会话?

在验证签名消息后,为后续的 API 请求签发一个会话令牌或 cookie,类似于传统的 Web 会话,这样用户就不需要为每个操作都重新签名。

什么是嵌入式钱包,它们如何改善身份验证?

嵌入式钱包直接内置于应用中,让用户可以使用 Google 或 Apple ID 等熟悉的方式进行身份验证,同时在后台创建一个自托管钱包。这消除了对浏览器扩展或助记词管理的需求。

Passkeys 如何让 Web3 身份验证更安全?

Passkeys 使用存储在安全硬件中、永不离开设备的设备绑定凭证,能够抵御钓鱼攻击,并在不与服务器共享密钥的情况下提供生物识别身份验证。

什么是账户抽象,它对身份验证为何重要?

账户抽象支持智能合约账户,可以赞助 gas 费、批量处理交易,并实现诸如社交找回等可编程安全功能,消除了许多阻碍主流采用的障碍。

我应该为用户身份验证赞助 gas 费吗?

应该,赞助 gas 费消除了不持有加密货币的新用户面临的一个主要障碍,使他们无需先购买 ETH 就能试用你的应用。

Background gradient

构建区块链应用

Alchemy 将最强大的 Web3 开发者产品和工具与资源、社区及专业支持结合在一起。