Cross-chain Swaps ou Inter-Chain Exchanges, são um tipo de troca P2P que nos permite transformar com segurança nossas criptomoedas ou outras, sem intermediários de qualquer tipo.
LOs swaps de cadeia cruzada ou swaps de cadeia cruzada atômicos são um tipo de troca de moeda que ocorre entre duas criptomoedas diferentes que são executadas por conta própria blockchain. Ou seja, é um mecanismo que permite aos usuários trocar diferentes criptomoedas diretamente entre dois pares.
A maneira mais fácil de ver esse tipo de mudança é mudar o moedas fiduciárias de toda a vida. Nessas trocas, duas pessoas (uma com euros e outra com dólares) desejam trocar suas moedas entre si a uma determinada taxa. Para isso, in fiat, simplesmente sabendo a taxa e fazendo as contas, cada uma das partes pode dar à outra a quantidade de moedas equivalente ao troco. Por exemplo, € 100 seria equivalente a cerca de $ 121,55, usando uma taxa de câmbio de $ 1,2155 por euro. Basta dizer que essa mudança foi direta e sem intermediários.
Porém, neste exemplo, estamos falando de coisas tangíveis, é o dinheiro que está no mundo real. A questão aqui é: como tornar essa troca possível usando criptomoedas cujos sistemas funcionam em plataformas diferentes? Bem, a resposta para isso são as trocas entre cadeias e você aprenderá muito mais sobre elas a seguir.
Início das trocas de cadeia cruzada
O primeiro whitepaper o que explica amplamente a natureza das trocas de cadeia cruzada é "Trocas Atômicas de Cadeia Cruzada"por Maurice Herlihy do Departamento de Ciência da Computação da Brown University Providence. Este documento, apresentado durante o Simpósio ACM 2018, explica claramente como funciona uma troca atômica de cadeia cruzada, suas possibilidades e principais desafios na criação deste tipo de ferramenta.
Basicamente, o que uma troca de cadeia cruzada faz é; retirar o dinheiro das partes e depositar em regime especial que garante que a operação só poderá ser concluída com a aprovação de ambas as partes. E, no caso de qualquer parte agir de forma maliciosa, ela não poderá assumir o controle de nossos fundos.
Agora, a parte de programação certamente chamou sua atenção neste ponto. Bem, em primeiro lugar, lembre-se de que toda transação de criptomoeda ocorre graças ao fato de que essas moedas respondem a uma programação ou smart contracts que permite enviar, receber e entregar o controle das referidas moedas. Dentro Bitcoin, por exemplo, chamamos isso de programação é possível graças a Bitcoin ScriptE em Ethereum, graças a Solidity. Em geral, todas as criptomoedas usam esse modelo de gerenciamento para suas operações. A propósito, se você quiser saber como começar a programar contratos inteligentes para Ethereum, pode verificar nosso artigo Como começar a programar em Solidity?
Agora, levando em consideração que as criptomoedas são moedas programáveis, podemos fazer uma programação especial que nos permite trocá-las cross-chain com total segurança. É isso que torna possível esse tipo de troca, e falaremos mais sobre isso na próxima seção.
Moedas de programação, a chave para swaps de cadeia cruzada
Agora, vamos um pouco para o lado prático das trocas de cadeia cruzada e para isso tomaremos, por exemplo, Bitcoin. Como já mencionamos, no Bitcoin temos a linguagem de programação Bitcoin Script. Esta linguagem de script nos permite enviar e receber moedas de uma forma totalmente programada. Na verdade, toda transação em Bitcoin só é possível usando essa programação.
Mas há algo muito interessante com as capacidades desta linguagem, mais especificamente com as funções OP_CHECKSEQUENCESSEVERIFY (CSV) y OP_CHECKLOCKTIMEVERIFY(CLTV). O primeiro é um código de operação ou OP_CODE muito útil, pois nos permite bloquear a execução de um determinado script ou transação até que certas condições sejam atendidas. Graças a isso, coisas como Lightning Network são possíveis, bem como trocas descentralizadas e trocas P2P seguras. Estes dois últimos são precisamente aqueles que entram no campo das operações de swap cross-chain. O segundo código, por sua vez, nos permite colocar bloqueios de tempo em nossas transações, algo que podemos usar para criar mecanismos de segurança para nossas trocas.
Assim, se usarmos uma carteira capaz de nos dar a capacidade de realizar operações de troca de cadeia cruzada, podemos usar as funções OP_CHECKSEQUENCEVERIFY e OP_CHECKLOCKTIMEVERIFY e realizar operações de troca de cadeia cruzada com pessoas que têm a mesma capacidade. E tudo porque a nossa carteira irá programar as moedas para que só possam ser trocadas sob uma série de condições que ambas as partes tenham decidido antecipadamente e sem qualquer intermediário.
Claro, esta é uma explicação muito simples de como tudo realmente acontece, portanto, a seguir explicaremos como tudo isso realmente acontece.
Como funciona uma troca de cadeia cruzada?
Agora, vamos assumir o seguinte cenário. Por um lado, temos Laura que quer trocar seu Bitcoin (BTC) por Monero (XMR). E por outro lado, temos Juan que quer trocar seu Monero por Bitcoin. Ambos precisam de câmbio e ambas as partes têm a moeda de que precisam.
Diante disso, Laura e Juan iniciam o processo de troca tendo suas bolsas treinadas para tal. Primeiro, Laura cria uma transação usando o opcode OP_CHECKSEQUENCEVERIFY e bloqueia a quantidade de Bitcoin a ser trocada com Juan. O dito script só pode ser desbloqueado quando Juan cumprir as condições de troca, emitindo sua transação equivalente em Monero, e conhecer o segredo que protege a transação de Laura. Caso algo dê errado, a transação de Laura possui uma medida de segurança que permitiria a ela recuperar o dinheiro após um certo tempo, usando OP_CHECKLOCKTIMEVERIFY para isso.
Por sua vez, Juan também emite uma transação em Monero usando a programação correspondente. Neste caso, Monero não suporta OP_CHECKSEQUENCEVERIFY, mas em vez disso usa uma operação chamada DLTC ou contrato de Timelock de log discreto, um sistema que permite pagamentos condicionais nesta moeda. Esta operação permite ao Juan emitir um pagamento em Monero, que só terá efeito se Laura cumprir as condições. Como Laura, Juan incluiu condições que permitirão que ele recupere fundos caso algo dê muito errado.
Neste ponto, ambas as partes emitiram os pagamentos, mas ninguém tem o dinheiro. Neste ponto, é hora de verificar as condições de desbloqueio, o que permitirá que Laura e Juan recebam o dinheiro da troca de forma eficaz. Assim, tanto Laura quanto Juan revelam os segredos que protegem suas transações. É quando vocês dois conhecem esses segredos, quando podem usá-los para desbloquear o script que retém os pagamentos. Caso uma das partes tenha agido de forma maliciosa, uma das partes pode utilizar medidas de segurança para suas transações.
Essas medidas de segurança são bloqueios de tempo e sua função é garantir que os fundos fiquem inacessíveis a ambas as partes por um determinado e prudente período de tempo. Assim, se após algum tempo uma das partes não cumprir as condições, a outra pode simplesmente retirar o seu dinheiro da troca e recuperá-lo, permanecendo como no início.
Trocas de cadeia cruzada com outras criptomoedas
O exemplo que demos aqui foi feito com Bitcoin e Monero. E, embora seja um exemplo fictício, está próximo da realidade desse sistema. Na verdade, a equipe Monero está trabalhando em um protocolo de cadeia cruzada para permitir que os usuários de Bitcoin convertam seu BTC em Monero usando essa abordagem.
É claro que isso não se limita apenas a criptomoedas como Bitcoin ou Monero, todas as criptomoedas têm essa possibilidade, desde que atendam a estes dois requisitos:
- Eles devem permitir o bloqueio no nível do script.
- Eles devem permitir o bloqueio no nível de tempo.
Ambos os bloqueios de execução de transação têm como objetivo adicionar a segurança necessária para que essas trocas sejam seguras. Assim, por exemplo, Ethereum poderia implementar este sistema para permitir cross-chain com outras criptomoedas, e o mesmo com o resto da criptografia. A única limitação em tudo isso é aquela que os desenvolvedores podem interpor não suportando certas funções ou equivalentes no blockchain e criptomoeda.
outras alternativas
Outras alternativas para trocas de cadeia cruzada são Swaps Atômicos Sucintos (SAS), cuja operação também permitiria a troca de moeda entre cadeias. No entanto, este sistema mal foi definido e no momento não existe um modelo operacional teorizado completo e revisado.
Prós e contras das trocas entre cadeias
Em primeiro lugar, entre os prós das trocas cruzadas, podemos citar:
- Ele permite uma nova funcionalidade descentralizada, segura e privada para trocar nossas moedas por outras sem depender de trocas centralizadas ou descentralizadas.
- Isso nos ajuda a gerar uma dinâmica muito maior de uso da moeda. A troca de moedas, por exemplo, nos permitiria expandir nosso uso de moedas a qualquer momento e sem maiores complicações. Assim poderíamos trocar nosso BTC rapidamente por EOS, caso uma empresa ou estabelecimento só aceite EOS como forma de pagamento.
Por seus contras, podemos citar:
- Se utilizarmos carteiras com uma implementação deficiente deste tipo de protocolo, corremos o risco de perder o nosso dinheiro. A segurança deste sistema reside na programação de condições muito claras e seguras que nos protegem em todos os momentos.
- Eles podem ser um tanto complexos de usar, especialmente para quem está começando no mundo das criptomoedas.