  Transactions represent a fundamental component in blockchains as they are the
primary means for users to change the blockchain state. Current blockchain
systems such as Bitcoin and Ethereum require users to constantly observe the
state changes of interest or the events taking place in a blockchain and
requires the user to explicitly release the required transactions to respond to
the observed events in the blockchain. This paper proposes EventWarden, a
decentralized event-driven proxy service for users to outsource transactions in
Ethereum-like blockchains. EventWarden employs a novel combination of smart
contracts and blockchain logs. EventWarden allows a user to create a proxy
smart contract that specifies an interested event and also reserves an
arbitrary transaction to release. Upon observing the occurrence of the
prescribed event, anyone in the Blockchain network can call the proxy contract
to earn the service fee reserved in the contract by proving to the contract
that the event has been recorded into blockchain logs, which then automatically
triggers the proxy contract to release the reserved transaction. We show that
the reserved transaction can only get released from the proxy contract when the
prescribed event has taken place. We also demonstrate that as long as a single
member in the Blockchain network is incentivized by the service fee to call the
proxy contract after the prescribed event has taken place, the reserved
transaction is guaranteed to get released. We implement EventWarden over the
Ethereum official test network. The results demonstrate that EventWarden is
effective and is ready-to-use in practice.
