
交易:表达需要网络处理的操作
在区块链语境中,“交易”不只表示买卖。以太坊交易可以转移ETH、部署合约或调用合约,作用是请求更新网络状态。比特币交易则通过输入引用先前的输出,再生成新的输出,表达资金的花费与重新分配。
因此,理解“信息交易”时,应先确定讨论的是哪条链、哪种操作。承载调用数据的交易,也不意味着其中记载的现实世界信息已经被证实。
地址、签名与哈希:用途各不相同
地址用于指定账户或收款条件;数字签名用于验证相应密钥对交易内容的授权;交易哈希或txid用于识别和查找交易。三者分别回答对象是谁、授权是否有效、记录是哪一笔。
签名有效不等于现实身份得到认证,交易具有哈希也不等于已经确认。以太坊文档中的交易字段与比特币开发指南中的脚本验证,体现了不同的授权表达方式。
账户字段与UTXO:两种阅读方法
阅读以太坊交易时,from表示发送方,to通常表示接收方或被调用的合约,value表示转移的ETH数量,input data承载调用等数据,nonce表示账户交易序号。合约调用的具体含义还需要结合其接口解释。
阅读比特币普通交易时,重点是输入、输出和UTXO。UTXO即未花费交易输出;输入用txid与输出序号定位要花费的输出。钱包余额可以由多个UTXO组成,不能把一个输入直接理解为一个发送账户。
Gas与手续费:资源数量和价格要分开
在以太坊中,Gas用于计量执行所需的计算资源,gasLimit是允许消耗的上限;maxFeePerGas是每单位Gas的费用上限,maxPriorityFeePerGas是优先费上限。这些字段适用于相应的费用机制,不能直接套用到比特币。
理解费用时,要分别看资源消耗量、单位价格和上限。填写的上限并不直接等于实际支出,也不能把Gas数量当作ETH金额。
常见问题:广播、入块与执行成功是否相同
广播表示交易请求已向网络传播,待处理表示尚在等待纳入区块。以太坊交易进入区块后,仍需区分执行结果与区块最终性:前者关注操作是否完成,后者关注记录的稳定程度。
只读取合约数据是否也要提交交易?以太坊通过eth_call进行只读查询时,无需提交链上交易并支付链上手续费;但相同读取逻辑若发生在链上交易执行过程中,仍会消耗Gas。判断术语含义时,调用场景与链的规则同样重要。