智能合约 / 主题阅读

智能合约中数据存储方式的可用性与成本分析

智能合约中存储数据的方式各有优劣,EVM存储成本高但可用性好,calldata成本低但仅在交易中可用,EIP-4844 blobs适合临时数据存储,合约代码存储需注意地址格式限制,事件则适用于链下处理。

智能合约中存储数据的可用性与成本分析

智能合约中存储数据的方式对可用性与成本有显著影响。根据以太坊的文档,存储数据可以通过EVM存储、事件、合约代码、calldata以及EIP-4844 blobs等方式实现。其中,EVM存储具有永久可用性,但成本较高,写入32字节需要约22,100 gas。相比之下,calldata的存储成本较低,但仅在包含该数据的交易中可用,且数据永久保存在区块链上。

EIP-4844 blobs的可用性与使用场景

EIP-4844 blobs是通过Dencun硬分叉引入的,用于存储临时数据,其有效期约为18天。这些数据以独立于执行gas的方式定价,每字节成本仅为1 wei,远低于传统calldata。其主要用途是为rollups提供交易数据存储,确保在挑战期内数据可被验证。一旦挑战期结束,数据的可用性需求降低,因此无需支付高成本的Censorship Resistance。

合约代码存储的限制与优势

合约代码可以存储在区块链上,且具有永久可用性。但该方式要求合约地址不能以0xEF开头,否则会被解释为以太坊对象格式(EOA),并受到更严格的限制。此外,合约代码的读取成本较低,但部署成本较高,需支付32,000 gas加上每字节200 gas。因此,该方式适用于需要多次读取相同数据的场景。

事件(Events)的可用性与成本

事件是智能合约发出的,供链下软件读取的数据。其成本为375 gas加上每字节8 gas,整体成本较高。事件数据不具有链上可用性,仅在链下软件中可被监听。因此,事件适用于需要链下处理的场景,但不适用于需要链上直接访问的数据存储。

资料与延伸阅读

你可以通过以下原始资料核对文中概念,并继续深入阅读。

  1. Blockchain Data Storage Strategies | ethereum.org ↗
← 更多智能合约文章返回顶部 ↑