ChainCatcher 消息,加密 KOL @chaowxyz 发文分析 Lubian 的 12 万枚 BTC 如何被盗的,简单说,比特币私钥是一串 256 位的 0 和 1 的组合。生成私钥很简单,拿一枚硬币抛 256 次,把正反面记下来,正面是 0,反面是 1,这就是一个私钥。若两个人抛的结果完全一样,他们会得到同一把钥匙。后来的那个人,就能直接打开前一个人的钱包。但这种“撞大运”的概率几乎...
ChainCatcher 消息,加密 KOL @chaowxyz 发文分析 Lubian 的 12 万枚 BTC 如何被盗的,简单说,比特币私钥是一串 256 位的 0 和 1 的组合。生成私钥很简单,拿一枚硬币抛 256 次,把正反面记下来,正面是 0,反面是 1,这就是一个私钥。若两个人抛的结果完全一样,他们会得到同一把钥匙。后来的那个人,就能直接打开前一个人的钱包。但这种“撞大运”的概率几乎为零。因为 2 的 256 次方这个可能性,比宇宙里的原子总数还多。能得到重复的概率极低。私钥的安全感不来自运气,而来自数学。但这背后有一个前提:必须是真随机。
那 12 万枚 BTC 是怎么丢的。问题就出在,LuBian 矿池生成私钥所用的随机数生成器——那台本该公平抛硬币的机器坏了。它没有在近乎无限的可能性里随机挑选,而是像个卡壳的机器,总在一个极小的、有规律的范围里挑选号码。黑客发现了这台机器的故障规律,然后轻松地复制出了所能生成的私钥,把对应的钱包全部搬空。