Use User Controlled Wallets

🔐 Circle官方MPC非托管钱包,社交一键登录

Circle官方提供的用户自控钱包SDK,支持社交登录、邮箱OTP和PIN码认证,采用MPC密钥管理,适合构建真正的非托管Web3钱包。

收藏
1.5k
安装
624
版本
0.1.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

use-user-controlled-wallets 是 Circle 官方提供的用户自控钱包(User-Controlled Wallets)开发工具,专为构建真正的非托管钱包场景设计。与开发者自控钱包不同,该方案通过 MPC(多方计算)技术让用户完全掌控私钥,应用方无法访问用户资金。

技术架构

采用前后端分离设计:

  • 后端:使用 @circle-fin/user-controlled-wallets 处理 API 调用,保管 Circle API Key
  • 前端:使用 @circle-fin/w3s-pw-web-sdk 处理用户交互、认证流程和挑战执行

账户类型选择

  • EOA(外部拥有账户):无创建费用,TPS 更高,支持 EVM、Solana、Aptos 多链,但需用户支付 gas
  • SCA(智能合约账户):支持 ERC-4337 账户抽象,可批量操作、gas 代付,但仅限 EVM L2(避免 Ethereum 主网高昂部署费)

认证方式

| 方式 | 配置复杂度 | 适用场景 |
|------|----------|---------|
| PIN 码 | 最低,无需控制台配置 | 快速原型、内部工具 |
| 社交登录(Google/Apple/Facebook) | 中等,需配置 OAuth | 消费级应用 |
| 邮箱 OTP | 较高,需配置 SMTP | 传统用户群体 |

安全挑战模型

所有敏感操作(创建钱包、转账、签名)均通过「挑战-响应」模式执行:后端创建操作获取 challengeId → 前端调用 sdk.execute() → 用户在 Circle 托管 UI 中确认 → 回调返回结果。

显著优点

1. 真正的非托管:私钥由用户通过 MPC 分片控制,应用方零知识,符合「Not your keys, not your coins」原则
2. 企业级安全:Circle 作为美国持牌金融机构,提供 SOC 2、ISO 27001 等合规保障

3. 多链原生支持:EVM、Solana、Aptos 一站式覆盖,无需切换 SDK

4. 用户体验友好:社交登录降低 Web3 入门门槛,PIN/OTP 提供备选方案

5. 灵活的 gas 策略:SCA 支持 Gas Station 代付,适合补贴用户场景

潜在缺点与局限性

1. 必须双端开发:无法纯前端实现,需维护 Node.js 后端,增加架构复杂度
2. 依赖 Circle 托管 UI:挑战执行环节必须跳转到 Circle 的确认界面,自定义程度受限

3. SDK 浏览器兼容性:依赖 Node.js 内置模块(buffercrypto),必须配置 vite-plugin-node-polyfills

4. SCA 主网成本:Ethereum 主网部署 SCA 费用极高,官方明确建议仅用于 L2

5. 学习曲线陡峭:需理解 MPC、挑战-响应、userToken/deviceToken 等概念

适合人群

  • 金融科技公司:需要合规非托管方案,满足监管对资产控制权的严格要求
  • 消费级 Web3 应用:希望通过社交登录降低用户门槛,同时保持去中心化特性
  • 多链钱包产品:需要统一接口支持 EVM、Solana、Aptos,避免多 SDK 维护成本
  • 企业级 DApp:对安全审计、SLA、技术支持有较高要求,愿意牺牲部分去中心化换取可靠性

常规风险

  • 供应商锁定:深度依赖 Circle 基础设施,若服务中断或政策变化将影响业务连续性
  • 前端安全风险:示例代码使用 localStorage 存储 token,生产环境必须使用 httpOnly Cookie 防 XSS
  • 误操作风险getWalletTokenBalance 返回人类可读金额,直接用于转账可能导致精度错误
  • 主网资金风险:必须显式确认网络类型,避免测试网代码意外调用主网造成损失
  • MPC 单点疑虑:虽然用户控制密钥,但 Circle 参与 MPC 计算,极端情况下存在理论协作风险(尽管密码学上不可行)

---

决策建议:若你的产品需要「用户真正拥有资产」+「企业级可靠性」+「社交登录体验」,且能接受必须维护后端的架构成本,这是当前最成熟的方案之一。若追求完全去中心化或纯前端实现,应考虑其他替代方案。

Use User Controlled Wallets 内容

references文件夹
手动下载zip · 16.5 kB
create-wallet-email-otp.mdtext/markdown
请选择文件