オンチェーン・リクイデーション:AaveとCompoundのメカニズム、そしてその周辺で回るボットビジネス
Aaveにおけるリクイデーション(清算)とは、常時公開されているオファーだ——他人の負債を肩代わりして返済し、その担保を5〜15%割引で受け取る。このオファーはイミュータブルなコントラクトに書き込まれており、許可もKYCもプロトコルとの関係も一切不要。必要なのはただ、ポジションが境界線を越えたブロックで最初にliquidationCall()を呼ぶアドレスになることだけだ。これは暗号資産の世界で最も純粋なレースと言える。賞金はセント単位まで確定しており、トリガーは(おおむね)予測可能で、唯一の問題は自分のインフラが他の誰よりも先にそこへ到達できるかどうかだけだ。
この記事ではこの仕組みを端から端まで解剖する。ポジションがリクイデーション可能になる条件を定義する正確な数式、Chainlinkのオラクルのメカニズムがなぜリクイデーションを「反応的」ではなく「予測可能」にするのか、競争力のあるリクイデーションボットが実際には何で構成されているのか、そしてなぜこのレースの経済性が圧縮され、ボーナスの大半がブロックビルダーへ——そしてますますプロトコル自身へと——流出するようになったのかを見ていく。最後に、表面上は似ているが全く異なるゲームであるパーペチュアルDEX(GMX、Hyperliquid)のリクイデーションと対比する。
メカニズム:ヘルスファクター、閾値、ボーナス
LTV対リクイデーション閾値
Aave v3上のすべての担保資産には2つの異なるリスクパラメータがあり、これを混同することが借り手が最もよく犯す間違いだ。
- LTV(loan-to-value、担保掛目) — 組成時にその資産を担保として借り入れられる上限。Aave v3のメインネット上のWETHではおよそ80%。
- リクイデーション閾値 — ポジションがリクイデーション可能になる担保化水準。WETHの場合、およそ83%。
この両者の差は意図的なバッファーだ。つまり、開設した瞬間に即リクイデーションされるようなポジションは組めない仕組みになっている。しかしこのバッファーは薄く、わずか数パーセントの逆行価格変動が「限界まで借りている」状態と「誰かに奪われる」状態を分けている。
ヘルスファクターはすべてを1つの数値に集約する。
ここで は担保資産 の量、 はそのオラクル価格、 はそのリクイデーション閾値、 は各負債ポジションの価値である。 になれば、誰でもリクイデーションを実行できる。猶予期間もマージンコールも通知も存在しない。この条件は遅延評価される——誰かがその関数を呼び出すまでは何も起こらない。

