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 A→B 的权值是 − log ⁡ p 1 -\log p_1 −logp1
  • B → C B \rightarrow C B→C 的权值是 − log ⁡ p 2 -\log p_2 −logp2
  • C → A C \rightarrow A C→A 的权值是 − 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(∣N∣2⋅∣E∣)

(其实一般 Bellman-Ford 是 O ( N ⋅ E ) O(N \cdot E) O(N⋅E),这里写成 ∣ N ∣ 2 ⋅ ∣ E ∣ |N|^2 \cdot |E| ∣N∣2⋅∣E∣ 可能是指对所有顶点多轮松弛或特殊实现)

这张图其实讲了一个套利检测的问题:

  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领域的套利检测提供了量化分析框架。

相关推荐
Wo3Shi4七3 分钟前
数组
数据结构·算法·go
CoovallyAIHub10 分钟前
YOLOv13都来了,目标检测还卷得动吗?别急,还有这些新方向!
深度学习·算法·计算机视觉
转转技术团队43 分钟前
边学边做:图片识别技术的学习与应用
后端·算法
一块plus1 小时前
2025 年值得一玩的最佳 Web3 游戏
算法·设计模式·程序员
前端拿破轮1 小时前
不是吧不是吧,leetcode第一题我就做不出来?😭😭😭
后端·算法·leetcode
一块plus1 小时前
什么是去中心化 AI?区块链驱动智能的初学者指南
人工智能·后端·算法
Mr_Xuhhh1 小时前
网络基础(1)
c语言·开发语言·网络·c++·qt·算法
前端拿破轮1 小时前
😭😭😭看到这个快乐数10s,我就知道快乐不属于我了🤪
算法·leetcode·typescript
lyx 弈心1 小时前
I/O 进程 7.2
linux·算法·io
静心问道1 小时前
APE:大语言模型具有人类水平的提示工程能力
人工智能·算法·语言模型·大模型