EIP-1153
EIP-1153 is an Ethereum Improvement Proposal introducing a feature to enhance Ethereum's transaction data management by improving smart contract efficiency and reducing gas costs. This proposal brings the concept of transient storage opcodes, which aim to improve efficiency and reduce costs associated with storage operations during smart contract execution.[1][4]
Overview
Ethereum Improvement Proposal (EIP) 1153 is set to change the way the Ethereum (ETH) blockchain processes the data. EIP-1153 is designed to change how the blockchain writes and erases data about transactions happening between accounts. Instead of writing to storage and clearing it before the transaction is over, smart contracts became able to leverage "transient storage," a completely new data mechanism. Its activation took place with the addition of some new opcodes.
Transient storage is a cheaper and more streamlined instrument for data management. It also enables a couple of new use cases for Ethereum (ETH) and EVM ecosystem dApps. For instance, in Uniswap v4, all liquidity pools will be held in one smart contract. This will make liquidity logistics between various pools faster and cheaper. Instead of transferring assets between pools, the system will only change net balances with cross-asset swaps.[2]
EIP-1153 requires a hard fork to implement and EIP-1153 is backwards compatible with all existing smart contracts since it does not change the behavior of any existing opcodes.
EIP-1153 was first proposed in June 2018, and since then, it has evolved and changed how gas pricing and refunding work and how the opcodes are designed. The feature of EIP-1153 has its pros and cons. On one hand, it can help reduce gas costs if used correctly. On the other hand, it can also add complexity, introduce new context, and create additional EVM mechanics, which can increase the attack surface and make the auditing process more complicated.[1]
Transient Storage
In Ethereum, storage plays a crucial role in maintaining the state of smart contracts. However, accessing and modifying storage can be resource-intensive, leading to high gas costs. Transient storage provides a temporary storage area within a transaction’s execution context. Unlike persistent storage, transient storage does not persist in the contract’s state after the transaction is completed.[4]
Opcode
Opcode stands for "operation code". It's a numeric code that contains instructions for a computer's central processing unit (CPU) to perform. An opcode can be a distinct byte or word, or it may be embedded within a larger instruction word. Opcodes can be binary or hexadecimal numbers. For example, an opcode of 0001 might mean adding two numbers, while an opcode of 0010 might mean subtracting two numbers.[3]
Authors
- Alexey Akhunov
- Moody Salem