Английское название #UTXO — Unspent Transaction Output, что переводится как «Неизрасходованный вывод транзакции». Следует сказать, что основной концепцией транзакции Биткойн и основной точкой знания транзакции является UTXO, поэтому в этой статье мы поговорим об этом UTXO.

Компоненты транзакции

В Биткойне нет понятия учетной записи. Так называемый баланс адреса фактически рассчитывается путем подсчета всех транзакций, связанных с этим адресом. Итак, давайте сосредоточим внимание на микроскопе и сначала посмотрим, какие элементы включены в транзакцию.


Первый элемент — input, то есть Input. Во-первых, не во всех сделках это есть. Например, каждый блок содержит специальную транзакцию, автономную майнерами, которая представляет собой так называемую транзакцию coinbase. Это транзакция без ввода. В ходе этой транзакции определенное количество биткойнов напрямую передается майнеру, создавшему этот блок. За исключением этого особого случая, все остальные транзакции имеют входы. Например, если Сяо Мин хочет перевести 1 биткойн Сяо Гангу, каким должен быть ввод этой транзакции? Это некоторые транзакции, связанные с адресом Сяо Мина. Точнее, это неизрасходованные выходные данные транзакций, принадлежащие адресу Сяо Мина, включенные в эти транзакции, то есть UTXO.

Поэтому мы естественным образом вводим второй элемент, а именно то, что транзакция должна включать вывод. «Вывод» — это термин, называемый «Вывод» на английском языке. В транзакции, в которой Сяо Мин переводит один биткойн Сяо Гану, выходом транзакции является биткойн, указывающий на адрес Сяо Чжана. Таким образом, мы понимаем последние три буквы в UTXO TXO, где TX означает транзакцию, а O означает вывод.

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

Последний элемент — это комиссия за обработку. В транзакции, не связанной с Coinbase, входные данные должны быть равны выходу плюс комиссия за обработку должна быть передана майнеру. Для простоты обсуждения мы игнорируем плату за обработку.

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

Внесите данные и внесите изменения

Одной из особенностей UTXO является то, что, как и монеты, его нельзя разбить на части и использовать. Так как же собрать вводимую сумму во время транзакции и как получить сдачу?

Сяо Мин переводит 1 биткойн Сяо Гангу. Весь процесс выглядит следующим образом: Сяо Мину необходимо собрать достаточно входных данных. Например, в предыдущей транзакции, соответствующей адресу Сяо Мина, он нашел UTXO с номиналом 0,9, чего, к счастью, недостаточно. В транзакции разрешены входы, поэтому Сяо Мин нашел еще один UTXO с номиналом 0,2, поэтому в этой транзакции передачи будет два входа. Также будет одновременно два выхода, один из которых будет указывать на адрес Сяогана, номиналом 1 биткойн. Другой указывает на адрес Сяо Мина с номинальной стоимостью 0,1 биткойна. Этот вывод является сдачей.

Чтобы разобраться, весь процесс выглядит следующим образом: сначала Сяо Мину нужно собрать достаточное количество входов достаточного номинала. Здесь он нашел два входа, а сами эти два входа являются выходами предыдущих транзакций. Эти два выхода являются UTXO до того, как они будут использованы, но как только текущая транзакция вступит в силу, они оба будут использованы, и в этой транзакции будут сгенерированы два новых UTXO, один из которых будет указывать на Сяо Мина, а другой — на Сяо Ганга. Это эквивалентно получению Сяо Мином и Сяо Ганом монеты, которую можно потратить на другие транзакции в будущем. Баланс соответствующих адресов Сяо Мина и Сяо Гана на самом деле представляет собой сумму всех соответствующих UTXO.

Таким образом, мы поймем, как собрать достаточно входных данных, как генерировать выходные данные и вносить изменения в транзакции.

Зачем использовать модель UTXO?

На данный момент у нас возникает вопрос: не является ли Биткойн просто большим реестром? Почему бы не использовать модель аккаунта, а использовать модель UTXO?

Модель счета представляет собой базовую модель традиционного банка или такой службы, как Alipay. В соответствии с этой моделью у меня есть собственный соответствующий счет, на котором записано, что у меня есть 13 юаней, поэтому число 13 четко записано в системе. Модель учетной записи действительно очень проста и очень гибкая. Это модель учетной записи, используемая в Ethereum и некоторых других проектах блокчейнов.

Снова взглянув на Биткойн, у Сяо Мина 13 монет. На самом деле в блокчейне вообще нет номера 13, потому что в блокчейне есть только транзакции. Но когда мы открываем браузер блокчейна Биткойн, мы видим баланс, соответствующий адресу. Он рассчитывается самим браузером блокчейна и не является чем-то, что изначально находится в блокчейне.

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

Подвести итог

UTXO Давайте на этом прекратим разговор и подведем итог несколькими словами.

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

В модели UTXO нет понятия учетной записи, поэтому она кажется немного запутанной по сравнению с моделью учетной записи, но на самом деле она имеет огромные преимущества, например, очень полезна для параллельных вычислений в распределенных системах. $CKB $BTC