公钥、私钥、地址是啥?
如果你是比特币的持有者,还凑巧有windows或者mac电脑,那你应该用过一款叫Bitcoin-qt的软件。这个软件就是号称比特币钱包的工具,与此相关的还有私钥、公钥、地址等名词概念。那么这到底是指什么呢?
如果用一句话说明,那就是:钱包生成私钥→私钥生成公钥→公钥生成公钥哈希→公钥哈希生成地址→地址用来接受比特币,简单吧,能听懂吧。
那么,公钥、私钥、地址到底是什么关系?
这三者中比特币钱包地址是我们最常见的,它们是一串数字和字母的组合,看起来有点像乱码。钱包地址就像银行卡号,代表了你的比特币账户。通过交易所、比特币客户端和在线钱包都也可以获得钱包地址。
还是一句话概括,除了钱包是软件以外,公钥、私钥、地址都是长度不一的字符串,比如私钥是52位的字符串,地址是34位的字符串。
私钥由钱包软件随机生成,随后用密码算法生成公钥和地址,如果用等式表示的话,可写成如下形式:
公钥=算法1(私钥)
公钥哈希=算法2(公钥)
地址=算法3(公钥哈希)
所以,地址=算法3(算法2(算法1(私钥)))
其中,算法1,算法2,算法3都是公开的算法。
这几个字符串哪个必须保密,哪个可以公开?
私钥绝对不能公开,因为有了它本质上就取得了对应比特币的所有权。
地址可以公开,因为它是用来接受比特币的,公钥和公钥哈希也可以公开,不过一般情况下你看不到。
私钥的本质是什么?
私钥的本质是一个复杂数学问题的解,当有人向公开地址发送比特币时,其实是在向全网所有比特币客户端发出了一道数学题,而这道题目的正确解,就是你的私钥。因为那道题是用你的私钥生成的,所以只有你能在第一时间回答出答案,于是比特币就归你了,因此私钥千万不能告诉别人。
那么什么是公钥呢?
给大家举个例子吧:假设阿明要转一个BTC给他女朋友晓晓,阿明就需要用私钥对这笔交易进行签名,但是其他人怎么才能知道阿明拥有对这个BTC的使用权和所有权呢?怎么判断这个交易是阿明发出去的呢?阿明在使用私钥对这笔交易进行签名时,会把自己的公钥也一起发送出去,所以大家看到了小明的公钥,就知道小明确实是拥有这个BTC,这笔交易是有效的。
而钱包地址是由公钥经过一系列的运算后得出的字符串,这个过程同样也是不可逆的,知道地址也是推算不出公钥的。
如何找到私钥并妥善保管?
小号刚开始用钱包的时候就发生过忘记密码,然后打不开钱包的尴尬,最后只好怒删wallet.dat文件,让系统再自己生成一个,这时候的感觉大约相当于把一笔钱埋在了宇宙某刻星球上,然后把坐标图搞丢了,因为比特世界只认私钥不认身份证,你掉了就是掉了,再也找不回来了。
不过小号吸取了上次的教训,用个最狠的保护方法便是,找到私钥后记在纸上,然后把纸锁在保险柜里,或者干脆记在脑子里,不过54位的字符串谁特么能记住?然后把电脑上的客户端连同钱包文件一起删除。朋友说我这方法虽然简直了,但是够用还是,哈哈!