  Blockchain intercommunication systems enable the exchanges of messages
between blockchains. This interoperability promotes innovation, unlocks
liquidity and access to assets. However, blockchains are isolated systems that
originally were not designed for interoperability. This makes cross-chain
communication, or bridges for short, insecure by nature. More precisely,
cross-chain systems face security challenges in terms of selfish rational
players such as maximal extractable value (MEV) and censorship.
  We propose to solve these challenges using zero knowledge proofs (ZKPs) for
cross-chain communication. Securing cross-chain communication is remarkably
more complex than securing single-chain events as such a system must preserve
user security against both on- and off-chain analysis.
  To achieve this goal, we propose the following pair of contributions: the
DACT protocol and the SurferMonkey infrastructure that supports the DACT
protocol. The DACT protocol is a global solution for the anonymity and security
challenges of agnostic blockchain intercommunication. DACT breaks on- and
off-chain analysis thanks to the use of ZKPs. SurferMonkey is a decentralized
infrastructure that implements DACT in practice. Since SurferMonkey works at
the blockchain application layer, any decentralized application (dApp) can use
SurferMonkey to send any type of message to a dApp on another blockchain. With
SurferMonkey, users can neither be censored nor be exposed to MEV. By applying
decentralized proactive security, we obtain resilience against selfish rational
players, and raise the security bar against cyberattacks. We have implemented a
proof of concept (PoC) of SurferMonkey by reverse engineering Tornado Cash and
by applying IDEN3 ZKP circuits. SurferMonkey enables new usecases, ranging from
anonymous voting and gaming, to a new phase of anonymous decentralized finance
(aDeFi).
