← กลับไปยังบทความ
July 19, 2026
อ่าน 5 นาที

การชำระบัญชีแบบ on-chain: กลไกของ Aave และ Compound และธุรกิจบอทที่อยู่รอบตัวมัน

การชำระบัญชีแบบ on-chain: กลไกของ Aave และ Compound และธุรกิจบอทที่อยู่รอบตัวมัน
#defi
#การชำระบัญชี
#aave
#compound
#mev
#chainlink
#flash loans
#คริปโต

การชำระบัญชี (liquidation) บน Aave คือข้อเสนอสาธารณะที่เปิดอยู่ตลอดเวลา: ชำระหนี้แทนคนอื่นแล้วรับหลักประกันของเขาในราคาส่วนลด 5–15% ข้อเสนอนี้ถูกเขียนไว้ในสัญญาที่เปลี่ยนแปลงไม่ได้ ไม่ต้องขออนุญาต ไม่ต้อง KYC ไม่ต้องมีความสัมพันธ์ใดๆ กับโปรโตคอล — เพียงแค่เป็นแอดเดรสแรกที่เรียก liquidationCall() ในบล็อกที่ตำแหน่งนั้นข้ามเส้น นี่คือการแข่งขันที่บริสุทธิ์ที่สุดในคริปโต: รางวัลรู้แน่ชัดถึงหน่วยเซนต์ ตัวกระตุ้นสามารถคาดการณ์ได้ (เป็นส่วนใหญ่) และคำถามเดียวคือโครงสร้างพื้นฐานของคุณจะไปถึงก่อนคนอื่นหรือไม่

บทความนี้จะผ่าโครงสร้างของเครื่องจักรนี้ตั้งแต่ต้นจนจบ: สูตรคำนวณที่แม่นยำว่าตำแหน่งจะกลายเป็นที่ถูกชำระบัญชีได้เมื่อไร ทำไมกลไกของ Chainlink oracle จึงทำให้การชำระบัญชี คาดการณ์ได้ แทนที่จะเป็นเพียงปฏิกิริยาตอบสนอง บอทชำระบัญชีที่แข่งขันได้จริงๆ ประกอบด้วยอะไรบ้าง และทำไมเศรษฐศาสตร์ของการแข่งขันนี้จึงถูกบีบอัดจนกำไรส่วนใหญ่รั่วไหลไปยัง block builder — และเพิ่มมากขึ้นเรื่อยๆ กลับคืนไปยังตัวโปรโตคอลเอง ในตอนท้ายเราจะเปรียบเทียบกับการชำระบัญชีบน perp-DEX (GMX, Hyperliquid) ซึ่งดูคล้ายกันเผินๆ แต่เป็นเกมที่แตกต่างไปโดยสิ้นเชิง

กลไก: health factor, threshold, bonus

LTV เทียบกับ liquidation threshold

สินทรัพย์หลักประกันทุกตัวบน Aave v3 มีพารามิเตอร์ความเสี่ยงที่แตกต่างกันสองตัว และการสับสนระหว่างสองค่านี้เป็นความผิดพลาดที่ผู้กู้ทำบ่อยที่สุด:

  • LTV (loan-to-value) — จำนวนสูงสุดที่คุณสามารถ กู้ โดยใช้สินทรัพย์นั้นเป็นหลักประกันตั้งแต่ต้น สำหรับ WETH บน Aave v3 mainnet อยู่ที่ประมาณ 80%
  • Liquidation threshold — ระดับหลักประกันที่ตำแหน่งจะกลาย เป็นที่ชำระบัญชีได้ สำหรับ WETH อยู่ที่ประมาณ 83%

ช่องว่างระหว่างสองค่านี้คือบัฟเฟอร์ที่ตั้งใจไว้: คุณไม่สามารถเปิดตำแหน่งที่ถูกชำระบัญชีได้ทันที แต่บัฟเฟอร์นี้บางมาก — ราคาที่เคลื่อนไหวในทิศทางลบเพียงไม่กี่เปอร์เซ็นต์ก็แยก "กู้เต็มเพดาน" ออกจาก "พร้อมให้ยึด"

Health factor รวมทุกอย่างเป็นตัวเลขเดียว:

HF=iCiPiLTijDjPjHF = \frac{\sum_i C_i \cdot P_i \cdot LT_i}{\sum_j D_j \cdot P_j}

โดยที่ CiC_i คือจำนวนหลักประกันสินทรัพย์ ii, PiP_i คือราคาจาก oracle, LTiLT_i คือ liquidation threshold ของสินทรัพย์นั้น และ DjPjD_j \cdot P_j คือมูลค่าของหนี้แต่ละตำแหน่ง เมื่อ HF<1HF < 1 ใครก็สามารถชำระบัญชีได้ ไม่มีช่วงผ่อนผัน ไม่มี margin call ไม่มีการแจ้งเตือน เงื่อนไขนี้ถูกประเมินแบบ lazy — ไม่มีอะไรเกิดขึ้น จนกว่า จะมีใครเรียกฟังก์ชันนี้

