plebemineira / farcaster-node

Farcaster cross-chain atomic swap node.
https://crates.io/crates/farcaster_node
MIT License
0 stars 0 forks source link

atomic swaps NYM/BTC no farcaster #1

Open plebhash opened 1 year ago

plebhash commented 1 year ago

farcaster-node foi arquitetado como um framework generico pra atomic swaps.

a implementação referencia é XMR/BTC, mas a README diz:

The Farcaster Node is a collection of microservices for running cross-chain atomic swaps. Currently, the node is focused on Bitcoin-Monero atomic swaps, but it is designed to be flexible and integrate new crypto-pairs in the future.

isso significa que farcaster-node pode ser adaptado pra atomic swaps NYM/BTC

ref: nó da blockchain NYX

cc @a-moreira

plebhash commented 1 year ago

resumo de atomic swap

atomic swaps sao baseados em Hash Time Locked Contracts (HTLC).

o atomic swap consiste na combinação simétrica de hashlocks e timelocks

hashlock

segue um exemplo de funcionamento do hashlock no atomic swap

alice e bob concordam que alice da 69 NYM em troca de 0.42 BTC de bob

alice escolhe um segredo p e tira um hash H(p). alice inicia o swap com H(p), depositando 69 NYM no hashlock

o hashlock so pode ser liberado com a preimagem p de H(p), e o hashlock so consegue enviar os 69 NYM pro endereco de bob

esse hashlock existe na blockchain NYX

alice revela H(p) a bob

bob inicia seu lado do swap depositando 0.42 BTC em um hashlock, associando H(p) como target

esse hashlock so pode liberar os 0.42 BTC para o endereco da alice, mediante entrada da preimagem p de H(p)

assim que alice insere p pra receber seus 0.42 BTC, ela revela p on-chain

bob observa os blocos BTC, e assim que ele descobrir p ele reinvindica seus 69 NYM na chain NYX

atomic swap ptbr

timelock

mas e se alice resolver não reivindicar os 0.42 BTC, nunca revelando p? os 0.42 BTC de bob estao trancados pra sempre?

o timelock eh usado para criar uma data de expiração para os atomic swaps, criando uma condição de gasto onde a altura do bloco atual não pode ser superior a um limite X.

isso funciona como uma restrição temporal pro ataque onde alice tenta fazer bob de refém

caso alice nunca revele p, bob pode pegar seus 0.42 BTC de volta assim que o timelock expire