Что такое «неизрасходованный выход»?

Что означает термин «неизрасходованный вывод» в протоколе Биткойн?

Ответы (3)

Неизрасходованный вывод — это просто вывод транзакции, который еще не является вводом другой транзакции.

Возьмем пример из ответа ripper234 (в котором сгенерированные монеты можно сразу потратить, и нам не нужно ждать 100 блоков, пока они созреют), где:

  • Первый блок содержал 50 добытых BTC по адресу A (A = 50)
  • Второй блок содержал 50 добытых BTC на адрес A, транзакцию, отправляющую 20 BTC на адрес B и помещающую сдачу на адрес C (A = 50, B = 20, C = 30).
  • Третий блок содержал 50 добытых BTC на адресе A, транзакция, отправляющая 20 BTC с адреса B на адрес D (A = 50 + 50, C = 30, D = 20).

Итак, после трех блоков остается четыре неизрасходованных выхода:

  • A имеет два неизрасходованных вывода по 50 BTC каждый
  • C имеет один неизрасходованный выход стоимостью 30 BTC
  • У D есть один неизрасходованный выход стоимостью 20 BTC.

И есть два отработанных выхода:

  • 50 BTC, сгенерированные в первом блоке, потраченные во 2-м блоке
  • вывод 20 BTC, созданный во 2-м блоке и потраченный в 3-м блоке

Обратите внимание, что неизрасходованные выходы не объединяются. Два неизрасходованных выхода по 50 BTC по адресу A являются отдельными и останутся отдельными, по крайней мере, до тех пор, пока они не будут потрачены в транзакции.

Я должен что-то упустить, так как я не могу создать никакой логики, которая могла бы объяснить вышеизложенное. A имеет 50 (я предполагаю, что это его баланс, который, как мы говорим, также называется неизрасходованным выходом), и отправляет 20 B и 30 C. Теперь A имеет ноль. Позже у А волшебным образом снова 50, затем 100. Значит ли это, что А начал с более чем 50?
Во второй строке, несомненно, выход A БЫЛ израсходован, сделав его входом для B и C, так почему же они до сих пор не израсходованы?
@JohnLittle A — майнер, он получил еще 50 за второй добытый блок.
Можем ли мы предположить, что: Общий баланс = Сумма неизрасходованных транзакций
@Umarov Я думаю, что Общий баланс = Сумма неизрасходованных транзакций - Сумма потраченных транзакций.
@zhaozhiming Нет, я так не думаю. Читать здесь и здесь
@Umarov Да, ты прав. Я неправильно понял это. Спасибо.

Это означает «Биткойны, которые не были потрачены».

Представьте себе первые дни, когда длина блокчейна была 3 (воображаемая цепочка событий):

  • Первый блок содержал 50 добытых BTC по адресу A.
  • Второй блок содержал 50 добытых BTC на адрес A, TX, отправляющий 20 BTC на адрес B и помещающий сдачу на адрес C.
  • Третий блок содержал 50 добытых BTC на адресе A, tx отправил 20 BTC с адреса B на адрес D.

Итак, после 3 блоков это «общая сумма»:

  • У А есть 100 BTC
  • C имеет 30 BTC
  • D имеет 20 BTC

Итого 150 BTC в неизрасходованных выводах. Это «неизрасходованные монеты» — все сгенерированные BTC, не считая транзакций, которые дважды перемещали BTC.

Я не совсем понимаю, что вы подразумеваете под «не потраченными биткойнами». Так что же такое потраченный биткойн? Когда TX отправляет 20 BTC из пункта А в пункт Б, эти монеты не считаются потраченными? Когда монета будет считаться потраченной ?
@Pacerier Монеты в A считаются потраченными после этой передачи, но теперь монеты находятся в B в «неизрасходованной форме». Обратите внимание, что на самом деле тратятся или не тратятся не биткойны, а «выход». Прочитайте ответ Криса для более подробной информации.
Тогда количество неизрасходованных монет будет только увеличиваться и никогда не уменьшаться, верно? В чем смысл, я имею в виду, разве количество неизрасходованных BTC навсегда не эквивалентно количеству BTC?
Да, к общей стоимости неизрасходованных транзакций относятся все биткойны в обращении.

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

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

Каждый UTXO однозначно идентифицируется своей точкой выхода, комбинацией создавшей его транзакции и ее позиции в списке выходов транзакции. Между прочим, «адреса» — это прокси для сценария блокировки, который должен выполнить получатель, чтобы потратить средства позже, и отправка на один и тот же адрес несколько раз приведет к созданию отдельных UTXO.

Скриншот транзакции с двумя входами и двумя выходами из Blockstream.info

Например, транзакция f4272d...a70f2e, изображенная здесь, (1) тратит два UTXO 5f9de0...be8c55:1и 7be1b7...7c8378:0, и переназначает средства на два новых выхода транзакции, (2) нулевой выход транзакции f4272d...a70f2e:0, платя по адресам 1GxJtQ7...mee8bg, и (3) первые выходы сделка f4272d...a70f2e:1, оплата по адресу bc1qy6...7pdwnc.

Как вы заметили, эта механика не согласуется с общепринятым представлением о том, что биткойн-балансы функционируют как банковские счета. Мы называем эту модель отслеживания средств «моделью UTXO». Вы можете прочитать немного больше о преимуществах модели UTXO здесь: Модель UTXO по сравнению с моделью счета/баланса .