From bbfc7f713b4b6f85b91b646df086a44c00695cc8 Mon Sep 17 00:00:00 2001
From: autistic-symposium-helper
<138340846+autistic-symposium-helper@users.noreply.github.com>
Date: Fri, 6 Dec 2024 16:18:44 -0800
Subject: [PATCH] add details in each eip from evm object format meta,
including security when relevant
---
.../ethereum/eips_and_updates/pectra.md | 36 ++++++++++++++++---
1 file changed, 31 insertions(+), 5 deletions(-)
diff --git a/blockchains/ethereum/eips_and_updates/pectra.md b/blockchains/ethereum/eips_and_updates/pectra.md
index 34c3455..e8b21dd 100644
--- a/blockchains/ethereum/eips_and_updates/pectra.md
+++ b/blockchains/ethereum/eips_and_updates/pectra.md
@@ -54,7 +54,7 @@
- - makes the aggregation of validator votes (attestation) in blocks more efficient, reducing networking load and saving node bandwith
+ - makes the aggregation of validator votes (attestation) in blocks more efficient, reducing networking load and saving node bandwidth
- security: first block after fork, mutation over gossip (tba)
@@ -80,7 +80,7 @@
- - introduces a new transaction, the setcode tx, very similar to eip-1559 txs, with an addition autorization list elements ("authorizing some code to live into your account" through creating by template)
+ - introduces a new transaction, the setcode tx, very similar to eip-1559 txs, with an additional authorization list elements ("authorizing some code to live into your account" through creating by template)
@@ -98,7 +98,7 @@
- extends functionalities from blobs
- - execution layer no longer verifies data blobs’s maximum value and instead gets this value dynamically from the consensus layer
+ - execution layer no longer verifies data blobs's maximum value and instead gets this value dynamically from the consensus layer
@@ -147,8 +147,34 @@
- - adds a bunch of evm object format for smart contract deployment and execution efficiency
- - includes optimized code validation, better function handling, more efficient data access instructions
+ - adds a bunch of evm object format for smart contract deployment and execution efficiency, including optimized code validation, better function handling, more efficient data access instructions:
+ - **[eip-3540](https://eips.ethereum.org/EIPS/eip-3540)**:
+ - introduces an extensive container format for the evm with a once-off validation at deploy time
+ - `magic, version, (section_kind, section_size_or_sizes)+, 0, `
+ - **[eip-3670](https://eips.ethereum.org/EIPS/eip-3670)**:
+ - validates eof bytecode for correctness at the time of deployment
+ - **[eip-4200](https://eips.ethereum.org/EIPS/eip-4200)**:
+ - `RJUMP`, `RJUMPI`, and `RJUMPV` instructions with a signed immediate encoding the jump destination
+ - **[eip-4750](https://eips.ethereum.org/EIPS/eip-4750)**:
+ - individual sections for functions with `CALLF` and `RETF` instructions
+ - 🔐 **[eip-5450](https://eips.ethereum.org/EIPS/eip-5450)**:
+ - deploy-time validation of stack usage for eof functions
+ - security: introduces extended validation of eof code sections to guarantee that neither stack underflow nor overflow can happen during execution of validated contracts)
+ - **[eip-6206](https://eips.ethereum.org/EIPS/eip-6206)**:
+ - introduces instruction for chaining function calls
+ - **[eip-7480](https://eips.ethereum.org/EIPS/eip-7480)**:
+ - instructions to read data section of eof container (clear separation between code and data from eof1)
+ - **[eip-663](https://eips.ethereum.org/EIPS/eip-663)**:
+ - introduces additional instructions for manipulating the stack which allows accessing the stack at higher depths
+ - the evm stack is fixed at 1024 items and most implementations keep that in memory at all times - this change increases the number of stack items accessible via single instruction
+ - 🔐 **[eip-7069](https://eips.ethereum.org/EIPS/eip-7069)**:
+ - introduces `EXTCALL`, `EXTDELEGATECALL`, `EXTSTATICALL`, with simplified semantics
+ - security: when implemented in eof - where the `GAS` opcode and the original `CALL` operations are removed - existing out of gas attacks will be slightly more difficult, but not entirely prevented as transactions can still pass in arbitrary gas values
+ - **[eip-7620](https://eips.ethereum.org/EIPS/eip-7620)**:
+ - introduces `EOFCREATE` and `RETURNCONTRACT` instructions
+ - 🔐 **[eip-7620](https://eips.ethereum.org/EIPS/eip-7698)**:
+ - deploys eof contracts using creation transactions
+ - security: external unverified code (e.g., check for correct price, dos)