From ad7528b995d77908d3eee592c003a4a49e915fa0 Mon Sep 17 00:00:00 2001 From: Ragnar Date: Mon, 6 Jan 2025 01:44:41 +0100 Subject: [PATCH] Update eip-7612.md --- EIPS/eip-7612.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/EIPS/eip-7612.md b/EIPS/eip-7612.md index 87a6c97251e183..ad5380e394d90c 100644 --- a/EIPS/eip-7612.md +++ b/EIPS/eip-7612.md @@ -105,7 +105,7 @@ And the state access functions are modified as such: ```python3 def get_account_optional(state: State, address: Address) -> Optional[Account]: - account = verkle_get_account(state._overlay_tree, get_tree_key_for_version(addr)) + account = verkle_get_account(state._overlay_tree, get_tree_key_for_version(address)) if account is not None: return account @@ -170,15 +170,19 @@ No backward compatibility issues found. ## Security Considerations - +2. State Root Integrity: The switch from MPT root to VKT root in block headers at `FORK_TIME` must be handled carefully to maintain chain integrity. All clients must implement the exact same transition logic to avoid consensus failures. + +3. Read Path Security: The implementation must ensure that the read path (checking overlay tree first, then falling back to MPT) is atomic and cannot be interrupted between reads, which could lead to inconsistent state views. + +4. Storage Space Considerations: While internal MPT nodes can be deleted after finalization of the fork block, implementations must ensure this deletion process cannot corrupt the remaining leaf data needed for historical state access. + +5. Reorg Handling: During chain reorganizations crossing the `FORK_TIME` boundary, implementations must correctly handle the transition between MPT and VKT root usage in block headers. -Needs discussion. +These considerations require careful testing and implementation by client teams to ensure a secure transition. ## Copyright