แถบ health factor: โซนปลอดภัยเหนือ HF 1, การชำระบัญชีบางส่วนระหว่าง 0.95 ถึง 1, การชำระบัญชีทั้งหมดต่ำกว่า 0.95

Close factor และ liquidation bonus

มีอีกสองพารามิเตอร์ที่กำหนดว่าผู้ชำระบัญชีจะได้รับอะไร:

  • Close factor — สัดส่วนของหนี้ที่การชำระบัญชีครั้งเดียวสามารถชำระได้ ค่าเริ่มต้นของ Aave v3 คือ 50% ตั้งแต่ Aave v3.3 เป็นต้นมา close factor จะกระโดดเป็น 100% เมื่อ HF<0.95HF < 0.95 (ค่า CLOSE_FACTOR_HF_THRESHOLD) หรือเมื่อหลักประกันหรือหนี้ของตำแหน่งนั้นต่ำกว่า dust threshold (ประมาณ 2,000 ดอลลาร์) — ตำแหน่งเล็กๆ ไม่คุ้มค่าที่จะทำธุรกรรมสองครั้ง และเศษที่เหลือ (dust) จะสร้างปัญหาการบันทึกบัญชีหนี้เสีย
  • Liquidation bonus (หรือเรียกว่า liquidation penalty ขึ้นอยู่กับว่าคุณอยู่ฝั่งไหน) — ส่วนลดที่ผู้ชำระบัญชีใช้ซื้อหลักประกัน บน Aave นี่คือ ส่วนต่างคงที่ ที่กำหนดต่อสินทรัพย์โดย governance: ประมาณ 5% สำหรับ WETH และสเตเบิลคอยน์หลัก สูงถึง 10–15% สำหรับหลักประกัน long-tail ที่ผันผวนสูง

Compound v2 ทำงานในลักษณะเดียวกันแต่ด้วยค่าคงที่ที่ต่างกัน: liquidateBorrow() ด้วย close factor 50% และ liquidation incentive 8% (cToken หลักประกันที่ถูกยึดมีมูลค่า 1.08 เท่าของหนี้ที่ชำระ) ส่วน Compound v3 (Comet) ออกแบบขั้นตอนใหม่เป็นสองขั้นตอน: absorb() ดึงตำแหน่งที่ underwater เข้ามาสู่งบดุลของโปรโตคอลเอง (หนี้ถูกกระจาย socialize เข้าสู่ reserves หลักประกันกลายเป็นทรัพย์สินของโปรโตคอล) และ buyCollateral() ให้ใครก็ได้ซื้อหลักประกันนั้นจากโปรโตคอลในราคาส่วนลดที่กำหนดโดย governance จ่ายด้วยสินทรัพย์ฐาน ในทางปฏิบัติผู้ชำระบัญชีจะเรียกทั้งสองฟังก์ชันในธุรกรรมเดียว — absorb เองไม่จ่ายอะไรเลย กำไรทั้งหมดอยู่ที่ buyCollateral ที่มีส่วนลด

ตัวอย่างตำแหน่งจริง ชำระบัญชีทีละขั้นตอน

ลองใช้พารามิเตอร์ WETH ของ Aave v3 ที่เป็นตัวแทน: LTV 80%, liquidation threshold 83%, liquidation bonus 5%

ตั้งค่าเริ่มต้น คุณฝาก WETH 10 หน่วยที่ราคา 3,000 ดอลลาร์ (หลักประกัน 30,000 ดอลลาร์) และกู้ USDC 20,000

HF=30,000×0.8320,000=1.245HF = \frac{30{,}000 \times 0.83}{20{,}000} = 1.245

ราคาที่ทำให้ถูกชำระบัญชี HF=1HF = 1 เมื่อมูลค่าหลักประกันลดลงเหลือ 20,000/0.83=24,09620{,}000 / 0.83 = 24{,}096 ดอลลาร์ นั่นคือ ETH ที่ราคา 2,410 ดอลลาร์ — ลดลง 19.7% ฟังดูปลอดภัย แต่จริงๆ แล้วไม่ เพราะ ETH ร่วง 20% เป็นเรื่องปกติแทบทุกวัน

การร่วงของราคา ETH แสดงราคา 2,350 ดอลลาร์บน oracle ตอนนี้หลักประกันมีมูลค่า 23,500 ดอลลาร์:

