从Bitcoin Core 导出私钥-出家如初,成佛有余

从Bitcoin Core 导出私钥

区块链 admin 103浏览 0评论

比特币项目官方 提供的 Bitcoin Core 是很多人入门Bitcoin的第一个钱包。但是由于Bitcion Core 钱包与Electrum等钱包遵循的协议(BIP,比特币改进协议)不同,因此围绕Bitcoin Core钱包私钥导出问题产生了一堆。

最近接连有几个人问起:

1、备份了Bitcoin Core的wallet.dat文件,怎样恢复出私钥?

2、将从Bitcoin Core 使用 dumpwallet 或 dumpprivkey 命令得到的私钥(包括密语种子、主密钥extended private masterkey),导入 Electrum等钱包,为何钱包余额为零?

3、怎样从Bitcoin Core 导出私钥,并导入到Electrum 钱包?

 

由于Bitcoin Core 支持BIP32协议,其对应的衍生路径(Derivation Path)为 m/0'/0' , 其对应的地址称之为硬化地址hardened addresses。值得强调的,Bitcoin Core并不支持助记词 mnemonic方案。

Electrum之类的钱包,虽然支持BIP32,但其衍生路径一般为:m/44'/0'/0',因此直接将Bitcoin Core导出的密语种子或主密钥( extended private masterkey)导入到Electrum中,由于衍生路径不同,得到的地址、私钥也不相同,最终表现为钱包余额为零。

 

那么从Bitcoin Core中导出私钥正确姿势是怎样呢?

从备份wallet.dat恢复钱包文件

以下以windows下为例,其他同理。

1、从 Bitcoin.org 下载官方客户端 并安装

请务必从Bitcoin.org 下载Bitcoin Core,以保证资金的安全

2、启动Bitcoin Core图形界面(bitcoin-qt.exe)

3、正常进入后,不用等同步,退出bitcoin-qt

4、将 %appdata%\bitcoin\wallets 下的wallet.dat 重命名 为wallet.dat.orig

这里 %appdata% 是  C:\Users\用户名\AppData\Roaming

请注意,如果不是全新安装的Bitcoin Core,请务必备份 原wallet.dat。

5、拷贝备份的wallet.dat到%appdata%\bitcoin\wallets 下

6、重新启动Bitcoin Core图形界面

导出钱包文件

1、点击菜单项 窗口(Window)->控制台(Console),进入控制台

2、解锁钱包(如果设置了钱包密码,必须先解锁)

walletpassphrase "YOUR_WALLET_PASSWORD" 60

60为解锁钱包60秒

注意,如果设置了密码解锁成功,会提示 null;如果失败,会有错误信息。

3、导出钱包

dumpwallet 'd:\mywallet20210112.txt'
或者
dumpwallet d:/mywallet20210112.txt
或者
dumpwallet d:\\mywallet20210112.txt

注意:由于是console,因此要指定导入路径,或者用单引号”避免转义,或者用 \\转义,或者  用 / 。

 

导出的文件中会包含如下重要信息:

主密钥( extended private masterkey)

# extended private masterkey: xprv9s21ZrQH143K3JQSiGssAtDC3Md3x7XZLA32TcnMvXQFFfLKDrN2QDd8VzFu482kkaFMfKpQLBGRtAi5r7TespySzuTcNTmA2GpP6rYFqN8

 

搜索hdseed=1 为的哪一行,为钱包的密语种子

KxgVjtJV33FmMQun3v98drokcvjh2dvxrS3oHEmMQRV132Y8GQWo 2021-01-12T03:27:05Z hdseed=1 # addr=bc1qyujqnktx2h86zqwzy3ppe9m05aqmfp6slp0pmn

以上例子 KxgVjtJV33FmMQun3v98drokcvjh2dvxrS3oHEmMQRV132Y8GQWo  就是所谓的钱包密语种子,由钱包密语种子可以衍生生成主密钥( extended private masterkey)及其他子私钥、公钥、地址。

 

可以使用Coleman’s BIP39 tool  https://github.com/iancoleman/bip39 验证生成导出文件的相关信息

Coleman’s BIP39 tool 工具中

BIP32 Root Key:输入hdseed

Derivation Path:选择BIP32

ClientBitcoin Core

BIP32 Derivation Path: m/0’/0′

可以看到,在 Derived Addresses 生成的私钥等信息与导出文件完全相同。

 

4、得到对应地址的私钥

如果知道曾经用过的Bitcoin Core的公钥地址,可以直接在导出文件中搜索,对应行的第一列就是对应地址的私钥。

如果不记得对应的地址,要得到最近接收过BTC的活跃地址,可以在console中输入:

listreceivedbyaddress 0 true
listaddressgroupings

 

在Electrum中导入

1、从 Electrum.org 下载 Electrum并安装

2、启动Electrum,创建空钱包

3、在安装向导的“创建新钱包”,选择“导入比特币地址或私钥”

4、在安装向导的“导入比特币地址或私钥”输入框,输入 私钥,稍等同步完,可以看到对应地址的余额,也可以转账。

 

注意:Electrum中,可以直接导入Bitcoin Core的的密语种子、主私钥。

导入方法:

在安装向导的“创建新钱包”,选择“标准钱包”,选择“我已经有一个密语种子”可以导入hdseed=1的密语种子。选择“使用主密钥(主公钥或主私钥)”可以导入主密钥( extended private masterkey)。

当由于衍生路径的不同,导入后生成的私钥和地址,与通过dumpwallet 导入的Bitcoin Core的私钥并不相同。因此如果需要操作原有的地址的余额,请采用“导入比特币地址或私钥”。如果想沿用原有主私钥或密语种子,但使用权限的钱包,可以采用创建“标准钱包”的方案。

 

再次强调一下:以上操作过程,请一定主要备份wallet.da文件,务必保证操作系统安全。

对新手,不熟悉操作,请慎用 Electrum的 Sweep 功能,有很多新手因为通过Sweep 导入私钥到Electrum中,导致永久丢失币。

 

转载请注明:出家如初,成佛有余 » 从Bitcoin Core 导出私钥

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

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