以太坊作为全球第二大区块链平台,其转账功能(更广义地称为“交易”)是整个生态运行的基础,与比特币等区块链类似,以太坊转账也依赖于分布式账本技术和密码学原理,但其内部机制更为复杂,因为它不仅要转移以太币(ETH),还要支持智能合约的部署与执行,本文将深入浅出地解析以太坊转账的核心原理。
以太坊转账的本质:状态转换
理解以太坊转账的关键在于理解“状态转换”,我们可以将整个以太坊网络想象成一个全球共享的、巨大的数据库(或账本),这个数据库记录了当前所有账户的状态,主要是每个账户的余额,转账操作,本质上就是根据一笔有效的交易,将这个数据库(状态)从一个旧的状态,转换到一个新的状态。
状态转换函数可以表示为:STATE(S, TX) -> S'
S 是当前的状态,TX 是一笔有效的交易,S' 是执行交易后的新状态。
以太坊账户类型:EOA与合约账户
以太坊中有两种主要账户类型,它们在转账原理中扮演不同角色:
-
外部拥有账户 (Externally Owned Account, EOA):
- 由用户通过私钥控制,类似于传统银行账户。
- 拥有以太币余额,可以发起交易。
- 其状态包括:余额 (balance)、 nonce(用于防止重放攻击)、代码(通常为空,因为代码由合约账户管理)和存储(通常为空)。
- 我们通常说的“钱包”地址,就是EOA的地址。
-
合约账户 (Contract Account):
- 由智能代码控制,没有私钥,不能主动发起交易,只能被交易(或另一笔合约调用)激活。
- 其状态包括:余额 (balance)、 nonce、代码(智能合约的字节码)和存储(合约的状态变量)。
- 合约账户的地址通常是在创建合约时由系统生成的。
无论是EOA向EOA转账、EOA向合约账户转账(通常是为了触发合约的特定功能,如支付、调用等),还是合约账户之间的交互(本质上是由EOA发起的交易触发的),其核心都是状态转换。
以太坊交易的核心结构
一笔以太坊交易(Transaction)包含了足够的信息,让网络中的节点(验证者/矿工)能够执行状态转换,一个标准交易包含以下关键字段:
-
接收方地址 (Recipient Address):
- 如果是转账交易,这里是接收方的EOA或合约账户地址。
- 如果是创建合约的交易,这里是空值 (
0x)。








