Cryptology ePrint Archive: Report 2019/964

WI Is Not Enough: Zero-Knowledge Contingent (Service) Payments Revisited

Georg Fuchsbauer

Abstract: While fair exchange of goods is known to be impossible without assuming a trusted party, smart contracts in cryptocurrencies forgo such parties by assuming trust in the currency system. They allow a seller to sell a digital good, which the buyer will obtain if and only if she pays. Zero-knowledge contingent payments (zkCP) show that, despite the limited expressiveness of its scripting language, this is even possible in Bitcoin by using zero-knowledge proofs.

At CCS'17, Campanelli, Gennaro, Goldfeder and Nizzardo showed that the zkCP protocol was flawed, in that the buyer could obtain information about the good without paying. They proposed countermeasures to repair zkCP and moreover observed that zkCP cannot be used when a service is sold. They introduce the notion of ZK contingent payments for services and give an instantiation based on a witness-indistinguishable (WI) proof system.

We show that the main countermeasures they proposed are not sufficient and present an attack against their fixed zkCP scheme. We also show that their realization of zkCP for services is insecure, as the buyer could learn the desired information (i.e., whether the service was provided) without paying; in particular, we show that WI of the used proof system is not enough.

Category / Keywords: cryptographic protocols / ZK contingent payments, Bitcoin, zkSNARKs, subversion zero knowledge

Original Publication (in the same form): ACM CCS 2019

Date: received 24 Aug 2019, last revised 25 Aug 2019

Contact author: fuchsbau at di ens fr

Available format(s): PDF | BibTeX Citation

Version: 20190826:124059 (All versions of this report)

Short URL:

[ Cryptology ePrint archive ]