3.1 Deterministic Finite State Machine (DFSM)
在 OES 中,我们不仅将状态机视为一种代码模式,更将其视为一种数学约束。我们定义了一个五元组自动机 来形式化描述担保流程:
3.1.1 Mathematical Definition of States
$Q$ (有限状态集合): 协议中所有可能的合法状态。
(Initialized): 合约实例化,参数已配置,等待注资。
(Locked): 买方资金已存入 Vault,担保生效。
(Delivered): 卖方提交了链上履约凭证 (Proof of Delivery)。
(Disputed): 争议被触发,合约挂起,控制权移交 DAN。
(Finalized): 正常结案,资金流向卖方。
(Voided): 交易取消或仲裁判定退款,资金回流买方。
(初始状态):
(终止状态集合): 。一旦进入该集合,状态即不可变 (Immutable)。
3.1.2 Transition Function
转移函数 定义了合法的状态流转路径。任何未在该函数中定义的转换尝试都将被智能合约的 require() 语句拦截并回滚 (Revert)。
核心转移逻辑如下:
1.锁定转换 (Locking Transition):
约束条件: msg.value >= amount 或 token.transferFrom 成功。
2.交付转换 (Delivery Transition).
约束条件: 仅卖方可调用,且 block.timestamp < deliveryDeadline。
3.原子结算转换 (Settlement Transition):
约束条件: 买方签名确认 或 block.timestamp > inspectionPeriod (自动验收)。
4.争议中断 (Dispute Interrupt):
约束条件: 在 inspectionPeriod 内,且双方均未确认。
3.1.3 Atomic Swap Implementation
OES 利用区块链的原子性特性,实现了 Conditional Asset Swap 。与传统的 Hash Time-Locked Contracts (HTLC) 仅依赖哈希原像不同,OES 扩展了触发条件。
Solidity Style Pseudocode:
Solidity
Security Properties:
Idempotency: 由于在第 4 步状态被修改为
FINALIZED,即使攻击者再次调用该函数,也会在第 2 步require处失败。这保证了资金只能被释放一次。交付即付款 (Delivery-versus-Payment, DvP): 资金释放的唯一前提是状态机已成功流转至 (意味着卖方已提交证据)。数学上保证了买方不可能在卖方未提交动作前提取资金(除非超时退款)。

