Succinct x Avail: Creating a ZKP-secured bidirectional bridge from Avail to Ethereum

Succinct x Avail

At Avail, we believe in creating the essential base layer for rollups. In order to enable that, it was fundamental to create a bridge to Ethereum, where most rollups settle today. We wanted to create the safest possible bridge with the latest tech enabling it and naturally the choice was to build a ZKP verified consensus verifying bridge between the two chains. We have been collaborating with the Succinct team, one of the best in the ZK industry to build the bidirectional, arbitrary message passing bridge from Avail to Ethereum.

As part of this engagement, the Succinct team is developing Vector X, a zero-knowledge proof-based Avail consensus verifier efficiently verifiable within the Ethereum Virtual Machine (EVM). Additionally, the Succinct team is assisting in connecting their Telepathy bridge, which verifies Ethereum consensus, to Avail. This integration will not only allow Ethereum rollups to use Avail for data availability (DA) but also enable sovereign rollups on Avail to access Ethereum assets. In its final form, it will also facilitate access to AVL, Avail’s native token, on Ethereum.

Why Build It?

Rollups have been the agreed upon way to scale computation on Ethereum. However, they require substantial data availability (DA). The cost of publishing data on Ethereum is currently around $1300/MB, making it prohibitively expensive. Avail, optimized for DA and hence affordable, provides the essential base layer for rollups to thrive on. Thus, rollups turn to Validiums and Optimiums, utilizing Avail for DA while maintaining Ethereum as their settlement layer through a canonical bridge.

For Ethereum contracts to ensure the safety or liveness of a Validium or Optimium, they must verify Avail validators’ DA attestations. Vector X plays a critical role here, by providing a succinct ZK proof of that attestation on Ethereum.

Vector X’s applications extend beyond this primary use case. It enables the Avail native AVL token and other state information to be accessible on Ethereum, facilitating the propagation of assets and arbitrary messages from Avail to Ethereum. It’s important to note that Avail’s execution runtime is minimal, primarily containing basic information including native asset balances, staking and governance.

Vector X provides the one-way communication from Avail to Ethereum. But what about the reverse? This is where the Telepathy bridge by Succinct team kicks in, which already implements a ZKP based light client of Ethereum. By connecting the Telepathy bridge to Avail, Avail gets access to entire Ethereum headers, allowing for arbitrary message passing from Ethereum. This allows Avail native rollups access to Ethereum headers as well.

Together, Vector X and Telepathy form a powerful duo, creating a bidirectional bridge from Avail to Ethereum.

What’s Novel?

Avail uses BABE + GRANDPA consensus from Polkadot SDK. GRANDPA, the finality gadget, and BABE, the block production engine, allows Avail to avoid the availability-finality dilemma common in blockchains, by maintaining liveness even during network partitions and providing provable finality as soon as supermajority agree on a chain. In order to achieve this, GRANDPA finalizes not on individual blocks but on chains of blocks, and by using Ed25519 signatures from validators for consensus. This design enables Avail to support up to 1000 validators.

Although the above construction is powerful, it makes it tricky to verify Avail’s consensus natively on Ethereum. Verifying even a small number of Ed25519 signatures on Ethereum is extremely costly, let alone few hundred signatures. Also, the ability for validators to sign on different block heights and the finality gadget to finalize the common prefix is hard to capture inside a ZK circuit.

The Succinct team has one of the fastest implementations of Ed25519 ZK verifiers for large numbers of signers. They also implemented efficient hash verification for Blake2b, Avail’s default hash function. The Succinct team worked on GRANDPA for months to make sure the finality gadget is efficiently verifiable inside a ZK circuit, making it the first implementation of an efficient ZK verifier of GRANDPA.

Wait… Performance?

The construction allows most of the consensus verifying logic off-chain and allows to post a succinct proof on-chain with a verification cost of ~200K. Also, it allows us to batch proofs for multiple blocks and post only aggregate proofs on-chain, thereby further amortizing cost. The recursive nature of proof allows extremely efficient and parallel generation of proofs as well. Initially, we expect to post proofs for Vector X on Ethereum every few tens of minutes, but the actual proof generation takes only a few minutes.

Wen code?

The code is already available on GitHub. It has been already deployed from Avail’s Goldberg testnet to Ethereum’s Goerli testnet and is fully integrated with Succinct’s developer platform. Explore it at https://alpha.succinct.xyz/avail/vectorx.

This is a work in progress code, but the final version will be completely open-source for production use. We hope that this enables not only the Ethereum community to use the bridge to Avail, but also Polkadot and other communities to utilize the primitives and build a cohesive ecosystem where applications can thrive.

Check out Succinct’s post on the collaboration here. For contributions to the project or further discussions, reach us on GitHub, Discord, or Twitter/X.

11 Likes