﻿---
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>

## 직접 답변

지갑 세션 키는 일반적으로 보조 서명 키 또는 그 키에 연결된 위임 자격 증명이며, 스마트 계정은 정해진 규칙 안에서만 이를 허용합니다. 규칙은 시간, 대상 계약, 함수 선택자, 토큰 수량, 거래 횟수 같은 조건을 제한할 수 있습니다. 주 서명자가 매 작업을 승인하지 않아도 앱이 반복 작업을 수행하도록 하는 것이 목적입니다.

“세션 키”는 설계 패턴이지 하나의 통일된 이더리움 표준이 아닙니다. ERC-4337은 프로그래밍 가능한 계정 검증과 시간 제한이 있는 `UserOperation` 검증을 제공하며, ERC-7579 같은 모듈형 계정 체계는 검증자, 실행자, 훅을 수용할 수 있습니다. 키가 할 수 있는 일은 최종적으로 지갑에 배포된 계정과 모듈 코드가 결정합니다. 만료만으로 세션이 안전해지는 것은 아니며, 브라우저의 복사본을 지워도 온체인에 등록됐거나 만료되지 않은 위임에 포함된 권한이 반드시 폐기되는 것은 아닙니다.

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

## 작동 방식

일반적인 흐름은 5단계입니다.

1. 소유자는 기기에서 새 키 쌍을 만들거나 세션 서명자를 식별하는 자격 증명을 승인합니다. 설계가 앱 서버를 신뢰할 수 있는 수탁자로 명시하지 않는 한 세션 개인 키를 서버로 보내서는 안 됩니다.
2. 소유자는 기본 지갑으로 정책을 승인합니다. 어떤 시스템은 키와 정책을 온체인에 설치하고, 다른 시스템은 작업이 도착할 때 계정이 검증하는 서명된 위임을 사용합니다.
3. 앱은 작업을 구성하고 세션 키로 서명합니다. ERC-4337 흐름에서는 계정의 `validateUserOp` 로직이 서명과 정책을 검사합니다. 번들러 시뮬레이션은 진입 검사일 뿐 실행이나 안전의 증거가 아닙니다.
4. 계정은 실행 전에 모든 제한을 강제해야 합니다. 유효 권한은 `A_effective = K ∩ P ∩ S`로 요약할 수 있습니다. 키 보유(`K`), 설정된 정책(`P`), 현재 계정 또는 체인 상태(`S`)가 모두 작업을 허용해야 합니다.
5. 세션은 만료, nonce 또는 할당량 소진, 명시적 폐기, 모듈 제거, 그 밖의 구현별 무효화 경로로 종료됩니다. 올바른 체인에서 최종 계정 상태를 확인해야 합니다.

세션을 승인하기 전에 다음을 확인합니다.

- 체인 ID, 스마트 계정 주소, 계정 구현, 검증자 또는 모듈 주소
- 세션 공개 키 또는 자격 증명 식별자와 개인 키 자료의 저장 위치
- 허용되는 모든 대상, 함수 선택자, 토큰, 수신자 규칙, 네이티브 자산 한도, 호출별 또는 누적 지출 상한
- `validAfter`, `validUntil`, nonce 규칙, 사용 횟수, 시간이 블록 타임스탬프와 다른 출처 중 무엇으로 측정되는지
- 명시적으로 필요하지 않은 배치, 중첩 호출, `delegatecall`, 토큰 승인, 모듈 설치, 계정 업그레이드, ERC-1271 메시지 서명이 차단되는지
- 누가 세션을 폐기할 수 있는지, 소유자가 독립적인 복구 경로를 유지하는지, 폐기에 Gas 또는 작동 중인 번들러나 paymaster가 필요한지

정책은 실제로 실행될 작업을 검사해야 합니다. 바깥쪽 배치 대상만 확인하면 내부 호출이 제한되지 않을 수 있고, 함수와 금액을 무시하고 수신자만 확인해도 같은 문제가 생깁니다. 강제 코드가 모든 실행 경로를 포괄해야만 제한에 의미가 있습니다.

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

## 예시

게임 지갑이 24시간 동안 지속되는 세션을 만듭니다. 검증된 게임 계약만 호출하도록 허용하고 `delegatecall`과 토큰 승인을 차단하며, 호출별 네이티브 자산을 `0.02 ETH`, 누적 지출을 `20 USDC`로 제한합니다. 게임은 소유자의 반복 확인 없이 허용된 동작을 제출할 수 있지만 관련 없는 NFT 이전 요청은 검증에 실패해야 합니다.

사용 전에 소유자는 계정, 체인, 모듈, 세션 공개 키, 만료, 한도, 폐기 방법을 기록합니다. 낮은 가치의 작업 한 건을 시험하고 디코딩된 호출과 계정 이벤트를 확인한 뒤 폐기를 별도로 시험합니다. 이는 설정된 경로를 확인할 뿐, 모듈에 취약점이 없거나 침해된 기기가 남은 한도까지 쓸 수 없음을 증명하지는 않습니다.

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

## 위험과 통제

