首页
学习
活动
专区
工具
TVP
发布

公钥、私钥、钱包都是什么——小白区块链实战指南(二)

很多小白在学习区块链知识时,还是被一些术语搞得一脸懵逼,但其实他们可以和现实场景很容易对应,今天我们用现下最火的游戏《恋与制作人》来聊聊公钥私钥钱包的概念。

霸道总裁李泽言如何转给你100万?

1.把他的银行卡账号,密码用某种方式告诉你,你用此账号密码就可以取钱

2.通过他的银行卡转账到你的银行卡,你们的银行卡账号和密码都不一样,且银行卡账号是公开的,密码只有你们各自知晓

第一种情景就是对称加密算法,你们使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥,虽然加密效率高,速度快,但密钥一旦泄露,别人就能轻易截获你们的交易,安全性不足。

第二种情景则是非对称加密算法,它需要两个密钥:公开密钥(publickey)和私有密钥(privatekey),公钥与私钥是成对的,他们互相解密,因为加密和解密使用的密钥不一样,被称为非对称加密算法。他们的关系如下:

私钥本质上是32个byte组成的数组,由256个0或者1随机组成,识别性较差

——相当于银行卡密码,只有自己知道,银行卡密码可以自己设置,但私钥是随机生成的

公钥由私钥通过椭圆曲线生成,变换后是一个65个byte的数组,一般是通过16进制处理后显示。早期比特币开发者不知道可以压缩公钥,压缩后公钥有33个byte数组

地址是由公钥产生的,公钥经过多种加密算法转换成公钥哈希,公钥哈希经过Base58编码生成地址

——相当于银行卡卡号,因为公钥太长,在交易中公钥通常不显示,只显示两个地址之间的转账

钱包和银行卡一样,银行卡能显示转账明细和我们的资产,但实际上钱是存在银行里的,它相当于只是保存了我们的卡号和密码;也是一样,区块链资产是保存在区块链系统中的,钱包只是保管了我们的私钥,并将公钥(地址)显示出来,以便互相交易

——相当于银行卡,请像保管银行卡密码一样,保存好自己的私钥

在李泽言给你转账的时候,完成的是以下过程:

即:

发送方和接收方分别都有一对公钥和私钥,公钥编码后成为地址,可以互相使用地址转账

蓝色是加密传输过程:发送方用接收方的公钥对数据加密,再发送给接收方,接收方用自己的私钥解密,收到交易,可以想象为输入你的银行卡号,你用自己的密码查看交易明细,发现收到一笔钱的过程

红色是身份认证过程:发送方用自己的私钥加密,表明钱是从自己的账户转出,这个过程叫数字签名,你用发送方的公钥成功解密,确认是此人转的钱,可以想象为李泽言输入自己的密码,获得对账户资金的控制权,而你看到银行卡号是李泽言的,于是确认这是李泽言转给你的钱

数字签名可以验证发送方的身份,保证信息是由签名者自己签名发送的,签名者不能否认或难以否认,还能帮助保护数据的完整性,保证信息自签发后到收到为止,未曾做过任何修改

由此也可以得出,公钥由本人公开,用于加密和验证签名,是给别人用的;私钥用来进行解密和签名,是给自己用的

最后整理一些常见问题和解答:

1.我把钱放在交易所了,只有自己设的账号密码,私钥在哪?放在交易所安全吗?

交易所不会给每个用户都设置一个账户,把钱放在交易所相当于把资产托管在交易所的钱包,网站的账户上只是借记一个数字。

放在交易所确实会存在安全隐患,因为黑客在攻击一个交易所的概率,明显比攻击某个单独账户的概率大,收益也更多,另外因为多数交易所是中心化的,可能出现交易所声称被黑客攻击,实则监守自盗,甚至操控用户账户高买低卖等行为。

但是对于大多数人来说,需要经常交易的资产还是放在交易所更为方便,尽量选择靠谱大平台,账户密码不要想泄露出去、二次验证一定不能省。

2.有没有什么钱包软件可以推荐的?

比特币钱包

比特派,http://bitpie.com/;

Blockchain,https://blockchain.info/zh-cn/wallet

以太坊钱包

Imtoken,https://token.im/

除了以太坊,基于以太坊开发的应用代币基本都可以储存在里面

比特股钱包

BitShares-light,https://bitshares.org/download/

Neo(小蚁)钱包

https://neo.org/download

SC钱包

http://sia.tech/apps/

公信宝钱包

https://www.gxb.io/

量子链钱包

Qbao,https://qbao.fund/#/home

3.创建自己钱包的时候,让我备份的Keystore、助记词是什么?

你可以理解为是私钥的不同表现形式。都需要备份,且备份时尽量用纸笔记录下来,可以让家人保管一份,自己保管一份,不要保存在网络上,如云笔记,聊天记录等,如果更换手机电脑,通过他们的备份,可以帮你恢复钱包,否则你在钱包里的资产将会归零。

Keystore:明文私钥通过加密算法加密过后的 JSON 格式的字符串, 一般以文件形式存储。

助记词:12 (或者 15、18、21) 单词构成, 用户可以通过助记词导入钱包, 但反过来讲, 如果他人得到了你的助记词, 不需要任何密码就可以轻而易举的转移你的资产, 所以要妥善保管自己的助记词。

明文私钥:64 位的 16 进制哈希值字符串, 用一句话阐述明文私钥的重要性 "谁掌握了私钥, 谁就掌握了该钱包的使用权!" 同样, 如果他人得到了你的明文私钥, 不需要任何密码就可以轻而易举的转移你的资产。

公钥私钥就讲到这里了

欢迎留言你最想知道的区块链知识

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券