This repository has been archived by the owner on Jan 24, 2024. It is now read-only.
How to handle early Fault Proof VM exits #22
karlfloersch
started this conversation in
Ideas
Replies: 1 comment 6 replies
-
I'm currently considering that, long term, L1 hard forks may be the most elegant way to update the fraud proof program in cases like these. (somewhat spicy take) |
Beta Was this translation helpful? Give feedback.
6 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Problem
MIPS can diverge from the x86 implementation of Geth. Examples of this include:
If this were to happen, Geth may continue on like nothing is wrong, but then the fraud proof would exit early. Because we must favor what the fraud proof determines, this would mean that Geth must reorg to behave in the same way as the MIPS fraud proof.
Mitigation 1: Detection
It is key that we detect these failures ASAP. This can be done by in parallel running the MIPS evaluation for every block that Geth produces before submitting it on chain. This allows us to detect these failures quickly & handle them.
Mitigation 2: Failure response
The simplest way to respond to a failure like this is to invalidate the block if we detect any MIPS failures. If the MIPS failure is detected then some governance system would propose a new fraud proof binary with that bug patched.
Notes about this approach:
We'll want to combine these two mitigations to handle this failure mode. There may be other ways to improve the way that we handle these attacks -- any suggestions welcome 😄
Beta Was this translation helpful? Give feedback.
All reactions