I'm thinking about a decentralized service to exchange bitcoin for eth or any other ERC20 token. Probably something that bisq already does.
Let's say A wants to sell 1 BTC for 5 ETH to B. Both have a bitcoin and ethereum address. Coins are not held in any external wallet while they are deposited on the exchange.
In the case of ethereum I think it's kind of easy to "lock" coins. Create a smart contract to deposit coins on the contract's address.
In the case of bitcoin I honestly don't know. Probably create a multi-signature escrow transaction?
After the coins are locked and each party confirmed the transaction, how can one transfer the coins securely to the participants? What kind of checks need to be done? How to communicate between bitcoin and ethereum networks?
Thanks in advance.