HPB-Wallet:HPB钱包助记词生成和备份

助 记 词 生 成

1 BIP32, BIP39, BIP44

  • BIP32:定义 Hierarchical Deterministic wallet (简称 “HD Wallet”),是一个系统可以从单一个 seed 产生一树状结构储存多组 keypairs(私钥和公钥)。好处是可以方便的备份、转移到其他相容装置(因为都只需要 seed),以及分层的权限控制等。

  • BIP39:将 seed 用方便记忆和书写的单字表示。一般由 12 个单词组成,称为 mnemonic code(phrase),中文称为助记词或助记码。例如:

rose rocket invest real refuse margin festival danger anger border idle brown
  • BIP44:基于 BIP32 的系统,赋予树状结构中的各层特殊的意义。让同一个 seed 可以支持多币种、多帐户等。各层定义如下:

m / purpose' / coin_type' / account' / change / address_index

其中的 purporse’ 固定是 44’,代表使用 BIP44。而 coin_type’ 用来表示不同币种,例如 Bitcoin 就是 0’,Ethereum 是 60’。

2 助记词生成

HPB Wallet目前使用的BIP39,将64位私钥变化为12个单词的形式便于记忆。

打开BIP39.swift文件,可以通过调用下面方法,随机生成一个助记词:

static public func generateMnemonics(bitsOfEntropy: Int, language: BIP39Language = BIP39Language.english) throws -> String? {guard bitsOfEntropy >= 128 && bitsOfEntropy <= 256 && bitsOfEntropy % 32 == 0 else {return nil}guard let entropy = Data.randomBytes(length: bitsOfEntropy/8) else {throw AbstractKeystoreError.noEntropyError}return BIP39.generateMnemonicsFromEntropy(entropy: entropy, language: language)}     

可以根据助记词去获取seed,然后通过sha256得到明文私钥。

let seed = BIP39.seedFromMmemonics(mnemonic, language: BIP39Language.english)let privateKey = seed.sha256()

2.1 助记词备份

拥有助记词就可以掌控这个账户,因此助记词生成后,要提醒用户去备份助记词。对于去中心化的APP,用户备份后要从本地删除,用户备份之前可以加密存放在本地。

作者:感谢HPB Wallet 开发团队整理供稿。

更多技术咨询

1.如果你想了解更多关于钱包Xcode的技术文章,请访问:

HPB-Wallet:HPB钱包Xcode集成

2.如果你想了解更多关于钱包的技术文章,请访问:

HPB-Wallet:HPB钱包简介

3.如果你想了解更多关于HPB的技术信息,请访问我们的GitHub WiKi:

HPB WiKi of GitHub

4.如果你想获得更多HPB信息,请关注我们的官方网站:

HPB Website

HPB-Wallet:HPB钱包助记词生成和备份相关推荐

  1. HPB钱包助记词生成和备份

    助记词生成 1 BIP32, BIP39, BIP44 BIP32:定义 Hierarchical Deterministic wallet (简称 "HD Wallet"),是一 ...

  2. 数字钱包助记词生成公私钥流程分析

    salt : 通过生成一些随机的文本将其附加到密码上来生成 Hash, 主要目的是用来防止预先被计算好的彩虹表攻击. 1.助记词根据生成流程,可看数字钱包助记词生成浅析,返推算出随机byte数组. 2 ...

  3. 1.16. BIP39协议:使用助记词生成确定性钱包

    以太坊系统学习教程: https://www.netkiller.cn/blockchain/bip39.html 1.16. BIP39协议:使用助记词生成确定性钱包 BIP:39 层:应用层 标题 ...

  4. android web3j 代币查询_wallet-eth 以太坊代币钱包 助记词 私钥 keystore 转账

    wallet-eth-android wallet-eth 以太坊代币钱包 助记词 私钥 keystore 转账(bip39.bip32.bip44.web3j) 生成钱包地址 // 生成钱包地址 W ...

  5. coldwallet java eth_wallet-eth 以太坊代币钱包 助记词 私钥 keystore 转账

    wallet-eth-android wallet-eth 以太坊代币钱包 助记词 私钥 keystore 转账(bip39.bip32.bip44.web3j) 生成钱包地址 // 生成钱包地址 W ...

  6. 比特币/以太坊/加密货币/网络/区块链/钱包助记词:密码学的角度上,24个单词比12个单词更安全吗

    我们从密码学角度来聊聊助记词. 随着区块链钱包的发展和分层确定性(HD)钱包技术的普及,越来越多的用户开始熟悉了一个叫"助记词"的概念,很多人都已经习惯了从一开始使用一个钱包的时候 ...

  7. 开源项目event-stream被注入恶意代码,盗取区块链钱包助记词

    我是今天上午朋友说的时候才发现的这个问题, 这篇推文及其附带的 GitHub 链接大体是说每周 npm 下载量超过 200 万的 package 被注入了恶意代码,黑客利用该恶意代码访问热门 Java ...

  8. 数字货币钱包 HD Wallet的助记词和种子的生成原理(BIP39)

    BIP39描述了如何生成助记符,并将其转换为二进制种子.该种子可以生成确定性钱包.    如何生层助记词 我们先看看助记词范围--单词表.生成助记词的过程就是这个表里(2048个单词,记住这个数值)选 ...

  9. 使用ethers.js创建以太坊HD钱包(生成BIP-039 + BIP-044钱包),在根据私钥、助记词找回钱包!

    一.什么是ethers.js ethers.js库旨在成为一个完整而紧凑的库,用于与以太坊区块链及其生态系统进行交互.它最初设计用于ethers.io,后来扩展为更通用的库.官方链接:https:// ...

最新文章

  1. kubelet配置cni插件_kubernetes网络插件对比分析(flannel、calico、weave)
  2. 用apxs来扩增apache的模块
  3. bat 安装mysql_免安装版Mysql一键部署bat文档的方法
  4. Linux /etc/profile文件详解
  5. 二叉树前序遍历、中序遍历、后序遍历手稿
  6. 使用maven的profile区分本地环境和线上环境
  7. ccie计算机网络英语,最新版CCIE Voice 语音方向 WOLF实验全套语音课程(含版本)...
  8. python第一个程序--hello world
  9. div常用效果方法-transform
  10. python图片拼接算法实现_python实现单张图像拼接与批量图片拼接
  11. PHP最好的培训学校-兄弟连IT教育
  12. 03-链表(Linked List)应用分析
  13. (迁)rsync:基本命令和用法
  14. Android基于高德SDK的开发——自定义地图主题样式(悬浮按钮+底部弹窗)
  15. Android高德地图的定位
  16. vue接收后台返回的验证码图片
  17. Django 框架学习经验分享
  18. 【gnuradio 仿真音频数据ASK调制和解调】
  19. TeeChart 商业版 [2022.4.8] TeeChart.NET 专业版
  20. Android布局优化之ViewStub、include、merge使用与源码分析

热门文章

  1. 2019湖湘杯 misc3 之miscmisc
  2. 美的不可控温小烤箱 MT10AH-AA 烤箱简易改造——15块钱增加控温系统
  3. 计算机应用基础精品课程申报表,《计算机应用基础》精品课程申报书(修改意见).doc...
  4. 10G/40G/100G光模块的类型和应用
  5. TCP/IP的三次握手
  6. java实现网站错别字搜索对的结果_自媒体文章错别字检测工具,给你检查文章错别字,方便又省事...
  7. 首批国家文化和旅游消费试点城市如何建?各地应当这样部署
  8. pytest+websocket自动化集成实践
  9. vb 获取计算机序列号,VB获得硬盘序列号的方法
  10. 2021年广东各市软考证书领取时间