  Money transfer is an abstraction that realizes the core of cryptocurrencies.
It has been shown that, contrary to common belief, money transfer in the
presence of Byzantine faults can be implemented in asynchronous networks and
does not require consensus. Nonetheless, existing implementations of money
transfer still require a quadratic message complexity per payment, making
attempts to scale hard. In common blockchains, such as Bitcoin and Ethereum,
this cost is mitigated by payment channels implemented as a second layer on top
of the blockchain allowing to make many off-chain payments between two users
who share a channel. Such channels only require on-chain transactions for
channel opening and closing, while the intermediate payments are done off-chain
with constant message complexity. But payment channels in-use today require
synchrony, therefore they are inadequate for asynchronous money transfer
systems.
  In this paper, we provide a series of possibility and impossibility results
for payment channels in asynchronous money transfer systems. We first prove a
quadratic lower bound on the message complexity of on-chain transfers. Then, we
explore two types of payment channels, unidirectional and bidirectional. We
define them as shared memory abstractions and prove that in certain cases they
can be implemented as a second layer on top of an asynchronous money transfer
system whereas in other cases it is impossible.
