General Purpose Atomic Crosschain Transactions
This protocol addresses the problem of enabling reliable and composable programming across multiple, potentially heterogeneous, blockchains for developers and users of decentralized applications.
This paper introduces a protocol for synchronous and atomic function calls across multiple Ethereum blockchains, ensuring that if any part of a complex call execution tree fails, the entire transaction is rolled back. The protocol operates without modifying existing Ethereum blockchains and is analyzed for Gas usage and Finalized Block Periods across scenarios like cross-chain value reading/writing and a five-blockchain trade finance system.
The General Purpose Atomic Crosschain Transaction protocol allows composable programming across multiple Ethereum blockchains. It allows for inter-contract and inter-blockchain function calls that are both synchronous and atomic: if one part fails, the whole call execution tree of function calls is rolled back. The protocol operates on existing Ethereum blockchains without modification. It works for both public permissioned and consortium blockchains. Additionally, the protocol is expected to work across heterogeneous blockchains other than Ethereum. This paper describes the protocol, analyses it in terms of Gas usage and Finalised Block Periods for three scenarios: reading a value from one blockchain to another, writing a value from one blockchain to another, and a trade finance system involving five contracts on five blockchains with a complex call execution tree, and provides an initial security analysis that shows that the protocol has Safety and Liveness properties.