  In recent years, as blockchain adoption has been expanding across a wide
range of domains, e.g., digital asset, supply chain finance, etc., the
confidentiality of smart contracts is now a fundamental demand for practical
applications. However, while new privacy protection techniques keep coming out,
how existing ones can best fit development settings is little studied.
Suffering from limited architectural support in terms of programming
interfaces, state-of-the-art solutions can hardly reach general developers. In
this paper, we proposed the CLOAK framework for developing confidential smart
contracts. The key capability of CLOAK is allowing developers to implement and
deploy practical solutions to multi-party transaction (MPT) problems, i.e.,
transact with secret inputs and states owned by different parties by simply
specifying it. To this end, CLOAK introduced a domain-specific annotation
language for declaring privacy specifications and further automatically
generating confidential smart contracts to be deployed with trusted execution
environment (TEE) on blockchain. In our evaluation on both simple and
real-world applications, developers managed to deploy business services on
blockchain in a concise manner by only developing CLOAK smart contracts whose
size is less than 30% of the deployed ones.
