In-Detail: Nexus Multi-Chain State Synchronization
Last updated
Last updated
In zkLink's Nexus mode, multi-chain state synchronization is achieved by transmitting sync hashes. This process is facilitated by an official message bridge, also known as a canonical message service, which is deployed by the Layer2 Network team. Once these sync hashes from various chains are received on the Ethereum mainnet, they undergo a consistency check. Upon successful verification, the confirmation information is relayed back to the Layer2 network via the same official message bridge.
For simplicity and ease of understanding, the above diagram uses only two zkRollup Layer2s as examples and does not represent the actual network deployment scenario.
The zkLink Protocol deploys several contracts, as featured in the image above, which include:
zkLink Main Contract: This is the principal contract of zkLink, encompassing functions for user deposits, zk verification, and sync hash.
Linea L1 Gateway, zkSync Era L1 Gateway : These gateway contracts which are deployed on the Ethereum Mainnet, are tasked with comparing the sync hash and forwarding the results to the zkLink Main Contract on Layer2 Network via the official message bridge.
Linea L2 Gateway, zkSync Era L2 Gateway: These gateway contracts which are deployed on the Layer2 Network are responsible for sending the sync hashes to the Arbitrator contract on Ethereum through the official message bridge.
Arbitrator: This contract receives and stores zkLink's sync hashes from various zk Layer2 Networks, performs consistency verification, and then uses the confirmBlock
method to transmit the comparison results to each Layer2 Network's zkLink Main contract."
Linea Canonical Message Service
zkSync Era Canonical Message Service
These are the official message bridges, deployed respectively by the zkSync Team and Linea Team, that are responsible for facilitating message transmission between the Layer2 and Ethereum.
The zkLink Sequencer is responsible for executing transactions, submitting blocks, and zk proofs. During the multi-chain state synchronization phase, it is in charge of invoking contracts on different chains to drive state synchronization.
The process of multi-chain state synchronization is divided into two steps:
Sending Sync Hash: The zkLink Sequencer triggers the zkLink main contracts on both zkSync Era and Linea to dispatch their respective chain's sync hash to the Arbitrator.
Confirming Blocks: After receiving the sync hashes from the different chains, the zkLink Sequencer uses the Arbitrator's ConfirmBlock method to perform consistency verification of the sync hashes. If this verification is successful, the Arbitrator transmits a confirmation message via the L1 gateway to the zkLink contracts on the various zk Rollups.
The table below is the Nexus Beta Network Information.
Deployment Chain | Module Name | Contract Address |
---|---|---|
Ethereum Mainnet
Arbitrator
0x683669E5B6cDc6636673a5f7ddB68E20812216F5
Ethereum Mainnet
Linea L1 Gateway
0xaD5d729291C0d6A299E370814CA6Ce1c8C25b51c
Ethereum Mainnet
zkSync Era L1 Gateway
0x98CEDA04E4a1FDc0fd025FB73e48e609AD00673B
Linea Mainnet
zkLink Main Contract
0xdE1Ce751405Fe6D836349226EEdCDFFE1C3BE269
Linea Mainnet
Linea L2 Gateway
0xb6B96964633F558980e454953474cc7435c3D78B
zkSync Era Mainnet
zkLink Main Contract
0x0669ef7718376591AE0756A56255c75D2e712d87
zkSync Era Mainnet
zkSync L2 Gateway
0xF180DD47ad7681335c82a592EA62Fdb92446F300