所有文章
指南

何时该保留冻结权限:Solana 代币发行方的判断标准

保留冻结权限的三个理由、该撤销的三个理由、四种场景的决策表,以及撤销前为什么必须先解冻。写给 Solana 代币发行方。

8 分钟阅读 J Tools Editorial
拉丝钢面板左侧,一根从内部透出橙光的拉杆,透明的铰链护盖向上掀开;右侧两个没有点亮的滑动开关。象征仍处于待命状态的冻结权限

在 Solana 上发币,常听到一句话:上线第一天就把冻结权限撤销掉。对纯模因币来说,这话没错。换成别的代币,保留冻结权限往往有正当理由。

对经典 SPL 代币而言,冻结权限就是发行方手里的紧急刹车,扔掉就再也拿不回来。真正要问的是:什么时候、为了谁保留冻结权限。

冻结权限到底能做什么

三个玻璃圆筒代表代币账户的三种状态:金色粒子旋转的 ACTIVE、裹满淡蓝冰晶的 FROZEN、玻璃裂开碎片落下的 THAW,并排立在深色石台上

冻结权限是代币铸币账户里的一个字段。只要里面填着一个地址,这个地址就能冻结和解冻该代币的代币账户。

被冻结的代币账户,所有者、所属代币和余额都不变,但在解冻之前不能接收、转出或销毁代币(Solana 官方的冻结账户说明)。余额还是持有者的,只是动不了。

有人把它比作冻结银行账户的开关,但冻住的不是整个钱包。一次冻结只作用于一个代币账户,也就是持有者存放这一种代币的账户。他的 SOL 和其他代币都不受影响。

拦住一个攻击者,冻结一次就够。想只靠冻结权限停掉所有转账,就得把每个持有者的账户都冻结,连池子存放代币的账户也算在内,等于把市场本身冻住。Token-2022 的代币可以另设暂停权限(pausable 扩展),一次暂停整个代币的转账、铸造和销毁。那是另一个角色,不是冻结权限。

撤销,就是把冻结权限设为空。由当前的权限持有者签名,效果永久,没有任何指令能再把它设回来。铸币权限(增发)、冻结权限和元数据更新权限(名称、符号、图片)是三个独立的角色,各自单独撤销。每一项怎么撤销,见放弃 Solana 代币权限的完整步骤。

保留冻结权限的三个理由

应对漏洞攻击

跨链桥、价格预言机或金库合约出了问题,攻击者手里一下子多了大量你的代币。保留冻结权限的团队可以冻结攻击者的代币账户,趁代币还在账户里把它们拦住,争取时间和交易所、受影响的团队协调。但冻结只能拦住还没转出去的那部分。

USDC、USDT 和 PYUSD 在 Solana 上的铸币账户都设有冻结权限。Circle 和 Tether 公开的条款也写明,在法律要求等情况下,他们有权冻结代币。

合规

代表现实世界资产的代币、只能卖给特定国家投资者的证券型代币、以身份验证为前提的分发,都可能需要发行方按制裁名单或法院命令采取行动。在经典 SPL 代币上,冻结权限是做这件事的主要链上手段。Token-2022 还有别的工具:让新账户一开始就处于冻结状态、等冻结权限解冻才能用(默认账户状态),以及永久委托和转账钩子(Token-2022 和 SPL 代币的区别)。

如果你的发行依赖执行这类命令,撤销就等于拆掉这根杠杆,这正是保留冻结权限的理由。这里讲的是机制,不构成法律建议。

锁仓

发行方可以把存放团队或投资人份额的账户一直冻结到解锁日,这也是保留冻结权限的一种用法。但这只是承诺,不是时间锁,因为发行方随时可以解冻。买家能自己核实的,是按时间表释放代币的锁仓合约。

该撤销的三个理由

信任信号。买家和代币检测工具都会看冻结权限。在模因币上,还开着的冻结权限看起来就是陷阱,因为被冻结的账户卖不出去(什么是蜜罐代币)。没有路线图、没有审计、也没有合规需要的代币,保留冻结权限得不到任何好处。

上交易所。每家交易所的政策都不一样。别先入为主,直接去问你想上的那一家。

少一个攻击目标。你手里的每一项权限,都可能泄露,或被反过来用在你自己的持有者身上。需求一结束就撤销,这个目标也随之消失。

决策表:四种场景

保留冻结权限还是撤销,大体取决于项目类型。对不上任何一行,就以最接近的一行为准,再把不同之处写下来。

项目类型默认做法何时行动
纯模因币,没有路线图撤销创建时(代币创建器里可以勾选)或上线后马上
团队仍在开发的功能型代币先保留,再撤销审计完成、金库上了多签、上线后一段时间平稳无事
现实世界资产或限定地区的代币保留把理由公开在持有者看得到的地方
稳定币或机构资产保留写进发行方的政策

