如前所述,公钥和私钥都是随机字节序列,私钥代表获取的所有者,这一切有一个必要条件:随机算法产生的是真实随机值,一定不能发生这种情况:产生一个已经属于别人的私钥。
比特币使用椭圆曲线算法生成私钥。椭圆曲线是一个复杂的数学概念,在这不对其进行详述(如果非常感兴趣,可以参考this gentle introduction to elliptic curves,再次提醒:一大堆数学公式!)我们所需要知道的就是这些曲线可以生成非常大的随机数。比特币所使用的曲线算法将从0到2256随机选择一个数(这意味着有大概1077个随机数可供挑选,而宇宙可见范围内存在大约1078到1082个原子),这使得同一私钥被生成两次的可能为0。
此外,比特币使用ECDSA算法(Elliptic Curve Digital Signature Algorithm)对交易进行签名。