Open plebhash opened 1 year ago
atomic swaps sao baseados em Hash Time Locked Contracts (HTLC).
o atomic swap consiste na combinação simétrica de hashlocks e timelocks
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
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
farcaster-node
foi arquitetado como um framework generico pra atomic swaps.a implementação referencia é XMR/BTC, mas a README diz:
isso significa que
farcaster-node
pode ser adaptado pra atomic swaps NYM/BTCref: nó da blockchain
NYX
cc @a-moreira