Replies: 6 comments
-
This is definitely a looong-term feature for SabVM. From Optimism's docs:
Also relevant is this article: |
Beta Was this translation helpful? Give feedback.
-
From Optimism's Security FAQ:
|
Beta Was this translation helpful? Give feedback.
-
Relevant page from Optimism's documentation: The key section is the Dispute Game Protocol.
|
Beta Was this translation helpful? Give feedback.
-
Important observation made by Georgios here:
Also, from Optimism's docs:
|
Beta Was this translation helpful? Give feedback.
-
Good research materials: Short form
Long-form |
Beta Was this translation helpful? Give feedback.
-
It appears that fault proofs are a no-go for Sablier Mainnet. One of the assumptions that optimistic rollups make is that there is precompile parity between L1 and L2. The pre-images need to be verified on L1: |
Beta Was this translation helpful? Give feedback.
-
In optimistic rollups, fault proofs (FPs) are used to challenge the assumption that the new state has been generated correctly.
For simplicity's sake, FPs won't be enabled in Genesis. Arbitrum supports them, but OP Stack doesn't. And if the Optimism team hasn't been yet able to ship this feature for vanilla EVM rollups, we should have no expectations to pull this off by the EOY.
In this discussion, I will explore the implications of the streaming opcodes and the subgraph data structure for FPs.
FPs work by employing a multi-round interactive proving game. The core idea is to replicate the EVM execution in a L1 smart contract, but do it using a 'bisection' protocol where incremental steps are provided by both the asserter and the challenger. It's kinda like binary search for finding malicious VM instruction steps that never existed in the calldata posted on Mainnet.
Now, on SabVM, the existence of the streaming opcodes poses two challenges:
More research needed to confirm that such computations can be performed in a challenge game in a L1 smart contract.
For now, I suggest disabling fault proofs in both Genesis and Odyssey, letting this feature to be handled in a future milestone.
Note
Switching to a ZK stack would solve this problem, but we cannot do that per the arguments provided here.
Beta Was this translation helpful? Give feedback.
All reactions