eip-7702: a technical deep dive, by lightclient (2024)

This commit is contained in:
autistic-symposium-helper 2024-12-06 13:24:46 -08:00 committed by GitHub
parent ea03fad5c5
commit 5924ee8f82
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,4 +1,4 @@
## [DRAFT] security considerations for **[pectra](https://eips.ethereum.org/EIPS/eip-7600)** (q1/25) ## [DRAFT] security considerations for **[pectra](https://eips.ethereum.org/EIPS/eip-7600)** (early 2025)
<br> <br>
@ -8,19 +8,27 @@
<br> <br>
---
* ✅🔐🤝🏋🏻‍♀️ **[eip-6110: supply validator deposits on chain, by m. kalinin et al.](https://eips.ethereum.org/EIPS/eip-61100)** * ✅🔐🤝🏋🏻‍♀️ **[eip-6110: supply validator deposits on chain, by m. kalinin et al.](https://eips.ethereum.org/EIPS/eip-61100)**
- faster for validators to deposit their eth (12 hours -> 30 min) - faster for validators to deposit their eth (12 hours -> 30 min)
- remove the need for deposit voting from the cl, reducing the complexity of client software design
- security: data complexity, dos, weak subjectivity period (tba) - security: data complexity, dos, weak subjectivity period (tba)
<br> <br>
* ✅🔐🏋🏻‍♀️ **[eip-7002: execution layer triggerable exits, by djrtwo et al.](https://eips.ethereum.org/EIPS/eip-7002)** ---
* ✅🔐🤝🏋🏻‍♀️ **[eip-7002: execution layer triggerable exits, by djrtwo et al.](https://eips.ethereum.org/EIPS/eip-7002)**
- improve ux for validators, giving them more flexibility - improve ux for validators, giving them more flexibility
- allow validators to trigger exits and partial withdrawals via their execution layer withdrawal credentials (e.g., enabling more trustless staking pool designs)
- security: impact on existing custody relationships, fee overpayment (tba) - security: impact on existing custody relationships, fee overpayment (tba)
<br> <br>
* ✅🔐🤝 **[eip-7251: increase the `MAX_EFFECTIVE_BALANCE`, by m. neuter et al.](https://eips.ethereum.org/EIPS/eip-7251)** ---
* ✅🔐🤝 **[eip-7251: increase the `MAX_EFFECTIVE_BALANCE`, by m. neuder et al.](https://eips.ethereum.org/EIPS/eip-7251)**
- biggest ux improvement for validators - biggest ux improvement for validators
- raise the validator stake limit (maximum effective balance from 32 -> 2048 eth, with reward compounding) - raise the validator stake limit (maximum effective balance from 32 -> 2048 eth, with reward compounding)
- potentially can reduce the number of inactive nodes and possibly improving the network efficiency - potentially can reduce the number of inactive nodes and possibly improving the network efficiency
@ -28,34 +36,62 @@
<br> <br>
* ✅🔐🤝 **[eip-7549: move committee index outside attestation, by dappling](https://eips.ethereum.org/EIPS/eip-7549)** ---
- shuffle the consensus message, making it more efficient
* ✅🔐🤝 **[eip-7549: move committee index outside attestation, by dapplion](https://eips.ethereum.org/EIPS/eip-7549)**
- makes the aggregation of validator votes (attestation) in blocks more efficient, reducing networking load and saving node bandwith
- security: first block after fork, mutation over gossip (tba) - security: first block after fork, mutation over gossip (tba)
<br> <br>
---
* ✅🔐🤝🏋🏻‍♀️ **[eip-7702: set eoa account code, by vub et al.](https://eips.ethereum.org/EIPS/eip-7702)** * ✅🔐🤝🏋🏻‍♀️ **[eip-7702: set eoa account code, by vub et al.](https://eips.ethereum.org/EIPS/eip-7702)**
- improve the functionality of crypto wallets by giving them smart contract properties (the so called "account abstraction") - improve the functionality of crypto wallets by giving them smart contract properties (the so called "account abstraction")
<p align="center">
<img src="https://github.com/user-attachments/assets/e7ae1ae1-bcae-4444-8f61-c76ab60d8d9a" width="80%"/>
</p>
- more usability in crypto, enhanced security features: - more usability in crypto, enhanced security features:
- batching (allowing multiple operations from the same user in one atomic transaction) - batching (allowing multiple operations from the same user in one atomic transaction)
- sponsorship (an account can pay for a transaction on behalf of another account) - sponsorship (an account can pay for a transaction on behalf of another account)
- privilege de-escalation (users can sign sub-keys and given them specific permissions that are much weaker than global access to the account) - privilege de-escalation (users can sign sub-keys, giving them specific permissions that are much weaker than global access to the account)
<p align="center">
<img src="https://github.com/user-attachments/assets/3cb0f48b-88aa-4844-9a46-ede10e09837e" width="80%"/>
</p>
- introduce 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)
<p align="center">
<img src="https://github.com/user-attachments/assets/76a0d234-61d9-4617-bc3e-e3fe8903bb40" width="80%"/>
</p>
- e.g.: gas fees could be outsourced to services to pay on another erc-20 token - e.g.: gas fees could be outsourced to services to pay on another erc-20 token
- security: secure delegation, `tx.origin`, sponsored tx relayers, frontrunning initialization, tx propagation (tba) - security: secure delegation, `tx.origin`, sponsored tx relayers, frontrunning initialization, tx propagation (tba)
<br> <br>
---
* ✅🤝🏋🏻‍♀️ **[eip-7742: uncouple blob count between cl and el, by a. stokes](https://eips.ethereum.org/EIPS/eip-7742)** * ✅🤝🏋🏻‍♀️ **[eip-7742: uncouple blob count between cl and el, by a. stokes](https://eips.ethereum.org/EIPS/eip-7742)**
- extend functionalities from blobs - extend functionalities from blobs
- execution layer no longer verifies data blobss maximum value and instead gets this value dynamically from the consensus layer - execution layer no longer verifies data blobss maximum value and instead gets this value dynamically from the consensus layer
<br> <br>
---
* ✅🏋🏻‍♀️ **[eip-7685: general purpose execution layer requests, by lightclient](https://eips.ethereum.org/EIPS/eip-7685)** * ✅🏋🏻‍♀️ **[eip-7685: general purpose execution layer requests, by lightclient](https://eips.ethereum.org/EIPS/eip-7685)**
- boost the interoperability between the execution and the consensus layer (helping with surge demand on the execution layer) - boost the interoperability between the execution and the consensus layer (helping with surge demand on the execution layer)
- more efficient way to code, test, and implement execution triggered requests such as eip-6110 and eip-7002
<br> <br>
---
* ✅🏋🏻‍♀️ **[eip-2935: save historical block hashes from state, by vub et al.](https://eips.ethereum.org/EIPS/eip-2935)** * ✅🏋🏻‍♀️ **[eip-2935: save historical block hashes from state, by vub et al.](https://eips.ethereum.org/EIPS/eip-2935)**
- increase amount of data from past blocks that can be stored on new blocks - increase amount of data from past blocks that can be stored on new blocks
- set the stage for verkle tree - set the stage for verkle tree
@ -64,26 +100,34 @@
<br> <br>
* ✅🤝 **[eip-7594: peerdas - peer data availability Sampling, by djirtwo et al.](https://eips.ethereum.org/EIPS/eip-7594)** ---
* ✅🤝 **[eip-7594: peerdas - peer data availability Sampling, by djrtwo et al.](https://eips.ethereum.org/EIPS/eip-7594)**
- allow beacon nodes to perform data availability sampling, improving how da is handled across the network - allow beacon nodes to perform data availability sampling, improving how da is handled across the network
- crucial feature for layer 2s (making them more efficient and cost-effective) - crucial feature for layer 2s (making them more efficient and cost-effective)
- compare to celestia (tba) - compare to celestia (tba)
<br> <br>
---
* ✅ **[eip-7692: evm object format meta, by a. beregszaszi et al.](https://eips.ethereum.org/EIPS/eip-7692)** * ✅ **[eip-7692: evm object format meta, by a. beregszaszi et al.](https://eips.ethereum.org/EIPS/eip-7692)**
- add a bunch of evm object format for smart contract deployment and execution efficiency - add a bunch of evm object format for smart contract deployment and execution efficiency
- include optimized code validation, better function handling, more efficient data access instructions - include optimized code validation, better function handling, more efficient data access instructions
<br> <br>
---
* 🟡 **[eip-7623: increase calldata cost, by t. wahrstätter et al.](https://eips.ethereum.org/EIPS/eip-7623)** * 🟡 **[eip-7623: increase calldata cost, by t. wahrstätter et al.](https://eips.ethereum.org/EIPS/eip-7623)**
- increasing the calldata cost for transactions (increase the cost of calldata to 10/40 gas for transactions that do not exceed a certain threshold of gas spent on evm operations) - increase the calldata cost for transactions (increase the cost of calldata to 10/40 gas for transactions that do not exceed a certain threshold of gas spent on evm operations)
- highligting data availability - highligting data availability
<br> <br>
* 🟡 **[eip-7762: increase `MIN_BASE_FEE_PER_BLOB_GAS`, by maxy riesnick](https://eips.ethereum.org/EIPS/eip-7762)** ---
* 🟡 **[eip-7762: increase `MIN_BASE_FEE_PER_BLOB_GAS`, by m. resnick](https://eips.ethereum.org/EIPS/eip-7762)**
- speed up discovery on blob space - speed up discovery on blob space
- security: "rollups that use blobs as da will need to update their posting strategies" - security: "rollups that use blobs as da will need to update their posting strategies"
@ -96,4 +140,4 @@
<br> <br>
* **[what's going into the pectra upgrade?, by c. kim (2024)](https://www.youtube.com/watch?v=ufIDBCgdGwY)** * **[what's going into the pectra upgrade?, by c. kim (2024)](https://www.youtube.com/watch?v=ufIDBCgdGwY)**
* **[eip-7702: a technical deep dive, by lightclient (2024)](https://www.youtube.com/watch?v=_k5fKlKBWV4)**