公共区块链让大量活动变得可见:转账、兑换、代币余额和程序调用。这种可见性对交易研究很有吸引力。一笔转往被标记为交易所地址的大额转账,看起来像卖出信号。一组“聪明钱”钱包买入同一代币,看起来像领先线索。持有者名单看起来像现成的风险评分。上述每一种解读,都是在记录之上叠加了一层解释。本文区分链上记录所显示的内容与研究者所推断的内容,并解释为什么链上特征格外容易泄漏进回测。
链上记录实际显示了什么
一笔已记录的交易显示:所需的签名授权了一组指令,网络处理了这些指令并得到特定结果,余额和手续费随之变化。在 Solana 上,SOL 用于支付网络手续费,代币余额存放在与特定 mint 绑定的代币账户中,一笔交易可以在不同的承诺级别上被报告:processed、confirmed 或 finalized。解读区块浏览器记录的入门指南更详细地介绍了这些字段。
记录并不显示谁控制了签名密钥、转账为何发生、背后是一个人还是托管方在转移客户资金,也不显示是否有匹配的交易发生在链下。请把事实与解读分列两栏:
| 链上事实(虚构) | 它能支持什么 | 它不能证明什么 |
|---|---|---|
| 50,000 枚代币从地址 A 转到地址 B | 在记录时点两个地址之间发生了余额变化 | 一笔卖出、一次所有者变更或某个动机 |
| 一个地址持有 12% 的供应量 | 记录中该时点的该余额 | 由一个人控制这 12% |
| 地址 B 带有“交易所”标签 | 某服务商在某日期的分类 | 该标签正确,或在转账发生时已存在 |
| 二十个钱包在一小时内买入 | 相近时间记录下的相似行为 | 协同、能力,或跟随者本可以在那些价格买入 |
标签是附带日期的假设
钱包标签来自区块浏览器、分析服务商、社区名单或研究者自己的启发式规则。地址标签与不确定身份指南把它们视为需要来源和置信度的线索,而不是名字。一个地址可能被共用、属于托管方,或同时用于多种用途。
标签也会变化。服务商可能在某事件让某个钱包变得引人注目之后才添加标签,合并或拆分聚类,或删除错误的标签。对研究而言,这意味着标签是关于某服务商在打标签时所相信内容的证据,而您需要那个时间。一个有用的习惯是只使用公开地址;在不连接钱包的情况下分析钱包从不需要助记词或签名。
持有者集中度需要先分类
持有者名单混合了性质截然不同的地址:流动性池、程序拥有的账户、交易所钱包、归属合约或锁仓合约、项目金库,有时还包括由同一实体控制的多个地址。关于持有者地址代表什么的指南表达了同样的观点:这份名单是一个起点问题,而不是结论。
设想一个虚构代币,其十个最大地址持有 62% 的供应量。经过分类后,研究者发现一个池账户占 18%,一个锁仓合约占 20%,带交易所标签的地址占 9%,无法解释的地址占 15%。同样是 62% 这个表面数字,可能描述截然不同的情况,而剩下无法解释的 15% 正是这份名单无法回答的部分。在您使用的任何集中度数字旁,记录分类方法及其日期。
用今天的标签套昨天的数据,就是前视偏差
scikit-learn 文档将数据泄漏定义为在构建模型时使用了预测时点无法获得的信息,并警告这会产生过于乐观的性能估计。其推荐做法是先拆分数据,并仅在训练部分上拟合每一个预处理步骤。链上研究有多条路径会犯同样的错误:
- 按结果筛选。 因为某些钱包后来获利而构建的“聪明钱包”名单,会让跟随钱包的规则在用于构建该名单的时期内看起来表现良好。
- 标签修订。 把本月的交易所标签套到去年的转账上,等于假设这些标签当时就已为人所知。
- 到达延迟。 索引器、区块浏览器或 API 可能在其区块时间之后才让某个事件变得可用。在区块时间做出反应的规则,可能正在使用它当时还无法看到的数据。
- 最终性。 在较低承诺级别看到的交易尚未最终确定;把每一次早期观察都当作已结算的回测,跳过了这种不确定性。
- 幸存者偏差。 从今天仍然活跃的对象中抽取的钱包或代币名单,遗漏了那些已经沉寂的。
一个虚构示例:一项研究用本月编制的名单把 40 个钱包标记为“早期买家”。其中大多数之所以获得该标签,是因为它们此前的交易表现良好。在同样的几个月里测试“当这些钱包买入时买入”,主要衡量的是这份名单的筛选方式。修正方法呼应了 scikit-learn 的建议:只用测试窗口之前的数据构建标签集,然后在之后的数据上评估。检查决策时点可知的信息涵盖了这一问题的更广泛版本。
为所有内容记录两个时间戳
对每一个链上特征,至少保留两个时间:网络记录的区块时间,以及您的数据源让该事件对您可用的观察时间。再加上承诺级别和标签快照日期。没有这些字段,特征就无法被诚实地放到决策时间线上。同样的纪律也出现在价格历史的数据来源与时间戳检查中。
当信号是别人的交易时,时间更为重要。一笔可见的买入在成交之后才到达您这里。跟随者交易得更晚,价格和成本不同,而且看不到该钱包的链下对冲、其他账户或退出计划。关于为什么镜像一个可见钱包会失败的学习指南,以及 SuperQuant 对跟单交易历史记录的评述,都梳理了这一差距。
使用钱包信号前的检查清单
在链上观察成为研究输入之前,请写下:
- 地址身份。 它是用户钱包、程序拥有的账户、池、锁仓合约还是托管地址?您如何得知?
- 标签来源与日期。 谁基于什么证据打了这个标签,它在您所研究的事件之前是否已经可用?
- 区块时间与观察时间。 事件何时发生,您的数据源最早何时能把它展示给您?
- 承诺级别。 您使用时,这笔交易是 processed、confirmed 还是 finalized?
- 事实与现实。 记录证明了什么,又把什么留给了链下托管、协议或意图?参见链上验证止于何处。
- 其他解释。 至少列出两种同样能解释这笔转账的其他说法。
- 执行。 跟随者实际可能在什么更晚的时间、以什么价格和成本行动?
SuperQuant 内置的示例使用合成的每小时数据,工作区不下真实订单,也不验证真实执行。在它读取某个公开地址的历史时,请把该历史视为未经核实的背景信息,而不是业绩记录。
继续学习
链上主题中心把区块浏览器、标签和持有者分析指南汇集在一处。当钱包动向与新闻同时出现时,SuperQuant 关于构建事件证据时间线的指南展示了如何让来源和时间戳保持有序。这是教育性研究背景,不构成投资建议。