Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add EIP: Add Controlled Gas Limit Increase Strategy #8933

Merged
merged 39 commits into from
Oct 16, 2024
Merged
Changes from 9 commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
20462cc
save
Giulio2002 Oct 6, 2024
2c09c76
save
Giulio2002 Oct 6, 2024
2b0bc14
save
Giulio2002 Oct 6, 2024
eff2981
save
Giulio2002 Oct 6, 2024
e11d563
save
Giulio2002 Oct 6, 2024
19bd32d
save
Giulio2002 Oct 6, 2024
180a82a
save
Giulio2002 Oct 6, 2024
3e4d231
save
Giulio2002 Oct 6, 2024
3bde203
save
Giulio2002 Oct 6, 2024
c87de14
ops
Giulio2002 Oct 6, 2024
6304e66
ops
Giulio2002 Oct 6, 2024
5eadb64
ops
Giulio2002 Oct 6, 2024
da5bc90
ops
Giulio2002 Oct 6, 2024
13d702e
ops
Giulio2002 Oct 6, 2024
e6eafb8
fix lint
Giulio2002 Oct 6, 2024
ea0e61b
fix lint
Giulio2002 Oct 6, 2024
71f6d2a
fix lint
Giulio2002 Oct 6, 2024
2ae0f0a
fix lint
Giulio2002 Oct 6, 2024
d56d238
fix lint
Giulio2002 Oct 6, 2024
0fd9dee
fix lint
Giulio2002 Oct 6, 2024
8bea505
fix lint
Giulio2002 Oct 6, 2024
b06b52d
fix lint
Giulio2002 Oct 7, 2024
ef88692
fix
Giulio2002 Oct 7, 2024
8a18a68
save
Giulio2002 Oct 7, 2024
a3fb331
save
Giulio2002 Oct 7, 2024
b400115
save
Giulio2002 Oct 7, 2024
eb6e83c
save
Giulio2002 Oct 7, 2024
1e2b04e
save
Giulio2002 Oct 7, 2024
c2852e6
Update EIPS/eip-7783.md
Giulio2002 Oct 7, 2024
46c8143
save
Giulio2002 Oct 9, 2024
ca563f3
save
Giulio2002 Oct 9, 2024
1cdb1f9
save
Giulio2002 Oct 9, 2024
ce7ae0f
save
Giulio2002 Oct 10, 2024
30ac593
Update EIPS/eip-7783.md
Giulio2002 Oct 10, 2024
4fd3f44
Update EIPS/eip-7783.md
Giulio2002 Oct 14, 2024
13d8bae
Update EIPS/eip-7783.md
Giulio2002 Oct 14, 2024
e98e237
save
Giulio2002 Oct 14, 2024
ee9613c
save
Giulio2002 Oct 14, 2024
cc8bdb8
save
Giulio2002 Oct 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions EIPS/eip-7779.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
eip: 7779
Giulio2002 marked this conversation as resolved.
Show resolved Hide resolved
title: Add Controlled Gas Target Increase Strategy
description: Gradual Gas Limit Increase strategy To Determine Gas Limit over a two-year period.
author: Giulio Rebuffo (@Giulio2002)
discussions-to: https://ethresear.ch/t/eip-7779-discussion-thread/20574

Check failure on line 6 in EIPS/eip-7779.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `discussions-to` should point to a thread on ethereum-magicians.org

error[preamble-re-discussions-to]: preamble header `discussions-to` should point to a thread on ethereum-magicians.org --> EIPS/eip-7779.md:6:16 | 6 | discussions-to: https://ethresear.ch/t/eip-7779-discussion-thread/20574 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required pattern was not matched | = info: the pattern in question: `^https://ethereum-magicians.org/t/[^/]+/[0-9]+$` = help: see https://ethereum.github.io/eipw/preamble-re-discussions-to/

Check failure on line 6 in EIPS/eip-7779.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble header `discussions-to` should point to a thread on ethereum-magicians.org

error[preamble-re-discussions-to]: preamble header `discussions-to` should point to a thread on ethereum-magicians.org --> EIPS/eip-7779.md:6:16 | 6 | discussions-to: https://ethresear.ch/t/eip-7779-discussion-thread/20574 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required pattern was not matched | = info: the pattern in question: `^https://ethereum-magicians.org/t/[^/]+/[0-9]+$` = help: see https://ethereum.github.io/eipw/preamble-re-discussions-to/
Giulio2002 marked this conversation as resolved.
Show resolved Hide resolved
status: Draft
type: Standards Track
category: Core
Giulio2002 marked this conversation as resolved.
Show resolved Hide resolved
created: 2024-10-06
---

