🧩 Web3 钱包集成 & 签名验证
30 章 · 从零到实战
⚡ 友好色系
1
Web3基础概念
区块链 · 去中心化 · DApp · 智能合约 · 钱包 · 公钥与私钥
➔
2
以太坊与EVM
以太坊网络 · EVM工作原理 · Gas机制 · 账户模型
➔
3
钱包类型与架构
热钱包 · 冷钱包 · 硬件钱包 · MPC · 浏览器扩展
➔
4
MetaMask入门
安装 · 创建钱包 · 导入账户 · 切换网络 · 查看交易
➔
5
钱包连接原理
EIP-1193 · EIP-1102 · Provider注入 · window.ethereum
➔
6
Web3.js库入门
安装 · 初始化Provider · 查询余额 · 监听账户变化
➔
7
Ethers.js库入门
Provider与Signer · 查询余额 · 发送交易
➔
8
连接钱包实战
Ethers.js连接MetaMask · 获取账户 · 显示余额
➔
9
签名基础
数字签名 · 身份验证 · 数据完整性 · 不可否认性
➔
10
ECDSA签名算法
椭圆曲线密码学 · 私钥签名 · 公钥验签 · 以太坊标准
➔
11
以太坊签名标准
EIP-191 · EIP-712 · 结构化数据签名
➔
12
personal_sign
用途 · 参数 · 实现 · 与eth_sign区别
➔
13
eth_signTypedData
EIP-712实现 · Domain与Message · Solidity验证
➔
14
前端签名实现
Ethers.js调用personal_sign · eth_signTypedData_v4
➔
15
后端验签实现
Node.js · ethers.utils.verifyMessage · verifyTypedData
➔
16
签名验证流程
前端签名 → 后端验签 → 返回结果 → 前端展示
➔
17
登录认证方案
钱包签名登录 · SIWE · Nonce机制 · Session管理
➔
18
SIWE (EIP-4361)
Domain · URI · Nonce · IssuedAt · 标准消息
➔
19
SIWE实现前端
构建SIWE消息 · personal_sign · 发送至后端
➔
20
SIWE实现后端
解析SIWE · 验证签名 · 生成JWT Token
➔
21
JWT与Session
Token生成 · 验证 · 刷新 · 存储 (localStorage vs httpOnly Cookie)
➔
22
交易签名与发送
构建交易 · 签名 · 广播 · 等待确认
➔
23
智能合约交互签名
调用合约方法 · ABI编码 · 签名交易 · Gas估算
➔
24
多签钱包集成
Gnosis Safe · 多签交易流程 · 签名收集与提交
➔
25
硬件钱包集成
Ledger · Trezor · WebUSB · EIP-2255权限管理
➔
26
WalletConnect协议
桥接服务器 · 会话建立 · JSON-RPC · 签名请求
➔
27
跨链钱包集成
多链支持 · ChainID切换 · 跨链签名验证
➔
28
安全最佳实践
私钥保护 · 钓鱼防范 · 签名内容审查 · 重放攻击防护
➔
29
常见问题与调试
签名失败 · 网络切换 · Gas不足 · Nonce冲突 · Provider错误
➔
30
完整项目实战
构建支持钱包登录 · 签名验证 · 交易发送的DApp
➔