术语表 /钱包与托管
脑钱包
- 脑钱包是什么?
- 脑钱包通过对记忆中的短语进行哈希运算,直接将其转换为私钥,这种设计曾被研究人员大规模盗空,目前已没有任何仍在维护的钱包提供该功能。
其吸引力显而易见:记住一句话,不携带任何物品过境,再在另一端重建钱包。其缺陷同样简单,因为人们选择的句子容易被猜到,攻击者可以免费地离线测试候选短语。2016年的一项学术研究识别出884个脑钱包,在2011年至2015年间共持有1,806枚比特币,其中除21个之外,其余均已被盗空。
运作方式
状态:公开的破解工具在2015年出现后,脑钱包即遭弃用,目前没有任何仍在维护的钱包提供该选项。由设备生成的助记词已完全取代了它们。
其构造只需一行代码:取出短语,对其运行 SHA-256,再将得到的32个字节当作私钥。其中没有盐值,没有随机成分,也没有刻意放慢速度的设计。因此,同一个短语会为世上每一个想到它的人生成同一个私钥,秘密由此变成了查表问题。
攻击者直接利用了这一点。他们建立一份曾持有过余额的全部地址的列表,将其载入快速的成员查询结构,然后成百万地对候选短语进行哈希运算:歌词、经文、电影台词、旧泄露数据中的密码,以及这些来源能够排列组合出的所有字符串。每个哈希值都会在几微秒内与地址列表比对。Ryan Castellucci 于2015年8月在 DEF CON 23上演示了这种攻击,并发布了使该技术变得常规化的工具 brainflayer。同一研究团队统计到约十几个相互竞争的盗币程序在监视新充入的资金,因此有资金的脑钱包通常在一天之内被盗空,往往只需几分钟。
人为选择短语这一环节无法修复。即使是您自认为原创的句子,其所在的搜索空间也远小于随机私钥所占据的2的256次方,而攻击者只需要尝试人们实际会选择的短语。
在哪里会遇到它
脑钱包已成为历史,但这一思路不断以新的名称重现,因此值得识别。Keybase 于2014年发布的 WarpWallet 曾试图挽救这一概念,使用 scrypt 和 PBKDF2,并以电子邮件地址作为盐值,这提高了每次猜测的成本,但并未改变输入由人来选择这一事实。
当下常见的混淆在于把它与记住一套标准的助记词混为一谈。由硬件钱包生成的十二个单词带有128位由机器产生的熵,无论您是否同时记住它们,其强度都不受影响。而您自己编造的短语,只带有您想象力所含的熵,这远低于您的感觉。如果某个网站、应用或“自定义靓号助记词”工具要求您输入自己想出的一句话,并承诺为此提供钱包,请关闭它。
脑钱包 vs 密码短语
脑钱包本身就是全部的秘密;BIP-39密码短语则是叠加在机器生成的助记词之上的额外因素。这一差别决定了攻击方式。要暴力破解脑钱包,攻击者只需要一份词表和电力,因为地址是公开的。要暴力破解密码短语,攻击者必须已经掌握您的助记词,这意味着攻击只有在发生物理层面的入侵之后才会开始。薄弱的人为输入在两者中都很危险,但只有其中一种在获得资金的那一刻起就暴露在整个互联网面前。