The Future of Fiat-to-Crypto: zkP2P


The Future of Fiat-to-Crypto: zkP2P

In the evolving landscape of cryptocurrency, the need for seamless and secure on-ramping solutions has never been more critical. zkP2P introduces an innovative peer-to-peer fiat-to-crypto on-ramp that not only alleviates centralization in on-ramps, but is one of the few consumer-facing ZK applications that can be used today, no web3 indoctrination required.

zkP2P is a peer-to-peer fiat-to-crypto on-ramp that makes use of several foundational ZK packages to breathe new utility into existing internet infrastructure. Instead of convincing the Venmos, AliPays, and Revoluts of the world to opt into crypto, zkP2P takes the signatures already in use by their web2 infrastructure to make established fintech crypto-friendly. Users can use the online payment systems they already know and trust when on-ramping fiat. You can trustlessly say “Venmo me for crypto.”

zkP2P Flow

An example exchange on zkP2P would be exchanging USD on Venmo for USDC:

  • A user requests an amount of USDC to be sent
  • The user is paired with a liquidity provider to venmo at their requested rate
  • The provider’s on-chain funds are held in escrow by the zkP2p smart contract, while the user sends the USD via venmo to the provider
  • The user submits the email receipt of the transaction from venmo to zkP2P (which can be done automatically if the user is signed in to zkP2p with their google account).
  • Two proofs are generated:
  • One using zkEmail to verify that the Venmo’s email server’s signature matches that of the receipt email. This ensures that the email can’t be falsified.
  • One using zkRegex to extract relevant information from the receipt email: that the correct amount was sent from the correct user to the correct recipient.
  • At this point, all checks have been completed and the funds in escrow are released to the user.

Why is this important?

zkP2P shows what can be done when existing web2 infrastructure is brought into the blockchain arena. It further showcases how ZK can enable new consumer-facing tools across domains, no relationships needed.

Trustless On-Ramping

This is a topic that needs no introduction to anyone in web3. zkP2P solves both the itch of onboarding the next [moonshot amount here] users while being regulator friendly. For onboarding, this both de-risks users from scammy onramps and meets the user at their preferred online payment provider. Regulation is beautiful if not immediate: all major payment providers are already regulation-compliant and perform KYC (even offering protections for certain transactions in the case of Venmo). This allows zkP2P to actually use regulation to the user’s benefit; a rare case in the world of web3.

Good ol’ IETF

Another odd topic for a Web3 article. Another look at the steps above will show that beyond having a wallet (which is changing with support for account abstraction), the user never leaves their safe Venmo haven. This is because of the groundwork of the IETF (the Internet Engineering Task Force, the open governing body of the internet founded in 1986) in the steering of the internet. RFC’s (Requests For Comments; the inspiration for the ERC) govern the internet much the same way as ERCs do, with a similarly open governance process. ERC 6376 defined DKIM in September 2011, which made the e-mail authentication signatures that zkP2P relies on an internet standard. Thanks to this, every email server signs their emails; thanks to zkEmail, we can make proofs for the authenticity of emails, and now thanks to zkP2P we can use these signatures that were originally meant to prevent eavesdropping into useful trustless tools.

It is worth mentioning now that there is a newer RFC, RFC 9421 which proposes signing REST APIs in much the same way as emails are signed. This would allow proof of any API response; instead of relying on emails, the adoption of this RFC by industry would allow zkP2P and other hopeful ZK teams to verify any semantically meaningful data on the internet that was sent via an API endpoint.

Consumer-Facing ZK in Production

Other than zkRollups, there are very few consumer-facing ZK applications in existence. This can be attributed to a litany of reasons, all equally valid: a lack of ZK builders, a lack of ZK development tools and methodologies, or simply a lack of use cases that are meaningful to consumers. zkP2P demonstrates a case where even if the ZK isn’t meaningful to consumers, it’s essential to enable web3 to come to where it is convenient for them. Without the public key infrastructure and signatures that underpins the internet and the privacy-preserving proofs to authenticate them, an on-ramp that allows existing payment systems to be agnostic to it.

The Future

zkP2P is under active development. It’s currently in public alpha, supports USD via Venmo, INR via HDFC, TRY via Garanti, and is adding support for more currencies and payment providers (support for EUR/USDC via Revolut was added on May 31st). The team is funded by the Fenbushi Research Grant and the Ethereum Foundation and led by Sachin (0xSachinK on X). Sachin was previously with Set Protocol, having built smart contracts with over 500M TVL, and has received grants from the Ethereum Foundation to build ZK applications. His team started zkP2P at a ZKHack, an ongoing series of hackathons which he now supports as a judge.

Written by Turan Vural, a researcher at Fenbushi Capital and a PhD student in cryptography at UCLA specializing in MPC and distributed computing.