xmr-btc-swap/docs/sequence.puml

65 lines
1.5 KiB
Plaintext
Raw Normal View History

2021-01-12 19:12:57 -05:00
@startuml
database Bitcoin
2021-01-13 19:48:49 -05:00
actor Bob as "Bob (User)"
Actor Alice as "Alice (Service Provider)"
2021-01-12 19:12:57 -05:00
database Monero
group Negotiation
2021-01-12 19:12:57 -05:00
Bob --> Alice: Establish connection
2021-01-12 19:12:57 -05:00
group Request Response Channel
Bob -> Alice: Swap request
note left: Btc Amount\naddress hints
note right: Alice stores peer id & address hints\nto contact Bob
Alice --> Bob: Swap response
note right: Exact XMR amount
end
2021-01-12 19:12:57 -05:00
end
group Execution Setup
2021-01-13 18:27:33 -05:00
group Phase A [Messages can be exchanged in any order]
Bob -> Alice: bob::Message0
note left: Pubkeys\ndleq proof s_b\nxmr viewkey v_b\nbtc refund addr
2021-01-12 19:12:57 -05:00
Alice -> Bob: alice::Message0
note right: Pubkeys\ndleq proof s_a\nxmr view key v_a\nbtc redeem addr\nbtc punish addr
end
2021-01-12 19:12:57 -05:00
2021-01-13 18:27:33 -05:00
group Phase B [Messages must be exchanged in the given order]
2021-01-12 19:12:57 -05:00
Bob -> Alice: Message1
note left: unsigned btc lock tx
Alice -> Bob: Message2
note right: btc cancel tx sig\nbtc refund tx enc sig S_b
2021-01-12 19:12:57 -05:00
Bob -> Alice: Message3
note left: btc punish tx sig\nbtc cancel tx sig
2021-01-12 19:12:57 -05:00
end
end
2021-01-12 19:12:57 -05:00
group Execution
2021-01-12 19:12:57 -05:00
Bob ->> Bitcoin: Lock
Alice ->> Monero: Lock
2021-01-26 22:14:20 -05:00
Alice -> Bob: TransferProof
2021-01-13 18:45:29 -05:00
note right: xmr lock tx transfer proof\nThis can be removed if Bob watches the blockchain.
2021-01-12 19:12:57 -05:00
2021-01-26 22:14:20 -05:00
Bob -> Alice: EncryptedSignature
2021-01-12 19:36:02 -05:00
note left: redeem tx enc sig S_a
2021-01-12 19:12:57 -05:00
Alice ->> Bitcoin: Redeem
Bitcoin ->> Bob: Signature
2021-01-12 19:36:02 -05:00
Bob -> Bob: Extract s_a
2021-01-12 19:12:57 -05:00
Bob ->> Monero: Redeem
end
2021-01-12 19:12:57 -05:00
@enduml