钱包算一个数,官网算另一个数:健康度读数的口径分歧 图 1
钱包算一个数,官网算另一个数:健康度读数的口径分歧 · 图 1

借贷仓位最要盯的那个数字——健康度,或者说可清算性——在多数用户面前同时存在三个版本:钱包 App 里一个,第三方收益面板上一个,协议自己的官网又一个。平时三个数各说各话没人管,行情剧烈那一晚,有人按钱包的数补了仓,清算却照样落下来;也有人数着官网的数心惊肉跳,最后什么也没发生。分歧不在数学,健康度的公式全世界只有一种:抵押品按折算价计的总值,除以债务按应计额计的总值。分歧全部来自公式里两个变量的取数方式。

第一个变量是抵押品的「价」,这是分歧最大的来源。协议判定清算用的是它自己配置的预言机读数,钱包和面板常常不用它:有的直接拉交易所现货价,好看但可能比协议价高出一截;有的用时间加权价,慢半拍但更抗操纵,急跌时会明显高估你的安全垫;还有的面板给同一资产配了多个源,取哪个全看写代码的人当时的心情。更细的一层是折算参数:清算用的不是你资产的市价,是市价乘以一个清算阈值之类的折扣系数,折扣没乘上去的读数,天生就比你实际可清算时的数字乐观。

第二个变量是债务的「额」,分歧来自时间与范围。链上债务是按块连续计息的,很多面板只在刷新时点抓一次快照,缓存几分钟到几小时,急涨的利用率行情下你看到的欠款是旧的。范围问题更隐蔽:一个在协议里有三个市场的仓位,健康度可以按全部市场合并计算,也可以按单个市场分别计算,两个口径在资产价格相关性高的时候能差出一大截;你钱包里那个总览数,可能既不是触发清算的那个数,也不是最危险市场的那个数。多链部署的仓位同理——同名协议在不同链上的参数可以不同,合并读数默认假设了参数一致。

把五个来源列全:价格源差异、折扣系数漏乘、计息时点滞后、仓位范围口径、参数版本混淆,外加一个常见的第六种——界面缓存叠加前端展示取整,三位小数截成两位,方向恰好朝着好看看。判断哪个数可信只有一条铁律:唯一作数的读数,是协议清算检查函数在链上执行时算出来的那个值。一切界面都是它的近似。复核的方法不复杂:协议合约几乎都把健康度或者它的原始变量做成了公开的只读函数,用区块浏览器对自家仓位地址调一次,拿链上返回值与界面对表,差异立刻归因到上面某一类。

实操上有四个便宜的自保动作。第一,把报警线设在你算得出来的最坏口径上:同一仓位取各读数里最小的那个做基准,再留一条你自己定的安全垫,而不是取平均。第二,重大行情期间只信链上直读:界面对表一次,之后每隔一段时间重新调一次函数,别看缓存。第三,参数变更日重新走一遍全部口径:治理调整阈值、汇率源或市场参数的提案执行之后,你的旧算法作废,新数要重算。第四,理解阈值与预警的关系:离清算线越近,价格源那一点口径差造成的假阴性代价越大,低健康度仓位没有资格依赖任何单一面板。

最后校准一下心态:读数分歧不是哪个界面在骗人,而是每个界面在回答不同的问题——钱包回答「你的仓位大概什么状况」,面板回答「跨协议合起来什么状况」,协议回答「此刻链上执行会怎样」。出问题从来不是因为存在三个数,而是因为你用着一个回答别人问题的数,做着自己的决定。清算不会跟你的缓存商量,它只跟链上那一刻的取值商量。

本文只做机制整理,文中的读数口径与复核步骤均为原理示例,不指向任何协议当前的实时参数;借贷仓位存在预警口径偏差、参数变更滞后与多市场合并误算等风险,不构成投资建议。