UTXO vs. Modelos baseados em conta

As duas plataformas de criptomoeda mais conhecidas, Bitcoin e Ethereum, utilizam diferentes modelos de transação para suas plataformas, cada uma com suas próprias vantagens e desvantagens específicas sobre a outra. Compreender como eles funcionam a partir de uma perspectiva conceitual é importante para um melhor entendimento da estrutura geral dessas plataformas e outras plataformas construídas com os mesmos modelos ou semelhantes.

Embora o consenso em plataformas de criptomoeda seja necessário para proteger a rede e validar o estado do blockchain, o modelo de transação empregado por uma plataforma é usado para provar a propriedade sobre tokens. Bitcoin usa o esquema Unspent Transaction Output (UTXO), enquanto Ethereum usa o modelo baseado em conta. Ambos os modelos são, em seu nível mais básico, modelos para rastrear o estado do banco de dados, e a implementação de cada um em suas respectivas plataformas tem um propósito e função específicos na estrutura mais ampla da plataforma.

UTXO vs. Modelos baseados em conta

Bitcoin foi a primeira criptomoeda e, portanto, a primeira plataforma a utilizar o modelo UTXO mais abstrato, enquanto o modelo baseado em contas da Ethereum representa mais fundamentalmente um modelo semelhante ao modelo de conta bancária tradicional.

O esquema UTXO e seu uso em Bitcoin

O modelo de saída de transação não gasto aplicado no Bitcoin é um conceito mais abstrato do que o modelo baseado em conta usado no Ethereum. É um componente vital do Bitcoin que permite que o blockchain seja transparente em todas as transações sendo vinculadas por uma cadeia de assinaturas digitais.

O que é consenso de Nakamoto

Leia: Nosso Guia para o Consenso de Nakamoto

No modelo UTXO, cada proprietário de token transfere uma moeda que possui para outro assinando digitalmente o hash de uma transação anterior e a chave pública (endereço) do próximo proprietário e adicionando-os ao final da moeda. O mecanismo é essencialmente uma transgressão contínua de entradas e saídas em que o proprietário dos tokens na verdade não possui diretamente os tokens, mas sim a saída de um número específico de tokens que podem então ser transferidos como entrada para um novo proprietário que então controla as novas saídas. Existem 3 regras fundamentais no esquema UTXO.

  • Cada transação deve provar que a soma de suas entradas é maior do que a soma de suas saídas.
  • Cada entrada referenciada deve ser válida e ainda não gasta.
  • A transação deve ter uma assinatura que corresponda ao proprietário da entrada para cada entrada.

Portanto, em uma transação UTXO típica, vamos usar Alice e Bob como exemplo. Alice possui 10 BTC e deseja enviar 5 para Bob. Bob não possui nenhum BTC. Em vez de possuir 10 BTC, Alice possui 2 saídas de transação diferentes consistindo em 6 e 4 BTC, respectivamente. A carteira de Alice escolheria a melhor saída para enviar para Bob. Nesse caso, a saída de 6 BTC seria enviada a Bob, e Bob se tornaria o proprietário de 5 BTC por ter o endereço, a assinatura digital e a chave digital necessários para provar a propriedade da nova saída. O 1 BTC adicional de alteração da transação é devolvido a Alice e é conhecido como saída de transação não gasta (UTXO). Agora, Alice ainda possui duas saídas, mas elas são compostas por 1 e 4 BTC, respectivamente. Bob agora controla 1 saída no valor de 5 BTC. Um beneficiário pode verificar as assinaturas para verificar a cadeia de propriedade dos tokens no livro-razão público distribuído. É importante ressaltar que os mineiros geram Bitcoin por meio de uma transação coinbase, que não contém nenhuma entrada.

Modelo UTXO

Modelo UTXO, imagem de Bitcoin.org

Logicamente, o modelo UTXO é muito mais simples do que o modelo de conta em termos de escalabilidade e, criticamente, permite que o modelo de consenso de Bitcoin (PoW) permaneça simples. Isso tem ramificações importantes para a escalabilidade e segurança da rede em geral. Bitcoin também oferece suporte a vários tipos de scripts que permitem processar lógicas de pagamento complexas.

O design do modelo UTXO tem inúmeras vantagens que o fazem se destacar como um mecanismo elegantemente compatível dentro da arquitetura de rede Bitcoin. Uma das vantagens mais importantes deste sistema é que permite a realização de Verificações de Pagamento Simples (SPV) na rede. Essas carteiras leves podem interagir com o blockchain do Bitcoin de maneira descentralizada e confiável, sem realmente ter que baixar todo o blockchain do Bitcoin, reduzindo significativamente o armazenamento e permitindo que os aplicativos de telefone interajam na rede do Bitcoin.

Além disso, o modelo UTXO cria um ambiente onde a capacidade de processamento paralelo em vários endereços é possível, permitindo uma infraestrutura muito melhor para escalabilidade. As transações podem ser processadas em paralelo, uma vez que todas se referem a entradas independentes. Por fim, se um usuário gerar um novo endereço para cada transação, será mais difícil vincular contas, apesar da transparência do blockchain. Esta é a propriedade pseudo anônima do Bitcoin, no entanto, as técnicas cada vez mais prevalentes para rastrear transações e vincular contas fizeram com que o Bitcoin não fosse tão fungível como inicialmente percebido.