クローズファクターとリクイデーションボーナス
リクイデーターが手にするものを決めるパラメータがさらに2つある。
- クローズファクター — 1回のリクイデーションで返済できる負債の割合。Aave v3のデフォルトは50%。Aave v3.3以降、(
CLOSE_FACTOR_HF_THRESHOLD)の場合、またはポジションの担保もしくは負債がダスト閾値(約2,000ドル)を下回る場合には、クローズファクターは100%に跳ね上がる。小さなポジションに2回のトランザクションをかける価値はなく、残ったダストは不良債権の会計処理上の問題を生むためだ。 - リクイデーションボーナス(どちら側から見るかによってリクイデーションペナルティとも呼ばれる) — リクイデーターが担保を購入する際の割引率。Aaveではこれは資産ごとにガバナンスが設定する固定スプレッドであり、WETHや主要ステーブルコインではおよそ5%、ボラティリティの高いロングテール担保では10〜15%に達する。
Compound v2も同様の仕組みで、定数だけが異なる。liquidateBorrow()はクローズファクター50%、リクイデーションインセンティブ8%(差し押さえられるcToken担保は返済された負債の1.08倍の価値を持つ)。Compound v3(Comet)はフローを2段階に再設計した。absorb()は債務超過ポジションをプロトコル自身のバランスシートに引き取り(負債は準備金に社会化され、担保はプロトコルの所有物になる)、buyCollateral()は誰でもその担保をガバナンスが設定した割引率でベース資産建てで購入できるようにする。実際にはリクイデーターは両方を1つのトランザクションで呼び出す——absorb自体は何も支払わず、利益はすべて割引されたbuyCollateralの中にある。
具体的なポジションを段階的にリクイデーションしてみる
Aave v3のWETHの代表的なパラメータを使う。LTV 80%、リクイデーション閾値83%、リクイデーションボーナス5%。
セットアップ。 3,000ドルのWETHを10枚(担保30,000ドル)デポジットし、20,000 USDCを借り入れる。
リクイデーション価格。 担保価値が 、つまりETHが2,410ドルまで下落した時点で になる——19.7%の下落だ。一見安全に思える。しかしそうではない、ETHにとって20%の下落は朝飯前だからだ。
下落。 オラクル上でETHが2,350ドルを記録する。担保は現在23,500ドル。
なので、50%のクローズファクターが適用される。リクイデーターはあなたの負債のうち10,000 USDCを返済し、オラクル価格で 相当の担保を差し押さえる。
リクイデーターの損益。 10,000ドルを支払い、10,500ドル相当のETHを受け取った。関数呼び出し1回で総利益500ドル——ガス代、ETHを手放すためのスワップコスト、そして決定的に、レースに勝つために入札しなければならなかった金額(詳しくは後述)を差し引く前の数字だ。
あなたの損益。 負債は10,000ドルまで減り、担保は5.532 WETH(13,000ドル)まで減少。新しいヘルスファクター。
ここで2つの不都合な事実に注意してほしい。第一に、あなたは強制デレバレッジの「特権」に500ドルを支払った——このボーナスはすべてあなたの持分から出ている。第二に、新しいHF 1.079はぎりぎり水面上にあるにすぎない。ETHがさらに7%下落すれば、残り半分に対して再びリクイデーションがトリガーされる。固定スプレッド方式のリクイデーションが回復させるのは支払い能力であって、安全性ではない。この「半分リクイデーション、それでも脆弱、また清算される」というパターンこそが、カスケードダイナミクスの背後にあるミクロ構造であり、これについては姉妹記事の取引シグナルとしてのリクイデーションカスケードで扱っている。
トリガー:リクイデーションは反応的ではなく予測可能
ここが、このビジネスを理解している人とそうでない人を分けるポイントだ。AaveとCompoundでは、市場価格が動いたときにポジションがリクイデーション可能になるわけではない。オラクルが更新されたときにリクイデーション可能になる。
両プロトコルとも価格をChainlinkのデータフィードから読み取る。イーサリアムのメインネット上のChainlinkフィードは、次の2条件のいずれかが発火したときに新しいオンチェーン価格をプッシュする。
- 偏差閾値 — オフチェーンで集計された価格が、直近のオンチェーン値から一定の割合以上動いた場合。メインネットのETH/USDでは0.5%、ほとんどの小規模フィードでは1〜2%。
- ハートビート — 偏差の有無にかかわらず更新がプッシュされる最大間隔(ETH/USDでは3,600秒)。
これには重大な帰結がある。更新と更新の間、オンチェーンの価格は構造的に古くなっている。オンチェーンフィードがまだ古い価格を示している間にBinanceのETHが0.6%下落したとすると、洗練されたプレイヤーは皆、オラクル更新トランザクションが来ることを知っており、新しい価格が(おおよそ)いくらになるかを知っており、そのアップデートが着地する前に、 を突破するのがどのポジションかを正確に計算できる。

