
交易记录表达什么
区块链上的交易记录描述按协议提交的操作及相关数据,其含义取决于具体链的记账方式。理解一笔记录,需要回答几个问题:它引用了哪些资产或账户,谁授权了操作,执行了什么规则,以及是否已被区块收录。
以太坊开发文档将交易解释为经过密码学签名、用于更新网络状态的指令;比特币开发指南则从输入和输出说明价值如何转移。两种结构不能直接套用。

账户模型与未花费输出
以太坊采用账户模型,交易可包含接收地址、转移金额、输入数据和 nonce。nonce 是账户交易序号,参与交易排序与有效性检查。比特币的普通交易以输入引用既有输出,并创建新输出;尚未被花费的输出称为 UTXO。

因此,“余额”背后的数据结构并不相同:账户模型维护账户状态,UTXO 模型下的钱包余额则来自可花费输出的汇总。比特币输入通过前序交易标识与输出序号定位具体输出。
数字签名与交易哈希
数字签名让节点验证操作是否获得相应密钥的授权,并检查签名所覆盖的数据是否被修改。验证不需要公开私钥,但签名也不能单独证明签署者的现实身份。
交易哈希是用于标识、查找交易的密码学摘要。它与签名承担不同职责:知道一笔交易的哈希,不代表拥有其中资产的支配权,也不代表交易已经被区块收录。
执行规则、数据与费用
以太坊交易可以转移 ETH、部署合约或调用合约。合约调用的数据通常按 ABI 编码,包含函数选择器和参数;Gas 用于计量执行所需资源。比特币输出则通过脚本规定花费条件,后续输入需要满足这些条件。
这些概念各有适用范围。Gas 上限表示执行资源的上限,不能直接当作实际费用;一段十六进制输入也不能仅凭外观判断用途,需要结合编码规则和目标合约解释。
常见问题:提交是否意味着成功
广播交易只是将请求传播给网络,进入待处理交易池也不等于已经上链。区块收录、执行结果和最终性是不同层面的问题,应分别理解。
对于合约交易,被区块收录并不保证预期操作成功,还需检查执行结果。对于以太坊,通过 eth_call 进行只读查询通常无需支付链上交易费;同一读取逻辑若在链上交易执行过程中被调用,仍会消耗 Gas。