“Privacy is necessary for an open society in the electronic age. Privacy is not secrecy. A private matter is something one doesn’t want the whole world to know, but a secret matter is something one doesn’t want anybody to know. Privacy is the power to selectively reveal oneself to the world.” – Cypherpunk Manifesto
Crypto needs a way to prevent hackers and bad actors (like North Korea’s Lazarus group bad) from using privacy protocols to funnel stolen funds without compromising privacy for everybody else. This article provides an overview of how Zeronym’s Clean Hands verification solves this long-standing challenge, refuting the arguments for both mass surveillance and for crypto as an effective black-market tool.
Build it and the anons will come.
This adage is especially true for privacy-conscious users that have flocked to tools like Tornado Cash, Z Cash, and Monero. Privacy on the internet is critical to prevent authoritarian abuse of technology, provide protection for whistleblowers, and more generally helps drive efficient markets by dissociating real world from functional identities, known as nyms.
Privacy happens to also be a great tool for well-organized entities that operate from behind the shadows with little-to-no accountability. In fact, over $7 billion USD of ill-gotten funds have been laundered using crypto privacy tools intended to protect the free-speech of everyday people. North Korea’s Lazarus Group, alone, has laundered over $900M of stolen funds using mixers and cross-chain bridges, likely to support weapons development for the pariah state. Even more startling, some bridges, such as the Avalanche BTC Bridge, can trace 20-30% of their total volume of bridged Bitcoin to addresses controlled by Lazarus Group.
Accountability vs Anonymity, A False Dichotomy.
This has drawn the attention of powerful regulators and law enforcement agencies that use arguments of heavy illicit-activity to justify anti-privacy policies and enforcement actions against crypto protocols. If left unchecked, this can push the trajectory of the internet, crypto, and the future AI systems that will inevitably be built on it, towards immutable autocracy and despotism and away from individual liberty over your data, assets, and how you use technology.
This future fork in the path has fueled major debate on the merits of universal privacy as black or white, “either we accept privacy for all and the downsides that come with it, or accept the inevitable rise of technologically-empowered despotism with powers and capabilities unlike anything seen before in human history.” We believe that this dichotomy is false and that there is a third path that provides all consenting users privacy by default but accountability for those that infringe the terms of the contract they agreed to when choosing to use a specific technology.
Privacy protocols built on multi-party computation networks, zero knowledge proofs, and public key infrastructure are powerful tools that can be used to eliminate mass surveillance but also help hold regulators accountable through transparent auditability and immutable policies that eliminate the need for back-doors.
KYC Databases are Honeypots
Today, regulated Web3 financial services are required to implement Know-Your-Customer (KYC) and Anti-Money-Laundering (AML) processes to remain in business. Regulations require exchanges, on/off-ramps, and payment processors to verify the legal identity of each individual user, screen out high-risk individuals, and block services to individuals and organizations on sanctions lists. Businesses need to verify and keep data from all their customers (usually for years at a time) in order to comply with international money laundering and sanctions enforcement. Compliance requires the aggregation of sensitive personal information into honeypots for hackers, sophisticated state actors, fraudsters, and other malaligned actors.
ZK ID is a Breakthrough but not Sufficient On Its Own
Zero Knowledge KYC lets individuals privately prove that they hold valid legal personhood and are not on any sanctions lists at the time of verification. This is typically done by receiving an attestation from a trusted identity issuer – such as Onifido or self-attestation with NFC ePassports – and generating a mathematical proof of identity that breaks any identifiable link between the personal data and the pseudonym that the proof is assigned to.
There is one key problem with this approach. Once the user is verified, they are completely pseudonymous and cannot be linked to their data. This means that businesses cannot comply with AML and sanctions laws. A “bad actor” may initially pass ZK KYC only to later be flagged as a possible hacker of stolen funds, or sanctioned entity. The on-chain identity cannot be determined after the fact with ZK KYC even if the identity issuer (Onifido) keeps the data on-hand.
Transparent Accountability with User Consent
How do you maintain user privacy but also provide accountability? The answer combines ZK KYC with four elements:
User consent to transparent use terms & provable encryption of data to a public key
Trusted decryptor with a public key (DAO, compliance officer, power of attorney)
Mishti, a threshold network for custody of encrypted data
Smart contract with access control to Mishti
Along with ZK identity verification, these four elements form “Proof of Clean Hands.” dApps that operate in jurisdictions that have identity verification and data availability requirements can use Proof of Clean Hands to privately verify their users at onboarding. The user identity remains unknown to the dApp at all points. Only the elected decryptor can request decryption if certain conditions are met. Users must consent to the decryption conditions that the dApp specifies in the use terms. These conditions are stored transparently in a smart contract that gates access to the data.
For example, in the event of a subpoena, (say for Tornado Cash), a user with Proof of Clean Hands will have already consented to encrypting their data to the public key of a third party (say a law firm or compliance consultant) and stored it within Mishti. At the time of consent, the user will have agreed to authorize decryption if their address appeared on a sanctions blacklist. The third party can comply with the court order by requesting the individual’s data from the threshold network. Note that discretion, and liability, for complying with a court order remains with the third party. The only entity that sees the plaintext is the decrypter. Nobody else, not even nodes on Mishti, can see it. This ensures user privacy while meeting legal requirements when necessary.
Proof of Clean-Hands Drives Real World Adoption of Crypto
Proof of Clean Hands augments on-chain ZK-KYC/AML and solves regulatory bottlenecks across Web3 including for DeFi, Real World Asset (RWA) projects, launchpads, on-ramp/off-ramp protocols facilitating private transactions, high-value reward/airdrop distributions, and other use cases. The Proof of Clean Hands can be made available as a back-end call or through the Silk UI, Holonym’s onboarding wallet. Proof of Clean Hands within Silk is well-suited for mainstream use-cases of Web3, offering privacy, simple UX for wallet onboarding, and accessibility of zero-knowledge tech to the masses.
How does it work?
Are you a developer? Want to dive into the implementation? See this article for an in-depth description of how Proof of Clean Hands works.
There are five steps in the Clean Hands flow.
1. Credential issuance
First, the user verifies their identity, and verifies that they are not on any sanctions lists. They receive a signature from Zeronym attesting to their successful verification.
2. Proof generation
Second, the user generates a zero knowledge proof using the credentials from the previous step. The proof says that the user has successfully verified. It also proves that the user has encrypted their name and date of birth to Mishti Network.
3. Attestation issuance
The zero knowledge proof is sent to one of Zeronym’s servers. The proof is verified by the server, and its public outputs are stored. The user receives an on-chain attestation at their blockchain address. This attestation says that the user has completed verification and has encrypted their name and date of birth.
4. On-chain activity
The user interacts with smart contracts that require the Clean Hands attestation, for example, the Ethereum-Aztec bridge which allows verified users to transaction privately.
5. Decryption
If necessary, the ciphertext from the user’s zero knowledge proof is decrypted. It might be necessary to decrypt this data if, for example, the user’s blockchain address is implicated in a criminal case and a search warrant is issued by a court. However, there are strict limits on decryption requests. There are two “layers” of decryption conditions: the terms of use and an on-chain smart contract. The terms of use is an off-chain agreement between the user, Holonym Foundation, and any third-party authorized decryptors. It defines, in legal terms, under what conditions a decryption request is allowed to be made. There is also a smart contract which determines the conditions under which Mishti Network will even satisfy a decryption request. For example, the smart contract we use in version 0 allows a wallet controlled by Holonym Foundation to make up to 10 decryption requests per 24 hours. This puts a narrow, clearly defined limit on decryption requests, a limit enforced by the blockchain, while still allowing some room to handle cases where decryption is necessary.
Use cases
Private transacting
Protocols enabling private transactions are an exciting use case of ZK for everyday people who want to maintain privacy while using crypto, but such protocols have been abused by bad actors (such as Lazarus Group) to hide illicit financial activity. Proof of Clean Hands can be integrated into these protocols to allow verified users to transact privately, prevent known bad actors from anonymizing their ill-gotten gains, and enable due process and accountability.
Grants Program
Capital allocation through Web3 grants programs is a mainstream funding source for builders in Web3. Most of these programs mandate KYC/AML checks due to the value of the grants and regulatory requirements. While many protocols prefer on-chain identity verification, its incompatibility with compliance has led them to rely on traditional KYC/AML checks. Proof of Clean Hands enables both privacy and compliance, allowing builders to remain anonymous.
IDO/ICO
Initial DEX Offering (IDO) launchpads have become popular platforms for crowdfunding projects. Token launches require KYC/AML for jurisdictional compliance, investor protection, and to prevent sanctioned entities from participating. Proof of Clean Hands provides Proof of Citizenship and screening for sanctioned entities, ensuring compliance with these requirements.
Other Regulatory Use Cases
Proof of Clean Hands can be integrated as an additional privacy-preserving option with traditional identity providers for users in typical KYC/AML scenarios. This includes permissioned DeFi, gambling protocols (often targets for money laundering), and On-/Off-ramps.
Decryption & Decentralization Roadmap
The processes, agreements, and smart contracts that determine the conditions under which user data can be decrypted and the entities that are allowed to decrypt–all of these are highly customizable. For example, dApps wary against hackers, rug-pullers, and bad actors can elect to specify the public multisig key of a “Forensics DAO” as the decrypter for all verified identities within the use terms of their application and services. The Forensics DAO could be composed of well-established on-chain forensics companies, cyber security professionals, or legal firms that can validate or even challenge court orders. In the event of a major hack, Forensics DAO may be able to decrypt the identity of the perpetrator if the DAO achieves consensus.
Despite the large design space here, we expect to converge on a small set of processes, agreements, and smart contracts that simultaneously maximize privacy for honest users, maximize accountability for dishonest users, and minimize potential overreach from decryption authorities. Our roadmap for this “decryption module” follows.
Version 0
To ship a proof of concept quickly, we will start with a very simple design. In this design, Holonym Foundation is the only authorized decryptor. It can decrypt a maximum of 10 ciphertexts per day. Decryption conditions are defined entirely by the smart contract. The terms of use agreement does not limit decryptions. Holonym Foundation will decrypt if law enforcement presents us with a valid court order to decrypt.
Version 1
Everything in version 0, but we add a terms of use that clearly defines the conditions under which user data can be decrypted.
Version 2
We facilitate the establishment of a DAO that is responsible for requesting decryptions and interfacing with law enforcement (i.e., Forensics DAO). The smart contract still has rate limits on the number of decryption requests. This DAO will institute its own processes to determine whether a decryption request from an authority can be granted. It will use on-chain forensics tools such as those from Elliptic or TRM Labs, and investigate allegations on behalf of users in accordance with the terms of use. Decryption requests must be signed by a majority of the members of the DAO multisig or executed by a verifiable vote. DAO membership should be highly restricted.
Version 3
We help further decentralize DAO membership, especially to include compliance officers from other web3 projects. We facilitate contributions to make improvements to the smart contract to better suit the DAO. Namely, we modify the smart contract to allow the DAO to vote on rate limit increases or decreases (within bounds) so that rate limits can go up or down with usage, and we also add a decryptor role to the smart contract to allow the DAO to authorize one-off decryptions from specific entities without requiring the decrypted user data to be seen by DAO personnel.
Risks and Limitations
Proof of Clean Hands is experimental software and undergoing rapid development. There are key risks and limitations that may not make it suitable for all use cases. Careful thought must go into the design to fit specific use-cases.
While the architecture removes trust in the identity verifier, the dApp service provider, and other middleware, it still requires the Decryptor to be trusted. The trust requirement goes both ways. Regulators and law enforcement must trust the Decryptor to act in good faith and perform the decryption when requested – as opposed refusing to comply and burning their keys. dApps and users must trust that the Decryptor only uses their data as agreed-upon, only to facilitate the execution of the conditions within the use terms. The Decryptor must be trusted not to misuse this data.
Deterministic conditions encoded within a smart contract also pose a specific risk. These conditions may not always be relevant to current conditions or have hidden exploits that bad Decryptors can take advantage of to unfaithfully decrypt user data. Fincen updates their AML requirements regularly and regulated protocols must be quick to adapt their use terms and have users re-consent in order to maintain compliance. These conditions may also sometimes reference centralized “oracles” to compute risk levels or source blacklists from. Governments or other powerful non-credibly-netural actors may have special privileges to update blacklists as they see fit. Risk levels may also be gamed by bad actors, such as by dusting accounts, or phishing honest users to interact with black-listed accounts to increase their risk levels and disrupt the normal operation of the system by saturating the rate limit.
Lastly, the Mishti threshold network must be trusted to maintain strong collusion-resistance. Each individual node must have sufficient incentive to not collude with other nodes to allow the Decryptor unauthorized access. Mishti is an Actively Validated Service that runs on Ethereum validator nodes and is secured by the amount of Ether restaked into those operators. The odds of AVS operators colluding are relatively low as long as a large USD amount of Ether is at stake along with their reputation as credibly-neutral infrastructure providers.
An Emerging Ecosystem for Transparent Accountability & Programmable Privacy
The solution space for transparent on-chain accountability that leverages programmable privacy to meet real world use cases and their regulatory requirements is still early and just beginning to emerge. Proof of Clean Hands offers a privacy preserving approach with a decentralized middleware for data custody and a roadmap to decentralize decryption responses to law enforcement or requests for information. Other notable projects that address similar challenges include Privacy Pools, idOS, Aethos, Nexera and ZK.ME. These services can provide redundant offerings for KYC providers and exchanges such as Fractal ID, Binance, Coinbase, and others.
How to get involved or learn more?
Use the Clean Hands attestation in your dapp: https://docs.holonym.id/for-developers/clean-hands
Checkout the source code for the Proof of Clean Hands with encryption circuit: https://github.com/holonym-foundation/id-hub-contracts/blob/main/zk/circuits/circom/V3CleanHands.circom
Check out the docs! Or send a message to hello@holonym.id
About Holonym Foundation
Holonym Foundation develops protocols that enhance the security, transparency, and interoperability of digital interactions through advanced applied cryptographic and distributed systems.
Explore the Holonym Ecosystem:
Zeronym: A private digital identity protocol that verifies users without storing or seeing sensitive information. Data stays on user devices, and only proofs of identity are submitted. Programmable privacy provides transparent accountability for identity verification use cases that require regulatory compliance.
Mishti Network: Provides decentralized cryptography primitives for a better web. It is an AVS on Eigenlayer that enables secure key derivation from passwords and private biometrics, allowing users to create web accounts linked to a private proof of their humanity that are controlled by keys that they only have access to.
Silk: An embeddable zero trust wallet that grants seamless access to the decentralized web with auto-custody. Silk is built on a decentralized back-end for key derivation and recovery. Your keys always belong to you, and only you can authenticate transactions with customizable security settings that stop scammers and hackers from draining your account.
Collect this post!
Not often we introduce a game-changing technology! Collect this post as an NFT to follow us along our journey to bring privacy technology to the masses.