Multibit
如何從 MultiBit HD 中提取私鑰?
在 MultiBit Classic 中是可能的,但我在 MultiBit HD 中找不到。
**警告:**雖然此答案可能是問題中問題的解決方案,但它涉及將您的錢包種子暴露給網際網路上的工具。執行此操作時請務必小心!
無法添加評論,因此擴展 Chris.J 的答案:
以下是我關於如何恢復/重建/重新生成/提取MultiBit HD 使用的所有地址和密鑰的說明:
- 轉到<https://iancoleman.github.io/bip39/>
- 在“BIP39 Mnemonic”欄位中填寫您的 12 個錢包生成詞
- 沒有密碼
- 程式碼:比特幣
- 在派生路徑下,選擇 BIP32 選項卡
- 客戶端:自定義派生路徑
- 外部(接收)地址的派生路徑(複製粘貼此):m/0’/0
- 您的收貨地址現在顯示在頁面末尾。
- 內部(更改)地址的派生路徑(複製粘貼此):m/0’/1
- 您的更改地址現在顯示在頁面末尾。絕對的幸福;)
(在“分層確定性錢包”圖片中找到的解決方案: https ://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki)
如果你有一個不符合 BIP32的 beta7 錢包,你不能使用@chris-j 提出的方法。
對我來說最簡單的方法是連接 MultiBit HD 的簽名功能並將使用的私鑰記錄到控制台:
diff --git a/mbhd-core/src/main/java/org/multibit/hd/core/managers/WalletManager.java b/mbhd-core/src/main/java/org/multibit/hd/core/managers/WalletManager.java index 61979a3..e8a0de1 100644 --- a/mbhd-core/src/main/java/org/multibit/hd/core/managers/WalletManager.java +++ b/mbhd-core/src/main/java/org/multibit/hd/core/managers/WalletManager.java @@ -1753,6 +1753,8 @@ public enum WalletManager implements WalletEventListener { if (signingKey.getKeyCrypter() != null) { KeyParameter aesKey = signingKey.getKeyCrypter().deriveKey(walletPassword); ECKey decryptedSigningKey = signingKey.decrypt(aesKey); + log.info("HACK address: " + signingAddress.toString()); + log.info("HACK private key: " + decryptedSigningKey.getPrivateKeyAsWiF(networkParameters)); String signatureBase64 = decryptedSigningKey.signMessage(messageText); return new SignMessageResult(Optional.of(signatureBase64), true, CoreMessageKey.SIGN_MESSAGE_SUCCESS, null);
我已經按照以下步驟使用 v0.5 對此進行了測試:
- 複製MultiBit HD Git 儲存庫
- 應用上面的更新檔
- 建構項目:
mvn clean dependency:sources install
- 啟動應用程序:
java -jar mbhd-swing/target/multibit-hd.jar
- 轉到工具 -> 簽名消息,然後從您的錢包中輸入您要恢復其私鑰的比特幣地址。按完成。
- 從控制台輸出中讀取比特幣地址和對應的私鑰