16 以太坊中的数据结构及其状态树

您所在的位置:网站首页 以太坊源码中对账户数据结构的定义 16 以太坊中的数据结构及其状态树

16 以太坊中的数据结构及其状态树

2024-07-15 01:18| 来源: 网络整理| 查看: 265

存在的问题:假如要产生新的区块,新的区块的到来必将引起哈希表中的内容发生变化,这样我们就需要重新计算一遍所有账户的内容生成一棵新的Merkle tree,这样的代价太大了(账户数量太多)。而实际上发生变化的账户只是一小部分,大部分用户的状态是不会发生改变的,所以每次都要重新构建一棵Merkle tree代价是很大的。

比特币系统中也是每出现一个区块就要构建一棵Merkle tree,但是为什么就没有这个问题?:比特币的Merkle tree是将交易组装成一棵Merkle tree,比特币的Merkle tree在每次重新构建完之后是不会更改的,区块里有多少交易呢:1m 每个交易250字节 所以最多4000个 实际上很多交易是几百个,所以我们每次发布一个区块都是要把几百个到几千个区块构建成一个新的Merkle tree。而我们如果在以太坊中使用这种方式,每次是将所有账户遍历一遍构建一个Merkle tree,Merkle tree的作用除了提供hash proof之外,还有一个重要的作用就是维护全节点之间状态的一致性:这也是比特币中为什么把根哈希值写在块头上的原因。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3