LESSON 02

钱包与操作安全

钱包安全不只是保管助记词。设备、浏览器、域名、签名、授权、代理和外部依赖共同决定真实风险。

约 45 分钟讲解 + 示例 + Lab + 自测本机记录进度
安全模型

用隔离限制一次错误的最大代价

不要让一次陌生交互同时威胁长期资产、日常账户和学习实验。

三只彼此隔开的金属保险箱,体积从大到小,对应冷钱包、日常钱包和实验钱包
三只箱子之间必须留空。地址不同但浏览器、插件、设备相同,等于又焊回一只箱子。
冷钱包长期保存

只做经过复核的转账,不直接连接陌生协议。

日常钱包已知协议

只保留近期交互需要的小额资产。

实验钱包学习与测试

使用测试网或可完全损失的小额预算。

地址隔离不等于设备隔离

安全研究浏览器应使用独立 profile,不导入冷钱包,也不保留真实交易所会话。

先算损失上限,再决定怎么分钱

隔离是为了让最可能出错的那一层,损失是你睡得着的数字。把下面 10 ETH 当成模型,调配比,再点事故。

交互实验

一次钓鱼,最多能拿走多少?

把 10 ETH 分进三层钱包。然后分别模拟实验钱包、日常钱包、冷钱包被盗,看爆炸半径。

仍安全
10 ETH
已损失
0 ETH

先分配 10 ETH,再点一次事故,看最大损失。

签名前,先识别自己在授权什么

Web3 Login: Wallet Connect, Signatures and dApps重点看签名弹窗在证明什么。登录签名不会转账,但 permit / 授权签名可以。看不懂就拒绝。
approve

确认 token、spender、额度和链。

permit

确认 spender、value、nonce、deadline 与 domain。

setApprovalForAll

它通常允许对方移动该集合的全部 NFT。

transaction

检查目标地址、函数、参数、value 和模拟结果。

交互清单

签名前先勾完这五件事

真实钱包弹窗往往只给几秒钟。把检查练成肌肉记忆,比事后分析 tx hash 便宜得多。

还差 5 项。缺的那一项,通常就是被盗路径。

看不懂的签名默认拒绝。交易模拟只能降低风险,不能证明合约安全。

“开源”不等于当前链上版本安全

仓库代码、已验证源码、当前实现、当前状态与前端实际调用,是五个不同对象。

  1. 确认地址

    从多个官方渠道交叉确认部署地址。

  2. 识别代理

    读取当前实现地址、管理员和升级历史。

  3. 核对版本

    对照仓库 commit、编译器配置与构造参数。

  4. 检查审计范围

    确认报告覆盖当前 commit 和部署版本。

  5. 限制暴露

    只投入最小必要金额,并提前规划退出路径。

被盗后先控制损失,再分析原因

第一原则

断开疑似感染设备网络,但不要急于删除证据。用可信设备创建全新钱包,不复用旧助记词。

  • 优先转移仍可控的高价值资产。
  • 撤销旧授权,但不要让它延误资产转移。
  • 冻结或重置相关交易所、API 和邮箱凭据。
  • 保存交易哈希、地址、截图、日志与时间线。
  • 警惕要求预付费、助记词或远程控制的“追回服务”。
课中测验 1 / 3

协议开源了 GitHub,为什么还不能直接交互大额资金?

课末自测

为什么一个协议公开了 GitHub 源码,也不能证明你正在交互的合约安全?

信心
下一课Solidity 与 Foundry →