This proposal describes the introduction in clients of a controlled gas limit increase strategy to determine the gas limit of a specific block and set as default with conservative parameters, while keeping the possibility to change it in the future to a fixed value.

## **Abstract**

The EIP proposes the introduction of a new gas limit management mechanism that automatically increases the block gas limit over a two-year period. The incremental growth is controlled by a fixed rate, ensuring predictable network scaling while preventing sudden surges in block sizes. This strategy is meant to be used as a default setting, with the option to switch to a fixed gas limit if needed (or different parameters).

## **Motivation**

### **Predictable Gas Limit Growth**

- **Current Issue:**
- The Ethereum network faces increasing demand, but changes to the gas limit are often manually adjusted by miners or validators based on their preferences, which may cause unpredictable block sizes and network performance issues.

- **Need for Change:**
- A systematic and predictable increase of the gas limit will help scale the network while giving the ecosystem time to adjust to larger block sizes, without needing to rely on ad hoc decisions by network participants.

### **Gradual Increase with Deactivation Safeguard**

- **Controlled Growth:**
- Instead of sudden or unpredictable changes, this EIP proposes incremental gas limit increases over a specified amount of time, ensuring a smooth transition to higher transaction throughput, while still keeping the governance of the gas limit in the hand of the community.

- **Automatic Deactivation:**
- A safeguard deactivation block will halt the increase after some specified time, preventing the gas limit from growing indefinitely and allowing the community to reassess the network's needs.

## **Specification**

### **Incremental Gas Limit Increase Strategy**

Add a new "Gas Limit" selection strategy that takes in Block Number `N` and spits out the Gas Limit `GL` for that block. The strategy is as follows:

- The gas limit `GL_t` at block `t` is calculated as:
```GL_t = GL_0 + (t - t_0)*t```
Where:
- `GL_0` is the initial gas limit (say 30 million gas).
- `r` is the per-block increase rate (0.00475% or 0.0000475).
- `t` is the number of blocks since the implementation of the EIP.
- `t_0` is start block number.

Check failure on line 49 in EIPS/eip-7779.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Inconsistent indentation for list items at the same level [Expected: 3; Actual: 4]

EIPS/eip-7779.md:49:1 MD005/list-indent Inconsistent indentation for list items at the same level [Expected: 3; Actual: 4]

Check failure on line 49 in EIPS/eip-7779.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Inconsistent indentation for list items at the same level [Expected: 3; Actual: 4]

EIPS/eip-7779.md:49:1 MD005/list-indent Inconsistent indentation for list items at the same level [Expected: 3; Actual: 4]
- The increase halts once `t` reaches the block corresponding to two years (approximately 5,184,000 blocks, assuming 12-second block times). this parameters are tuned so that there is a doubling of the gas limit in two years.

### **Implementation**

- **Client Updates:**
- Ethereum clients must implement the automatic gas limit increase according to the specified rate and formula, with enforcement of the deactivation block.

- **Gas Limit Management:**
- Miners and validators are not required to adjust the gas limit manually during this period, as the increase will be automated at the protocol level.
Giulio2002 marked this conversation as resolved.
Show resolved Hide resolved

## **Rationale**

### **Predictable Growth**

- **Systematic Adjustment:**
- The gradual increase avoids sudden surges in gas limit that could destabilize the network. Instead, it provides a smooth transition, giving the ecosystem time to adapt to larger block sizes.

### **Controlled Limit with Deactivation Block**

- **Automatic Safeguard:**
- The inclusion of a deactivation block ensures that the gas limit does not increase indefinitely, preventing potential negative impacts on network performance beyond the planned growth.


- **Community Consensus:**
- The deactivation block serves only as a checkpoint for the community to evaluate the impact of the gas limit increase, however, in the two-year period, the community can decide to halt the increase at any time and can also switch to a fixed gas limit if needed.

## **Backwards Compatibility**

**No Hard Fork Required**

## **Security Considerations**


- The controlled gas limit increase strategy is designed to prevent sudden changes that could lead to network instability or security vulnerabilities.
- The fact that validators can re-adjust the gas limit in case of a DDOS attack or other issues, makes the network more secure than to just increase the gas limit manually in a cliff-like manner.

## **Copyright**

Copyright and related rights waived via CC0 1.0 Universal.

Loading