﻿---
title: "智慧帳戶所有者與恢復風險"
description: "稽核誰能控制智慧帳戶、恢復如何更換所有者、適用哪些延遲與取消權，以及模組或升級是否形成隱藏的接管路徑。"
image: "https://wiki.fcontext.com/og.png"
---

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

# 智慧帳戶所有者與恢復風險

> 僅供教育參考，不構成投資、法律或安全建議。恢復或設定錯誤可能轉移智慧帳戶控制權，或使帳戶永久鎖定。

<a id="answer"></a>

## 直接答案

智慧帳戶由部署在該帳戶上的授權邏輯控制，不一定由單一私鑰控制。所有者或驗證器可以批准一般操作，而監護人、恢復模組、執行器或升級管理員可能另有路徑，可更換所有者或執行交易。

恢復功能降低單一金鑰遺失造成帳戶無法使用的機率，卻也增加了一個接管攻擊面。應稽核每條能夠授權執行、變更驗證器或所有者、安裝模組、升級程式碼、取消恢復或最終完成恢復的路徑。「所有者」與「監護人」等介面標籤不能證明合約中的實際權限。

將結果記錄為權限表：準確的鏈上地址、角色、可呼叫操作、門檻、延遲、取消權限、到期條件、支出範圍、升級權限及獨立控制域。每次設定變更後，以及該帳戶存在的每條鏈上，都要重新核對。

<a id="mechanism"></a>

## 運作方式

1. **識別帳戶與程式碼。** 核對鏈 ID 和帳戶地址，再確定實作合約、代理或信標、工廠及版本。對 ERC-1967 代理應讀取實作、信標與管理員儲存槽，而不是相信介面徽標。
2. **列出授權路徑。** 讀取所有者與門檻、ERC-4337 驗證器、ERC-7579 驗證器、執行器、掛鉤和回退處理器、Safe 類模組與守衛、工作階段金鑰、恢復合約，以及任何緊急或升級管理員。執行器或 Safe 模組可能繞過一般所有者門檻執行。
3. **解析恢復狀態機。** 確定誰能提名替代所有者、如何計算監護人批准、批准是否到期、延遲何時開始、誰能取消、誰能最終完成，以及恢復被替換或重複發起時會發生什麼。不要假設所有「社交恢復」合約都採用相同順序。
4. **測試獨立性與可用性。** 若多個地址由同一裝置、個人、雲端帳戶、密碼庫、託管人或管理員控制，它們便不獨立。確認發生一個預期故障後仍可達到門檻，同時不讓單一控制域擁有足夠接管權。
5. **審查設定權限。** 確定誰能增刪監護人、驗證器、執行器、掛鉤、模組或回退處理器；變更門檻或延遲；暫停取消；或升級帳戶與恢復程式碼。只有當延遲和取消路徑不能被其他角色繞過時，時間鎖才有意義。
6. **監控並驗證。** 訂閱或獨立輪詢恢復、所有者、模組、門檻、實作與管理員變更。任何操作後都要解碼交易，並在正確鏈上核對回執、事件、儲存與最終所有者集合；介面顯示成功並不充分。

<a id="example"></a>

## 範例

假設帳戶所有者為 `O`，有三名監護人 `G1`、`G2` 和 `G3`。任意 `2-of-3` 名監護人可以提議新所有者 `N`；隨後開始 `24-hour` 延遲；`O` 可在延遲期間取消；延遲到期後任何人都能最終完成。恢復模組無需 `O` 批准最終交易，即可呼叫帳戶的所有者變更函式。

標籤看似代表分散式恢復，但 `G1` 與 `G2` 是備份到同一雲端帳戶的兩個應用程式。雲端憑證一旦洩漏，單一攻擊者便取得實際的 `2-of-3` 門檻。攻擊者提議 `N`；若監控或取消在 `24 hours` 內失敗，即使 `O` 的私鑰從未被盜，最終完成仍會轉移控制權。

