Uma análise das transações compensatórias, da liquidação parcial e dos limites da atomicidade em pagamentos entre cadeias
Muitas instituições e desenvolvedores ainda consideram que um comprovante de transação bem-sucedida na cadeia do remetente prova que o pagamento foi concluído. Em sistemas entre cadeias, muitas vezes não é esse o caso.
Ao analisar a documentação técnica e observar o comportamento básico em ambientes controlados, um padrão aparece de forma consistente: o débito na cadeia de origem pode ser confirmado com sucesso, enquanto uma etapa posterior na cadeia de destino ainda pode falhar. Quando isso acontece, os fundos não são devolvidos automaticamente. Em geral, o sistema executa uma **transação compensatória**.
Atomicidade parcial
A documentação oficial da Rayls (*Enviar transações Enygma* e *Como funciona o Enygma*) descreve claramente os limites da atomicidade:
- A chamada na origem é atômica — a queima e a solicitação de transferência são bem-sucedidas ou falham juntas.
- Cada etapa individual no destino é atômica — a emissão e quaisquer etapas do programa nessa etapa são bem-sucedidas ou falham juntas.
- Todas as etapas de um único pagamento **não são** atômicas. As etapas podem ser liquidadas de forma independente.
A documentação afirma explicitamente que “As falhas são revertidas, não desfeitas”. A transação no Hub e a emissão na cadeia de destino são transações separadas. Se a emissão ou uma etapa do programa falhar no destino, o relayer executa uma transação compensatória para devolver o valor ao remetente. Não se trata de uma única transação atômica entre cadeias.
Até que o reembolso seja efetivamente recebido, o saldo do remetente na cadeia de origem permanece reduzido pelo valor que falhou.
O que é uma transação compensatória?
Uma transação compensatória é uma transação **nova e separada**, criada para corrigir uma falha. Não é uma reversão da transação original.
De acordo com a documentação do RaylsEnygmaHandler, se qualquer etapa do programa for revertida, toda a etapa (incluindo a emissão) falha. Em seguida, o relayer devolve o valor ao remetente na cadeia de origem por meio de um mecanismo compensatório. O reembolso aparece sob o **mesmo ID de referência** e é registrado com o status `RECEIVED` na cadeia de origem, em vez de ser uma simples reversão do débito original.
Um exemplo simples, coerente com o comportamento documentado:
- A origem debita 10.
- Um destino recebe 4 com sucesso.
- Outro destino falha durante a execução.
- Uma transação compensatória separada devolve 6 ao remetente.
O resultado final é 4 entregues + 6 devolvidos = 10. A transação original na origem continua registrada como bem-sucedida.
Diagramas
Fluxo básico:

Atômico vs. múltiplas etapas:

Exemplo de liquidação parcial:

Riscos práticos que vale a pena observar
Com base na documentação e nas observações em ambientes controlados, vários pontos costumam passar despercebidos:
1. Os reembolsos não são instantâneos
A própria documentação da Rayls observa que, até o reembolso ser efetivado, o saldo do remetente permanece reduzido. Atrasos no relayer ou problemas na geração de provas podem deixar os fundos pendentes por mais tempo do que o esperado.
2. A reconciliação deve ser feita por etapa
Um único comprovante de origem não é suficiente. É preciso conferir o que saiu da origem, o que chegou a cada destino, o que falhou e o que foi efetivamente devolvido por meio da transação compensatória (normalmente sob o mesmo ID de referência).
3. Dependência de componentes off-chain
A detecção de falhas e a iniciação de reembolsos geralmente dependem de relayers. Mesmo em testes locais, podem aparecer avisos relacionados a compromissos de saldo ou à geração de provas. Esses riscos são maiores em produção.
4. Resultados controlados ≠ garantias de produção
Um comportamento sem falhas em um ambiente de testes, com falhas provocadas deliberadamente, não se traduz automaticamente em ambientes de produção com carga concorrente, problemas de rede ou inconsistências de estado.
Conclusão
Um comprovante de sucesso na cadeia de origem apenas demonstra que o débito foi efetivado. Não demonstra que todos os destinos receberam os fundos, nem que qualquer parcela que tenha falhado foi devolvida.
A execução bem-sucedida na origem, a liquidação no destino e os reembolsos compensatórios são eventos relacionados, mas **não são o mesmo evento**. Entender essa distinção é importante ao projetar ou operar fluxos de liquidação entre cadeias.
A documentação oficial da Rayls já descreve abertamente esse padrão compensatório. O importante é não tratar os resultados de ambientes controlados como prova plena da confiabilidade em produção.
---
Aviso:
Este artigo é uma análise baseada na documentação da Rayls disponível publicamente e em observações técnicas feitas em ambientes controlados. Não se trata de uma auditoria formal, de aconselhamento de investimento ou de uma garantia sobre o comportamento de qualquer sistema em produção. Os leitores devem verificar os detalhes diretamente na documentação oficial.
Fontes
- Enviar transações Enygma: https://docs.rayls.com/docs/send-enygma-transactions
- Como funciona o Enygma: https://docs.rayls.com/docs/how-enygma-works
- RaylsEnygmaHandler: https://docs.rayls.com/docs/raylsenygmahandler
