iniciar
iniciar

O Bitcoin é baseado em parte em um banco de dados que registra todas as transações, conhecido como “Blockchain”. Esse termo agora é famoso, mas você sabia que existe outro banco de dados que é igualmente importante para a operação dos nós do Bitcoin? Esse elemento muito menos conhecido é o conjunto UTXO.
Neste artigo, convido você a descobrir o que é o conjunto UTXO e seu papel no funcionamento do Bitcoin. Também estudaremos por que sua evolução pode representar uma ameaça à estabilidade do Bitcoin no médio prazo, bem como quais soluções estão sendo consideradas para resolver esse problema.
UM TUXO (Saída de transação não gasta) é uma saída de transação de Bitcoin que ainda não foi gasta. Concretamente, esses são pedaços de bitcoin mais ou menos grandes que um usuário possui e que estão disponíveis para serem usados em uma transação futura.
Cada UTXO representa uma certa quantidade de bitcoin e é protegido por um script que define as condições sob as quais ele pode ser gasto. Essas condições geralmente exigem uma assinatura obtida usando uma chave privada que o proprietário legítimo tenha.
Simplificando, o UTXO para Bitcoin é o que o bilhete é no euro. Bitcoin é a unidade de conta usada no Bitcoin, e UTXO é o meio que permite que essas unidades de conta sejam representadas.

Uma transação consiste na transferência de bitcoins de um conjunto de entradas (Entradas) para um conjunto de saídas (Saídas).
As entradas de uma transação correspondem aos UTXOs de transações anteriores, que são consumidos durante essa nova transação. Um script de assinatura (ScriptSig) é usado para desbloquear cada UTXO nas entradas, satisfazendo as condições de gastos definidas ao criar o UTXO.
Em troca, a transação cria novos UTXOs nas saídas. Cada saída associa uma quantidade de bitcoins a uma nova condição de gasto (Script PubKey), geralmente usando um endereço de recebimento. Esses UTXOs recém-criados estarão então disponíveis para serem usados como entradas em transações futuras.

O conjunto UTXO representa todos os UTXOs existentes a qualquer momento no Bitcoin. Em outras palavras, é uma lista exaustiva de todas as peças de bitcoin que estão disponíveis para serem gastas. Assim, se somarmos os valores de todos os UTXOs presentes no conjunto UTXO, obteremos a oferta monetária total em circulação no Bitcoin.
.png)
Cada nó na rede mantém seu próprio conjunto UTXO completo localmente, em paralelo com o Blockchain. Esse conjunto UTXO é atualizado constantemente à medida que novas transações são integradas aos blocos.
Quando uma nova transação é enviada por um usuário na rede, cada nó verifica se os UTXOs usados como entradas estão presentes em seu conjunto UTXO. Isso garante que os bitcoins gastos realmente existam e ainda não tenham sido consumidos em outra transação. Se o UTXO for legítimo, a transação será aceita, caso contrário, será rejeitada para evitar gastos duplos.

Depois que a transação é validada, o nó atualiza seu conjunto de UTXO: ele remove os UTXOs usados como entradas e adiciona os novos UTXOs criados como saídas. Como resultado, o conjunto UTXO é constantemente atualizado para refletir as moedas de bitcoin disponíveis.

