Можно ли отправить биткойны вместе из одного кошелька, если они были получены с разных адресов?

То, что было отправлено на ваши индивидуальные биткойн-адреса, предположительно записывается в блокчейне, но можете ли вы отправить все объединенные биткойны (которые вы получили по разным адресам) одновременно с вашим открытым ключом? Например, если я получил 1 биткойн по адресу 1, 2 по адресу 2 и 5 по адресу 3, все эти адреса получены из одного и того же открытого ключа, и я хотел отправить 6 биткойнов другу, могу ли я отправить все их сразу с моим открытым ключом? Или мне придется отправить комбинацию биткойнов с разных адресов, то есть отдельными транзакциями? И если бы я мог отправить их все вместе с помощью открытого ключа, как определить, что я владею всеми этими биткойнами, если они были отправлены не напрямую на мой открытый ключ, а на различные необратимо хешированные адреса, полученные из моего открытого ключа?

Ответы (1)

Биткойн-транзакция может иметь один или несколько входов и один или несколько выходов. Например, вот транзакция с 1 входом 3 выхода , а вот транзакция с 3 входами 1 выходом .

Я думаю, вы путаете термины открытый ключ и закрытый ключ. Кошелек — это набор пар ключей (закрытые ключи и открытые ключи), каждый из которых можно использовать для создания уникального биткойн-адреса. Таким образом, если у вас есть три разные входные транзакции для трех разных биткойн-адресов, каждый из них можно будет потратить, используя собственный закрытый ключ.

Ваш кошелек подпишет транзакцию каждым из этих трех ключей, а остальная часть сети сможет проверить подпись, сравнив ее с открытым ключом, связанным с каждым входом (несмотря на то, что закрытый ключ никогда не будет известен!). Чтобы узнать больше о том, как это работает, поищите информацию о том, как работает криптография с открытым ключом . Это полезный криптографический инструмент, используемый во многих системах, а не только в биткойнах.

Таким образом, в транзакции с 3 входами и 1 выходом отправитель должен был отправить биткойны с 3 разных адресов (хотя все они были подписаны одним и тем же закрытым ключом) и указать эти адреса при совершении транзакции, а не отправлять все биткойны из одного места, учитывая, что они, как я предполагаю, пришли из одного и того же кошелька?
Каждый биткойн-адрес связан с уникальным закрытым ключом, не существует одного закрытого ключа, который будет подписывать все входы в транзакции с тремя входами. Я думаю, вы путаете это с кошельком BIP 32 HD, в котором главный закрытый ключ используется для получения последующих закрытых ключей кошелька (каждый из которых будет иметь свой собственный уникальный биткойн-адрес). Как пользователь, вам не нужно об этом беспокоиться, программное обеспечение кошелька позаботится о выборе ввода и подписании транзакции в фоновом режиме для вас.
Я могу генерировать несколько биткойн-адресов в Exodus, поэтому у меня сложилось впечатление, что любое количество адресов может быть создано путем хеширования открытого ключа. Таким образом, все эти адреса восходят к одному общему ключу. Вы уверены, что каждый биткойн-адрес связан с уникальным закрытым ключом? Или вы имели в виду открытые ключи?
Несколько адресов не создаются путем хеширования открытого ключа, это недоразумение. Хеш-функция является детерминированной, поэтому, если вы вводите один и тот же ввод более одного раза, вы каждый раз будете получать один и тот же вывод. Тем не менее, мне приходит в голову, что вы можете говорить о расширенном открытом ключе (xpub), который можно использовать для получения бесконечных дочерних ключей pub. Даже в этом случае вам по-прежнему нужен расширенный закрытый ключ (xpriv), который создал ключ xpub, чтобы вы могли получить дочерний закрытый ключ каждого дочернего ключа публикации. Таким образом, каждый адрес по-прежнему имеет собственный закрытый ключ, необходимый для того, чтобы тратить деньги.
Иерархический детерминированный (HD) кошелек BIP32 работает таким образом, все адреса получаются из основного расширенного закрытого ключа (ключ xpriv), но вы получаете пары открытый/закрытый ключ, а не только адреса, которые все контролируются один закрытый ключ. Мнемоническая фраза, которую многие кошельки умоляют вас записать, является исходной фразой для создания вашего ключа xpriv для кошелька.