首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

恼人的比特币钱包——公钥、私钥、Keystore、助记词

云很淡,风很轻,春寒料峭,冻杀年少。

园长裹了裹已并不存在的冲锋衣,恼怒的抱紧赤条条的上身,夹紧仅剩的大裤衩,任凭裤腿在飒飒的烈风中飞扬,惦着小碎步回到了那并不温暖的桥洞。

早春、黎明、拔地而起的桥洞正实实在在的落在地上。

落地,一个多么让人安心的词汇。

那么,未来,必定是一个人人都有桥洞的美丽新世界吧。

大家习惯把代币的钱包和现实中的钱包或者银行卡做类比,把虚拟的概念对应成现实世界中常用的物品,这样可以更好的理解这个莫名其妙的世界。

这并没有问题,就像给英语注上汉字:谁又偷猫肉。

但问题出在,如果你对比了错误的物品呢?

先放结论,我们所使用的区块链世界的“钱包”,并不是真正意义上的钱包,而只是一个使用钱包的工具——“钱包”并不是钱包。

公钥

这个东西对应的,应该才是我们现实中使用的钱包,这个类比不那么恰当,更恰当的应该是银行卡(储蓄卡、借记卡),说的再准确一点,就是银行卡的卡号。

私钥

钱包就没法类比了,现实中没见过带锁的钱包,所以只能类比成银行卡的密码了。

Keystore

私钥虽然本质上就是一个密码,但每次都输入一个五六十位数字加字母且区分大小写的密码,怎么看也不像日常生活经常输入的六位或者八位的密码。

怎么能看起来像一点儿呢?于是就发明了Keystore——把私钥再加密一次,生成一个几百位的一大长串儿东西,和这一长串东西一起,你就可以输入一个简单的密码了,比如六位纯数字,是不是就比较像银行卡的感觉了咧?

所以发明Keystore就是为了让大家能输入简单密码。

助记词

通过导出Keystore虽然可以以6位纯数字的密码来打币取币,但毕竟要导出Keystore,还是很烦,所以就又发明了一个更简便的操作——助记词。

让你记录十来个词语来代替私钥——茄子、黄瓜、冬瓜、土豆……当然了,人米国人发明的么,肯定用米国话,就是十来个英文单词,就可以取币。

通过以上概念讲解,大家就知道其实本来只有两个东西,公钥和私钥,Keystore和助记词后来发明出来,只是为了让大家方便操作的,核心就是免去每次打币取币都要输入那么长的私钥,太麻烦了。

但是这里又有一个重要的不同,是不能完全和现实类比的。

现实中你丢了你的银行卡密码,或者把银行卡密码暴露在网上,是没有直接伤害的,因为银行卡还在你手里,别人不可能仅凭一个6位的密码就取走你卡里的钱。

但是在区块链世界,你的私钥是可以直接导出公钥的,也就是说,有了银行卡密码,就能知道银行卡卡号,就是这个现实中不存在的场景,让很多小白转不过弯来。

所以类比现实其实本身没有问题,但是遇到现实中没有的场景,在无法类比的情况下,就会出现不能理解的问题。

通过上面的解释,我们可以认为公钥,其实就是钱包,就是银行卡卡号,我们通过私钥(或者Keystore+密码,或者助记词)就可以对公钥进行操作。

但是,实际上这个操作是需要输入代码的,大家想象一下dos的界面

你需要输入命令行才能完成操作。

这是正常人能干的事儿么?

于是,就有人发明了“钱包”。

“钱包”是有界面的,有按钮的,你不用输入命令行,不用看到奇怪的黑黑的屏幕,直接就可以进行取币的操作。

所以“钱包”其实不是钱包,“钱包”是操作钱包(公钥)的图形化工具。

而其实,所谓的操作也只有一个,把代币从你的地址(公钥)打到另一个地址(公钥),只有知道这个地址(公钥)对应的私钥才能完成这个操作。

这里又有一个和现实不同的地方,为什么只有取币这一个操作呢?现实中可是有取钱和存钱的操作的呀~~这是另一个小白转不过弯来的地方。

因为现实中的钱是可以拿在手里的,所以才会有存钱这个操作——把拿在手里的钱存到银行卡里。

区块链世界的钱是不存在实物的呀,没有拿在手里这一说,所以只能从一个银行卡(公钥、也就是常说的地址)打到另一个银行卡(另一个公钥,也就是另一个地址),所以只有取币这一个操作,而不存在存币这个操作。所谓取币也不是现实中的把钱取到手上,而是把一个银行卡的钱打到另一个银行卡上,也就是取币和存币合并为一个动作,现实中有个专门的说法,叫做“转账”。区块链世界的钱包(公钥,或者说地址),只有“转账”这一个操作。

这是所有交易所对交易所,交易所内场外账户赚到场内账户,场内账户打到场外账户,交易所到自己钱包等等所有交易的原理。

如果还是有看不明白的,积极留言提问,园长会一一回答。

再有不懂的,去知识星球提问,或者一群小白一起讨论,彻底搞明白,后面遇到具体操作,心里会踏实许多。

第一个二维码是加入EOS区块链幼儿园微信群

第二个是加入EOS区块链幼儿园知识星球。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180217G0E0RE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券