Реальная история.
3.
https://blockchain.info/address/19SxkCSLKKpyqrQZ4BAFbQVCGiVBVPDYWLЭтот адрес мой, судя по всему, но это не указано в Bitcoin-QT клиента. Но почему-то кажется, что всякий раз, когда я отправляю сделку, официальный клиент отправляет оставшуюся часть входа (ов) на новый адрес (который у меня нет в списке) и как-то не теряет след это публичный и закрытый ключ. Как / Почему эта работа / происходит?
Эти "изменение" от любых сделок, вы послали в прошлом:
С тем, как Bitcoin работает, вы не можете частично провести предыдущий вывод, который вы получили. Он должен быть полностью израсходованы. Таким образом, если вы получаете 10 BTC все в одной транзакции от кого-то / где-то по адресу, то этот адрес в настоящее время имеет один 10 выхода BTC.
Позже, если вы хотите отправить 2 BTC кому-то, программа может использовать предыдущий 10 BTC выхода в качестве вклада в сделку, а также создать BTC выхода 2 по адресу, где вы хотите, чтобы отправить его. Это оставляет 8 BTC пережиток в сделке. Если вы не отправите эти 8 BTC где-то, то они становятся рудничные сборы и в конечном итоге в coinbase сделки нового блока для шахтер сохранить. Если вы не хотите, чтобы дать эти 8 BTC прочь как сборы в шахтер, то вам необходимо включить второй выход в транзакции, посылающий 8 BTC на свой собственный кошелек. В качестве аналогии, думаю, потянув счет $ 10 из своего кармана, чтобы заплатить за то, что стоит $ 2, вы получите $ 8 назад в "изменение",
Путь Bitcoin-Qt делает это, чтобы создать новый адрес Bitcoin, что он не говорит вам о том и отслеживает этот адрес и связанного с ним секретного ключа в вашем wallet.dat. Поскольку это не адрес, который вы запросили в "Получить монеты" Вкладка пользовательского интерфейса, он не отображается в этом списке. Bitcoin-Qt знает об адресе, так как он находится в файле wallet.dat, поэтому он включает ее в балансе, что он показывает вам. Bitcoin-Qt использует новый адрес изменений для каждой транзакции. Так что если вы создаете 10 различных операций, каждая отправка биткойны где-то, то ваш кошелек будет использоваться 10 различных адресов изменения (хотя некоторые из них могут быть пустыми, если Bitcoin-Qt использовал биткойны, связанные с некоторыми из этих адреса в качестве вклада в другие сделки) ,
Вы можете получить список неизрасходованных выходов, что бумажник отслеживаемых с помощью "listunspent", Это должно дать вам TransactionID, то Vout и значение BTC каждого неиспользованного производства в бумажнике. Это должно быть все, что вам нужно создать сырые сделки, но если вы хотите выбрать конкретный "отправка адреса", Вам нужно будет искать каждый из TransactionID и Vout, чтобы выяснить, какой адрес в Bitcoins с выхода в настоящее время связаны с.
* Я работал над сценарием Perl, который делает listunspent API вызов Bitcoin-Qt, а затем разбирает вывод, представляющий список всей полезной информации о каждом выходе в. Это требует много очистки и украшения, но я думаю, что я получил это работаю пару дней назад. Это первый шаг в моей попытке создать программу на языке Perl, который позволит автоматизировать сметая остатки пыли вместе в бумажнике, а также автоматизации других процессов (например, радикальные остатки из старых адресов в бумажный кошелек).