← Quay lại danh sách bài viết
July 26, 2026
5 phút đọc

Arbitrage on-chain: chu kỳ nguyên tử, flash loan và cuộc đấu giá bạn phải thắng

Arbitrage on-chain: chu kỳ nguyên tử, flash loan và cuộc đấu giá bạn phải thắng
#arbitrage
#flash loans
#mev
#defi
#backrunning
#cex-dex
#ethereum
#atomicity

Có một quan niệm sai lầm phổ biến rằng giao dịch chênh lệch giá trên chuỗi là khó khăn vì việc tìm kiếm là khó khăn — rằng ở đâu đó trong biểu đồ giá có một chu kỳ ẩn mà chỉ thuật toán thông minh nhất mới có thể nhìn thấy, và ai tính toán nó nhanh nhất sẽ được trả tiền. Sự thật gần như ngược lại. Trên một chuỗi công khai, chu kỳ có lợi nhuận hiển thị cho mọi người cùng một lúc, được tính toán bởi hàng tá bot chạy mã gần như giống hệt nhau dựa trên cùng một nguồn dự trữ. Việc phát hiện là một vấn đề đã được giải quyết, đã trở thành hàng hóa. Điều khó khăn — điều thực sự quyết định ai nhận được tiền — là giành chiến thắng trong thứ tự: đưa giao dịch của bạn vào đúng vị trí của khối phù hợp, trước mọi trình tìm kiếm khác đã tìm thấy chính xác điều tương tự. Giao dịch chênh lệch giá trên chuỗi dễ dàng phát hiện và khó thắng, và khoảng cách giữa hai động từ đó là nơi toàn bộ nền kinh tế của hoạt động kinh doanh này tồn tại.

Bài viết này đứng về phía người tìm kiếm. Trong Giải phẫu MEV, chúng tôi đã lập bản đồ khu rừng tối từ góc nhìn của nạn nhân và hứa sẽ có một bài tiếp theo về việc trích xuất lành tính — giao dịch chênh lệch giá và chạy sau để giữ cho giá trên chuỗi trung thực. Trong Thanh lý trên chuỗi, chúng tôi đã xây dựng một hợp đồng thực thi khoản vay chớp nhoáng và một gói chạy sau của oracle và chỉ đến đây để xử lý chung về nguyên tắc cơ bản. Bài viết này thực hiện cả hai lời hứa. Nó giả định bạn đã biết mempool, gói và phí ưu tiên là gì; nếu không, hãy đọc bài viết MEV trước. Ở đây, chúng tôi xây dựng cỗ máy giao dịch chênh lệch giá: giao dịch nguyên tử không thể thua, vốn vay loại bỏ ràng buộc vốn, tìm kiếm đồ thị là nửa phần dễ dàng và cuộc đấu giá tiêu tốn gần như toàn bộ biên lợi nhuận.

Tính nguyên tử: giao dịch hoàn nguyên khi thua lỗ

Đặc tính xác định của giao dịch chênh lệch giá trên chuỗi — điều làm cho nó an toàn hơn về mặt phân loại so với bất kỳ giao dịch chéo sàn nào mà một nhà giao dịch CEX có thể thực hiện — là tính nguyên tử. Một giao dịch chênh lệch giá nhiều bước không phải là một chuỗi các giao dịch mà bạn thực hiện và hy vọng chúng khớp cùng nhau. Đó là một giao dịch duy nhất thực hiện mọi bước của chu kỳ, và nếu số dư cuối cùng không lớn hơn nghiêm ngặt số dư ban đầu, toàn bộ giao dịch sẽ hoàn nguyên: mọi thay đổi trạng thái được hoàn tác như thể nó chưa bao giờ xảy ra, và bạn chỉ mất phí gas cho một giao dịch thất bại.

Điều này thay đổi hoàn toàn hồ sơ rủi ro. Một nhà giao dịch CEX mua BTC trên một sàn giao dịch để bán trên sàn giao dịch khác sẽ giữ hàng tồn kho ở giữa — trong vài giây, vài phút, bất kể thời gian chuyển và lệnh khớp thứ hai mất bao lâu — và chịu mọi biến động giá trong khoảng thời gian đó. Nhà giao dịch chênh lệch giá trên chuỗi giữ hàng tồn kho trong thời gian bằng không theo bất kỳ nghĩa kinh tế có ý nghĩa nào: việc mua và bán là cùng một hoạt động không thể chia cắt. Không có rủi ro giá giữa chu kỳ vì không có giữa chu kỳ. Hoặc toàn bộ vòng lặp đóng lại có lợi nhuận trong một bước nguyên tử, hoặc nó không xảy ra.

Biện pháp bảo vệ thực thi điều này là một so sánh duy nhất ở cuối đường dẫn thực thi. Về mặt khái niệm, một hợp đồng giao dịch chênh lệch giá nguyên tử không làm gì nhiều hơn là:

// The whole cycle runs inside one transaction. If the closing balance
// does not clear the opening balance (plus costs), the require() throws,
// and the EVM reverts every trade that came before it.
function executeCycle(bytes calldata path, uint256 minProfit) external {
    uint256 start = IERC20(baseToken).balanceOf(address(this));

    _hopA(path);   // e.g. USDC -> WETH on Uniswap
    _hopB(path);   // e.g. WETH -> DAI  on Sushiswap
    _hopC(path);   // e.g. DAI  -> USDC on Curve

    uint256 end = IERC20(baseToken).balanceOf(address(this));
    require(end >= start + minProfit, "unprofitable");   // atomic safety net
}

