区块链 · 数字资产知识 · 行业资讯
文章库关于本站

信息核验

区块链 货币查询入门需要了解什么:交易、余额与代币单位

摘要

区块链货币查询需要先区分查询对象和记账方式。比特币交易通过输入、输出与未花费交易输出关联资金记录;ERC-20代币则由合约记录账户余额,显示数量还取决于小数位设置。理解这些差异,才能正确辨认交易标识、余额和数量单位。

区块链液冷的科技主题配图

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

查询入门首先要分清:要了解一笔交易的构成,还是一个地址的代币余额,或余额数字对应的显示数量。这些问题涉及不同字段,不能只凭一个数字判断结果。

下文依据Bitcoin Developer Guides的交易说明与OpenZeppelin的ERC-20说明,分别解释比特币交易模型和ERC-20余额模型。两者适用范围不同,不能直接推广到所有区块链资产。

区块链显卡矿机的科技主题配图

比特币:理解余额背后的输出

比特币普通交易的输入引用此前交易的输出,新输出在被后续交易花费前称为未花费交易输出,即UTXO。钱包余额对应其可控制的相关UTXO金额总和。定位某个输出需要交易标识txid和输出序号,序号从零开始。矿工创建的coinbase交易属于特殊情况。

区块链硬盘挖矿的科技主题配图

这意味着,一笔交易和其中某个输出是不同层级的查询对象。只知道txid,可以识别交易;如果要追踪具体输出是否被花费,还需要辨认其序号。历史上出现过的输出,也不能一律计入当前余额。

ERC-20:区分原始余额与显示数量

OpenZeppelin的ERC-20说明介绍了同质化代币:同一种代币的单位具有可互换性。合约通过balanceOf查询地址余额,内部以整数记账;显示数量需要用原始整数除以10的decimals次方。其ERC20实现默认小数位为18,但允许修改。

因此,解读余额时需要把合约、查询地址和小数位联系起来。同一个地址的余额查询必须针对相应代币合约;单独看到一长串整数,还不足以确定通常界面上应显示多少代币。

常见问题:数字为什么看起来不同

原始余额很大,是否意味着代币数量也很大?不一定。原始整数可能包含用于表示小数的单位缩放,需要完成换算后再理解数量。默认小数位也不能代替对具体合约设置的核对。

比特币查询也能套用balanceOf吗?上述比特币说明采用UTXO模型,ERC-20说明采用合约余额模型。两者都能表达持有数量,但查询所依据的数据结构不同。

查询结果能够说明什么

交易标识用于识别交易,输出序号用于定位输出,合约余额与小数位共同解释代币数量。理解字段时,应先确认它描述的对象,再解释数值含义。

这些技术信息说明的是链上记录及其计量方式。余额数量本身不等于价格或价值,也不能由采用ERC-20接口这一点,推断某个具体项目的其他属性。

← 返回全部文章

延伸阅读 · 相关栏目

安全防护钱包与账户风险识别信息核验