Всегда ли клиент сатоши отправляет изменение транзакции на вновь сгенерированный адрес?

Экспериментально это выглядит так, но всегда ли так или зависит от каких-то деталей? Кроме того, генерирует ли он новый адрес каждый раз, когда это делается, или сначала ищет кошелек, если там уже есть пустой адрес? (И использует это в этом случае) Вероятно ли, что это поведение изменится в более поздней версии клиента сатоши?

Не дубликат: он не спрашивал «почему», он спрашивал «когда» (делает ли это), и он спрашивал «если» (изменится ли это в будущем).

Ответы (2)

Когда вы создаете кошелек, он по умолчанию содержит 100 биткойн-адресов . Это хорошо по многим причинам, например, старые резервные копии вашего кошелька могут восстановить все потери в случае сбоя жесткого диска и т. д.

«Причина конфиденциальности» заключается в том, что кто-то, кто смотрит на блокчейн, не может видеть, какие биткойны идут получателю, а какие являются изменением входных данных.

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

Так что ответ на вопрос в заголовке - "Да".
Как насчет того, «он генерирует новый адрес каждый раз, когда это делается, или сначала ищет кошелек, если там уже есть пустой адрес?» Меня особенно интересует, будут ли в конечном итоге использоваться импортированные извне ключи для сдачи (если они не использовались ранее) или сдача всегда поступает на адрес, ранее не существовавший в кошельке?
Это объяснение «открытого ключа» не имеет особого смысла: открытые ключи являются открытыми, закрытые ключи являются закрытыми, и нет причин (и способа ) «защищать» открытые ключи.
Я не говорил, что открытые ключи не являются открытыми, я сказал, что биткойн-адреса — это хэши открытых ключей. И атаковать хэш ключа намного сложнее, чем атаковать ключ (т.е. вы «защищаете» открытый ключ, не раскрывая его). Когда вы тратите биткойны, вам нужно раскрыть публичный ключ, но в то же время вы перемещаете все биткойны по адресу на новый адрес с новым нераскрытым публичным ключом. Таким образом, у любых злоумышленников будет очень мало времени для атаки на ваш открытый ключ (по сравнению с тем, что у повторно используемого адреса есть биткойны ) .

Да, если есть сдача, то она отправляется на новый адрес. См. https://en.bitcoin.it/wiki/Change

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

Это не изменится в будущих версиях клиента, потому что это часть дизайна Биткойн.