require là toàn bộ mô hình an toàn. Một báo giá lỗi thời, một giao dịch cạnh tranh đã di chuyển pool một vị trí trước bạn, một khoản phí bất ngờ — bất cứ điều gì biến chu kỳ thành không có lợi nhuận sẽ đơn giản kích hoạt biện pháp bảo vệ và hoàn nguyên. Bạn không bao giờ bán chặng cuối cùng với mức giá tệ hơn bạn đã mô hình hóa và chịu lỗ; giao dịch lẽ ra sẽ thua lỗ sẽ không được thực hiện. Đây là lý do tại sao giao dịch chênh lệch giá là phần lành tính của phân loại MEV từ bài viết MEV: không có nạn nhân nào bị suy giảm lệnh khớp, và nhà giao dịch chênh lệch giá không mang rủi ro hàng tồn kho theo hướng. Chi phí thực sự duy nhất của một nỗ lực thất bại là phí gas — mà, như chúng ta sẽ thấy, chính là chi phí mà cuộc đấu giá cạnh tranh được thiết kế để thổi phồng.

Khoản vay chớp nhoáng loại bỏ ràng buộc vốn

Tính nguyên tử cho phép một điều mạnh mẽ hơn: giao dịch chênh lệch giá với không cần vốn của riêng bạn. Khoản vay chớp nhoáng cho phép bạn vay một số tiền tùy ý từ một pool cho vay với chỉ một điều kiện — bạn phải hoàn trả nó, cộng với một khoản phí, trước khi giao dịch kết thúc. Bởi vì việc vay, giao dịch chênh lệch giá và hoàn trả đều nằm trong một giao dịch nguyên tử duy nhất, pool không đối mặt với rủi ro vỡ nợ: nếu bạn không thể hoàn trả, toàn bộ giao dịch sẽ hoàn nguyên và khoản vay sẽ bị hủy bỏ. Người cho vay được bảo vệ bởi chính lệnh hoàn nguyên bảo vệ bạn.

Mẫu hình là một lời gọi lại. Bạn gọi hàm vay chớp nhoáng của pool; pool gửi cho bạn các token và sau đó gọi lại cho bạn; bên trong lời gọi lại đó, bạn chạy chu kỳ và phải để lại đủ để hoàn trả:

// Called by the lending pool in the middle of the flash loan.
function receiveFlashLoan(address token, uint256 amount, uint256 fee, bytes calldata data)
    external
{
    // 1. buy the asset cheap on venue A with the borrowed `amount`
    uint256 bought  = _swap(VENUE_A, token, ASSET, amount, data);
    // 2. sell it dear on venue B, back into the borrowed token
    uint256 repaidIn = _swap(VENUE_B, ASSET, token, bought, data);
    // 3. must be able to return principal + fee, or the whole tx reverts
    require(repaidIn >= amount + fee, "arb cannot cover loan");
    IERC20(token).transfer(msg.sender, amount + fee);   // repay in-tx
    // whatever remains — repaidIn - amount - fee — is profit, kept here
}

Phí này nhỏ và phụ thuộc vào sàn giao dịch: Aave v3 tính phí 5 bps (0,05%) cho khoản vay chớp nhoáng, Balancer trước đây tính phí 0 bps, và Uniswap v3 cung cấp khả năng tương tự thông qua hoán đổi chớp nhoáng nơi phí chỉ là phí hoán đổi thông thường của pool. Năm điểm cơ bản là một chi phí thực tế phải được thanh toán trong biên lợi nhuận của chu kỳ, nhưng nó không đáng kể so với việc phải ràng buộc sáu hoặc bảy con số hàng tồn kho của riêng bạn để nắm bắt sự sai lệch kéo dài một khối.

Hậu quả đối với cấu trúc thị trường đáng để nói rõ ràng: khoản vay chớp nhoáng tách rời lợi nhuận giao dịch chênh lệch giá khỏi vốn. Người chiến thắng của một cơ hội nhất định không phải là người tìm kiếm có bảng cân đối kế toán sâu nhất — một bot với vài đô la tiền phí gas có thể vay mười triệu đô la trong thời gian một giao dịch. Vốn không phải là rào cản. Mọi người đều có thể vay cùng một quy mô dựa trên cùng một cơ hội, đó chính xác là lý do tại sao sự cạnh tranh sụp đổ vào một thứ duy nhất không phải là hàng hóa: được xếp hạng trước.

Một chu kỳ chéo DEX đã được xử lý

Các con số làm cho cơ chế trở nên cụ thể. Lấy hai pool WETH/USDC có sản phẩm không đổi với phí 0,30% (γ=0.997\gamma = 0.997), và giả sử một lệnh mua lớn vừa đẩy pool B lên trên pool A — loại sai lệch mà phần tiếp theo cho thấy là nơi các chu kỳ thực sự đến. Sử dụng các khoản dự trữ tròn, dễ minh họa:

  • Nhóm A (rẻ): xA=10,000x_A = 10{,}000 WETH, yA=30,000,000y_A = 30{,}000{,}000 USDC \Rightarrow giá 3,0003{,}000 USDC/WETH.
  • Nhóm B (đắt): xB=10,000x_B = 10{,}000 WETH, yB=30,600,000y_B = 30{,}600{,}000 USDC \Rightarrow giá 3,0603{,}060 USDC/WETH.

Chu kỳ là: vay nhanh USDC, mua WETH giá rẻ ở A, bán giá đắt ở B, trả nợ. Vay ΔU=100,000\Delta U = 100{,}000 USDC. Bước 1 bán USDC vào nhóm A lấy WETH:

