首先,要回答这个问题,需要对比特币的公钥私钥和钱包地址,这几个的关系搞清楚。

一、比特币公钥私钥算法

在《比特币:一种点对点的电子现金系统》一文中,中本聪提到了用椭圆加密算法(ECDSA)来产生比特币的私钥和公钥。

基于椭圆加密的原理:私钥是可以计算出公钥的,再由公钥经过一系列数字签名运算就会得到比特币钱包地址。

如下:

私钥 —— 公钥 —— 比特币钱包地址

而比特币中间用到了SHA256加密、RIPEMD160加密和BASE58编码。

二、私钥

私钥就是个随机数,只不过,这个随机数的概率空间很大(256位,也即是2的256次方),什么概念了,你可以数数地球上有多少粒沙子。因此别人是不可能和你生成一样的私钥的(1/2^256的概率),这是比特币甚至整个密码的根基。

三、公钥

而比特币客户端看到的私钥是一串字符串呢?其实这字符串只是私钥进行了Base58校验和编码之后的格式而已。完整过程如图:

经过以上的复杂计算之后,进过11步,Base58编码,就得到了我们经常看到地址了。

oxWoHJrU7VBArBQYhCX9NxHa1RuQat5Bya(编造的,举例用)。

比特币的用户很少会直接看到数字密钥。一般情况下,它们被存储在钱包文件内,由比特币钱包软件进行管理。

四、交易确认

比特币钱包的私钥,作用相当于密码,用于证明比特币的拥有者。拥有者必须使用私密密钥给交易消息签名,以证明消息的发布者是相应比特币地址的所有者。如果没有私钥,用户发送的签名就无法被验证。区块链上账本不会认可该比特币的所有权,用户也就不能使用相应的比特币。

回答问题,也就是说私钥是唯一的,进过计算得到的公钥是唯一的,钱包地址也是唯一的。如果别人拿到了你的私钥,那么他可以计算出公钥,可以生产签名,也就拥有了你的比特币,如果该了私钥刚好是别人的私钥,(几率非常小,因为是随机的,不重复的,空间地址那么大,而且就比特币的私钥量来说,也只是占随机私钥地址空间很小很小很小的部分。打个比方:就相当于整个私钥空间是地球所有的沙子这么大,每一粒沙子唯一标识,而比特币私钥只使用了你脚底下那么一点沙子,你随便改一个,可能改到上海某地的一粒沙子上了,而不是你脚底下的某粒沙子。而那样的沙子地下是没有比特币的),而如果没有备份私钥,改了之后,你无法找到私钥,那么你将永远失去这个私钥下的比特币。

码字不容易啊,各位看官请点赞+关注。更多互联网专业内容。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注