北京大学肖臻老师《区块链技术与应用》ETH笔记 - 4.0交易树和收据树

4.0交易树和收据树

每次发布一个区块时,区块中的交易会形成一颗Merkle Tree,即交易树。此外,以太坊还添加了一个收据树,每个交易执行完之后形成一个收据,记录交易相关信息。也就是说,交易树和收据树上的节点是一一对应的。 由于以太坊智能合约执行较为复杂,通过增加收据树,便于快速查询执行结果。

交易树和收据树都是MPT(Merkle Patricia tree),而BTC中都采用普通的MT(Merkle Tree)。可能就仅仅是为了三棵树代码比较统一,便于管理,不一定非要有其他的原因。

MPT的好处是支持查找操作,通过键值沿着树进行查找即可。对于状态树,查找键值为账户地址;对于交易树和收据树,查找键值为交易在发布的区块中的序号,交易的排列顺序是由发布交易的那个节点决定的。

交易树和收据树只将当前区块中的交易组织起来,而状态树将所有账户的状态都包含进去,无论这些账户是否与当前区块中交易有关系。多个区块的状态树是共享节点,只有改变状态的那个节点需要新建分支,而交易树和收据树依照区块独立。

交易树和收据树的用途:

  1. 向轻节点提供Merkle Proof。

  2. 更加复杂的查找操作(例如:查找过去十天所有跟某个智能合约相关的交易;过去十天的众筹事件等)

Bloom filter(布隆过滤器)

支持较为高效查找某个元素是否在某个集合中。 最笨的方法:元素遍历,复杂度为O(n),而且需要存储整个交易列表——轻节点不能用 改进的方法:给一个大的集合,计算出一个紧凑的“摘要”。

例:如下图,给定一个数据集,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值