Bitcoin Forum

Local => Новички => Topic started by: Nuburian on January 27, 2023, 12:12:54 PM



Title: Как извлечь secret key из парольной фразы?
Post by: Nuburian on January 27, 2023, 12:12:54 PM
Здравствуйте, я немного отстал от темы. Недавно установил лёгкий клиент, создал парольную фразу, перевёл на него биткойны. Как теперь вытащить из него приватный ключ от того публичного ключа, на котором лежат эти биткойны? Чтобы затем импортировать этот конкретный ключ в Core клиент.
И второй вопрос. В том лёгком клиенте который я использую нет функции "sign message/validate message". Во всех лёгких клиентах, которые используют парольную фразу нет такого функционала? Если не во всех, то подскажите в каких не кастодиальных такой функционал присутствует. Спасибо.


Title: Re: Как извлечь secret key из парольной фразы?
Post by: Krypt on January 27, 2023, 05:33:29 PM
установил лёгкий клиент, создал парольную фразу, перевёл на него биткойны. Как теперь вытащить из него приватный ключ от того публичного ключа..
При помощи https://iancoleman.io/bip39/


Title: Re: Как извлечь secret key из парольной фразы?
Post by: xandry on January 27, 2023, 07:20:18 PM
Здравствуйте, я немного отстал от темы. Недавно установил лёгкий клиент, создал парольную фразу, перевёл на него биткойны. Как теперь вытащить из него приватный ключ от того публичного ключа, на котором лежат эти биткойны? Чтобы затем импортировать этот конкретный ключ в Core клиент.
И второй вопрос. В том лёгком клиенте который я использую нет функции "sign message/validate message". Во всех лёгких клиентах, которые используют парольную фразу нет такого функционала? Если не во всех, то подскажите в каких не кастодиальных такой функционал присутствует. Спасибо.
О каком лёгком клиенте идёт речь?


Title: Re: Как извлечь secret key из парольной фразы?
Post by: Nuburian on January 28, 2023, 02:17:32 PM
Здравствуйте, я немного отстал от темы. Недавно установил лёгкий клиент, создал парольную фразу, перевёл на него биткойны. Как теперь вытащить из него приватный ключ от того публичного ключа, на котором лежат эти биткойны? Чтобы затем импортировать этот конкретный ключ в Core клиент.
И второй вопрос. В том лёгком клиенте который я использую нет функции "sign message/validate message". Во всех лёгких клиентах, которые используют парольную фразу нет такого функционала? Если не во всех, то подскажите в каких не кастодиальных такой функционал присутствует. Спасибо.
О каком лёгком клиенте идёт речь?
electrum

установил лёгкий клиент, создал парольную фразу, перевёл на него биткойны. Как теперь вытащить из него приватный ключ от того публичного ключа..
При помощи https://iancoleman.io/bip39/
Я нашёл их гитхаб и запустил у себя в изолированной среде bip39-standalone.html На всякий случай ввёл другие слова из парольной фразы. Получилось очень много приватных ключей. В итоге так и не понятно как найти конкретно тот, на котором лежат мои биткойны? Мне их придётся все в Core импортировать? Пересинхронизация достаточно долгая процедура. Да и скорее всего все ключи этот скрипт просто не в состоянии будет выдать. Их по логике должно быть большое степенное множество, невозможно отобразить всех их в читаемом виде чтобы скопировать и вставить. Если бы я заранее проделал всю вышеописанную процедуру, а потом перевёл биткойны на один из увиденных ключей, тогда понятно. Уточню вопрос: как мне найти среди подмножества ключей свой с биткойнами? Проще конечно их переместить на новый ключ, но что если я не хочу сейчас перемещать их. С подписью вопрос так и не решён.


Title: Re: Как извлечь secret key из парольной фразы?
Post by: ~DefaultTrust on January 28, 2023, 02:56:59 PM
от того публичного ключа, на котором лежат эти биткойны? Чтобы затем импортировать этот конкретный ключ в Core клиент.

Quote
electrum

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

По второму вопросу:
этот функционал есть в меню электрума "Инструменты->Подписать/подтвердить сообщение"


Title: Re: Как извлечь secret key из парольной фразы?
Post by: satscraper on January 28, 2023, 03:07:31 PM
Здравствуйте, я немного отстал от темы. Недавно установил лёгкий клиент, создал парольную фразу, перевёл на него биткойны. Как теперь вытащить из него приватный ключ от того публичного ключа, на котором лежат эти биткойны? Чтобы затем импортировать этот конкретный ключ в Core клиент.
И второй вопрос. В том лёгком клиенте который я использую нет функции "sign message/validate message". Во всех лёгких клиентах, которые используют парольную фразу нет такого функционала? Если не во всех, то подскажите в каких не кастодиальных такой функционал присутствует. Спасибо.
О каком лёгком клиенте идёт речь?
electrum


Если electrum то https://iancoleman.io/bip39/ не подойдет, так как  у него другой алгоритм и нужны конвертеры, подогнанные под этот алгоритм (https://bitcointalk.org/index.php?topic=5209853.msg53356042#msg53356042)  или модифицировать html  (https://bitcointalk.org/index.php?topic=5209853.msg53409695#msg53409695)от https://iancoleman.io/bip39/.


