  Blockchain interoperability, which allows state transitions across different
blockchain networks, is critical functionality to facilitate major blockchain
adoption. Existing interoperability protocols mostly focus on atomic token
exchange between blockchains. However, as blockchains have been upgraded from
passive distributed ledgers into programmable state machines (thanks to smart
contracts), the scope of blockchain interoperability goes beyond just token
exchange. In this paper, we present HyperService, the first platform that
delivers interoperability and programmability across heterogeneous blockchains.
HyperService is powered by two innovative designs: (i) a developer-facing
programming framework that allows developers to build cross-chain applications
in a unified programming model; and (ii) a secure blockchain-facing
cryptography protocol that provably realizes those applications on blockchains.
We implement a prototype of HyperService in about 35,000 lines of code to
demonstrate its practicality. Our experiment results show that HyperService
imposes reasonable latency, in order of seconds, on the end-to-end execution of
cross-chain applications