ΔW=xAγΔUyA+γΔU=10,000×99,70030,000,000+99,70033.12 WETH.\Delta W = \frac{x_A\,\gamma\,\Delta U}{y_A + \gamma\,\Delta U} = \frac{10{,}000 \times 99{,}700}{30{,}000{,}000 + 99{,}700} \approx 33.12 \text{ WETH}.

Bước 2 bán WETH đó vào nhóm B lấy USDC:

ΔUout=yBγΔWxB+γΔW=30,600,000×33.0210,000+33.02100,723 USDC.\Delta U_{\text{out}} = \frac{y_B\,\gamma\,\Delta W}{x_B + \gamma\,\Delta W} = \frac{30{,}600{,}000 \times 33.02}{10{,}000 + 33.02} \approx 100{,}723 \text{ USDC}.

Bạn đã vay 100.000, nhận được 100.723 và nợ phí vay nhanh 5 bps là 50 USDC. Lợi nhuận ròng: khoảng $673 lợi nhuận gộp trên vốn bỏ ra bằng không, trước phí gas và trước giá thầu ưu tiên. Có hai điểm cần lưu ý. Thứ nhất, hai bước di chuyển các nhóm hướng về nhau — mua ở A làm tăng giá của nó, bán ở B làm giảm giá của nó — do đó lợi nhuận không tuyến tính theo quy mô: đẩy quá nhiều và tác động giá sẽ ăn hết chênh lệch, giống như trong tối ưu hóa sandwich từ bài viết về MEV. Người tìm kiếm chạy tìm kiếm một chiều trên ΔU\Delta U để tìm quy mô vay tối đa hóa lợi nhuận ròng. Thứ hai, con số $673 đó là một con số xác định mà mọi bot cạnh tranh đều tính toán ra cùng một giá trị từ cùng một lượng dự trữ — đó là toàn bộ vấn đề, và là chủ đề của phần đấu giá bên dưới.

Một giao dịch kinh doanh chênh lệch giá nguyên tử: vay nhanh, mua trên sàn A, bán trên sàn B, trả nợ cộng phí, giữ phần còn lại — tất cả trong một giao dịch sẽ hoàn tác nếu thua lỗ

Phát hiện là nửa phần dễ

Cho thị trường dưới dạng đồ thị — tài sản là các nút, các cặp giao dịch là các cạnh có trọng số — một chu kỳ kinh doanh chênh lệch giá là một vòng lặp có tích các tỷ giá hối đoái vượt quá một. Lấy logarit của mỗi tỷ giá, phủ định nó, và một chu kỳ có lợi trở thành một chu kỳ trọng số âm; công cụ cổ điển để tìm một chu kỳ là Bellman-Ford, với SPFA và thuật toán RICH gần đây hơn là các biến thể nhanh hơn được điều chỉnh cho các đồ thị nhỏ, thay đổi nhanh mà thị trường thực tạo ra. Toàn bộ bộ công cụ đó — phép biến đổi logarit, điều kiện chu kỳ âm, các triển khai Rust, trọng số cạnh đã điều chỉnh phí làm mất hiệu lực hầu hết các chu kỳ lý thuyết — là chủ đề của thuật toán đồ thị để phát hiện kinh doanh chênh lệch giá, và không cần lặp lại ở đây.

Điều quan trọng đối với bài viết này là một điểm kế toán duy nhất: phí phải được đưa vào trọng số cạnh, hoặc chu kỳ đó chỉ là ảo ảnh. Một vòng ba chân phải trả ba phí nhóm cộng với, nếu bạn vay, phí vay nhanh, và bài kiểm tra chu kỳ âm phải nhìn thấy tất cả chúng:

from math import log

def cycle_log_gain(rates, pool_fee=0.003, loan_fee=0.0005):
    """Log-gain around a cycle. > 0 means gross profit before gas and priority bid.
    `rates[i]` = units of the next asset per unit of the current one on hop i."""
    gross = 1.0
    for r in rates:
        gross *= r * (1 - pool_fee)     # each hop pays the venue's swap fee
    gross *= (1 - loan_fee)             # one flash-loan fee for the whole cycle
    return log(gross)                    # still ignores gas and the auction bid

Đây là quan sát mang tính quyết định. Hàm đó là xác định. Cung cấp cho nó lượng dự trữ hiện tại trên chuỗi — mà mọi nút đều giữ giống hệt nhau, vì chuỗi là một máy trạng thái được chia sẻ, nhân bản — và mọi người tìm kiếm đều tính toán cycle_log_gain giống nhau ra cùng một giá trị tại cùng một độ cao khối. Không có tín hiệu riêng tư, không có tập dữ liệu độc quyền, không có lợi thế thông tin. Khi một giao dịch hoán đổi lớn hoặc một khối mới xáo trộn lượng dự trữ, hàng chục bot chạy mã phát hiện có cấu trúc giống hệt nhau đều sáng lên trên cùng một chu kỳ trong vòng mili giây với nhau. Tìm kiếm trả về cùng một câu trả lời cho mọi người.

