到点才能领的链上给付:分期解锁合约的结构、终止与零头 图 1
到点才能领的链上给付:分期解锁合约的结构、终止与零头 · 图 1

链上给付合约解决的是一个很古老的问题:钱已经属于你,但现在不能全给你。远程雇佣的分期工资、合作分成、保证金的冻结返还,都可能写成这样一份合约——付款方把总额一次锁进合约,领取方随着时间推进一次次取走属于自己的部分。这份机制看起来只是加了个闹钟,真读起来,魔鬼在参数里。

一份给付计划的骨架由五件事构成:资产是什么、总额多少、起点时间、终点时间,以及解锁形状。前四样没什么歧义,形状才是全部信息量的所在。最简单的形状是悬崖加线性:悬崖期之前一分不能领,到达某个时点一次性解锁第一块,之后每一秒按比例可领。这个设计不是为了折磨领取方,悬崖的存在本身就是契约的一部分——它让提前离场的终止成本集中在前期,锁定的是履约诚意。另一种形状是台阶式:按周或按月切块,每块到点整块可领,块与块之间领取方拿不到前一块之外的东西。还有反斜的曲线,前期解锁快、后期越来越慢,把重心从留人转向即时的兑付。看到一份链上给付,先问形状:同一个人、同一笔钱、不同曲线,经济含义完全不同。

领取这个动作在链上的含义值得说清楚。多数实现里,钱在计划建立时已经离开付款方、进入合约,之后的可领数量是公式算出来的读数,每次领取是真实转账。这意味着两个事实:其一,领取不需要付款方配合,条件一到,任何人来点都一样(当然能受益的只有领取地址);其二,没领的部分继续以合约余额的形态存在,它不生息、不投资、不跟着任何池子跑,给付合约的通行设计是让沉淀部分原样躺着——想要随时间累积收益的,那属于流式结算或带收益锁仓的另一类结构,别混为一谈。

终止条款是双方权利真正分岔的地方。一份计划被中途取消时,已解锁未领取的部分仍然属于领取方,这部分通常没有争议;争议在未解锁的部分去哪。多数实现把它退回付款方,这是最常见的默认;但也有实现把未解锁部分永久转入一个更慢的计划、或者干脆销毁,这类条款多见于代币给付——提前终止不影响市场上的流通承诺。领取方看到终止要特别警觉的是一种变体:终止动作本身需要双方签名,单方终止才走上面的规则,这种双边保护对双方都公平,但另一方失联时计划会变成孤儿,钱卡在既不属于你也不属于他的状态,这属于机制设计的已知代价。

领取方最容易踩的三个误区。第一,把计划合约地址当成资金地址管理:给付合约里的余额是别人的钱加上你的未来,不存在一个可以被你随意转出的余额,能操作的只有领取函数,界面不认识这一点时会显示一堆看似冻结的资产。第二,忽略时间基准:链上合约用区块时间戳,它允许秒级偏差,卡在悬崖边缘或者整点台阶附近的那几分钟,链上可领数量可能不符合直觉,把临界点算在自己的账本里并留一点余量,省得反复重试白付执行费。第三,把可领数量读成到账数量:给付的是有转账税或精度处理特殊性的资产时,可领、转入、到账是三个数字,第一次领取先小额验证到账与格式,是零成本的习惯。

从审阅者的角度,给付合约最值得逐行确认的反而不是曲线,而是三件边界事:计划建立后付款方能否改参数——规范的实现在锁定总额之后不可改,可改的那是托管在改主意而不是给付;领取地址能否转移——工资给付通常不希望地址被转卖;以及建立计划那一刻,付款方的总额是否真的转足——有些实现允许先建计划后注资,那就存在一份到点没钱可领的空头窗口。这三条答案在事件流与合约源码里都能找到,比任何项目方的口头承诺都可靠。

链上给付依赖合约代码正确执行,合约缺陷、条款误读或时间边界偏差都可能导致领取受阻或权益损失。本文只解释机制,不构成投资建议,也不构成对任何给付安排的法律意见。