  Bitcoin brings a new type of digital currency that does not rely on a central
system to maintain transactions. By benefiting from the concept of
decentralized ledger, users who do not know or trust each other can still
conduct transactions in a peer-to-peer manner. Inspired by Bitcoin, other
cryptocurrencies were invented in recent years such as Ethereum, Dash, Zcash,
Monero, Grin, etc. Some of these focus on enhancing privacy for instance crypto
note or systems that apply the similar concept of encrypted notes used for
transactions to enhance privacy (e.g., Zcash, Monero). However, there are few
mechanisms to support the exchange of privacy-enhanced notes or assets on the
chain, and at the same time preserving the privacy of the exchange operations.
Existing approaches for fair exchanges of assets with privacy mostly rely on
off-chain/side-chain, escrow or centralized services. Thus, we propose a
solution that supports oblivious and privacy-protected fair exchange of crypto
notes or privacy enhanced crypto assets. The technology is demonstrated by
extending zero-knowledge based crypto notes. To address "privacy" and
"multi-currency", we build a new zero-knowledge proving system and extend note
format with new property to represent various types of tokenized assets or
cryptocurrencies. By extending the payment protocol, exchange operations are
realized through privacy enhanced transactions (e.g., shielded transactions).
Based on the possible scenarios during the exchange operation, we add new
constraints and conditions to the zero-knowledge proving system used for
validating transactions publicly.