Title: Re: Как извлечь secret key из парольной фразы?
Post by: witcher_sense on January 30, 2023, 06:28:42 AM
И второй вопрос. В том лёгком клиенте который я использую нет функции "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 адресов такой проблемы нет и все сервисы работают нормально с такими подписями.


Title: Re: Как извлечь secret key из парольной фразы?
Post by: igor72 on January 30, 2023, 08:03:11 AM
Прежде чем отвечать на этот вопрос стоит уточнить, что в данный момент нет единого стандарта для подписи сообщений для SegWit адресов (в том числе адресов, начинающихся с 3 (P2WPKH-P2SH) и один кошелек может выдавать подпись, которая не будет валидироваться в другом кошельке. Вот, например тут шло обсуждение об этой проблеме: https://github.com/sparrowwallet/sparrow/issues/39 Один из пользователей заметил, что подписи, созданные по спецификации BIP137 не валидируются в Электруме, но Sparrow Wallet наоборот валидирует подписи из Электрума. Так что для десктопа я бы порекомендовал Sparrow Wallet.
Надо бы проверить, действительно ли Электрум не понимает подписи, о которых вы говорите. Ваша ссылка достаточно старая, у меня есть посвежее: https://github.com/spesmilo/electrum/pull/7668


Title: Re: Как извлечь secret key из парольной фразы?
Post by: witcher_sense on January 30, 2023, 08:44:28 AM
Надо бы проверить, действительно ли Электрум не понимает подписи, о которых вы говорите. Ваша ссылка достаточно старая, у меня есть посвежее: https://github.com/spesmilo/electrum/pull/7668
Там написано, что этот PR немного изменяет логику верификации подписей со стороны Электрума, но процесс подписи остается прежним, то есть не по тому алгоритму, что у Trezor и Sparrow Wallet. Это значит, что если какой-либо кошелек забудет имплементировать все имеющиеся стандарты подписи, то он рискует не валидировать информацию, пришедшую из другого кошелька. Это очень печальная ситуация на самом деле, хотелось бы что разработчики уже осознали, что Legacy адресами сейчас пользуются редко и уже пришли к консенсусу о том как подписывать SegWit адреса. Я сам сторонник BIP137 и считаю правильным, что разные версии адресов должны хэшироваться в разные подписи.


Title: Re: Как извлечь secret key из парольной фразы?
Post by: igor72 on January 30, 2023, 01:17:00 PM
Надо бы проверить, действительно ли Электрум не понимает подписи, о которых вы говорите. Ваша ссылка достаточно старая, у меня есть посвежее: https://github.com/spesmilo/electrum/pull/7668
Там написано, что этот PR немного изменяет логику верификации подписей со стороны Электрума, но процесс подписи остается прежним, то есть не по тому алгоритму, что у Trezor и Sparrow Wallet. Это значит, что если какой-либо кошелек забудет имплементировать все имеющиеся стандарты подписи, то он рискует не валидировать информацию, пришедшую из другого кошелька. Это очень печальная ситуация на самом деле, хотелось бы что разработчики уже осознали, что Legacy адресами сейчас пользуются редко и уже пришли к консенсусу о том как подписывать SegWit адреса. Я сам сторонник BIP137 и считаю правильным, что разные версии адресов должны хэшироваться в разные подписи.

Не знаю, не очень вникал в этот BIP137, поэтому не понимаю, зачем он нужен. Зачем делать разные подписи на разных типах адресов, если публичный ключ (и приватный соответственно) у всех этих типов одинаковый? Говорю о трех типах на сжатых ключах.
Кстати, сейчас подписал сообщение в Sparrow (выбрал кнопку Trezor), после чего проверил его в Electrum - работает.


Title: Re: Как извлечь secret key из парольной фразы?
Post by: witcher_sense on January 31, 2023, 06:09:57 AM
Не знаю, не очень вникал в этот BIP137, поэтому не понимаю, зачем он нужен. Зачем делать разные подписи на разных типах адресов, если публичный ключ (и приватный соответственно) у всех этих типов одинаковый? Говорю о трех типах на сжатых ключах.
Кстати, сейчас подписал сообщение в Sparrow (выбрал кнопку Trezor), после чего проверил его в Electrum - работает.
Тогда лучше спросить зачем в подпись добавляют байт со специальным заголовком, а не просто используют r и s значения подписи. Проблема в том, что мы не знаем публичного ключа изначально, мы его высчитываем из полученных данных. Одному значению r соответвует как минимум две точки на эллиптической кривой, а в некоторых случаях даже четыре. То есть из одной подписи мы можем получить четыре разных адреса, но нам нужен только один. Наверное чтобы не делать лишних вычислений, а сразу знать какой именно публичный ключ нам нужен и проводятся подобные манипуляции.


Title: Re: Как извлечь secret key из парольной фразы?
Post by: Nuburian on February 09, 2023, 01:30:44 PM
от того публичного ключа, на котором лежат эти биткойны? Чтобы затем импортировать этот конкретный ключ в Core клиент.

Quote
electrum

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

По второму вопросу:
этот функционал есть в меню электрума "Инструменты->Подписать/подтвердить сообщение"
Спасибо всем за столь развёрнутый ответ! Узнал много нового. Всего-то нужно было обновить клиент.