跳轉到主要內容

概覽

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

MPC 運作原理

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

2-of-3 門檻簽名

AgentWallex 使用 Paratro 的 2-of-3 門檻 MPC 協議。三個金鑰分片被產生,其中任意兩個即可產生有效簽名:
分片持有者角色
Shard 1AgentWallex 簽名服務主動簽名參與者
Shard 2獨立託管節點主動簽名參與者
Shard 3冷儲存復原和災難恢復
在正常運作期間,Shard 1 和 Shard 2 合作簽署交易。Shard 3 保持離線狀態,僅用於復原情境。

安全屬性

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

金鑰生成

金鑰使用分散式金鑰生成(DKG)產生:
1

隨機分片生成

3 個 MPC 節點各自獨立產生一個隨機分片。
2

公鑰推導

分片透過密碼學方式組合以產生公鑰(及對應的錢包地址)。
3

分片分發

每個節點僅保留自己的分片。完整的私鑰永遠不存在。
// 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. 銷毀舊分片。
輪換後,即使攻擊者先前竊取了分片,它也會在密碼學上變得無用。
金鑰輪換是自動的,不需要開發者採取任何行動。錢包地址保持不變。

緊急凍結

任何授權方都可以立即凍結代理的錢包,阻止所有交易:
// 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");
凍結錢包後,有強制 10 分鐘冷卻期才能解凍。這可防止攻擊者立即重新啟用已凍結並解凍的錢包。

基礎設施安全防線

除了開發者配置的策略外,Paratro 還在 MPC 簽名層強制執行無法被 API 呼叫覆寫的硬性限制:
控制項預設值
絕對每日上限$50,000
異常偵測基於 ML,始終啟用
緊急凍結隨時可用
冷卻期凍結後 10 分鐘
這些限制作為最後一道防線,即使您的 API 金鑰被洩露或業務層策略配置有誤。