钱包公钥、私钥、地址

钱包公钥、私钥、地址

如果你已经在开始学习区块链的知识或者已经开始创建过钱包,并转账,那么你一定听过这几个概念:公钥、私钥、钱包、地址、助记词、keystore。如果你想成为一个合格的投资者,那么你必须弄懂这些概念。它们之间的关系到底是什么样的呢?下面通过几个概念和一个例子来为大家解读。

概念

一、 钱包

区块链中的钱包和我们日常生活中使用的钱包是不一样的,我们平常用的钱包是用来装钱的;在区块链中,我们的资产是类似btc、eth这样的各种代币或者token,区块链中的钱包不是用来装这些资产的,而是作为**的管理工具。说到这里可能有人不同意了,明明我就看见我的钱包里面有各种代币,怎么能说不是用来装钱的呢?那我得先告诉你,你的代币是放在秘钥里面的,就算你的这个钱包不能用了,只要你知道你的秘钥,你就能在别的地方继续管理你的资产,而且根据私钥是可以算出公钥的,也能间接算出地址。在你创建一个钱包的时候会生成一对公、私钥。公钥经过一定的算法就得到了你的钱包地址,这个地址就是用于交易时别人给你打币的地址;而私钥就是交易时对这笔交易进行数字签名,从而证明你拥有交易的输出权。所以地址是可以公开的,可以给任何人看;而私钥是千万不能给别人看的,谁拥有了私钥,谁就拥有了对钱包资产的控制权。

二、地址

在数字货币交易的过程中,只要知道对方的钱包地址,就可以给对方转账了。大家都知道在创建完钱包以后会生成一个钱包地址,那么这个地址是怎么来的呢?创建钱包的时候系统由椭圆加密算法(ECDSA)来产生私钥和公钥。基于椭圆加密的原理,由私钥是可以计算出公钥的,然后再由公钥经过数字签名和哈希算法的运算就会得到钱包地址。现在清楚了吧,地址不等于公钥,或者说地址是公钥的另外一种表现形式。有了这个钱包地址你就可以用于接收别人转币了。
钱包公钥、私钥、地址

三、公钥

公钥由私钥通过椭圆曲线加密算法生成的,变换后是一个65个byte的数组,一般是通过16进制处理后显示。早期比特币开发者不知道可以压缩公钥,压缩后公钥有33个byte数组。拥有私钥,就可以算出公钥。而公钥不能计算私钥,这样,数字加密货币就有了很高的安全性。

四、私钥

私钥本质上是一个包含64位的随机数:

比如:6KYZdSDo39z3GDrtuX2QcowGnNP5zTd7yfr2SC1j239sBCnWjee。

私钥是随机生成的,这个随机数的可能由2的256次方种,这个数量大家可以感受一下,及时用“暴力**”的方式逐一遍历可能的私钥,也可以说几乎是不可能的,就算用现在最先进的量子计算机也不行。

私钥只能由钱包自己来生成。在创建钱包的时候,输入密码,你就可以导出私钥了。注意:一个钱包地址只有一个私钥,谁拥有私钥,谁就拥有了这些数字货币的控制权,私钥不能忘,必须备份,切记!

五、助记词

在创建钱包的过程,会生成一个助记词,而且会让我们备份,助记词一般由12个单词构成,2个单词之间由1个空格隔开,这些单词都来源于一个固定词库,是由私钥根据一定算法得来,所以私钥与助记词之间的转换是互通的,助记词实际上就是私钥的另一种表现形式。助记词最好用纸记下来,千万不可用联网的东西来保存,照片也不行。助记词的功能等同于私钥,如果别人拿到了你的助记词,就可以用来导入钱包,进而进入钱包并拥有这个钱包的掌控权。

六、KeyStore

KeyStore看上去就是JSON 格式的字符串, 一般以文件形式存储。Keystore的本质是加密后的私钥,Keystore必须配合你的钱包密码来使用才有效
钱包公钥、私钥、地址
下面通过银行卡转账的例子来说明上面的几个概念,帮助大家更好的理解
比如现在币圈鼎鼎大名的宝二爷,由于投资数字货币已经是财富*了。有一天宝二爷看我是他的死忠粉,想用银行卡给我转一笔钱,宝二爷有一张VIP金卡,而我有一张普通的卡,我们俩都有自己的卡号和密码,而且密码只有自己知道,现在我把我的卡号(地址)提供给宝二爷,宝二爷用他的金卡,输入我的地址,给我转了一笔钱,我输入我的密码,就在ATM上面看见了有一笔来自宝二爷的转账。在这个过程中,卡号就是地址;宝二爷输入我的卡号给我转账就是用我的公钥进行加密;宝二爷输入自己的密码和转账金额,就是用他的私钥对这笔交易进行数字签名,表明他对那个账户拥有控制权,而且这样一来,也会在区块链上留下记录,以后可查;我在ATM上输入自己的密码,查看了这笔到账,就是用自己的私钥解密了这笔交易的详细情况;由于我能看到宝二爷的地址,所以我就相当于说用宝二爷的公钥解密了这笔钱来自宝二爷。
钱包公钥、私钥、地址
链接:https://www.jianshu.com/p/61493dbe7cc3