Một lưu ý về cấu trúc tô pô, vì nó định hình mức độ khó khăn thực tế của việc tìm kiếm. Các chu kỳ rẻ nhất là tam giác và nội bộ DEX — WETH → USDC → DAI → WETH hoàn toàn trong một lần triển khai Uniswap: ba bước, ba phí nhóm, không cần phối hợp giữa các sàn. Các chu kỳ liên sàn DEX (mua trên Uniswap, bán trên Sushiswap) thêm các sàn nhưng giữ nguyên bộ bảo vệ nguyên tử. Các chu kỳ dài, kỳ lạ hơn nối thêm nhiều bước nữa — nhưng mỗi bước bổ sung nhân thêm một yếu tố (1fee)(1-\text{fee}) khác vào tích, do đó điều kiện chu kỳ âm đã điều chỉnh phí sẽ nhanh chóng loại bỏ các chu kỳ dài. Đây chính xác là lý do tại sao những người tìm kiếm thực tế giới hạn độ dài chu kỳ ở ba đến năm bước và cắt tỉa mạnh mẽ; đó là tìm kiếm phân lớp, giới hạn độ dài mà thuật toán RICH từ bài viết về thuật toán đồ thị được xây dựng để chạy.

Vì vậy, việc phát hiện không mang lại cho bạn giao dịch; nó chỉ đủ điều kiện cho bạn cạnh tranh để giành lấy nó. Bài kiểm tra log(gross) > 0 cho bạn biết một cơ hội tồn tại — nó không nói gì về việc bạn có phải là địa chỉ nắm bắt nó hay không. Điều đó được quyết định ở một lớp thấp hơn, trong thứ tự, và thứ tự không phải là thứ mà thuật toán của bạn tính toán. Đó là thứ bạn đặt giá cho. Mọi thứ khó khăn về kinh doanh chênh lệch giá trên chuỗi xảy ra sau khi tìm thấy chu kỳ.

Một đồ thị thị trường với các tài sản là nút và tỷ giá nhóm là cạnh; một chu kỳ trọng số âm được làm nổi bật được nhiều người tìm kiếm cạnh tranh tìm thấy giống hệt nhau tại cùng một khối

Backrunning: dạng MEV vô hại

Vậy các chu kỳ này đến từ đâu ngay từ đầu? Phần lớn là từ các giao dịch của người khác. Một giao dịch hoán đổi lớn trên một nhóm Uniswap làm dịch chuyển giá của nhóm đó ra khỏi thị trường chung; nhóm đó hiện bị định giá sai so với Binance, so với nhóm Curve, so với Sushiswap; và hành động điều chỉnh nó là một hoạt động kinh doanh chênh lệch giá có lợi. Người tìm kiếm thực hiện điều này đặt giao dịch của họ ngay sau giao dịch hoán đổi đã tạo ra sự mất cân bằng. Đây là backrunning, và nó là dạng MEV chiếm ưu thế, vô hại trên chuỗi.

Hãy nhớ lại cơ chế tích không đổi từ bài viết về MEV. Một nhóm giữ lượng dự trữ x,yx, y với xy=kx \cdot y = k và giá giao ngay P=y/xP = y/x. Ai đó bán một lượng lớn Δx\Delta x tài sản cơ sở vào đó; theo bất biến, nhóm sẽ trả ra

Δy=yγΔxx+γΔx,γ=0.997,\Delta y = \frac{y\,\gamma\,\Delta x}{x + \gamma\,\Delta x}, \qquad \gamma = 0.997,

và giá giao ngay mới thấp hơn — người bán đã đẩy nó xuống. Nếu giá thị trường bên ngoài vẫn là PextP_{\text{ext}}, thì pool hiện đang niêm yết dưới PextP_{\text{ext}}, và việc tối đa hóa lợi nhuận khi chạy ngược sẽ mua từ pool chính xác cho đến khi giá biên của nó tăng trở lại PextP_{\text{ext}} — tức là, cho đến khi dự trữ đáp ứng lại y/x=Pexty/x = P_{\text{ext}}. Nhà kinh doanh chênh lệch giá sẽ thu lợi từ khu vực giữa đường thực thi của pool và mức giá bên ngoài phẳng — giá trị mà giao dịch hoán đổi lớn đã bỏ lỡ bằng cách di chuyển pool.

Sự thật cấu trúc quan trọng — điều khiến việc chạy ngược trở nên có lợi — là việc chạy ngược thuần túy không làm suy giảm việc thực thi mục tiêu. Nó chạy nghiêm ngặt sau giao dịch của nạn nhân. Đến thời điểm việc chạy ngược được thực thi, giá của người giao dịch hoán đổi đã được khóa; không có gì người chạy ngược làm có thể quay lại và làm tệ hơn nó. Hãy so sánh điều này với sandwich độc hại từ bài viết về MEV, nơi một giao dịch chạy trước được chèn vào trước nạn nhân chính xác để làm tệ hơn mức điền của họ, để việc chạy ngược có thể thu lợi từ sự sai lệch đã được mở rộng. Cơ chế chạy ngược giống nhau, đạo đức đối lập: sandwich tạo ra sự định giá sai với chi phí của nạn nhân; việc chạy ngược có lợi chỉ đơn giản là khắc phục một sự định giá sai mà nạn nhân sẽ tạo ra dù sao đi nữa. Nhà kinh doanh chênh lệch giá là cơ chế mà qua đó giá trên chuỗi theo dõi thế giới bên ngoài — vai trò tương tự khiến chênh lệch giá giữa các sàn giao dịch trở thành một lực lượng ổn định ở mọi nơi trong tài chính.

Đây cũng là lý do tại sao ngăn xếp bảo vệ MEV hiện đại cố gắng bảo tồn và phân phối lại các giao dịch chạy ngược trong khi đàn áp các giao dịch sandwich. MEV-Share của Flashbots và các cuộc đấu giá luồng lệnh cho phép người dùng tiết lộ các gợi ý một phần về giao dịch của họ, mời người tìm kiếm đặt giá cho quyền chạy ngược giao dịch đó và hoàn lại phần lớn lợi nhuận thu được cho người dùng đã tạo ra cơ hội. Việc chạy ngược vẫn xảy ra — giá vẫn được điều chỉnh lại — nhưng giá trị chảy ngược về giao dịch đã tạo ra nó thay vì bị đánh cắp bởi bất kỳ ai nhanh nhất.

