Omni Protocol Design v0
Tsvetan Dimitrov
Agenda
-
Problem
-
General Solution
-
Requirements
-
Cross-Chain Messaging Protocol Overview
Problem
-
Dispersion of users across rollups.
-
Complicated management of several subcomponents across independent rollups to access all of Ethereum’s users and capital.
General Solution
-
Ethereum requires a native interoperability protocol purpose-built to realign with its original vision of being a single unified operating system for dapps.
Requirements / 1
-
Verification of the state of a source network and relaying state updates to destination networks.
-
Derive security from the source that rollups derive it from - Ethereum L1.
-
Minimal latency to verify and process cross-rollup messages.
Requirements / 2
-
Global compatibility - it must enable applications to be Turing-complete across all rollup envs, ensuring that applications are not limited by the resource constraints of any single rollup
Cross-Chain Messaging Protocol
Source Rollup EVM
xcall
Portal Contracts
DAPP
Contracts
Condition: Source Chain Gas Fees should be paid.
Condition: Source Chain Block should be finalized.
XMsg
XStreamOffset
XStream
SourceChainID
DestChainID
1. Halo constructs XBlocks from XMsgs
XMsg
XMsg
XMsg
Halo
XMsg
XMsg
XBlock
CometBFT
2. Attest to finalized XBlock hashes
0. Halo listens for finalized blocks
XMsg
XMsg
XBlock
BlockHeader
ChainID
BlockHeight
BlockHash
XMsg
XMsg
XMsg
.
.
.
ParentHash
Timestamp
XMsgs are partitioned for inclusion into subranges by the Relayer , verified by Merkle Multiproofs to optimize for submission gas costs.
XReceipt
. . .
XReceipt
XReceipt
XReceipt
XReceipt
CometBFT
ABCI++
Validator Set
Quorum votes constitute an approved attestation.
Validators vote for XBlocks.
XMsg
XMsg
XBlock
XMsg
XMsg
XBlock
XMsg
XMsg
XBlock
XMsg
XMsg
XBlock
Halo
XMsg
XMsg
XBlock
CometBFT
Validator Set
Finalize Commit
Vote
Propose
ABCI++
PrepareProposal
ProcessProposal
ExtendVote
VerifyVoteExtensions
FinalizeBlock
Voting
-
Validators return an array of Votes during the ABCI++ ExtendVote method.
-
Validators should reject vote extensions that contain invalid votes via VerifyVoteExtension.
-
Proposers aggregate votes from the previous block with those from the current one.
-
Quorum votes (66% of validators in the set) constitute an approved Attestation.
-
Validators in the current validator set must vote for all subsequent Attestations.
Why votes from the previous block are included together with votes from the current block?
-
Proof that the previous block has reached consensus.
-
Identifying forks in the chain, ensuring validators only extend the chain from the correct version.
-
Finalize the state changes from the previous block by applying them before starting the process for the current block.
-
Supports deterministic block proposals based on all the valid information available.
Validator Set Change
-
All pending Attestations need to be updated with:
-
The current validator set ID.
-
Removing all attestations by validators not in the current set.
-
Updating the weights (cumulative validator voting power) of each remaining attestation according to the new validator set.
-
-
Only new validators need to re-attest.
Halo
XMsg
XMsg
XBlock
CometBFT
Relayer
XMsg
XMsg
Submission
XMsg
XMsg
Submission
XMsg
XMsg
XMsg
XBlock
Relayer collects finalized XBlock and signatures
Relayer monitors for approved Attestations
Relayer
XMsg
XMsg
Submission
XMsg
XMsg
Submission
XMsg
XMsg
XMsg
XBlock
Relayer submits Submissions to destination rollup
Destination Rollup EVM
Contract Call
DAPP Contracts
Portal
Contracts
Summary
-
Define Problem and System Solution.
-
Define requirements and properties the system must adhere to.
-
Present components and flow of the Cross-Chain Messaging Protocol.
Questions?
Omni Protocol Design v0
By Tsvetan Dimitrov
Omni Protocol Design v0
Introduction to software versioning and release management best practices
- 7