EIP-5164: Cross-Chain Execution
Initiative Name
EIP-5164: Cross-Chain Execution
Organization
-
Type
Standard
Description
The specification introduces a cross-chain execution interface for EVM-based blockchains, enabling contracts on one chain to interact with contracts on another through cross-chain messages. It comprises two main components: the "Message Dispatcher" (on the calling side) and the "Message Executor" (on the receiving side). When a message is dispatched, it's relayed from the dispatcher to the executor via a transport layer for execution. This standardization arises from a need for Ethereum protocols to manage state changes across multiple EVM blockchains. While many chains possess bridges to execute Ethereum contracts, these bridges come with varied APIs, leading to custom integrations and inconsistent properties like security and speed. This common specification aims to promote code reusability and consistent bridge implementations. Bridges can couple multiple MessageDispatchers to a MessageExecutor, and users can send messages without knowing the executor's address. Some bridges might necessitate payments in native currency, making the dispatchMessage function payable.
Ecosystem
Ethereum
Public Participants
PoolTogether
Brendan Asselstine
Pierrick Turelier
Chris Whinfrey
This specification defines a standardized interface for cross-chain message passing and execution between EVM-based blockchains. The key points are:
It does not rely on specific bridges or gateways. It aims to define a common standard that various bridge/gateway implementations can adopt.
There are two main components - MessageDispatcher on the sending chain and MessageExecutor on the receiving chain.
MessageDispatcher dispatches messages to target chain by emitting events that are picked up by MessageExecutor.
MessageExecutor receives and executes messages, ensuring each message is processed only once.
MessageDispatcher returns a unique messageId to track dispatch status.
MessageExecutor appends message metadata to call data when executing.
Emits events like MessageDispatched and MessageExecuted to confirm status.
Defines error handling for failed executions.
Allows payable messages to cover gas fees.
Aims to support backwards compatibility with existing bridges/gateways.
This spec aims to standardize cross-chain messaging in a bridge/gateway agnostic way. It focuses on the dispatcher and executor functionality required for message passing between EVM chains. Actual bridge/gateway implementations can build on top of this standard interface.
Last updated