Разница между createmultisig и addmultisigaddress?

В чем функциональная разница между createmultisig и addmultisigaddress в биткойнкоре (v 0.10)?

Чтобы быть ясным, я понимаю, как оба функционируют. т.е. multisigCmd n ["address1 public key as hex", "address in Base58 format", "more JSON entries..."](где nзначение n of m, а также список JSON либо шестнадцатеричных открытых ключей, либо адресов Base58).

Однако вывод для multisigCmd ( createmultisig и addmultisigaddress соответственно) таков:

  • создатьмультисиг: ==> 3outputEqualsPay2scriptBTCAddress ,script as hex
  • addmultisigaddress: ==> 3outputEqualsPay2scriptBTCAddress ( нет сценария! )

Обе команды дают одинаковые выходные адреса (т . е 3outputEqualsPay2scriptBTCAddress. ), когда используются одни и те же входные данные JSON. Так что разница, на самом деле, только в том, что первый выводит искупляющий шестнадцатеричный скрипт. Я что-то упускаю? Зачем нужны 2 команды, а не, например, одна команда с -hex_script_outputфлагом?

Ответы (2)

  • createmultisigсоздает мультиподписной адрес P2SH для использования в необработанных транзакциях. Он выводит сценарий выкупа, потому что он понадобится вам, чтобы тратить любые платежи, отправленные на адрес P2SH.

  • addmultisigaddressдобавляет мультиподписной адрес P2SH в ваш кошелек Bitcoin Core, что позволяет вам отслеживать и тратить платежи, полученные по этому адресу. Он не выводит сценарий выкупа, потому что Bitcoin Core хранит его для вас. (Вы можете получить его позже с помощью validateaddress.)

Конечно, это имеет смысл. Я заметил, что новая функция справки v0.10 разделяет 2 функции на категории Tx и Wallet соответственно. Категории прояснили бы для меня вопрос, поскольку прошлые версии справки не были четко очерчены.

Я знаю, что это старо, но я хотел бы прокомментировать с точки зрения более позднего биткойн-кода. И createmultisig, и addmultisigaddress теперь выводят сценарий выкупа.

Использование сценария погашения кажется необходимым только для ручной подписи необработанной транзакции с помощью signrawtransactionwithkey , что кажется избыточным (для обычного использования), поскольку набор команд PSBT делает все это автоматически. createpsbt , decodepsbt , walletprocesspsbt , finalizepsbt , sendrawtransaction .

Это то, что привело меня сюда в поисках практической разницы между createmultisig и addmultisigaddress. Я думаю, что нам остается только добавить ли это к вашему кошельку. Я растерялся, потому что сначала кажется, что нужно его создать, а потом добавить, но на практике можно сразу перейти к addmultisigaddress.