欢迎光临
我们一直在努力

[tp钱包怎么买币]HD钱包怎么使用?HD钱包及其创建过程的精华总结

HD钱包怎么使用?HD钱包及其创建过程的精华总结HD钱包怎么使用?创建钱包及其重要的几个都写完了,但总感觉还缺少一些什么,到底缺少什么呢?在重新读过几边之后,才发现通过前面几篇文章还是不能把一切连贯起来,所以又补写了本


HD钱包怎么使用?HD钱包及其创建过程的精华总结

HD钱包怎么使用?创建钱包及其重要的几个都写完了,但总感觉还缺少一些什么,到底缺少什么呢?在重新读过几边之后,才发现通过前面几篇文章还是不能把一切连贯起来,所以又补写了本篇,作为创建钱包的补充说明。

首先说明,下文中说的 hash160 字符串指的是私钥或公钥的内容通过双重哈希算法(行 SHA256.再 RIPEMD160)生成的长度为 20 个字节的字符串。

钱包是 keystore 的扩展,管理着交易和余额,提供创建交易的能力。它有几个特别重要的属性,现在讲解如下:

hdChain,HD 数据模型,它包含了一个 hash160 的种子,一个内部链的数量和一个外部链的数量。

setInternalKeyPool,内部密钥池的集合。

setExternalKeyPool,外部密钥池的集合。

set_pre_split_keypool,一个预分割的密钥池集合。

m_max_keypool_index,最大密钥池的索引。

m_pool_key_to_index

mapKeyMetadata,公钥元数据的映射集合。键为一个 hash160 字符串,值为一个公钥元数据。

m_script_metadata

mapMasterKeys,

mapWallet

mapAddressBook

钱包说完了,我们来看 keystore。keystore 顾名思议它代表了密钥的存储,自然而然提供了一些管理密钥的方法,比如:添加一个密钥(私钥和公钥)到 store中、检查给定地址对应的密钥是否在 store中、添加及检查一般脚本与只读脚本的功能等。根据是否加密,keystore 分为基础的和加密的两种。钱包继承自加密的 keystore,而加密的 keystore 又继承了基础的 keystore。

我们先来看下 基础 keystore ,它有以下几个重要的属性:

mapKeys,一个私钥映射集合。键为一个 hash160 字符串,值为一个私钥。

mapWatchKeys,一个只读的公钥映射集合。键为一个 hash160 字符串,值为一个公钥。

mapScripts,一个脚本映射集合。键为一个 hash160 字符串,值为一个用在交易输入和输出的序列化的脚本。

setWatchOnly,一个用在交易输入和输出的序列化的脚本集合。

加密 keystore 在基础 keystore 上增加了几个与加密相关的属性,它们分别为:

fUseCrypto,一个标志钱包是否为加密的变量。

vMasterKey,一个在加密情况下使用的私钥集合。当加密时 mapKeys 集合就会为空,而 vMasterKey 集合不空;当不加密时,情况正好反过来,即 mapKeys 集合不空,而 vMasterKey 集合为空。

mapCryptedKeys,一个映射集合。键为一个 hash160 字符串,值为一个公钥和加密后私钥组成的 pair 。

说完钱包与 keystore,接下来我们就来看下密钥池。其实密钥池这个名字不准确,因为它仅包含了一个公钥,初次之外,还包含了两个布尔变量:fInternal、m_pre_split,前者表示密钥池是内部还是外部的,后者功能暂时不清楚,英语备注为:For keys generated before keypool split upgrade。m_pre_split 属性默认为假。

当创建钱包时,会执行如下几个动作:

首先,生成一个私钥,根据私钥通过椭圆曲线算法生成对应的公钥;

其次,也会生成对应的密钥元数据,并且把公钥的内容用 hash160 (先 SHA256.再RIPEMD160)算法生成的 20个字节的字符串保存为密钥元数据的种子,然后把私钥元数据保存在 mapKeyMetadata 集合中;

然后,私钥被保存在 mapKeys,或 mapCryptedKeys 与 vMasterKey 集合中;当公钥是压缩的(通常是)时,通过公钥生成脚本,脚本进而被保存在 mapScripts 集合中;同时,私钥、公钥及密钥元数据都被保存在数据库中。

再然后,公钥被作为种子,生成 HD 链对象,保存在钱包中。

最后,当前面一切完成后,使用前面 3步生成的公钥做为种子,开始衍生用户指定数量的子私钥/公钥对,如果用户没有指定则默认衍生 3000 个子私钥/公钥对。

