钱包用来存钱的,在区块链中,我们的数字资产都会对应到一个账户地址上,只有拥有账户的钥匙才可以对资产进行消费。
私钥和地址的关系如下:
图来自精通比特币)一句话概括下就是:私钥通过椭圆曲线生成公钥,公钥通过哈希函数生成地址,这两个过程都是单向的。
因此实际上,数字钱包实际是一个管理私钥的工具,注意钱包并不保存资产,资产是在链上的。
如何创建账号
Paysafe宣布其Skrill数字钱包与Coinbase达成合作:3月25日消息,支付平台Paysafe宣布,其Skrill数字钱包已与Coinbase合作,将其加密货币产品扩展到美国。该交易表明,Coinbase为Skrill提供了一种新的加密货币白标解决方案,通过使37个州和地区的客户能够轻松买卖多种加密货币。(BusinessWire)[2021/3/25 19:17:32]
创建账号关键是生成一个私钥,私钥是一个32个字节的数,生成一个私钥在本质上在1到2^256之间选一个数字。因此生成密钥的第一步也是最重要的一步,是要找到足够安全的熵源,即随机性来源,只要选取的结果是不可预测或不可重复的,那么选取数字的具体方法并不重要。
可与实物资产交互的数字钱包TokenBag今日正式上线:据官方消息,可与实物资产交互的数字钱包TokenBag今日正式上线,未来通过TokenBag可以一键完成实物资产的托管、鉴权、提货等。值得一提的是,其IOS版本可内嵌于系统,更加安全便捷。钱包内设矿池功能,用户可轻松质押手中的数字资产赚取收益。
TokenBag作为AT生态中的重要组成部分,已绑定多家资产上链头部机构,实现流量互通。[2020/3/11]
比如可以掷硬币256次,用纸和笔记录正反面并转换为0和1,随机得到的256位二进制数字可作为钱包的私钥。
从编程的角度来看,一般是通过在一个密码学安全的随机源(不建议大家自己去写一个随机数)中取出一长串随机字节,对其使用SHA256哈希算法进行运算,这样就可以方便地产生一个256位的数字。
公告 | Chrome插件型数字钱包Metamask将支持ETC:日前,以太坊经典主管Anthony Lusardi表示,谷歌Chrome浏览器插件型数字钱包Metamask将支持以太坊经典(ETC)。[2018/6/25]
实际过程需要比较下是否小于n-1,我们就有了一个合适的私钥。否则,我们就用另一个随机数再重复一次。这样得到的私钥就可以根据上面的方法进一步生成公钥及地址。
BIP32
钱包也是一个私钥的容器,按照上面的方法,我们可以生成一堆私钥,而每个私钥都需要备份就特别麻烦的。
最早期的比特币钱包就是就是这样,还有一个昵称:“JustaBunchOfKeys(一堆私钥)“
为了解决这种麻烦,就有了BIP32提议:根据一个随机数种子通过分层确定性推导的方式得到n个私钥,这样保存的时候,只需要保存一个种子就可以,私钥可以推导出来,如图:
上图中的孙秘钥就可以用来签发交易。
补充说明下BIP:BitcoinImprovementProposals比特币改进建议,bip32是第32个改进建议。BIP32提案的名字是:HierarchicalDeterministicWallets,就是我们所说的HD钱包。
来分析下这个分层推导的过程,第一步推导主秘钥的过程:
根种子输入到HMAC-SHA512算法中就可以得到一个可用来创造主私钥(m)和一个主链编码及主链编码再加上一个索引号,将作为HMAC-SHA512算法的输入继续衍生出下一层的私钥及链编码,如下图:
衍生推导的方案其实有两个:一个用父私钥推导,一个用父公钥推导。同时为了区分这两种不同的衍生,在索引号也进行了区分,索引号小于2^31用于常规衍生,而2^31到2^32-1之间用于强化衍生,为了方便表示索引号i',表示2^31+i。
因此增加索引及通过子秘钥向下一层可以无限生成私钥。
注意,这个推导过程是确定也是单向的,子密钥不能推导出同层级的兄弟密钥,也不能推出父密钥。如果没有子链码也不能推导出孙密钥。现在我们已经对分层推导有了认识。
一句话概括下BIP32就是:为了避免管理一堆私钥的麻烦提出的分层推导方案。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。