跳至内容
0%

Web3 身份验证指南

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

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

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

本指南将说明 web3 认证的工作原理,探讨让其更易用的技术方案,并展示如何使用现代智能钱包基础设施来实现可用于生产环境的认证。

Web3 认证是如何工作的?

传统的 web 认证依赖存储在中心化服务器上的凭证。你输入用户名和密码,服务器检查数据库,凭证匹配即可授权访问。这种模式要求用户信任服务提供商来保管其认证数据。

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

1. 钱包连接

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

2. 生成质询

应用生成一条唯一的质询消息,通常是一个随机 nonce 或一条格式化的消息,其中包含应用域名、时间戳以及本次认证请求的用途,以此防止重放攻击。

3. 加密签名

用户的钱包使用其私钥对质询消息进行签名。私钥是保密的,用来证明对应公钥的归属权。签名可以证明用户掌握与其钱包地址对应的私钥,同时无需暴露私钥本身。

4. 签名验证

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

5. 会话管理

认证完成后,应用通常会为后续请求签发一个会话令牌,与传统 web 会话类似。这样用户就不需要在每次操作时都重新签名。

这种加密基础让这一流程在多个方面比基于密码的认证更安全。没有密码可以从数据库泄露事件中被窃取。钓鱼攻击需要诱骗用户签署恶意交易,这比窃取密码更容易被察觉。用户对自己的认证凭证拥有掌控权,而不需要信任某个中心化的提供方。

Web3 认证目前存在哪些问题?

尽管具备加密方面的优势,web3 认证在用户体验上仍存在明显的问题,限制了其主流采用。理解这些问题,对于构建面向更广泛用户群体的解决方案至关重要。

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

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

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

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

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

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

用户缺乏判断这些交易是否合法的必要信息。这种信息不对称带来了安全隐患:用户点击"确认"时,往往并不理解自己到底在授权什么。

用户会面临哪些技术障碍?

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

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

其中每一项都是一个可能让用户流失的摩擦点。

钱包碎片化会对用户产生什么影响?

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

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

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

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

智能合约和 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 的可信执行环境)
  • 公钥保存在你的认证服务器上
  • 与会带来摩擦并存在钓鱼风险的传统密码不同,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 如何支持智能钱包基础设施?

Alchemy 通过 RPC、Data APIs、Gas Manager 和 Bundler 为智能钱包开发者提供支持。在钱包创建和认证方面,Alchemy 与 Privy 建立了合作关系。

通过嵌入式钱包实现零摩擦上手

Privy 的嵌入式钱包让你能够构建体验上如同 web2、底层却完全是 web3 的产品。以下是具体的实现方式:

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

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

了解更多关于 Alchemy 与 Privy 合作关系的信息。

智能合约账户创建

认证完成后,开发者可以结合 Alchemy 的 Bundler 和 Gas Manager 来使用智能合约账户:

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

gas 赞助配置

通过可编程策略来赞助 gas。你可以精确控制要赞助哪些交易。

通过我们的控制台设置策略:

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

多链支持

Alchemy 的账户抽象基础设施支持多条链,包括 Ethereum、Polygon、Base、Optimism 和 Arbitrum。

可用于生产环境的基础设施

建立在 Alchemy 一流、可靠的基础设施之上,确保智能合约钱包的底层能力始终对用户可用。我们提供:

  • 99.99% 的正常运行时间 SLA
  • 亚秒级响应时间
  • 自动扩展
  • 面向企业客户的 7x24 小时支持

钱包提供方可以将自己的认证层与 Alchemy 的 RPC、Data APIs、Gas Manager 和 Bundler 配合使用。

你应该如何实现 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 的转变是让主流用户上链的必要条件。这不是推测——而是已经明确的技术路线图。

智能钱包能提供:

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

生态系统正朝着以智能钱包为默认选项的方向发展。EOA 仍会因向后兼容的需要而继续得到支持,但新应用应该构建在智能钱包基础设施之上。

链抽象将如何影响认证?

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

未来的认证将会:

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

这需要钱包提供方、桥接方和应用之间的协作,但相关技术基础目前正在构建之中。

生物识别认证会成为标准吗?

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

预计在未来 2 到 3 年内:

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

AI 将扮演什么角色?

AI agent 能够把杂乱无章的 DeFi 变成无缝、对人类友好的金融体验,让加密货币不仅在技术上可行,更实际可用。AI 将在认证方面产生以下影响:

交易意图解析:

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

欺诈检测:

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

个性化安全:

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

今天你该如何开始构建?

web3 的承诺与其用户体验之间的差距正在迅速缩小。现代认证基础设施让在不牺牲去中心化或安全性的前提下引入主流用户成为可能。

Alchemy 通过以下方式支持这套技术栈:

  • RPC 和 Data APIs,用于访问区块链
  • Gas Manager,用于实现可编程的 gas 赞助
  • Bundler,用于提交用户操作
  • 多链基础设施,覆盖所支持的各个网络

数千名开发者正在使用我们的基础设施,让数百万用户完成上手。认证的未来不在于教用户理解区块链是如何运作的,而在于构建足够直观的系统,让用户根本不需要去思考底层技术。

准备好实现现代 web3 认证了吗?注册开发者账号,查阅文档开始上手,如需更多信息或集成帮助,欢迎联系我们。

常见问题

为我的应用添加基于钱包的认证,基本步骤是什么?

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

对消息进行签名,是如何证明用户拥有某个钱包的?

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

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

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

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

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

什么是嵌入式钱包?它们如何改善认证体验?

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

Passkeys 如何让 Web3 认证更安全?

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

什么是账户抽象?它对认证为什么重要?

账户抽象让智能合约账户得以实现,能够赞助 gas 费用、批量处理交易,并实现诸如社交恢复之类的可编程安全功能,从而消除了阻碍主流采用的诸多障碍。

我应该为用户认证赞助 gas 费用吗?

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

Background gradient

构建区块链应用

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