Canton é um protocolo de rede de livro-razão distribuído desenvolvido pela Digital Asset, principalmente utilizado para a execução de contratos inteligentes e transações com proteção de privacidade no setor financeiro.

Ele é baseado na linguagem de contratos inteligentes Daml e utiliza um modelo UTXO (Saída de Transação Não Gasta) expandido. Este modelo é semelhante ao UTXO do Bitcoin, mas foi significativamente otimizado para suportar privacidade, múltiplas partes e escalabilidade. Abaixo, explicarei passo a passo seu funcionamento, características principais e as diferenças em relação ao UTXO tradicional (como o Bitcoin).

1. Princípios básicos de funcionamento

O modelo UTXO do Canton considera o estado do livro-razão como um "conjunto de contratos ativos" (Active Contract Set, ACS), semelhante ao conjunto de UTXO no Bitcoin. Cada contrato (semelhante a um UTXO) representa um ativo ou direito, podendo ser criado, referenciado ou arquivado (ou seja, "gasto") por meio de transações.

• Estrutura de transação: Uma transação é uma estrutura em árvore, que pode conter múltiplas subtransações (sub-transactions). Uma transação pode:

◦ Criar novo contrato (gerando novo UTXO).

◦ Arquivar contratos existentes (gastando UTXO).

◦ Referenciar um contrato, sem necessariamente arquivá-lo.

• Processo de validação: As partes (parties) validam a consistência da transação, a conformidade com a lógica do contrato e a autorização por meio do protocolo Canton. Cada parte só vê sua própria "visão" (view), ou seja, um subconjunto do ACS, mas o estado global permanece consistente.

• Mecanismo de sincronização: Utiliza o protocolo de compromisso em duas fases (two-phase commit) e protocolos de ordenação para garantir que as visões em diferentes nós concordem sobre o estado ativo/arquivado dos contratos.

Esse design permite que as transações formem um gráfico global de transações, mas cada nó precisa validar apenas sua própria visão local, possibilitando um processamento distribuído eficiente.

2. Características principais

• Privacidade de subtransações: Diferentes partes de uma transação podem ser visíveis para diferentes participantes, garantindo que informações sensíveis (como detalhes da transação) não sejam vistas por partes não relacionadas, enquanto mantém a consistência geral. Isso é especialmente útil em cenários financeiros, por exemplo, ao realizar liquidações com múltiplas partes, protegendo segredos comerciais.

• Referências não consumidoras (Non-Consuming Transactions): Diferentemente da regra que exige "gastar" um UTXO, o Canton permite que uma transação referencie um contrato sem arquivá-lo (usando as palavras-chave "consuming" e "nonconsuming" no Daml). Isso é adequado para referenciar dados estáticos (como tabelas de taxas de juros), reduzindo o bloqueio desnecessário de contratos.

• Processamento paralelo e escalabilidade: As dependências de transação são definidas de forma clara, permitindo que subtransações independentes sejam executadas em infraestruturas diferentes de forma paralela, suportando escalabilidade horizontal e adaptando-se às variações de carga da rede.

• Privacidade e consistência: O protocolo Canton garante que as visões das partes sejam consistentes, mesmo que ninguém veja o gráfico completo de transações, possibilitando a verificação da correção global.

3. Diferenças em relação ao modelo tradicional de UTXO (como o Bitcoin)

O modelo do Canton é uma extensão do modelo UTXO do Bitcoin, com diferenças principais incluindo:

• Visibilidade: No Bitcoin, todos os nós podem ver o gráfico completo de transações e o conjunto de UTXO, o que causa vazamento de privacidade. No Canton, nenhuma parte vê a visão completa, apenas subconjuntos personalizados, melhorando a proteção de privacidade.

• Flexibilidade de contratos: No Bitcoin, referenciar um UTXO sempre o arquiva (consumindo-o), o que pode causar concorrência e ineficiência. O Canton suporta referências não consumidoras, onde o arquivamento é decidido pela lógica do contrato Daml, oferecendo maior flexibilidade e reduzindo a concorrência.

• Suporte a múltiplas partes: O Bitcoin opera com broadcast global em uma única cadeia, enquanto o Canton é projetado para uma rede com múltiplas partes, enfatizando divulgação seletiva e interoperabilidade entre nós.

Globalmente, o modelo UTXO do Canton é mais adequado para aplicações corporativas, como tokenização de ativos ou pagamentos transfronteiriços, equilibrando segurança, privacidade e desempenho.