附录7、比特币浏览器命令

    更多信息参见 和 Bitcoin Explorer user documentation

    bx命令使用示例

    我们来看一些使用Bitcoin Explorer命令来测试密钥和地址的例子。

    使用种子命令生成随机“种子”值,该种子命令使用操作系统的随机数生成器。 将种子传递到ec-new命令以生成新的私钥。 我们将标准输出保存到文件private_key中:

    1. $ cat private_key
    2. 73096ed11ab9f1db6135857958ece7d73ea7c30862145bcc4bbc7649075de474
    1. $ bx ec-to-public < private_key > public_key
    2. $ cat public_key
    3. 02fca46a6006a62dfdd2dbb2149359d0d97a04f430f12a7626dd409256c12be500

    我们可以使用ec-to-address命令将public_key重新格式化为一个地址。 我们将public_key传递给标准输入:

    以这种方式产生的密钥产生零型非确定性钱包。 这意味着每个密钥都是由一个独立的种子生成的。 Bitcoin Explorer命令也可以根据BIP-32确定性地生成密钥。 在这种情况下,从种子创建“主”键,然后确定性地扩展以产生一个子项的树,从而产生一个2类确定性钱包。

    首先,我们使用seed和hd-new命令生成一个主密钥,该密钥将被用作导出密钥层次结构的基础:

    1. $ bx seed > seed
    2. $ cat seed
    3. eb68ee9f3df6bd4441a9feadec179ff1
    4. $ cat master
    5. xprv9s21ZrQH143K2BEhMYpNQoUvAgiEjArAVaZaCTgsaGe6LsAnwubeiTcDzd23mAoyizm9cApe51gNfLMkBqkYoWWMCRwzfuJk8RwF1SVEpAQ

    我们现在使用hd-private命令在帐户中生成一个强化的“帐户”键和两个私钥序列:

    1. $ bx hd-private --hard < master > account
    2. $ cat account
    3. xprv9vkDLt81dTKjwHB8fsVB5QK8cGnzveChzSrtCfvu3aMWvQaThp59ueufuyQ8Qi3qpjk4aKsbmbfxwcgS8PYbgoR2NWHeLyvg4DhoEE68A1n
    4. $ bx hd-private --index 0 < account
    5. xprv9xHfb6w1vX9xgZyPNXVgAhPxSsEkeRcPHEUV5iJcVEsuUEACvR3NRY3fpGhcnBiDbvG4LgndirDsia1e9F3DWPkX7Tp1V1u97HKG1FJwUpU
    6. $ bx hd-private --index 1 < account
    7. xprv9xHfb6w1vX9xjc8XbN4GN86jzNAZ6xHEqYxzbLB4fzHFd6VqCLPGRZFsdjsuMVERadbgDbziCRJru9n6tzEWrASVpEdrZrFidt1RDfn4yA3

    公钥也可以使用hd-to-public命令从其相应的私钥派生:

    1. $ bx hd-private --index 0 < account | bx hd-to-public
    2. xpub6BH1zcTuktiFu43rUZ2gXqLgzu5F3tLEeTQ5t6iE3aQtM2VMTxMcyLN9fYHiGhGpQe9QQYmqL2eYPFJ3vezHz5wzaSW4FiGrseNDR4LKqTy
    3. $ bx hd-private --index 1 < account | bx hd-to-public
    4. xpub6BH1zcTuktiFx6CzhPbGjG3UYQ13WR16CmtbPiagEKpEVtpyjshWyMaMV1cn7nUPUkgQHPVXJVqsrA8xWbGQDhohEcDFTEYMvYzwRD7Juf8

    我们可以在确定性链中产生几乎无限数量的密钥,全部来源于单个种子。 这种技术用于许多钱包应用程序中以生成可以使用单个种子值进行备份和恢复的密钥。 每次创建一个新的密钥时,这比将其所有随机生成的密钥备份在一起更容易。

    可以使用助记符编码命令对种子进行编码:

    1. $ bx hd-mnemonic < seed > words

    然后可以使用mnemonic-decode命令对种子进行解码: