关于“如何玩转Core钱包”的吐槽,可能导致币被盗的漏洞 – 技术讨论 – ChainNode 链节点

2021年8月12日

关于“如何玩转Core钱包”的吐槽,可能导致币被盗的漏洞 – 技术讨论 – ChainNode 链节点
最近冒出来一个帖子:https://bbs.8btc.com/forum.php?mod=viewthread&tid=191966据我所知,这个办法操作复杂,而且并不安全,我觉得不得不拿出来讨论讨论。其实,Core全节点钱包的缺点其实很明显:它是个装在电脑上的热钱包。电脑是个不安全的环境。联网更是增加了不安全的因素。这个问题看上去是个老梗,但是似乎很多人都不知道:https://bitcointalk.org/index.php?topic=883793.0下面就假设一个具体的情况来说一说。1.你最初生成钱包私钥的电脑是干净的、没有木马,也就是说:你的私钥确实是随机生成的、而不是被黑客掌握的2.而且,你在导入私钥前,就拔了这台电脑的网线(而且这台电脑没有无线网卡)3.甚至,在完成操作后,你把整个硬盘的数据都覆盖擦除了……所以,即使这台电脑后来有了木马,也万无一失?并不是。比特币用的数字签名算法是ECDSA,在签名交易时,涉及一个参数k值。如果k值不满足唯一且保密的要求,那别人就可以在一些情况下推算出你的私钥。所以,木马仍然不是束手无策,它可以在签名交易时故意使用一个被黑客掌握的k值,然后黑客就可以在交易被广播后利用已知的k值算出你的私钥,进而偷走这个私钥能控制的所有比特币。而且,即使是把交易信息解码出来,是看不出有问题的,因为收款地址、金额看上去全都原封不动。总而言之,就目前来讲,Core钱包没有冷热分离功能。所以,真想要私钥不触网的话,就不要用Core钱包。请使用硬件钱包,或者使用比太、Electrum这些真正有完善冷热分离功能的钱包,而且确保冷钱包系统环境(以及硬件钱包的固件)干净、私钥/密语是真正随机生成的,这才是正途。除此之外,还有一种选择,就是放弃Core的钱包功能,让它只起全节点同步交易记录、计算余额的功能,转而使用Armory等可以对接Core全节点的、带冷热分离功能的钱包软件。另外,冷钱包最好不要用U盘来拷交易数据,本人之前发过帖子说过这个事情:https://bbs.8btc.com/thread-180743-1-1.htmlPS:其实新版Core钱包已经支持HD了,只要是新生成的钱包(而不是老版本留下来的),应该都是HD的,具体是不是,软件界面右下角有图标显示。HD钱包其实不需要为了找零频繁备份wallet.dat。不过,备份肯定是不能丢的,否则,币一旦死在找零地址上,拿着一个已经空空如也的地址私钥只能干瞪眼。