HF=23,500×0.8320,000=0.975HF = \frac{23{,}500 \times 0.83}{20{,}000} = 0.975

เนื่องจาก 0.95<HF<10.95 < HF < 1 close factor 50% จึงมีผลบังคับใช้ ผู้ชำระบัญชีชำระหนี้ 10,000 USDC และยึดหลักประกันมูลค่า 10,000×1.05=10,50010{,}000 \times 1.05 = 10{,}500 ดอลลาร์ตามราคา oracle:

10,5002,350=4.468 WETH\frac{10{,}500}{2{,}350} = 4.468 \text{ WETH}

กำไรขาดทุนของผู้ชำระบัญชี พวกเขาจ่าย 10,000 ดอลลาร์และได้รับ ETH มูลค่า 10,500 ดอลลาร์: กำไรขั้นต้น 500 ดอลลาร์จากการเรียกฟังก์ชันเพียงครั้งเดียว ก่อนหักค่า gas ค่าใช้จ่ายในการสวอปเพื่อออกจาก ETH และ — สำคัญที่สุด — ก่อนหักสิ่งที่พวกเขาต้องประมูลเพื่อชนะการแข่งขัน (จะพูดถึงต่อไป)

กำไรขาดทุนของคุณ หนี้ลดลงเหลือ 10,000 ดอลลาร์ หลักประกันลดลงเหลือ 5.532 WETH (13,000 ดอลลาร์) health factor ใหม่:

HF=13,000×0.8310,000=1.079HF = \frac{13{,}000 \times 0.83}{10{,}000} = 1.079

สังเกตข้อเท็จจริงที่ไม่สบายใจสองอย่าง ประการแรก คุณจ่าย 500 ดอลลาร์เพื่อสิทธิ์ในการลดเลเวอเรจแบบบังคับ — bonus นี้มาจากส่วนทุนของคุณทั้งหมด ประการที่สอง HF ใหม่ที่ 1.079 นั้นแทบจะอยู่เหนือน้ำเพียงเล็กน้อยเท่านั้น: ETH ร่วงอีกเพียง 7% ก็จะกระตุ้นการชำระบัญชีอีกครั้งกับครึ่งที่เหลือ การชำระบัญชีแบบส่วนต่างคงที่ฟื้นฟูความสามารถในการชำระหนี้ ไม่ใช่ความปลอดภัย รูปแบบ "ชำระบัญชีครึ่งหนึ่ง ยังเปราะบาง ถูกชำระบัญชีอีกครั้ง" นี้คือโครงสร้างจุลภาคที่อยู่เบื้องหลังพลวัตของการล้มเป็นทอด (cascade) ซึ่งเราครอบคลุมไว้ในบทความคู่กันเรื่อง liquidation cascade ในฐานะสัญญาณเทรด

ตัวกระตุ้น: การชำระบัญชีคาดการณ์ได้ ไม่ใช่แค่ปฏิกิริยาตอบสนอง

นี่คือส่วนที่แยกคนที่เข้าใจธุรกิจนี้ออกจากคนที่ไม่เข้าใจ: บน Aave และ Compound ตำแหน่งจะไม่กลายเป็นที่ชำระบัญชีได้เมื่อราคาตลาดเคลื่อนไหว แต่จะกลายเป็นที่ชำระบัญชีได้เมื่อ oracle อัปเดต

ทั้งสองโปรโตคอลอ่านราคาจาก Chainlink data feeds Chainlink feed บน Ethereum mainnet จะส่งราคาใหม่เข้าสู่ on-chain เมื่อเงื่อนไขใดเงื่อนไขหนึ่งในสองข้อนี้เกิดขึ้น:

  • Deviation threshold — ราคาที่รวบรวมนอกเชน (off-chain aggregated price) เคลื่อนไหวมากกว่าเปอร์เซ็นต์ที่กำหนดจากค่า on-chain ล่าสุด: 0.5% สำหรับ ETH/USD บน mainnet, 1–2% สำหรับ feed ขนาดเล็กส่วนใหญ่
  • Heartbeat — ช่วงเวลาสูงสุด (3,600 วินาทีสำหรับ ETH/USD) ที่หลังจากนั้นจะมีการอัปเดตเกิดขึ้นไม่ว่าจะมี deviation หรือไม่

สิ่งนี้ส่งผลลึกซึ้ง ระหว่างการอัปเดตแต่ละครั้ง ราคาบน on-chain จะ เก่าโดยธรรมชาติของโครงสร้าง หาก ETH บน Binance ร่วงลง 0.6% ในขณะที่ feed บนเชนยังแสดงราคาเก่าอยู่ ผู้เล่นที่มีความซับซ้อนทุกคนจะรู้ว่าธุรกรรมอัปเดต oracle กำลังจะมาถึง รู้ว่าราคาใหม่จะเป็นเท่าไร (โดยประมาณ) และสามารถคำนวณ — ก่อนที่การอัปเดตจะเกิดขึ้นจริง — ได้อย่างแม่นยำว่าตำแหน่งไหนจะข้าม HF<1HF < 1 ในทันทีที่มันเกิดขึ้น