Na maioria dos clientes Bitcoin Core, o conjunto UTXO é mantido no arquivo”Chainstate”.
➤ Saiba mais sobre como funciona um nó de Bitcoin.
A UTXO está crescendo de forma contínua e rápida no Bitcoin. Devido a vários fatores externos e internos ao sistema, a proporção média de UTXOs criados pelo UTXO consumidos é muito desequilibrada. Essa expansão se deve, em parte, ao aumento do preço do Bitcoin, que incentiva o uso de UTXOs menores, aumentando assim seu número total. O aumento da adoção também está gerando uma maior necessidade de UTXOs.
Há também a estrutura clássica das transações de pagamento de Bitcoin, normalmente uma entrada para duas saídas, o que cria dois UTXOs para um único consumido. Finalmente, o CIOH (Heurística comum de propriedade de insumos), representa um problema em termos de confidencialidade ao consolidar vários UTXOs e constitui um obstáculo adicional para reduzir seu número. Assim, UTXO e nós estão destinados ao crescimento natural e inevitável.
Esse problema é conhecido há vários anos pelos desenvolvedores do Bitcoin Core. A atualização do SegWit de 2017 também introduziu um incentivo econômico para a consolidação, reduzindo as taxas para transações que consomem mais insumos e criam menos saídas. No entanto, essa medida não foi suficiente para conter o fenômeno.
O problema com esse crescimento é que manter o conjunto UTXO requer cada vez mais RAM. Para que os nós possam validar transações de forma eficaz, uma parte do conjunto UTXO deve ser armazenada na RAM, pois isso permite uma verificação rápida. Esse problema também afeta o tempo de sincronização inicial (LICITAÇÕES), ou seja, o tempo necessário para baixar e validar todo o blockchain quando um novo nó é lançado.
À medida que o tamanho do UTXO aumenta, também aumenta a necessidade de RAM. No entanto, o aumento na capacidade de RAM do computador (lei de Moore) não segue a mesma curva do crescimento do conjunto UTXO. Se essa tendência continuar, operar um nó Bitcoin se tornará cada vez mais caro em termos de hardware.
Esse aumento nos requisitos de hardware para executar um nó pode afetar a descentralização e a segurança da rede Bitcoin. Se o custo de manutenção de um nó aumentar, menos pessoas poderão fazê-lo, o que reduzirá o número de nós e diminuirá a distribuição e a robustez da rede. O tamanho do UTXO é, portanto, um grande desafio para a viabilidade do Bitcoin no médio prazo.
A solução que parece estar surgindo para resolver esse problema do aumento do tamanho do UTXO definido no Bitcoin é o Utreexo.
O Utreexo é uma solução inventada por Tadge Dryja (que também é cocriador da Lightning Network) para compactar o conjunto UTXO usando um acumulador baseado em árvores Merkle. O UTXO clássico, que contém todos os UTXOs, requer muito espaço de armazenamento. Com o Utreexo, essa restrição é aliviada, pois os nós do Bitcoin não guardam mais todos os UTXOs, mas apenas algumas impressões digitais criptográficas. Isso reduz drasticamente os requisitos de RAM e armazenamento.
Quando um usuário torna uma transação compatível com o Utreexo, ele fornece a prova de posse dos UTXOs usados e os caminhos Merkle associados. O nó então verifica essa evidência para garantir que os UTXOs existam em geral com base em sua pegada criptográfica, sem precisar armazenar todos os dados.

O Utreexo pode ser implementado de duas maneiras. A primeira é generalizar seu uso para que todas as transações contenham essa evidência. No entanto, isso aumentaria o tamanho dos blocos, o que afetaria as necessidades de largura de banda e armazenamento. O segundo método é baseado em”Nodos de ponte”: nós completos que também armazenam o conjunto UTXO completo e fornecem as evidências necessárias para os nós Utreexo. O Utreexo seria então uma opção para usuários que não podem pagar por um nó completo. Em ambos os casos, há um compromisso, seja em termos de recursos necessários ou de dependência dos Bridge Nodes.
➤ Descubra o que é Mempool em um node Bitcoin.
O conjunto UTXO é uma grande lista de todas as peças de bitcoin que existem a qualquer momento, que é mantida por cada nó. Ele desempenha um papel importante na forma como o Bitcoin funciona, mas seu crescimento rápido e quase natural representará desafios para o futuro. Se o tamanho do UTXO continuar aumentando, o custo da execução de um nó pode se tornar proibitivo para alguns usuários.
A Utreexo oferece uma solução reduzindo os requisitos de RAM por meio do uso de acumuladores criptográficos. No entanto, esse protocolo necessariamente envolve compromissos, seja no tamanho dos blocos ou em termos de dependência dos Bridge Nodes. Outras soluções podem surgir no futuro, mas é certo que será um debate técnico que deverá ser abordado nos próximos anos.
%201.png)