したがって支配的な戦略は「ヘルスファクターを監視して反応する」ではなく、オラクル更新をバックランすることだ。すなわち、Chainlinkのトランスミット・トランザクションの直後、同一ブロック内でliquidationCall()が実行されるバンドルを構築する。オラクル更新はスタートの号砲であり、誰もがスターターがピストルを構えているのを見ることができる。バンドルのメカニズム——ブロックビルダーへの秘匿送信、アトミックな順序保証——は、サンドイッチ攻撃とメンプールでのフロントランニングの記事で扱ったのと同じ仕組みであり、リクイデーションは単にその最も正当な使い方にすぎない。
実務上重要な工夫が2つある。
- メンプール内でトランスミットを見る必要すらない。 オフチェーンの集計値は観測可能なので(CEXのフィードから同じ価格計算を自分で走らせられる)、偏差が閾値を超えれば更新が必ず発火することを予測でき、価格が上に動く場合と下に動く場合の両方のバンドルを事前に構築しておける。
- ハートビート更新はスケジュール済みの流動性イベントだ。 あるフィードが1時間0.5%も偏差していなければ、それでも更新は着地する——そして価格が0.4%動いていて、 付近にポジションの壁が密集していれば、その「無害な」ハートビートがトリガーになる。競争力のある運用者はフィードごとの前回更新からの経過時間を第一級のシグナルとして追跡している。
この予測可能性は、プロトコル側がやがてこの価値を取り戻そうとした理由でもある。2025年3月、AaveはChainlink SVR(Smart Value Recapture)を統合した。参加フィードのオラクル更新はFlashbots MEV-Shareを通じてルーティングされ、それをバックランする権利がオークションにかけられ、落札額はAave DAO(65%)とChainlink(35%)で分配される——サーチャーやビルダーに完全に流出するのではなく。数ヶ月のうちにこのシステムは3,200万ドル超のリクイデーションを処理し、110万ドル超を回収し、対象となるリクイデーションMEVの80%以上を捕捉した。これは市場価格として読み解くべきだ。すなわち、公開レースがあまりに効率化されたため、プロトコルがフィニッシュラインそのものをオークションにかけられるようになったということだ。
ボットを構築する:4つのサブシステム
競争力のあるリクイデーションボットはスクリプトではない。それは小さなトレーディングファーム1社分に相当するインフラだ。4つのサブシステムがあり、それぞれは単体では単純だが、全体としてはレイテンシが命取りになる。

