Pular para o conteúdo

Compreendendo o modelo de UTXO estendido

Por volta de 4 min

O manual do EUTXO já está disponível! Aprofunde-se no modelo de contabilidade EUTXO do Cardano aquiopen in new window.

O Cardano (assim como o Bitcoin) é uma blockchain baseada em Unspent Transaction Output (UTXO), que utiliza um modelo contábil diferente para sua contabilidade em relação a outras blockchains baseadas em contas, como o Ethereum. O Cardano implementa um inovador modelo de Unspent Transaction Output estendido (EUTXO)open in new window, que é introduzido pela atualização Alonzo para suportar multiativos e contratos inteligentes.

Visão geral do modelo UTXO

No modelo UTXO, uma transação possui inputs e outputs, onde os inputs são outputs não gastos de transações anteriores. Os ativos são armazenados no ledger em outputs não gastos, ao invés de em contas. Em termos abstratos, pense em uma transação como a ação que desbloqueia outputs anteriores e cria novos.

Output de transação

Um output de transação inclui um endereço (que pode ser pensado como uma fechadura) e um valor. Seguindo essa analogia, a assinatura que pertence ao endereço é a chave para desbloquear o output. Uma vez desbloqueado, um output pode ser utilizado como input. Novas transações gastam outputs de transações anteriores e produzem novos outputs que podem ser consumidos por transações futuras. Cada UTXO só pode ser consumido uma vez, e como um todo. Cada output pode ser gasto por exatamente um input, e um input apenas.

Input de transação

Um input de transação é o output de uma transação anterior. Inputs de transação incluem um ponteiro e uma assinatura criptográfica que age como a chave de desbloqueio. O ponteiro aponta para um output de transação anterior, e a chave desbloqueia este output. Quando um output é desbloqueado por um input, a blockchain marca o output desbloqueado como 'gasto'. Novos outputs criados por uma determinada transação podem então ser apontados por novos inputs, e assim a cadeia continua. Esses novos outputs (que ainda não foram desbloqueados, ou seja, gastos) são os UTXOs. Outputs não gastos são simplesmente isso, outputs que ainda não foram gastos.

Em resumo, as transações consomem outputs não gastos de transações anteriores e produzem novos outputs que podem ser usados como inputs para transações futuras.

eutxo

As carteiras dos usuários gerenciam esses UTXOs e iniciam transações envolvendo os UTXOs de propriedade do usuário. Cada nó da blockchain mantém um registro do subconjunto de todos os UTXOs o tempo todo. Isso é chamado de conjunto de UTXO. Em termos técnicos, este é o chainstate, que é armazenado no diretório de dados de cada nó. Quando um novo bloco é adicionado à cadeia, o chainstate é atualizado de acordo. Este novo bloco contém a lista das últimas transações (incluindo, é claro, um registro de UTXOs gastos e novos criados desde a última atualização do chainstate). Cada nó mantém uma cópia exata do chainstate.

Modelo de UTXO estendido do Cardano

O modelo EUTXO estende o modelo UTXO de duas maneiras:

  1. Generaliza o conceito de ‘endereço’ usando a analogia de fechadura e chave. Em vez de restringir as fechaduras a chaves públicas e chaves a assinaturas, os endereços no modelo EUTXO podem conter lógica arbitrária na forma de scripts. Por exemplo, quando um nó valida uma transação, o nó determina se a transação pode ou não usar determinado output como input. A transação irá procurar o script fornecido pelo endereço do output e executará o script se a transação puder usar o output como input.
  2. A segunda diferença entre UTXO e EUTXO é que os outputs podem carregar (quase) dados arbitrários além de um endereço e valor. Isso torna os scripts muito mais poderosos, permitindo que eles carreguem informações de estado.

Além disso, o EUTXO estende o modelo UTXO permitindo que endereços de output contenham lógica complexa para decidir quais transações podem desbloqueá-los, e adicionando dados personalizados a todos os outputs. Ao validar um endereço, o script acessará os dados sendo transportados pelo output, a transação sendo validada e algumas informações adicionais chamadas de redentores, que a transação fornece para cada input. Ao analisar todas essas informações, o script tem contexto suficiente para fornecer uma resposta ‘sim’ ou ‘não’ em situações e casos de uso que podem ser altamente complexos.

O EUTXO permite lógica arbitrária na forma de scripts. Essa lógica arbitrária inspeciona a transação e os dados para decidir se a transação pode ou não usar um input.

O modelo UTXO, com sua estrutura de grafo, é fundamentalmente diferente do modelo baseado em contas usado por algumas blockchains habilitadas para contratos inteligentes existentes. Como resultado, os padrões de design que funcionam para DApps em blockchains baseadas em contas não se traduzem diretamente para o Cardano. Novos padrões de design são necessários porque a representação subjacente dos dados é diferente.

O EUTXO herda o design por branches do modelo UTXO (Bitcoin), onde um branch é, por definição, uma sequência de transações que requer uma sequência de validações. Para dividir a lógica entre diferentes branches e aplicar mais paralelismo, é essencial construir DApps e outras soluções usando múltiplos UTXOs. Isso proporciona benefícios em termos de escalabilidade, assim como o desenvolvimento de serviços Bitcoin requer a divisão de uma carteira em subcarteiras.

Vantagens do EUTXO

O modelo EUTXO do Cardano oferece um ambiente seguro e versátil para processar várias operações sem falhas do sistema. Esse modelo oferece melhor escalabilidade e privacidade, além de uma lógica de transação mais simplificada, já que cada UTXO só pode ser consumido uma vez e como um todo, o que torna a verificação da transação muito mais simples.

O modelo EUTXO oferece vantagens únicas sobre outros modelos contábeis. O sucesso ou fracasso da validação da transação depende apenas da própria transação e de seus inputs, e não de mais nada na blockchain. Como consequência, a validade de uma transação pode ser verificada off-chain, antes que a transação seja enviada para a blockchain. Uma transação ainda pode falhar se alguma outra transação consumir concorrentemente um input que a transação está esperando, mas se todos os inputs ainda estiverem presentes, a transação está garantida a ter sucesso.

Isso contrasta com um modelo baseado em contas (como o usado pelo Ethereum), onde uma transação pode falhar durante a execução do script. Isso nunca pode acontecer no EUTXO.

Devido à natureza ‘local’ da validação da transação, um alto grau de paralelismo é possível. Um nó poderia, em princípio, validar transações em paralelo, se essas transações não tentarem consumir o mesmo input. Isso é ótimo tanto para eficiência quanto para raciocínio, simplificando a análise de possíveis resultados e provando que ‘nada de ruim’ pode acontecer. Você pode se aprofundar no post do blog sobre o modelo EUTXO.

Um recurso poderoso do modelo EUTXO é que as taxas necessárias para uma transação válida podem ser previstas com precisão antes de postá-la. Isso é uma característica única não encontrada em modelos baseados em contas. Blockchains baseadas em contas, como o Ethereum, são indeterminísticas, o que significa que não podem garantir o efeito da transação na cadeia. Essa incerteza apresenta riscos de perda monetária, taxas inesperadamente altas e oportunidades adicionais para comportamento adversarial.

Para resumir, o EUTXO oferece maior segurança, previsibilidade de custos de execução de contratos inteligentes (sem surpresas desagradáveis) e uma paralelização mais poderosa.

Última atualização:
Contribuidores: cauechianca