Researchers from German crypto blockchain-based payments fintech etonec and other organizations have proposed using zero-knowledge proofs to ensure regulatory compliance and privacy in stablecoins. They have created a design that allows fiat-based stablecoins to be used like cash, within limits.

The researchers’ design allows a number of limits, such as transaction limits, balance limits, and turnover limits and enables Anti-Money Laundering (AML) and Countering the Financing of Terrorism (CFT) compliance with the use of zero-knowledge proofs, particularly zk-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge). Below the preset limits, transactions would be invisible to third parties.

According to the researchers’ report:

“In essence, our goal is to create a stablecoin that provides similar privacy guarantees as the privacy coin Zcash or the mixer Tornado Cash, yet without the corresponding regulatory challenges with respect to money laundering and terrorism financing.”

In this account-based model, users would create their respective ZKPs (presumably zero-knowledge protocols, although the abbreviation is not defined), then use unique digital identities to send proof of funds to the blockchain, where validators would verify the ZKPs and add the transaction to the ledger. Identity could be established by the government or a third party.

Related: Into the storm: The murky world of cryptocurrency mixers

Balancing digital privacy and AML/CFT compliance is a topic of current debate in the United States and European Union. The researchers say their system could potentially be connected to Europe’s eIDASelectronic identity system, when that system is finalized.

In addition to etonec, participants in the research were the San Francisco-based Mina Foundation, operator of the Mina Protocol; German Hauck Aufhäuser Lampe bank and the Interdisciplinary Centre for Security, Reliability and Trust of the University of Luxembourg. Mina is noteworthy for its claim to be “the world’s lightest blockchain” and consuming outside information without an oracle.