project screenshot 1
project screenshot 2
project screenshot 3

Penny Proofs

Penny Proofs™️ enables developers to verify more ZK compute for less $$ as it leverages off-chain computation w/ RISC Zero ZK and Layer Zero for proof verification interoperability.

Penny Proofs

Created At

ETHGlobal Brussels

Project Description

Rely on truth. Not trust. Blockchains have limits. Math doesn't. Deploy on any EVM chain, verify where it's cheap, access the verified data everywhere.

By connecting the proving from Risc Zero zero-knowledge circuits with the data interoperability and messaging from Layer Zero, Penny Proofs brings the following:

  • Efficient off-chain computation using ZK circuits.
  • Modularity of proof verification.
  • Verified proof data transport over the LayerZero messaging layer.

We showcase an example where we are able to create a VerifiableAirdrop contract that is guaranteed to have been built in a provable way on top of on-chain data and public inputs:

  • An airdrop Merkle Tree is provably generated inside a Risc Zero circuit that reads on-chain data and commit its output including the Merkle root hash.
  • A RiscZeroVerifier contract gets invoked to verify the validity of the proof.
  • After the proof has been validated and its underlying data retrieved on-chain, LayerZero routes the message to a destination chain (typically a chain where the gas is more expensive).

Voilà, computation cost have been saved off-chain and verification can be made where it's the most cost-effective without having to compromise on accessing the verified data anywhere that LayerZero supports!

Verify MORE for LESS thanks to Penny Proofs™️

Examples of other cool stuff that can be easily be built on top of Penny Proofs™️:

  • A portative ZK-rollup where batch of transactions can be verified where it's the most effective based on gas volatilty of different chains.
  • Storage proofs, effectively accessing any on-chain data thanks to storage proofs and making it easily accessible on any chain (even beyond LZ if needed!): historical data and cross-chain data unlocked!

How it's Made

We used Solidity to notably write the following contracts:

  • VerifiedAirdrop.sol // An LZ receiver contract where players are able to claim airdrops by providing an inclusion proof of a Merkle tree generated within a ZK proof and relayed via LayerZero.
  • PennyProofVerfiedAirdrop.sol // An LZ sender contract that verifies a Risc Zero proof, gets the generated Merkle tree root hash and send it to the receiver contract.

We used Risc Zero to write a ZK circuit containing a Merkle tree implementation, on-chain data view and hash commitment through Steel. Important files include:

  • verified_airdrop.rs: Merkle-related things and chain commitments.
  • publisher.rs: communication with the guest, ZK circuit invocation and verification transaction broadcast.

We used LayerZero as a central piece of Penny Proofs architecture to send and receive authenticated data in an effective way over multiple peers (i.e., chains).

background image mobile

Join the mailing list

Get the latest news and updates