A LayerZero DVN that only approves cross-chain messages when two independent guarantees hold: (1) a stake-weighted quorum of Symbiotic Relay operators signs the packet, and (2) a ZK proof attests the LayerZero PacketSent event is included in a finalized Ethereum block. Result: multichain delivery with both crypto-economic and cryptographic security.
Problem
DVNs typically rely on committees or oracles whose assurances are purely crypto-economic.
Solution
We fuse Symbiotic’s Relay SDK (universal staking → validator sets → aggregated BLS signatures verified on-chain) with our Ethereum state ZK proof (~14-minute/≥N-slot finality). A packet is deliverable only when both checks pass, tightening trust. The proofs are stored and then later retrieved using GolumDB.
Architecture & Flow
Security backend (one-time): Deploy Relay contracts (Network, VotingPowerProvider, KeyRegistry, ValSetDriver, Settlement). Operators stake via Symbiotic vaults, register BLS keys, and run Signer/Aggregator/Committer. Committer posts ValSetHeader per epoch to Settlement.
User app:
AppSource (Ethereum) locks ETH and calls LayerZero send(...) → emits PacketSent.
AppDest (destination chain) mints bETH only after verification.
DVN layer (destination):
SymbioticDvn contract implements assignJob/getFee and a submitVerification(...) that requires:
Settlement.verifySignature(H, aggSig) ✅ stake-quorum, and
ZkEthStateVerifier.verifySourceEvent(zkProof, inputs) ✅ ETH finality + log inclusion.
On success, ULN/Executor delivers to AppDest.onLzReceive, which mints bETH.
Off-chain worker: Listens for PacketSent, builds the signed hash H, requests an aggregated BLS signature from Relay, fetches the ZK proof (stored in GolemDB), and submits both to the DVN.
Why it’s novel
Dual guarantees: crypto-economic restaking + cryptographic finality.
Composable: DVN is reusable for any OApp; zk module is pluggable.
What have we achieved during the hackathoon?
- full idea creation/plan
- skeleton setup of Symbiotic Relay
- deposit token lock contract (AppSource.sol. mint token contract (AppDest.sol), token (bETH.sol)
- deploy script and locking script for above
- mock zk verifier contract
- dvn worker in typescript (skeleton, not working version)
- typescript code to store the generated proof and to get it after using GolemDB