RPC добавить многоадресный вызов

Я попробовал следующий вызов RPC через окно отладки:

addmultisigaddress 2 '["0304a7aadeb1ae96482a10fa634825d86d80dbad8d43cd9177664eaf6f0ff7d890", "022426f087fd017db9f29759efb9d7ff6101a075e46fb591466208a6a6beb321c7"]'

Результат был:

3MGYcBNapbmYkvfj9CD4hBykzWxukEE61w

Это адрес P2SH, верно?

Однако вызов RPC только что дал открытые ключи, поэтому мой кошелек фактически не сможет потратить средства, отправленные на этот адрес, верно?

Зачем вообще здесь вызов RPC, который позволяет пользователю создать адрес, с которого он не сможет тратить деньги? Является ли этот метод просто утилитой, если закрытые ключи неизвестны, и результат вообще не будет использоваться в реальном кошельке?

Я предполагаю, что просто объяснение «addmultisigaddress», которое является более описательным, чем справка через консоль, было бы полезно.

Ответы (1)

Вы правы в своем понимании: аргументы для вызова RPC — это просто открытые ключи (или адреса, которые являются хэшами открытых ключей), и если вы не владеете всеми соответствующими закрытыми ключами, вы не сможете потратить монеты отправлены на полученный адрес.

Но это далеко не бесполезно. Основное применение мультиподписных адресов заключается в том, чтобы потребовать одобрения нескольких людей, чтобы потратить их, что похоже на необходимость двух подписей на чеке. В этом случае желательно, чтобы ни один человек или компьютер никогда не владел всеми соответствующими закрытыми ключами (потому что тогда любой, у кого есть достаточный доступ к этому компьютеру, может потратить монеты в одностороннем порядке). Скорее, когда приходит время тратить монеты, держатели ключей ставят свои подписи один за другим, никогда не делясь своими закрытыми ключами друг с другом. Так что на самом деле, если бы addmultisigaddressтребовалось, чтобы все закрытые ключи были доступны, это было бы почти бесполезно.

Для получения дополнительной информации о мультиподписных адресах и о том, как их использовать, см. Довольно обширный ответ almel на Как будут работать мультиподписные адреса? И, как и в случае с любым программным обеспечением с открытым исходным кодом, конечной документацией является исходный код.