コンテンツにスキップ

取引モデルと人間のマーケットメイカー

取引モデルと人間のマーケットメイカー

Section titled “取引モデルと人間のマーケットメイカー”

bitCaster は中央指値注文板(CLOB)を使います。指値注文は板に残り、成行注文またはクロスする指値注文が流動性を取り、決済は Cashu CTF のアトミックスワップでピアツーピアに行われます。

板に残る指値注文は「オンラインで決済可能である」というコミットメントです。メイカーは注文が約定、取消、または期限切れになるまで、ブラウザタブまたは Bot プロセスを接続しておく必要があります。テイカーが注文にマッチしたら、メイカーは TradeHub メッセージに応答し、タイムアウト前にプルーフをロックできなければなりません。

本格的なマーケットメイカーは、たまに開くブラウザではなく Bot を運用するべきです。bitcaster-cli は長時間動作するウォレット兼スワッププロセスとして bitcaster-daemon を使うため、非ブラウザのメイカーもワイヤプロトコルを変えずに参加できます。

直接マッチングは、同じアウトカムセットについての買いと売りの通常フローです。

  • 売り手はアウトカムプルーフを買い手向けにロックします。
  • 買い手は sats を売り手向けにロックします。
  • アダプター署名により、2つの mint spend は atomic になります。

売り手側のトークン locktime は、買い手側の sats locktime より設定された安全差分だけ長くなければなりません。これにより、売り手が spend した後、買い手がアダプター秘密を抽出する時間を確保します。

補完マッチングは、完全に補集合になるアウトカムセットの買い注文同士をマッチさせます。バイナリ市場では YESNO が補集合です。A, B, C のカテゴリ市場では、A の補集合は B|CB の補集合は A|CA|B の補集合は C です。

メイカーは split を行う側になります。

  1. メイカーは通常の sats 担保を選択します。
  2. メイカーは mint にその担保を完全な CTF アウトカムセットへ split させます。
  3. メイカーは自分が欲しいアウトカムセットを保持します。
  4. メイカーはテイカーの補完アウトカムセットを、通常の売り手側アトミックスワップとしてロックします。
  5. テイカーは通常の買い手側フローで sats を支払います。

このため、補完決済ではメイカーが最初からテイカー側のアウトカムトークンを持っている必要はありません。mint 手数料を含め、完全セットを作れるだけの通常担保が必要です。

補完マッチのメイカーになり得る板に残る指値買いでは、bitCaster は事前 split をデフォルトにします。注文を板に出す前に、クライアントは通常の sats を完全な CTF アウトカムセットへ split し、生成されたアウトカム proof をローカルに保存し、その注文用に保持側とロック側を予約します。

これにより、ライブ注文が決済可能であることを保ちます。mint が応答しない、またはウォレットが十分な通常担保を選択できない場合、クライアントは決済不能なメイカー注文を残すのではなく、注文提出を失敗させるか注文経路を取り消すべきです。後で補完テイカーがマッチした場合、メイカーは予約済みの補完側から約定分だけをロックし、保持側も約定分だけをアクティブポジションとして解放します。未約定数量に対応する残りの proof は注文に予約されたまま残ります。

ブラウザでは、指値買いにデフォルト ON の 事前スプリット チェックボックスとして表示されます。CLI も同じデフォルトを使います。bitcaster-cli order submit ... --no-preflight-split は、マッチ時に split したい運用者向けの明示的な opt-out です。opt-out すると、マッチ到着時に担保が消費済み、別用途に予約済み、または mint が遅い場合に決済失敗リスクが高くなります。

初回リリースの方針は fee-first と maker surplus です。

  • mint は一定の swap/input fee を取る場合があります。
  • テイカーは提示された支払い額に加え、自分側の mint 手数料を負担します。
  • テイカーがメイカーの有利な価格をクロスした場合、その価格改善分はメイカーの余剰として残せます。
  • v1 ではマッチングエンジンはスワップ内で別手数料を取りません。エンジンを Cashu アトミックスワップに挿入すると、非カストディアルなプロトコルが大きく複雑になるためです。

例:メイカーが Buy YES 50 / 100 を出し、テイカーが Buy NO 49 / 100 を出した場合、実際の余剰と手数料処理は約定価格ルールに依存しますが、mint 手数料を払った後の価格改善分をメイカーが受け取れる設計にします。

人間のメイカーは、ライブ注文にコミットしてよい担保だけをウォレットに置き、オフラインになる前に注文を取り消すべきです。ブラウザタブを取引途中で閉じると決済に失敗する可能性があります。Bot と daemon のメイカーは、古い注文、スワップ失敗、予約済み在庫、mint 手数料の変化を監視してください。