- **지나치게 넓은 정책:** 와일드카드 대상, 제한 없는 선택자, 무제한 토큰 승인, 배치, `delegatecall`은 “제한된” 키를 소유자에 가까운 권한으로 바꿀 수 있습니다. 명시적 허용 목록을 쓰고 관리 작업을 금지해야 합니다.
- **키 탈취:** 브라우저 저장소, 로그, 백업, 확장 프로그램, 악성 코드, 공유 기기가 세션 키를 노출할 수 있습니다. 지원된다면 하드웨어 보호 또는 격리 저장을 우선하고 수명과 누적 한도를 낮게 설정합니다.
- **잘못된 강제 로직:** 계정, 검증자, 실행자, 훅이 호출을 잘못 해석하거나 다른 실행 경로를 빠뜨릴 수 있습니다. 검증된 배포, 검토된 코드, 감사, 우회 사례 테스트를 활용합니다.
- **재생과 맥락 혼동:** nonce 처리가 약하거나 의도한 체인, 계정, 모듈, 정책에 대한 바인딩이 빠지면 다른 맥락에서 재사용될 수 있습니다. 정확한 서명 도메인과 온체인 재생 방지를 확인합니다.
- **만료에 대한 오해:** `validUntil`은 ERC-4337 작업 한 건의 범위만 제한하고 등록된 키, 토큰 허용량, 별도 위임을 자동 제거하지 않을 수 있습니다. 만료 뒤 각 권한의 실제 상태를 확인합니다.
- **폐기 실패:** 로컬 데이터 삭제는 비밀의 복사본 한 개만 없앱니다. 계정에 문서화된 경로로 폐기하고 온체인 결과를 확인하며 충분한 Gas와 소유자 통제 대체 경로를 유지합니다.
- **업그레이드 가능하거나 악의적인 모듈:** 모듈은 강력한 실행 권한을 가질 수 있고 업그레이드는 정책 동작을 바꿀 수 있습니다. 소유자, 업그레이드 지연, 일시 중지 권한, 구현 주소, 모듈 제거 절차를 확인합니다.
- **Gas 및 후원 악용:** 세션이 계정 자금을 Gas로 소비하거나 paymaster가 거부하면 사용할 수 없게 될 수 있습니다. 가능하면 수수료 동작을 제한하고 독립적인 제출 경로를 유지합니다.

세션 키 노출이 의심되면 영향을 받은 앱 사용을 중단하고 세션 식별자와 관련 거래 해시를 보존한 뒤 깨끗한 소유자 통제 기기에서 키를 폐기하거나 비활성화합니다. 그런 다음 지원되는 모든 체인의 대기 중 및 최근 작업, 토큰 승인, 설치된 모듈, 계정 업그레이드, 잔액을 조사합니다. 계정이나 모듈 설계 때문에 폐기가 신뢰할 수 없을 때만 남은 자산을 옮기십시오. 검증되지 않은 “복구” 사이트로 서두르면 손실이 커질 수 있습니다.

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

## 흔한 오해

- **“세션 키는 자산을 옮길 수 없다.”** 강제 정책이 허용하는 모든 작업을 수행할 수 있으며 여기에는 전송, 스왑, 승인, 서명이 포함될 수 있습니다.
- **“ERC-4337이 세션 키 권한을 정의한다.”** ERC-4337은 계정 검증과 실행 프레임워크를 제공하지만 세션 정책은 지갑 또는 모듈별로 다릅니다.
- **“짧은 만료가 최대 손실을 제한한다.”** 손실은 호출별 한도, 누적 한도, 호출 빈도, Gas, 승인, 가격, 도달 가능한 모든 실행 경로에도 달려 있습니다.
- **“로그아웃하면 키가 폐기된다.”** 로그아웃이 로컬 복사본을 지울 수는 있어도 온체인 등록이나 서명된 위임이 무효임을 증명하지는 않습니다.
- **“시뮬레이션이 성공하면 작업은 안전하다.”** 현재 검증이 작업을 수락한다는 점은 보여도 사용자 의도, 향후 포함, 실행 성공, 최종성, 모듈 취약점 부재는 증명하지 않습니다.

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

## 관련 주제

- [계정 추상화](/ko/crypto/account-abstraction/)
- [ERC-4337 Paymaster 위험](/ko/crypto/erc4337-paymaster-risk/)
- [개인 키 관리](/ko/crypto/private-key-management/)
- [거래 시뮬레이션](/ko/crypto/transaction-simulation/)
- [지갑 서명](/ko/crypto/wallet-signature/)

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

## 출처

- [Session Keys & Delegation](https://docs.erc4337.io/smart-accounts/session-keys-and-delegation.html) - ERC-4337 Documentation (확인일: 2026-08-21)
- [ERC-4337: Account Abstraction Using Alt Mempool](https://eips.ethereum.org/EIPS/eip-4337) - Ethereum Improvement Proposals (확인일: 2026-08-21)
- [ERC-7579: Minimal Modular Smart Accounts](https://eips.ethereum.org/EIPS/eip-7579) - Ethereum Improvement Proposals (확인일: 2026-08-21)
- [Safe Modules](https://docs.safe.global/advanced/smart-account-modules) - Safe Docs (확인일: 2026-08-21)

Source: https://wiki.fcontext.com/ko/crypto/session-key-wallet/index.mdx
