EIP-1153 是一项 以太坊改进提案,旨在引入一项功能,通过提高 智能合约 的效率并降低 gas 成本来增强 以太坊 的交易数据管理。该提案引入了瞬态存储操作码的概念,旨在提高智能合约执行期间存储操作的效率并降低成本。[1][4]
以太坊改进提案 (EIP) 1153 旨在改变 以太坊 (ETH) 区块链 处理数据的方式。EIP-1153 旨在改变区块链写入和擦除账户之间交易数据的方式。 智能合约 能够利用“瞬态存储”这种全新的数据机制,而不是写入存储并在交易结束前清除它。它的激活是通过添加一些新的操作码来实现的。
瞬态存储是一种更便宜、更精简的数据管理工具。它还为以太坊 (ETH) 和 EVM 生态系统 dApps 带来了一些新的用例。例如,在 Uniswap v4 中,所有 流动性池 都将保存在一个智能合约中。这将使各种池之间的流动性物流更快、更便宜。该系统将仅通过跨资产交换来更改净余额,而不是在池之间转移资产。[2]
EIP-1153 需要通过 硬分叉 来实施,并且 EIP-1153 向后兼容所有现有的智能合约,因为它不会改变任何现有操作码的行为。
EIP-1153 最初于 2018 年 6 月提出,从那时起,它不断发展,改变了 gas 定价和退款的工作方式以及操作码的设计方式。EIP-1153 的功能有利有弊。一方面,如果使用得当,它可以帮助降低 gas 成本。另一方面,它也会增加复杂性,引入新的上下文,并创建额外的 EVM 机制,从而增加攻击面并使审计过程更加复杂。[1]
在以太坊中,存储在维护 智能合约 的状态方面起着至关重要的作用。然而,访问和修改存储可能需要消耗大量资源,从而导致高 gas 成本。瞬态存储在交易的执行上下文中提供了一个临时存储区域。与持久存储不同,瞬态存储在交易完成后不会保留在合约的状态中。[4]
操作码代表“操作代码”。它是一个数字代码,包含计算机中央处理器 (CPU) 执行的指令。操作码可以是不同的字节或字,也可以嵌入到更大的指令字中。操作码可以是二进制或十六进制数字。例如,操作码 0001 可能表示将两个数字相加,而操作码 0010 可能表示将两个数字相减。[3]