原始文献 / 论坛帖 / Re: Bitcoin Address Collisions

Re: Bitcoin Address Collisions

Bitcointalk · 2010-02-23 16:26:09 UTC

AuthorSatoshi Nakamoto
TitleRe: Bitcoin Address Collisions
Date2010-02-23 16:26:09 UTC
ForumBitcointalk · 原文

每个比特币地址都有一对独立的公钥/私钥。不是一把私钥开所有东西。比特币地址是公钥的 160 位哈希,系统里其他东西都是 256 位。

如果真撞了,撞中的人能花发到那个地址的钱。只限发到那个地址的钱,不是整个钱包。

如果你故意去撞,现在生成一个撞中的比特币地址要比生成一个区块多花 2^126 倍的时间。你还不如去生成区块,赚得多。

随机种子做得很扎实。Windows 上用性能监视器的全部数据,自你开机以来度量的每一比特磁盘性能、网卡指标、CPU 时间、分页等等。Linux 有内置的熵收集器。另外,你在比特币窗口里每动一下鼠标都在产生熵,磁盘操作的时间也被采集为熵。

英文原文

There's a separate public/private keypair for every bitcoin address.  You don't have a single private key that unlocks everything.  Bitcoin addresses are a 160-bit hash of the public key, everything else in the system is 256-bit.

If there was a collision, the collider could spend any money sent to that address.  Just money sent to that address, not the whole wallet.

If you were to intentionally try to make a collision, it would currently take 2^126 times longer to generate a colliding bitcoin address than to generate a block.  You could have got a lot more money by generating blocks.

The random seed is very thorough.  On Windows, it uses all the performance monitor data that measures every bit of disk performance, network card metrics, cpu time, paging etc. since your computer started.  Linux has a built-in entropy collector.  Adding to that, every time you move your mouse inside the Bitcoin window you're generating entropy, and entropy is captured from the timing of disk ops.