Join Our Ecosystem

Securely scaling
ZK Interoperability

Seamlessly interact between chains with cryptographically secure state proofs, not opaque intermediaries. Run expressive and dynamic distributed ZK computation at a Big Data scale on top of multi-chain contract states.

LAGRANGE STATE COMMITTEES

Lagrange State Committees generate succinct zero-knowledge state proofs for optimistic rollups with instant finality. Each ZK state proof can easily be integrated into existing cross-chain messaging protocols or bridges to enhance security.

State Committees are modeled after the Ethereum Sync Committee and are designed to extend Ethereum’s economic security to any rollup or chain that settles on Ethereum.

ZK BIG DATA

ZK Big Data is a verifiable computing framework designed for generating ZK proofs for any distributed or parallelizable computational model. ZKBD can support programming models ranging from MapReduce to RDD to distributed SQL.

Starting with a single block header, ZKBD can parallelize proof computation across thousands of historical blocks and storage slots.

INTEGRATE WITH LAGRANGE STATE COMMITTEES

Seamlessly integrate Lagrange State Proofs with any existing bridge or messaging protocol, to enhance the security of cross-chain interaction.

Learn More

function verifyStateCommittee(
   uint256 chainID,
   bytes32 blockHash,
   bytes32 participantRoot,
   bytes32 stateCommitteeRoot,
   bytes32 genesisCommittee,
   bytes calldata committeeProof

) external {
   uint256[] memory pubStatement = new uint256[](5);
   pubSignals[0] = chainID;
   pubSignals[1] = uint256(uint160(blockHash));
   pubSignals[2] = uint256(participantRoot);
   pubSignals[3] = uint256(stateCommitteeRoot);
   pubSignals[4] = uint256(genesisCommittee);
   return verifier.verifyProof (proofOfInteraction, pubStatement);
}

var dataframe = polygon.createDataFrame({
   block_range_start: polygon.currentBlock() - 1024,
   block_range_start: polygon.currentBlock(),
   interval: 1,
   content:{
        address:"0xb794f...68",
        keys:[
         {name: liquidity_1, memory:"0x56e81...21"},
         {name: liquidity_2, memory:"0x56211...32"},
       ]
   }
})

dataframe = polygon.map("asset_price",     polygon.liquidity_1.div (polygon.liquidity_2))

var price_mean = polygon.reduce(avg ("asset_price"))

EXPLORE
ZK MAPREDUCE

Our first product in the ZK Big Data stack. Explore how to use ZK MapReduce to generate expressive distributed computation and batched storage proofs.

Learn More

Want to work with Lagrange? Sign up today to stay in the loop on new developments.

Sign up to stay up to date on Lagrange

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.