web3-基于贝尔曼福特算法(Bellman-Ford )与 SMT 的 Web3 DeFi 套利策略研究

web3-基于贝尔曼福特算法(Bellman-Ford )与 SMT 的 Web3 DeFi 套利策略研究

如何找到Defi中的交易机会

把defi看做是一个完全开放的金融产品图表,可以看到所有的一切东西;我们要沿着这些金融图表找到一些最优的路径,就有可能会发现一些有利可图的机会。这些有利可图的机会对于项目方来说可能是一种攻击

如何在Defi中发现套利或者获利的机会
  • 贝尔曼福特算法Bellman Ford Algorithm
    • 负循环检测(Negative cycle detection)
    • 适用于多个市场
    • 在传统金融和DeFi中都被广泛使用
  • 定理求解器(SMT)
    • 需要对defi模型编码
    • 可能需要一些启发式算法(heuristic)来进行路径修剪(path pruning)
DeFiPoser-ARB和DeFiPoser-SMT
  • DeFiPoser-ARB
    • 建立defi市场图标
    • 检测负周期
    • Bellman Ford-Moore 算法
  • DeFiPoser-SMT
    • 状态转换模型
    • 修剪搜索空间
    • 定理证明者
      在这里插入图片描述
📌 图解说明:

这张图其实是货币兑换套利问题的一个例子,常用贝尔曼-福特算法来检测是否存在套利机会(即经过一圈兑换后,能赚到钱,兑换前后资产数量增加)。

📌 图中元素含义:
  • 红、黄、绿、蓝的小房子 代表四个不同货币交易市场。
  • 每个房子标记了汇率:
    • A B = p 1 \frac{A}{B}=p_1 BA=p1
    • B C = p 2 \frac{B}{C}=p_2 CB=p2
    • C A = p 3 \frac{C}{A}=p_3 AC=p3
    • B A = p 4 \frac{B}{A}=p_4 AB=p4
  • 箭头代表交易路径,箭头上的公式是交易后的资产数量。
  • 初始带着 1×A,尝试通过不同路径回来,看是否能变成大于1×A。
📌 中间两张图讲了两种套利路径:
▶️ 中间图(路径一):

从 A → B → A
利润条件是:
p 1 × p 4 > 1 p_1 \times p_4 > 1 p1×p4>1
即:如果你先把 A 换成 B,再把 B 换回 A,资产增值了,就存在套利。


▶️ 右边图(路径二):

从 A → B → C → A
利润条件是:
p 1 × p 2 × p 3 > 1 p_1 \times p_2 \times p_3 > 1 p1×p2×p3>1
同理,如果沿这个路径资产增值了,就存在套利。

📌 这和贝尔曼-福特算法的关系:

贝尔曼-福特算法原本用来在带权图中找最短路径,也能用来检测负权环

套利问题中

  • 我们把汇率取对数(通常是 log ⁡ ( 汇率 ) \log(\text{汇率}) log(汇率)),然后取相反数,变成权值。
  • 如果存在一条回路,回到起点,路径和小于0,说明存在套利机会。
📌 算法步骤:
  1. 初始化每个点到起点的距离。
  2. 对所有边松弛 (Relax) N-1 次。
  3. 再执行一次松弛,如果还能更新,说明存在负权环(即套利机会)。
    在这里插入图片描述
    这张图就是用交易路径的方式形象化表示套利路径和条件,而检测这些路径是否满足套利条件,就是贝尔曼-福特算法擅长的事情。
货币套利问题贝尔曼-福特算法 的应用场景
📌 左边这张图:

是一个带权有向图,每个节点代表一个货币,每条有向边代表汇率交易

  • A → B A \rightarrow B AB 的权值是 − log ⁡ p 1 -\log p_1 logp1
  • B → C B \rightarrow C BC 的权值是 − log ⁡ p 2 -\log p_2 logp2
  • C → A C \rightarrow A CA 的权值是 − log ⁡ p 3 -\log p_3 logp3

为什么用 − log ⁡ p -\log p logp 呢?

  • 因为原本套利条件是:

p 1 × p 2 × p 3 > 1 p_1 \times p_2 \times p_3 > 1 p1×p2×p3>1

两边取对数:
log ⁡ ( p 1 × p 2 × p 3 ) > 0 \log(p_1 \times p_2 \times p_3) > 0 log(p1×p2×p3)>0
转化成:
log ⁡ p 1 + log ⁡ p 2 + log ⁡ p 3 > 0 \log p_1 + \log p_2 + \log p_3 > 0 logp1+logp2+logp3>0
再乘个 − 1 -1 1
− ( log ⁡ p 1 + log ⁡ p 2 + log ⁡ p 3 ) < 0 -(\log p_1 + \log p_2 + \log p_3) < 0 (logp1+logp2+logp3)<0

📌 中间部分:

把套利条件转化为:
( − log ⁡ p 1 ) + ( − log ⁡ p 2 ) + ( − log ⁡ p 3 ) < 0 (-\log p_1) + (-\log p_2) + (-\log p_3) < 0 (logp1)+(logp2)+(logp3)<0
意思是:
如果图中存在一个环,环上的边权之和 < 0,说明存在套利机会。

📌 右上角小公式:

总结了一下这件事:

  • 如果:

∏ p i > 1 \prod p_i > 1 pi>1

等价于:
∑ ( − log ⁡ p i ) < 0 \sum (-\log p_i) < 0 (logpi)<0

📌 右下角框:

说明解决这个问题的方法:

  • 使用 Bellman-Ford-Moore 算法
  • 时间复杂度:

O ( ∣ N ∣ 2 ⋅ ∣ E ∣ ) O(|N|^2 \cdot |E|) O(N2E)

(其实一般 Bellman-Ford 是 O ( N ⋅ E ) O(N \cdot E) O(NE),这里写成 ∣ N ∣ 2 ⋅ ∣ E ∣ |N|^2 \cdot |E| N2E 可能是指对所有顶点多轮松弛或特殊实现)
在这里插入图片描述
这张图其实讲了一个套利检测的问题:

  1. 汇率相乘 > 1 就是套利。
  2. − log ⁡ -\log log 把乘法变加法。
  3. 看图中是否存在负环
  4. Bellman-Ford算法检测负环。

DeFiPoser-SMT
在这里插入图片描述

DeFiPoser 评估

  • 96笔在Uniswap,Bancor和Marker DAO上的操作,总共覆盖了25种资产
  • Block910000(Dec-13-2019)到10050000(May-12-2020)
  • 通过具体执行来进行验证
    在这里插入图片描述

贝尔曼福特算法 VS SMT

在这里插入图片描述

总结

本文研究了基于贝尔曼-福特算法和SMT求解器的DeFi套利策略。将DeFi市场建模为金融产品图,利用贝尔曼-福特算法检测负权环(套利机会),并通过SMT对DeFi模型编码进行路径优化。研究提出两种方法:DeFiPoser-ARB建立市场图并检测负周期,DeFiPoser-SMT采用状态转换模型进行空间修剪。实验验证了该策略在Uniswap等平台的有效性,比较了两种算法在检测套利路径时的性能差异。该研究为DeFi领域的套利检测提供了量化分析框架。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全干engineer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值