以太坊的本质就是一个基于交易的状态机:
1. 状态数据实际上也是保存在block上的状态树中的。
2. 创世状态里面记录了创世文件初始化的账户数据及其他状态数据,每次生成一个block,执行其中的交易,修改状态数据,并以增量修改的方式记录在最新的block的状态树中。
3. 被最终确认后的block(包括状态)保证永久无法被篡改(符合拜占庭容错的条件下)。
4. 上图中最新的以太坊状态是执行blockN+1中的所有交易后的世界状态。
5. 此时如果本地矿工从交易池中挖到最新的候选block, 或者其他矿工挖到最新的block并在本矿工挖到之前通过该候选block过来,在验证block中的所有打包交易有效性之后,执行该后选block中所有交易。
6. 执行交易的过程就是虚拟机EVM执行交易中的合约代码的过程,全部执行完成后,将被修改的状态记录到候选block的状态树上,然后将该候选block进行上链,包括解决分叉,持久化block数据,更新才能的数据等。
作者:shi_qinfeng
链接:https://www.jianshu.com/p/53b08556fd62
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。