页面上写「借款利率 4.5%、清算阈值 1.05、协议费 10」,三个数字看起来同一套记法,实际上它们很可能来自三套完全不同的内部单位:一个是把年化折算成每秒的复合值,一个是放大过若干位的整数,一个可能根本是基点。合约里没有百分号,只有整数和约定的刻度。页面负责翻译,翻译偶尔出错、更多时候被人读错。把这三套单位各自的脾气弄清楚,是很多风险计算不出错的前提。
第一类错位:基点与百分号。协议参数大量以基点(万分之一)记录:手续费十五「个点」在很多合约里是万分之十五,等于百分之零点一五,而不是百分之十五。这类事故的现场版本通常是,有人把费用参数当成百分数估了十倍成本,或反过来把清算奖励的百位基点读成个位百分比,把处置收益算大一个数量级。规则不复杂:凡看到孤立数字没有百分号,先找它的刻度定义;协议文档里的字段说明和合约变量注释是唯一可靠的刻度来源,猜是猜不出来的。
第二类错位:换算率的精度约定。借贷协议把利息藏进债务凭证的换算率里,金库把收益藏进份额净值里。这些换算率在合约里是整数,背后各有一套放大约定:有的按代币自身的精度放大,有的固定放大若干位。两个协议同为「换算率上涨型」,一个的最小步进是一亿分之一,另一个是十亿分之一,同样的利差在后者那里可能几个区块都不动一格。这就制造出一种真实的读数错位:利差明明在,合约读数看着没变。判断「利息有没有在滚」,要看换算率相对上次观测动了没有、它的最小可动步长对应多大变化,而不是看页面百分比刷没刷新。顺带一提,换算率长期不动还有个更危险的镜像场景——页面缓存了旧值,那和步进太细是两种病因,核对时要分清是链上没动还是你看的不是链上。
第三类错位:阈值的方向语义。健康因子一类的参数,有的协议设计成「低于某个值危险」,有的设计成「高于某个值危险」——比值构造里分子分母选谁当分子,语义就翻转。页面把两者都画成「健康度」这一根条的时候,不熟悉构造的人很容易把方向记反,以为更大的数总归更安全。清算触发线的写法同理:它到底指「抵押率越线」还是「覆盖倍数越线」,两个行业术语指向同一事件但数字方向相反。任何你打算拿来做决策的阈值,都值得先回答一个问题:这个数往哪边移动代表恶化。答不出,说明你只记住了数字没记住构造。
最后给一个练习:随便打开一个你常用的借贷市场,找三个数——借款利率、清算阈值、储备因子,然后依次回答:它们各以什么刻度记录(基点、放大整数还是直接小数)?往哪个方向移动算对你不利?页面显示值和合约原始值换算后能不能对上?三个问题都答得上来,你对这个协议参数系统的理解就超过了把它当仪表盘的人。答不上来的那个,就是下次出事前最可能坑你的地方。参数读错的代价很少立现,它通常潜伏到你真需要算一笔账的那天。
复核姿势也因此很固定:关键决策前,去协议合约的公开读数页或开发者文档,拿到参数的原始值与刻度定义,自己做一次换算,和页面比对。两者对不上时,先怀疑自己读错刻度,再怀疑前端算错,最后才考虑是页面故意做了展示加工(比如把瞬时利率做了平均化显示)。多链协议再加一层:同名字段在不同部署上的刻度可能不同,A 链的字段语义不自动适用于 B 链。参数是协议的语言,刻度是它的语法;语法不通的读数,越精确越危险。本文只做机制说明,不构成投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。