I made a sequence diagram of how I see an MVP ZTS <> BTC swap working in Syrius. This is the happy case flow.
Someone will probably wonder why Bob has to send the counter HTLC’s details manually to Alice, since this is not the case with ZTS <> ZTS swaps. While it would probably be possible to scan all BTC transactions looking for an HTLC script that matches what Alice is expecting to see, there are two reasons I don’t think this should be done.
-
I suspect it will be technically fairly challenging to implement such a scanner.
-
From a UX standpoint it can be argued that it is better that Bob has to explicitly notify Alice when the BTC HTLC is ready to be reviewed. This is because, depending on how many confirmations we require, the BTC TX can take 30 to 60 minutes to be confirmed. If Bob has to notify Alice, then Alice doesn’t have to actively keep monitoring her client waiting for the BTC TX to be confirmed. Once Bob notifies Alice, Alice can continue the swap right away.
To utilize proxy unlock and watchtowers it would make sense to always start the swap on the NoM side.