# Linea x EigenDA Resources: - https://github.com/Consensys/linea-monorepo/blob/main/docs/architecture-description.md - https://github.com/Layr-Labs/hokulea/tree/master/canoe - https://layr-labs.github.io/eigenda/integration/spec.html ## Proofs From reading Linea's [architecture doc](https://github.com/Consensys/linea-monorepo/blob/main/docs/architecture-description.md), it looks like the proving flow is: 1. generate execution proof 2. submit blob to L1 1. L1 contract computes shnarf update 3. generate compression proof (using updated shnarf as public output that must match the one onchain??) 4. generate aggregation proof that compresses multiple execution + compression proofs to reduce onchain gas costs ## Equivalence Proof Linea's compression proof is PLONK and is based on the curve BLS12-377. My understanding is that its equivalence need to be proven with that of the DA layer: - 4844 kzg commitment is on curve bls12-381 - EigenDA kzg commitment is on curve bn254 Where is the current equivalence proof being computed for 4844? For EigenDA, we have to prove equivalence but also have other cert related properties to verify (see [spec](https://layr-labs.github.io/eigenda/integration/spec/6-secure-integration.html#derivation-validation-in-depth) for full details). There are 2 options for verifying these: ### Option 1: External Canoe Prover [Canoe](https://github.com/Layr-Labs/hokulea/tree/master/canoe) is a framework developed by Bowen Xue which underneath uses risc0's Steel library or succinct's sp1-cc library to zk proof (of storage) an eth-call to [EigenDACertVerifier.checkDACert](https://github.com/Layr-Labs/eigenda/blob/5ecad5313d40d813063696fdfe5e47010b81a771/contracts/src/integrations/cert/EigenDACertVerifier.sol#L56) function. A Canoe proving service could be hosted to provide these proofs, as well as some extra code to prove the equivalence of the kzg commitments. ![image](https://hackmd.io/_uploads/rJVUxioFxe.png) (drawing from https://app.excalidraw.com/s/1XPZRMVbRNH/2GSP6CZSAre) ### Option 2: Integrated Prover The second option is to replicate canoe's logic in golang, and prove it somehow as part of Linea's proving logic. ![image](https://hackmd.io/_uploads/Sy7vxijtlg.png) (drawing from https://app.excalidraw.com/s/1XPZRMVbRNH/2GSP6CZSAre) ### Pros and Cons - External prover - pro: separation of concerns - con: more gas cost (verify groth proof for every cert) - integrated provr - pro: single system (less infra requirements) - pro: lower gas costs - con: more work for linea prover team - con: maybe (?) less clean-cut separation of concerns