衍生的私钥、公钥及元数据的处理与第 2、3 步相同;

同时,用公钥生成的密钥池也被保存在数据库中;

根据生成的私钥属于内部或外部,对应的索引保存在 setInternalKeyPool、或 setExternalKeyPool 集合中;不区分地,索引被保存在 m_pool_key_to_index 映射集合中,其中键为公钥对应的 hash160 字符串。

其中,2000 个子私钥的路径从 m/0 /0 /0 到 m/0 /0 /1999.1000 个子私钥的路径从 m/0 /1 /0 到 m/0 /1 /999.其中的 m 代表私钥,m/0 代表主私钥的第 1 个强化子私钥,m/0 /0 /0 代表主私钥的第 1 个强化子私钥的外部链的第 1 个强化孙私钥,同理,m/0 /0 /1999 代表主私钥的第 1 个强化子私钥的外部链的第 1999 个强化孙私钥;m/0 /1 /0 代表主私钥的第 1 个强化子私钥的内部链的第 1 个强化孙私钥,同理,m/0 /1 /999 代表主私钥的第 1 个强化子私钥的内部链的第 999 个强化孙私钥。

在上面过程中,1-3 步是 GenerateNewSeed 方法的主要内容,第 4 步是 SetHDSeed 的主要内容,第 5 步是 TopUpKeyPool 的主要内容。

最后,用两张图来概述 HD 钱包的创建。

\"HD钱包怎么使用?HD钱包及其创建过程的精华总结\"

创建钱包

\"HD钱包怎么使用?HD钱包及其创建过程的精华总结\"

希望全面深入的了解币圈炒币、打新币、以及挖矿收益的问题,那么可以添加我们币大师的官方微信进行更加详细深入的沟通和交流,同时我们币大师可以邀请大家进入我们的官方社群进行深入学习和交流,群里也有非常多的一级市场的粉丝币友们,他们有的是行业大咖和职业玩家,经验知识都是非常丰富的,可以给大家解疑答惑。快联系我们的客服申请加入吧。

免责声明: 文章源于会员发布,不作为任何投资建议

如有侵权请联系我们删除,本文链接:https://www.99hufu.com/zixun/172088.html

abo全称bikac20crypto交易所现在挖矿能赚到钱吗
赞 (0)

有币以后需要防范哪些事?需要学习哪些防范措施? 有币以后需要防范哪些事?现在应该挺多人拥有币了,不论是去交易所买的,还是挖矿得到的又或者是去撸羊毛与抢空投。那么现在有了币,我们应该具备哪些知识与防范呢?比特币钱包1.


柴犬币值得投资吗?前景如何?2021年,可以说是币圈动荡比较厉害的一年,其中马斯克的原因还是占比比较大的,甚至因为马斯克虚拟货币的价格起伏波动非常的大,很多数字货币因此而价格上涨,比如说本文要说的柴犬币,毕竟柴犬币就是因马斯


每天有9000万美元流入,比特币价格就能10万美元现实吗?每天有9000万美元流入,比特币价格就能10万美元现实吗?如果比特币每天吸收9000万美元,比特币的价格可以达到100.000美元并保持稳定,摩根溪首席执行官MarkYusko和交易员PeterBrandt等行业高管和著名的技术分析师预测,比特币


币圈子分析:为什么说比特币是最值得持有的虚拟货币?为什么说比特币是最值得持有的虚拟货币?当谈到比特币时,很多人都会说比特币是最值得持有的虚拟货币,我每天都会得到一些这种情绪的版本,我会跟别人谈谈购买加密货币: 我错过了。太晚了。 这篇帖子已经在我身上酝酿了一段时间。所有那些感受到FOMO严重情况的外观,比特币和加密货币已


时代杂志TIME将在资产负债表中持有比特币并接受BTC订阅支付今日(13)凌晨,灰度(Grayscale)执行长索南夏恩(MichaelSonnenshein)于推特上发文透露,《时代》杂志正朝着加密货币采用的方向迈出更大一步。《时代》是全球最知名的出版物之一,至今已经有长达98年的


未经允许不得转载:tp钱包官网|TokenPocket钱包官方下载|TokenPocket最新版本|TP钱包官网版v6.0.6 » [tp钱包怎么买币]HD钱包怎么使用?HD钱包及其创建过程的精华总结
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

大前端WP主题 更专业 更方便

联系我们联系我们