Blockchains are a specific type of distributed ledgers structured by a sequence of blocks of transactional data linked to each other. The use of blockchains has increased over time, and several new blockchains are emerging. It is therefore essential to enhance the interoperability between blockchain implementations to allow decentralised trading. One way to achieve this is with Cross-Chain Swap protocols. These protocols are critical systems as they handle assets. Therefore, it must be sure that the system does not contain errors. In this paper, we describe the Cross-Chain Swap problem in a formal way. We define safety and weak-liveness properties that guarantee no correct participant will be worse-off in an asynchronous system. Moreover, we provide a formally proved Byzantine fault-tolerant protocol that satisfies the swap specification. The protocol abstracts the blockchain enough to suit various distributed ledger frameworks aiming to perform a cross-chain swap. In addition, we illustrate how the described abstract protocol can be instantiated in a blockchain system.
CCS CONCEPTS• Computing methodologies → Distributed algorithms.