State Root Reasoning on L1 #305
Replies: 1 comment 9 replies
-
Regarding the necessity of posting state roots on L1, it's crucial for ensuring that the state transitions on the OP Mainnet occur correctly according to the EVM. While Ethereum guarantees the correctness of the world state transitions through its consensus algorithm, Gasper, OP Mainnet being a rollup solution relies on Ethereum to provide this assurance. If state roots weren't submitted to L1, there wouldn't be a mechanism to ensure that the state transitions on OP Mainnet are properly validated according to the EVM rules.
You can visit: |
Beta Was this translation helpful? Give feedback.
-
Did you check the documentation?
Did you read the specs?
Did you check for duplicate questions?
Issue Description
My question will be related to optimism v0 that you guys were building 3 years ago. Currently, it mightn't be the same as my question will relate to, but I'd appreciate the answer as if you were answering optimism v0(ofc, if you know, if not, then you can answer it with the latest optimism in mind)
As we know, sequencer publishes calldatas and state roots to L1. The reason it publishes calldatas is that it should be super easy to recover L2 chain in case something goes wrong. Since ethereum is secure, we rely on it so that in case Optimism goes down, we can still recover the chain by re-executing calldatas.
Now, I wonder why state roots are published. One reason you will say is that it allows fraud proofs, such that verifier can check if the state root published is correct and if not, prove on L1 why it's not correct, but I believe this is not the reason why we need state roots published on L1. Even if you don't publish it, L2 nodes still exist, they still wait for incoming blocks from sequencer and in case, tx is not valid in a block, L2 nodes won't add it to their chain. Everything will still be great.
So, then I researched and read that, Its purpose is to allow secure withdrawals.
I am curious how this works. When you want to deposit on L2, you call L1's smart contract's
deposit
function which emits the event to which L2 node listens to and runs it on L2's EVM. All clear now, but it seems like state roots on L1 is needed to withdraw funds from L2 to L1.Thank you so much.
Additional Information
No response
Feedback
No response
Beta Was this translation helpful? Give feedback.
All reactions