从 SecondFi 事件到自建硬件钱包:Don’t Trust, Verify
-
从 SecondFi 事件到自建硬件钱包:Don’t Trust, Verify
目录一、SecondFi 事件:假自托管现形记
2026 年 6 月,Cardano 生态钱包 SecondFi(前身 Yoroi Wallet,EMURGO 出品)发生安全事件。官方披露的版本:
- 3 次外部攻击者转出 → 约 1600 万 ADA(~$240 万),涉及 374 个地址
- 1 次官方"紧急转移" → 将 约 1.29 亿 ADA 转至"独立第三方托管机构"
慢雾余弦追踪后认为损失可能超过 129M ADA(>$2000 万),但后来发现那 1.29 亿是 SecondFi 自己做的"白帽撤离"。
核心矛盾:自托管 vs 一键转移
如果真是自托管(用户持私钥),似乎项目方根本不可能"紧急转移"用户资产。
因此,一种合理的推测是: SecondFi 所谓的"自托管"实际上是服务器端生成私钥/助记词,项目方持有私钥副本或具备控制能力——这本质上就是托管钱包,只是披着非托管的外衣。
漏洞出在他们的"网页钱包生成软件",意味着私钥在 SecondFi 后端生成,用户从未真正独立持有私钥。所以:
- 攻击者能利用同一漏洞批量生成/还原私钥,盗走 1600 万 ADA
- SecondFi 自己也能通过同一渠道"紧急转移"1.29 亿 ADA
- 声称开源的是前端客户端,真正要命的后端生成逻辑是闭源的
是不是自导自演?
没有实锤,但可疑点:
- 3 次"黑客"转出 + 1 次"官方紧急转移",时间窗口高度重叠
- "第三方托管"方至今未公布
- 独立安全审计报告未公开
- 如果真是钱包生成有后门,官方完全可以悄无声息地先撤走所有资产,何必等黑客动手再"紧急转移"?
反方:
- 1600 万 ADA 被分散转出,自导自演操作成本高
- 真要跑路直接全转走合理得多
不论动机,"紧急转移"本身已经证明了 SecondFi 从来就不是自托管。
二、Lace 钱包真的可信吗
Lace(IOG 出品)与 SecondFi 架构不同:
- 开源:GitHub 全量开源(Apache 2.0)
- 本地生成:私钥在浏览器扩展/App 的 IndexedDB 中生成和存储,不走 IOG 服务器
- 但依然有信任链问题:
- 商店下载的扩展是否和 GitHub 源码一致?无法字节级验证(API 密钥不同)
- 浏览器扩展可以静默更新,如果 IOG 被黑或内部作恶,一次更新就能注入后门
- Lace 依赖 Blockfrost/Maestro 等第三方 API 读取链上数据
- 浏览器本身的漏洞面
自托管不是二元的"可信/不可信",而是一层层递减的:
硬件钱包 (Ledger/Trezor) ─ 最高,但固件也有闭源部分 ↓ 自建全节点 (Daedalus) ─ 你跑自己的节点,不依赖第三方 API ↓ 开源轻钱包,自己编译 ─ 极少人做到 ↓ 开源轻钱包,商店下载 ─ 大多数人的选择 ↓ 闭源轻钱包 ─ 纯靠信任团队 ↓ SecondFi ─ 笑话如果有人跟你说"绝对安全、绝对自托管",要么是 naive,要么是想卖你东西。Crypto 的本质不是消除信任,而是选择把信任放在哪。
三、硬件钱包也一样
最有名的例子是 Ledger Recover(2023): Ledger 推出"助记词云端备份"服务,通过固件更新就能把种子加密传出设备。这说明硬件钱包厂商一直都有能力提取你的私钥,只是他们之前说不会这么做。Recover 一出,那个"物理隔离、绝对安全"的叙事就破了。
各硬件钱包对比
固件开源 芯片闭源 有过"后门"事件 Ledger ❌ ❌(安全芯片闭源) ✅ Ledger Recover Trezor ✅ 全开源 N/A(无安全芯片) ❌ 但有过供应链攻击 Coldcard ✅ ✅ ❌ 最透明 OneKey ⚠️ 部分 ❌ ✅ 有争议 终极悖论: 硬件钱包的安全性建立在"信任厂商不会作恶"的基础上,但硬件钱包存在的意义恰恰是"不需要信任任何人"。每次插上设备、升级固件、用官方软件签名交易,都是在赌厂商没动手脚。
四、自建 Trezor:Don't Trust, Verify
方案一:STM32 开发板 + 自编译固件(推荐,零焊接)
买什么:
- STM32F429I-DISC1 开发板(ST 官方评估板)
- 淘宝/立创商城 ~150-200 元
- 闲鱼二手 ~80-120 元
- 自带 240x240 彩屏、电容触控、ST-LINK 调试器
- 芯片 STM32F429ZIT6(比原版 Trezor T 的 F427 还高一级)
编译烧录:
git clone --recurse-submodules https://github.com/trezor/trezor-firmware.git cd trezor-firmware/core uv sync make build_boardloader build_bootloader build_firmware make upload # 通过 USB 刷入开发板刷完之后插电脑,Trezor Suite 或 wallet.trezor.io 直接识别,正常收发签名。
可选加固: 刷完后设 RDP Level 2(最高读保护),永久禁用调试接口和系统 bootloader,芯片变成一次性烧录的黑盒。
方案二:PiTrezor(需要基础焊接)
- 树莓派 Zero(v1.3,不含 WiFi 版,~$10)
- 0.96 寸 OLED 屏(I2C/SPI)
- 两个按钮(确认/取消)
- SD 卡
- 项目地址:pitrezor.com
- 编译:
sudo ./build-pitrezor.sh 1.13.1.0 - 攻击面比 STM32 方案大(跑 Linux 而非裸机)
方案三:旧笔记本冷钱包(零成本)
- 一台不联网的旧笔记本
- 装加密 Linux 系统
- 装你需要的钱包软件(Cardano CLI、Sparrow、Electrum 等)
- 离线生成种子、离线签名交易,用 U 盘传签名后的交易
- 攻击面最大(全功能 OS),但成本为零、100% 可控
方案四:复刻官方 Trezor T PCB(需要焊接经验)
- GitHub:
trezor/trezor-hardware - 核心物料:STM32F427VIT6(QFP100,~80-100元)+ TFT 屏 + 电容触控 + microSD 座 + 几十个被动元件
- 需要热风枪/回流焊
- PCB 打样:嘉立创 ~30元(5片)
- 总物料成本 ~200-300元
- 焊废概率:不低
各方案综合对比
方案 成本 焊接难度 攻击面 可信度 STM32 开发板 + 自编译 ~200元 零 低 ✅ 完全掌控源码 买成品 Trezor 800-1500元 无 低 ❌ 信任厂商固件签名 PiTrezor ~150元 低 中(Linux) ✅ 但攻击面较大 二手笔记本冷钱包 0-200元 无 高(OS) ✅ 但需自己加固 复刻 Trezor T PCB ~300元 高 最低 ✅✅ 终极方案 五、关于 STM32 boot ROM 闭源问题
ST 没有公开 boot ROM 源码。但实际影响很小:
boot ROM 只干一件事:上电时决定从哪启动(主 flash / 系统 bootloader / SRAM),并提供 USB/串口刷写功能。一旦 Trezor 固件跑起来了,boot ROM 就不再执行任何代码,私钥根本不经过它。
而且你可以设置 RDP Level 2——永久禁用调试接口和系统 bootloader,把闭源的 boot ROM 物理封印。之后芯片的运行完全由你编译的固件控制。所以它不是实质的信任问题。
六、小结
200 块开发板 + 一下午编译 = 你完全掌控的硬件钱包,没有厂商后门,没有"紧急转移"风险。
Don't Trust, Verify 的终点不是买什么牌子,而是你自己亲手把它造出来。 不是技术做不到,是大多数人没有选择去做。
"自托管"不是产品特性,而是生活态度。你愿意为它付出多少代价,它就能给你多少安全感。
歡迎留言回复交流。
Log in to reply.