区块链钱包如何用地址查询资产?

钱包里显示的余额,不是写在地址这串字符上的。地址只是账本里的查询键:比特币用它去找还没花掉的输出,以太坊用它去读账户状态和代币合约,Filecoin 用它去读对应 Actor 的余额。钱包软件做的事,是选定网络、拿出地址、向节点或索引服务提问,再把答案加总后显示出来。私钥只在签名时才需要,查余额本身不必把私钥交给服务器。

地址是查询键,不是存钱的容器

同一套助记词可以推出很多地址。比特币钱包按账户路径连续派生 bc1q 或 bc1p,收款时常常一笔换一个新地址,所以“钱包余额”其实是这一组地址的未花费之和,不是某一个地址的私有存款。以太坊外部账户通常一个路径对应一个 0x 地址,合约代币不会自动出现在主币余额里。Filecoin 的 f1、f3 来自私钥,f0 是短 ID,f410 又和某个 0x 映射到同一份 FIL。查错键,就会得到另一套状态。

只读查询可以只拿地址或扩展公钥。观察钱包、硬件钱包的配套 App,都是把地址交给节点,自己留下私钥。谁拿到地址,谁就能查看该地址的公开流水;查得到,不等于动得了。

钱包一次查询实际在问什么

打开 App 时,软件先确定网络:比特币主网、以太坊主网,还是 Filecoin 主网。网络不同,同一串看起来相似的字符对应的账本也不同。然后它连接全节点、轻节点或服务商的远程过程调用接口,发出只读请求。返回的是最小单位的整数,钱包再按小数位换算成 BTC、ETH、FIL,并另向行情接口取法币价格。价格不是链上字段,接口延迟不会改变链上余额。

待确认交易可能先显示为处理中。比特币要等输出进入区块才算花掉或到账;以太坊要等收据成功,失败交易仍会扣手续费,但余额变动以状态为准。索引服务慢几秒,不代表资产丢失。

比特币:把未花费输出加总

比特币没有“账户余额”这一栏。节点保存的是未花费交易输出。钱包把每个收款地址交给服务端,取回这些地址名下尚未被引用的输出,再把金额相加。自己转给自己的找零也算一笔输出,所以总余额不变,只是拆成了新的碎片。

桌面全节点可以用本地数据扫描;手机钱包多半连接 Electrum 类服务器或服务商索引。扩展公钥足以让服务端知道该扫描哪些地址,无需上传私钥。查单个地址时,区块浏览器做的是同一件事:列出该地址相关输出,用已花费和未花费区分当前能支配的数量。隔离见证地址和 Taproot 地址的查询方法相同,差别只在锁定脚本,不在查询入口。

以太坊:主币读账户,代币读合约

以太坊是账户模型。钱包对节点调用余额接口,传入 0x 地址,得到这个账户的 ETH,单位是 wei,显示时除以 10 的 18 次方。这一步查不到 USDT、USDC 或其他合约资产。

代币要再做一次合约读取:对代币合约调用 balanceOf,参数仍是你的地址。钱包要么按常见合约列表批量询问,要么等你手动填入合约地址。非同质代币还要问持有数量和编号。只向转账记录索引查询,会漏掉铸造、空投和合约内部记账;这些不一定表现为一笔普通转账,但状态里已经有余额。

网络必须选对。主网、Arbitrum、Base 上的同一个 0x,余额互不相通。钱包若连的是测试网或错误的远程节点,会显示 0,资产仍在另一条链的同名地址下。

Filecoin:按 Actor 读取可用余额

Filecoin 钱包把 f1、f3 或 f410 交给 Lotus 兼容接口或浏览器索引,读取该 Actor 的余额。f0 短地址和长地址若指向同一角色,查到的应是同一状态。f410 和对应 0x 在 Filecoin 虚拟机里控制同一份 FIL,用哪一种写法查询都可以,但不能拿到以太坊浏览器上查。

存储提供者的地址更要分清可用余额和锁仓。扇区质押、奖励尚未解锁的部分,会出现在矿工状态里,普通钱包的“可用”数字往往小于地址名下的全部 FIL。只看可用余额,会误以为奖励没有到账。

三种查法不要混用

区块浏览器适合核对某一地址的公开结果,输入地址、选对链即可,适合收款后验证。自托管钱包适合看自己一组地址的合计,硬件钱包只是在本地签名,查询仍由配套软件完成。交易所 App 里的数字多半是平台数据库,没有对应的链上输出,提现完成前用地址在浏览器里查,本来就应该是 0 或只有已上链的部分。

观察地址可以交给会计或家人核对,不必交出助记词。对方只能看,不能转。

显示为 0 时先核对键和网络

先看地址是否完整,前缀是否属于这条链:bc1 不要拿去查以太坊,f1 不要拿去查比特币。再看网络和资产种类,主网与测试网、原生币与代币合约要分开。然后看确认数和索引延迟,刚广播的交易可能还在内存池。代币未添加到钱包列表,不代表合约里没有余额,换浏览器按合约地址读 balanceOf 可以交叉验证。

Filecoin 还要确认要的是 f1 还是 f410,以及数字是可用余额还是含锁仓。交易所内部划转不会出现在地址流水里。地址能查出的,只是已经写进对应账本、并且被当前节点索引到的状态;查余额是在读公开账本,不是在打开一个存在手机里的存钱罐。

本文链接地址:https://www.wwsww.cn/qkl/41644.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。