ไทม์ไลน์แสดงราคานอกเชนที่ข้าม deviation threshold, การอัปเดต oracle ที่รอดำเนินการ, และการชำระบัญชีที่ถูกดำเนินการในบล็อกเดียวกันกับการอัปเดต

กลยุทธ์ที่ครองตลาดจึงไม่ใช่ "เฝ้าดู health factor แล้วตอบสนอง" แต่คือ backrun การอัปเดต oracle: สร้าง bundle ที่ liquidationCall() ของคุณดำเนินการทันทีหลังธุรกรรม transmit ของ Chainlink ในบล็อกเดียวกัน การอัปเดต oracle คือปืนสตาร์ท และทุกคนสามารถเห็นผู้ปล่อยปืนกำลังยกปืนขึ้น กลไกของ bundle — การส่งแบบส่วนตัวไปยัง block builder, การรับประกันลำดับแบบ atomic — คือเครื่องจักรเดียวกับที่เราครอบคลุมไว้ในบทความเรื่อง sandwich attack และ mempool frontrunning การชำระบัญชีเป็นเพียงการใช้งานที่ถูกต้องตามกฎหมายที่สุดของมัน

มีข้อปรับปรุงสองอย่างที่สำคัญในทางปฏิบัติ:

  1. คุณไม่จำเป็นต้องเห็นธุรกรรม transmit ใน mempool ด้วยซ้ำ เนื่องจากการรวบรวมราคานอกเชนสามารถสังเกตได้ (คุณสามารถรันการคำนวณราคาแบบเดียวกันจาก feed ของ CEX) คุณสามารถคาดการณ์ได้ว่าการอัปเดต จะต้อง เกิดขึ้นเมื่อ deviation เกินกว่า threshold และสร้าง bundle ล่วงหน้าสำหรับทั้งเส้นทางราคาขึ้นและเส้นทางราคาลง
  2. การอัปเดตแบบ heartbeat คือเหตุการณ์สภาพคล่องที่กำหนดตารางไว้แล้ว หาก feed ไม่ได้ deviate 0.5% ในหนึ่งชั่วโมง การอัปเดตก็จะเกิดขึ้นอยู่ดี — และหากราคาเลื่อนไป 0.4% สวนทางกับกำแพงของตำแหน่งที่รวมกลุ่มอยู่ใกล้ HF=1HF = 1 heartbeat ที่ "ไม่เป็นอันตราย" นั้นก็คือตัวกระตุ้น ผู้ดำเนินการที่แข่งขันจะติดตามเวลาตั้งแต่การอัปเดตครั้งล่าสุดต่อ feed เป็นสัญญาณระดับต้น

ความสามารถในการคาดการณ์นี้ก็เป็นเหตุผลที่ในที่สุดโปรโตคอลต่างๆ ย้ายไปเรียกคืนมูลค่ากลับมา ในเดือนมีนาคม 2025 Aave ได้ผนวก Chainlink SVR (Smart Value Recapture) เข้ามา: การอัปเดต oracle สำหรับ feed ที่เข้าร่วมจะถูกส่งผ่าน Flashbots MEV-Share สิทธิ์ในการ backrun การอัปเดตเหล่านั้นจะถูกประมูล และผู้ชนะการประมูลจะถูกแบ่งระหว่าง Aave DAO (65%) และ Chainlink (35%) แทนที่จะรั่วไหลทั้งหมดไปยัง searcher และ builder ภายในไม่กี่เดือน ระบบนี้ได้ ประมวลผลการชำระบัญชีมูลค่ากว่า 32 ล้านดอลลาร์และเรียกคืนมูลค่ากว่า 1.1 ล้านดอลลาร์ โดยจับมูลค่า MEV จากการชำระบัญชีที่เข้าเงื่อนไขได้มากกว่า 80% อ่านสิ่งนี้ในฐานะราคาตลาด: การแข่งขันแบบเปิดกลายเป็นมีประสิทธิภาพมากจนโปรโตคอลสามารถประมูลเส้นชัยได้เอง

การสร้างบอท: สี่ระบบย่อย

บอทชำระบัญชีที่แข่งขันได้ไม่ใช่แค่สคริปต์ มันคือโครงสร้างพื้นฐานระดับบริษัทเทรดขนาดเล็ก ประกอบด้วยสี่ระบบย่อย แต่ละอันเรียบง่ายในตัวเอง แต่ทั้งหมดรวมกันแล้วมีความสำคัญต่อ latency อย่างยิ่ง