把撤销和事件挂钩,而不是和日期挂钩。挑对你的项目真正有意义的节点,比如审计完成、多签上线、第一次重要上所之后,每项权限在各自的节点上撤销。

冻结做不到的事

保留冻结权限之前,也要清楚它的边界。它拦不住增发:铸造新代币是铸币权限的事,是另一个角色。一个代币完全可能冻结权限已撤销、铸币权限还在,或者反过来(Solana 代币供应量策略)。

它也不改变供应量或任何人的余额。被冻结的代币仍然计入供应量,也仍然留在持有者的账户里。

Pump.fun 的代币根本冻结不了。无论还在联合曲线上,还是已经迁移到 PumpSwap,它们创建时就没有冻结权限,没有东西可撤销,也没人能冻结它们的账户。

最后,撤销不会解冻任何东西。撤销那一刻处于冻结状态的账户,会永久保持冻结(SPL Token 程序的官方文档)。所以要先解冻,再撤销。

用 j.tools 冻结、解冻和撤销

昏暗的厂房里,一只手拉下墙上发着金光的拉杆,旁边厚重铆接铁门的缝隙中,琥珀色晶体碎片和火花正往外喷涌:冻结只拦得住还没出去的东西

保留冻结权限的团队,会用到下面这几个页面。冻结账户会载入一个代币的持有者,你可以用本次会话的白名单保护指定钱包,勾选行后批量冻结;每行显示状态,失败的行可以重试。页面会显示该代币的冻结权限,只有连接的钱包正是这个权限时才能执行。

解冻账户只载入被冻结的行,解冻你选中的那些。

在撤销冻结权限页面粘贴代币地址,它会读取并显示当前的冻结权限;如果已经撤销,或权限在别的钱包手里,签名前就会告诉你。页面会提醒这个操作不可逆,然后用一笔交易完成撤销。平台费用在签名前显示。

设为不可变会检查铸币、冻结和元数据权限,用一笔交易撤销还在的那些。它同样会撤销冻结权限,所以先解冻的规则照样适用。

撤销之前先检查

  1. 在决策表里找到你的那一行。
  2. 把冻结过、之后还想让它能用的账户全部解冻,因为撤销之后,冻结的账户会永远冻结。
  3. 确认冻结权限在哪个钱包手里(撤销冻结权限页面会显示)。
  4. 铸币权限和元数据权限分开决定。
  5. 然后再撤销,具体步骤见三项代币权限的放弃指南。

撤销之后没有撤回。如果你可能还需要应对攻击、执行合规冻结或锁仓,就保留冻结权限,并把理由写下来。

常见错误

  1. 上一个热门项目撤销了,自己也跟着撤销。决定要看自己的项目。
  2. 把权限放在单个热钱包上。如果保留冻结权限,就交给多签,任何 SPL 代币权限都可以由多签持有。注意 j.tools 的页面只在连接的钱包本身就是权限持有者时才会执行。
  3. 对外沟通时把冻结权限和铸币权限混为一谈。这是两项独立的权限。
  4. 以为冻结能停掉整个代币。冻结一次只作用于一个账户,暂停整个代币是 Token-2022 里另一个角色的事。
  5. 还有账户处于冻结状态就撤销。它们会永远冻结。

把决定写下来

要不要保留冻结权限,是运营上的决定。把理由写在持有者看得到的地方,到审计、上所这类真正的节点再重新评估。上线之后的其他收尾事项,见代币发射后的收尾清单。

常见问题

保留冻结权限安全吗?

如果权限放在防护到位的钱包里(最好是多签),而且确实有保留的理由,就是安全的。风险在于单个热钱包。USDC、USDT 和 PYUSD 在 Solana 上的铸币账户也都设有冻结权限。

冻结权限还在的代币,买家会信任吗?

在模因币上,这是危险信号。现实世界资产和受合规约束的代币,懂行的买家会去读公开的理由。买家这一侧怎么查,可以看买入前识别跑路的八项检查。

以后还能撤销吗?

能。只要权限还在你手里,随时都可以撤销。反过来不行:一旦设为空,就没有指令能再设回来。

撤销之后,被冻结的账户会怎样?

永久保持冻结。撤销不会顺带解冻,想恢复的账户要先解冻。

Pump.fun 的代币会被冻结吗?

不会。Pump.fun 的代币在联合曲线上和迁移之后都没有冻结权限,也没有东西可撤销。

J
作者
J Tools Editorial

来自 J Tools 团队的文章。

查看 J Tools Editorial 发表的所有文章 →

相关文章