最近,成龙主演的电影《捕风追影》引发了人们对加密资产安全的广泛讨论。影片中一个桥段令人印象深刻:上百亿港币的加密资产被锁在一个由12个单词组成的助记词钱包里,而主角们只差最后一个单词便能解开谜题。
然而,我在观影后尝试复现这一情节时发现,电影中的第10位和第12位助记词并不在标准助记词库中,显然这是编剧有意为之,目的是防止有人利用剧情进行诈骗。毕竟,在区块链世界中,类似的骗局屡见不鲜:骗子会故意泄露一个「带余额」的钱包地址(典型在Tron链上,利用Owner机制),诱导用户转入Gas费用,守株待兔,一旦资金转入便无法取回。

但有趣的是,如果按照真实世界的规则,助记词遵循BIP39标准,其单词库中仅有2048个单词。这意味着,暴力破解最后一个单词最多只需尝试2048次。如果进一步缩小范围,例如已知单词开头为「es」,破解时间甚至只需一分钟。
抛开电影情节,更值得深思的问题是:助记词、私钥、公钥之间究竟有何关系?为什么丢失助记词就等于失去了所有资产?
一、助记词:私钥:公钥/地址 = 「钥匙串」:「钥匙」:「门牌号」
助记词是一种遵循BIP39标准的备份方式,通过算法从2048个英文单词中随机选取并组合成12、18或24个单词。这组助记词经过PBKDF2算法处理后生成种子(Seed),再由Seed按照BIP32/BIP44的路径标准派生出一系列私钥,进而对应一系列的公钥/地址。
一组助记词 → 生成一系列私钥 → 生成一系列公钥 → 对应一系列地址
换句话说:
- 助记词 = 钥匙串,与私钥通常是一对多的关系,理论上一组助记词可衍生出成千上万个私钥;
- 私钥 = 钥匙,每一把私钥对应一个地址的使用权;
- 公钥/地址 = 门牌号,可以公开,别人能用它给你转账;
因此,助记词就像你的「钥匙串」,而每个私钥则像其中一把钥匙,用于签名并证明你对某个钱包地址的控制权——当你发起一笔交易时,就是用私钥来签名,向全网宣告:「这笔转账是我授权的」。
二、那能不能自己挑选助记词?
或许有人会问:我能不能自己选择12个单词作为助记词?比如生日、喜欢的英文单词或偶像名字,这样更有个性。
答案是:可以,但极度危险。
因为计算机生成的随机数是真随机,而人类选择单词时往往带有模式(如常用词、习惯用词、顺序偏好),这会大幅缩小搜索空间,让你的助记词更容易被猜中。
此前曾发生过「伪随机钱包」的安全事件,一些钱包因使用伪随机算法生成助记词而导致熵不足,最终被黑客暴力破解。2015年,黑客组织Blockchain Bandit就利用故障的随机数生成器和代码漏洞,系统性地搜寻弱安全私钥,成功扫出了70多万个脆弱钱包地址,并盗走了超过5万枚ETH。
当然,有些极客会用骰子(需确保骰子足够均匀)摇出随机数,再映射到BIP39单词库,以实现手工生成安全助记词。但对大多数人来说,这种方法过于复杂且容易出错。
三、能不能暴力破解V神或其他巨鲸的钱包?
这个问题也曾在我脑海中浮现,幻想某天生成一个钱包地址后,发现里面躺着上百万枚ETH,瞬间实现财富自由。
不得不说,这种想法的确诱人。但现实是:概率几乎为零。
为什么?因为助记词的可能组合数量已经夸张到超出人类想象:
- 12个单词:有效组合数约2¹²⁸ ≈ 3.4 × 10³⁸
- 24个单词:有效组合数约2²⁵⁶ ≈ 1.16 × 10⁷⁷
这个数量级是什么概念?
科学家估算,地球上的沙子总数约为7.5 × 10¹⁸粒,而:
- 12个单词的有效组合数相当于地球全部沙子总数的4.5 × 10¹⁹倍;
- 24个单词的有效组合数更是地球上沙子总数的1.5 × 10⁵⁸倍。
换句话说,就好像地球上每一粒沙子都变成一颗「新地球」,每个新地球里还有沙滩和沙子,然后你要在所有这些沙子里,一次性随机找到你事先标记好的那一粒。
这已经远远超出人类可以想象的规模。

因此,暴力破解钱包的概率并非「极低」,而是在目前物理学和计算能力下,等同于零。想靠「撞库」发财,还不如去买彩票,中奖概率高得多。
回到电影的情节:如果真的只差一个助记词单词,确实有可能通过暴力遍历去尝试。
最后,关于钱包/助记词/私钥的几点安全小贴士:
- 优先使用经过时间和市场检验、开源代码审计的非托管钱包,如MetaMask、Trust Wallet、SafePal等,有条件的直接使用硬件钱包;
- 助记词和私钥,永远不要截图、不要存网盘、不要复制粘贴、不要发给别人;
- 最好纸笔抄写(可以考虑使用不锈钢助记词板,防潮、防火、防腐蚀),放在安全的地方,且2~3处多点备份;
- 公钥/地址可以放心公开,它就是你的门牌号,但要注意识别钓鱼链接;
- 建议用干净的设备管理钱包,不要随便安装来历不明的插件或App;
- 记住一句话:任何人向你要助记词,100%是骗子。