สถาปัตยกรรมของบอทชำระบัญชี: indexer, ตัวติดตาม health พร้อมการจำลอง oracle, สัญญาการดำเนินการด้วย flash loan, การส่ง bundle ไปยัง builder

1. การจัดทำดัชนีตำแหน่ง (Position indexing)

คุณต้องมีชุดข้อมูลครบถ้วนของผู้กู้และยอดคงเหลือของพวกเขา ที่อัปเดตแบบเรียลไทม์ จุดเริ่มต้นคือการ backfill event — ทุก Supply, Borrow, Repay, Withdraw, LiquidationCall ตั้งแต่โปรโตคอลถูก deploy — พับรวมเข้าเป็นยอดคงเหลือปัจจุบันต่อผู้ใช้ จากนั้นรักษาให้เป็นข้อมูลสดผ่านการสมัครสมาชิก websocket สำหรับ log ใหม่ ฟังก์ชัน getUserAccountData(address) ของ Aave คืนค่า health factor โดยตรง แต่การเรียกมันต่อผู้ใช้ต่อบล็อกสำหรับผู้กู้กว่า 100,000 รายนั้นเป็นไปไม่ได้เลย ผู้ดำเนินการที่จริงจังจะทำซ้ำการบัญชีของโปรโตคอลในเครื่องของตัวเอง (รวมถึงสูตรคำนวณดัชนีอัตราดอกเบี้ย เนื่องจากหนี้เติบโตทุกวินาที) และสงวนการเรียก RPC ไว้สำหรับการตรวจสอบเท่านั้น

2. การติดตาม health factor พร้อมการจำลอง oracle

ลูปหลักไม่ใช่ "คำนวณ HF ที่ราคา oracle ปัจจุบัน" แต่คือ "คำนวณ HF ที่ราคาที่ oracle กำลังจะ เผยแพร่":

def liquidatable_at(positions, feed, candidate_price):
    """Positions that cross HF < 1 if `feed` updates to candidate_price."""
    out = []
    for pos in positions.borrowers_exposed_to(feed):
        hf = pos.health_factor(price_override={feed: candidate_price})
        if hf < 1.0:
            close_factor = 1.0 if hf < 0.95 else 0.5
            repay = pos.debt_value * close_factor
            seized = repay * (1 + pos.liq_bonus)
            gross = seized - repay          # the prize, pre-costs
            out.append((pos, repay, gross))
    return sorted(out, key=lambda x: -x[2])

deviation = abs(offchain_px - onchain_px) / onchain_px
if deviation > FEED_DEVIATION_THRESHOLD * 0.8:   # update imminent
    targets = liquidatable_at(positions, feed, offchain_px)
    for pos, repay, gross in targets:
        prepare_bundle(pos, repay, max_bid=gross - costs(pos))

การจัดเรียงตำแหน่งตามความใกล้เคียงกับ HF=1HF = 1 (priority queue ที่ใช้ราคาซึ่งจะกระตุ้นแต่ละตำแหน่งเป็นคีย์) ช่วยให้ชุดข้อมูล "ร้อน" มีขนาดเล็ก ปัจจัย 0.8 คือหัวใจของเกมทั้งหมด: คุณต้องการให้ bundle ถูกสร้างและส่งออกไป ก่อน ที่การอัปเดตจะเกิดขึ้นแน่นอน ไม่ใช่หลังจากนั้น

3. การดำเนินการที่ได้รับทุนจาก flash loan

คุณไม่จำเป็นต้องมีเงินทุนเพื่อชำระบัญชี — คุณต้องการมันเพียงประมาณ 200 มิลลิวินาทีของเวลาบล็อก สัญญาการดำเนินการมาตรฐานจะทำสิ่งต่อไปนี้แบบ atomic:

  1. ยืม flash loan ของสินทรัพย์หนี้ (Balancer ที่ 0 bps หรือ Aave เองที่ประมาณ 5 bps — พื้นฐานเดียวกับที่เราสร้างขึ้นใน arbitrage แบบ atomic ด้วย flash loan)
  2. เรียก liquidationCall(collateral, debtAsset, user, repayAmount, false) — พารามิเตอร์ false หมายถึงรับหลักประกันที่เป็นสินทรัพย์พื้นฐานแทนที่จะเป็น aToken
  3. สวอปหลักประกันที่ยึดมากลับเป็นสินทรัพย์หนี้บนแพลตฟอร์มที่ให้ราคาดีที่สุด (Uniswap v3 / v4, เส้นทางของ 1inch หรือการ fill แบบส่วนตัว)
  4. ชำระคืน flash loan ส่วนที่เหลือคือกำไร ซึ่งตรวจสอบด้วย require(profit >= minProfit) เพื่อให้การจำลองที่ล้าสมัยเกิด revert แทนที่จะดำเนินการแล้วขาดทุน

