以太坊交易的执行过程可以分为以下几个步骤。
1.开始交易:用户可以使用本地以太坊?在钱包软件中,选择要发送的交易地址(From),输入目的地址(To),输入与交易金额相关的gas/gaslimi参数,就可以完成交易生成[]。如果目的地地址为空,则表示这是一笔智能合约交易[[4]]。
2.交易签名:使用私钥签署交易[]。签名过程确保交易的安全性和完整性,防止篡改和重复提交[[10]]。
3.提交事务:将签名的事务添加到事务池(xpool)。事务池是暂时保存网络中待处理事务的区域[[9]]。
4.广播交易:向其他节点广播交易信息[]。网络中的节点接收、验证并打包成新的块[[8]]。
5.验证事务:网络节点验证事务的有效性。检查发信方是否有足够的资金(未成本的事务输出或UTXOs),以及事务是否遵守共识算法的规则[[8]]。另外,中转的RLP编码正确,末尾没有多余的字节,中转签名验证,中转的oce与发送端当前的oce相同,预付中转的发送端的余额有必要验证是否满足非金额要求[]。
6.封装和执行:当新的块到达事务池时,事务池将被重建并封装成新的块[[9]]。挖掘者获得交易副本,完成新区块的交易所工作量证明,并向整个网络广播区块和工作量证明[[12]]。
7.状态转换:在交易执行过程中,以太坊会追踪“子状态”。这是记录交易中发生的信息的方法。你需要在交易完成后马上得到这些信息[[6]]。以太坊是基于事务的状态机,它的状态会随着事务的执行而改变[[7]]。
8.状态更新:接收到新块的每个节点重新执行其中包含的事务,更新以太坊虚拟机(EVM)的状态[[12]]。这个步骤保证了整个网络的一致性和安全性。