Chu kỳ đến từ đâu

Hầu hết mọi chu kỳ có lợi nhuận đều là hệ quả của một số sự kiện khác trên chuỗi đã di chuyển một mức giá. Biết nguồn gốc là sự khác biệt giữa việc thăm dò toàn bộ đồ thị một cách mù quáng và theo dõi một vài yếu tố kích hoạt thực sự tạo ra các cạnh:

  • Các giao dịch hoán đổi lớn. Nguồn gốc kinh điển, đã phân tích ở trên: bất kỳ giao dịch nào đủ lớn để di chuyển một pool ra khỏi thị trường chung sẽ mở ra một cơ hội chạy ngược để điều chỉnh lại nó. Giao dịch hoán đổi càng lớn và pool càng mỏng, chu kỳ càng lớn.
  • Cập nhật oracle. Mọi sàn giao dịch định giá dựa trên oracle — thị trường tiền tệ, DEX phái sinh — đều có thể kinh doanh chênh lệch giá ngay lập tức khi nguồn cấp dữ liệu thay đổi. Giao dịch chạy ngược cập nhật oracle thúc đẩy thanh lý, được phân tích trong bài viết về thanh lý, là sự di chuyển tương tự này áp dụng cho nguồn cấp dữ liệu giá thay vì giao dịch hoán đổi: việc cập nhật là phát súng lệnh, và người tìm kiếm xuất hiện ngay phía sau nó.
  • Thanh khoản mới hoặc đã bị xóa. Việc tạo hoặc đốt LP lớn làm thay đổi độ sâu của pool và có thể khiến nó tạm thời bị lệch giá; thanh khoản đúng lúc (JIT) là phiên bản đối nghịch, thêm thanh khoản xung quanh một giao dịch hoán đổi đang chờ xử lý và rút nó ngay sau đó.
  • Dư lượng định tuyến giữa các pool. Một bộ định tuyến chia giao dịch hoán đổi qua các pool hiếm khi để tất cả chúng ở cùng một mức giá chính xác, và sự mất cân bằng nhỏ mà nó để lại có thể được chạy ngược lại thành các chu kỳ.

Bài học thực tế: bot kinh doanh chênh lệch giá chủ yếu là một bộ lắng nghe sự kiện, không phải là một bộ giải đồ thị. Nó theo dõi các yếu tố kích hoạt này, tính toán lại chỉ phần đồ thị mà mỗi yếu tố chạm vào, và gửi một gói — đó là lý do tại sao thiết kế cập nhật gia tăng từ bài viết về thuật toán đồ thị quan trọng hơn nhiều so với tốc độ tìm kiếm thô trên toàn bộ đồ thị.

Một giao dịch hoán đổi lớn đẩy một pool xuống dưới giá thị trường bên ngoài; một giao dịch chạy ngược xuất hiện ngay sau đó và mua lại pool để điều chỉnh, thu lợi từ sự sai lệch mà không ảnh hưởng đến mức điền của người giao dịch hoán đổi

Cuộc đấu giá ăn hết biên lợi nhuận

Bây giờ là phần khó xử. Bạn đã tìm thấy chu kỳ. Những người khác cũng vậy. Cơ hội là xác định, nguyên tử và không cần vốn — điều đó có nghĩa là biến duy nhất còn lại là ai lọt vào vị trí thắng cuộc, và điều đó được quyết định bởi một cuộc đấu giá ưu tiên.

Kể từ khi chuyển đổi sang tách biệt người đề xuất-người xây dựng và MEV-Boost (cơ chế chi tiết trong chuỗi cung ứng MEV: PBS và MEV-Boost sắp tới), người tìm kiếm không còn phải cạnh tranh phí gas công khai trong mempool nữa. Họ gửi các gói tin riêng tư cho người xây dựng khối, kèm theo một khoản đặt cọc — hoặc dưới dạng phí ưu tiên cao hoặc thanh toán trực tiếp cho người xây dựng. Người xây dựng tập hợp khối có giá trị nhất có thể và chuyển tiếp nó cho người đề xuất. Từ góc độ của người tìm kiếm, đây là một cuộc đấu giá kín cho quyền trở thành địa chỉ thực thi một giải thưởng đã biết, xác định.

Hãy mô hình hóa nó. Gọi lợi nhuận chênh lệch giá gộp là GG — ví dụ, $673 từ chu kỳ đã phân tích ở trên — và gọi chi phí của mỗi người tìm kiếm (gas, phí flash-loan) là cc. Để giành được vị trí, bạn đặt giá bb so với mọi người tìm kiếm khác đã tính toán cùng GG. Lợi nhuận ròng của bạn nếu bạn thắng là

π=Gcb.\pi = G - c - b.

Bạn muốn bb càng thấp càng tốt; bạn cũng muốn thắng. Nhưng đối thủ cạnh tranh của bạn đối mặt với cùng một phép tính toán học với cùng một GG. Trong một cuộc đấu giá kín về một giải thưởng có giá trị chung mà mọi người đều có thể tính toán chính xác, mức đặt giá cân bằng sẽ tăng lên cho đến khi nó tiêu thụ gần như toàn bộ thặng dư: bGcεb \to G - c - \varepsilon, và người thắng chỉ giữ lại ε\varepsilon, biên lợi nhuận mỏng như dao cạo mà họ đã đặt giá cao hơn người về nhì. Khoản $673 đó không ở lại với bất kỳ ai tìm thấy chu kỳ; gần như tất cả nó được đặt giá thẳng đến người xây dựng và, cuối cùng, người đề xuất đã bán thứ tự đó. Đây không phải là thất bại của thị trường; đây là những gì một cuộc đấu giá cạnh tranh được cho là phải làm.