Apesar de algumas vantagens substanciais do modelo UTXO em sua aplicação em uma estrutura como o Bitcoin, ainda existem algumas desvantagens importantes, especialmente quando o modelo é aplicado a uma plataforma completa de Turing mais complexa, como Ethereum. Por exemplo, construir aplicativos no design UTXO força os desenvolvedores a limitar a quantidade de estado impactado por cada saída. Da mesma forma, o esquema de transação UTXO inerentemente não é compatível com o desenvolvimento de contratos inteligentes, uma vez que o conceito é realmente adequado para uso em aplicações onde cada saída é propriedade de apenas uma pessoa e pode ser quebrada se a saída puder ser consumida por duas ou mais pessoas em o mesmo tempo.

O modelo baseado em contas e seu uso na Ethereum

A gestão de saldos no modelo Account Based é o mais familiar dos dois modelos e funciona no Ethereum de forma semelhante à forma como funciona no mundo bancário tradicional. Essencialmente, cada conta experimenta valor direto e transferências de informações com transições de estado.

Guia Ethereum

Leia: Nosso guia completo para Ethereum

Por exemplo, Alice e Bob querem fazer transações um com o outro. Alice deseja enviar 5 tokens a Bob e Alice tem 10 tokens em sua conta, enquanto Bob tem 0. No modelo baseado em conta, Alice envia a Bob 5 tokens que são subtraídos de sua conta e adicionados à conta de Bob. Alice agora tem 5 tokens e Bob 5. Este é um conceito simples e é como o modelo financeiro tradicional de transações funciona, uma vez que é fácil rastrear e evitar gastos em dobro porque há autoridades centralizadas em todo o sistema financeiro monitorando o fluxo de transações.

No Ethereum, existem dois tipos de contas, contas de usuário controladas por chave privada e contas controladas por código de contrato (contratos inteligentes). Isso é importante porque é uma razão vital pela qual Ethereum escolheu o modelo baseado em contas ao invés do modelo UTXO. Como o Ethereum usa uma linguagem de programação completa de Turing (Solidity) e uma de suas principais características são os contratos inteligentes, o modelo de conta oferece muito mais simplicidade do que o modelo baseado em UTXO usado pelo Bitcoin. Ethereum tem uma quantidade substancial de aplicativos descentralizados que contêm estado e código arbitrários, não faz sentido empregar o modelo UTXO usado no Bitcoin, pois isso limitaria inerentemente a capacidade de execução de contratos inteligentes.

Cada conta no Ethereum tem seu próprio saldo, armazenamento e espaço de código para ligar para outras contas ou endereços. Uma transação é válida se uma conta de envio tiver saldo suficiente para pagá-la. Se a conta receptora tiver código, o código será executado, alterando tudo, desde o armazenamento interno até a criação de mensagens adicionais que podem ter efeitos subsequentes em débitos e créditos para outras contas. Devido a isso, cada bloco recém-gerado pode afetar potencialmente o estado de todas as outras contas.

As vantagens específicas proporcionadas pelo modelo de conta no Ethereum são maior economia de espaço, simplicidade, familiaridade e fungibilidade. Cada transação no modelo de conta precisa apenas fazer uma referência e assinatura que produz uma saída, ao contrário do design UTXO. Isso permite uma economia substancial de espaço, o que é vital para uma plataforma tão grande e complexa como a Ethereum. Além da familiaridade e simplicidade possibilitadas pelo modelo baseado em contas, há um grau muito maior de fungibilidade na blockchain Ethereum do que em comparação com Bitcoin. Os usuários do Ethereum realizam transações usando chamadas de procedimento remoto do cliente, o que torna o rastreamento de transações internas no livro razão do Ethereum muito mais desafiador do que o Bitcoin, onde todas as transações são publicamente vinculáveis ​​através do livro-razão rastreando as assinaturas digitais do esquema UTXO. Assim, a fungibilidade é aumentada, uma vez que a lista negra de moedas usadas para atividades ilícitas é difícil de realizar.

Por outro lado, as desvantagens do modelo de conta giram em torno dele, limitando a escalabilidade da plataforma. Embora uma implementação necessária devido ao design do Ethereum, os problemas de escalabilidade em torno do desenvolvimento do Ethereum estão bem estabelecidos e uma preocupação que se tornou a vanguarda da indústria em geral. Projetar a lógica em torno do modelo de conta não é tão trivial quanto com o modelo UTXO e pode ter implicações potenciais em outros conceitos de design dentro da plataforma conforme ela continua a crescer.

Conclusão

Dentro das plataformas de criptomoeda, há um conjunto diversificado de conceitos de design e mecanismos técnicos que vão para a plataforma, podendo funcionar como um sistema viável, seguro e utilizável.

Os modelos de transação usados ​​por tais plataformas empregam o uso de criptografia para verificar a propriedade de tokens na rede. O esquema UTXO funciona perfeitamente para Bitcoin, enquanto o modelo baseado em conta usado no Ethereum é voltado para oferecer suporte a suas aplicações mais complexas e necessidades de contrato.

As iterações subsequentes dessas plataformas podem ajustar e otimizar esses mecanismos para melhor se adequar ao desenvolvimento futuro de suas respectivas redes, no entanto, ser capaz de entender suas implementações atuais irá percorrer um longo caminho para permitir um entendimento mais abrangente de como suas redes funcionam e por que elas são tão novos.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me