撰文 | Banach

时间 | 2021.01.27

出品 | NEST爱好者(nestfans.com)获作者授权发布


为什么会有触发算子?当合约内部逻辑满足一定的条件时,需要改变合约状态,这个时候合约不会自动实现,需要外部操作来触发,这是由中本聪架构下智能合约本质决定的:每个操作都是一次全局拍卖。很多试图将触发自动化的设计,都没有认真思考这个博弈的问题,如果强行进行排序,很有可能出现博弈冲突:攻击/套利,更本质的说,存在对链上行为的占优策略。


触发算子的本质是什么?本质是一次基于 GAS 消耗 + 信息携带成本与状态改变收益的交换,只是这一交换是非线性的(对规模而言)。因为其非线性特征,是否可以在某种维度上形成自增强从而沉淀价值呢?这涉及到对触发算子的仔细分析。


一般来说,触发算子包含三种:是否含权,即触发的对象是否是被限制,比如借贷双方,还款的触发肯定是借款方,而清算的触发则可以是任何人;其次是触发时是否携带信息到合约里,包括是否携带资产,这种情况下,触发成本很可能发生变化,因为不携带信息的触发更多是 GAS 费用,不会有额外的成本(可能有额外收益,看合约而定),但携带信息一般包含一些额外的成本,特别是携带资产,至少资金风险成本也是一种。最后是触发的有效性是否和时间相关,越是相关性大,越会影响触发的策略,因此时间相关性也是触发算子需要考虑的一个重要变量。


在 DeFi 设计中,触发算子被定为为博弈的第三方行为,即:不是基于交易的直接双方进行触发,而是由任意第三方完成,并主要用于清算,这就带来了激励设计问题。不同的场景下,会设计不同的激励,特别是是否加入信息成本和时间效应,这构成了很多触发算子的差异特征。完全基于信息成本的触发,可能会出现最终受益人为矿工的情况,因为这是一种拍卖行为,而时间效应的触发,则可以设计成荷兰式拍卖结构,从而使得价值大部分为真实触发者所有。但需要注意的是,价值归谁所有带来了两个分歧,第一个是时间快慢的分歧,第二个是参与意愿的分歧,这个可以看看各类 DeFi 清算的模型。


触发算子在清算之外,还有一个非常重要的功能,就是自动对冲,在这一点上,行业没有深入实践过,也就是触发算子的核心价值并没有深入挖掘,这一点可以参见 CoFiX 2.0 版本协议。另外,创造信息或者主动贡献信息的触发算子也是一类应用,比如在 NEST 系统里,也可以把报价看成是一个复杂的触发算子。我相信大家可以开发出更多用途,而不是局限于当前的清算。随着时间推移,触发算子因为其非线性及广泛性,会成为链上第一个捕获价值的算子(抵押、交易等都是线性算子,不能沉淀价值)。


一个比较重要的问题是,触发算子能不能独立构成一个 GAME ?由于每个触发算子都跟随一个具体的“场景”,不同的场景难以在一个统一的激励系统下完成,这和以太坊指定每个指令消耗多少 GAS 不一样,因为这种是先底层指令标准化,再逆向选择合约结构,如果涉及一个独立的触发算子 GAME,就等于要求不同的触发场景按照同样的标准来设计触发模型,保证输入输出价值的一致性,这是很难做到的,除非所有合约都在同一个标准下制定,不过这也是一个重要的研究方向:是否应该把触发作为智能合约开发的出发点。这里可以尝试探讨一下:


触发算子的成本包含三种,其一是 GAS 费用 g,其二是信息净成本 x,每一次操作的总成本为 C=g+x,而简化成 GAME 后,其收益由统一的 token 表示,记为 Y,需要注意的是,场景可能包含时间因素,因此要赋予一个时间系数 t,以及场景系数 s,最后,整个系统要正常运转,必须有人输送价值 V,即基础奖励 Y0 应该和 V 相关:Y0=F(V)(特别提出的是,这里没有随机因子,都是确定变量),如果要求所有场景对称且无套利,则 F 需要一致且为线性,那可以将这个 GAME 表述成,某操作 C 获得 Y,其中 C=g+x,Y=stY0=st F(V),从这个公式看到,如果要求场景之间无套利,则 s 必须对所有场景对称,否则会表现在 g 的竞争上,而 t 本身是线性的,在这种情况下,Y 的产出和 C 几乎建立了线性关系,不太可能形成自增强属性,在完全开放的合约里,是可以 100% 被复制的。以上分析来看,触发算子要变成一个独立的 GAME,必须引入随机算子。


但是触发算子作为一个环节在某一个大的 GAME 里,反而可能具备某种自增强的特性,比如用于对冲,用于报价,这里面因为会有其它的参与方贡献价值,从而使得算子激励不完全线性。以 NEST 为例,触发报价需要成本,但是 NEST 价值由调用者决定,调用者的价值并没有和 NEST 出矿建立线性关系,这导致 NEST 系统具备自增强属性。同样 CoFiX 对冲的激励并不是完全由对冲交易决定,而是由正常交易的价值共同决定,这一部分是没有和对冲激励建立线性关系。


回过来,在上面的公式里,也可以做几种修正,比如 s 并不是对称的,但是较高的 s 随机出现,或者 F 也不是线性的,这等于激励大额的触发,这一类设计有可能带来一些模糊的非线性结构,从而形成一些特殊的均衡,并具备不可复制性。这种设计更多像是多种场景之间的博弈,或者说场景赌博,并不能很好反映触发服务于场景的作用,也没有看出此类均衡能创造出什么独特的属性。前面也提到可以加入随机属性来消除线性结构被复制的缺点,但是如果加入随机性的话,一切线性的算子都可能变成了彩票模型,仅仅支持了算子内部参与者的交易型博弈,并没有外生价值,不是可取的方向。


总结:触发算子的非线性结构可以和大型合约结合,构成一定的自增强非合作博弈,并具备显著的经济学价值,但它并不能独立的完成一个 GAME 的设计,并沉淀价值。从这个角度看,有些已有的产品,在逻辑上是存在问题的,做成了内部彩票系统。