1. ポジションのインデックス化
借り手全員とその残高のフルセットをリアルタイムで維持する必要がある。ブートストラップはイベントのバックフィルだ——プロトコルのデプロイ以降のすべてのSupply、Borrow、Repay、Withdraw、LiquidationCallをユーザーごとの現在残高に畳み込み、その後は新しいログへのウェブソケット購読でライブに維持する。AaveのgetUserAccountData(address)はヘルスファクターを直接返すが、10万人を超える借り手に対してブロックごと・ユーザーごとにこれを呼び出すのは絶望的だ。本気で取り組む運用者はプロトコルの会計処理をローカルで再現し(負債は毎秒増加するため、金利インデックスの計算も含めて)、RPC呼び出しは検証用に温存する。
2. オラクルシミュレーションを伴うヘルスファクター監視
コアループは「現在のオラクル価格でHFを計算する」ではない。「オラクルがまさに公開しようとしている価格でHFを計算する」ことだ。
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))
ポジションを への近さでソートする(各ポジションをトリガーする価格をキーにした優先度付きキュー)ことで、注視すべき集合を小さく保てる。0.8という係数がゲームの全てだ。更新が確実になった後ではなく、確実になる前にバンドルを構築し送信しておきたい。
3. フラッシュローンによる資金調達での実行
リクイデーションに資本は不要だ——必要なのはブロックタイムのおよそ200ミリ秒だけである。定番の実行コントラクトはアトミックに次を行う。
- 負債資産をフラッシュボローする(Balancerなら0bps、Aave自体なら約5bps——フラッシュローンを使ったアトミック・アービトラージで組み立てたのと同じプリミティブ)。
liquidationCall(collateral, debtAsset, user, repayAmount, false)を呼び出す——falseはaTokenではなく原資産としての担保を受け取ることを意味する。- 差し押さえた担保を、最も良いレートを提示する場所(Uniswap v3/v4、1inchのルート、あるいはプライベートフィル)でデット資産へスワップし直す。
- フラッシュローンを返済する。残りが利益であり、
require(profit >= minProfit)で検証されるため、古くなったシミュレーションは損失で実行される代わりにリバートする。
雑なボットが死ぬのはスワップの部分だ。ロングテールトークンを10,500ドル分差し押さえるということは、そのDEX流動性を食い尽くすことを意味し、出口時の価格インパクトがリクイデーションボーナスを上回ることもある。競争力のある運用者は出口スワップを含めたラウンドトリップ全体をシミュレーションし、ネットがマイナスになるリクイデーションはスキップするか、あるいは担保を保有してパーペチュアルでヘッジし、成行で市場に投げ売りしない。
4. バンドル送信
最終的なトランザクションはパブリックなメンプールには一切近づかない。ブロックビルダー(該当する場合はSVR/OEVオークション)へバンドルとして送信され、こう述べる。「このオラクルのトランスミットの直後に私のリクイデーションを配置してほしい。これがチップだ」。このチップは、同じシミュレーションを走らせた他のすべてのボットに対する、「負ければ何も支払わない」全額支払い型オークションでの入札に相当する。ここから、この経済性が持つ居心地の悪い側面に話が及ぶ。
競争:ボーナスは実際どこへ行くのか
学術的なベースラインとなるのがQin, Zhou, Gamito, Jovanovic, Gervais「An Empirical Study of DeFi Liquidations: Incentives, Risks, and Instabilities」(2021)で、2019年4月から2021年4月までのAave、Compound、MakerDAO、dYdXにまたがるこのビジネスを計測した。28,138件のリクイデーション、総額8.07億ドル、リクイデーターの総利益は6,360万ドル。この論文はまた、固定スプレッド方式のリクイデーションが持つ構造的な非効率性——この割引はオークションが課すであろう水準に比べて借り手を過剰にペナルティする鈍器であること——を文書化し、素朴な戦略を取るリクイデーターが測定可能なほどの金額をテーブルの上に残していたことも示した。
その時代の利益は繰り返されない。理由は3つ、それぞれが複合的に作用している。
ガスオークションはビルダーオークションへと変わった。 2019〜2020年、リクイデーターは公開メンプールでのプライオリティ・ガスオークションで競い合った。勝者はガスを過払いし、敗者はリバートし、ボーナスのかなりの部分がリクイデーターの手元に残った。MEV-Boost以降、競争は封印されたビルダーオークションの中で行われる。N個のボットが同じ決定論的な機会を同じ利益額までシミュレーションすると、入札は賞金の全額に向かって収斂する。勝ちバンドルは総利益の90%以上をビルダー/バリデーターにチップとして渡すのが常態化している。リクイデーターの取り分は、出口価格がわずかに優れている者、コストがわずかに低い者、あるいは他が見逃した機会を見つけた者の取り分にまで縮小する。
オラクルのバックランが支配的になり、それも囲い込まれつつある。 マネーマーケットのリクイデーションのほぼすべてがオラクル更新によってトリガーされる以上、収益機会の空間は1点に収束した——トランスミット直後のスロットを勝ち取ることだ。SVR型の仕組みはこれを制度化する。プロトコルがそのスロットをオークションにかけ、収益の大半を保持する。サーチャーの取り分は「ボーナスからガスを引いたもの」から「オークション落札者のマージン」へと縮小し、競争的な入札によってそれはゼロへと押し下げられる。
残されているのはロングテールだ。 2026年における新規参入者にとって現実的なニッチは以下だ。ビルダー市場がまだ未成熟なチェーンやL2、ボーナスパラメータの価格付けが誤っておりボットの競合が少ないロングテールのレンディングフォーク、出口スワップのシミュレーションが本当に難しいエキゾチックな担保を持つポジション(レイテンシではなく実行の巧拙で優位に立てる)、そしてストレスイベント——ガスが急騰しRPCが障害を起こして限界的な運用者が脱落する場面だ。MakerDAOのブラックサーズデー(2020年3月)では、ゼロ入札のオークションによってリクイデーターが実質無料で830万ドル相当の担保を手にすることができた。他の誰のインフラも機能していなかったからだ。これは、このレースが最も運用しにくいときにこそ最も稼げるという、正典的な事例であり続けている。
正直な期待値を測るなら、これはもはやリアルな固定費(ノード、ビルダーとの関係、十数個のデプロイメントにまたがる監視)を抱えたビジネスであり、大幅にリベートされた賞金プールを奪い合っている。EVMの内部構造、オラクル、MEVの配管について、どんなコースよりも多くを学べる優れた手段ではある。しかし、それで生計を立てるのは険しい道だ。
パーペチュアルDEXのリクイデーション:同じ言葉、異なるゲーム
パーペチュアルDEXも「リクイデーション」を行い、見出しの数字はより大きい——しかしそのメカニズム、ひいては機会の構造は根本的に異なる。
GMX(v2): ポジションはオラクル価格(Chainlinkの低レイテンシ・データストリーム)で流動性プールを相手に取引される。担保から損失と手数料を差し引いた額がメンテナンス要件を下回るとリクイデーションが発火し、それを実行するのはキーパー——オラクルが署名した価格に基づいて動く指定されたインフラであり、公開レースではない。最初に呼び出した者に5%のボーナスを支払う公開関数は存在せず、残った担保はプロトコルのルールに従ってプールへ流れる。サーチャーの視点からは、そこに勝ち取るべきものは何もない。
Hyperliquid: リクイデーションはL1自身のマッチングエンジンの内部で実行される。アカウントのエクイティがメンテナンスマージンを下回ると(前述したようなオラクルゲームに耐えるよう、CEXフィードとオーダーブックをブレンドしたマーク価格で評価される)、エンジンはリクイデーションの成行注文をオーダーブックへ送り込む——インパクトを抑えるため、大きなポジションは分割して処理される。エクイティがメンテナンスマージンの3分の2を下回り続けると、そのポジションはマーク価格でHLPの中の1戦略であるバックストップ・リクイデーター・ボールト——プロトコルがコミュニティ所有するマーケットメイキング用ボールト——に引き継がれ、最終層としてオートデレバレッジが控えている。リクイデーションの損益はHLPのデポジター全体に帰属する。「リクイデーターの利益」は誰でも参加できるボールトへと社会化されており、1件ごとにレースの対象になっているわけではない。
トレーダーにとっての帰結はこうだ。マネーマーケットでは、ゲームはリクイデーターになること——固定スプレッドをめぐるインフラのレースだ。パーペチュアルDEXではリクイデーターという役割自体が閉じているため、ゲームはリクイデーションの周辺で取引することにシフトする。リクイデーション価格はオープンなポジションから計算可能であり、強制的なフローは可視のオーダーブックにぶつかり、密集したリクイデーションレベルは価格の動きにとって磁石であると同時に燃料源にもなる。これは、CEXのリクイデーションカスケードをトレード可能にしているのと同じロジックであり、ファンディングレートがレバレッジを殺す(レバレッジのコストがポジションを崖っぷちへと押しやる)や、草コインのポンプ・アンド・ダンプの仕組み(リクイデーションクラスターへ意図的に押し込む手口)で触れたダイナミクスと同じものだ。カスケードをシグナルとして扱う——形成を検知し、その燃料を測定し、オーバーシュートをトレードする——という本格的な話は、このシリーズの次の記事のテーマとなる。
まとめ
マネーマーケットのリクイデーションは、暗号資産の中でも稀にすべてが可読になっている領域だ。トリガー条件は数式であり、賞金はガバナンスが設定した定数であり、スタートの号砲は誰もが来るのを見て取れるオラクルトランザクションである。この可読性は2019〜2021年に真に開かれたビジネスを築いた。そしてまさにすべてが可読であったがゆえに、競争によってエッジはインフラの質へと値付けされ、残りはプロトコル自身へとオークションで払い戻されていった。しかしこのメカニズムは依然として必須の知識であり続けている。オンチェーンで借り入れをするなら、この数式こそがあなたのリスクモデルだ。強制フローの周辺でトレードするなら、オラクルのケイデンスとクローズファクターがいつ・どれだけ動くかを教えてくれる。そしてそれでもボットを構築するというのなら、少なくとも金が実際どこへ流れていくのかを知った上で構築すべきだ。
Authors
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.