Việc hoàn tác không miễn phí — kinh tế học tỷ lệ thất bại

Có một chi phí thứ hai mà mô hình ngây thơ bỏ qua, và đó là chi phí thực sự phân biệt các nhà khai thác. Khi bạn thua cuộc đấu giá, gói của bạn đơn giản là không được thực hiện — bạn không phải trả tiền, đó là mục đích của việc gửi gói hàng thay vì các cuộc chiến gas công khai cũ. Nhưng khi bạn thắng cuộc đấu giá với một gói mà mô phỏng của bạn đã lỗi thời — các dự trữ đã thay đổi giữa lần đọc và lần đưa vào của bạn — bộ bảo vệ require(end >= start + minProfit) của bạn sẽ kích hoạt và giao dịch sẽ bị hoàn tác trên chuỗi, và bạn phải trả phí gas cho việc hoàn tác. Tính nguyên tử bảo vệ vốn gốc của bạn, không phải phí gas của bạn.

Vì vậy, giá trị kỳ vọng thực tế của người tìm kiếm trên mỗi cơ hội là

E[π]=pwin, profitable(Gcb)    pwin, revertedgrevert,\mathbb{E}[\pi] = p_{\text{win, profitable}}\,(G - c - b)\;-\;p_{\text{win, reverted}}\,g_{\text{revert}},

trong đó grevertg_{\text{revert}} là phí gas bị đốt cháy trên một gói hàng được thực hiện nhưng bị hoàn tác. Việc đẩy mức giá thầu bb của bạn cao hơn sẽ giành được nhiều vị trí hơn nhưng cũng giành được nhiều vị trí lỗi thời hơn, làm tăng số dư hoàn tác. Các nhà khai thác sống sót không phải là những người tìm thấy nhiều chu kỳ hơn — mọi người đều tìm thấy cùng các chu kỳ — mà là những người có cc thấp hơn (các đường dẫn thực thi rẻ hơn, chặt chẽ hơn), xác suất hoàn tác thấp hơn (mô phỏng mới hơn, dự đoán đưa vào tốt hơn) và kỷ luật để không đặt giá thầu cho các cơ hội biên, nơi chi phí hoàn tác kỳ vọng lấn át thặng dư mỏng. Lợi thế, nếu có, hoàn toàn nằm ở các chi phí bậc hai này.

Hình dạng thực nghiệm khớp với mô hình. Khi nhiều bot mô phỏng cùng một cơ hội trên chuỗi với cùng một con số lợi nhuận, gói hàng thắng cuộc thường chuyển phần lớn lợi nhuận gộp cho người xây dựng và người xác thực — cùng một khoản rò rỉ hơn 90% mà chúng tôi đã đo lường cho thanh lý, vì cùng một lý do: thông tin hoàn hảo về một giải thưởng chung cộng với đấu giá giá thầu kín bằng biên độ cạnh tranh xuống đến chi phí của người thua cuộc biên. Lợi thế của người tìm kiếm không phải là kích thước của GG, mà mọi người đều thấy. Đó là bất kỳ lợi thế riêng tư nào trong cc (thực thi rẻ hơn, định tuyến tốt hơn, tỷ lệ lỗi thấp hơn) hoặc trong việc nhìn thấy GG trước đám đông.

Điều này cho bạn biết chính xác nơi lợi nhuận vẫn còn tồn tại:

  • Các chuỗi đuôi dài và thị trường người xây dựng non trẻ. Trên các chuỗi mà ít người tìm kiếm tinh vi hoạt động và đấu giá người xây dựng mỏng hoặc vắng mặt, mức giá thầu bb vẫn thấp vì không có ai để bạn đặt giá thầu cao hơn. Cùng một chu kỳ mang lại ε\varepsilon trên Ethereum mainnet có thể mang lại phần lớn GG trên một L2 yên tĩnh hoặc một alt-L1. Lợi thế là sự cạnh tranh, không phải sự khéo léo.
  • Các nhóm có tính cạnh tranh thấp và tài sản kỳ lạ. Các cơ hội mà việc thoát có lợi nhuận đòi hỏi phải ăn thanh khoản DEX mỏng, phụ thuộc vào đường dẫn rất khó mô phỏng chính xác. Một người tìm kiếm mô hình hóa toàn bộ vòng khứ hồi — bao gồm cả trượt giá thoát trên một token không thanh khoản — sẽ nắm bắt các chu kỳ mà các bot ngây thơ bỏ lỡ hoặc định giá sai thành việc hoàn tác. Ở đây, lợi thế thực sự là chất lượng thực thi, không phải độ trễ.
  • Chênh lệch giá CEX-DEX. Danh mục lớn nhất — và là danh mục phá vỡ tính nguyên tử. Nó có phần riêng, tiếp theo.

Tóm tắt trung thực về trò chơi nguyên tử, trên chuỗi: đó là một cách tuyệt vời để tìm hiểu nội bộ EVM, hệ thống đường ống của người xây dựng và lý thuyết đấu giá theo cách khó khăn. Đó là một cách tàn khốc để kiếm sống, bởi vì thứ bạn đang bán — khả năng tìm và thực hiện một chu kỳ xác định — chính là thứ mà đối thủ cạnh tranh của bạn cũng đang bán, và cuộc đấu giá định giá nó ở mức chi phí.

