Durin & CCIP

Durin is the original version of CCIP-Read. It provides a way for Ethereum L1 contracts to specify offchain data lookup.

Rough diagram of core components:

Proofs

The trickiest part of the equation, proofs have the following properties:

An example from CCIP-Read repository using Optimism as the data source:

  1. The gateway:
    1. gets the state batch header
    2. constructs a Merkle proof
    3. gets the L2 contract address and slot that contains the required data
    4. gets a proof from Optimism rollup (via eth_getProof) using address and slot
    5. returns the state, proof, and wintess
  2. The client passes on the information to the L1 function functionNameWithProof
  3. The L1 function:
    1. verifies the proof
    2. returns the data to the user