To enable NCRC among multiple Rollups, the following two prerequisites need to be met:
These Rollups must belong to the ZK-Rollup type.
These Rollups must reside on the same L1.
Rollups satisfying these two conditions theoretically possess the same level of security as the underlying L1. Similarly, the security level of the native bridge among these Rollups is identical and requires no trust between them. All NCRC transactions are verified by validity proofs, serving as the fundamental source of security assurance for NCRC.
Rollup Recognition Contract (RRC)
As of August 2023, several ZK-Rollups have gone live on the mainnet, including Polygon zkEVM, zkSync era, Linea, and more. However, these ZK-Rollups are independent and unrelated, leading to fragmentation of user assets. The fundamental reason for this issue lies in the fact that their contracts on L1 (Ethereum mainnet) are unrelated. They remain unaware of each other's existence and are unable to directly communicate through native Rollup bridges.
Therefore, the first step we need to take is deploying a specialized contract on L1 to enable Rollups to discover and recognize each other. This is referred to as the RRC (Rollup Recognition Contract). The RRC is responsible for managing all participating ZK-Rollups in the NCRC, including additions, pauses, and exits of Rollups. Each Rollup within the RRC is assigned a dedicated Rollup ID, while the ID for L1 remains fixed at 0.
When initiating cross-Rollup transactions through the native bridge on a Rollup, addresses can specify the target Rollup ID:
If the Rollup ID is 0, it signifies crossing the message to L1, such as withdrawal.
If the Rollup ID is not 0, it indicates sending the message to another Rollup.
Lumoz will deploy an RRC contract on every L1 layer and allow corresponding ZK-Rollups to join or exit without permission. This RRC contract will be used to maintain information for each Rollup ID, including the bridge contract address on L1. It's important to note that the RRC contract solely provides data retrieval services and does not directly interact with cross-chain assets.
Compatibility with Native Bridge Smart Contracts and Services
Generally, Rollup's native bridge is divided into three components: the bridge contract on L1, the bridge contract on L2, and a bridge service responsible for message relay. The NCRC protocol leverages these components at the underlying level and adds higher-level encapsulation. The main modifications are as follows:
Bridge contract on L2: While preserving the original methods, a new method named bridgeAsset is added. This method allows users to specify the target Rollup's ID in the destinationNetwork parameter.
Bridge contract on L1: A new method is encapsulated to handle the cross-chain messages of the new bridgeAsset method. The bridge contract, based on the Rollup ID found in the RRC contract, locates the information of the target Rollup and transfers the cross-chain assets to the bridge contract of the target Rollup. The cross-chain assets are deposited into the target Rollup there.
Bridge service: Responsible for message relay and charges users fees for cross-Rollup transactions.
Once a Rollup completes the NCRC-related compatibility adaptation mentioned above, it can register with the RRC to join the native cross-Rollup communication network.