PPBridge is a prototype zero-knowledge privacy-preserving bridge protocol for EVM-compatible networks. It combines fixed-denomination origin-chain deposits, Merkle-tree note commitments, zk-SNARK-based destination withdrawals, and wrapped ERC-20 minting. Some cryptographic building blocks and design patterns are adapted from existing open-source zero-knowledge tooling, including Circom/circomlib and Tornado-Cash-style note commitments. Upstream notices are preserved where applicable.
PPBridge is a research prototype. It has not been professionally audited and must not be used to bridge real funds.
- Origin-chain locking contract
- Destination-chain wrapped-token contract
- Circom/Groth16 withdrawal circuit
- Solidity verifier contract
- JavaScript relayer
- Command-line client
The current prototype provides one-way unlinkability for origin-to-destination transfers under anonymity-set assumptions. It does not provide private reclaim, trust-minimized root import, or production-grade relayer availability.
- Nodejs v22 LTS
- Working directory is the root of this solution
npm install -g npx
1. Install dependencies:
npm install
2. Set all neccessary env variables in .env file (there is an .env.example for you).
3. Deploy the contracts:
npm run migrate
4. Run relayer:
node .\bridge_relayer\relayer.js
5. Now the console app can be used. Get help:
node .\src\cli.js --help