rollkit / rollkit

A modular framework for rollups, with an ABCI-compatible client interface.
Apache License 2.0
336 stars 158 forks source link

DA "passthrough" to App fo x-rollup bridging in smart contracts #743

Closed S1nus closed 4 months ago

S1nus commented 1 year ago

Credit to https://github.com/Ferret-san for the idea.

proposed x-rollup bridging schemes typically require the two rollups to "be aware" of each other, via something such as an IBC handshake that requires their developers to agree to enable bridging to each other. This is in contrast to more permissionless or "dynamic" bridges built between chains that aren't aware of each other, such as the Rainbow bridge from ETH to NEAR. Such bridges are implemented as smart contracts, and typically involve writing contract code that can authenticate headers and either verify state transition functions, or verify fraud or validity proofs.

An advantage for sovereign rollups sharing a DA layer (vs separate chains like ETH and NEAR or IBC), is that the chains share the same view of block ordering over time, and thus are immune to the problems caused by short-range or long-range forks, making bridges built this way trust-minimized, as long as the execution rules are correctly implemented in the smart contract.

DA Passthrough Simply passing some BlockRetriever interface into an ABCI App should enable apps to be built in such a way that DA reads can be accessed from execution layers, and a sort of system call or precompile can expose DA read operations such as RetrieveBlocks(...) to smart contracts, which may then apply fork-choice and execution rules, enabling trust-minimized bridges across rollups to be built permissionlessly and dynamically.

Manav-Aggarwal commented 4 months ago

Same as "Namespace bridging"