Author

Topic: Как извлечь secret key из парольной фразы? (Read 161 times)

jr. member
Activity: 35
Merit: 4
от того публичного ключа, на котором лежат эти биткойны? Чтобы затем импортировать этот конкретный ключ в Core клиент.

Quote
electrum

В консоли электрума введите
Code:
getprivatekeys("адрес_с_битками")
Получите приватник. Его и суйте в свою кору.

По второму вопросу:
этот функционал есть в меню электрума "Инструменты->Подписать/подтвердить сообщение"
Спасибо всем за столь развёрнутый ответ! Узнал много нового. Всего-то нужно было обновить клиент.
legendary
Activity: 2310
Merit: 4313
🔐BitcoinMessage.Tools🔑
Не знаю, не очень вникал в этот BIP137, поэтому не понимаю, зачем он нужен. Зачем делать разные подписи на разных типах адресов, если публичный ключ (и приватный соответственно) у всех этих типов одинаковый? Говорю о трех типах на сжатых ключах.
Кстати, сейчас подписал сообщение в Sparrow (выбрал кнопку Trezor), после чего проверил его в Electrum - работает.
Тогда лучше спросить зачем в подпись добавляют байт со специальным заголовком, а не просто используют r и s значения подписи. Проблема в том, что мы не знаем публичного ключа изначально, мы его высчитываем из полученных данных. Одному значению r соответвует как минимум две точки на эллиптической кривой, а в некоторых случаях даже четыре. То есть из одной подписи мы можем получить четыре разных адреса, но нам нужен только один. Наверное чтобы не делать лишних вычислений, а сразу знать какой именно публичный ключ нам нужен и проводятся подобные манипуляции.
legendary
Activity: 1806
Merit: 1940
Crypto Swap Exchange
Надо бы проверить, действительно ли Электрум не понимает подписи, о которых вы говорите. Ваша ссылка достаточно старая, у меня есть посвежее: https://github.com/spesmilo/electrum/pull/7668
Там написано, что этот PR немного изменяет логику верификации подписей со стороны Электрума, но процесс подписи остается прежним, то есть не по тому алгоритму, что у Trezor и Sparrow Wallet. Это значит, что если какой-либо кошелек забудет имплементировать все имеющиеся стандарты подписи, то он рискует не валидировать информацию, пришедшую из другого кошелька. Это очень печальная ситуация на самом деле, хотелось бы что разработчики уже осознали, что Legacy адресами сейчас пользуются редко и уже пришли к консенсусу о том как подписывать SegWit адреса. Я сам сторонник BIP137 и считаю правильным, что разные версии адресов должны хэшироваться в разные подписи.

