{
"capability": "universal",
"daLayer": [
"Ethereum"
],
"hostChain": {
"id": "ethereum",
"slug": "ethereum",
"name": "Ethereum"
},
"layer": "layer2",
"proofSystem": {
"type": "Validity"
},
"purposes": [
"Universal",
"RWA"
],
"stage": "Under review",
"reasonsForBeingOther": [
{
"label": "No proofs",
"shortDescription": "The proof system isn't fully functional",
"description": "Projects without a proper proof system fully rely on single entities to safely update the state. A malicious proposer can finalize an invalid state, which can cause loss of funds."
}
],
"stage": "Not applicable",
"type": "Other",
"vm": []
}
{
"self": {
"stateValidation": {
"value": "Under Review",
"description": "This risk is currently under review.",
"sentiment": "UnderReview"
"value": "TEE attestations",
"description": "State roots are accepted when attested by a permissioned TEE through the TEEVerifierProxy. There is no challenge mechanism and no validity proofs can be submitted.",
"sentiment": "bad",
"orderHint": null
},
"dataAvailability": {
"value": "Under Review",
"description": "This risk is currently under review.",
"sentiment": "UnderReview"
"value": "Onchain",
"description": "All of the data needed for proof construction is published on Ethereum L1.",
"sentiment": "good",
"orderHint": null
},
"exitWindow": {
"value": "Under Review",
"description": "This risk is currently under review.",
"sentiment": "UnderReview"
"value": "None",
"description": "There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable.",
"sentiment": "bad",
"orderHint": 0
},
"sequencerFailure": {
"value": "Under Review",
"description": "This risk is currently under review.",
"sentiment": "UnderReview"
"value": "Enqueue via L1",
"description": "Users can submit transactions to an L1 queue, but can't force them. The sequencers cannot selectively skip transactions but can stop processing the queue entirely. In other words, if the sequencers censor or are down, they are so for everyone.",
"sentiment": "warning"
},
"proposerFailure": {
"value": "Under Review",
"description": "This risk is currently under review.",
"sentiment": "UnderReview"
"value": "Cannot withdraw",
"description": "Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen.",
"sentiment": "bad",
"orderHint": null
}
}
}
scalingDa+21-1
null
[
{
"layer": {
"value": "Ethereum",
"secondLine": "Blobs or Calldata",
"sentiment": "good",
"description": "The data is posted to Ethereum as calldata or blobs.",
"projectId": "ethereum"
},
"bridge": {
"value": "Enshrined",
"sentiment": "good",
"description": "The validating bridge has access to all the data, as it is posted onchain.",
"projectId": "ethereum"
},
"mode": {
"value": "Transaction data",
"secondLine": "Compressed"
}
}
]
scalingTechnology+70-1
{
"isUnderReview": true
"dataAvailability": [
{
"name": "All data required for proofs is published on chain",
"description": "All the data that is used to construct the system state is published on chain in the form of cheap blobs or calldata. This ensures that it will be available for enough time.",
"risks": [],
"references": [
{
"title": "Rollup.sol - commitBatch stores calldata hashes for each batch",
"url": "https://etherscan.io/address/0xe0a28B8918a62edB825055221a1dF12c7C81Bac1#code"
},
{
"title": "L1Mailbox.sol - sendMsg enqueues transactions on Ethereum",
"url": "https://etherscan.io/address/0x9869A90FDAc287519E48aff4cCE329907a995162#code"
}
]
}
],
"exitMechanisms": [
{
"name": "Regular messaging",
"description": "The user initiates L2->L1 messages by submitting a regular transaction on this chain. When the block containing that transaction is settled, the message becomes available for processing on L1.",
"risks": [],
"references": [
{
"title": "L1ETHBridge.sol - finalizeWithdraw executes ETH withdrawals",
"url": "https://etherscan.io/address/0x922248Db4A99bB542539ae7165FB9D7A546FB9F1#code"
},
{
"title": "L1Mailbox.sol - relayMsgWithProof verifies withdrawal proofs",
"url": "https://etherscan.io/address/0x9869A90FDAc287519E48aff4cCE329907a995162#code"
}
]
}
],
"forceTransactions": {
"name": "Users can enqueue transactions",
"description": "Users can submit transactions to an L1 queue, but can't force them. The sequencer cannot selectively skip transactions but can stop processing the queue entirely. In other words, if the sequencer censors or is down, it is so for everyone.",
"risks": [
{
"category": "Users can be censored if",
"text": "the operator is offline or refuses to process the queue."
}
],
"references": [
{
"title": "L1Mailbox.sol - sendMsg enqueues deposit transactions",
"url": "https://etherscan.io/address/0x9869A90FDAc287519E48aff4cCE329907a995162#code"
},
{
"title": "Rollup.sol - commitBatch function passes the totalL1MessagePopped as input parameter",
"url": "https://etherscan.io/address/0xe0a28B8918a62edB825055221a1dF12c7C81Bac1#code"
}
]
},
"operator": {
"name": "The system has a centralized operator",
"description": "The operator is the only entity that can propose blocks. A live and trustworthy operator is vital to the health of the system.",
"risks": [
{
"category": "MEV can be extracted if",
"text": "the operator exploits their centralized position and frontruns user transactions."
}
],
"references": [
{
"title": "Rollup.sol - addRelayer is restricted to the owner",
"url": "https://etherscan.io/address/0xe0a28B8918a62edB825055221a1dF12c7C81Bac1#code"
}
]
}
}