Swaps atômicos em poucas palavras

Em julho de 2019, existem cerca de 2.000 criptomoedas, mas não existe um mecanismo de troca único entre diferentes blockchains. Neste artigo, consideramos de forma simplista como uma das tecnologias de troca sem intermediários é organizada - swaps atômicos.
Boa leitura!


logo


Trocas Atômicas: o que é e o que come?


Os swaps atômicos são uma série de transações nas duas blockchains que permitem trocar moedas sem a participação de terceiros e confiar no segundo participante da troca. Em essência, essa transação é criada, cuja saída pode ser gasta na presença de uma determinada chave ou após um tempo.
Nem todas as blockchains permitem que o AtomicSwap seja implementado. Existem dois requisitos principais:


  • suporte a contratos inteligentes (gerador dessa transação "inicial");
  • uso da mesma criptografia (função hash).

Contratos inteligentes? Não, não ouvi

Contratos inteligentes são, em um sentido amplo, um algoritmo “não aderente” que executa ações em condições conhecidas e nada mais. No nosso caso, um contrato inteligente pode ser considerado uma grande caixa preta, que é alimentada no endereço do destinatário, endereço do remetente, valor do envio, tempo de retenção de dinheiro e atribuir um identificador exclusivo (hash). A saída é a transação desejada com as condições.


Hash e seus amigos

Uma função hash é outro personagem de um conto de matemática superior. Converte o fluxo de entrada em um valor diferente. Os mesmos dados dão o mesmo resultado. Normalmente, a entrada é um número grande chamado chave secreta e a saída é um hash. Não é possível converter um hash de volta em uma chave secreta.


Quando tudo corre bem


Considere a troca entre Alice (sim, sim, Alice não é mais a mesma) e Bob. Alice tem Bitcoin (btc), Bob tem Ether (eth). Ambos os caracteres têm endereços nas duas blockchains. Ex: grandes sinais de criptomoeda simbolizam blockchains.



Alice gera uma chave (um grande número) e modestamente não diz a ninguém:



Com base na chave, ela considera o hash:



Cria um contrato com um identificador exclusivo igual a um hash:



Envia dinheiro para um contrato. Agora ela não pode gastá-los um certo tempo (timelock):


O tempo acabou ou o cronômetro

Timelock - tempo após o qual o criador do contrato poderá devolver o dinheiro se ele enviar uma transação de um determinado tipo (vamos chamá-lo de "reembolso"). Nenhuma chave secreta é necessária para esta transação. Outro usuário pode sacar dinheiro para o endereço do destinatário especificado no contrato (importante: não o seu) se enviar uma transação de um tipo diferente (vamos chamá-lo de resgate) com a chave secreta.


Em geral, o mecanismo de processamento de transações do contrato é o seguinte:


if (transaction_type == "refund" and sender == contract_creater and timelock < now()) { send_to(creator_address); } else if (transaction_type == "redeem" and hash(secret_key) == contract_id) { send_to(receiver_address); } 


Alice relata o hash para Bob. Agora ele pode auditar (verificar) todos os campos do contrato: verifique se os endereços estão corretos, a quantidade da expedição, o tempo de armazenamento do dinheiro no contrato (o período durante o qual Alice não poderá retirá-los):



Se tudo estiver bom, Bob cria um contrato no segundo blockchain semelhante ao Alisinom (com o mesmo identificador). O destinatário e, possivelmente, o valor mudam (se a taxa não for de 1 para 1).



Alice audita o contrato:



Se ela triplica tudo, cria uma transação no Ethereum que gasta dinheiro com o contrato de Bob. A única maneira de fazer isso é fornecer uma chave. Agora se sabe:



Alice obtém eth:



Bob olha a chave e cria uma transação que gasta dinheiro com o contrato de Alice usando sua chave:



Sucesso! Lobos estão cheios, ovelhas estão a salvo!


Quando o mundo não é perfeito


No entanto, às vezes algo pode dar errado. Existem dois lugares onde a troca pode falhar. Para fazer isso, existe um mecanismo para devolver o dinheiro aos seus legítimos proprietários.


Suponha que Alice, como uma garota decente, tenha enviado dinheiro para um contrato, mas após uma auditoria, Bob mudou de idéia sobre se separar dos ares:



Alice aguarda o vencimento do prazo especificado no contrato (por exemplo, 48 horas) e devolve os grilos de sangue:



Outra história fala da inconstante Alice, que não queria continuar a troca atômica depois que Bob criou o contrato. Cenário alternativo: Alice perdeu a chave e não pode fazer isso:



Bob espera o tempo para bloquear o dinheiro (geralmente é menor que o de Alice, para que Alice não retire o dinheiro de Bob no último minuto e depois não devolva o dela; por exemplo, 24 horas). Alice devolve seu dinheiro depois de seu tempo.



Conclusão


As trocas atômicas são muito convenientes para trocas ponto a ponto, ignorando trocas e intermediários. Os participantes se comprometem a pagar apenas uma comissão pelo envio das transações.


Em resumo, na troca entre A e C nas cadeias de blocos B1 e B2, é possível distinguir as seguintes etapas:


  1. inicialização do contrato em B1 pelo participante A;
  2. ouvir um contrato em B1 pela parte C;
  3. inicialização do contrato em B2 pelo participante C;
  4. Ouvir um contrato B2 por A;
  5. fornecer uma chave e retirar dinheiro para B2 pelo participante A;
  6. obter uma chave em B2 pelo participante C;
  7. Retirada de dinheiro em B1 pela parte S.

A tecnologia é nova, mas já está sendo ativamente introduzida. Talvez em um futuro próximo ela possa substituir o centralizado e tão ideologicamente estranho para a troca de blockchain.

Source: https://habr.com/ru/post/pt458646/


All Articles