Crediting L1 deposits properly in the PP #153
Replies: 1 comment
-
i cofirm L1 networkID of L1 is 0 yes. And also yes, the only difference is exactly that, i have a kinda similar logic on the Bridge Smart contract to claim Mainnet assets/messages Also i think you already saw it but, in the "right" side, so, for proving rollups we need an extra merkle proof ( one for the LocalExitRoot of the rollup, and another for the RollupsExitRoot), Mainnet local exit root goes "directly" into the GER And this design was done this way in order to avoid synch issues between mainnet and the rest of networks, in case we move the computation of |
Beta Was this translation helpful? Give feedback.
-
Right now, L1 deposits are handled separately in the Global Exit Tree. The GET has the following structure (from here):
I think, but I want to verify, that we can handle this in the following way.
Assume that L1 has a
NetworkID
of 0 - hopefully @krlosMata can confirm.From the perspective of claiming an
ImportedBridgeExit
, we treat L1->L2 deposits in the same way that we treat an L2->L2 transfer. We import a MainnetLocalExitRoot
in the PP and verify the Merkle path of anImportedBridgeExit
in this local exit root for mainnet deposits.The only difference is that when we go to verify the inclusion of
LocalExitRoots
in aGlobalExitRoot
, we need to special-case the inclusion proof forNetworkId
= 0. We verify that the root of theLocalExitRoot
is the left-child of the root ofGlobalExitTree
. This should be sufficient to prove that deposits from mainnet to a particular chain are valid.Beta Was this translation helpful? Give feedback.
All reactions