ERC-6123 智能衍生品合约:把交易生命周期写成一台状态机 图 1
ERC-6123 智能衍生品合约:把交易生命周期写成一台状态机 · 图 1

ERC-6123 智能衍生品合约:把交易生命周期写成一台状态机

一笔场外衍生品交易,合同签完只是开始:估值、保证金、逐日结算、违约处理,每一步都要两家机构靠人来推进。ERC-6123 想把这段流程整体搬进合约:按 ercs 仓库记录,这份提案创建于 2022 年 12 月 13 日,状态为 Draft,给出的不是一个代币,而是一台管理金融合约完整生命周期的协议——Smart Derivative Contract,简称 SDC。原文提到,2021 与 2022 年已经做过两份具有法律效力的利率掉换概念验证,这份提案可以看作那两次实验的接口化总结。

一台状态机,四组接口

原文给 SDC 的定义是“与金融合约经济行为等价的确定性结算协议”,过程状态全部预先定义,整条生命周期可预期。接口由四组构成:ISDCTrade 管开仓、确认与终止,ISDCSettlement 管结算周期,IAsyncTransferIAsyncTransferCallback 对接外部支付系统,聚合接口 ISDC 把前两者与回调接口合并声明。结算代币方面,任何实现 ERC-20 的合约都能参与,另有一个派生自 ERC-20 的结算代币参考实现。整个设计可以完全自动,也可以在关键节点保留双方确认,但原文强调每一步的合法状态转换是写死的——这正是“确定性”三个字的分量。

ERC-6123 智能衍生品合约:把交易生命周期写成一台状态机 图 2
ERC-6123 智能衍生品合约:把交易生命周期写成一台状态机 · 图 2

开仓三步与那面反着的镜子

开仓流程由三个函数构成。一方调用 inceptTrade,报出对手方地址、交易数据、头寸方向、支付金额和初始结算数据,函数返回一个唯一 tradeId 并以事件发出;对手方用同样一组参数调用 confirmTrade 完成确认;若迟迟无人确认,发起方可以 cancelTrade 撤回。原文有个容易被忽略的细节:confirmTrade 里的 position 与 paymentAmount 相对 inceptTrade 要取相反符号,因为同一笔交易从确认方视角看方向天然相反——你买入就是我卖出。参数用带符号整数表达头寸与金额,把“谁在付谁”写进类型本身,而不是靠注释约定。

逐日结算与自动终止

原文列了四种落地形态。盯市结算型衍生品每天把合约净值结清一次,结算后价值归零,每个周期开始前双方要锁定事先商定的保证金缓冲,结算被保证在缓冲额度之内;任何一方不守规矩,比如没按时备好预付资金,SDC 会自动终止,并由肇事方保证一笔终止费的划转。抵押品型变体让合约自己管理抵押品与现金代币,从结构上消除抵押不足的缺口,因而不再需要单独的初始保证金。可违约型则不设抵押流程,结算失败时进入 Failure to Pay 状态。债券形态下,发行、兑付、息票与二级市场转售都压缩进同一个结算阶段,只需双方事先认可结算窗口。

与普通读者有什么关系

离普通用户较远的提案,为什么值得写在藏品与铭文栏目里?因为它示范了智能合约的另一条价值曲线:不是把资产做成可以转手的代币,而是把一长串需要失信兜底的流程做成不需要信任对手的状态机。原文的动机部分说得很直接——目标是基本消除对手方信用风险。判断任何合约自动化宣传时,这套框架都是好标尺:流程是否确定性、失败路径是否事先写死、违约成本是否被自动执行,三问缺一个,“自动化”就只是把纸面流程搬到链上重演。对读者而言,这类协议也提醒我们:提案编号不等于产品落地,看到相关宣传时先到 ercs 仓库与项目方仓库核对当前状态,比听转述可靠。

补一个容易被跳过的细节:SDC 的确认环节以字符串形式比对双方的交易数据,字符串一致才算交易成立,任何一侧偷偷改动条款文本都会在确认步被挡下;而终止阶段的 requestTermination 允许按预设规则发起结算退出,配合自动违约处理,整台状态机没有留给人类拖延的空间。这类设计与订单式协议的根本差别在于:订单协议优化的是成交速度,状态机协议优化的是长期履约的确定性,两者对智能合约能力的假设完全不同。

本文为机制说明,不构成任何投资建议。