
一、适用范围与核心区别
本文讨论以太坊交易及 ERC-20 代币机制,不代表所有区块链都采用相同规则。转账改变资产余额,授权设置他方可代为支配代币的额度。权限变化与余额变化属于不同状态,不能把授权成功理解为转账完成。
二、账户、签名与交易字段
交易是经过密码学签名的指令。常见字段包括目标地址、原生币金额、输入数据和交易序号 nonce。签名用于验证发送者对交易的授权;nonce 用于区分账户发出的交易及其顺序。
这里有两种“授权”:签名表示认可某条指令,代币授权则是合约记录的支配权限。签署一笔转账,并不等于授予对方持续使用代币的额度。
三、原生币转账与代币转账
ETH 转账通过交易的 value 表达原生币金额;ERC-20 转账则调用代币合约的 transfer。合约调用通常通过 ABI 规则编码函数及参数。
因此,交易目标地址可能是代币合约,而不是最终收款人。理解操作含义,需要区分外层交易的目标与内部函数参数中的接收方,不能只看一个地址。
四、授权额度如何表达
ERC-20 的 approve 设置被授权方 spender 的额度,allowance 表示剩余额度;transferFrom 可在相应余额与授权条件满足时执行代转。授权本身通常不移动代币,也不等于交出私钥。
额度与余额分别回答“允许支配多少”和“实际持有多少”。额度足够不代表余额足够;某个代币合约中的授权,也不自动代表对其他代币的授权。
五、Gas 与执行结果
链上执行消耗 Gas。Gas 上限限制可消耗的计算单位,单位费用上限则限制愿意承担的费率,两者不是转账金额。
交易广播、进入区块、执行成功与区块最终确定,是不同层面的状态。交易哈希可用于标识交易,但仅有哈希不能证明资产已成功转移。
六、常见理解误区
不直接支付链上费用的签名是否没有影响?不一定。ERC-2612 支持通过签名表达代币授权,不能仅凭是否当场付费判断签名含义。
代币显示的小数位是否影响授权含义?小数位用于把合约整数换算成人类可读数量。理解金额时应区分底层整数与界面显示值,同时辨认代币、被授权方和额度。