Polymarketの基本アルゴリズム完全解説
- 核心观点:本稿では、Polymarketの予測市場における基盤技術アーキテクチャを詳細に分析。オーダーインテント、オフチェーンでのマッチングとオンチェーンでの決済を組み合わせたハイブリッドモデル、3つのマッチングメカニズム(相補的、鋳造、統合)、PnL計算の落とし穴、そしてV2アップグレードによる「ゴースト約定」問題の解決とデポジットウォレットの導入について解説します。
- 关键要素:
- Polymarketのオーダーは、その本質としてオフチェーンで署名された「インテント」(EIP-712)であり、中央集権的なオペレーターがマッチングを行った後、オンチェーンで決済されます。ユーザーはガス代を支払う必要はなく、リレイヤーが立て替えます。
- 3つのマッチング経路:COMPLEMENTARY(従来の買い手と売り手による取引)、MINT(買い手対買い手、トークンを鋳造して流動性を創出)、MERGE(売り手対売り手、トークンをバーンして資金を回収)これにより、市場のコールドスタートと退出問題を解決します。
- 正しいPnL計算には、取引履歴だけでなく、すべての操作(分割、統合、換金)における正味キャッシュフローを考慮する必要があります。多結果市場では、NegRiskAdapterを通じて資産変換が行われ、価値の保存が保証されます。
- V2アップグレードでは、スマートコントラクトで制御されるデポジットウォレットを導入することで、ユーザーの資金即時処分権を制限し、ゴーストフィル(ゴースト約定)の割合を30%から0.17%に削減しました。
原作:@MrRyanChi、@insidersdotbot 予測市場取引プラットフォーム創業者
序章:知られざる Polymarket の B面
この半年間、Twitter上には数億、数千もの予測市場に関する記事が溢れました。
そのうちの90%は、AIがプログラムを作り、いかにして大金を生み出すかという話です。これがいわば「縁」であり、あなたがこの始まったばかりの市場に触れる最初の一歩です。
残り9%は、具体的な取引戦略やマーケットシェア、スマートマネーの戦略分析についてです。これが「道」であり、あなたが自身の取引戦略を模索し、予測市場でお金を稼ぐ考え方を理解し始める第一歩です。
しかし、この「法」、すなわち予測市場の根底にある取引設計、PNL計算、資金移動のルールについては、その1%の人たちが語ってはいるものの、その多くは短く簡潔なツイートの中に散在しています。これらの隠者のような達人たちは、どうやらその完全な秘術を一度に皆と共有することを望んでいないか、あるいはその余裕がないようです。
そこで、insiders.bot がローンチされ、Polymarket が v2 アップデートを完了した今、私は最も根底にある技術から、私たちが常に取引してきたこの市場の根底にある「法」を一度に解説しようと思います。
昨年10月、私は簡易版の記事を書き、Polymarket のいくつかの核となるコンポーネントについて大まかに説明しました。今回は、本当にすべての技術的な設計の詳細を皆さんにお見せし、わかりやすい言葉で説明したいと思います。
この記事には、私たちのチームがこの8ヶ月間注いできた心血が込められています。
この8ヶ月の間、@insidersdotbot チームは、最も高速な取引と最も正確なPNL計算を実現するために、Polymarket のすべての基盤となるスマートコントラクトとアルゴリズムアーキテクチャを分解してきました。これを実現できるのは、私たち自身が構築したAPIだけであり、今日に至るまで、他の誰にもできていません。
だからこそ、私たちこそが Polymarket の根底にある「法」を最も分解できる存在なのだと思います。
この記事では、基盤となる ctf-exchange-v2 スマートコントラクトがどのようにすべての資金を処理するのか、Relayer がどのようにあなたのガス代を立て替えるのか、そして Negative Risk がどのように数学的に価値の保存を保証しているのかを、あなたに理解していただきます。
これは単なる簡単な解説記事ではありません。これは、開発者の視点から Polymarket の根底にあるメカニズムを再分解した、アルゴリズムの完全解説です。
最も基本的なところから始めましょう。すなわち、あなたが注文を出すとき、一体何を送信しているのでしょうか?
P.S この記事はAIによって文体と構成を調整されています。あなたのOpenClaw、Manus、Hermes、あるいはどんなAI Agentにも訓練データとして自由に送ってください!!!
第一章:クリックからオンチェーンまで、何が起こっているのか
1.1 注文は取引ではなく、「意図」である
従来の分散型取引所(Uniswap など)では、取引を行う際にウォレットに確認ポップアップが表示され、ガス代を支払い、トランザクションをブロックチェーンのネットワーク(メンプール)に送信してマイナーにブロックに含まれるのを待ちます。
しかし、Polymarket では、注文を出すときにウォレットに表示されるのは通常、「トランザクション」リクエストではなく、「署名」リクエストです。そして、ガス代を支払う必要もありません。
これは単なるユーザーエクスペリエンスの最適化ではありません。これは、基盤となるアーキテクチャの根本的な違いです。
Polymarket では、注文(Order)は本質的に、EIP-712 標準に準拠した構造化データの一部です。このデータには、あなたが何をしたいかが含まれています:
- あなたは Maker ですか、それとも Taker ですか? どの Token(tokenId)を買いたいですか?
- いくら支払いたいですか(makerAmount)?
- いくら受け取りたいですか(takerAmount)?
署名するとき、あなたは自分の秘密鍵でこのデータにスタンプを押し、「確かにそうしたい」と証明しているだけです。その後、この署名付きデータは Polymarket の中央集権型サーバーに送信され、オフチェーンの中央指値注文帳簿(CLOB)に保存されます。
この段階では、ブロックチェーン上では何も起こっていません。 あなたのお金はまだウォレットの中にあり、トークンも移動していません。あなたの注文は、データベース内の単なる1行のレコードです。
1.2 価格の暗黙的な表現
ここで、あなたが注文を送信した瞬間に時間を止めてみましょう。Polymarket の基盤となるコントラクトの注文構造を注意深く見ると、非常に直感に反することに気づくでしょう:注文の署名データには「価格」(Price)というフィールドがありません。
そんなはずはない? 価格なしでどうやって取引するんだ?
Polymarket のプロトコルの根底にある設計では、価格は暗黙的です。それは、あなたが支払ってもよいと思う数量と、受け取りたい数量から計算されます。
YEN 契約を 100 単位、$0.60 で買いたい場合:
- 支払う必要があるのは:$60 pUSD(makerAmount = 60)
- 受け取りたいのは:100 の YEN 契約(takerAmount = 100)
- 暗黙の価格 = makerAmount / takerAmount = 60 / 100 = $0.60
YEN 契約を 100 単位、$0.60 で売りたい場合:
- 支払う必要があるのは:100 の YEN 契約(makerAmount = 100)
- 受け取りたいのは:$60 pUSD(takerAmount = 60)
- 暗黙の価格 = takerAmount / makerAmount = 60 / 100 = $0.60
(注:最新のV2 SDKでは、開発者は直接 price と size を渡すことができますが、SDKは基盤となる署名時に、依然としてこれらを makerAmount と takerAmount に変換します。この設計の巧妙な点は、スマートコントラクトが「価格」という概念を理解する必要がなく、「資産Aと資産Bを交換する」というロジックだけを処理すればよいということです。これにより、オンチェーンの計算ロジックが大幅に簡素化され、ガス消費量が削減されます。)
1.3 Operator:Polymarket の「交通警官」
注文はすべてオフチェーンにあるのに、どのようにしてオンチェーンでの実際の資産移転になるのでしょうか?
ここで、Polymarket アーキテクチャの中で最も中心的なブラックボックスの役割が登場します:Operator。
ctf-exchange-v2 スマートコントラクトには、極めて重要な修飾子があります:onlyOperator。これは、Polymarket 公式が管理する特定のアドレスだけが、matchOrders や fillOrder といった実行関数を呼び出す権限を持つことを意味します。
これは従来のDeFiとはまったく異なります。Uniswap では、誰でもルーターコントラクトを呼び出すことができます。しかし、Polymarket では、自分でオンチェーンで注文をマッチングさせることはできません。すべてのマッチングは、Operator によって提出されなければなりません。
なぜこんな設計になっているのでしょうか? MEV(マイナー抽出可能価値)とフロントランニングを排除するためです。
従来のオンチェーン注文帳簿では、誰かが非常に低い価格で大口の注文を出すと、すべてのアービトラージボットがメンプール内で激しく競争し(ガス代を吊り上げ)、他の誰よりも先にその注文を奪おうとします。これによりガス代が高騰し、一般ユーザーの体験は極めて悪化します。
一方、Polymarket では、すべての注文はオフチェーンのCLOB内にあります。Operator のマッチングエンジンがサーバー上で誰と誰が約定すべきかを計算し、その結果を1つのトランザクションにまとめ、Operator がそれをチェーンに送信します。
Operator だけがマッチング結果を提出できるため、メンプール内のボットがこのトランザクションを見ても、実行関数を呼び出す権限がないため、フロントランニングすることはできません。
これは典型的な「ハイブリッド分散型」アーキテクチャです。マッチングと順序付けは中央集権的(Operator が決定)ですが、決済と資金の保管は分散型(スマートコントラクトが実行)です。
Operator は誰を先にマッチングするか後にするかを決定できますが、あなたの資金を盗むことは絶対にできません。なぜなら、あなたが署名した EIP-712 データを提供する必要があり、コントラクトは署名を厳密に検証するからです。
P.S: ただし、ここで少しだけ言及しておきます。私たち @insidersdotbot は最近、このメカニズムに、コピートレードがフロントランニングできたり、大幅な遅延削減が可能になる可能性のある利用可能なポイントを発見したようです。何かアップデートがあれば、公式アカウントでお知らせします。
第二章:Relayer の経済学
2.1 「ガス代無料」の幻想
Polymarket の最大のセールスポイントの1つは、ユーザーに対する「ガス代無料」です。pUSD さえあれば取引でき、ウォレットに POL(旧MATIC)を入れておく必要はありません。
しかし、ブロックチェーンの物理法則は破れません。Polygon上で状態変更(資産移転など)が発生する限り、誰かがガス代を支払わなければなりません。
あなたが払っていないのなら、誰が払っているのでしょうか? 答えは:Relayer です。
2.2 Relayer のリレーネットワーク
Polymarket はユーザー自身にトランザクションを送信させるのではなく、Relayer Client と呼ばれるインフラストラクチャ(relayer-v2.polymarket.com)を展開しています。
初期のアーキテクチャでは、このようなサービスは通常、OpenZeppelin Defender Relay のようなエンタープライズ向けサービスに依存し、署名者プールを維持することで高負荷時の nonce 競合問題を解決していました。
あなたのアプリがトランザクションを作成し(トークンの承認や利益の交換など)、あなたが秘密鍵で署名して Relayer に送信します。Relayer は「トランザクションスポンサー」として、このトランザクションをチェーンに送信し、自身の資金プールを使ってあなたの代わりにガス代を立て替えます。

