Atomic Swap - Bitcoin (BTC) vs Monero (XMR)
Responsável: * Raphael Bastos
História
A Atomic Swap foi introduzida pela primeira vez por Tier Nolan nos fóruns BitcoinTalk em 2013[1]. Nolan delineou os princípios básicos para trocas de criptomoedas de cadeia cruzada usando transações simples de criptomoedas em diferentes tipos de blockchains .
Em setembro de 2017, as trocas atômicas chamaram a atenção da comunidade hacker quando o fundador do Litecoin, Charlie Lee anunciou a execução bem-sucedida de uma troca atômica entre litecoin e bitcoin no Twitter .
Em 2018 Lucas Soriano e sua equipe criou uma nova prova de conceito envolvendo Atomic Swap, provando que as trocas atômicas entre Grin[2] e Bitcoin eram possíveis. Em 2020 sua equipe nos abrilhantou com o novo conceito de Atomic Swap entre Monero[3] e Bitcoin. O objetivo do grupo é de conectar todas as blockchains existentes, e o foco do momento é o Monero pelo óbvio, a única criptomoeda com confiança dos seus usuários e completo anonimato dos valores transacionados.
Objetivos
- Garantir que o software pode ser usado na mainnet[4] sem perda de fundos
- Entender o melhor caso de uso para Atomic Swap entre Monero vs Bitcoin, e definir um produto que atenda ao referido caso de uso
Como funciona
swapCLI
swapCLI atua na função de Bob para trocar BTC por XMR. O comando principal é o buy-xmr que se conecta automaticamente a um serviço ASB.
ASB Service
ASB a abreviatura de Automated Swap Backend. O serviço atua como contraparte da swapCLI no papel de Alice. Ele fornece ao CLI uma cotação e a liquidez necessária para trocar BTC por XMR.[5]
Detalhes do funcionamento
Para entender melhor os diferentes componentes do ASB e swapCLI, aqui está um diagrama de componentes que mostra a configuração do ASB e da CLI usando a infraestrutura pública de Bitcoin e Monero:

Requisitos
Nunca utilize o usuário ROOT para compilar e/ou executar nada deste artigo
Monero-wallet-cli
compile o monero-wallet-cli no Linux:
user $ git clone --recursive https://github.com/monero-project/monero user $ sudo mv monero /opt user $ cd /opt/monero ; git submodule sync && git submodule update user $ make -j13
Inicie o monerod e aguarde o fim do sync (horas ou dias dependendo do hardware):
user $ DNS_PUBLIC=tcp://8.8.8.8 /opt/monero/build/Linux/master/release/bin/monerod --stagenet
Crie uma nova carteira local na stagenet:
user $ /opt/monero/build/Linux/master/release/bin/monero-wallet-cli --stagenet --generate-new-wallet ~/MyWallet
Referências:
- ↑ https://www.forbes.com/sites/lukefitzpatrick/2019/09/02/a-complete-beginners-guide-to-atomic-swaps/?sh=5048f35f6178
- ↑ https://github.com/comit-network/grin-btc-poc/blob/master/spec.pdf
- ↑ https://github.com/comit-network/xmr-btc-swap
- ↑ https://docs.waves.tech/en/blockchain/blockchain-network/#connecting-node-to-blockchain-network
- ↑ https://github.com/comit-network/xmr-btc-swap/blob/master/docs/asb/README.md