美文网首页
Bytomd 助记词恢复密钥体验指南

Bytomd 助记词恢复密钥体验指南

作者: 比原链Bytom | 来源:发表于2018-10-08 10:21 被阅读0次

比原项目仓库:

Github地址:https://github.com/Bytom/bytom

Gitee地址:https://gitee.com/BytomBlockchain/bytom

背景知识

Bytom 使用的 密钥类型为基于 ed25519chainkd.XPub

预备

代码修改

首先适当修改代码,添加一些打印输出,使得我们更好的进行验证。 如果只是想看 xpub ,而不关心 xprv(对于验证导入导出助记词功能来说已经够了)的话可以跳过这一步,不必修改源码

bytom/blockchain/pseudohsm/pseudohsm.go 中的

func (h *HSM) createKeyFromMnemonic(alias string, auth string, mnemonic string) (*XPub, error)

添加输出打印 root XPub 对应的 私钥 和 公钥

func (h *HSM) createKeyFromMnemonic(alias string, auth string, mnemonic string) (*XPub, error) {
    // Generate a Bip32 HD wallet for the mnemonic and a user supplied password
    seed := mnem.NewSeed(mnemonic, "")
    xprv, xpub, err := chainkd.NewXKeys(bytes.NewBuffer(seed))
    if err != nil {
        return nil, err
    }
        
    fmt.Println(hex.EncodeToString(xprv[:])) // Add info printing
    fmt.Println(hex.EncodeToString(xpub[:])) // Add info printing

    id := uuid.NewRandom()
    key := &XKey{
        ID:      id,
        KeyType: "bytom_kd",
        XPub:    xpub,
        XPrv:    xprv,
        Alias:   alias,
    }
    file := h.keyStore.JoinPath(keyFileName(key.ID.String()))
    if err := h.keyStore.StoreKey(file, key, auth); err != nil {
        return nil, errors.Wrap(err, "storing keys")
    }

    return &XPub{XPub: xpub, Alias: alias, File: file}, nil
}

工具准备

因为 bytomd 目前 dashboard 钱包图形界面还没有助记词相关功能,我们需要准备工具使用 POST 请求来使用。比如 curl 或者 postman

获取密钥对应助记词

dashboard 目前还没有 从 密钥导出助记词的功能,现有只是在创建密钥时有助记词相应输出信息。可以修改源码在查看密钥时 打印对应助记词。

因为只是测试,这里为了方便,直接查看在创建密钥时返回的助记词。

对 bytomd 发起 post 请求 /create-key

{
  "alias": "create_key_test",
  "password": "createkeytest",
  "language": "en"
}

可以看到 响应中 显示了 xpub 和 助记词

由于修改了源码,添加了打印信息,bytomd 命令行也打印出了相印的 xprv 和 xpub

步骤

如何通过导入助记词恢复密钥呢?

假设目前 已经有一个 xprv

50db5bfe21b08462972eadbce08ec92d078a45fa7a280d175a823f9e457faf447d1f501b69f895b830138fabc6f91e2b3b3c8df26642a34be4af27886b9134dc

对应的 助记词为

pudding
room
business
river
pattern
box
snap
merit
unfold
speak
hat
task

发起 post 请求 /create-key

{
  "alias": "nnemonic_test",
  "password": "nnemonicnnemonic",
  "nnemonic": "pudding room business river pattern box snap merit unfold speak hat task",
  "language": "en"
}

返回相应:

bytomd 输出

可以看到,恢复出来的 xprv 和 我们本来的 xprv 一致,验证成功。

dashaboard 中也能见到我们恢复的 密钥。

相关文章

  • Bytomd 助记词恢复密钥体验指南

    比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:h...

  • 【斑马钱包】恢复教程

    一、恢复钱包 1.打开【斑马钱包】,单击【恢复钱包】 2.进入【助记词】恢复界面 二、输入【助记词】 1.单击切换...

  • 如何通过助记词恢复钱包

    在创建数字资产钱包的时候,除了创建一个新的数字资产钱包,还可以通过助记词恢复钱包,但是通过助记词恢复钱包之前,需要...

  • breadwallet-助记词恢复

    1.清空目前的数据(keystore&sp) 2.保存新的助记词到keystore,当然是加密保存 3.根据助记词...

  • ETH2GO攻略: DAppNode分步自学指南

    DAppNode分步指南 使用官方的以太坊启动板生成助记符和验证器密钥库,以验证DAppNode上的以太坊2。 自...

  • 密码管理:keepass+玩客云+两部手机+打印机

    自从2017年3月进入币圈,交易密码、登录密码、keystore、密钥、助记词、Google两步验证密码等越来越多...

  • Wallet钱包

    一.区块链钱包 BIP39 用于生成确定性密钥的助记词(Mnemonic Phrase)BIP44 确定性钱包的多...

  • 给MetaMask导入助记词,恢复账号

    去年7月创建的MetaMask,存了一些ETH。已经过去半年了,我想恢复账号该怎么做呢? 步骤: 在chrome ...

  • ETH钱包助记词、私钥、Keystore以及创建过程

    助记词 助记词拥有钱包的所有权,可以通过助记词随意转移该钱包下的资产而无需密码。助记词可以生成很多子钱包,目前大部...

  • 助记词

    助记词是明文私钥的另一种表现形式, 最早是由 BIP39 提案提出, 其目的是为了帮助用户记忆复杂的私钥 (64位...

网友评论

      本文标题:Bytomd 助记词恢复密钥体验指南

      本文链接:https://www.haomeiwen.com/subject/yjydaftx.html