
支付的核心是可验证的状态变更
区块链支付通过交易表达价值转移,再由网络按规则验证和记录。理解相关术语,可以依次问四个问题:花费依据是什么、谁有权授权、记录如何改变、处理结果是否确定。比特币和以太坊采用不同的记账方式,字段名称不能直接混用。
UTXO、输入与输出:比特币如何表达支付
比特币开发者指南介绍的普通交易,通过输入引用此前的输出,并生成新的输出。UTXO即未花费交易输出;txid标识交易,vout标识其中某个输出的位置。钱包余额可以由多个UTXO组成。

因此,“一笔交易”与“一笔余额”并非一一对应:交易是一次记录变更,UTXO是尚未被花费的记录单元。理解支付来源时,需要定位具体输出,仅知道此前交易的编号还不够。这里讨论的是普通支付交易,不涵盖矿工创建的coinbase交易例外。

地址、签名与脚本:分别解决什么问题
在比特币P2PKH示例中,地址编码了公钥哈希等信息,输出脚本规定花费条件,花费者提供公钥和数字签名来满足条件。这种脚本结构适用于该交易类型,不能代表所有区块链地址和授权方式。
地址帮助表达支付目的地,签名提供授权验证依据,脚本说明验证条件。签名验证通过,表达的是相应密钥对交易的授权,不能据此确认持有者的现实身份,也不能证明支付对应的商品或服务已经交付。
账户、nonce与data:以太坊的另一种表达
以太坊交易文档以账户状态变化解释转账:value表示转移的ETH数量,nonce是账户交易序号,data可以携带合约调用信息。调用合约时,to指向合约地址。
阅读合约交易时,需要结合字段理解业务含义。例如,to为合约地址时,不能直接把它当成最终收款人的地址;具体动作还取决于调用数据与合约逻辑。nonce也不是交易哈希:前者表达账户交易顺序,后者用于标识交易。
Gas与手续费:区分用量和单价
Gas衡量以太坊交易处理所需的计算工作,gasLimit限制允许使用的Gas数量,maxFeePerGas限制每单位Gas的费用。理解费用时,应把资源用量与资源单价分开。
Gas上限不等于实际消耗,费用上限也不等于最终扣费。支付金额和执行费用属于不同概念,不能只看value就判断发送方的全部支出。
常见问题:有交易哈希就算完成吗
交易哈希用于识别交易,不能单独证明交易已被区块收录。广播、等待处理、区块收录和后续确认属于不同阶段。以太坊合约交易还要区分被收录与执行成功,不能只凭所在区块判断业务结果。
确认与最终性描述记录稳定性的不同方面,具体判断依赖相应网络规则。理解支付状态时,应分别核对交易是否收录、执行结果是否符合预期,以及记录达到何种确定程度。