Relayerアーキテクチャと経済循環
2.3 取られるのは結局ユーザーなのか?
初期の多くのメタトランザクションアーキテクチャでは、Relayer がガス代を立て替えた後、通常はユーザーの預かり金から手数料(0.3%や固定の数ドルなど)を差し引いて、ガスコストを補填していました。
しかし、Polymarket は極めて積極的です。現在のV2アーキテクチャでは、本当に全額をユーザーに代わって負担しています。
公式ドキュメントには明確にこう書かれています:「Polymarket は、リレー経由でルーティングされるすべての操作のガス代を支払います」。ウォレットのデプロイ、トークンの承認、分割、マージ、交換に至るまで、すべてガス代無料であり、隠れた操作手数料も一切かかりません。
なぜ Polymarket はこのような採算の合わない取引を喜んで行うのでしょうか?
なぜなら、Polygon 上のガスコストは非常に低く(通常わずか数セント)、ガス代無料によるシームレスな体験が、膨大な数の Web2 ユーザーを引き付けることができるからです。ユーザーが取引でごくわずかな Taker 手数料を発生させるだけで、このわずかなガスコストを十分にカバーできます(これについては後述します)。
これを知れば、次の疑問が自然と湧いてきます:この「ガス代無料」アーキテクチャは、私たちの取引にどのような影響を与えるのでしょうか?
最大の隠れたコ


