Succinct Atomic Swap (SAS), é um novo tipo de swap atômico que simplifica esse tipo de operação, ao mesmo tempo que oferece possibilidades de troca muito mais rápidas, baratas e seguras sem intermediários. 

Ldesenvolvedores de tecnologia blockchain Eles estão cada vez mais focados em trazer novas funções, especialmente aquelas que permitem a operação cruzada de várias blockchains, e uma dessas tecnologias é a Troca Atômica Sucinta (SAS) ou Trocas Atômicas Sucintas.

A troca atômica sucinta ou SAS, são na verdade uma evolução do trocas atômicas ou trocas atômicas que já podemos ver implantados em vários blockchains. A diferença é que o SAS busca tornar o funcionamento dessa tecnologia mais simples, eficiente e seguro.

Troca atômica sucinta (SAS), aprimorando as trocas atômicas

A ideia de Succinct Atomic Swap (SAS) tem sua origem na mente de Ruben Somsen, que em 11 de maio de 2020, escreveu a seguinte mensagem na lista de desenvolvimento de Bitcoin: SAS: troca atômica sucinta. Nessa mensagem, Somsen descreveu uma ideia que tornou possível criar trocas atômicas de forma rápida, com menos complexidade em código e scripts e com baixa atividade no blockchain. Ao mesmo tempo em que explora a flexibilidade do ECDSA e até mesmo olha para o futuro com o uso de Empresas Schnorr y endereços de assinaturas múltiplas (MultiSig).

A ideia de Somsen foi baseada no trabalho da equipe de Monero (XMR) y sua troca atômica entre Monero e Bitcoin. E também tirei ideias sobre o que foi apresentado pelo usuário @TierNolan em 2013 no conhecido fórum Bitcointalk. Em qualquer um dos casos, a proposta de Somsen simplifica muito a maneira como as trocas atômicas podem ser realizadas, reduzindo ao mesmo tempo seu impacto no blockchain, sem sacrificar sua segurança e privacidade.

Apesar da ideia brilhante, esse tipo de protocolo ainda não foi construído, permanecendo em um modelo experimental.

Como funciona o protocolo?

Agora, o funcionamento desse protocolo depende em primeiro lugar das tecnologias que já temos disponíveis no Bitcoin. Estamos falando sobre criptografia ECDSA, ou também assinaturas Schnorr, endereços com várias assinaturas e, adicionalmente, de códigos de operação (OP_CODES) como CLTV, nLockTime y nSequence. Simplificando, em sua forma mais básica, você não precisa adicionar nada adicional ao protocolo Bitcoin e outras criptomoedas derivadas do Bitcoin.

Iniciando o processo

O processo de execução de um SAS começa quando duas pessoas iniciam a troca. Nesse caso, vamos nos referir a essas pessoas como Laura e Daniel. Laura tem 1 BTC que deseja trocar em seu equivalente com Daniel que tem Litecoin (LTC), e tudo isso sem passar por um troca centralizada.

Então, temos que Laura prepara 1 BTC em uma transação que ela assinou com uma assinatura conjunta usando sua assinatura e a de Daniel. Esta primeira transação que ainda não foi enviada chegará no blockchain em um estado de espera. Isso é possível usando OP_CODES como CLTV e nLockTime, que permitem definir um tempo limite e outras condições necessárias para processar a transação. Nesse caso, a condição para a liberação da referida transação é que Daniel revele seu segredo para Laura, o que a essa altura ainda não aconteceu.

A programação com CLTV desta transação obedece também a outro ponto, que é que caso as partes não completem a troca, a referida transação pode ser enviada para o blockchain, e depois de algum tempo, Laura pode desbloqueá-la sem problemas para recuperar os fundos. Isso é possível porque CLTV pode transformar um endereço multisig em um único endereço sob certas condições que podem ser programadas. Ao mesmo tempo que Laura recupera seus fundos, ela revelará um segredo a Daniel, que permitirá que ele recupere os fundos que bloqueia em sua transação com o Litecoin.

Preparando a segunda transação

Enquanto a primeira transação ainda não foi enviada, Laura e Daniel estão preparando o restante das condições para a troca. Neste ponto, Laura e Daniel agora criam uma nova e segunda transação, mas colocam um bloqueio no nível da transação (usando nSequence). Isso evitará que a transação seja realizada pelos mineiros até que passe o tempo de bloqueio, desta vez decidido por Laura e Daniel, que decidiram dar-lhe uma hora de bloqueio.

