Privacy on Harmony, Powered by Webb

Samuel Harrison
Harmony

--

Today, we are excited to announce a collaboration between Webb and Harmony to build out a Webb Anchor on the Harmony EVM. This will bring a privacy solution to Harmony for the multitude of tokens already launched on the Harmony protocol. Webb is receiving a grant from the Harmony Foundation for their efforts on this project.

The Scope

The scope of this grant is to develop a cryptocurrency mixer and integrate new precompiles to the Harmony EVM, namely the Poseidon hash function and bulletproof zero-knowledge proof verifier for Curve25519 for a variety of circuits. This will allow users to not only use the mixer that Webb develops, but also to integrate this hash function into their own applications on Harmony to realize non-trusted zero-knowledge proof verification for a variety of circut types. This application will also be integrated into the Webb Interface so that users have a destination for privacy creation.

“We, at Webb, are super excited to start on this project as Harmony represents one of the first EVM compatible blockchains interested in integrating with our technology. This partnership will likely bring Harmony into the Webb as we go live with our interoperable private bridge this year.”

About Webb

Webb is an interoperable privacy network for cryptocurrency assets. Our mission is to make privacy interoperable so that users can maintain their financial privacy when moving assets between blockchains. As a first integration with Harmony, we are excited to bring an initial privacy mixer solution to Harmony in hopes that Harmony becomes a destination on our future privacy bridge.

About Harmony

Harmony is a sharding protocol with a trustless Ethereum bridge. Harmony developers can use Ethereum tooling such as Solidity and Ether.js. Users can also seamlessly swap Harmony and Ethereum assets. Harmony is able to achieve 2-second finality for fast transactions and is able to support 1000 delegating stakers for secure shards. Similar to layer 2 protocols, Harmony is now fully interoperable with the Ethereum ecosystem.

Telegram | Twitter | Discord | Youtube | Medium | Facebook | LinkedIn | Reddit | Instagram

The Deliverables

  • A Webb EVM Mixer repo to be delivered and usable in the Harmony Ecosystem. Deploying Merkle trees using the Poseidon hash function.
  • Bulletproof precompiles for verifying bulletproof R1Cs proofs on-chain.
  • Poseidon hash precompiles for hashing elements using Poseidon over Curve25519 Over bytes32 elements.

Webb EVM Mixer

  • Cryptocurrency mixer contracts with Poseidon hash precompile support over bytes32.Hashes will be computed over scalar field of Curve25519
  • Extend verifier contracts with Bulletproof verification precompile support using dalek-cryptography bulletproofs R1CS.
  • Incremental construction of merkle trees on-chain using Poseidon hash.
  • Support for relay-able transactions.

Precompiles

  • Bulletproof proof verification precompile written in Rust w/ Golang bindings.
  • Poseidon hash precompile using Curve25519 written in Rust w/ Golang bindings

Webb UI Integration

  • Integrate Metamask and WalletConnect into the UI
  • Deposit / Withdraw interfaces w/ Harmony
  • Note generation for Harmony
  • Client based proof generation using events for rebuilding merkle tree proof path.

Milestones

Integrate smart contracts + circom gadgets

  • Implement mixer contracts (called Anchors, ERC20Anchor)
  • Implement merkle tree contract for on-chain tree storage
  • Implement withdraw gadget with chain_id parameter
  • Implement relayable transaction logic for meta-transactions over the mixer.
  • Build scripts for generating (proving_key, verify_key) for the zkSNARK

Integrate precompiles in Rust + Golang EVM

  • Bulletproof proof verification EVM precompile in Rust
  • Poseidon Hash function w/ 2 and 4 inputs EVM precompile in Rust
  • Golang bindings for these precompiles

Integrate functionality into the UI

  • Client side merkle tree construction from events
  • User interfaces for note generation, deposit, and withdrawal
  • Transaction submission sent to relayers from UI.
  • Hosted on IPFS

--

--