получить идентификатор офлайн-транзакции Биткойн, связать несколько офлайн-транзакций

скажем, я создаю действительную транзакцию (в автономном режиме, не отправляя ее, например, вот так: http://brainwallet.org/#tx . назовем это «A»

а) прежде чем отправить А, могу ли я получить идентификатор транзакции А?

b) Я хочу создать новую автономную транзакцию (называемую B), используя выходные данные A в качестве входных данных для B. Тем не менее, A не был отправлен в сеть биткойнов. Это возможно? Например, A отправляет деньги со счета x на счет y. B отправляет те же биткойны, что и от x к y, от y к z.

в) если часть б) возможна, и я отправляю А, то немедленно отправляю Б в сеть биткойн. что случилось бы?

Ответы (1)

прежде чем отправить A, могу ли я получить идентификатор транзакции A?

Да, вы можете рассчитать TXID без подключения к сети.

Я хочу создать новую автономную транзакцию (называемую B), используя выходные данные A в качестве входных данных для B. Тем не менее, A не был отправлен в сеть биткойнов. Это возможно?

Да, но есть небольшой нюанс при работе с вложенными неподтвержденными транзакциями. Если вы выстроите их большое количество друг над другом, и один из них никогда не будет подтвержден, то вся цепочка транзакций исчезнет. То есть, если вы строите A, B и C, и у A была неправильная комиссия, ни одна из последующих транзакций никогда не будет подтверждена и в конечном итоге будет удалена из сети.

При этом ничто не мешает вам создавать цепочки бесконечной длины, их просто нужно транслировать, чтобы узлы могли видеть предыдущие входы. Если вы сделаете их не по порядку (C, A, B), они, скорее всего, будут отклонены.

возможно, и я отправляю A, а затем немедленно отправляю B в сеть биткойнов. что случилось бы?

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

Извинения. Мой первоначальный вопрос выглядел так, как будто я спрашивал, могу ли я дважды потратить одни и те же биткойны с одного и того же счета. Я перефразировал свой первоначальный вопрос б). Например: на счете x есть 1 BTC. аккаунт y имеет 0 BTC. Могу ли я создать автономные транзакции, отправив 1 BTC из x в Y (транзакция A). в то же время создайте офлайн-транзакцию, отправляющую 1 BTC из y в z (тот же 1 BTC из транзакции A). а затем отправить их обоих в сеть. А, потом Б, но очень быстро
Моя ошибка полностью, я обновил ответ, чтобы он соответствовал.
Скажем, я представил их в обратном порядке, но все же в быстрой последовательности. Будут ли они каким-то образом «плавать вокруг» достаточно долго, чтобы соединиться вместе. Я предполагаю, что мой вопрос: грубо говоря, является ли небольшая разница во времени причиной предотвращения обработки цепочек транзакций?
Я бы не стал делать ставку на то, что это работает, это может быть связано с чистой удачей с задержкой между узлами, заставляющей некоторые из них принимать цепочку, но это определенно то, на что вы не хотите полагаться. Если вы отправляете B, а узел не слышал об A, то узел отклонит его, поскольку B пытается потратить выход, который для него еще не существует. Вы можете поиграть с этим в тестовой сети, если вы отправляете цепочку слишком быстро, вы просто не увидите ее на других узлах, testnet.btclook.com хорош для наблюдения за ними в режиме реального времени. Это неплохая площадка для тестирования подобного поведения.