结合加密货币钱包发展史,白话讲透私钥、助记词、多链钱包背后的原理
作为web3人,人手必备N个加密货币钱包已经是基操,但是大家在使用时是不是经常会对私钥、助记词、钱包这些名词傻傻分不清楚?虽然靠死记硬背知道了助记词和私钥是绝对不能告诉别人,但是对为什么要这样做的原理却仍然一无所知?
本线程旨在用通俗易懂的方式解释私钥、助记词、多链钱包的原理,不涉及晦涩的专业术语,小白也能看得懂对区块链的简单解释
区块链可以看作一个多人记账的大帐本,区块链里的账户对应的着一个个钱包地址,而区块链里的余额则对应着每个地址上的加密资产数量,是区块链账本里实时记账的结果
私钥=资产的实际控制权
在现实生活中,如果想要从某一个账户取款,需要拿着该账户对应的银行卡并且需要知道该账户的密码才能操作;在区块链中,想要调用某个地址上的资产,同样需要一个凭证,这个凭证就是私钥。所以私钥就相当于银行卡+银行卡密码
在现实世界里,如果银行卡被偷密码被人破解,我们可以通过去银行挂失的方法来冻结账户里的资产,但是在区块链中,没有这样一个大家长的角色,私钥一旦丢失,就意味着永远丧失了对该地址的控制权。因为一个地址只对应着一个私钥,而私钥是不可以被修改或替换的
有了私钥,通过一系列的加密算法可以推导出该私钥对应的地址,这个过程是不可逆的,所以根据地址是无法推导出对应的私钥,这也是我们可以放心的把地址告诉别人,让别人给我们转账的原因
加密钱包的发展史
(1)和存储多个私钥因为私钥控制着钱包里的加密货币资产,所以保管资产本质上就是保管私钥。与其说钱包是储存加密货币资产的工具,不如说钱包是一个生成和存储私钥的工具
一个种子推导多个私钥
不过私钥是一串长且无规律的字符,如果为了安全要有多个地址,就需要生成多个私钥,这就意味着必须把每一个私钥都备份好,否则一旦钱包不可访问时,钱包所控制的资金就付之东流。而私钥的备份和管理是比较麻烦的,因为一不小心就容易搞错
用助记词的方式备份多个私钥
BIP32可以保存一个随机数种子,而不是一堆私钥,但是对于大部分用户来讲,要记录并保存一大串字符仍然非常不友好,这就促使了BIP39的出现,引入助记词生成种子的办法:先随机生成助记词,通过助记词可以推导出种子,只要记住助记词,就相当于备份全部私钥
支持多个币种
在BIP32和BIP39生效后,比特币钱包可以通过备份助记词的方式来备份关联的一大堆私钥,这种方法简单且用户友好,其他的加密货币也想仿效,于是就有了BIP44提案。BIP44提案是为了BIP32提案提出的分层生成私钥的方法制定了一个规范的表述路径,这个规范中也支持了多个币种
该规范包含5个预定义树状层级的结构:m/purpose'/coin_type'/account'/change/address_index其中,m和Purpose是固定的;coin是币种,0代表比特币,60代表以太坊,其他的币种也有自己的代表数字,可以通过查询币种列表地址获得
简单总结3个提案的要点:BIP32提出了分层推导方案,可以用一个种子管理多个私钥BIP39通过定义助记词让种子的备份更友好BIP44给BIP32的分层增强了路径定义规范,同时增加了对多币种的支持
为什么一个钱包的助记词可以导入另外的钱包?目前主流的加密货币钱包基本都遵循BIP32、BIP39和BIP44等标准,所以在一个钱包里生成的助记词导入其他钱包也可以正常使用
为什么有时导入助记词或私钥后看不到原来的资产?因为BIP44协议生成的私钥实际上是包含着对应链的参数信息,所以尽管同一套助记词可以通过生成不同链的对应私钥的方式来同时管理多条链上的对应地址和资产,但是不同链生成的私钥是不同的,由此推导出的地址也是不同的
所以如果把通过某一套助记词推导出来的某个链上的私钥导入到不支持该链的钱包中的话,或者把这套助记词导入到没有创建的某个链的钱包里的话,就会发生错误
所以,当我们打算利用助记词或者私钥导入其他的钱包的时候,一定要先确认要导入的钱包是否可以支持原来生成的助记词和私钥所在的链,如果是一致的话,就可以正常导入,如果不一致,则需要更换可以支持的钱包来进行导入
在加密行业你想抓住下一波牛市机会你得有一个优质圈子,大家就能抱团取暖,保持洞察力。如果只是你一个人,四顾茫然,发现一个人都没有,想在这个行业里面坚持下来其实是很难的。
想抱团取暖,或者有疑惑的,欢迎加入我们——共重号:开舒克的老陈
感谢阅读,喜欢的朋友可以点个赞关注哦,我们下期再见!
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。