以太坊智能合约性能与存储预测方法
1. 研究背景
区块链作为一种由所有参与者维护的分布式账本,许多研究聚焦于PBFT等共识算法以提高效率。然而,执行合约的性能逐渐成为限制系统的瓶颈,当前这一研究领域尚待深入探索。对于以太坊合约,多数研究集中在智能合约的安全性或提升其智能性,而对执行效率的影响研究较少。在存储方面,虽然有EtherQL提供高效的区块链数据分析查询原语,但缺乏对数据空间大小的预测方法。
2. 关键技术
2.1 影响因素
在以太坊中,执行交易的时间消耗可分为EVM执行时间和修改“世界状态”的成本,存储增量则由交易量和变更的“世界状态”的状态数据组成。由于联盟链中的合约通常固定且可预测,EVM的时间消耗和交易量趋于稳定,因此性能和存储变化的根本原因在于“世界状态”的维护成本。
每笔交易通过智能合约执行后,最终会修改“世界状态”的树节点。以太坊的状态是160位地址与树中账户状态映射的结果,即状态树(State Trie)。一个账户状态对应一个叶节点,其地址表示从根节点到该节点的路径。智能合约也是一个账户,每个合约账户都有其数据存储,即存储树(Storage Trie),数据存储同样采用MPT树实现。因此,以太坊的“世界状态”树实际上由上层账户树和下层存储树两部分组成。
创建以太坊合约有两种方式:从交易创建和从旧合约创建。新合约将存储在“世界状态”的状态树中,合约数据存储在存储树中,存储树的根指向该合约。对于特定的业务逻辑,根据合约的实现方式,进入“世界状态”的数据主要分布在状态树(不断创建新合约以存储更多数据)、存储树(创建单个合约以存储大量数据)或两者之间(状态树和存储树的平衡分布)。
超级会员免费看
订阅专栏 解锁全文
16

被折叠的 条评论
为什么被折叠?



