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(N2?E)

(其實一般 Bellman-Ford 是 O ( N ? E ) O(N \cdot E) O(N?E),這里寫成 ∣ N ∣ 2 ? ∣ E ∣ |N|^2 \cdot |E| N2?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領域的套利檢測提供了量化分析框架。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/83123.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/83123.shtml
英文地址,請注明出處:http://en.pswp.cn/web/83123.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL Server 觸發器調用存儲過程實現發送 HTTP 請求

文章目錄 需求分析解決第 1 步:前置條件,啟用 OLE 自動化方式 1:使用 SQL 實現啟用 OLE 自動化方式 2:Sql Server 2005啟動OLE自動化方式 3:Sql Server 2008啟動OLE自動化第 2 步:創建存儲過程第 3 步:創建觸發器擴展 - 如何調試?第 1 步:登錄 SQL Server 2008第 2 步…

Go 語言中的內置運算符

1. 算術運算符 注意&#xff1a; &#xff08;自增&#xff09;和--&#xff08;自減&#xff09;在 Go 語言中是單獨的語句&#xff0c;并不是運算符。 package mainimport "fmt"func main() {fmt.Println("103", 103) // 13fmt.Println("10-3…

SQL注入篇-sqlmap的配置和使用

在之前的皮卡丘靶場第五期SQL注入的內容中我們談到了sqlmap&#xff0c;但是由于很多朋友看不了解命令行格式&#xff0c;所以是純手動獲取數據庫信息的 接下來我們就用sqlmap來進行皮卡丘靶場的sql注入學習&#xff0c;鏈接&#xff1a;https://wwhc.lanzoue.com/ifJY32ybh6vc…

發立得信息發布系統房屋信息版(php+mysql)V1.0版

# 發立得信息發布系統房屋信息版(phpmysql) 一個輕量級的房屋信息發布平臺&#xff0c;基于PHP和MySQL開發&#xff0c;支持用戶發布房屋出售/出租信息&#xff0c;以及后臺管理功能。 輕量級適合網站開發PHP方向入門者學習&#xff0c;首發版本&#xff0c;未經實際業務流程檢…

學習 React【Plan - June - Week 1】

一、使用 JSX 書寫標簽語言 JSX 是一種 JavaScript 的語法擴展&#xff0c;React 使用它來描述用戶界面。 什么是 JSX&#xff1f; JSX 是 JavaScript 的一種語法擴展。看起來像 HTML&#xff0c;但它實際上是在 JavaScript 代碼中寫 XML/HTML。瀏覽器并不能直接運行 JSX&…

小智AI+MCP

什么是小智AI和MCP 如果還不清楚的先看往期文章 手搓小智AI聊天機器人 MCP 深度解析&#xff1a;AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下載官方MCP的示例代碼 Github&#xff1a;https://github.com/78/mcp-calculator 安這個步驟執行 其中MCP_ENDPOI…

基于python大數據的口紅商品分析與推薦系統

博主介紹&#xff1a;高級開發&#xff0c;從事互聯網行業六年&#xff0c;熟悉各種主流語言&#xff0c;精通java、python、php、爬蟲、web開發&#xff0c;已經做了多年的設計程序開發&#xff0c;開發過上千套設計程序&#xff0c;沒有什么華麗的語言&#xff0c;只有實實在…

ArcPy擴展模塊的使用(3)

管理工程項目 arcpy.mp模塊允許用戶管理布局、地圖、報表、文件夾連接、視圖等工程項目。例如&#xff0c;可以更新、修復或替換圖層數據源&#xff0c;修改圖層的符號系統&#xff0c;甚至自動在線執行共享要托管在組織中的工程項。 以下代碼展示了如何更新圖層的數據源&…

打開GitHub網站因為網絡原因導致加載失敗問題解決方案

Date: 2025.06.09 20:34:22 author: lijianzhan 在Windows系統中&#xff0c;打開GitHub網站因為網絡原因導致加載失敗問題解決方案 打開Windows系統下方搜索框&#xff0c;搜索Microsoft Store&#xff0c;并且雙擊打開 在應用里面搜索Watt Toolkit&#xff0c;并下載安裝 …

AI代碼助手需求說明書架構

AI代碼助手需求說明書架構 #mermaid-svg-6dtAzH7HjD5rehlu {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6dtAzH7HjD5rehlu .error-icon{fill:#552222;}#mermaid-svg-6dtAzH7HjD5rehlu .error-text{fill:#552222;s…

.NET開發主流框架全方位對比分析

文章目錄 1. ASP.NET Core核心特性代碼示例&#xff1a;基本控制器優勢劣勢 2. .NET MAUI核心特性代碼示例&#xff1a;基本頁面優勢劣勢 3. Blazor兩種托管模型核心特性代碼示例&#xff1a;計數器組件優勢劣勢 4. WPF (Windows Presentation Foundation)核心特性代碼示例&…

【系統架構設計師-2025上半年真題】案例分析-參考答案及部分詳解(回憶版)

更多內容請見: 備考系統架構設計師-專欄介紹和目錄 文章目錄 試題一(25分)【問題1】(12分)【問題2】(13分)試題二(25分)【問題1】(10分)【問題2】(6分)【問題3】(9分)試題三(25分)【問題1】(13分)【問題2】(8分)【問題3】(4分)試題四(25分)【問題1】(6分)【問題2】(12…

【中間件】Web服務、消息隊列、緩存與微服務治理:Nginx、Kafka、Redis、Nacos 詳解

Nginx 是什么&#xff1a;高性能的HTTP和反向代理Web服務器。怎么用&#xff1a;通過配置文件定義代理規則、負載均衡、靜態資源服務等。為什么用&#xff1a;提升Web服務性能、高并發處理、負載均衡和反向代理。優缺點&#xff1a;輕量高效&#xff0c;但動態處理能力較弱&am…

運動控制--小車的啟動和停止算法

一、現實問題 小車在啟動時由于受到慣性&#xff0c;后輪和前輪速度不一致&#xff0c;會引起車身不穩。 如小車上面裝的是水&#xff0c;會出現傾灑&#xff0c;體驗差。 二、數學研究 啟動時 停止時 急動度&#xff08;jerk) 三、BLDC控制與S型曲線的融合邏…

WebFuture:Ubuntu 系統上在線安裝.NET Core 8 的步驟

方法一&#xff1a;使用官方二進制包安裝 下載.NET Core 8 SDK 二進制包&#xff1a;訪問 .NET Core 8 SDK 官方下載頁面&#xff0c;根據你的系統架構選擇對應的 Linux x64 版本等下載鏈接&#xff0c;將其下載到本地4. 創建安裝目錄&#xff1a;在終端中執行以下命令創建用于…

可視化預警系統:如何實現生產風險的實時監控?

在生產環境中&#xff0c;風險無處不在&#xff0c;而傳統的監控方式往往只能事后補救&#xff0c;難以做到提前預警。但如今&#xff0c;可視化預警系統正在改變這一切&#xff01;它能夠實時收集和分析生產數據&#xff0c;通過直觀的圖表和警報&#xff0c;讓管理者第一時間…

深度解析 Linux 內核參數 net.ipv4.tcp_rmem:優化網絡性能的關鍵

文章目錄 引言一、認識 net.ipv4.tcp_rmem1. 最小值&#xff08;min&#xff09;2. 默認值&#xff08;default&#xff09;3. 最大值&#xff08;max&#xff09; 二、net.ipv4.tcp_rmem 的工作原理三、net.ipv4.tcp_rmem 的實際應用場景1. 高并發 Web 服務器2. 文件傳輸服務3…

Windmill:開源開發者基礎設施的革命者

前言 在企業內部,開發者經常需要構建各種內部工具來支持業務運營、數據分析和系統管理。這些工具通常需要前端界面、后端邏輯和工作流編排,開發過程繁瑣且耗時。今天要介紹的Windmill項目,正是為解決這一痛點而生,它讓構建內部工具變得簡單高效,堪稱開發者的得力助手。 …

國產化Excel處理組件Spire.XLS教程:用 Java 獲取所有 Excel 工作表名稱(圖文詳解)

在 Excel 中&#xff0c;工作表名稱通常能夠反映其用途或所含內容&#xff0c;提取這些名稱有助于理清整個工作簿的結構。對于新用戶或協作者來說&#xff0c;僅憑這些名稱就能快速掌握各表中的數據類型。本文將演示如何使用 Java 獲取 Excel 文件中的所有工作表名稱&#xff0…

day49python打卡

知識點回顧&#xff1a; 通道注意力模塊復習空間注意力模塊CBAM的定義 最近臨近畢業&#xff0c;事情有點多。如果有之前的基礎的話&#xff0c;今天的難度相對較低。 后面說完幾種模塊提取特征的組合方式后&#xff0c;會提供整理的開源模塊的文件。 現在大家已近可以去讀這類…