Не знаю, не очень вникал в этот BIP137, поэтому не понимаю, зачем он нужен. Зачем делать разные подписи на разных типах адресов, если публичный ключ (и приватный соответственно) у всех этих типов одинаковый? Говорю о трех типах на сжатых ключах.
Кстати, сейчас подписал сообщение в Sparrow (выбрал кнопку Trezor), после чего проверил его в Electrum - работает.
legendary
Activity: 2310
Merit: 4313
🔐BitcoinMessage.Tools🔑
Надо бы проверить, действительно ли Электрум не понимает подписи, о которых вы говорите. Ваша ссылка достаточно старая, у меня есть посвежее: https://github.com/spesmilo/electrum/pull/7668
Там написано, что этот PR немного изменяет логику верификации подписей со стороны Электрума, но процесс подписи остается прежним, то есть не по тому алгоритму, что у Trezor и Sparrow Wallet. Это значит, что если какой-либо кошелек забудет имплементировать все имеющиеся стандарты подписи, то он рискует не валидировать информацию, пришедшую из другого кошелька. Это очень печальная ситуация на самом деле, хотелось бы что разработчики уже осознали, что Legacy адресами сейчас пользуются редко и уже пришли к консенсусу о том как подписывать SegWit адреса. Я сам сторонник BIP137 и считаю правильным, что разные версии адресов должны хэшироваться в разные подписи.
legendary
Activity: 1806
Merit: 1940
Crypto Swap Exchange
Прежде чем отвечать на этот вопрос стоит уточнить, что в данный момент нет единого стандарта для подписи сообщений для SegWit адресов (в том числе адресов, начинающихся с 3 (P2WPKH-P2SH) и один кошелек может выдавать подпись, которая не будет валидироваться в другом кошельке. Вот, например тут шло обсуждение об этой проблеме: https://github.com/sparrowwallet/sparrow/issues/39 Один из пользователей заметил, что подписи, созданные по спецификации BIP137 не валидируются в Электруме, но Sparrow Wallet наоборот валидирует подписи из Электрума. Так что для десктопа я бы порекомендовал Sparrow Wallet.
Надо бы проверить, действительно ли Электрум не понимает подписи, о которых вы говорите. Ваша ссылка достаточно старая, у меня есть посвежее: https://github.com/spesmilo/electrum/pull/7668
legendary
Activity: 2310
Merit: 4313
🔐BitcoinMessage.Tools🔑
И второй вопрос. В том лёгком клиенте который я использую нет функции "sign message/validate message". Во всех лёгких клиентах, которые используют парольную фразу нет такого функционала? Если не во всех, то подскажите в каких не кастодиальных такой функционал присутствует. Спасибо.
Прежде чем отвечать на этот вопрос стоит уточнить, что в данный момент нет единого стандарта для подписи сообщений для SegWit адресов (в том числе адресов, начинающихся с 3 (P2WPKH-P2SH) и один кошелек может выдавать подпись, которая не будет валидироваться в другом кошельке. Вот, например тут шло обсуждение об этой проблеме: https://github.com/sparrowwallet/sparrow/issues/39 Один из пользователей заметил, что подписи, созданные по спецификации BIP137 не валидируются в Электруме, но Sparrow Wallet наоборот валидирует подписи из Электрума. Так что для десктопа я бы порекомендовал Sparrow Wallet. Для мобильных кошельков можно попробовать Mycellium Wallet или Samourai Wallet. Но они скорее тоже следуют другим стандартам при подписи транзакций. Прошу заметить, что для Legacy адресов такой проблемы нет и все сервисы работают нормально с такими подписями.
hero member
Activity: 644
Merit: 1092
Здравствуйте, я немного отстал от темы. Недавно установил лёгкий клиент, создал парольную фразу, перевёл на него биткойны. Как теперь вытащить из него приватный ключ от того публичного ключа, на котором лежат эти биткойны? Чтобы затем импортировать этот конкретный ключ в Core клиент.
И второй вопрос. В том лёгком клиенте который я использую нет функции "sign message/validate message". Во всех лёгких клиентах, которые используют парольную фразу нет такого функционала? Если не во всех, то подскажите в каких не кастодиальных такой функционал присутствует. Спасибо.
О каком лёгком клиенте идёт речь?
electrum


Если electrum то https://iancoleman.io/bip39/ не подойдет, так как  у него другой алгоритм и нужны конвертеры, подогнанные под этот алгоритм  или модифицировать html от https://iancoleman.io/bip39/.
copper member
Activity: 1540
Merit: 487
Stop the war!
от того публичного ключа, на котором лежат эти биткойны? Чтобы затем импортировать этот конкретный ключ в Core клиент.

Quote
electrum

В консоли электрума введите
Code:
getprivatekeys("адрес_с_битками")
Получите приватник. Его и суйте в свою кору.

По второму вопросу:
этот функционал есть в меню электрума "Инструменты->Подписать/подтвердить сообщение"
jr. member
Activity: 35
Merit: 4
Здравствуйте, я немного отстал от темы. Недавно установил лёгкий клиент, создал парольную фразу, перевёл на него биткойны. Как теперь вытащить из него приватный ключ от того публичного ключа, на котором лежат эти биткойны? Чтобы затем импортировать этот конкретный ключ в Core клиент.
И второй вопрос. В том лёгком клиенте который я использую нет функции "sign message/validate message". Во всех лёгких клиентах, которые используют парольную фразу нет такого функционала? Если не во всех, то подскажите в каких не кастодиальных такой функционал присутствует. Спасибо.
О каком лёгком клиенте идёт речь?
electrum

установил лёгкий клиент, создал парольную фразу, перевёл на него биткойны. Как теперь вытащить из него приватный ключ от того публичного ключа..
При помощи https://iancoleman.io/bip39/
Я нашёл их гитхаб и запустил у себя в изолированной среде bip39-standalone.html На всякий случай ввёл другие слова из парольной фразы. Получилось очень много приватных ключей. В итоге так и не понятно как найти конкретно тот, на котором лежат мои биткойны? Мне их придётся все в Core импортировать? Пересинхронизация достаточно долгая процедура. Да и скорее всего все ключи этот скрипт просто не в состоянии будет выдать. Их по логике должно быть большое степенное множество, невозможно отобразить всех их в читаемом виде чтобы скопировать и вставить. Если бы я заранее проделал всю вышеописанную процедуру, а потом перевёл биткойны на один из увиденных ключей, тогда понятно. Уточню вопрос: как мне найти среди подмножества ключей свой с биткойнами? Проще конечно их переместить на новый ключ, но что если я не хочу сейчас перемещать их. С подписью вопрос так и не решён.
staff
Activity: 3388
Merit: 3795
Crypto Swap Exchange
Здравствуйте, я немного отстал от темы. Недавно установил лёгкий клиент, создал парольную фразу, перевёл на него биткойны. Как теперь вытащить из него приватный ключ от того публичного ключа, на котором лежат эти биткойны? Чтобы затем импортировать этот конкретный ключ в Core клиент.
И второй вопрос. В том лёгком клиенте который я использую нет функции "sign message/validate message". Во всех лёгких клиентах, которые используют парольную фразу нет такого функционала? Если не во всех, то подскажите в каких не кастодиальных такой функционал присутствует. Спасибо.
О каком лёгком клиенте идёт речь?
legendary
Activity: 1538
Merit: 1093
установил лёгкий клиент, создал парольную фразу, перевёл на него биткойны. Как теперь вытащить из него приватный ключ от того публичного ключа..
При помощи https://iancoleman.io/bip39/
jr. member
Activity: 35
Merit: 4
Здравствуйте, я немного отстал от темы. Недавно установил лёгкий клиент, создал парольную фразу, перевёл на него биткойны. Как теперь вытащить из него приватный ключ от того публичного ключа, на котором лежат эти биткойны? Чтобы затем импортировать этот конкретный ключ в Core клиент.
И второй вопрос. В том лёгком клиенте который я использую нет функции "sign message/validate message". Во всех лёгких клиентах, которые используют парольную фразу нет такого функционала? Если не во всех, то подскажите в каких не кастодиальных такой функционал присутствует. Спасибо.
Jump to: