质押中的 SUI 是钱包里的一个对象:StakedSui 的周期与两次修订 图 1
质押中的 SUI 是钱包里的一个对象:StakedSui 的周期与两次修订 · 图 1

在 Sui 上把 SUI 委托给验证者之后,钱包里不会多出一行“质押中”的小字,而是多出一个对象:StakedSui。这份持有凭证有自己的生命周期,围绕它的两次标准修订——SIP-6 与 SIP-33——都改动了它的行为边界。本文沿提案原文讲清这个对象是什么、状态怎么切换,以及两次 Final 状态的修订各修掉了什么问题。

收据对象里只有四个字段

提案引用的框架定义里,StakedSui 包含:对象身份 id、所投质押池 pool_id、生效纪元 stake_activation_epoch、以及本金余额 principal。委托那笔交易发出后,这个对象回到你账户;纪元推进时,交易费与质押补贴进池,本金对应的份额随池内兑换率涨,赎回时销毁对象、按当时的 PoolTokenExchangeRate 连本带息换回 SUI。判断仓位状态只看一个比较:当前纪元是否已到生效纪元——到了是活跃(active),没到是未活跃(inactive)。Sui 为什么没有区块:检查点在执行之后创建,纪元把四件事钉死 讲的纪元机制就是这份状态机的时钟。

质押中的 SUI 是钱包里的一个对象:StakedSui 的周期与两次修订 图 2
质押中的 SUI 是钱包里的一个对象:StakedSui 的周期与两次修订 · 图 2

SIP-6:给收据加上 store 能力

2023 年 6 月的 SIP-6 解决的是“收据只能躺在账户里”的问题。原始定义只有 key 能力(可作为顶层对象持有),没有 store(不能放进其他对象长期存放)。Sui 包的升级规则禁止给已有结构新增能力,因此这份提案专门要求放宽 sui_system(地址 0x3)包的升级校验,给 StakedSui 补上 store。动机部分说得很直白:没有 store,质押衍生产品只能把用户的收据集中托管进项目方一个地址,信任就回到了人身上;有了 store,衍生协议可以把凭证放进链上共享对象,规则由合约而不是保管钥匙的兑现。同一份提案还把取回 StakedSui 的非入口函数变体、奖励计算与池兑换率查询开了链上接口,Sui PTB 是什么?一串命令怎么在一条交易里原子完成 讲的批量交易才可能把质押动作编排进更大的流程。

SIP-33:当季创建也要能当季赎回

2024 年 5 月的 SIP-33 处理一条更具体的限制:框架代码里有一处断言,规定 StakedSui 不能在同一纪元内创建又赎回。对做流动性质押凭证(LST)的协议,这条限制的代价在提案的动机部分算得很细:用户在凭证协议里 mint 时,协议新造的是未活跃收据;同一纪元内用户要 redeem,协议要么赎回自己正在生息的活跃仓位、白亏一个纪元收益,要么被断言挡住、无法秒赎。提案点名的既有方案 vSUI 与 afSUI 当时只能靠预留现货池做有限度的即时赎回。删掉断言、给提款函数补一段当季创建的处理逻辑之后,未活跃仓位可以当季退回现货,即时赎回不再受池内流动性摆布,凭证脱锚的一条主要通道被从协议层掐掉。

对钱包使用者意味着什么

三件事值得记住。第一,质押后在浏览器或钱包里看到的资产不是一个 SUI 余额数字,而是一个对象,它的可动用性与 Coin 对象完全不同;查仓位的正确方式是找这个对象的生效纪元字段与池兑换率,而不是看余额页。第二,未活跃不等于丢失,只是当前纪元不可立即赎回,等一个纪元边界通常自然转活跃。第三,两次修订都挂在提案状态 Final 上,具体生效以链上表现与官方发布为准,本文不假设某个日期已全网激活。

怎么核验自己的质押仓位

链上核验的路径可以走得很具体:在浏览器里打开钱包地址,找到类型为 StakedSui 的对象,读它的生效纪元与本金字段,再对照协议里的当前纪元判断活跃与否;想看收益,就查对应质押池的兑换率,本金随兑换率的变动就是仓位价值的变化方向,这套字段在 SIP-6 之后都有链上查询接口可用。委托给不同验证者会生成多个互不相同的收据对象,各自独立计息、独立赎回,链上不存在“总质押一行字”——界面把那行字显示给你之前,钱包已经替你做完一次求和,这正是值得自己动手复核的位置。跨纪元边界前后各查一次,能直观看到状态翻动的时刻。

边界与风险提示

委托质押的收益由费用与补贴决定,随时段与池兑换率浮动;凭证类产品的秒赎承诺建立在协议流动性安排上,机制修订改变的是可能性,不保证任何具体收益。本文为协议机制说明,不构成投资建议。