﻿---
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와 계정 주소를 확인하고 구현, proxy 또는 beacon, factory, 버전을 파악합니다. ERC-1967 proxy라면 화면 배지 대신 구현, beacon, 관리자 슬롯을 읽습니다.
2. **권한 경로를 열거합니다.** 소유자와 임계값, ERC-4337 검증자, ERC-7579 검증자, 실행자, hook, fallback handler, Safe형 모듈과 guard, 세션 키, 복구 계약, 비상·업그레이드 관리자를 읽습니다. 실행자나 Safe 모듈은 일반 소유자 임계값 없이 실행할 수 있습니다.
3. **복구 상태 머신을 해석합니다.** 누가 대체 소유자를 지명하고, 승인을 어떻게 세고 만료시키며, 지연이 언제 시작되고, 누가 취소·완료하며, 복구가 교체되거나 반복될 때 무엇이 일어나는지 확인합니다. 모든 “소셜 복구” 계약이 같은 순서를 쓰지는 않습니다.
4. **독립성과 가용성을 시험합니다.** 같은 기기, 사람, 클라우드 계정, 비밀번호 금고, 수탁자 또는 관리자가 제어하는 주소들은 독립적이지 않습니다. 예상된 한 번의 장애 후에도 임계값을 달성하면서 한 제어 도메인이 탈취할 힘은 갖지 않는지 확인합니다.
5. **설정 권한을 검토합니다.** 누가 가디언, 검증자, 실행자, hook, 모듈, fallback handler를 추가·제거하고, 임계값이나 지연을 바꾸며, 취소를 중단하고, 계정·복구 코드를 업그레이드할 수 있는지 확인합니다. 다른 역할이 지연과 취소를 우회할 수 있다면 timelock은 유효하지 않습니다.
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와 독립 제출 경로를 유지하며, 취소에 이전 소유자, 정족수, 다른 역할 중 무엇이 필요한지 확인합니다.
- **업그레이드 탈취:** 구현, beacon, 관리자 변경을 감시합니다. 지연 없이 업그레이드 가능한 관리자는 모든 복구 규칙을 바꿀 수 있다고 봅니다.
- **악성 또는 오래된 인터페이스:** 체인, 계정, 모듈, 제안 소유자, 임계값, 지연, calldata를 독립 검증합니다. “복구” 서비스에 시드 구문이나 개인 키를 주지 마십시오.
- **거짓 완료:** 취소나 완료 후 영수증과 최종 스토리지를 확인합니다. 의도한 소유자와 모듈이 활성화되고 원치 않는 제안을 실행할 수 없는지 봅니다.

무단 복구가 나타나면 관련 없는 서명을 중지하고 제안 ID, 거래 hash, calldata, 블록, 모듈 주소, 현재 상태를 보존합니다. 안전한 기기와 독립 RPC로 경고를 검증하고, 가능하면 문서화된 취소 경로를 사용하며, 완료, 업그레이드, 모듈 변경, 자산 이전을 감시합니다. 이미 제어권을 잃었을 수 있다면 미리 작성한 사고 계획과 인증된 연락처만 사용합니다. 즉흥적 이전은 front-running되거나 목적지를 노출할 수 있습니다.

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

## 일반적인 오해

- **“소유자만 자산을 옮길 수 있다.”** 검증자, 실행자, 모듈, 복구 계약 또는 업그레이드된 코드가 추가 경로를 제공할 수 있습니다.
- **“가디언 세 명은 독립된 세 주체다.”** 계약은 주소의 유효 승인만 세며 공유 기기, 백업, 관리자를 감지하지 못합니다.
- **“`24-hour` 지연이면 대응 시간이 보장된다.”** 감시, 사용 가능한 취소 권한, gas, 거래 포함이 모두 필요하며 다른 특권 경로가 지연을 우회할 수 있습니다.
- **“가디언을 삭제하면 접근이 끝난다.”** 최종 온체인 설정과 그 주체에 연결된 다른 역할, 모듈, 세션 키, 대기 복구를 확인합니다.
- **“지원팀은 모든 스마트 계정을 복구할 수 있다.”** 온체인에 인코딩되었거나 미리 설정된 권한만 자기수탁 계정을 바꿀 수 있습니다. 유효한 소유자나 복구 경로가 없으면 접근을 영구히 잃을 수 있습니다.

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

## 관련 주제

- [계정 추상화](/ko/crypto/account-abstraction/)
- [멀티시그 모듈 위험](/ko/crypto/multisig-module-risk/)
- [멀티시그 서명자 교체](/ko/crypto/multisig-signer-rotation/)
- [개인 키 관리](/ko/crypto/private-key-management/)
- [거래 시뮬레이션](/ko/crypto/transaction-simulation/)

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

## 출처

- [ERC-4337: Account Abstraction Using Alt Mempool](https://eips.ethereum.org/EIPS/eip-4337)
- [ERC-7579: Minimal Modular Smart Accounts](https://ercs.ethereum.org/ERCS/erc-7579)
- [Safe Modules](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: Proxy Storage Slots](https://eips.ethereum.org/EIPS/eip-1967)

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