以太坊交易本质是外部账户使用私钥签名生成数据包,经P2P网络广播,存入内存池,由验证者打包进区块,通过EVM虚拟机执行,完成账户状态变更并永久写入区块链的完整流程,普通ETH转账、DeFi兑换、代币授权全部遵循这套底层逻辑。普通用户在钱包界面点击发送只是表层操作,真正的链上动作发生在钱包本地、网络节点、验证者、虚拟机多个环节,合约账户无法主动发起交易,只能被外部账户的交易触发执行代码逻辑。

当用户在钱包填写接收地址、转账数量、设置Gas参数确认发送后,钱包会在本地组装完整交易数据包,其中包含发送方地址、接收地址、转账金额、nonce序号、gasLimit上限、手续费相关参数以及可选的data字段,nonce是账户专属自增计数器,每发起一笔交易数字加一,用来规避交易重放攻击,data字段在普通ETH转账时为空,调用合约时存放函数编码数据。组装完成后钱包使用用户私钥对整套数据做椭圆曲线签名,生成独一无二的交易哈希,这个哈希就是后续浏览器查询交易状态的唯一凭证,整个签名过程发生在本地设备,私钥本身不会向外网络泄露任何片段。
签名完成的原始交易数据包会推送至RPC节点,节点首先做基础校验,核对签名合法性、账户余额是否覆盖转账金额与手续费、nonce是否符合账户序列,校验无误后把交易放入内存池,同时向全网相邻节点转发这份交易,节点之间互相同步,短时间内扩散至绝大多数网络节点。内存池会按照有效手续费高低对待确认交易排序,手续费越高的交易被验证者选中打包的优先级越高,网络拥堵时大量交易堆积在内存池,低手续费交易会长时间处于pending待确认状态,甚至最终超时被丢弃,此时用户可以选择提高手续费加速或者等待网络压力回落。

验证者从内存池筛选一批合规交易构建新区块,在以太坊虚拟机EVM中逐条模拟执行每一笔交易,普通转账直接修改发送方与接收方账户余额,如果是合约交互,则读取data字段调用对应合约代码,执行过程中持续消耗Gas,一旦Gas耗尽,所有业务状态全部回滚,但已经消耗的手续费依旧扣除不会退回。全部交易执行完毕后生成新区块,广播至全网,其余节点接收区块后再次独立校验全部交易逻辑,确认没有问题之后同步更新本地账本数据,交易正式获得第一次区块确认。随着后续不断产出新区块,该笔交易的确认数量持续叠加,确认数越高,交易被回滚的可能性越低,普通资产转账一般等待6个区块确认即可认为足够安全。
很多币圈用户容易混淆外部交易与内部消息调用,用户钱包签名发出的属于外部交易,拥有独立交易哈希;而合约执行过程中触发的代币划转、合约间调用属于内部交易,没有独立哈希,依附于原始外部交易存在,只会在区块浏览器的内部交易栏目展示,钱包列表往往不会直接展示。不管是简单ETH转账,还是Uniswap兑换、NFT铸造,表层操作差异巨大,但底层都是外部账户签名发起交易,经由内存池、验证者打包、EVM执行、全网共识确认这套闭环,理解这套机制,也能看懂交易pending、失败、Gas消耗异常等常见问题背后的成因。