что происходит с UTXO, когда сценарий вывода транзакции выполняется?

Насколько я понимаю из книги «Освоение биткойнов», вывод транзакции содержит три вещи:

  1. Сумма - стоимость биткойнов в сатоши
  2. Locking-Script-Size - Длина Locking-Script в байтах, чтобы следовать
  3. Locking-Script — скрипт, определяющий условия, необходимые для траты вывода.

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

Вопросы по этому делу

  1. Что произойдет с UTXO, упомянутыми в выводе родительской транзакции? Исчезнет ли он в транзакции или произойдут какие-либо изменения?
  2. Только действительная транзакция, которая правильно удовлетворяет условиям UTXO, приводит к тому, что UTXO помечается как «израсходованный» и удаляется из набора доступных (неизрасходованных) UTXO.

Это было утверждение из книги, теперь есть какой-то отдельный пул UTXO, или это просто означало транзакцию, лежащую в листовых узлах дерева Меркеля? И что делает

удален из набора доступных (неизрасходованных) UTXO.

иметь в виду?

  1. Будет ли вывод дочерней транзакции содержать те же идентификаторы транзакций, что и ее родительский вывод?

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

[<7dbc497969c7475e45d952c4a872e213fb15d45e5cd3473c386a71a1b0c136a1:0 with 25000000 Satoshis>, \ <7f42eda67921ee92eae5f79bd37c68c9cb859b899ce70dba68c48338857b7818:0 with 16100000 Satoshis>, \ <6596fd070679de96e405d52b51b8e1d644029108ec4cbfe451454486796a1ecf:0 with 16050000 Satoshis>]

Пожалуйста, просветите меня, если я что-то упускаю.

Ответы (1)

Я хотел бы сначала уточнить вещь, прежде чем пытаться ответить, и это тоже из книги:

неизрасходованные выходные данные транзакции (UTXO) UTXO — это неизрасходованные выходные данные транзакции, которые можно использовать в качестве входных данных для новой транзакции.

UTXO не является элементом как таковым, это описание набора данных в транзакции. UTXO можно потратить или не потратить. Чтобы транзакции стали действительными, они, конечно, могут использовать только неизрасходованные средства. Таким образом, при использовании UTXO из предыдущей транзакции, расходовании всех средств на новый адрес и обратный адрес, предыдущий UTXO становится частью двух новых UTXO. И да, предыдущий UTXO потрачен, задокументирован в блокчейне и больше не может быть использован.

Когда дело доходит до добавления или удаления UTXO: здесь речь идет о мемпуле. Список неизрасходованных tx сохраняется биткойн-клиентом в памяти. Чтобы увидеть, насколько велика база данных UTXO, см. здесь. Это то, что вы описали как отдельный пул. И в этом смысле

удален из набора доступных (неизрасходованных) UTXO

просто означает, что когда вы отправили транзакцию, этот конкретный UTXO должен быть удален из мемпула. Я не уверен на 100%, но мемпул необходим, чтобы проверить, действителен ли tx или нет (он же тратит только действительный UTXO из мемпула). См. также стр. 119 в книге.

Будет ли вывод дочерней транзакции содержать те же идентификаторы транзакций, что и ее родительский вывод?

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

Предполагая, что у вас есть (вы видите) эти три TX_ID, минусы и значения,

7dbc497969c7475e45d952c4a872e213fb15d45e5cd3473c386a71a1b0c136a1:0 25000000 Satoshis
7f42eda67921ee92eae5f79bd37c68c9cb859b899ce70dba68c48338857b7818:0 16100000 Satoshis
6596fd070679de96e405d52b51b8e1d644029108ec4cbfe451454486796a1ecf:0 16050000 Satoshis

Программное обеспечение кошелька будет знать, что это неизрасходованные выходные данные, и его можно попросить использовать их в качестве входных данных для новой транзакции ~ 0,57 BTC на новый адрес.

Помимо очень хорошей книги Андреаса, я также рекомендую запись в блоге Кена Ширрифа, где он объясняет, как вручную подписывать tx . Это также делает вещи очень ясными.

U в UTXO означает неизрасходованные. UTXO по определению не израсходован. В противном случае это просто потраченный выход.
Пожалуйста, поправьте меня, если я ошибаюсь. Транзакция содержит как входы, так и выходы. Неизрасходованный вывод транзакции становится частью пула UTXO. Как только узел получает, он удаляет UTXO из своего пула, как только он проходит проверку и транслирует транзакцию. Когда другие узлы также получают эту транзакцию, они также удаляют соответствующий UTXO из своих пулов. Это?
Да, tx содержит входы и выходы. UTXO становится частью мемпула. Он удаляется из мемпула, когда появляется в блоке. Смотрите также ответ Питера здесь: bitcoin.stackexchange.com/questions/46152/…
Также Марч здесь: bitcoin.stackexchange.com/questions/47926/…
И нашел хорошую ссылку на UTXO здесь: eprint.iacr.org/2017/1095.pdf