Một cuộc đấu giá giá thầu kín: nhiều người tìm kiếm gửi các gói hàng cho cùng một giải thưởng xác định, giá thầu hội tụ về lợi nhuận gộp, và người xây dựng và người đề xuất chiếm gần như tất cả

Chênh lệch giá CEX-DEX: danh mục lớn nhất, và nó không nguyên tử

Nguồn giá trị có thể trích xuất lớn nhất trên chuỗi không phải là chu kỳ nguyên tử gọn gàng. Đó là chênh lệch giá CEX-DEX: giá của một tài sản trên một sàn giao dịch tập trung khác với giá của nó trên một DEX, và một người tìm kiếm giao dịch cả hai phía để thu hẹp khoảng cách. Các nghiên cứu về chênh lệch giá không nguyên tử — trực tiếp nhất là Non-Atomic Arbitrage in Decentralized Finance (2024) của Heimbach, Pahari và Schertenleib — quy cho khoảng hàng trăm triệu đô la giá trị được trích xuất cho các nhà kinh doanh chênh lệch giá chéo sàn giao dịch trong một khoảng thời gian nhiều năm, vượt quá các danh mục nguyên tử, hoàn toàn trên chuỗi. Nếu bạn muốn hiểu tiền trong MEV thực sự ở đâu, thì đây chính là nó.

Và nó vi phạm thuộc tính đã làm cho mọi thứ trên an toàn. Một chân của giao dịch nằm trên một sàn giao dịch tập trung; chân kia nằm trên chuỗi. Chân trên chuỗi là nguyên tử — nó hoặc được đưa vào một khối hoặc bị hoàn tác — nhưng chân CEX là một lệnh riêng trên một công cụ khớp lệnh riêng, được thanh toán theo dòng thời gian riêng của nó. Hai chân không thể được gói gọn trong một lần hoàn tác duy nhất. Không có require(end >= start) nào bao trùm cả hai địa điểm. Người tìm kiếm chạy ngược lại một giao dịch hoán đổi trên Uniswap để mua WETH giá rẻ trên chuỗi, và riêng biệt bán WETH trên Binance để hiện thực hóa chênh lệch — và giữa hai sự kiện này, giá có thể thay đổi. Chênh lệch giá CEX-DEX mang rủi ro tồn kho mà chênh lệch giá nguyên tử loại bỏ.

Rủi ro đó làm thay đổi toàn bộ hình dạng của hoạt động kinh doanh:

  • Bạn phải đặt trước hàng tồn kho trên cả hai sàn giao dịch. Bạn không thể vay chớp nhoáng cho chân giao dịch CEX. Để bán WETH trên Binance ngay khi giao dịch mua trên chuỗi của bạn được xác nhận, bạn phải sở hữu WETH trên Binance (và tiền tệ yết giá trên chuỗi, và ngược lại cho chiều kia). Vốn, thứ mà khoản vay chớp nhoáng đã loại bỏ khỏi giao dịch kinh doanh chênh lệch giá tức thời, lại quay trở lại như một yêu cầu bắt buộc — hàng tồn kho nằm trên nhiều sàn giao dịch, có rủi ro.
  • Bạn phải phòng ngừa chân giao dịch mở. Giữa việc khớp lệnh trên chuỗi và khớp lệnh CEX, bạn đang có vị thế mua hoặc bán ròng theo hướng tài sản. Các nhà điều hành CEX-DEX nghiêm túc vận hành điều này như một sổ lệnh được quản lý delta liên tục: họ phòng ngừa rủi ro trên hợp đồng tương lai vĩnh cửu, coi chi phí tài trợ của khoản phòng ngừa đó là chi phí kinh doanh và quản lý chênh lệch giá giữa giao ngay và hợp đồng tương lai. Đây không phải là một vấn đề mới — nó chính xác là cơ chế của giao dịch kinh doanh chênh lệch lãi suất tài trợ chéo, nơi toàn bộ trò chơi là nắm giữ các chân giao dịch bù trừ trên các sàn giao dịch và tài trợ cho khoản phòng ngừa thông qua lãi suất tài trợ. Giao dịch kinh doanh chênh lệch giá CEX-DEX là kỷ luật đó với một chân giao dịch bị ghim vào một khối.
  • Lợi thế một phần là thông tin và cấu trúc. Bởi vì giá CEX dẫn trước giá DEX (sổ lệnh tập trung cập nhật liên tục; báo giá AMM chỉ thay đổi khi có người giao dịch), một người tìm kiếm đọc sổ lệnh CEX sẽ biết hướng mà lần chạy lại tiếp theo nên đi trước khi giá trên chuỗi bắt kịp. Và ngày càng có nhiều, chính những người xây dựng nội bộ hóa luồng này: một người xây dựng cũng điều hành một bàn giao dịch CEX-DEX có thể đặt khối xung quanh các giao dịch của riêng họ. Điều này làm mờ ranh giới giữa người tìm kiếm và người xây dựng và là một trong những lực lượng tập trung hóa trong chuỗi cung ứng MEV — các thực thể nhìn thấy nhiều luồng lệnh nhất và kiểm soát việc đặt lệnh nhiều nhất cũng thu được nhiều giao dịch kinh doanh chênh lệch giá không tức thời nhất.

