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

# MPC 錢包

> AgentWallex 如何透過 Paratro 的 2-of-3 門檻 MPC 簽名保護代理錢包。

## 概覽

AgentWallex 中的每個代理錢包都由多方運算（MPC）保護。完整的私鑰**永遠不會被重建** — 不在記憶體中、不在磁碟上、不在任何地方。取而代之的是，密碼學金鑰分片分佈在三個獨立方之間，其中任意兩方即可合作簽署交易。

## MPC 運作原理

傳統錢包儲存單一私鑰。如果該金鑰被竊取，所有資金都會損失。MPC 消除了這個單點故障。

### 2-of-3 門檻簽名

AgentWallex 使用 Paratro 的 2-of-3 門檻 MPC 協議。三個金鑰分片被產生，其中任意兩個即可產生有效簽名：

| 分片      | 持有者              | 角色      |
| ------- | ---------------- | ------- |
| Shard 1 | AgentWallex 簽名服務 | 主動簽名參與者 |
| Shard 2 | 獨立託管節點           | 主動簽名參與者 |
| Shard 3 | 冷儲存              | 復原和災難恢復 |

<Note>
  在正常運作期間，Shard 1 和 Shard 2 合作簽署交易。Shard 3 保持離線狀態，僅用於復原情境。
</Note>

### 安全屬性

* **無單點危害** — 攻擊者必須同時入侵兩個獨立系統。
* **無金鑰重建** — 完整的私鑰永遠不會在任何單一位置被組合。
* **前向保密性** — 定期分片輪換（主動秘密共享）使舊分片失效。
* **相同錢包地址** — 分片輪換不會更改錢包的鏈上地址。

## 金鑰生成

金鑰使用分散式金鑰生成（DKG）產生：

<Steps>
  <Step title="隨機分片生成">
    3 個 MPC 節點各自獨立產生一個隨機分片。
  </Step>

  <Step title="公鑰推導">
    分片透過密碼學方式組合以產生公鑰（及對應的錢包地址）。
  </Step>

  <Step title="分片分發">
    每個節點僅保留自己的分片。完整的私鑰永遠不存在。
  </Step>
</Steps>

```typescript theme={null}
// When you create an agent, DKG happens automatically
const agent = await aw.agents.create({
  name: "my-agent",
  chain: "eip155:8453",
});

// The wallet address is derived from the distributed public key
console.log(agent.wallet.address); // 0x...
```

## 金鑰輪換

金鑰分片使用一種稱為**主動秘密共享**的技術定期輪換。此過程：

1. 產生對應相同公鑰的新分片。
2. 將新分片分發給所有三方。
3. 銷毀舊分片。

輪換後，即使攻擊者先前竊取了分片，它也會在密碼學上變得無用。

<Info>
  金鑰輪換是自動的，不需要開發者採取任何行動。錢包地址保持不變。
</Info>

## 緊急凍結

任何授權方都可以立即凍結代理的錢包，阻止所有交易：

<CodeGroup>
  ```typescript SDK theme={null}
  // Freeze — immediate, no transactions can be signed
  await aw.agents.freeze("agent_abc123");

  // Unfreeze — subject to mandatory cool-down period
  await aw.agents.unfreeze("agent_abc123");
  ```

  ```bash API theme={null}
  # Freeze
  curl -X PUT https://api.agentwallex.com/api/v1/agents/agent_abc123/status \
    -H "X-API-Key: awx_your_api_key" \
    -H "Content-Type: application/json" \
    -d '{"status": "inactive"}'

  # Unfreeze
  curl -X PUT https://api.agentwallex.com/api/v1/agents/agent_abc123/status \
    -H "X-API-Key: awx_your_api_key" \
    -H "Content-Type: application/json" \
    -d '{"status": "active"}'
  ```
</CodeGroup>

<Warning>
  凍結錢包後，有強制 10 分鐘冷卻期才能解凍。這可防止攻擊者立即重新啟用已凍結並解凍的錢包。
</Warning>

## 基礎設施安全防線

除了開發者配置的策略外，Paratro 還在 MPC 簽名層強制執行**無法被 API 呼叫覆寫**的硬性限制：

| 控制項    | 預設值        |
| ------ | ---------- |
| 絕對每日上限 | \$50,000   |
| 異常偵測   | 基於 ML，始終啟用 |
| 緊急凍結   | 隨時可用       |
| 冷卻期    | 凍結後 10 分鐘  |

這些限制作為最後一道防線，即使您的 API 金鑰被洩露或業務層策略配置有誤。
