HD 钱包的普通子钱包创建算法与不安全性的简单介绍——对《精通比特币》第五章的补充
起因
在阅读 《精通比特币》第二版 第五章 钱包 的时候,发现扩展父私钥创建子私钥与扩展父公钥以创建子公钥的两图中,HMAC-SHA512 的三个输入是完全相同的,都为父公钥、父链码和索引号,并且将结果的左 256 位分别作为了子私钥与子公钥。对于这两张图,我就产生了几个疑惑:
- 为什么用相同的参数生成的两个相同的数在两个场景中可以分别作为私钥和公钥?
- 图上父私钥、父公钥到子私钥、子公钥的连线是什么意思?
- 如果子私钥和子公钥不同,如何能确保它们是配对的?
后来发现这些问题都源于漏看文章的几句话以及文章没有对算法进行详述。(捂脸