第 5 章 · Crypto 到底属于谁
你的币,究竟放在哪里?
- 练习的能力
- Mental ModelOnchain Literacy
- 动手
- 新建一个测试网钱包,抄下助记词,卸载重装,再用助记词恢复,确认地址不变。
- AI Lab
- 让 AI 列出十种丢私钥的方式,把其中你自己真实存在的风险挑出来,写成一页自查表。
一个现实问题
一个刚入门的人做了这么一件事。
他在某个钱包软件里创建了账户,抄下了系统让他抄的那串词,收到了一笔转账。过了两周,他换了台电脑,装了另一个牌子的钱包软件,把那串词输进去。
同样的余额,出现了。
他愣住了,问了一个很好的问题:那我的币到底存在哪个软件里?
如果存在第一个软件里,第二个软件凭什么能看到?如果存在第二个里,第一个软件又是怎么回事?如果两边都存着,那是不是变成了两份?
再往下推,一连串日常问题全都没有答案:
- 手机摔坏了,币还在吗?
- 把软件卸载了,币没了吗?
- 电脑中了病毒,别人能拿走我的币吗?
- 那串词被人看到了一眼,会怎样?
这些问题之所以难回答,是因为它们全都建立在同一个错误的前提上:
「币在钱包里」——这句话从头到尾就是错的。
这一章要做的,就是把这句话拆掉,然后告诉你正确的那句话是什么。这是全课程里,误解代价最高的一章。
思想实验
回到第 2 章最后那个方案:账本挂在村口的墙上。
墙上密密麻麻写着一行行记录,任何人都能走过去看。但有三件事和你的直觉不一样。
第一件:墙上写的不是名字。
墙上的记录长这样:
7f3a9c... → 37 枚
b21e04... → 5 枚
9dd7f1... → 0 枚左边那串东西不是名字,是印记。没有人知道哪个印记对应哪个人,除非他自己说。
第二件:要动自己那一行,得用私章,但私章不能出示。
村里的做法是这样的。每个人有一枚私章,谁也不给看。用私章在一张纸条上按一下,会留下一个印。
这个印有一个奇妙的性质:全村任何人都能验证「这个印确实是那枚私章按的」,但谁也没法从印反推出私章长什么样。 而且换一张纸条,印也跟着变,所以别人没法拿走一个旧印去冒用。
每个人的印记是从私章推出来的:有私章就能算出印记,有印记推不出私章。 单向。
第三件:一枚私章可以用一句口诀重新刻出来。
私章本身是一块实物,会丢。所以村里发明了一句十二个字的口诀。只要你还记得这句口诀,任何一个刻章师傅都能给你重新刻出一模一样的私章。
反过来,任何人拿到这句口诀,也能刻出一模一样的私章。刻章师傅不会问你是谁。
好了。现在回答四个问题,一个比一个重要:
问题一:你的 37 枚贝壳在哪里?
在墙上。不在你家,不在私章里,不在那句口诀里。从头到尾都在墙上。
问题二:你家失火,私章和写着口诀的纸都烧了,那 37 枚去哪了?
哪也没去,还在墙上,清清楚楚写着 37。全村人每天都能看见它。
但世界上再也没有任何人能动它了,包括你。它会永远停在那一行,直到这面墙不存在为止。
问题三:你换了个刻章师傅,用同一句口诀刻了一枚新章。你的贝壳还在吗?
在。因为印记只和私章有关,和师傅无关。同样的口诀,刻出同样的章,算出同样的印记,指向墙上同一行。
这就是开头那个人遇到的事。他换的不是保险箱,是刻章的师傅。
问题四:有人趁你不注意,把你的口诀抄走了一份。你会知道吗?
不会。口诀还在你手里,字迹一模一样,什么都没少。
你会在某一天路过村口,发现自己那行变成了 0。而且那笔转账完全合法——它带着一个正确的印,全村验证都通过。
从墙的角度看,那就是你自己转的。
你来决定
现在你要决定:这句口诀,你打算怎么保管?
观察结果
四个方案在三条轴上取舍,任何保管方式都逃不出这三条:
| 谁能动 | 丢了能不能恢复 | 被偷了能不能发现 | |
|---|---|---|---|
| 交给铺子 | 铺子,以及能说服铺子的人 | 能,走重置流程 | 大概率能,有记录和客服 |
| 锁进抽屉 | 只有你 | 不能 | 不能,直到余额归零 |
| 存进相册 | 你,以及能访问云端的任何人 | 能 | 不能,直到余额归零 |
| 拆成三份 | 拿到任意两份的人 | 能,只要还剩两份 | 不能 |
看第三列和第四列。在你完全自己掌握密钥的所有方案里,「恢复」和「察觉」这两栏基本都是空的。
这不是产品做得不好,是结构使然。第 2 章已经讲过原因:
现实世界的账户有「找回密码」,是因为背后存在一个有权修改账本那一行的管理员。
银行能给你重置密码,不是因为它知道你的旧密码,而是因为它有权把那一行改成任何样子。平台能帮你找回账号,同理。
而村口那面墙没有管理员。 这正是第 3 章和第 4 章费那么大力气换来的东西。既然没有人能改你那一行,那么当你自己也改不了的时候,也就没有人能帮你。
所以整章收在一句话上:
你从来没有「把币放进钱包」。链上状态里有一行记录,钱包里只有能动那一行的钥匙。
钱包软件其实只做三件事:保管钥匙、帮你查墙上写了什么、帮你生成并盖章一张纸条。 它不保管任何资产。
建立模型
第一个模型是一条单向链。每一步都能往右推,没有一步能往左推。
- 一句助记词
- 一把私钥
- 一把公钥
- 一个地址
- 链上状态里的一行
这条链能解释本章开头的全部困惑:
| 你弄丢了 | 结果 |
|---|---|
| 手机、电脑、钱包软件 | 没事。只要还有助记词,右边全部能重新算出来 |
| 助记词,但私钥还在设备上 | 危险。设备一坏就永久失去,赶紧重新备份 |
| 助记词和设备都没了 | 永久失去。没有任何人能恢复,资产永远停在那一行 |
| 别人拿到了 | 结果 |
|---|---|
| 你的地址 | 没事。地址本来就是公开的,别人只能给你转账和查看你 |
| 你的公钥 | 基本没事,但会泄露一些关联信息 |
| 你的私钥或助记词 | 完全失去控制,而且你不会收到任何通知 |
最后一行是这一章唯一需要背下来的东西。
第二个模型是一把尺子。从「完全交给别人」到「完全自己扛」,中间有连续的档位,不是二选一。
| 档位 | 谁掌握密钥 | 换来了什么 | 付出了什么 |
|---|---|---|---|
| 交易所账户 | 平台 | 最方便,能找回,能交易 | 平台破产、冻结、内部作恶都由你承担 |
| 托管型钱包 | 服务商(可能分片持有) | 有找回机制,体验接近 App | 服务商仍是关键环节 |
| 自持热钱包 | 你,密钥在联网设备上 | 完全控制,随时可用 | 设备被攻破就全部失去 |
| 硬件钱包 | 你,密钥在离线设备里 | 密钥不接触联网环境 | 仍然怕助记词泄露,怕签错字 |
| 多签 | 多把钥匙,需要其中几把 | 单点失误不致命 | 复杂,成本高,要长期维护 |
这把尺子有三件事必须说清楚。
第一,没有哪一档是「正确答案」。 选哪一档取决于金额、使用频率和你自己的执行能力。用硬件钱包管理十块钱的日常开销,和把一大笔钱放在交易所里长期不动,是同一类错误。
第二,最右边的那几档,防的是不同的东西。 硬件钱包防的是「设备被攻破」,多签防的是「单点失误和单人作恶」,它们都不防「你把助记词念给了骗子」。
第三,也是最容易被忽略的一条:大多数真实损失和技术无关。 不是密码被暴力破解,是有人告诉了别人。所以下一节的 Lab 和 AI Lab,重点都在这里。
它叫什么
现在给名字。
那枚私章。一串只有你掌握的数字,能对任意内容生成有效签名。
掌握私钥就等于掌握资产,没有任何例外,也没有任何申诉渠道。 链只认签名,不认身份、不认意图、不认「我是被骗的」。
由私钥单向计算出来的一串数字,可以公开。
任何人都能用公钥验证「这个签名确实由对应的私钥生成」,但谁也没法从公钥反推出私钥。整套体系就建立在这个单向性上。
由公钥进一步计算出来的那串短一点的字符,就是墙上那一行的编号。
它是完全公开的,给别人看没有任何风险——别人拿到你的地址,只能给你转账,以及查看这个地址的全部历史。
注意后半句。地址本身不含姓名,但它的全部交易记录对所有人永久可见。一旦某个地址和你的身份被关联上(比如你从实名平台提币到它,或者你公开发过它),这份关联很难撤销。第 23 章会展开这件事的两面性。
用私钥对一笔具体交易内容生成的那个印。
两个关键性质:它和交易内容绑定(改一个字,签名立刻失效),它不能被复用(拿走一个旧签名去伪造新交易是无效的)。
这解释了为什么「钱包连接一个网站」本身不转移任何资产——只有你签名的那一刻,才真正授权了什么。 所以签名之前看清楚内容,是唯一真正有效的防线。第 24 章会讲清楚有哪些内容看起来无害、实际上极其危险。
那句口诀。通常是十二或二十四个来自固定词表的单词,按顺序排列。
它是私钥的另一种写法,信息量完全等价。它存在的唯一理由是人抄得下来、读得出来。
请把这句话当成一条红线:任何人、任何软件、任何客服、任何 AI,要求你提供助记词,一律是攻击。 没有任何合法场景需要你把它交出去,一个都没有。
密钥由你自己掌握,没有任何第三方能代你动用资产。
它是第 2 章「可撤销性」的完整反面:没有客服,没有申诉,没有找回,没有撤销。 完全的控制权和完全的责任,是同一枚硬币。
密钥由服务商掌握,你通过账号密码使用。界面看起来一样,结构完全不同。
你持有的不是资产,是服务商欠你资产的记录——回到了第 2 章那张表里的第一行。
收成一句话:
资产在链上状态里,钱包管理的只是控制资产的密钥。
所以真正的问题从来不是「我的币放在哪」,而是:谁掌握着能动它的那把钥匙。
动手
这个 Lab 全程只用测试网。不要在这个钱包里放入任何真实资产,一分钱也不要。 它的目的是让你在完全没有损失风险的情况下,亲手经历一次「丢失与恢复」。
真实资产等你做完这一整套、并且能默写出流程之后再说。
创建一个新钱包,切到测试网。
随便挑一个支持测试网的钱包应用,创建新账户,在网络设置里切换到测试网。确认界面上显示的是测试网,不是主网。
抄下助记词。用笔,抄在纸上。
抄的时候注意三件事:顺序必须准确、拼写必须准确、抄完后逐个字核对一遍。
然后是这一步真正的重点:
不要截图。不要拍照。不要复制到任何输入框。不要存进任何笔记软件、聊天记录或云盘。
就算这是个测试网钱包也照做。你现在是在练习一个习惯,而不是在保管资产。 习惯只有在无所谓的时候练成,才会在关键时刻生效。
另外记下你的地址,写在同一张纸上。
从测试网水龙头领一点测试币,发一笔小额转账给自己的另一个地址。
搜一下这条测试网的水龙头,领取的过程本身也值得体验一次。
转完之后,到区块浏览器上查这笔交易,确认它真的存在。这是你第一次在链上留下自己的痕迹。
把钱包应用彻底卸载。
是的,真的卸载。如果心里有点紧张,说明这个 Lab 起作用了——这种紧张感正是你需要提前体验的东西,现在体验它的代价是零。
重装,用助记词恢复。
关键的一步来了:重装时换一个牌子的钱包应用,不要用原来那个。
用你抄下来的助记词恢复。然后对照纸上记录的地址——
它应该一模一样。
到这里,本章最重要的那个认知就从「读过」变成了「见过」:地址不属于任何一个软件,它属于那句助记词。 你换掉的只是刻章的师傅。
最后,做一次自问自答,写下来。
一,我的助记词现在在哪里?说出具体位置。
二,如果这张纸今天没了,我有备份吗?
三,如果我今天出了意外,我希望谁能拿到它?他知道怎么用吗?
四,如果有人拿到了这张纸,我多久会发现?
第四问在自托管的世界里,答案通常是「余额归零的那天」。 现在你知道这句话具体意味着什么了。
AI Lab
分两步。第二步是你真正要产出的东西。
第一步,让它穷举:
列出至少十种「永久失去加密资产控制权」的方式,分成两类:
A 类:资产还在链上,但再也没有人能动它
B 类:资产被别人转走了
每一种写清四件事:
1. 典型的发生场景,要具体到一个日常动作
2. 当事人通常在多久之后才会发现
3. 发生之后有没有任何补救可能
4. 有效的预防措施是什么,以及这条措施防不住什么
不要推荐任何具体的产品或品牌。第二步,把它裁剪成只属于你的那一页:
我的实际情况是:
(在这里写你真实的使用方式:资产大概在哪里、平时用什么设备、
助记词现在存放在哪、有没有备份、有没有第二个人知道)
从上面那十几种方式里,挑出真正适用于我的那几条,其余的删掉。
按「我遇到的可能性」从高到低排序。
每一条给出一个我这周就能完成的具体动作。第二步的输出才是这个 Lab 的产品。 一页纸,五到八条,每条配一个这周能做完的动作。
两个提醒,都很重要。
第一,第二步里描述你的情况时,不要写具体的地址、金额和任何一个助记词单词。 写「助记词抄在纸上放在家里」就够了,不要写在哪个抽屉。你是在和一个第三方服务对话,不要把自己的资产分布和保管细节交出去。
第二,注意这个 Lab 的 AI 能力等级是 1——解释与清单。 它不碰你的任何东西。本课程有一条从头到尾不会松动的红线:
私钥和助记词,绝不进入任何 AI 系统的上下文。 不是「小心一点」,是「一次都不行」。第 34 章讲 Agent 钱包时会回到这条红线,并给出结构上的替代方案。
AI 说完之后,你必须自己验证
- 最重要的一条:它在任何一句话里,有没有提出让你输入、粘贴、上传、朗读或「贴过来帮你检查格式」助记词。只要出现一次,整段输出作废,并且记住这个提示词长什么样
- 它的清单里有没有区分「丢失」和「泄露」这两类。前者是没人能动,后者是别人能动,应对方式完全不同
- 它有没有覆盖非技术路径:忘记存放位置、家人误丢、自己去世后无人知晓、搬家、意外事故。这几类在真实损失里占比很高,而模型常常只讲黑客
- 它有没有提到「签名钓鱼」:不需要拿到你的助记词,只要骗你签一次名,一样能转走资产
- 它建议的每一条防护,问一句「这条防的是哪一类风险」。防不住「你自己说出去」的方案,不要算进安全感里
- 凡是它推荐具体产品或品牌的地方,一律当作未验证。它没有能力判断某个产品此刻是否可信,而这类推荐本身就是常见的攻击载体
真实案例
早期参与者中有相当多人在币几乎不值钱的时候弄丢了密钥:硬盘格式化、电脑当废品处理、备份文件覆盖、忘记加密文件的密码。
这些资产的状态很特别:它们在链上清清楚楚地存在,余额公开可查,任何人都能看到它们多少年没有动过,但世界上没有任何人能移动它们。
这是自托管最纯粹的一面:没有管理员,也就意味着没有例外。 不管你是谁,不管损失多大,不管情有可原到什么程度,规则不会为任何人网开一面。
多家中心化交易所在这一年停止提现或进入破产程序。用户 App 里的数字一切正常,直到提现按钮点不动的那一刻。
用本章的模型看,原因一句话就说完了:那些资产对应的密钥从来不在用户手里。 用户持有的是平台数据库里的一条记录,也就是第 2 章那张表的第一行。
这件事之后被总结成一句话:不是你的钥匙,就不是你的币。 读完这一章,你应该能说清这句话的完整含义,而不只是把它当口号。
补一句必要的平衡:这不代表托管一定是错的。 需要频繁交易、需要法币出入金、金额不大或者自己确实没有能力安全保管的场合,托管往往是更现实的选择。关键是你要知道自己站在那把尺子的哪一档,以及那一档具体承担什么风险。
比起偷助记词,更高效的攻击是让你自己签名。
典型流程:一个看起来正常的页面,让你连接钱包,然后弹出一个签名请求。你看到的是一串看不懂的内容和一个「确认」按钮。签下去之后,你并没有转账——你授权了对方在未来随时转走你某一类资产的权力。
之后资产可能过几天才被转走,那时页面早就关了,你根本想不起来是哪一次操作导致的。
这类攻击还有一个变种:假客服。你在某个群里发问,几分钟内有「工作人员」私信你,引导你去一个页面「验证钱包」或者「同步资产」。
这两类攻击都绕开了密钥保管。 你的硬件钱包、你的纸质备份、你的多签方案,对它们全都无效——因为是你自己按的确认。
唯一有效的防线是:签名之前,看懂你在签什么。 第 24 章会教你怎么看,以及有哪些签名内容必须直接拒绝。
改一个变量
所有「弄丢」类的损失一夜之间消失了。这对普通用户是巨大的体验改善,不能轻描淡写地否定它。
但你已经能推出代价了:能凭手机号找回,就意味着存在一个有权把资产改判给另一个人的角色。 那个角色可以是运营商、是发卡机构、是某个服务方——不管是谁,第 2 章那张表的第三列又填满了。
而且它会引入一整类新攻击:只要能夺取你的手机号(补卡、社工、内部人员),就能夺取你的资产,而你连密钥都没泄露过。
这就是为什么这个问题至今没有"标准答案"。 行业里的各种账户抽象和社交恢复方案,本质上都是在这条轴上找一个折中点:让恢复成为可能,同时让恢复的权力足够分散、足够慢、足够难被单点攻破。
单点失误不再致命:丢一把钥匙还能用另外两把,被偷一把也转不走钱。对机构、对团队资金、对大额长期持有,这是明显更稳的结构。
代价有三层。操作成本:每一笔都要协调多个人,日常使用会很累。共谋风险:三个人里有两个联手,一样能转走。人的问题:三个人的关系会变化,人会失联、会去世、会翻脸,而这套安排通常没有预设的退出机制。
把安全问题从技术转移到了治理。 这不是消除了风险,是换了一类风险。很多真实的资金事故不是密码学被攻破,是多签的人员安排出了问题。
这是个很有意思的设计。它把第 2 章的「可撤销性」部分地请了回来,但撤销权在你自己手里,而不在某个机构手里。
被偷了怎么办?你有 24 小时发现并撤销。不少真实的盗窃案里,受害者是在几小时内就发现的——只是当时什么也做不了。
代价同样清楚。所有正常转账都要等 24 小时,这让它完全不适合日常支付。备用钥匙本身又成了一个要保管的东西,而且它权力极大。攻击者也可以反过来用:如果他先拿到了备用钥匙,就能撤销你的正常转账。
请注意这个方向本身是真实存在的工程路线,行业里有多种形态的探索。这一章不评价哪种更好,只是让你看清它们都在这条轴上移动:恢复能力和控制权的排他性,是此消彼长的。
先说结论:这是本课程里少数几件明确说"永远不要做"的事之一。
原因不是模型不聪明,而是结构问题,三层:
第一,你的助记词会进入一个你无法审计的系统。 它会经过网络、可能被记录、可能被用于训练、可能被运维人员访问。你失去的不是「可能泄露」,是「无法确认没有泄露」——而第二件事和第一件事在安全上是等价的。
第二,模型可以被文本操纵。 它读到的任何内容——一个网页、一份文档、一条消息——都可能包含针对它的指令。一个能签名的模型,加上一个能被外部文本影响的输入,等于一个可以被陌生人远程操控的钱包。
第三,出了事没有人承担。 第 2 章讲过,现实世界的账本之所以能兜底,是因为有人有权改那一行并且对此负责。这里两个条件一个都不成立。
那 AI 到底能不能碰资金?能,但结构完全不同:模型只能提出建议,签名永远由受约束的系统或人来完成,并且有金额上限、地址白名单、模拟先行和可审计日志。 这条链路是第 34 章的主题,AI 安全链路那一页有完整的图。
现在只需要记住那条绝对禁止的架构:提示词 → 模型 → 私钥 → 发交易。 中间少了所有约束,这四步连起来就是一个远程可控的取款机。
带走的问题
从十八问里挑三问,用在这一章。
问一个产品「用户是谁」时,在自托管这个话题上要问得更细一点:它假设用户有多强的执行能力?
一个要求用户离线保管二十四个单词、永不出错、还要考虑自己身后事的方案,它的真实用户群比宣传里小得多。很多产品的失败不是因为不安全,是因为它假设的用户不存在。
反过来,一个宣称「像用微信一样简单」的钱包,你要问的是:简化掉的那部分责任,被转移给谁了? 答案通常藏在服务条款里。
这一章把这一问推到了它的极限。
自托管的风险结构是:你承担百分之百。 没有保险,没有客服,没有监管救济,没有法院能把币判回来。转错地址、签错名、丢了备份、被骗,全部由你自己承担全部后果。
这是一笔明确的交换:用全部的补救机制,换取排他的控制权。 它不是免费的自由。做任何决定之前,先算清楚你换到了什么、付出了什么,以及这个金额是不是你承担得起。
这一问在这一章有一个非常具体的形态:一个能替你签名的程序,权限有多大?
判断标准不是它「打算」做什么,而是它「能」做什么。一个持有私钥的程序,能转走这个地址的全部资产——不管它的设计初衷是只帮你查余额,还是只帮你换一点手续费。
所以看任何一个自动化工具、机器人、插件,第一个问题永远是:它碰不碰签名? 碰,就按「它能转走全部资产」来评估;不碰,风险等级立刻低一个量级。这条判断会一直用到第 34 章。
本章自测
币在链上状态里,钱包里只有密钥。
钱包应用做三件事:保管密钥、读取链上状态给你看、帮你生成并签名交易。 它不保管任何资产。
最干净的验证方式就是本章的 Lab:换一个牌子的钱包,输入同一句助记词,同一个地址、同一份余额会原样出现。 如果币真的在某个软件里,这件事不可能发生。
单向链:助记词 → 私钥 → 公钥 → 地址。 每一步都只能往右算,不能往左推。
实际含义有三条:
地址完全可以公开,别人只能给你转账和查看你的全部历史。
助记词和私钥信息量等价,拿到任何一个就等于拿到全部控制权。
从右边永远推不回左边,所以地址被人知道不会危及资产,而助记词被人知道就等于资产已经不是你的了。
因为找回密码的本质是「有人有权把账本那一行改成新的归属」。
第 2 章讲过,银行能重置密码,不是因为它知道你的旧密码,而是因为它有权改那一行。
而链上账本没有这个角色——这正是第 3 章和第 4 章费尽力气换来的结果。没有人能改你那一行,所以也没有人能帮你。 这两句话是同一件事。
能防:密钥不进入联网环境,所以设备中毒、剪贴板被劫持、恶意软件读取文件这些路径基本被切断了。
防不住:你把助记词抄进了电脑或相册;你被假客服骗着念出了助记词;以及最重要的一条——你自己在设备上按下了确认,签了一个你没看懂的授权。
最后一条要特别强调:签名钓鱼完全绕开了硬件钱包。 因为整个流程里没有任何异常,是你本人用你的硬件设备,做了一次完全合法的签名。
所以硬件钱包提升的是密钥保管的安全等级,不是操作判断的安全等级。后者只能靠看懂签名内容,第 24 章会专门讲。
没有标准答案。检查五件事:
一,金额和方案匹配吗? 大额用热钱包,或者小额上复杂多签,都是错配。
二,助记词有几份备份,分别在哪? 只有一份的方案,防不住任何物理意外。
三,你半年不碰还能准确执行吗? 想不起来的方案等于没有方案。
四,如果你今天出了意外,该知道的人知道吗? 这一条最多人跳过,也是真实损失里占比很高的一类。
五,也是最关键的:你的方案防不住哪类攻击? 如果你的回答里没有「防不住我自己被骗着签名」这一条,说明还没想完整。
能说清自己的方案在哪里会失效,比方案本身更重要。 这是这门课从第 1 章起反复训练的同一件事。
一句话带走
资产在链上状态里,钱包管理的只是控制资产的密钥。