ขั้นตอนการสวอปคือจุดที่บอทที่ไม่รอบคอบตายลง: การยึดหลักประกันมูลค่า 10,500 ดอลลาร์ของโทเคน long-tail หมายถึงการต้องกินสภาพคล่อง DEX ของมัน และ price impact ตอนออกอาจเกินกว่า liquidation bonus ผู้ดำเนินการที่แข่งขันจะจำลองการเดินทางแบบไปกลับทั้งหมด — รวมถึงการสวอปขาออก — และข้ามการชำระบัญชีที่ สุทธิ แล้วขาดทุน หรือถือหลักประกันไว้แล้วทำการเฮดจ์บน perp แทนที่จะเทขายในตลาดทันที

4. การส่ง bundle

ธุรกรรมสุดท้ายจะไม่เข้าใกล้ mempool สาธารณะเลย มันถูกส่งเป็น bundle ไปยัง block builder (หรือเข้าสู่การประมูล SVR/OEV ในกรณีที่เกี่ยวข้อง) โดยระบุว่า: "วางการชำระบัญชีของฉันทันทีหลังจากธุรกรรม oracle transmit นี้ นี่คือทิปของฉัน" ทิปนี้คือการประมูลของคุณในการประมูลแบบ all-pay-nothing-if-you-lose ที่แข่งกับบอทอื่นทุกตัวที่รันการจำลองแบบเดียวกัน ซึ่งนำเราไปสู่เศรษฐศาสตร์ที่ไม่สบายใจ

การแข่งขัน: bonus นั้นไปอยู่ที่ไหนจริงๆ

เกณฑ์อ้างอิงทางวิชาการคือ Qin, Zhou, Gamito, Jovanovic และ Gervais, "An Empirical Study of DeFi Liquidations: Incentives, Risks, and Instabilities" (2021) ซึ่งวัดธุรกิจนี้ข้าม Aave, Compound, MakerDAO และ dYdX ตั้งแต่เดือนเมษายน 2019 ถึงเมษายน 2021: การชำระบัญชี 28,138 ครั้ง รวมมูลค่า 807 ล้านดอลลาร์ โดยมีกำไรรวมของผู้ชำระบัญชี 63.6 ล้านดอลลาร์ งานวิจัยนี้ยังบันทึกความไม่มีประสิทธิภาพเชิงโครงสร้างของการชำระบัญชีแบบส่วนต่างคงที่ไว้ด้วย — ส่วนลดเป็นเครื่องมือที่หยาบซึ่งมักลงโทษผู้กู้เกินกว่าที่การประมูลจะเรียกเก็บ — และแสดงให้เห็นว่าผู้ชำระบัญชีทิ้งเงินจำนวนมากไว้บนโต๊ะด้วยกลยุทธ์ที่ไร้เดียงสา

กำไรในยุคนั้นจะไม่ถูกทำซ้ำอีก ด้วยเหตุผลสามประการที่ประกอบกัน:

การประมูล gas กลายเป็นการประมูล builder ในปี 2019–2020 ผู้ชำระบัญชีแข่งขันกันใน priority-gas auction ใน mempool แบบเปิด ผู้ชนะจ่าย gas เกินราคา ผู้แพ้ก็ revert และส่วนที่มีนัยสำคัญของ bonus ยังคงอยู่กับผู้ชำระบัญชี หลังยุค MEV-Boost การแข่งขันเกิดขึ้นในการประมูล builder แบบปิดผนึก เมื่อบอท N ตัวจำลองโอกาสเดียวกันแบบดีเทอร์มินิสติกไปสู่ตัวเลขกำไรเดียวกัน การประมูลจะบรรจบไปที่รางวัลเต็มจำนวน: bundle ที่ชนะมักจะให้ทิป 90% ขึ้นไปของกำไรขั้นต้นแก่ builder/validator ความได้เปรียบของผู้ชำระบัญชีจึงยุบลงเหลือแค่ใครก็ตามที่มีราคาทางออก (exit pricing) ดีกว่าเล็กน้อย ต้นทุนต่ำกว่าเล็กน้อย หรือโอกาสที่คนอื่นมองข้าม

