聊清算损失时,多数讨论停在两句话:抵押品被折价处理,折价是给清算人的奖励。但在 Aave 的清算代码里,从借款人抵押品里切下来的不止这一份。合约在计算可清算抵押额时同时算出 liquidationProtocolFeeAmount,非零时按记账比例划给抵押资产对应的金库地址。这份切走的钱既不归清算人,也不是惩罚性罚款,它的作用要放到整个损失分担顺序里才看得清。
先把执行顺序排一遍。清算人调用清算函数并代偿债务后,合约依次做这几件事:计算实际代偿的债务额;按抵押资产的清算奖励算出应从抵押里划走的数量;把债务凭证销毁;更新债务市场的利率;然后才处理抵押一侧——要么烧毁借款人的 aToken 并把底层资产转给清算人,要么把 aToken 直接过户;只有当协议费非零时,再从借款人名下的余额里按同样比例划一份给金库地址。也就是说,协议费不是从清算人的奖励里再抽一道,而是同一次划走抵押时并行计入的第三笔归属。
它的来源用一句话能说清:清算奖励补偿清算人承担的市场风险与燃料成本,协议费补偿的是协议在这笔清算里提供的清算服务与它承担的最终兜底位置。合约把这两块一起从抵押价值里算出来,再按数量比例分摊,所以在账本上它们同源不同属。这也解释了一个常见现象:同一次清算里清算人到手的资产与协议国库入账的资产会同时出现在两笔转账事件里,看客只盯清算人那一行就会低估借款人总共产出的价值。
为什么有的清算协议费是零?因为这一项是按资产逐个配置的市场参数,很多市场根本没设。零协议费不代表协议放弃了补偿,而是这笔清算的所有额外价值都进了清算人奖励。反过来,如果某资产协议费被设成较高的比例,清算同样的债务会给国库划走更多抵押。对借款人,这意味着清算损失不能用一个统一折价率概括,同一协议里不同抵押资产被清算时的实际扣减幅度可以不同;对想监控清算的开发者,参数读取要按抵押资产取,不能取全局值。
还有一个精度细节值得说,因为它是账面差异的真实来源。合约在划协议费时先做了防溢出保护:按流动性指数换算后,若要划走的份额超过借款人剩余余额,就把金额压到实际可用值,避免试图转出比余额更多的 aToken。这意味着极小仓位或极端清算场景下,协议费可能被舍入压低,借款人总扣减与理论值有微小偏差。同理,因为一切以份额与指数记账,清算后的账面枚数会和直觉算式有最后一两位的差异,做损失核对时必须用份额口径复算。
把这些放进借款人的视角,清算损失的口径应该分三层读。第一层是处置折价,也就是抵押品按低于市价的价值被划走的那部分,它构成大部分损失;第二层是给清算人的奖励,它是折价里的报酬成分,决定了有人愿意替你平仓;第三层是协议费这一小段,它进了国库,未来可能被用来补事故损失或做其他治理决定的支出。把这三层混成一句我会被折价百分之几,会漏掉真正可比较的部分:同一债务额下不同抵押资产的损失,取决于该资产的清算奖励与协议费两项参数。
值得提醒的是不要把这层机制误读成协议在清算中获利致富。协议费来自配置比例,规模受清算量决定;协议更常见的清算相关支出是坏账出现后由储备和金库承接的部分。换句话说,清算顺畅时协议拿到的是一份小额手续费,清算失灵时协议承担的是远超这份手续费的兜底义务。这也是为什么成熟协议的参数设计倾向于让清算奖励足够吸引人、清算流程尽量不留死角。
一个务实的自查顺序:借了新抵押物之后,去参数里查这一资产的清算阈值、清算奖励与协议费三项,用一笔假设的价格下跌手算一次被清算时的扣减;如果你计划依赖部分清算策略,还要查清算比例,把每次会被划走多少一并算进去;最后确认你手里的告警监控读的是同一份参数源,而不是某个前端的历史截图。这些参数都是链上可读的,核对成本远低于一次清算的实际损失。
本文只讨论合约机制与费用归属,示例数字不构成收益承诺,本文内容不构成投资建议;借贷与清算存在合约及市场风险,参与前请核对官方合约与文档并自担风险。

发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。