從 Bitcoin Core 27 的 Descriptor wallet 匯出私鑰

Bitcoin Core Descriptor wallet 匯出私鑰





前言不用看

隨著科技的進步與時代的演變,比特幣的發展也跟著日新月異。過去流浪貓曾用手動匯出私鑰以及建立離線 Linux 主機的方式,幫朋友開設比特幣與乙太幣的冷錢包。然而時隔今日,這些教學的某些關鍵步驟卻因軟體版本的升級而失效。


匯出比特幣、乙太幣、多吉幣等加密貨幣私鑰,自製 QR Code 紙錢包


其中最大的改變,莫過於匯出私鑰的方式


舊版 Bitcoin core 可以在 console 主控台內以 dumpprivkey “address…” 的方式匯出該地址的私鑰,但考量到直接暴露私鑰的風險,後來開發團隊便將這個功能拔掉,改成以 Descriptor wallet 儲存私鑰資料。


Bitcoin core 27.0

dumpprivkey "address"
Only legacy wallets are supported by this command (code -4)


面對這個問題,最簡單的方法是用舊版 Bitcoin core 來匯出私鑰。根據相關論壇的高手指出,Bitcoin core 22.0 之前的版本應該都還支援 dumpprivkey 這個指令。


但如果問題這麼好解決,那你就太小看區塊鏈了


因為官方的原生客戶端 Bitcoin core 是全節點錢包 (Fullnode),而目前比特幣的區塊鏈大小約 620 GB 左右 (2025/01),同步不但曠日費時、佔用空間,還要等區塊鏈同步完才能進行收款與匯款。


例如:這次川普狂潮讓你心癢癢,想把放很久的比特幣挖出來當作給自己的年終獎金。結果區塊鏈同步要花一星期的時間,害你只能看著錢包餘額乾瞪眼。等同步跑完,搞不好已經錯失最佳時機。


故普通使用者採全節點錢包作為儲存方案,其實是不太理想的做法。


折衷方法是用輕量錢包、手機 APP、多幣種錢包存放「熱錢」;然後在拔掉網路卡和關閉藍芽的離線主機上開設冷錢包,並備份助記詞或私鑰作為最後防線。


因此,流浪貓將在這篇文章教你:

  • 用 Bitcoin core 匯出 Descriptor wallet 並反查地址的私鑰 
  • 用 Electrum 的 Sweep 功能,將私鑰餘額匯入 Electrum


如此一來,就能繞過原生比特幣錢包的限制,立即匯出該地址的餘款,不用同步到天荒地老。




從 Bitcoin core 反查 Descriptor wallet 私鑰

如前言所述,Bitcoin 開發團隊為了強化隱私與提昇資安層級,因此把新版的 Bitcoin core 匯出私鑰功能拔掉了,只能導出所謂的 Descriptor wallet,所以第一步當然就是把這個東西給匯出來。


  1. 錢包解鎖
walletpassphrase "your_password" 6000


  1. 匯出錢包的地址描述資料
listdescriptors true

終端機會顯示 Descriptor wallet 資料

{
  "wallet_name": "y_name",
  "descriptors": [
    {
      "desc": "pkh(xpr...


  1. 匯出目標地址的關鍵資訊
getaddressinfo "address..."

> "wpkh(xp...xichina/m/0/1/*)#covid19"



  1. Descriptor wallet 找出目標錢包的 BIP39 加密資料

在Descriptor wallet 尋找符合 getaddressinfo 傳回之以下關鍵訊息的描述檔:


  • 與 parent_desc 相同的位址類型:pkh, wpkh, sh, tr
  • hdkeypath:m/0/1/…


例如,從 getaddressinfo 得知,目標地址的類型為 wpkh、hdkeypath 為 m/0/1/。根據這兩個訊息,使用者就能在 Descriptor wallet 找到相對應的 xprv 金鑰。翠習維尼


{"desc": "wpkh(xprv...ypu/m/0/1/*)#4rdqazhj",...

BIP39: xprv...ypu


  1. 用 BIP39 助記詞轉換器反查私鑰

下載並開啟 BIP39 轉換器,在 BIP32 Root Key 欄位輸入 xprv 金鑰,於 Derivation Path 選擇正確的地址類型,例如 p2wpkh 要選用 BIP84 (Native Segwit)。


最後在下方的 Derived Addresses 頁籤就能找到 Address、Public Key 與 Private Key。(建議於離線主機進行操作)




用 Electrum 的 Sweep 將私鑰餘額匯入 Electrum

找到比特幣私鑰之後,用 Electrum 的錢包清掃工具將私鑰內的餘額匯入現有的錢包,記得要加上 WIF 格式 (Wallet Import Format) 才能正常匯入,最後在下方的欄位填寫收款地址,即可將原生 Bitcoin core 私鑰內的比特幣清空,匯入到你指定的地址。


錢包 > 私鑰 > 清掃 (Sweep)


p2pkh:KxZcY47uGp9a...           -> 1DckmggQM...
p2wpkh-p2sh:KxZcY47uGp9a...     -> 3NhNeZQXF...
p2wpkh:KxZcY47uGp9a...          -> bc1q3fjf



d(´∀`)b




延伸閱讀

更多 LikeCoin 教學

更多比特幣與乙太幣教學

更多區塊鏈

更多 Cosmos 區塊鏈

更多加密貨幣教學

更多 Bitcoin

留言

這個網誌中的熱門文章