Skip to content

Questions about synchronization #21

@CodeSandwich

Description

@CodeSandwich

I haven't found any forum, server or discussion section, so I'm asking here. I'll be happy to move it somewhere else.

I just watched your Bankless interview and as somebody designing on-chain protocols I'm intrigued. I find the synchronization claims of EEZ confusing and I couldn't find any overview that would explain them, so I have a few questions:

  1. State age. You're claiming that EEZ can be used for looking up the state of L2s from Ethereum to use as a loan collateral or as an AMM liquidity, the existing protocols need to just "learn to look at EEZ". The state of L2s will be up to 12 seconds stale though, sometimes more. Relying on an outdated state is tricky, the tokens may have long been sold, transferred or burned. Do those use cases require locking funds on L2 first with rules that make them usable on L1 over a specific period of time or until the protocol on L1 explicitly releases them?
  2. Reorgs. You mentioned that an Ethereum reorg is disruptive to L2s, but you haven't touched on the deeper, more frequent and longer to resolve disputes of L2s. Optimistic chains usually consider their state final only after a few days, and EEZ claims to make them reliable after just 12 seconds. How can disputes be handled in L1 protocols using EEZ?
  3. Compatibility. IIUC EEZ is basically a universal ZK rollup technology where non-ZK L2s can get self-contained ZK proofs. That means that every L2 with its quirks must have some ZK circuit representation which requires a substantial amount of work judging by the slow and painful development of ZK rollups. How do you want to tackle that difficulty?
  4. Trust. EEZ rollups are not baked into the L2s, so there's no way to detect that the proof builders are honest. One could at best try to compare the state root with the L2's, but it can't be done on-chain. How do you solve the trust issue?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions