本文主要内容如下:
关于种子&助记词
什么是哈希算法?有什么性质?
什么是公钥密码?什么是公钥与私钥?
硬件钱包如何用种子生成各种币的钱包的?
分层确定性钱包表示方法与示例
1、关于种子&助记词
什么是种子 | Root Seed
“
种子是一串由随机数生成器生成的随机数。这串随机数可以用来生成钱包中不同种币和不同账户的公私钥对,所以只需备份种子就相当于备份您的所有钱包了。由于网络空间存在各种各样的威胁,备份的私钥不接触电脑和手机等设备是最安全的,所以硬件钱包的备份方法是记在纸上。
”
什么是助记词 | Mnemonic Seed
“
种子是一串很长的随机数,看起来就是一串十六进制值,不利于人进行记录,所以我们用算法将其转化为一串助记词,人们就可以方便进行记录。助记词的产生过程如图:
不同长度的种子对应的单词数量如下表:
总结一下,就是将种子加上校验信息,每11位进行切分,按照得到的数字查询单词表索引得到单词。我们记录的英文单词是有校验信息的,所以不是随意MS个单词就能得到一个种子哦。以上的算法是可逆的,用记录下的助记词可以轻松得出种子。还记得硬件钱包初始化过程中让您记在纸上的那些英文单词吗?它们就相当于种子哦。
2、关于哈希和公私钥
哈希算法 | Hash Algorithm
密码哈希函数是一类数学函数,可以在有限合理的时间内,将任意长度的消息压缩为固定长度的二进制串,其输出值称为哈希值,也称为散列值。
哈希函数的性质:
1. 抗碰撞性
碰撞是与哈希函数相关的重要概念,体现着哈希函数的安全性,所谓碰撞是指两个不同的消息在同一个哈希函数作用下,具有相同的哈希值。哈希函数的安全性是指在现有的计算资源(包括时间、空间、资金等)下,找到一个碰撞是不可行的。
通俗地说,就是很难找到两个具有相同哈希值的不同消息。消息改变,输出的哈希值一般就会改变,哈希值可以看作消息的指纹。即使消息被略微篡改,这个指纹也会发生很大变化。所以哈希值可以用来做完整性校验。
2. 原像不可逆
通俗地说,知道输入值,很容易通过哈希函数计算出哈希值;但知道哈希值,没有办法计算出原来的输入值。
3. 难题友好性
难题友好性指的是没有便捷的方法去产生满足特殊要求的哈希值。
3、公钥密码算法
公钥密码算法