O nome em inglês de #UTXO é Unspent Transaction Output, que é traduzido como "Unspent Transaction Output". Deve-se dizer que o conceito central da transação Bitcoin e o ponto central de conhecimento da transação é UTXO, portanto, neste artigo falaremos sobre esse UTXO.

Componentes de uma transação

Não existe o conceito de conta no Bitcoin. O chamado saldo de um endereço é, na verdade, calculado contando todas as transações relacionadas a esse endereço. Então, vamos focar o microscópio e primeiro ver quais elementos estão incluídos em uma transação.


O primeiro elemento é input, que é Input. Em primeiro lugar, nem todos os negócios têm isso. Por exemplo, cada bloco contém uma transação especial autônoma pelos mineradores, que é a chamada transação coinbase. É uma transação sem entrada. Nesta transação, uma certa quantidade de Bitcoin é transferida diretamente para o minerador que produziu este bloco. Exceto neste caso especial, todas as outras transações possuem entradas. Por exemplo, se Xiao Ming deseja transferir 1 Bitcoin para Xiao Gang, qual deve ser a entrada desta transação? São algumas transações relacionadas ao endereço de Xiao Ming. Para ser mais preciso, são as saídas de transação não consumidas pertencentes ao endereço de Xiao Ming contidas nessas transações, que é UTXO.

Então, naturalmente, inserimos o segundo elemento, que é que a transação deve incluir saída. "Output" é um termo chamado Output em inglês. Na transação em que Xiao Ming transfere um Bitcoin para Xiao Gang, a saída da transação é o Bitcoin apontando para o endereço de Xiao Zhang. Desta forma, entendemos as três últimas letras do UTXO TXO, onde TX significa transação e O significa Saída.

O último U refere-se a Não gasto, que significa não consumido. Se Xiao Zhang nunca usou esta Saída para inserir outras transações, então esta Saída nunca foi consumida e é um UTXO.

O último elemento é a taxa de manuseio. Em uma transação não baseada em moeda, a entrada deve ser igual à saída mais a taxa de manuseio. A taxa de manuseio deve ser transferida para o minerador. Por uma questão de simplicidade na discussão, ignoramos a taxa de manuseio.

Compreender os componentes básicos das transações Bitcoin significa, na verdade, compreender o UTXO. Vá para qualquer navegador Bitcoin e clique em uma transação específica. Você pode ver os fatores que acabamos de mencionar nos detalhes.

Faça contribuições e faça mudanças

Uma característica do UTXO é que, assim como as moedas, ele não pode ser dividido e usado. Então, como você reúne o valor da entrada durante a transação e como consegue o troco?

Xiao Ming transfere 1 Bitcoin para Xiao Gang. Todo o processo é assim. Xiao Ming precisa coletar entradas suficientes. Por exemplo, na transação anterior correspondente ao endereço de Xiao Ming, ele encontrou um UTXO com valor nominal de 0,9, o que não é suficiente para 1 Bitcoin. entradas são permitidas na transação, então Xiao Ming encontrou outro UTXO com valor nominal de 0,2, então haverá duas entradas nesta transação de transferência. Haverá também duas saídas ao mesmo tempo, uma apontando para o endereço de Xiaogang, com valor nominal de 1 Bitcoin. O outro aponta para o endereço de Xiao Ming, com valor nominal de 0,1 Bitcoin. Esta saída é a mudança.

Para resolver isso, todo o processo é o seguinte: Xiao Ming primeiro precisa coletar insumos suficientes de denominação suficiente. Aqui ele encontrou dois insumos, e esses dois insumos são os resultados de transações anteriores. Essas duas saídas são UTXO antes de serem consumidas, mas assim que a transação atual entrar em vigor, ambas serão consumidas, e dois novos UTXOs serão gerados nesta transação, um apontando para Xiao Ming e outro apontando para Xiao Gang. É equivalente a Xiao Ming e Xiao Gang receberem uma moeda, que pode ser gasta em outras transações no futuro. O saldo dos respectivos endereços de Xiao Ming e Xiao Gang é na verdade a soma de todos os UTXOs correspondentes.

Dessa forma, entenderemos como coletar insumos suficientes, como gerar resultados e fazer alterações nas transações.

Por que usar o modelo UTXO?

Neste ponto temos uma pergunta: o Bitcoin não é apenas um grande livro-razão? Por que não usar o modelo de conta, mas usar o modelo UTXO?

O modelo de conta é o modelo básico de um banco tradicional ou de um serviço como o Alipay. Nesse modelo, tenho minha própria conta correspondente, que registra que tenho 13 yuans, portanto, o número 13 está claramente registrado no sistema. O modelo de conta é realmente muito simples e flexível. É o modelo de conta usado no Ethereum e em alguns outros projetos de blockchain.

Olhando para o Bitcoin novamente, Xiao Ming tem 13 moedas. Na verdade, não existe nenhum número 13 no blockchain, porque só existem transações no blockchain. Mas quando abrimos o navegador blockchain do Bitcoin, podemos ver o saldo correspondente a um endereço. Isso é calculado pelo próprio navegador blockchain e não é algo que está originalmente no blockchain.

Mas muitos especialistas dirão que o UTXO é um modelo muito bom, principalmente porque o UTXO é muito adequado para computação paralela. Esse recurso é muito inteligente em redes de computadores distribuídas. Os detalhes específicos não são o motivo deste artigo. Recomenda-se a leitura de "Comparação de UTXO e modelos de conta", que apresenta uma discussão mais detalhada.

Resumir

UTXO Vamos parar de falar aqui e resumir algumas palavras.

UTXO é um conceito fundamental para a compreensão das transações Bitcoin. Para estudantes que desejam compreender os princípios subjacentes do Bitcoin, esta é uma armadilha que não pode ser contornada. Cada transação pode conter múltiplas entradas e geralmente contém duas saídas. A produção total mais a taxa de manuseio é exatamente igual à entrada total. Cada saída é como uma moeda, tem denominação própria e pertence a um endereço específico. A saída que não foi usada como entrada de outras transações é a “saída da transação não gasta”, que é UTXO.

Não existe o conceito de conta no modelo UTXO, por isso parece um pouco complicado quando comparado com o modelo de conta. No entanto, na verdade tem enormes vantagens, como ser muito propício à computação paralela em sistemas distribuídos. $CKB $BTC