  We address the problem of atomic cross shard value transfer in Ethereum 2. We
leverage on Ethereum 2 architecture, more specifically on Beacon chain and
crosslinks, and propose a solution on top of the netted-balance approach that
was proposed for EE-level atomic ETH transfers. We split a cross-shard transfer
into two transactions: a debit and a credit. First, the debit transaction is
processed at the source shard. The corresponding credit transaction is
processed at the destination shard in a subsequent block. We use netted shard
states as channels to communicate pending credits and pending reverts. We
discuss various scenarios of debit failures and credit failures, and show our
approach ensures atomicity even in the presence of a Byzantine Block proposer.
  The benefits of our approach are that we do not use any locks nor impose any
constraints on the Block Proposer to select specific transactions. However we
inherit the limitation of an expensive operation from the netted-balance
approach of querying partial states from all other shards.
