  Transaction privacy is a hard problem on an account-based blockchain such as
Ethereum. While Ben-Sasson et al. presented the Zerocash protocol [BCG+14] as a
decentralized anonymous payment (DAP) scheme standing on top of Bitcoin, no
study about the integration of such DAP on top of a ledger defined in the
account model was provided. In this paper we aim to fill this gap and propose
ZETH, an adaptation of Zerocash that can be deployed on top of Ethereum without
making any change to the base layer. Our study shows that not only ZETH could
be used to transfer Ether, the base currency of Ethereum, but it could also be
used to transfer other types of smart contract-based digital assets. We propose
an analysis of ZETH's privacy promises and argue that information leakages
intrinsic to the use of this protocol are controlled and well-defined, which
makes it a viable solution to support private transactions in the context of
public and permissioned chains.
