协议换版本时你的仓位去哪了:升级接管的三种迁移设计 图 1
协议换版本时你的仓位去哪了:升级接管的三种迁移设计 · 图 1

借贷协议从一个代际跨到下一个代际时,最常被问到的不是新利率模型多聪明,而是一句最朴素的话:我原来那个市场里的仓位,现在在哪。这个问题没有统一答案,取决于协议选择了哪条迁移路线,而公告里通常写得比你以为的更隐晦。

第一条路是存储接管。老协议普遍把逻辑合约与存储分开,升级时只把指向新逻辑的指针换掉,账本里的余额、抵押、债务一个字节都不动。用户的体验是无感升级:仓位还在原地,凭证地址不变,只是背后执行规则换了。这条路的优点是平滑,代价是新老规则必须共用同一份存储结构,新设计被旧结构拖住手脚,而且任何存储迁移错误都会直接波及全部存量仓位。

第二条路是强制了结。当新版本与旧合约完全不兼容——不同的凭证标准、不同的清算框架、甚至不同的资产登记方式——协议会选择在约定区块给存量仓位最后一次处置机会:要么在截止期前自行还款取款,要么由系统按当时代价把抵押物卖出还债。这条路上什么都不做就是选择被清算,罚金与折价一样不少。凡是公告里出现截止区块、自动退出这类字样的,基本属于此路。

第三条路是双版本并行。旧合约降级为只出不进:可以继续还款、继续提款,但不再计息或不再允许新开仓,新旧两套市场同时挂着,让存量仓位按自己的节奏搬家。它把选择权还给用户,代价是同一个协议在维护期同时存在两套参数、两套预言机配置和两份攻击面,对协议的安全运营是个负担,所以并行期通常被治理设一个终点。

判断自己走哪条路,读公告时按四步查:第一,升级提案是部署全新合约还是仅变更代理指向;第二,公告是否给出旧市场的暂停与只读时间点;第三,是否存在要求用户主动迁移凭证或重新存入的操作页;第四,新市场的参数表是否与旧市场不同——哪怕只差一个清算阈值,搬家后你的清算距离就已经变了。

还有一个容易被忽略的双币风险:迁移过程中旧凭证与新凭证可能同时在市场上流通,兑换通道靠汇率维持,若有人误把旧凭证当新凭证挂单出售,就会按旧币价白亏一截。凡是钱包里出现两个同名币种的阶段,先核对合约地址再动手。

搬家之外还有一本容易漏算的账:工具与授权。旧市场的凭证、许可和授权都绑在旧合约地址上,升级后你的钱包里那些针对旧地址的批准不会自动转移,界面提示的无感升级往往只覆盖核心存取款,不覆盖第三方仪表盘、自动复投脚本和告警订阅。逐条检查它们指向的合约地址,把失效的重新配置一遍,比事后排查某个自动化为什么罢工省心得多。迁移窗口里还有一条通行纪律:先在一笔小额上走完全流程,确认新市场的提款、还款、参数读取都正常,再搬主体仓位;这条纪律在每条迁移路线上都成立,代价小到可以忽略,覆盖的却是最昂贵的操作失误。

最后把公告里最常含糊的措辞翻译一遍:只出不进指存款通道关闭、还款取款照常;软退役指合约仍可调用但文档与支持撤回,出了问题不再有应急响应;重定向指界面跳到新市场但旧仓位仍需自行搬运。三个词对应三种紧急程度,凡读到老版本将退役的句子,先对号入座找到属于哪一类,再决定是本周动手还是排进下月计划——迁移事故里最大的一类,就是把重定向当成了自动迁移。

风险提示:本文仅说明升级机制的一般设计,不构成投资建议;各协议迁移安排以官方提案与公告为准,截止期限错过可能产生真实损失,请自行核验你所用协议的原始提案内容。

协议换版本时你的仓位去哪了:升级接管的三种迁移设计 图 2
协议换版本时你的仓位去哪了:升级接管的三种迁移设计 · 图 2