Skip to content
Zarklink

Zarklink

Private cross-chain bridge over Zcash to Starknet

Created on 4th December 2025

Zarklink

Zarklink

Private cross-chain bridge over Zcash to Starknet

The problem Zarklink solves

  • Privacy-Preserving Transfers: Unlike traditional bridges that expose "User A bridged 100 ZEC" on-chain, ZCLAIM uses Zcash's shielded notes and homomorphic value commitments. The bridge verifies validity without learning amounts, true financial privacy across chains.

  • Trustless Custody: No centralized custodian holds your assets. Multiple independent vaults lock ZEC, each posting 150% collateral. If a vault misbehaves, users claim collateral directly. No single point of failure.

  • Cryptographic Proof of Locking: Zero-knowledge proofs (πZKMint/πZKBurn) prove notes exist in Zcash's Merkle tree, are addressed to the correct vault, and have matching value commitments, all without revealing actual values.

  • On-Chain Zcash Verification: The RelaySystem contract maintains Zcash block headers with PoW verification and Sapling commitment roots, enabling trustless verification of Zcash state on Starknet.

  • Challenge-Response Security: Vaults can challenge bad encryption by revealing shared secrets, with malicious users losing deposits.

  • Composable Private DeFi: wZEC on Starknet enables private trading on DEXs, private collateral in lending, and anonymous DAO participation, extending Zcash privacy into DeFi.

Challenges we ran into

  • Cairo 2.8 Compiler Issues: The Cairo compiler panicked when enabling multiple modules with cross-dependencies. Fixed by restructuring the module hierarchy, inlining crypto functions, and adding required Default/Copy traits to storage enums.

  • Fixed-Size Array Limitations: Cairo doesn't support 2D array indexing like Rust. The BLAKE2b sigma permutation table had to be reimplemented as an if-else lookup function instead of sigma.at(round).at(index).

  • Zcash Cryptography in Cairo: Zcash uses BLAKE2b-256, Equihash PoW, and SHA256d—none native to Cairo. Pure implementations would be gas-prohibitive. Solution: use circom circuits for heavy crypto off-chain, verify ZK proofs on-chain.

  • Storage Constraints: Cairo contracts can't store dynamic arrays. Created separate MintTransferStorage structs without Array<felt252> fields for persistence.

  • RPC Deprecation: Starknet public RPC endpoints (BlastAPI) became unreliable, requiring migration to Alchemy/Infura with API keys.

Tracks Applied (2)

Cross-Chain Privacy Solutions

private cross bridge from zcash to starknet,
Starknet

Starknet

Private DeFi & Trading

private cross chain bridging of funds

Zcash Community Grants

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion

Builders also viewed

See more projects on Devfolio