.jpg)
一、什么是公钥、私钥、密码、助记词、Keystore
公钥、私钥、密码、助记词、Keystore是在使用数字货币钱包时,必须要弄清的概念:如果不搞清楚,很可能会造成数字资产的严重损失。
1.公钥:
相当于所属钱包的地址,可理解成银行账户。
公钥的地址可理解成银行卡号,是由公钥通过计算得来,就像银行先给你开户,后给你银行卡卡号。
钱包地址的主要用途是收款,也可以作为转账的凭证,就像别人汇款给你时你需要告诉他银行卡卡号一样。
常见的钱包地址样式:
比特币:普通地址:1开头、隔离见证地址:3开头
以太坊地址:0x开头:(包括基于以太坊平台代币)瑞波币地址:r开头。
莱特币地址:L开头。
2.私钥:
非常重要,相当于银行卡号+银行卡密码。
创建钱包后,输入密码即可导出私钥。私钥是由字母数字组成的字符串,一个钱包地址只有一个私钥且不能修改。私钥要离线保存,不要进行网络传输,可用纸张记录并保存。
主要用途,导入钱包。有了私钥就可以在同系列的任何一款钱包上,输入私钥并设置一个新的密码就可以把之前的A钱包的资产导入B钱包。比如手机丢了,只要你有私钥就可以恢复。
3.密码:
相当于银行卡密码。
在创建数字货币钱包时,需要设置一个密码,一般要求不少于8个字符。
主要用途:①转账时需要输入密码,可理解成你用银行卡给别人转账需要输入密码;②用Keystore导入钱包时,必须输入这个密码。
密码可以进行修改或重置。输入原密码后,就可以直接修改新的密码了;但如果原密码忘记,可以用私钥或是助记词导入钱包,同时设置新的密码。数字货币钱包中,一个钱包在不同手机上可以用不同的密码,彼此相互独立,互不影响。
4.助记词
等于私钥=银行卡号+银行卡密码
由于私钥由64位字符串组成,不便于记录,非常容易抄错,于是就出现了助记词,方便用户记忆和记录。由12个单词组成,每个单词之间有一个空格,助记词和私钥具有同样的功能:只要输入助记词并设置一个新的密码,就可以导入钱包。
一个钱包只有一套助记词且不能修改。助记词只能备份一次,备份后,在钱包中便不会再显示。因此,在备份时一定要抄写下来,防止抄写错误,尽量多次检验。
5.Keystore:
Keystore+密码=私钥=银行卡号+银行卡密码、Keystore≠ 银行卡号
Keystore相当于加密过后的私钥,在导入钱包时,只要输入Keystore和密码,就能进入钱包了。这一点和用私钥或助记词导入钱包不一样,后两者不需要知道原密码,而是直接重置密码。
keystore进行交易转账等钱包操作,必须知道该keystore的密码。keystore的密码是无法更改的,一个keystore对应一个密码。但是可以通过该钱包的助记词,重新生成一个keystore。这个keystore可以用新的密码生成,重新生成新的keystore之后,最好将旧的keystore删除。
总结:
一个数字货币钱包创建完成后,公钥和私钥是成对出现的。公钥,私钥都是由字母,数字组成的较长的字符串。
keystore和助记词可以理解为私钥的另一种表现形式。助记词作为钱包私钥的友好格式,非常方便备份和导入。
地址可以通过私钥、助记词、keystore+密码,导入钱包找回。密码可以通过私钥、助记词,导入钱包重置密码。如果私钥、助记词、Keystore+密码,有一个信息泄漏,别人就可以拥有你钱包的控制权,钱包内的币就会被别人转移走。
私钥通过加密生成公钥,公钥转换一下格式生成地址。私钥可以推导出公钥,公钥可以推导出地址,但无法通过输出地址、公钥推导出私钥。
在生活中,银行开户是“开设银行账户—银行卡号—设置银行卡密码—开户成功
在币圈里,是先设置“密码”(私钥),再得到“银行账户”(公钥),最后给地址。对于钱包安全管理,主要注意防盗和防丢。防止私钥泄露及丢失。
注意事项:
1.关于各种骗局诱导交出私钥、助记词的行为,都要谨慎操作;
2.重视私钥、助记词、Keystore+密码的备份和保存!多重备份,多次备份,多重验证,防止抄写错误。
3.私钥不好备份的情况下,可选用备份助记词,具体根据钱包的备份要求。
4.不要进行联网备份,或通过微信、qq、邮箱等任何第三方工具进行传输发送你的私钥、助记词、keystore。不要截图。
5.备份内容放到安全、妥善的地方,并告诉家人(以防突发事故发生)
数字货币钱包的作用是安全存储资产,这是最重要的!从投资纪律来讲,本金安全是一切的基础。对于理财类的钱包,声称赚取收益高回报等,应该叫“数字资产理财”更恰当。你的资产他们可以随意动用拿去投资。你对资产没有完全的掌控权,如果投资顺利,本息安全,如果投资失败,血本无归。所以,请慎重使用这类钱包,应该注重的是资产的安全和私密性。
二、助记词和私钥有一个就行了吗
一个助记词包括非常多的私钥和私钥对应的公钥。
有一个开源站bip什么的,可以把助记词翻译成各种语言和密钥对。从HD钱包的创建方式可知,要创建一个HD钱包,我们必须首先有一个确定的512bit(64字节)的随机数种子。如果用电脑生成一个64字节的随机数作为种子当然是可以的,但是恐怕谁也记不住。
由于在生成助记词的过程中引入了校验码,所以,助记词如果弄错了,软件可以提示用户输入的助记词可能不对。生成助记词的过程是计算机随机产生的,用户只要记住这些助记词,就可以根据助记词推算出HD钱包的种子。
从助记词算法可知,只要确定了助记词和口令,生成的HD种子就是确定的。如果两个人的助记词相同,那么他们的HD种子也是相同的。这也意味着如果把助记词抄在纸上,一旦泄漏,HD种子就泄漏了。如果在助记词的基础上设置了口令,那么只知道助记词,不知道口令,也是无法推算出HD种子的。
把助记词抄在纸上,口令记在脑子里,这样,泄漏了助记词也不会导致HD种子被泄漏,但要牢牢记住口令。
私钥安全吗:
我们前面提到了私钥是本质是256位的随机数,那么私钥生成的总数为2的256次方。
这个总数听上去好像很普通,但其实已经无法用常见事物来描述了:“一根头发丝儿的直径,尺寸约为50万个原子叠加,私钥的总数接近可观测宇宙中所有原子的数量。”“360个地球上的每一克土地(物质)都变成一个地球,这些地球上所有的水分子数量之和就是私钥的总数。”
所以想通过暴力碰撞去获取特定地址的私钥,难度相当于在辣么多地球上找一个水分子,在浩渺的宇宙中寻找一个原子……而你,连家里钥匙丢了都找不到。虽然私钥可生成范围足够大,但是如果生成私钥的算法有问题,那也会有隐患。比如一个钱包的随机数生成不够随机,那么是有可能给两个用户生成同一组私钥的,这里就比较考验钱包团队的密码学功底了。
三、一文看懂钱包助记词和根私钥的关系
在最近的《区块链核心成员》的课程答疑中,讲师讲的最多的还是加密货币的密码机制。其中有好几个问题是关于私钥和助记词的。比如:
简单地说,私钥就是一个256位的随机数。这个随机数的产生是钱包功能之一。也就是说,钱包内置了密码级别的随机数产生器,保证产生的随机数是没有规律可循的,也就是说不易破解的。注意钱包是在用户终端运行的,产生的私钥就保存在用户终端,不会也不应该上传给钱包公司。这一点非常重要。大家尽量要使用开源的,被公开考验过的钱包软件,保证安全。
进一步说,现在的绝大多数钱包都是确定性钱包,它首先产生一个根私钥,而后根据这个根私钥可以产生无数的派生私钥,我们的钱包地址就是这些派生私钥所对应的公钥经过运算得到的地址。算法是固定的,因此地址也就是固定的。那么,这里,最重要的就是根私钥了。因为有了根私钥,根据固定的算法,就可以求出派生私钥,一切都可以简单地计算出来。
这里注意,根私钥不一定要是256位的。可以是128位,或196位或其他位数,只要强度足够大(一般要求至少128位)就行,而由其计算出来的派生私钥则一定是256位的。
根私钥与助记词是一一对应的关系。也就是说一个根私钥就对应一组助记词,一组助记词也对应一个根私钥。两者可以简单运算出来。
根私钥与助记词之间的对应关系可以查看 BIP39(BIP的意思是比特币的改进建议,BIP39是正式发布的第39号建议)。BIP39是一部字典,这个字典有各种语言版本,我们最感兴趣的就是中文版了。当然还有英文,韩文,德文,法文,日文等等。这个字典什么样呢?很简单,每本字典都是一个模子,都包含2048个常用字(比如中文版)或单词(比如英文版),不多不少,就是2048个。每个字都有一个编号,从0到2047,就这么多。其他啥也没有。
那么这个字典表示什么呢?就是表示一个对应关系,也就是说通过字可以查编号,或者通过编号可以查到字。
好了,学过计算机或者了解2进制的朋友,当然知道2048(0~2047)意味着什么,很简单,就是2的11次方,也就是说11位2进制数可以表示0到2047。其实这就是助记词和根私钥的关系。
也就是说每一个字表示一个11位2进制数,或者说一个11位2进制数通过查字典就知道它表示哪个字。举个例子来说,我们产生了一个128位的根私钥,这样从头开始,每11位11位地分开,这样我们就有了11个11位二进制码,还剩下7位,咋办?好办。把最后7位也凑成11位就行了,差4位就补上。这4位正好可以为128为做校验来保证正确性。整个过程是这样:
那助记词回推私钥也就简单了,这样:
更多细节可以参看我的文章:
数字货币入门之钱包原理及钱包安全
本文来自用户投稿,不代表币大大立场,如若转载,请注明出处:https://czxurui.com/jys/163457.html


发表回复
评论列表(0条)