9.1 Attack Vectors & Mitigation

我们基于 STRIDE 威胁模型 对协议进行了全面的压力测试,针对以下三类核心攻击向量设计了防御机制。

9.1.1 51% Attacks on Arbitration

威胁描述 (Threat):

攻击者试图控制 DAN 网络中超过半数的仲裁员席位,从而通过恶意的多数派投票(如判定“空包为真”)来窃取托管资金或非法没收对手质押金。

防御机制 (Mitigation Strategies):

  1. 随机抽样与身份隐匿 (Random Sortition & Secrecy):

    由于采用了 VRF (可验证随机函数) 和 Commit-Reveal 机制,攻击者在投票结果揭示前,无法知道具体的仲裁员是谁。这意味着攻击者无法进行精准贿赂,只能试图买通整个网络,这在经济上是不切实际的。

  2. 上诉与分叉威慑 (Appeal & Forking Deterrence):

    即使攻击者暂时攻破了第一轮仲裁(3人)甚至第二轮(7人),受害者可以持续上诉。随着陪审团规模指数级扩大,攻击成本 $C_{attack}$ 将迅速超过潜在收益 $R_{profit}$。

Cattack(k)r=0k(Nr×BribeCost)RprofitC_{attack}(k) \approx \sum_{r=0}^{k} (N_r \times \text{BribeCost}) \gg R_{profit}
  • 终极防御: 如果攻击者拥有无限资金并控制了 51% 的 $PACT 代币(终审团),社区将触发 社会层分叉 (Social Fork)。诚实节点将迁移到新合约,并将攻击者的 $PACT 代币在新链上清零。这种“同归于尽”的威慑力确保了理性的大户不会作恶。

  1. 经济隔离 (Economic Isolation):

每个案件是独立的。即使某个案件被攻击,攻击者的影响力被限制在该案件的资金池内,无法通过该漏洞直接耗尽 OmniVault 中的其他用户资金。

9.1.2 Flash Loan Attacks on Collateral

威胁描述 (Threat):

攻击者利用闪电贷 (Flash Loans) 在一个区块内借入巨额资金,操纵 DEX (如 Uniswap) 上的价格预言机,导致 OmniPact 错误地计算抵押品价值(如判定质押不足而清算)或操纵 OmniVault 的份额价格。

防御机制 (Mitigation Strategies):

  1. 抗操纵预言机 (Hardened Oracles):

    OES 严禁直接使用 DEX 的瞬时现货价格 (Spot Price)。我们强制集成 Chainlink Price Feeds,其聚合了多个中心化和去中心化交易所的加权数据,单次闪电贷无法操纵 Chainlink 的全网共识价格。

    • 备用方案: 对于长尾资产,采用 TWAP (时间加权平均价格),攻击者必须持续操纵多个区块的价格,成本极高。

  2. ERC-4626 防御标准 (ERC-4626 Defense):

    OmniVault 在计算份额兑换率时,采用了严格的会计准则:

    • 防捐赠攻击 (Donation Attack Prevention): 在 Vault 初始化时预先铸造并销毁少量份额(Dead Shares),防止攻击者通过向空池子捐赠资产来操纵汇率导致舍入误差。

    • 虚拟偏移 (Virtual Offset): 在内部计价公式中引入虚拟资产偏移量,平滑极端的汇率波动。

  3. 同一个区块限制 (Same-Block Restrictions):

    协议禁止在同一个区块内完成 deposit 和 withdraw 操作。这从逻辑上切断了利用闪电贷进行无风险套利的路径。

9.1.3 Front-running Protection

威胁描述 (Threat):

MEV 搜索者 (Searchers) 监控内存池 (Mempool)。

  • 场景 A (抢单): 看到一个高利润的公开承兑单,提高 Gas 费抢先接单。

  • 场景 B (跟票): 看到高信誉仲裁员提交了投票,抢先提交相同的票以混取奖励。

防御机制 (Mitigation Strategies):

  1. 指定接收人 (Designated Taker):

    OES 合约支持 whitelist 模式。买方在创建订单时可直接指定 sellerAddress。

    Solidity

    如果是指定单,即使搜索者看到了交易,也因地址不匹配而无法抢跑。

  2. Commit-Reveal (针对跟票):

    如 4.3 节所述,仲裁投票分为两个阶段。

    • Commit 阶段: 提交的是哈希值 。搜索者虽然能看到交易,但无法得知内容。

    • Reveal 阶段: 此时所有人同时揭示,再抢跑已无意义(因为 Commit 窗口已关闭)。

  3. 私有交易池集成 (Private Mempool Integration):

    对于机构级的大额交易,OmniPact 前端默认集成 Flashbots Protect RPC。交易不经过公开内存池,直接发送给矿工打包,从物理网络层面杜绝了被抢跑的可能性。


本节向审计机构和高净值用户展示了 OmniPact 在对抗 Web3 特有金融风险(MEV、闪电贷)时的成熟技术方案。