Esse bloqueio da transação é feito como um seguro que evita que Laura perca seu dinheiro caso Daniel tenha agido de forma desonesta. E, graças ao bloqueio e às condições em que essa transação foi criada, Laura pode recuperar essa transação sem problemas. Assim, a escolha do bloqueio é a sequência OP_CODE nSequence, pois permite um bloqueio relativo. Ou seja, o bloqueio só pode ser ativado quando uma transação anterior e suas saídas associadas (a primeira transação assinada por Laura e Daniel) já foram incluídas no blockchain.

Envio de transações

Agora, o próximo passo é começar a enviar as transações. Laura envia a segunda transação primeiro, que será bloqueada indefinidamente até que a primeira transação alcance o blockchain. Porém, o fato de enviar a segunda transação para a rede é indicativo para Daniel de que Laura iniciou o processo de troca. Então, a próxima coisa que Daniel faz é criar uma transação em Litecoin para a troca total e, para essa operação, ele usa as assinaturas de Laura e suas.

Esta transação em Litecoin é vista por Laura que de acordo com ela passa a enviar a primeira transação, que contém 1 BTC para Daniel. Laura não conseguirá acessar os fundos no Litecoin porque não conhece o segredo de Daniel necessário para desbloquear a referida transação. Assim, uma vez que Laura envia a primeira transação para o blockchain Bitcoin, o relógio de bloqueio começa a contar.

Agora, resta outro ponto, como é possível que Laura e Daniel conheçam os segredos necessários para desbloquear suas respectivas transações em Bitcoin e Litecoin? Bem, neste ponto algo conhecido como adaptador de assinatura ECDSA entra em ação. Este adaptador possibilita ao ECDSA, sob certas condições, revelar o segredo necessário para que Daniel e Laura possam desbloquear suas transações. Dessa forma, eles podem fazer a troca com sucesso, algo que explicaremos a seguir.

O momento da troca

Agora, tão rápido quanto a primeira transação está no blockchain Bitcoin, o processo de troca começa. A primeira transação é assinada de forma que só seja válida se Daniel revelar seu segredo. Ou seja, se Daniel quiser o Bitcoin, isso só será possível se Daniel revelar o segredo ao interagir com a referida transação. A razão disso é que Laura assina a referida transação de forma que ela só será válida sob esse pressuposto e a pessoa responsável por ela será o adaptador de assinatura ECDSA. O mesmo acontece com a segunda transação, então Daniel tem apenas uma opção restante, interagir com essas transações para reivindicar os bitcoins que deseja.

Assim, quando Daniel interage com a transação para reclamar o BTC, ele revela o segredo para Laura. Neste ponto, Laura conhece o segredo de Daniel e o dela, então ela pode ir para o blockchain Litecoin e com ambos os segredos em seu poder para desbloquear a transação Litecoin que Daniel enviou em troca do BTC. Desta forma, Laura e Daniel realizaram com sucesso uma Succinct Atomic Swap (SAS).

Se o processo for concluído com êxito, a segunda transação ficará inválida. Mas se o processo não for concluído, a segunda transação (bloqueada com nSequence) servirá como uma transação de reembolso, permitindo que Laura receba seu BTC de volta sem problemas. No final das contas, no melhor dos casos, um SAS sempre pode ser transportado em duas transações simples dentro do blockchain.

Quanto você sabe, cryptonuta?

É possível implementar Succint Atomic Swap sem alterar o protocolo de criptomoeda?

VERDADEIRO!

Uma das vantagens deste tipo de troca é que não é necessário que ambas as criptomoedas tenham as mesmas capacidades de programação, de fato, o estado atual do script Bitcoin é suficiente para permitir trocas atômicas sucintas com qualquer outra criptomoeda, sem ter que alterar para nada o protocolo Bitcoin ou as outras criptomoedas.

Vantagens e desvantagens do Succinct Atomic Swap (SAS)

Agora, entre as vantagens deste modelo podemos destacar:

  1. Requer apenas duas transações em cadeia para ser concluído com êxito, em vez de quatro. No pior dos casos, o modelo requer três transações (para fazer o reembolso), o que ainda é mais eficiente do que as trocas atômicas existentes.
  2. É possível realizar este tipo de trocas sem scripts avançados, é até possível fazê-lo sem travas de tempo em uma das cadeias.
    Ele pode ser usado para trocas de privacidade eficientes.

Por outro lado, suas desvantagens são:

  1. O acesso ao dinheiro depende de se lembrar de segredos (complexidade do backup).
  2. Você precisa estar online durante todo o processo de troca ou corre o risco de perder dinheiro.
  3. Além disso, é necessário construir torres de vigia ou torres de vigia blockchain que suportem bloqueio de tempo. Isso é necessário para uma configuração segura de duas transações, mas desnecessário em um cenário que usa três transações ou sem bloqueios de tempo.