光电 · 技术与产业
文章库关于本站

光电技术

区块链查记录入门需要了解什么:交易标识、输入输出与代币事件

摘要

查询区块链记录,需要先区分所用网络与记录类型。比特币侧重交易标识、输入输出和未花费输出;ERC-20 代币侧重合约、余额、转移事件与授权额度。理解这些字段的含义,才能避免把输出总额当作收款金额、把授权记录当作转账记录。

比特币挖矿工作量证明的科技主题配图

先明确查询对象和适用范围

区块链查记录入门需要了解什么,首先取决于查的是哪类记录。比特币交易采用输入与输出结构;ERC-20 则规定了代币余额、转移和授权等接口。两者的字段含义不同,不能套用同一套账单理解方式。

入门时可先明确问题:是定位一笔交易、理解某笔资金的去向,还是核对代币余额与授权额度?问题明确后,才知道应关注交易标识、输出位置,还是具体代币合约中的账户数据。

区块链技术数字签名的科技主题配图

比特币:交易标识与输出位置一起看

比特币开发指南介绍,普通交易的输入引用先前交易的输出,引用方式是交易标识 txid 加输出索引。索引从零开始,因此一笔交易包含多个输出时,仅有 txid 还不足以定位其中某一个输出。这里的普通交易说明不涵盖矿工创建的 coinbase 交易。

智能合约区块链的科技主题配图

未被后续输入花费的输出称为 UTXO。理解余额时,可以把它看作钱包能够花费的相关未花费输出金额的汇总。核对一笔记录时,要区分整笔交易、其中一个输出以及该输出是否已经被花费,避免把它们当成同一个概念。

ERC-20:余额、转移与授权分别理解

OpenZeppelin 的 ERC-20 文档区分了 balanceOf、Transfer 和 Approval:它们分别对应账户余额查询、代币转移事件和授权事件。allowance 表示某个被授权方还能代表持有人使用多少代币。

因此,看到授权事件不能直接认定已经发生代币转移。查余额回答的是账户持有多少,查转移事件关注的是数量变化记录,查授权额度关注的是使用权限。核对前应明确具体代币合约,避免混淆查询对象。

金额为什么可能显示不同

代币合约中的整数需要结合 decimals 转换为常见的小数显示。OpenZeppelin 实现默认使用 18 位小数,但允许修改,不能据此认定所有 ERC-20 代币都采用相同精度。

如果两个页面的金额看起来不同,应先核对它们展示的是原始整数还是换算后的数量,以及使用的小数位数是否一致。显示精度影响阅读方式,不改变合约内部的整数运算。

常见问题:历史事件能代替当前状态吗

历史授权事件不能单独证明当前剩余额度。授权设置及后续代为转移都可能影响额度;OpenZeppelin 的实现也不要求每次额度消耗都产生新的 Approval 事件。

理解记录时,应将历史行为与当前状态分开:事件用于说明发生过什么,余额和额度查询用于核对相应状态。比特币同样需要区分曾经产生的输出与仍未花费的输出。

← 返回全部文章

延伸阅读 · 相关栏目

光电技术产业观察研究资料资料与核验