listaddressgroupings为何会归组? 图 1
listaddressgroupings为何会归组? · 图 1

listaddressgroupings返回的不是链上认证过的“同一人地址表”,而是当前钱包根据自己参与的交易形成的地址关联。共同作为输入的地址通常需要同一笔交易获得签名,钱包识别到的找零也会接入分组;这是一种有用但有边界的启发式。

RPC说的是common ownership推断

listaddressgroupings返回钱包认为存在共同所有权的地址分组。

结果只覆盖当前钱包视图。观察另一个节点、导入不同描述符或钱包历史不完整,分组可能不同。外部区块分析平台还会叠加更多规则,因此不能用平台聚类结果反推Bitcoin Core一定返回相同结构。

两类线索把地址连起来

分组依据包括同一交易共同作为输入的地址,以及由钱包识别的找零地址。

第一类是共同输入:一笔交易同时花费多个地址控制的UTXO,通常说明构造者能协调这些输入。第二类是找零:钱包识别到本次花费的找零地址后,会把它与相关输入地址建立关联。

CoinJoin、多方协作交易、PayJoin和外部签名流程会削弱简单解释。共同输入并不总等于同一自然人,找零识别也不是协议写入的身份标签。文章或报告应使用“钱包分组”“启发式关联”,避免写成“确认属于”。

嵌套数组的三层读法

返回为嵌套数组,每个地址项含地址字符串、余额,若存在还包含标签。

层级内容解析注意
最外层多个地址组组之间没有顺序含义
组内多个地址条目同组表示钱包推断关联
地址条目地址、余额、可选标签标签可能缺失

余额是调用时的钱包视图,不是历史累计收款,也不证明全部链上余额。导出时保存节点高度、钱包名和时间,不能把不同日期的余额与同一分组静态拼接。标签则是本地元数据,可能被用户修改。

隐私风险发生在花费构造时

如果为了凑金额把多个原本分离的收款地址UTXO合并为输入,观察者可能据此建立联系。钱包的coin control和UTXO选择策略会影响暴露程度。使用新收款地址并不能自动消除随后共同花费带来的关联。

隐私审计可以先保存分组基线,再检查计划交易会连接哪些组;但不应因为两个地址尚未同组就保证它们无法被关联。金额、时间、对手方和链下资料仍可能提供旁证。

它不能作为身份或执法结论

该结果是钱包内启发式关系,不足以证明多个地址属于同一现实人物或机构。

地址控制权、资产受益人和现实身份是不同问题。钱包知道某个脚本、能签名或曾共同花费,都不足以独立证明法律所有权。面向风控或调查的输出应列出证据来源、启发式规则、反例和置信度。

若分组结果用于客户隔离,必须与业务账户、KYC记录和密钥架构交叉验证。不要自动把同组所有地址的交易都归入同一客户,也不要据此冻结无关资产。

一份可复核的导出格式

每行保存group_index、address、wallet_balance、label、block_height和exported_at;另保存原始JSON。group_index只在这次快照内有效,下一次导出可能重排。比较两次结果时应按地址集合比对,而不是按数组序号。

UTXO基础见UTXO和账户模型,输入选择影响见比特币钱包选择UTXO,标签迁移见BIP329钱包标签迁移。本文解释钱包启发式,不构成地址身份、资产归属或违法行为认定。

地址聚类证据边界

  1. Bitcoin Core listaddressgroupings 31.0:分组依据、返回结构与示例。
  2. Bitcoin Core getaddressinfo 31.0:钱包地址信息与标签旁证。

资料访问时间为2026-08-14。仍需保留的边界:外部导入、CoinJoin和复杂交易结构会削弱启发式解释,文章不做身份归属结论。