Vì vậy, sự đánh đổi hoàn toàn đảo ngược so với trường hợp tức thời. Giao dịch kinh doanh chênh lệch giá tức thời là an toàn (hoàn tác khi thua lỗ, không có hàng tồn kho, không có vốn) nhưng cạnh tranh khốc liệt (giải thưởng xác định, đấu giá chiếm hết biên lợi nhuận). Giao dịch kinh doanh chênh lệch giá CEX-DEX là nguy hiểm (rủi ro hàng tồn kho thực tế, vốn thực tế, khoản phòng ngừa để tài trợ và quản lý) nhưng lớn hơn nhiều và ít bị tranh chấp hoàn hảo hơn, chính xác vì sự nguy hiểm và yêu cầu vốn giữ chân các bot chỉ có thể chạy vòng lặp tức thời không rủi ro. Lợi nhuận bổ sung là sự bù đắp cho rủi ro bổ sung — đó là sự thật thông thường nhất trong tài chính, cuối cùng đã khẳng định lại chính nó trên một chuỗi đã dành cả một phần để giả vờ rằng tiền không có rủi ro đang có sẵn.

Điểm cần rút ra

Nén lập luận vào các điểm chịu lực của nó:

  1. Tính tức thời là toàn bộ mô hình an toàn. Giao dịch kinh doanh chênh lệch giá đa bước là một giao dịch với một bộ bảo vệ require(end >= start + minProfit); bất cứ điều gì khiến nó không có lãi sẽ hoàn tác, do đó nhà kinh doanh chênh lệch giá không bao giờ nắm giữ rủi ro hàng tồn kho giữa chu kỳ và không bao giờ bán chân cuối cùng với giá lỗ.
  2. Khoản vay chớp nhoáng tách rời lợi nhuận khỏi vốn. Vay, kinh doanh chênh lệch giá và hoàn trả trong một giao dịch tức thời; người cho vay được bảo vệ bởi cùng một cơ chế hoàn tác như bạn. Người chiến thắng không phải là người tìm kiếm có nhiều vốn nhất — vốn không phải là rào cản.
  3. Phát hiện là nửa dễ dàng, được hàng hóa hóa. Việc tìm kiếm chu kỳ âm của thuật toán đồ thị cho giao dịch kinh doanh chênh lệch giá là xác định và giống nhau cho mọi người; việc tìm thấy chu kỳ chỉ đủ điều kiện cho bạn cạnh tranh cho nó.
  4. Chạy lại là hình thức chiếm ưu thế, vô hại. Hạ cánh ngay sau một giao dịch hoán đổi lớn hoặc một cập nhật oracle sẽ sắp xếp lại một pool bị định giá sai mà không làm giảm chất lượng khớp lệnh của bất kỳ ai — trái ngược với việc chèn bánh sandwich độc hại, và thứ mà MEV-Share cố gắng phân phối lại thay vì đàn áp.
  5. Đấu giá chiếm gần như toàn bộ biên lợi nhuận. Trong một cuộc đấu giá người xây dựng theo giá thầu kín trên một giải thưởng chung, có thể tính toán được, giá thầu hội tụ về GcεG - c - \varepsilon và hơn 90% rò rỉ cho người xây dựng và người đề xuất. Lợi nhuận chỉ tồn tại ở những nơi cạnh tranh mỏng: các chuỗi đuôi dài, các pool kém thanh khoản và các lối thoát khó mô phỏng hơn.
  6. CEX-DEX là danh mục lớn nhất và nó không tức thời. Một chân giao dịch trên CEX có nghĩa là rủi ro hàng tồn kho thực tế, vốn thực tế và khoản phòng ngừa để tài trợ — bảng kế hoạch tài trợ chéo sàn được áp dụng với một chân giao dịch bị ghim vào một khối, và một trong những lực lượng kéo chuỗi cung ứng MEV về phía những người xây dựng nhìn thấy nhiều luồng nhất.

Giao dịch kinh doanh chênh lệch giá trên chuỗi, nhìn từ bên ngoài, giống như một câu đố về việc tìm kiếm các chu kỳ ẩn. Từ bên trong, đó là một cuộc đấu giá — và câu đố đã được giải cho mọi người cùng một lúc. Biết chu kỳ ở đâu chưa bao giờ là lợi thế. Giành được vị trí, hoặc giao dịch ở nơi không ai khác đang đặt giá, luôn luôn là vậy.

Tài liệu tham khảo

  • Daian, Goldfeder, Kell, Li, Zhao, Bentov, Breidenbach, Juels (2019), Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges. arXiv:1904.05234.
  • Heimbach, Pahari, Schertenleib (2024), Non-Atomic Arbitrage in Decentralized Finance. arXiv:2401.01622 (IEEE S&P 2024).
  • Robinson & Konstantopoulos (2020), Ethereum is a Dark Forest.
  • Tài liệu về khoản vay chớp nhoáng Aave v3 và Balancer / Uniswap v3 (lịch phí).
  • Tài liệu Flashbots: MEV-Boost, MEV-Share, đấu giá luồng lệnh (docs.flashbots.net).
Tuyên bố miễn trừ trách nhiệm: Thông tin được cung cấp trong bài viết này chỉ nhằm mục đích giáo dục và thông tin, không cấu thành lời khuyên về tài chính, đầu tư hoặc giao dịch. Giao dịch tiền mã hóa tiềm ẩn rủi ro thua lỗ đáng kể.

Tác Giả

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Đi Trước Thị Trường

Đăng ký nhận bản tin của chúng tôi để có những thông tin chuyên sâu độc quyền về AI trading, phân tích thị trường và các cập nhật nền tảng.

Chúng tôi tôn trọng quyền riêng tư của bạn. Hủy đăng ký bất kỳ lúc nào.