Какой путь вывода BIP32 использует Electrum для Multisig?

Тот же вопрос, что и какой путь вывода BIP32 использует Electrum?

но для мультисиг. Спасибо.

Ответы (4)

Электрум использует BIP45.

m / purpose' / cosigner_index / change / address_index

Пример без изменения первого поручителя и первого адреса:m / 45' / 0 / 0 / 0

См.: https://bitcointalk.org/index.php?topic=1634517.15 и https://github.com/bitcoin/bips/blob/master/bip-0045.mediawiki .

Я считаю, что включение кода цели и указателя подписавшего отсутствует. Смотрите мой ответ ниже. Таким образом, не BIP45.

После долгой борьбы я обнаружил, что Electrum использует следующую корневую деривацию для обычных кошельков и кошельков с мультиподписью. Например:

  • root/0/0за каждого созаемщика. Пример:

    • m/44'/0'/0'==> общий корневой ключ (x)

    • x/0/0==> адрес для первого получения мультиподписи (получение общих ключей всех соподписавших. Все 3 ключа должны быть лексикографически упорядочены).

  • некоторая полусовместимая форма BIP45 для аппаратных кошельков. Не проверял, но вот код: https://github.com/spesmilo/electrum/blob/master/lib/base_wizard.py#L220

ссылки:

Какой путь вывода BIP32 использует Electrum?

https://github.com/spesmilo/electrum/issues/2266

https://bitcointalk.org/index.php?topic=1819380

Я считаю, что код цели отсутствует. Смотрите мой ответ. Неясно, что означает в этом ответе m/44'/0'/0, генерирующий общий корневой ключ. Начиная с xprv, путь 0/0 генерирует публичные ключи, используемые для создания сценариев выкупа, и соответствующий адрес p2sh, используемый Electrum для первого получающего адреса.
это только для аппаратных кошельков. для кошельков, использующих сгенерированные электрумом сиды, x равно m для p2sh и m/1' для p2wsh

Вот дескриптор 2-из-3, созданный Electrum.

Получать адреса:

sh(sortedmulti(2,XPUB_1/0/*,XPUB_2/0/*,XPUB_3/0/*))

Изменить адреса:

sh(sortedmulti(2,XPUB_1/1/*,XPUB_2/1/*,XPUB_3/1/*))

(Замените XPUB_1, XPUB_2и XPUB_3вашими тремя главными открытыми ключами)

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

Для каждого главного ключа xprv соподписанта используйте 0/0 для первого адреса получателя, 0/1 для второго, 1/0 для первого адреса изменения, 1/1 для второго адреса изменения.

Затем используйте соответствующий открытый ключ для каждого подписавшего, отсортированный в лексикографическом порядке, при создании сценария выкупа и сгенерируйте соответствующий адрес p2sh для каждого адреса, который будет сгенерирован Electrum.

Насколько я могу судить, в BIP44 или BIP45 нет кодов назначения или индекса соподписанта. Это с Электрум 3.2.3.

ссылки: https://bitcointalk.org/index.php?topic=1819380 https://bitcointalk.org/index.php?topic=1816926.msg18101203#msg18101203

См. это другое обсуждение stackexchange: Какой путь вывода BIP32 использует Electrum?