Oracle backrun ครองตลาด และกำลังถูกปิดล้อม เนื่องจากการชำระบัญชีในตลาดเงินเกือบทั้งหมดถูกกระตุ้นโดยการอัปเดต oracle พื้นที่กลยุทธ์ที่ทำกำไรได้จึงยุบตัวลงเหลือจุดเดียว: ชนะช่องเวลาทันทีหลังจาก transmit กลไกแบบ SVR ทำให้สิ่งนี้เป็นทางการ — โปรโตคอลประมูลช่องเวลานั้นและเก็บรายได้ส่วนใหญ่ไว้เอง ส่วนแบ่งของ searcher หดตัวจาก "bonus ลบด้วย gas" เหลือเป็น "อัตรากำไรของผู้ชนะการประมูล" ซึ่งการประมูลแข่งขันผลักดันให้เข้าใกล้ศูนย์

หางยาว (long tail) คือสิ่งที่เหลืออยู่ ช่องทางที่สมจริงสำหรับผู้เล่นใหม่ในปี 2026 คือ: เชนและ L2 ที่ตลาด builder ยังไม่เติบโตเต็มที่ ฟอร์กของโปรโตคอลกู้ยืมแบบ long-tail ที่มีพารามิเตอร์ bonus ตั้งราคาผิดและมีบอทแข่งขันน้อย ตำแหน่งที่มีหลักประกันแปลกๆ ซึ่งการจำลองสวอปทางออกยากอย่างแท้จริง (ความได้เปรียบมาจากการดำเนินการที่ดีกว่า ไม่ใช่ latency ที่ต่ำกว่า) และเหตุการณ์ตึงเครียด เมื่อ gas พุ่งสูงและ RPC ล้มเหลวจนผู้ดำเนินการชายขอบหลุดออกจากระบบ — Black Thursday ของ MakerDAO (มีนาคม 2020) เมื่อการประมูลราคาศูนย์ทำให้ผู้ชำระบัญชีสามารถอ้างสิทธิ์หลักประกันมูลค่า 8.3 ล้านดอลลาร์แทบจะฟรี เพราะไม่มีโครงสร้างพื้นฐานของใครอื่นทำงานได้ ยังคงเป็นตัวอย่างมาตรฐานที่แสดงว่าการแข่งขันจ่ายผลตอบแทนดีที่สุดในช่วงเวลาที่ยากที่สุดที่จะรันมันได้พอดี

การประเมินความคาดหวังที่ตรงไปตรงมา: นี่คือธุรกิจที่มีต้นทุนคงที่จริง (โหนด ความสัมพันธ์กับ builder การติดตามข้าม deployment นับสิบ) ที่แข่งขันกันเพื่อรางวัลที่ถูกหักส่วนแบ่งไปมากแล้ว มันเป็นวิธีที่ดีในการเรียนรู้เกี่ยวกับกลไกภายในของ EVM, oracle และระบบท่อส่ง MEV มากกว่าที่คอร์สไหนๆ จะสอนคุณได้ แต่มันเป็นวิธีที่ยากในการหาเลี้ยงชีพ

การชำระบัญชีบน perp-DEX: คำเดียวกัน เกมที่ต่างกัน

Perpetual DEX ก็ "ชำระบัญชี" เช่นกัน และตัวเลขหลักก็ใหญ่กว่า — แต่กลไก และดังนั้นโอกาส มีโครงสร้างที่แตกต่างกัน

GMX (v2): ตำแหน่งเทรดกับพูลสภาพคล่องที่ราคา oracle (Chainlink low-latency Data Streams) การชำระบัญชีเกิดขึ้นเมื่อหลักประกันลบด้วยการขาดทุนและค่าธรรมเนียมตกลงต่ำกว่าข้อกำหนด maintenance และดำเนินการโดย keeper — โครงสร้างพื้นฐานที่กำหนดไว้ล่วงหน้าซึ่งทำงานบนราคาที่ลงนามโดย oracle ไม่ใช่การแข่งขันแบบเปิด ไม่มีฟังก์ชันสาธารณะที่จ่าย bonus 5% ให้ใครก็ตามที่เรียกก่อน หลักประกันที่เหลือจะไหลเข้าสู่พูลตามกฎของโปรโตคอล จากมุมมองของ searcher ไม่มีอะไรให้ชนะเลย

