【比特币钱包:私钥,公钥,地址】那些关系(1)

第一个问题,这些名词的关系是什么样的?

如果用一句话讲说明这几个名词的关系,那就是,钱包生成私钥---私钥生成公钥---公钥生成公钥哈希---公钥哈希生成地址---地址用来接受比特币,简单吧,能听懂吧。


第二个问题,这几个名词究竟是什么东西?

还是一句话概括,除了钱包是软件以外,剩下的四个都是长度不一的字符串,比如私钥是52位的字符串,地址是34位的字符串。


第三个问题,这四个字符串分别从哪里来的?

私钥由钱包软件随机生成,随后用密码算法生成公钥和地址,如果用等式表示的话,可写成如下形式

公钥=算法1(私钥)

公钥哈希=算法2(公钥)

地址=算法3(公钥哈希)

所以有:地址=算法3(算法2(算法1(私钥)))

其中,算法1,算法2,算法3都是公开的算法。


第四个问题,这几个字符串哪个必须保密,哪个可以公开?

私钥绝对不能公开,因为有了它本质上就取得了对应比特币的所有权。

地址可以公开,因为它是用来接受比特币的,公钥和公钥哈希也可以公开,不过一般情况下你看不到。


第五个问题,为什么地址和公钥可以公开?

因为即使被别人知道了地址和公钥,对方也推算不出你的私钥,也就掌握不了你的比特币。


为什么推算不出呢?

因为问题三中的等式,除了算法3,算法1和算法2的计算都是不可逆推的

地址=算法3(算法2(算法1(私钥)))


什么叫做计算不可逆?

先举个简单的例子

有等式y=4x²+5x+17,这是我们中学都学过的抛物线方程,在这个简单方程里,已知x的情况下,可以快速求出y,但是在知道y的情况下,要反求x,就会发现可能的答案x有两个,但实际只有一个才是正确的,当然真实的密码算法要比这个复杂的多,以至于,在已知y的情况下,x的可能解多达10的77次方个,所以若有台超级强大的计算机,进行暴力搜索求解,还是可以算出私钥的,不过据说宇宙所有原子的总和是10的80次方,所以暴力搜索法应该很花时间吧。


再举个例子,大家看过电影《模仿游戏》吧,其中英军即使在得到了engima密码机(算法)后仍然无法破解德军的密码,原因就是德军每次发信息都会用一个新的口令(私钥)作为起始点,在不知道口令的前提下,进行反向暴力破解大概需要几千万年,不过最后因为刻板的德国人每次都用同一个口令作为起点,而这个口令还是自然语言,导致密码被破解。


所以,才要求你,每次交易的时候,都应该生成一个新的私钥,然后得到一个新的地址,这样你的交易安全性就有了很大的保障。


第六个问题,私钥的本质是什么

从上面的描述我们可以推出,私钥的本质是一个复杂数学问题的解,当有人向公开地址发送比特币时,其实是在向全网所有比特币客户端发出了一道数学题,而这道题目的正确解,就是你的私钥,因为那道题是用你的私钥生成的呀,所以只有你能在第一时间回答出答案,于是比特币就归你了,因此私钥千万不能告诉别人。

猜你喜欢

转载自blog.csdn.net/sunny2come/article/details/80831384