Skip to content

BEP-227: Implement EIP-3198: BASEFEE opcode#227

Merged
brilliant-lx merged 3 commits intomasterfrom
BEP227-BASEFEE
May 25, 2023
Merged

BEP-227: Implement EIP-3198: BASEFEE opcode#227
brilliant-lx merged 3 commits intomasterfrom
BEP227-BASEFEE

Conversation

@Mister-EA
Copy link
Copy Markdown
Contributor

@Mister-EA Mister-EA commented Apr 17, 2023

    BEP: 227
    Title: Add BASEFEE opcode
    Status: Pre-Draft
    Type: Standards
    Created: 2023-04-17

BEP-227: Add BASEFEE opcode

1. Summary

Adds an opcode that gives the EVM access to the block's base fee. This BEP is dependent on BEP-226 (EIP-1559 with base fee of 0).

2. Abstract

Add a BASEFEE (0x48) that returns the value of the base fee of the current block it is executing in.

The code for this BEP has already been merged from upstream go-ethereum codebase into BSC node codebase. The work entails enabling EIP-3198 (this BEP) for BSC network configurations and performing a hard fork.

3. Motivation

The intended use case would be for contracts to get the value of the base fee (introduced by EIP-1559 (BEP-226)).

4. Specification

Add a BASEFEE opcode at (0x48), with gas cost G_base.

Op Input Output Cost
0x48 0 1 2

5. Gas cost

The value of the base fee is needed to process transactions. That means it's value is already available before running the EVM code.
The opcode does not add extra complexity and additional read/write operations, hence the choice of G_base gas cost.

6. Backwards Compatibility

There are no known backward compatibility issues with this opcode.

7. Test Cases

7.1 Nominal case

Assuming current block base fee is 7 wei.
This should push the value 7 (left padded byte32) to the stack.

Bytecode: 0x4800 (BASEFEE, STOP)

Pc Op Cost Stack RStack
0 BASEFEE 2 [] []
1 STOP 0 [7] []

Output: 0x
Consumed gas: 2

8. Security Considerations

The value of the base fee is not sensitive and is publicly accessible in the block header. There are no known security implications with this opcode.

9. License

The content is licensed under CC0.

@Mister-EA Mister-EA marked this pull request as draft April 17, 2023 08:55
@Mister-EA Mister-EA marked this pull request as ready for review April 17, 2023 11:02
@Mister-EA Mister-EA changed the title BEP-227: BASEFEE opcode BEP-227: Implemeng EIP-3198: BASEFEE opcode May 24, 2023
@Mister-EA Mister-EA changed the title BEP-227: Implemeng EIP-3198: BASEFEE opcode BEP-227: Implement EIP-3198: BASEFEE opcode May 24, 2023
@joaung77
Copy link
Copy Markdown

#297 #236 #293

@joaung77
Copy link
Copy Markdown

@joaung77
Copy link
Copy Markdown

@joaung77

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants