Как вы можете извлечь закрытые ключи из MultiBit HD?

Это было возможно в MultiBit Classic , но я не могу найти его в MultiBit HD.

Можно ли написать более подробное объяснение ответа Redee? Может ли кто-нибудь объяснить, как применить патч и собрать проект? Я пробовал много других вариантов, но, похоже, ничего не работает для меня. Заранее спасибо.
Я думал, что смысл HD-кошельков в том, что вам нужно только слово seed, чтобы восстановить все закрытые ключи, которые вы когда-либо использовали. Зачем вам нужен их список, когда вы можете (повторно) генерировать их по запросу?

Ответы (5)

ПРЕДУПРЕЖДЕНИЕ. Хотя этот ответ может быть решением проблемы, описанной в вопросе, он включает в себя раскрытие сидов вашего кошелька для инструмента в Интернете. Пожалуйста, будьте очень осторожны при этом!


Не могу добавлять комментарии, поэтому расширьте ответ 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 на картинке «Иерархические детерминированные кошельки»)

Пригвоздил это, другое руководство не объяснило, что адреса изменения находятся на другом пути вывода. Спасибо - это дало мне доступ к моим биткойн-кэшам, которые я хотел «заявить»
Местный инструмент bip39 был бы удобен.

Если у вас есть кошелек beta7, не совместимый с BIP32 , вы не можете использовать метод, предложенный @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, выполнив следующие действия:

  1. Клонируйте репозиторий MultiBit HD Git
  2. Примените патч выше
  3. Соберите проект:mvn clean dependency:sources install
  4. Запустите приложение:java -jar mbhd-swing/target/multibit-hd.jar
  5. Перейдите в Инструменты -> Подписать сообщение и введите биткойн-адрес из вашего кошелька, для которого вы хотите восстановить закрытый ключ. Нажмите «Готово».
  6. Прочитайте биткойн-адрес и соответствующий закрытый ключ из вывода консоли.
Это может быть слишком сложно для людей, которые просто используют биткойны для бизнеса.
Ты мой спаситель, @redee! Я успешно использовал этот метод в v0.5.1, чтобы извлечь свой закрытый ключ для импорта в Omniwallet, чтобы я мог переводить цветные монеты в другой кошелек, который их правильно поддерживает. Номера строк немного изменились, но тот же код работал нормально :D О, и мне пришлось использовать кнопку «Подписать сообщение», чтобы получить вывод, а не просто нажать «Готово».
Спасибо, реди, хорошие инструкции - смог перевести свои деньги на другой кошелек (Jaxx) после того, как Multibit показал мои транзакции как неподтвержденные (в течение 8 месяцев), поэтому я не мог перевести их куда-либо еще.

Поскольку закрытые ключи и адреса создаются детерминированным образом из слов вашего кошелька, вам просто нужно сохранить слова вашего кошелька в безопасности — нет необходимости раскрывать отдельные закрытые ключи. Вы можете использовать слова своего кошелька, чтобы воссоздать свой кошелек либо в MultiBit HD (используйте кнопку «Восстановить» на экране «Введите пароль»), либо с помощью других инструментов.

Например, вы можете создать автономную копию https://dcpos.github.io/bip39/ и создать все свои адреса/закрытые ключи, если хотите (используйте вкладку BIP32).

В MultiBit HD нет возможности экспортировать закрытые ключи, потому что кошельки BIP32 создают как принимающие адреса, так и изменяющие адреса по запросу. Экспорт и импорт приватных ключей, как правило, не даст вам полноценный HD-кошелек.

В MultiBit HD нельзя извлечь приватные ключи, но можно ли это сделать в другом приложении?
На самом деле есть дюжина причин, по которым нам нужны закрытые ключи для одного адреса.
Эта страница, кажется, создает все мои адреса получения, но не адреса изменения.
А как насчет того, когда нам нужно получить доступ к нашим закрытым ключам для хард-форка?

ПРЕДУПРЕЖДЕНИЕ. Хотя этот ответ может быть решением проблемы, описанной в вопросе, он включает в себя раскрытие сидов вашего кошелька для инструмента в Интернете. Пожалуйста, будьте очень осторожны при этом, так как

  1. ...просто НЕ ДЕЛАЙТЕ ЭТОГО!
  2. См. 1.
  3. Вероятно, вы недостаточно хорошо знаете человека, стоящего за веб-страницей, чтобы доверить ему свои драгоценные биткойны.
  4. Даже если вы это сделаете, сайт может быть взломан, и ключи попадут в руки злоумышленников, которые потратят ваши биткойны в течение нескольких секунд.

Вот мои заметки о том, как восстановить/пересобрать/регенерировать/извлечь адреса и ключи, используемые MultiBit HD:

  1. Перейдите на https://iancoleman.github.io/bip39/
  2. В поле «BIP39 Mnemonic» введите 12 слов генерации вашего кошелька.
  3. Нет пароля
  4. Монета: Биткойн
  5. В разделе «Путь создания» выберите вкладку «BIP32».
  6. Путь происхождения (скопируйте и вставьте это): m/0'/0
  7. Теперь ваши адреса отображаются в конце страницы. Счастье ;)

Восстановите свой кошелек в электруме, а затем используйте его для извлечения закрытых ключей. Чтобы узнать, как восстановить свой кошелек в Electrum , см. эту страницу

Если вам просто нужны закрытые ключи для определенных адресов, откройте вкладку адресов через меню просмотра, а затем щелкните правой кнопкой мыши каждый адрес, чтобы получить возможность просмотреть его закрытый ключ. Если вы хотите экспортировать все ключи, используйте меню кошелька > закрытые ключи > экспорт.

Ссылка на видео уже мертва.
Вместо этого @Manu отредактировал его с помощью текстового руководства.