Импорт закрытых ключей создает другой адрес

Как работает импорт закрытых ключей?

Я ранее импортировал закрытый ключ для адреса 1Archive... в Bitcoin Core и заметил, что затем он добавил адрес, например 1AXbRq... и я не стал следить за этим дальше.

Сегодня я экспортировал закрытый ключ для адреса 3... из Bitcoin Core и импортировал его в Electrum. Electrum добавляет адрес 1... и не видит ни одной транзакции.

Как это работает? Я понимаю, что за адресом SegWit стоит базовый адрес 1..., но как я могу потратить BTC, если он не отображается в балансе моего кошелька? Что еще мне делать?

Если на Bitcoin.SE уже есть ответ на этот вопрос, я не смог его найти.

Мой закрытый ключ начинается с L.

Был ли адрес, который начинался с 3адреса P2WPKH? Если да, то это может помочь: bitcoin.stackexchange.com/q/72899/38618
@MCCCS Хорошо, это действительно близко. У меня есть адрес 3..., а не адрес bc1.... Я надеюсь, что это будет легко разрешимо.
@MCCCS На самом деле, попробовал этот метод, Электрум говорит, что ключ нельзя импортировать. Мой секретный ключ начинается с L.
Совершенно неважно, что ваш закрытый ключ начинается с «L». Не делитесь этим!
ICIN, официальная загрузка Electrum с сайта bitcoin.org/en/wallets/desktop/windows/electrum .

Ответы (3)

Я подозреваю, что вы можете импортировать его прямо из консоли в Electrum (исходя из этого PR). В настоящее время Electrum позволяет импортировать отдельные p2wpk внутри адресов p2sh (3 адреса segwit). Однако вы по-прежнему можете импортировать все начальное число, используя путь наследования BIP49.

Попробуйте запустить в консоли Электрум следующее:

key = 'your_key'
txin_type, secret, compressed = bitcoin.deserialize_privkey(key)
wif2 = bitcoin.serialize_privkey(secret, compressed, 'p2wpkh-p2sh')
print(wif2)

Затем импортируйте wif2, который он распечатывает.

Это работает. Он импортирует правильный адрес.
Хорошо знать! Я не был очень уверен, и в настоящее время далеко от машины с электрумом. Спасибо за подтверждение.
Обратите внимание, что начиная с версии 3.1 вы можете просто добавить «p2wpkh-p2sh:» к закрытому ключу перед его импортом.

Добавьте «p2wpkh-p2sh:» к закрытому ключу, прежде чем импортировать его в Electrum. Например:

p2wpkh-p2sh:5Kkzs8XrJNAmf9VQDFeGBfaRvSByAvPK6DbDXw5BVqswWaXSG2Y

Я не могу подтвердить это - я попробовал это на своем секретном ключе и получил сообщение об ошибке, но, опять же, я уже импортировал его.
@Willtech работает только с 3.1 и выше .
Только что проверил свою версию, она действительно не 3.1 и выше.
ты заставил меня плакать после 6 часов поисков и попыток. Хотел бы я поставить вам +100 плюсов. Спасибо.
Это следует пометить как правильный ответ, поскольку он проще, чем принятое в настоящее время решение с использованием консоли.

«Ранее я импортировал закрытый ключ для адреса 1Archive… в Bitcoin Core и заметил, что затем он добавил такой адрес, как 1AXbRq… и больше не следил за этим».

Во-первых, я не буду отвечать на первый вопрос. Это просто звучит странно, и на 99% это вызвано ошибкой.

Как это работает? Я понимаю, что за адресом SegWit стоит базовый адрес 1..., но как я могу потратить BTC, если он не отображается в балансе моего кошелька? Что еще мне делать?

Вот как работает импорт адреса P2PKH:

На результат WIF влияют три параметра: тип приватного ключа (байт для приватных ключей BTC), приватный ключ (который также содержит yкоординату публичного ключа, если мы хотим сжатый публичный ключ) и дополнительный 0x01байт, если нам нужен сжатый публичный ключ. . Существует только один открытый ключ, который можно сгенерировать с помощью этого WIF.

Вот как работает импорт P2SH-адреса:

1) Дамп WIF адреса P2SH

2) Импортируйте WIF

3) Совершите транзакцию и посмотрите, как ваш кошелек или Bitcoin Core не распознают транзакцию.

Он не распознает транзакцию, потому что существует бесконечное количество адресов P2SH, которые можно создать с помощью WIF (Примечание: у скрипта есть ограничение по размеру, поэтому он не бесконечен)!

Чтобы сообщить вашему кошельку о вашем P2SH-адресе, вы также должны импортировать скрипт. И это не поддерживается 99,9% кошельков. (Однако кошельки могут импортировать адреса Witness, поскольку они стандартизированы и широко используются). Вот почему Electrum не видит ваш адрес P2WPKH, если вы не укажете ему использовать адрес Witness.

Скрипты p2wpkh-p2sh стандартизированы в файле bip. Пока вы добавляете «p2wpkh-p2sh:» к WIF, Electrum распознает его как таковой в Electrum 3.1 или новее. В случае 3.0.x вам нужно преобразовать WIF, что вы можете сделать, используя скрипт, опубликованный @RaghavSood, или это меню, основанное здесь .