> ## Documentation Index
> Fetch the complete documentation index at: https://docs.0x.one/llms.txt
> Use this file to discover all available pages before exploring further.

# セキュリティ

> 非カストディアル設計、エージェントキー、EIP-712署名、リスクガード。

0x1 は、ミラートレーディングプラットフォームが資産を保有したり、生のプライベートキーを参照したり、ユーザーが明示的に承認していない操作を行ったりすべきではない、という前提に基づいて構築されています。このページでは、それを可能にしているアーキテクチャ上の意思決定を説明します。

## ノンカストディアル設計

<CardGroup cols={2}>
  <Card title="資金は Aster 上に留まる" icon="vault">
    0x1 はユーザー資金を保有・移動・カストディしません。すべての入金、証拠金、PnL 決済、出金はユーザーの Aster アカウント上で直接処理されます。0x1 はユーザーが承認していないアドレスに資金を出金する権限を持ちません。
  </Card>

  <Card title="オムニバス口座を持たない" icon="building-columns">
    プールアカウントやオムニバスウォレットは存在しません。各フォロワーの資金はミラーが有効な間も自身の Aster アカウント内に留まります。エンジンが行うのは注文の発注のみで、資金を移動させません。
  </Card>
</CardGroup>

## エージェントキー

ミラーエンジンは、人が手動で 1 件ずつ承認するより速く、フォロワーの Aster アカウント上にリアルタイムで注文を出す必要があります。エージェントキーは、ユーザーのメインウォレットへのアクセスをエンジンに渡すことなく、この問題を解決します。

<AccordionGroup>
  <Accordion title="エージェントキーとは">
    エージェントキーは、Aster 上の特定操作——ユーザーが設定した範囲内での注文発注とクローズ——のみに権限が限定された委任署名キーです。資金移動、アカウント設定の変更、その他範囲外の操作は一切できません。

    ユーザーはエージェントキーを 1 度だけ生成またはインポートします。その後、エンジンはユーザー設定の上限（アロケーション、レバレッジ上限、スリッページ許容値）の範囲内で自律的にキーを使用します。
  </Accordion>

  <Accordion title="エージェントキーの保管方式">
    エージェントキーは AES-256 で保管時に暗号化されます。復号鍵は暗号化されたエージェントキーと同一システム内には保管されません。キーは単一の署名操作の間のみメモリ上で復号され、永続化レイヤーに平文で保持されることはありません。
  </Accordion>

  <Accordion title="エージェントキーのローテーションと取り消し">
    0x1 ダッシュボードの Security セクションから、いつでも以下が可能です:

    * **ローテーション** — 新しいエージェントキーを生成し、旧キーを無効化します。旧キーで署名済みの実行中注文には影響しません。
    * **リボーク** — エージェントキーを完全に無効化します。リボーク後は、新しいキーを発行するまでエンジンはアカウント上で新規注文を発注できません。既存のオープンポジションはそのまま残り、ユーザー自身または Aster 経由で管理します。
  </Accordion>

  <Accordion title="エージェントキーが漏洩した場合">
    エージェントキーの権限は注文発注のみに限定されているため、キーが漏洩しても資金が抜き取られることはありません。最悪のケースでも、ユーザーが設定した上限（アロケーション上限、レバレッジ上限）内での不正注文発注に留まります。キーを即座にリボークすれば、それ以降の発注権限はすべて失効します。
  </Accordion>
</AccordionGroup>

## EIP-712 署名

ミラーエンジンが発注するすべての注文は、EIP-712 構造化データ署名による署名済みトランザクションです。これにより以下 2 点が保証されます:

<CardGroup cols={2}>
  <Card title="人間が読める意図" icon="eye">
    EIP-712 は署名対象データを構造化することで、ウォレット UI が——資産、方向、サイズ、価格範囲を含めて——何が承認されているのかを正確に表示できるようにします。不透明な 16 進数文字列ではありません。
  </Card>

  <Card title="リプレイ防止" icon="shield">
    各署名メッセージにはドメインセパレータと nonce が含まれます。特定チェーン上の特定注文に対する署名は、別の注文や別のチェーンでリプレイすることはできません。
  </Card>
</CardGroup>

エンジンは発注するすべての注文に対して EIP-712 メッセージを構築・署名します。署名は注文実行前に Aster のスマートコントラクトによってオンチェーンで検証されます。0x1 が未署名・脆弱署名のトランザクションを送信することは決してありません。

## リスクガード

エンジンは発注するすべての注文に上限を適用します。これらのガードはシグナル検出から注文送信までのホットパスで動作するため、市場が急変してもバイパスされることはありません。

<Tabs>
  <Tab title="アロケーション上限">
    エンジンはユーザーが割り当てた証拠金のうち、現在オープンミラーポジションに使用されている量を追跡します。新規注文がユーザー設定のアロケーション上限を超える場合、残り余地に合わせて注文サイズが縮小されます。余地がなければ注文はスキップされます。
  </Tab>

  <Tab title="レバレッジ上限">
    ミラー注文のサイジング前に、エンジンはユーザーの現在の証拠金を基に適用される実効レバレッジを計算します。必要なレバレッジがユーザー上限を超える場合、上限に収まるようポジションが縮小されます。リーダーがどのようなトレードをしようと、エンジンが上限を超えるレバレッジを適用することはありません。
  </Tab>

  <Tab title="スリッページ許容値">
    注文送信前、エンジンは対象資産の現在の Aster オーダーブック深度を確認します。想定約定価格が基準価格からユーザー設定のスリッページ許容値を超えて乖離している場合、注文はスキップされ、理由付きでユーザーのアクティビティフィードに記録されます。
  </Tab>

  <Tab title="証拠金チェック">
    各注文前に、エンジンはユーザーの現在の Aster アカウント証拠金を読み取ります。最小サイズでも注文をサポートするのに証拠金が不足している場合、注文はスキップされます。エンジンがユーザーに追加証拠金を強制したり、既存ポジションを超えてアカウントエクスポージャーを増やすような操作を行うことはありません。
  </Tab>
</Tabs>

## エンジンが決して行わないこと

<AccordionGroup>
  <Accordion title="生のプライベートキーを必要以上に平文で扱わない">
    エージェントキーは 1 回の署名操作の間だけメモリ内で復号され、直後にクリアされます。システムのどのコンポーネントも、復号済みエージェントキーをデータベース、ログファイル、キャッシュに保存しません。
  </Accordion>

  <Accordion title="ユーザー資金を一切移動させない">
    エージェントキーの委任スコープは注文発注のみです。エンジンは出金、送金、アカウント間の資金移動を伴ういかなる操作も開始する権限を持ちません。
  </Accordion>

  <Accordion title="ユーザーが設定した上限を絶対に超えない">
    すべての注文は送信前に 4 種すべてのリスクガードを通過します。ユーザーのアロケーション上限、レバレッジ上限、スリッページ許容値、証拠金チェックを回避するコードパスは存在しません。
  </Accordion>

  <Accordion title="アカウント設定を変更しない">
    エンジンはユーザーの Aster アカウント構成、手数料ティア、その他いかなる設定も変更できません。可能なのは注文発注とクローズのみです。
  </Accordion>
</AccordionGroup>

<Note>
  0x1 は最初からノンカストディアル運用のために設計されています。セキュリティ監査レポートは公開され次第、本セクションに掲載されます。セキュリティ上の問題を発見された場合は、0x1 ウェブサイトの連絡先よりご報告ください。
</Note>