Hyperliquid: การชำระบัญชีทำงานภายในเอนจินจับคู่คำสั่งของ L1 เอง เมื่อ equity ของบัญชีลดลงต่ำกว่า maintenance margin (ประเมินที่ราคากลาง mark price ที่ผสมจาก feed ของ CEX และ order book โดยเจตนาเพื่อต้านทานเกม oracle ที่กล่าวไว้ข้างต้น) เอนจินจะส่ง คำสั่งตลาดชำระบัญชีเข้าสู่ order book — ตำแหน่งขนาดใหญ่จะถูกแบ่งเป็นก้อนย่อยเพื่อจำกัด impact หาก equity ยังคงลดลงต่ำกว่าสองในสามของ maintenance margin ตำแหน่งนั้นจะถูกเข้าครอบครองที่ราคา mark price โดย backstop liquidator vault ซึ่งเป็นกลยุทธ์หนึ่งภายใน HLP ซึ่งเป็น vault ทำตลาดที่ชุมชนเป็นเจ้าของของโปรโตคอล โดยมี auto-deleveraging เป็นชั้นสุดท้าย กำไรขาดทุนจากการชำระบัญชีจะสะสมเข้าสู่ผู้ฝากเงินใน HLP — "กำไรของผู้ชำระบัญชี" ถูกกระจาย socialize เข้าสู่ vault ที่ใครก็เข้าร่วมได้ ไม่ใช่การแข่งขันต่อเหตุการณ์

ผลที่ตามมาสำหรับเทรดเดอร์: ในตลาดเงิน เกมคือ การเป็นผู้ชำระบัญชี — การแข่งขันด้านโครงสร้างพื้นฐานเพื่อส่วนต่างคงที่ ใน perp DEX บทบาทของผู้ชำระบัญชีถูกปิด ดังนั้นเกมจึงเปลี่ยนไปเป็น การเทรดรอบๆ การชำระบัญชี: ราคาที่จะถูกชำระบัญชีสามารถคำนวณได้จากตำแหน่งที่เปิดอยู่ กระแสการซื้อขายแบบบังคับกระทบ order book ที่มองเห็นได้ และระดับการชำระบัญชีที่รวมกลุ่มกันกลายเป็นทั้งแม่เหล็กและแหล่งเชื้อเพลิงสำหรับการเคลื่อนไหวของราคา นี่คือตรรกะเดียวกับที่ทำให้ liquidation cascade บน CEX สามารถเทรดได้ — พลวัตที่เราแตะไว้ใน funding rate ฆ่าเลเวอเรจของคุณ (ต้นทุนของเลเวอเรจคือสิ่งที่ผลักตำแหน่งไปสู่หน้าผา) และใน กลไก pump-and-dump ของ shitcoin (การผลักดันที่ออกแบบมาเข้าสู่กลุ่มการชำระบัญชี) การวิเคราะห์เต็มรูปแบบของ cascade ในฐานะ สัญญาณ — การตรวจจับการก่อตัว การวัดเชื้อเพลิงของมัน การเทรด overshoot — คือหัวข้อของบทความถัดไปในซีรีส์นี้

สิ่งที่ควรจดจำ

การชำระบัญชีในตลาดเงินเป็นมุมที่หายากของคริปโตที่ทุกอย่างอ่านออกได้ชัดเจน: เงื่อนไขตัวกระตุ้นคือสูตร รางวัลคือค่าคงที่ที่กำหนดโดย governance ปืนสตาร์ทคือธุรกรรม oracle ที่คุณสามารถเห็นล่วงหน้าได้ ความชัดเจนนี้เคยสร้างธุรกิจที่เปิดกว้างอย่างแท้จริงในปี 2019–2021 และจากนั้น — ด้วยเหตุผลเดียวกันคือทุกอย่างชัดเจน — การแข่งขันก็กดราคาความได้เปรียบลงจนเหลือแค่คุณภาพของโครงสร้างพื้นฐาน แล้วประมูลส่วนที่เหลือคืนกลับไปยังโปรโตคอล กลไกนี้ยังคงเป็นความรู้ที่จำเป็น: หากคุณกู้ยืมแบบ on-chain สูตรนี้คือโมเดลความเสี่ยงของคุณ หากคุณเทรดรอบๆ กระแสการซื้อขายแบบบังคับ จังหวะของ oracle และ close factor จะบอกคุณว่าเมื่อไรและเท่าไร และหากคุณจะสร้างบอทอยู่ดี อย่างน้อยก็สร้างมันโดยรู้ว่าเงินไปอยู่ที่ไหนจริงๆ

ข้อจำกัดความรับผิดชอบ: ข้อมูลที่ให้ไว้ในบทความนี้มีไว้เพื่อการศึกษาและให้ข้อมูลเท่านั้น และไม่ถือเป็นคำแนะนำทางการเงิน การลงทุน หรือการเทรด การเทรดสกุลเงินดิจิทัลมีความเสี่ยงสูงที่จะขาดทุน

ผู้เขียน

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

ก้าวนำหน้าตลาด

สมัครรับจดหมายข่าวของเราเพื่อรับข้อมูลเชิงลึกการเทรดด้วย AI เฉพาะ การวิเคราะห์ตลาด และการอัปเดตแพลตฟอร์ม

เราเคารพความเป็นส่วนตัวของคุณ ยกเลิกการสมัครได้ทุกเมื่อ