Polymarketの基盤アルゴリズム完全解説
原作:@MrRyanChi,@insidersdotbot 予測市場取引プラットフォーム創設者
序言:あなたが知らない Polymarket B面
過去6ヶ月間、Twitter上には数億件の予測市場に関する記事が登場しました。
その90%は、AIがプログラムを書くことでどのように富を得る神話について語っています。これは「縁」であり、あなたがこの始まったばかりの市場に触れる第一歩です。
残りの9%は具体的な取引戦略、市場の共有、スマートマネー戦略の解析についてです。これが「道」であり、あなたが自分の取引戦略を模索し、予測市場でお金を稼ぐ考え方を理解する第一歩です。
しかし、この「法」、つまり予測市場の基盤となる取引設計、PNL計算、資金の流れのルールについては、1%の人々が語っていますが、大半は短いツイートの中に散らばっています。これらの隠れた達人たちは、常に自分の完全な法門を一度に全員に共有することを望んでいないか、またはそのエネルギーがありません。
したがって、insiders.botがちょうど立ち上がり、Polymarketがv2の更新を完了した今日、私は最も基礎的な技術から、この私たちが常に取引している市場の基盤の「法」を一度に解体したいと思います。
昨年10月、私は簡易版の記事を書き、Polymarketのいくつかのコアコンポーネントについて大まかに理解してもらいました。今回は、すべての技術的な設計の詳細を皆さんに示し、わかりやすく説明したいと思います。
この記事には、私たちのチームが過去8ヶ月間に注いだ努力が含まれています。
この8ヶ月間、@insidersdotbotチームは、Polymarketの基盤となるすべてのスマートコントラクトとアルゴリズムアーキテクチャを解体し、最速の取引と最も正確なPNL計算を実現しました。この点は、私たち自身が作ったAPIでのみ実現可能であり、今日まで他にできる人はいません。
したがって、私たちはおそらくPolymarketの基盤の「法」を最も解体できる人々です。
この記事では、底層の ctf-exchange-v2 スマートコントラクトがどのように資金を処理し、RelayerがどのようにあなたのGasを立て替え、Negative Riskが数学的に価値の保存をどのように保証するのかを理解する手助けをします。
これは単なる科学普及の記事ではありません。これは私が開発者の視点からPolymarketの基盤メカニズムのアルゴリズムを再解体した全解です。
まずは最も基本的なところから始めましょう。つまり、あなたが注文を出すとき、実際に何を送信しているのでしょうか?
P.S この記事はAIによって文体と構造が適応されており、あなたのOpenClaw、Manus、Hermes、または任意のAIエージェントにトレーニングデータとして送信することを歓迎します!!!
第一章:クリックからチェーン上へ、実際に何が起こったのか
1.1 注文は取引ではなく、「意図」である
従来の分散型取引所(例えばUniswap)では、取引を行うと、あなたのウォレットに確認ボックスがポップアップし、Gas費を支払う必要があり、その後取引(Transaction)をブロックチェーンのネットワーク(Mempool)に送信してマイナーにパッケージ化されるのを待ちます。
しかし、Polymarketでは、注文を出すとき、あなたのウォレットにポップアップするのは通常「署名」(Sign)リクエストであり、「取引」(Transaction)リクエストではありません。また、Gasを支払う必要もありません。
これは単なるユーザー体験の最適化ではなく、全体の基盤アーキテクチャの根本的な違いです。
Polymarketでは、1つの注文(Order)は本質的にEIP-712標準に準拠した構造化データです。このデータには、あなたが何をしたいのかが含まれています:
あなたはMakerですか、それともTakerですか?どのToken(tokenId)を買いたいですか?
いくら支払いたいですか(makerAmount)?
いくら得たいですか(takerAmount)?
あなたが署名するとき、あなたは単にあなたの秘密鍵でこのデータにスタンプを押し、「私は確かにこれをしたい」と証明します。その後、この署名されたデータはPolymarketの中央集権的なサーバーに送信され、オフチェーン(Off-chain)の中央限界注文簿(CLOB)に保存されます。
この段階では、ブロックチェーン上では何も起こっていません。あなたのお金はまだあなたのウォレットにあり、トークンも移動していません。あなたの注文は単にデータベースの1行の記録です。
1.2 価格の暗黙の表現
私たちはまず、あなたが注文を送信する瞬間に時間を一時停止します。もしあなたがPolymarketの基盤契約の注文構造を注意深く見ると、非常に直感に反することに気づくでしょう:注文の署名データには「価格」(Price)というフィールドがありません。
これはどういうことでしょうか?価格がなければどうやって取引するのでしょうか?
Polymarketのプロトコルの基盤設計において、価格は暗黙的です。それは、あなたが支払う意欲のある量と、あなたが得たい量から計算されます。
もしあなたが$0.60の価格で100のYES契約を買いたい場合:
あなたが支払う必要があるのは:$60 pUSD(makerAmount = 60)
あなたが得たいのは:100のYES契約(takerAmount = 100)
暗黙の価格 = makerAmount / takerAmount = 60 / 100 = $0.60
もしあなたが$0.60の価格で100のYES契約を売りたい場合:
あなたが支払う必要があるのは:100のYES契約(makerAmount = 100)
あなたが得たいのは:$60 pUSD(takerAmount = 60)
暗黙の価格 = takerAmount / makerAmount = 60 / 100 = $0.60
(注:最新のV2 SDKでは、開発者は直接priceとsizeを渡すことができますが、SDKは基盤の署名時に依然としてそれをmakerAmountとtakerAmountに変換します。この設計の巧妙さは、スマートコントラクトが「価格とは何か」を理解する必要がなく、「資産Aを資産Bに交換する」というロジックだけを処理すればよいということです。これにより、チェーン上の計算ロジックが大幅に簡素化され、Gas消費が削減されます。)
1.3 Operator:Polymarketの「交通警察」
注文がすべてオフチェーンにあるなら、それらはどのようにしてチェーン上の実際の資産移転に変わるのでしょうか?
これがPolymarketアーキテクチャの最も核心的なブラックボックスの役割であるOperator(オペレーター)を引き出します。
ctf-exchange-v2スマートコントラクトには、非常に重要な修飾子があります:onlyOperator。これは、Polymarket公式が制御する特定のアドレスのみがmatchOrdersやfillOrderなどの実行関数を呼び出す権限を持つことを意味します。
これは従来のDeFiとは完全に異なります。Uniswapでは、誰でもルーティング契約を呼び出すことができます。しかし、Polymarketでは、自分でチェーン上で取引をマッチングすることはできません。すべてのマッチングは、Operatorによって提出されなければなりません。
なぜこのように設計されているのでしょうか?MEV(マイナーが抽出可能な価値)やフロントランニング(Front-running)を排除するためです。
従来のチェーン上の注文簿では、誰かが非常に低い価格の大口注文を出すと、すべてのアービトラージボットがMempoolで狂ったように入札(Gas費を上げる)し、他の人より先にその注文を食べようとします。これによりGas費が急上昇し、一般ユーザーの体験が非常に悪化します。
しかし、Polymarketでは、すべての注文がオフチェーンのCLOBにあります。Operatorのマッチングエンジン(Matching Engine)がサーバー上で誰が誰と取引すべきかを計算し、その結果を1つの取引にパッケージ化し、Operatorがチェーン上に送信します。
Operatorのみがマッチング結果を提出できるため、Mempoolのボットがこの取引を見ても、フロントランニングすることはできません。なぜなら、彼らには実行関数を呼び出す権限がないからです。
これは典型的な「ハイブリッド分散型」アーキテクチャです。マッチングとソートは中央集権的(Operatorが決定)、しかし決済と資金保管は分散型(スマートコントラクトが実行)です。
Operatorは誰を先にマッチングするかを決定できますが、あなたの資金を盗むことは絶対にできません。なぜなら、彼はあなたが署名したEIP-712データを提供しなければならず、契約は署名を厳密に検証します。
P.S: ただし、ここで少し触れておきたいことがあります。私たち@insidersdotbotは最近、このメカニズムの利用可能な場所を発見したようで、フォロワーがフロントランニングを行ったり、大幅な遅延を引き起こすことができる可能性があります。何か更新があれば、公式アカウントで最初に発表します。
第二章:Relayerの経済学
2.1 「Gas免除」の錯覚
Polymarketの最大の売りの1つは、ユーザーに「Gas免除」(Gasless Transactions)を提供することです。あなたはpUSDを持っているだけで取引ができ、POL(以前のMATIC)をウォレットに保管する必要はありません。
しかし、ブロックチェーンの物理法則は逆らえません:Polygon上で状態が変わる(例えば資産移転)と、誰かがGas費を支払わなければなりません。
あなたが支払っていないなら、誰が支払っているのでしょうか?答えは:Relayer(リレイヤー)です。
2.2 Relayerの接力ネットワーク
Polymarketはユーザーに自分で取引を発行させるのではなく、Relayer Clientというインフラストラクチャ(relayer-v2.polymarket.com)を展開しました。
初期のアーキテクチャでは、この種のサービスは通常、OpenZeppelin Defender Relayのようなエンタープライズサービスに依存し、高い同時実行性の下でのnonce(取引番号)衝突問題を解決するために署名者プール(Signer Pool)を維持していました。
あなたのアプリが取引(例えばトークンの承認、利益の引き換え)を作成すると、あなたは秘密鍵で署名し、Relayerに送信します。Relayerは「取引スポンサー」(Transaction Sponsor)として、この取引をチェーン上に提出し、自分の資金プールでGas費を立て替えます。
Relayerアーキテクチャと経済循環
2.3 羊毛は羊の身に?
初期の多元取引(Meta-transaction)アーキテクチャでは、RelayerがGasを立て替えた後、通常はユーザーの預金から手数料(例えば0.3%または固定の数ドル)を差し引いてGasコストを補填します。
しかし、Polymarketは非常に攻撃的です:現在のV2アーキテクチャでは、彼らは本当にあなたのために全額支払っています。
公式文書には明確に書かれています:「Polymarketはリレイヤーを通じてルーティングされたすべての操作のGasを支払います」。ウォレットの展開、トークンの承認、分割(Split)、統合(Merge)、引き換え(Redeem)など、すべてGas費は免除され、隠れた手数料も一切かかりません。
なぜPolymarketはこの赤字商売をすることを望んでいるのでしょうか?
Polygon上のGasコストは非常に低いため(通常は数セント)、Gas免除によるスムーズな体験が大量のWeb2ユーザーを引き込むことができます。ユーザーが取引中にわずかなTaker手数料を発生させるだけで、この非常に低いGasコストをカバーするのに十分です。
これを理解したら、次の質問が自然に浮かびます:この「Gas免除」アーキテクチャは私たちの取引にどのような影響を与えるのでしょうか?
最大の隠れたコストは遅延(Latency)です。あなたの注文はPolymarketのマッチングエンジンを通過するだけでなく、直接チェーン上の操作であれば、Relayerの検証、Gasの見積もり、キューの割り当ても通過しなければなりません。
第三章:3つのマッチング方法、そしてなぜ買い手同士でも取引が成立するのか?
今、私たちはPolymarketアーキテクチャの中で最もハードコアで直感に反する部分に入ります。
従来の取引所(例えばBinanceの注文簿)では、マッチングロジックは非常にシンプルです:アリスは$60で1つのトークンを買いたい、ボブは$60で1つのトークンを売りたい。取引所は彼らをマッチングさせ、トークンはボブからアリスへ、お金はアリスからボブへ移動します。終了。
しかし、Polymarket(条件トークンフレームワークCTFに基づく)では、事は全く異なります。ここでは、トークンは「空から印刷される」ことも「空から消去される」こともできます。
ctf-exchange-v2のソースコードを開くと、基盤には3つの全く異なる資産決済パスがあることがわかります:COMPLEMENTARY、MINT、MERGE。
Complementary, Mint, Mergeの大まかな構造
3.1 COMPLEMENTARY(相補的マッチング):従来の二次取引
これは最も理解しやすいマッチング方法であり、従来の取引所が唯一持っている方法です。
シナリオ:市場はすでにしばらく存在しており、皆が手元にチップを持っています。
アリスは$0.60で100のYESを買いたい。
ボブはYESを持っており、$0.60で100のYESを売りたい。
オペレーターはこれらの2つの注文(BUY vs SELL)を発見し、それらをパッケージ化してチェーン上に上げます。スマートコントラクトは直接的なピアツーピアの転送を実行します:
ボブのアドレスからアリスに100のYESを転送します。
アリスのアドレスからボブに$60 pUSDを転送します。
このメカニズムには以下の数学的および工学的特徴があります:
ゼロサムゲーム:システムの総トークン供給量は変化しません。
Gas消費が最低:基本的な転送のみが関与し、CTFの複雑な操作は含まれません。
標準化:成熟した流動性のある市場では、ほとんどの日常的な取引はこの方法です。
3.2 MINT(鋳造マッチング):流動性を空から創造する
これはPolymarket、さらには金融史上最も革命的な革新かもしれません。
より良く説明するために、次のシナリオを考えてみましょう:全く新しい市場が立ち上がったばかりで、誰もYESまたはNOトークンを持っていません。
アリスは非常に楽観的で、$0.60で100のYESを買いたい。
ボブは非常に悲観的で、$0.40で100のNOを買いたい。
注意:彼らは両方とも買い手です!彼らはお互いが欲しいトークンを持っていません!
従来の注文簿では、これらの2つの注文はただ見つめ合うだけで、決して成立することはありません。Polymarketでは、BUY vs BUY(かつトークンが相補的)に遭遇した場合、オペレーターはこれらの2つの注文をマッチングさせます!
スマートコントラクトはアリスのアカウントから$60 pUSDを差し引きます。
スマートコントラクトはボブのアカウントから$40 pUSDを差し引きます。
スマートコントラクトはこの$100 pUSDを担保としてロックし、
_mint関数を呼び出し、空から100のYESと100のNOを鋳造します。100のYESをアリスに送ります。
100のNOをボブに送ります。
このメカニズムのトリガーは、厳密な数学的条件に基づいています:買い手の入札の合計は$1.00以上でなければなりません。
もしアリスが$0.60でYESを買い、ボブが$0.35でNOを買うと、合計は$0.95にしかなりません。スマートコントラクトは$0.95で$1.00の完全なトークンペアを鋳造することはできません。このマッチングは直接失敗します。
MINTマッチングメカニズム
マーケットメーカーの観点から見ると、このメカニズムは「コールドスタート」問題を解決する究極の武器です。市場が開かれたばかりのとき、マーケットメーカーは自分でお金を使って大量のトークンを鋳造して手元に置く必要はありません(これは大量の資金を占有します)。彼らはYESとNOの両方に同時に買い注文を出すだけで(例えば$0.49でYESを買い、$0.49でNOを買う)、小口投資家が売るときに鋳造ロジックがトリガーされます。
3.3 MERGE(統合マッチング):流動性の消失
創造があれば、破壊もあります。MERGEはMINTの逆のプロセスです。
逆のケースを見てみましょう。市場が終了しようとしており、皆がポジションを閉じています。
アリスは100のYESを持っており、$0.60で売りたい。
ボブは100のNOを持っており、$0.40で売りたい。
注意:彼らは両方とも売り手です! 誰も彼らのトークンを買うためにpUSDを出そうとはしません。
この時、Polymarketのメカニズムが再び力を発揮します。SELL vs SELLに遭遇したとき、オペレーターは再び魔法を使います:
スマートコントラクトはアリスから100のYESを取得します。
スマートコントラクトはボブから100のNOを取得します。
スマートコントラクトは
_merge関数を呼び出し、これらの100ペアのYES+NOを完全に消去し、金庫から$100 pUSDを解放します。$60 pUSDをアリスに送ります。
$40 pUSDをボブに送ります。
MERGEメカニズムには以下の数学的および金融的特徴があります:
デフレ機構:システムの総トークン供給量が減少しました。
退出経路:それは、「受け皿」がいなくても、YESとNOの売り手の価格が$1.00を満たす限り(実際には$1.00のスペースを放棄すること)、皆が現金化して市場から離れることを保証します。
これら3つのマッチング方法を理解すれば、Polymarket市場のライフサイクルを理解できます:
初期(MINT主導):市場が開かれたばかりで、トークンがありません。両者はMINTメカニズムを通じて資金をシステムに注入し、トークンを取得します。総供給量が急速に増加します。
中期(COMPLEMENTARY主導):市場の流動性が豊富で、大部分の取引は既存のトークンの売買です。総供給量は安定しています。
後期(MERGE主導):結果が次第に明らかになり、皆がポジションを閉じ始めます。両者はMERGEメカニズムを通じてトークンを消去し、資金を取り戻します。総供給量が減少します。
これら3つのパスは、オペレーターが主観的に選択するのではなく、注文の売買方向(BUY vs SELL)によって厳密に決定されるスマートコントラクトのルーティングルールによって決まります。
市場のライフサイクル
第四章:Split/Merge/Redeem、そしてあなたのPnLがなぜ間違っているのか?
マッチングメカニズムを理解したら、次に見てみましょう。あなたが毎日使っているかもしれませんが、その財務的影響を本当に理解していない3つの基盤操作:Split(分割)、Merge(統合)、およびRedeem(引き換え)です。
これら3つの操作はPolymarketの原子レベルの操作です。これらは「取引」ではなく(注文簿を経由せず、手数料もかからず)、スマートコントラクトと直接やり取りする資産の変換です。
Split:あなたが契約に$1 pUSDを与えると、契約はあなたに1つのYESと1つのNOを与えます。コストは常に正確に$1です。
Merge:あなたが契約に1つのYESと1つのNOを与えると、契約はあなたに$1 pUSDを返します。利益は常に正確に$1です。
Redeem:市場が勝者と敗者を決定した後、勝者のトークンは$1 pUSDに引き換えられ、敗者のトークンはゼロになります。
Split操作前後の比較
4.1 誰がこれらの操作を使用しているのか?
マーケットメーカー(Market Makers):彼らはSplitの最大のユーザーです。マーケットメーカーは両側に同時に注文を出す必要がありますが、彼らは市場でトークンを買いたくありません(手数料がかかるからです)。彼らは直接$10万の資金をSplitして10万のYESと10万のNOを作り、それを注文簿に掲示します。
アービトラージャー(Arbitrageurs) :彼らはMergeの最大のユーザーです。市場に短期間の価格の不一致が発生した場合、例えばYESが$0.40に下がり、NOが$0.55に下がったとき、アービトラージャーはすぐに1つのYESと1つのNOを購入します(総コストは$0.95)、そしてすぐにMergeを呼び出して$1に引き換え、リスクなしで$0.05を得ます。この数学的条件は非常に明確です:
Price(YES) + Price(NO) < 1 - 手数料のとき、無思考で購入してMergeします。
したがって、あなたがアービトラージャーのスマートマネーを追いかけたり、マーケットメーカーのスマートマネーを追いかけたりするとき、あなたはSplit/MergeがPNLに与える影響を正確に判断する必要があります。そうでなければ、それは参考に値しない「スマートマネー」ではありません。
現在の市場では、Polymarket自身を含めて、PNLの計算問題を解決できるものはありません。当然、あなたはすでに推測しているかもしれませんが - insiders.botはすでにPNL計算とスマートマネーのブラウザでこの問題を解決しています。
4.2 PnLの罠:なぜあなたの利益が間違っているのか?
上記のように、これはPolymarketエコシステム全体で最も一般的な誤りです。ほとんどすべての第三者PNL(損益)追跡ツール、公式のAPIのいくつかを含めて、ここでつまずいています。
私はあなたに計算を示しますので、この罠がどれほど深いかを理解できます。
ステップ0:あなたの元本が$100だと仮定します。あなたは「イーサリアムが$5000を突破する」という市場を見ています。
ステップ1:あなたは$50を使って1回のSplitを実行しました。今、あなたは50のYESと50のNOを持っています。現金はまだ$50残っています。
ステップ2:あなたは50のYESが足りないと感じ、市場で$0.40の価格で50のYESを購入しました。費用は$20です。現金は$30残っています。
ステップ3:あなたは手元の50のNOを$0.35の価格で売却しました。$17.50を回収しました。現金は$47.50になりました。
今、あなたは100のYES契約を持っています。あなたの実際のコストはどれくらいでしょうか?
ほとんどのランキングはこう計算します(誤ったアルゴリズム):
彼らはあなたの「取引」記録だけを見ます。彼らはあなたが50のYESを購入し、$20を費やしたことを見ています。彼らはSplitを完全に無視します(それは取引ではないからです)。
したがって、彼らはあなたのコストを次のように考えます:$20 / 50 = $0.40/個。
もし現在YESの市場価格が$0.60に上がったら、彼らはあなたの利益を次のように表示します:100 × $0.60 - $20 = $40。
実際にはあなたはこう計算すべきです(正しいアルゴリズム、insiders.botが使用しているアルゴリズム):
あなたの総現金流出:$50(Split) + $20(購入) = $70。
あなたの総現金流入:$17.50(NO売却)
あなたの純投入:$70 - $17.50 = $52.50
あなたの実際のコスト:$52.50 / 100 = $0.525/個。
もし現在YESの市場価格が$0.60であれば、あなたの実際の利益は:100 × $0.60 - $52.50 = $7.50です。
差が見えましたか?ランキングはあなたが$40を稼いだと表示しますが、実際にはあなたは$7.50しか稼いでいません。その間の$32.50の「幻の利益」は、システムがSplitのコストとNO売却の利益を正しく処理していないためです。
正しいPNLの数学的公式は次のようになります:
総盈亏 = Σ(売却収入) + Σ(Merge収入) + Σ(Redeem収入) - Σ(購入支出) - Σ(Split支出) + 現在の保有市価
これが、あなたがランキングで見る大物たちが数百万の損失を表示しているのに、実際には彼らが大きな利益を上げている理由です。なぜなら、勝ったポジションがRedeemされた後、多くのツールがこれらのポジションを履歴から「消去」し、まだ損失を抱えている不良資産だけを残すからです。
PnL計算の罠
第五章:手数料曲線
もしあなたが頻繁に取引を行っているなら、Polymarketの手数料は固定のパーセンテージではないことに気づくでしょう。時には$1000の契約を購入するのに$10の手数料がかかり、時には$2しかかからないこともあります。
なぜでしょうか?コードの深いところに隠された費用公式を見てみましょう:
Fee = C × feeRate × p × (1 - p) (ここでCは取引数量、pは価格です)
5.1 なぜp(1-p)なのか?
あなたが100のYESを購入したいと仮定し、手数料率が2%だとします:
もしYESの価格が$0.50なら:
手数料 = 100 × 2% × 0.50 × 0.50 = $0.50もしYESの価格が$0.90なら:
手数料 = 100 × 2% × 0.90 × 0.10 = $0.18もしYESの価格が$0.10なら:
手数料 = 100 × 2% × 0.10 × 0.90 = $0.18
あなたは規則性に気づきましたか?価格が0.50(五分五分)であるとき、手数料が最も高くなります。価格が0または1に近づくと(大局が決まると)、手数料は非常に低くなります。
さらに重要なのは対称性です。$0.90のYESを購入することと$0.10のNOを購入することは、数学的に等価です。もしあなたが$0.90のYESを購入するのに高い手数料がかかり、$0.10のNOを購入するのに低い手数料がかかるなら、アービトラージャーはNOを狂ったように購入し、MINTメカニズムを通じてアービトラージを行います。p(1-p)という設計は、どちらの側から意見を表明しても、システムが徴収する摩擦コストが絶対に対称であることを保証します。
5.2 隠れた数学の美しさ
もしあなたが統計学を学んだことがあれば、p(1-p)という公式に非常に馴染みがあるでしょう。これはベルヌーイ分布(コイン投げ)の分散公式です。
Polymarketの全システム設計において、p(1-p)は「神の公式」です:
それは手数料曲線です:不確実性(分散)が高いほど、システムが徴収する費用が高くなります。
それは情報エントロピーの表れです:あなたが50%の時に賭けると、あなたは市場に最も新しい情報を提供するので、あなたが支払う代価が最大になります。
誰が手数料を支払うのか?常にTaker(受け手)です。Maker(注文を出す者)は常に手数料が免除されます。
このメカニズムはインセンティブを完璧に調整します:市場が最も迷っている(50/50)とき、早期に入場する者は最高の手数料を支払うことになり、マーケットメーカーを無駄な衝撃から保護します;市場がほぼ確定しているとき、非常に低い手数料はアービトラージャーを引き込み、価格を最終的に1または0に押し上げます。
手数料曲線
第六章:Negative Risk、すなわちDeFi領域で最も優雅な魔法
もしあなたがPolymarketで選挙、オスカー、またはスポーツイベントなどの多結果(Multi-outcome)市場をプレイしたことがあるなら、あなたは必ず負のリスク(Negative Risk)市場に触れたことがあるでしょう。
これはこの記事の中で最も頭を使う部分ですが、同時にスマートコントラクト工学の美学を最も体現しています。
P.S これは私たちの共同創設者@DakshBigShitが自分たちのAPIを開発する際に、36時間のマラソンで解決した部分でもあります。
6.1 従来の多結果市場の痛点
4人の候補者がいると仮定します:A、B、C、D。あなたはAを非常に嫌っており、Aが絶対に勝てないと確信しています。あなたはAを「ショート」したいのです。
従来の二元市場では、あなたはAのNO契約を購入するだけで済みます。しかし、多結果市場では、Aが負けるということは、B、C、Dの中に必ず1人が勝つことを意味します。したがって、「Aをショートする」ことは数学的に「Bをロング + Cをロング + Dをロング」と厳密に等価です。(この文は非常に重要です。繰り返し読んで理解してください。)
もしあなたが市場でB、C、DのYES契約をそれぞれ購入しようとすると、あなたは大きな問題に直面します:資金効率が非常に低いのです。なぜなら、あなたはそれぞれに対して3つの金額を立て替えなければならず、もしこれら3人の価格の合計が$1.00を超えると、あなたは損失を被る可能性すらあります。
6.2 負のリスクアダプター(NegRiskAdapter)の魔法
Polymarketはこの問題を解決するために、専用のスマートコントラクトNegRiskAdapterを展開しました。これはconvertPositionsという関数を提供します。
この関数の役割は、あなたが持っているNO契約を瞬時に他のすべての候補者のYES契約に変換し、現金を返すことです。
この変換がなぜ価値保存であるかをハードコアな数学で証明してみましょう。
シナリオ設定:候補者がn人います。
あなたは候補者1のNO契約をA枚、候補者2のNO契約をA枚持っています(あなたは同時に1と2をショートしています)。
あなたは合計でm枚の異なるNO契約を持っています(ここではm=2です)。
変換前、あなたのポジションの真の価値(すべての可能な世界線において):
もし候補者1が勝った場合:NO1は無価値になり、NO2は$1の価値があります。総価値 = A。
もし候補者2が勝った場合:NO1は$1の価値があり、NO2は無価値になります。総価値 = A。
もし候補者3が勝った場合(あなたがショートしていない誰かが勝った場合):NO1は$1の価値があり、NO2も$1の価値があります。総価値 = 2A。
convertPositionsを呼び出した後、契約はあなたに何を返しますか?
公式は:あなたにA × (m-1)の資金を返し、さらにA枚の候補者3、4、… nのYES契約を与えます。
この例では、返されるのは:A × (2-1) = Aの現金です!さらにA枚の候補者3のYES、A枚の候補者4のYES…
変換後、あなたのポジションの真の価値(すべての可能な世界線において):
もし候補者1が勝った場合:あなたが持っているYES3、YES4はすべて無価値になります。あなたは現金Aだけを持っています。総価値 = A。(変換前と等しい!)
もし候補者2が勝った場合:あなたが持っているYES3、YES4はすべて無価値になります。あなたは現金Aだけを持っています。総価値 = A。(変換前と等しい!)
もし候補者3が勝った場合:あなたが持っているYES_3は$1の価値があり、他は無価値になります。現金Aを加えると、総価値 = A + A = 2A。(変換前と等しい!)
Q.E.D. 世界がどう進展しようとも、変換前後の価値は絶対に等しいのです。
Negative Risk変換の数学的証明
6.3 なぜこれは「一方向不可逆」のエントロピー増加プロセスなのか?
この変換メカニズムには非常に魅力的な物理学的特性があります:それは一方向不可逆です。
あなたはNOをYES + 現金に変換できます。しかし、YES + 現金を逆にNOに変換することはできません。
なぜでしょうか?スマートコントラクトの基盤では、あなたがNOをYESに変換するとき、契約は実際にあなたのNO契約をブラックホールアドレス(Burnで消去)に送信し、その部分から解放された担保スペースを利用して、新しいYES契約を「合成」します。これには新しい外部資金を注入する必要はありません。
しかし、あなたが逆にYESをNOに変えたい場合、新しい担保を空から創造する必要があります(NO契約のカバレッジはYESよりも広いからです)。アダプターには国庫の資金を動かす権限がありません。
これは卵を割るようなものです。NOはその完全な卵であり、すべての可能性を含んでいます。変換操作は卵を割り、卵黄(YES)と卵白(現金)に分けることです。プロセスは価値保存ですが、それらを再び完全な卵に戻すことはできません。
ここには大きなアービトラージのスペースがあります:もしあなたが市場である候補者のNO価格が、他のすべての候補者のYES価格の合計を上回っていることを発見したら、あなたはそのNOを購入し、convertPositionsを呼び出して現金と一堆のYESを得て、それらのYESをすぐに売却することができます。これが多結果市場における最高の無リスクアービトラージ戦略です。
第七章:速度の物理的極限
最後に、取引における最も残酷な次元、時間について話しましょう。
従来の高頻度取引では、私たちはマイクロ秒(百万分の一秒)について議論しています。Polymarketでは、私たちはミリ秒について議論しています。しかし、ここには巨大な構造的な不平等があります。
もしあなたがRedditのアルゴリズム取引板に出入りしていたなら、Polymarketのボットを開発しているすべてのプログラマーが同じことを不平を言っているのを見たことがあるでしょう:「なぜ私がTaker注文を出すと常に300ミリ秒待たなければならず、Maker注文はわずか25ミリ秒なのか?」
7.1 なぜMakerが速く、Takerが遅いのか?
あなたがMaker(注文を出す)を出すとき :あなたの注文(署名データ)はPolymarketのサーバーに送信されます。サーバーは署名が有効かどうかを確認し、直接この記録をメモリ内のCLOB(注文簿)データベースに挿入します。そしてすぐにACK(確認)を返します。全プロセスは完全にオフチェーンで発生し、1回のデータベース書き込みだけが必要です。所要時間:約25ミリ秒。
あなたがTaker(受け手)を出すとき:あなたの注文はサーバーに送信されます。マッチングエンジンはあなたの注文が注文簿のあるMakerとマッチングできることを発見します。この時、オペレーターは複雑な決済パイプラインを起動する必要があります:
どのマッチングパス(COMPLEMENTARY、MINT、またはMERGE)を使用するかを決定します。
両者の署名を含むチェーン上の取引データを構築します。
取引をRelayerに送信します。
RelayerはGasを見積もり、Nonceを割り当てます。
取引をPolygonノードにブロードキャストします。
ノードがこの取引が残高不足などの理由でRevertしないことを確認するのを待ちます。
全プロセスは複数のマイクロサービスを跨ぎ、ブロックチェーンのエッジに触れます。所要時間:約250から300ミリ秒。
7.2 この250ミリ秒は何を意味するのか?
この250ミリ秒の物理的なギャップは、Polymarketのエコシステムを深く形成しています。
第一に、Polymarketではフロントランニングが非常に難しいです。 なぜなら、すべてのTaker注文はオペレーターの処理を待たなければならず、Gas費を上げて割り込むことはできません。Mempoolのフロントランニングはここでは一時的な命題です。
第二に、Maker戦略の絶対的な優位性。 なぜなら、キャンセル(Cancel)とMakerの注文は同じくオフチェーン操作であり、わずか25ミリ秒しかかかりません。突発的なニュースが発生したとき、賢いマーケットメーカーはこの250ミリ秒の時間差を利用して、Takerの注文が決済される前に自分の注文をキャンセルすることができます(これを逆選択の回避と呼びます)。
7.3 毎週火曜日の朝の90秒間のダウンタイム
時間に関して、もう一つあまり知られていない詳細があります。公式文書によれば、毎週火曜日の米国東部時間午前7時に、Polymarketのマッチングエンジンは再起動します。この約90秒間、システムはすべてのマッチングの処理を停止し、APIはHTTP 425(Too Early)エラーを返します。
さらに残酷なのは、V2がハートビート(Heartbeat)メカニズムを導入したことです。サーバーが10秒以内にクライアントからのハートビートを受信しない場合、そのユーザーのすべてのオープン注文が自動的にキャンセルされます。この90秒間の再起動中、マーケットメーカーのハートビートは強制的に中断され、彼らの注文はシステムによって一斉にクリアされます。
この90秒は、システム内の真の「流動性真空」です。オプション価格モデルにとって、この90秒のシータ(時間減少)をどのように評価し、91秒目にエンジンが復旧したときに最初に市場を占有するかは、トッププラットフォームと量的スタジオにとっての究極の謎です。
遅延時間線の比較
第八章:V2の大規模再構築と「ゴーストフィル」(Ghost Fill)の究極の戦い
もしあなたがここまで読んできたなら、あなたはPolymarketのコアフレームワークを把握しています。しかし、2026年にこの市場で引き続き利益を上げたいなら、最近発生した大地震を理解する必要があります。
2026年2月から5月の間に、Polymarketは静かに史上最大のV2アーキテクチャのアップグレードを行いました。このアップグレードは、担保と手数料の公式を再構築するだけでなく、最も悪名高いバグ、すなわちゴーストフィル(Ghost Fill)を解決するための究極の戦いを引き起こしました。
8.1 ゴーストフィルとは何か?チェーン上とチェーン下の状態の分断
Polymarket V2のアップグレード前、多くのマーケットメーカーや量的ボットはある現象に悩まされていました:あなたのボットが5分間の市場(例えばBTC Up/Down 5m)で素晴らしい機会を捉え、すぐにTakerリクエストを発行しました。PolymarketのAPIは瞬時に「マッチしました!成功!」と返答し、あなたのTelegramアラートも「FILLED」の歓喜を表示しました。しかし、Polygonscanでブロックチェーンブラウザを開くと、この取引がREVERTED(失敗)としてマークされ、Gas費が無駄になり、あなたのポジションは変わりませんでした。
注文簿には明らかに取引が成立したと表示されているのに、ブロックチェーンは何も起こっていないと言います。これがゴーストフィル(Ghost Fill)です。
このバグの本質を理解するためには、第一章で説明した基盤アーキテクチャに戻る必要があります:オフチェーンマッチング(Off-chain Matching)+ オンチェーン決済(On-chain Settlement)。
アリスの買い注文とボブの売り注文がオフチェーンの中央限界注文簿(CLOB)でマッチングされるとき、システムはデータベース内でこれら2つの注文を等号で結びつけるだけです。実際の資産移転は、オペレーターが両者の署名をパッケージ化し、Polygonチェーン上にTransferFromを実行する必要があります。
これにより致命的な時間差が生じます。この時間差の間に、ユーザーのウォレットの状態が変わる可能性があります。
8.2 ゴーストフィルの2つの攻撃パス
初期のV1とV2が立ち上がったばかりの頃、ハッカーや悪意のあるマーケットメーカーはこの時間差を利用して、2つの非常に破壊的な攻撃手法を発明しました:
第一の手法:低コストのincrementNonce攻撃(V1時代)
V1アーキテクチャでは、注文の状態はグローバルなnonce(ランダム数)によって管理されていました。悪意のあるプレイヤーはオフチェーンで非常に魅力的な偽注文(Spoofing)を大量に出すことができました。リアルな買い手が引っかかると、注文がオフチェーンでマッチングされた後、悪意のあるプレイヤーはオペレーターがチェーン上に提出する前に、直接チェーン上で
incrementNonce関数を呼び出します。この操作は非常に低コスト(数セントのGas)で、瞬時にそのアドレスのすべての古いnonceの注文を無効にします。オペレーターがマッチングされた取引をチェーン上に提出すると、スマートコントラクトはnonceが一致しないことを発見し、直接Revertします。攻撃者は全てを逃れ、リアルな買い手は取引の機会を逃すだけでなく、偽の注文に誤導される可能性があります。
第二の手法:空のウォレットの「ゾンビ注文」(V2初期)
V2アップグレードでは、グローバルnonceが削除され、単一の注文ハッシュがキャンセル状態を管理するようになり、第一の道を塞ぎました。しかし、ハッカーはすぐにより根本的な脆弱性を発見しました:残高の欺瞞。悪意のあるユーザーはウォレットに$1000をチャージし、合計$10000の注文を出して注文簿に掲示し、その後すぐにウォレット内のすべての資金を移動させることができます。Polymarketの注文はオフラインで署名されているため、署名が有効で、トークンの承認(Approval)が取り消されていなければ、これらの注文はオフチェーンのマッチングエンジンにとって「合法」と見なされます。しかし、実際にはそのウォレットの残高は$0です。
あなたのボットがこれらの「ゾンビ注文」を食べると、オペレーターがチェーン上に提出するとき、基盤で呼び出されるSoladyライブラリのTransferFrom関数は、相手の残高不足のためにエラーを返します(エラーコード0x7939f424)。あなたの取引は再びRevertします。
8.3 なぜ従来の取引所にはこの問題がないのか?
あなたはこう尋ねるかもしれません:なぜBinanceや従来の分散型取引所(Uniswapなど)にはこの問題がないのでしょうか?
なぜなら、Binanceは完全に中央集権的であり、あなたのお金は彼らのデータベースに存在し、彼らは絶対的な制御権を持っており、マッチングと引き落としは原子的に同時に発生するからです。また、Uniswapは完全にチェーン上で、マッチングと引き落としが同じ取引の中で完了するため、これも原子的です。
しかし、Polymarketはハイブリッドアーキテクチャを選択しました:オフチェーンのマッチングはスピードを追求し、オンチェーンの決済は透明性を追求します。そして、ユーザーの資金は完全に自己管理されたウォレット(EOAまたはGnosis Safeなど)に保管されており、ユーザーは絶対的な処分権を持ち、いつでもどこでもお金を移動させることができます。
マッチングの両端の資金状態がユーザーの自由な自己管理ウォレットにリンクしている限り、「状態の分断」は永遠に存在します。
8.4 究極の解決策:Deposit Wallet(関連金庫)
2026年5月4日、Polymarketはコアプロトコルレベルの重大な更新を発表し、ゴーストフィルの割合をピーク時の30%から0.17%に引き下げ、ゼロに近づけました。
彼らはどのようにしてこれを達成したのでしょうか?答えはDeposit Wallet(関連金庫)を導入したことです。
Polymarketはついに、ゴーストフィルを解決する根本的な方法は、ユーザーの資金の「絶対的自由」を制限することだと認識しました。新しいアーキテクチャでは、ユーザーはもはや自分のネイティブウォレット(EOA)を使用してオフチェーンのマッチングに参加することはできません。あなたはまず、スマートコントラクトが制御するDeposit Walletに資金を預けなければなりません。
この金庫の中で:
あなたは所有権を持っていますが、絶対的な即時処分権はありません。
あなたがオフチェーンで注文を出すと、金庫は論理的に対応する可用残高をロックします。
あなたが金庫からお金を引き出したい場合、この引き出し操作(State Revocation)自体に物理的な時間コストが付与されます。これはスマートコントラクトの検証を経なければならず、あなたが未決の注文を持っていないことを確認します。
このバッファレイヤを導入することで、Polymarketはオフチェーンのマッチング状態とオンチェーンの資金状態を強制的に結びつけ、「空のウォレットの注文」の可能性を完全に排除しました。これは単なる工学的勝利ではなく、分散型金融における「自己管理」と「取引効率」の間の矛盾に対する深い妥協と再構築です。
8.5 V2の他のハードコアなアップグレード
ゴーストフィルを解決する究極の方法に加えて、V2アーキテクチャには市場の構造を深く変えるいくつかのアップグレードが含まれています:
pUSDの権力交代:4月28日、基盤の担保がUSDC.eからpUSDに全面的に切り替わりました。これにより、Polymarketは基盤資産の生息制御権を獲得し、ユーザーに最大4.00%の年利の保有報酬を提供できるようになりました。pUSDは新しい資本効率の基盤インフラストラクチャとなりました。
完璧な公式p(1-p)の実装:V1時代の粗いmin(p, 1-p)近似値を廃止し、手数料公式を完璧なベルヌーイ分散公式
p × (1-p)に修正しました。数学的な絶対的な滑らかさにより、アービトラージャーの価格モデルがより正確になります。人為的な減速帯の撤去:初期には、マーケットメーカーをAPIボットの攻撃から保護するために、最大500ミリ秒のTaker遅延がコードにハードコーディングされていました。V2エンジンの性能向上とハートビート(Heartbeat)メカニズムの導入(10秒間の切断で注文がクリアされる)に伴い、公式は2月末にこの人為的な減速帯を完全に撤去し、Polymarketが正式にマイクロ秒レベルのHFT(高頻度取引)肉搏戦に突入したことを宣言しました。(これが、私たちinsiders.botが近くAPIをオープンソース化し、この戦いに参加する準備をしている理由でもあります)
結語:ゼロからこの機械を見透かす
あなたが注文をクリックしたその瞬間から:
あなたの署名はオフチェーンの注文簿に送信されます。
RelayerはそのGasを燃やしてあなたの道を開きます。
オペレーターはCOMPLEMENTARY、MINT、MERGEの中で最適なマッチングパスを探します。
手数料曲線は
p(1-p)の優雅な公式でわずかな摩擦コストを抽出します。あなたの操作が複雑であれば、
NegRiskAdapterは物質保存の錬金術を施すことさえあります。
最終的に、すべてはその生死を決定する250ミリ秒の間に決着がつきます。(これが、insiders.botがフォロワーの透明性と速度を非常に重要視している理由です)
あなたのお金は消えていません。それは単にこの名付けられたctf-exchange-v2という精密な機械の物理法則に厳密に従い、行くべき場所に流れているのです。
次回、Polymarketで異常なオッズや魅力的なアービトラージの機会を見たとき、急いでBuyをクリックしないでください。まず、この機械の歯車を頭の中で回してみてください。
これらの基礎的な「法」を理解し、正しい「道」を加えれば、あなたは必ず戦無不勝となるでしょう。
P.S 本文のPDF版もすでに準備完了です。@insidersdotbotをフォローし、「PDF」とDMを送ることで迅速に入手できます。
参考文献
[1] Polymarket公式文書:マッチングエンジンの再起動とハートビートメカニズム。
[2] Polymarket公式文書:手数料とp(1-p)計算公式。
[3] Polymarket/ctf-exchange-v2スマートコントラクトソースコード(GitHub)。
[4] NegRiskAdapter.sol:多結果変換の数学的実装。
[5] leolabs.me:「なぜあなたのPolymarket PnLが間違っているのか」(Split/Merge会計分析)。
[6] Reddit r/algotrading & Binance Square:Polymarket Taker遅延撤去の発表(2026年2月)。
[7] Polymarket V2移行ガイド:USDC.eからpUSDへの移行(2026年4月)。