因此，稽核應將 `G1` 與 `G2` 標記為一個控制域，核對恢復模組地址與程式碼，在未受損裝置上測試取消，確認哪個事件啟動延遲，並檢查升級管理員能否立即替換模組。除非實作提供有文件且可安全回復的測試流程，否則不要在持有資產的帳戶上執行真實恢復測試。

<a id="risks"></a>

## 風險與控制

- **監護人相關性：** 使用真正獨立的裝置、憑證、人員或託管人；測試聯絡與恢復程序時不要集中助記詞。
- **模組或執行器權限過大：** 檢查已安裝程式碼及準確可呼叫範圍。依文件路徑移除閒置模組，並在鏈上驗證移除結果。
- **門檻薄弱：** 同時評估抗接管性與可用性。簽署者共用一個控制域時，名義上較高的門檻無濟於事；無法達到的門檻則會鎖定帳戶。
- **缺少延遲或可繞過：** 在鏈上核對延遲、啟動延遲的事件、誰能縮短延遲，以及每條能立即更換所有者的路徑。
- **取消無效：** 演練發現與取消流程；在需要時保留原生 Gas 與獨立提交路徑；確認取消本身需要舊所有者、法定人數還是另一角色。
- **升級接管：** 監控實作、信標與管理員變化。能無延遲升級的管理員應視為有能力改寫所有已記錄恢復規則。
- **惡意或陳舊介面：** 獨立核對鏈、帳戶、模組、擬議所有者、門檻、延遲與交易 calldata。絕不要向「恢復」服務透露助記詞或私鑰。
- **虛假完成：** 取消或最終完成後核對回執與最終儲存狀態。確認預期所有者和模組已生效，且不需要的提案無法繼續執行。

若出現未經授權的恢復，停止簽署無關請求，並保存提案 ID、交易雜湊、calldata、區塊、模組地址與目前狀態。在未受損裝置上透過獨立 RPC 核實警報；若合約規定的取消路徑仍可用，應使用該路徑，並監控最終完成、升級、模組變更與資產轉移。若控制權可能已遺失，應依預先編寫的事件回應方案行動，只聯絡經過認證的專案方或託管方；臨時起意的轉移可能被搶先交易，或暴露目標地址。

<a id="misconceptions"></a>

## 常見誤解

- **「只有所有者帳戶能轉移資產。」** 驗證器、執行器、模組、恢復合約或升級後的程式碼可能提供額外執行路徑。
- **「三名監護人就是三個獨立方。」** 合約只計算地址的有效批准，無法識別共用裝置、備份或管理員。
- **「`24-hour` 延遲保證有時間回應。」** 還必須具備監控、可用的取消權限、Gas 和交易打包條件，另一條特權路徑也可能繞過延遲。
- **「移除監護人就終止了其存取權。」** 應確認最終鏈上設定，並檢查與該方相關的其他角色、模組、工作階段金鑰與待處理恢復。
- **「客服可以恢復任何智慧帳戶。」** 只有鏈上編碼或預先設定的權限才能變更自我託管帳戶。沒有有效的所有者或恢復路徑時，存取權可能永久遺失。

<a id="related"></a>

## 相關主題

- [帳戶抽象](/zh-tw/crypto/account-abstraction/)
- [多簽模組風險](/zh-tw/crypto/multisig-module-risk/)
- [多簽簽署者輪換](/zh-tw/crypto/multisig-signer-rotation/)
- [私鑰管理](/zh-tw/crypto/private-key-management/)
- [交易模擬](/zh-tw/crypto/transaction-simulation/)

<a id="sources"></a>

## 來源

- [ERC-4337：使用替代記憶體池的帳戶抽象](https://eips.ethereum.org/EIPS/eip-4337)
- [ERC-7579：最小模組化智慧帳戶](https://ercs.ethereum.org/ERCS/erc-7579)
- [Safe 模組](https://docs.safe.global/advanced/smart-account-modules)
- [Safe.sol](https://github.com/safe-fndn/safe-smart-account/blob/main/contracts/Safe.sol)
- [ERC-1967：代理儲存槽](https://eips.ethereum.org/EIPS/eip-1967)

Source: https://wiki.fcontext.com/zh-tw/crypto/smart-account-owner-recovery-risk/index.mdx
