自从比特币诞生伊始,与此相关的私钥、公钥、地址等名词概念就不断出现在大众眼前,那么这四个概念之间是什么样的关系呢?今天就给大家简单聊一些相关的专业名词和背后的逻辑。
1 这些名词的关系是什么样的?
如果用一句话说明这几个名词的关系,那就是: 钱包生成私钥 → 私钥生成公钥 → 公钥生成公钥哈希 → 公钥哈希生成地址 → 地址用来接受比特币 ,简单吧,能听懂吧。
2 这几个名词究竟是什么东西?
还是一句话概括, 除了钱包是软件以外,剩下的四个都是长度不一的字符串 ,比如私钥是52位的字符串,地址是34位的字符串。
3 这四个字符串分别从哪里来的?
私钥 由钱包软件随机生成,随后用密码算法生成公钥和地址,如果用等式表示的话,可写成如下形式:
公钥=算法1(私钥)
公钥哈希=算法2(公钥)
地址=算法3(公钥哈希)
所以, 地址 =算法3(算法2(算法1(私钥)))
其中,算法1,算法2,算法3都是公开的算法。
4 这几个字符串哪个必须保密,哪个可以公开?
私钥绝对不能公开 ,因为有了它本质上就取得了对应比特币的所有权。
地址可以公开 ,因为它是用来接受比特币的, 公钥和公钥哈希也可以公开 ,不过一般情况下你看不到。
5 为什么地址和公钥可以公开?
因为 即使被别人知道了地址和公钥,对方也推算不出你的私钥,也就掌握不了你的比特币 。
为什么推算不出?
举个例子。电影《模仿游戏》中,英军即使在得到了engima密码机(算法)后仍然无法破解德军的密码,原因就是德军每次发信息都会用一个新的口令(私钥)作为起始点。在不知道口令的前提下,进行反向暴力破解大概需要几千万年,不过最后因为刻板的德国人每次都用同一个口令作为起点,而这个口令还是自然语言,导致密码被破解。
所以,每次交易的时候才会要求生成一个新的私钥,然后得到一个新的地址,这样你的交易安全性就有了很大的保障。
6 做自己开心的事
从上面的描述我们可以推出,私钥的本质是一个复杂数学问题的解,当有人向公开地址发送比特币时,其实是在向全网所有比特币客户端发出了一道数学题,而这道题目的正确解,就是你的私钥。因为那道题是用你的私钥生成的呀,所以只有你能在第一时间回答出答案,于是比特币就归你了,因此 私钥千万不能告诉别人。
如何找到私钥并妥善保管?
在bitcoin-qt软件中,进入windows debug或者调试窗口,在命令行下输入 getaddressbyaccount 命令可以查看所有已经生成的钱包地址。选取其中一个地址,然后用 dumpprivkey “地址”命令就能看到私钥了(54位字符串)。
下图是用getaddressbyaccount “”命令查看地址列表,用dumpprivkey查看私钥的截图,注意第一张图中由于钱包是加密的,所以直接打dumpprivkey命令是看不到私钥的。
输入钱包密码后才能用dumpprivkey命令看到私钥。
刚已经说了私钥非常的重要,它是真正决定比特币归谁的证明。私钥在bitcoin-qt客户端里,实际上是存在于一个叫wallet.dat的文件里的,而且刚安装的bitcoin-qt客户端是不设密码的。万一电脑落入不法分子手中或被黑客攻击,导致私钥丢失,就狠尴尬了,所以一定要设置密码,且密码一定要遵守随机复杂大小写字符数字都有的规则。建议用专门的密码生成软件生成,关于密码软件,找机会专门说一下。
特别注意,千万千万千万记住了,一定不要把密码给忘了!因为你 忘了密码就打不开钱包 wallet.dat 文件了,也就找不到私钥了 ,然后,就没有然后了。
我就发生过刚开始倒腾钱包把密码搞错了,然后打不开钱包的尴尬,最后只好怒删wallet.dat文件,让系统再自己生成一个,这时候的感觉大约相当于把一笔钱埋在了宇宙某颗星球上,然后把坐标图搞丢了,因为比特世界只认私钥不认身份证,你掉了就是掉了,再也找不回来了。
不过正因为比特币的所有权是依靠私钥确认的,也就有个最狠的保存办法,老猫也提过,那就是,找到私钥后记在纸上,然后把纸锁在保险柜里,或者干脆记在脑子里,不过54位的字符串谁特么能记住?然后把电脑上的客户端连同钱包文件一起删除。
好了,关于钱包客户端,大概就说这些吧,相关知识我也是刚开始了解,随着了解信息的增加,可能会有更新的认识,到时候会再写出来。
千万注意,千万注意,千万注意不要搞丢了私钥。
币姐为了让新人更容易理解,会使用一些比喻来讲,虽然不太严谨,但是会更好理解。
私钥就好像你的银行卡密码
比特币钱包地址就好像你的银行卡
只要有了银行卡和密码,谁都能从ATM上取钱。
而比特币钱包地址是公开的,相当于别人都有你的银行卡,所以这个时候你的银行卡密码(私钥)就变得十分重要了!
一旦泄露你的密钥,别人就可以把你的比特币转走。
百度搜索:“币姐教你比特币”或者“币姐”找到我,更多精品内容分享哦~!
钱包加密是指对储存有私钥的钱包进行自动加密存储。 比特币官方客户端从0.4.0 版本开始支持钱包加密。加密的钱包在每次付款的时候,都会提示您输入密码。如果密码错误,客户端会拒绝付款。如果用最早备份的钱包(wallet.dat)替换回来,还是一样可以正常交易。考虑到比特币的原理应该也可得出,只要有私钥(钱包)存在,就可以证明你是这个钱包的合法拥有者,不管对这个钱包(核心就是某个地址对应的私钥)是进行了加密还是删除,都不能否定它。备份比特币钱包时,还需注意由于比特币支付找零机制的存在(比如把一个完整的100 btc中的50 btc发送给某个地址,系统会发送其中的50 btc到对方的地址,并退回50 btc到你客户端的一个新地址上,这个地址不会直接显示在你的地址列表中),每发送了100次比特币给其它地址或者使用了100个不同的地址接收比特币后,请重新备份钱包,否则后面交易退回的和接收到的比特币会永久丢失。 除了给钱包加密外,用户还可以自行生成离线的纸钱包和脑钱包。 纸钱包即只要在未对钱包加密前通过在比特币官方客户端的调试窗口中的控制台输入:“dumpprivkey 你的比特币地址”(输入时不要带引号)来查看自己的私钥,然后把此私钥打印出来存放在某个地方再删除电脑上的钱包文件即可进行钱包的网络隔离。 脑钱包则是利用一段javascript脚本,针对用户自行设定的一个能永久记住的短语(一定要是特殊和唯一的,建议最少16个字符以上,中英文皆可),生成一对公钥和私钥,之后用户把所有比特币都转到此比特币地址(即公钥)上,以后只需要记住这个短语即可在任何时间任何地方还原自己的财富(除非你的短语不幸被其他人获知并转走了)。 为了确保绝对安全,Armory客户端将钱包和客户端进行分离,离线客户端内的钱包被严格地加密保护起来。在线客户端如果需要支付比特币,需要由掌握离线钱包的电脑进行签署,再通过在线客户端进行广播。
比特币密码又称为密钥,常用的秘钥又分为公钥和私钥。
公钥是部分公开的比特币钱包地址,一般指的是企业的内部密钥,是由一串代码生成的,只使用58个字符。
通常私钥是由256个二进制数字组成的,也有部分私钥是由64位字符组成的,这些不同的密码对应不同的钱包,这些钱包的作用也各不相同。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如有疑问请发送邮件至:bangqikeconnect@gmail.com