  When consumers trade financial products, they typically use well-identified
service providers that operate under government regulation. In theory,
decentralized platforms like Ethereum can offer trading services 'on-chain'
without an obvious entry point for regulators. Fortunately for regulators, most
trading volume in blockchain-based assets is still on centralized service
providers for performance reasons. However this leaves the following research
questions we address in this paper: (i) is secure trading (i.e., resistant to
front-running and price manipulation) even feasible as a fully 'on-chain'
service on a public blockchain, (ii) what is its performance benchmark, and
(iii) what is the performance impact of novel techniques (e.g., 'rollups') in
closing the performance gap? To answer these questions, we 'learn by doing' and
custom design an Ethereum-based call market (or batch auction) exchange, Lissy,
with favourable security properties.We conducta variety of optimizations and
experiments to demonstrate that this technology cannot expect to exceed a few
hundred trade executions per block (i.e., 13s window of time). However this can
be scaled dramatically with off-chain execution that is not consumer-facing. We
also illustrate, with numerous examples throughout the paper, how blockchain
deployment is full of nuances that make it quite different from developing in
better understood domains (e.g., cloud-based web applications).
