
EOA와 smart account: 정말 중요한 차이들
암호화폐 지갑을 써본 적이 있다면, 계정을 써본 것입니다. 하지만 Ethereum 위의 모든 계정이 같지는 않습니다. 근본적으로 다른 두 종류가 있으며, 그 차이는 지갑 동작의 거의 모든 것을 좌우합니다. 어떻게 서명하는지, 누가 결제를 승인할 수 있는지, 어떻게 접근 권한을 복구하는지, 누가 수수료를 내는지, 그리고 어떤 토큰으로 내는지를 말입니다.
이 글은 두 가지 계정 유형 — externally owned account(EOA)와 smart account — 을 차례로 살펴보고, 자기수탁 사용자가 일상에서 실제로 체감하는 축을 따라 비교합니다. 이는 account abstraction 시리즈의 두 번째 글입니다. 아직 제1원리로 보는 account abstraction을 읽지 않았다면, 그곳이 좋은 출발점입니다. 여기서는 특히 EOA와 smart account의 구분에 초점을 맞춥니다.
EOA란 무엇인가
externally owned account는 Ethereum 최초의 계정입니다. 그것은 정확히 하나의 secp256k1 키 쌍, 즉 개인 키와 거기서 파생된 공개 키로 정의됩니다. 여러분이 보는 주소 — 그 0x... 문자열 — 는 그 공개 키에서 파생됩니다. 개인 키를 가진 사람이 계정을 통제합니다, 그게 전부입니다.
그 하나의 키가 모든 일을 합니다. 키는 모든 트랜잭션을 ECDSA 서명으로 서명합니다. 계정에는 어떤 코드도, 어떤 규칙도, 어떤 조건도 붙어 있지 않습니다. 트랜잭션이 도착했을 때 네트워크가 던지는 유일한 질문은 「이 서명이 이 주소에 대해 유효한가」뿐입니다. 유효하면 트랜잭션이 실행됩니다.
여러분이 접해온 대부분의 브라우저 확장 지갑 — MetaMask 식의 단일 키 모델 — 은 EOA를 생성합니다. 하나의 시드 문구가 키를 파생하고, 키가 계정을 통제하며, 그 시드 문구를 보호하는 것이 보안 모델의 전부입니다. 그것은 단순하고, 잘 이해되어 있으며, 10년간 작동해 왔습니다. 동시에 경직되어 있습니다. 키 하나, 서명자 하나, 서명 방식 하나, 그리고 그 키가 유출되면 계정은 사라집니다.
smart account란 무엇인가
smart account는 컨트랙트 계정입니다. 즉, 그 동작이 단일 키가 아니라 배포된 코드로 정의되는 계정입니다. 「이 하나의 ECDSA 서명이 유효한가」가 아니라, 계정은 어떤 작업을 받아들일지 결정하기 위해 자신의 검증 로직을 실행합니다. 그 로직은 프로그래밍이 가능합니다.
규칙이 코드 안에 살기 때문에, smart account는 하나가 아니라 두 개의 서명을 요구하거나, 순수 ECDSA 이외의 서명 방식을 받아들이거나, 지출 한도를 강제하거나, 복구 경로를 정의할 수 있습니다 — 그 컨트랙트가 규정하는 무엇이든 말입니다. Safe 식의 스마트 컨트랙트 지갑이 이 모델의 잘 알려진 예입니다. Ethereum과 다른 EVM 체인에서, 이러한 계정이 프로토콜을 바꾸지 않고도 일급 계정처럼 동작하게 해주는 표준이 ERC-4337입니다.
통제: 하나의 키 대 맞춤 규칙
이것이 가장 큰 차이입니다. EOA에는 프로토콜에 정확히 하나의 규칙이 새겨져 있습니다. 하나의 키에서 나온 하나의 유효한 ECDSA 서명이 모든 것을 승인한다는 것입니다. 두 번째 필수 승인자를 추가할 방법도, 「이 한도를 넘는 금액은 추가 확인이 필요하다」고 말할 방법도 없습니다. 키가 곧 계정입니다.
smart account는 스스로 결정합니다. multisig 정족수를 요구하거나, 특정 동작을 제한하거나, 세션 키를 덧입힐 수 있습니다. SSP는 이를 이용해 **2-of-2 multisig**를 구현합니다. 하나의 키는 SSP Wallet 브라우저 확장에, 두 번째 키는 SSP Key 모바일 앱에 있으며, 계정의 검증 로직은 어떤 트랜잭션이든 받아들이기 전에 둘 다의 승인을 요구합니다. 유출된 브라우저 확장 하나만으로는 자금을 옮길 수 없는데, 컨트랙트가 단일 키 승인을 애초에 받아들이지 않기 때문입니다.
복구: 키를 잃었을 때 무슨 일이 일어나는가
EOA에서는 키가 곧 계정입니다. 시드 문구를 잃으면 계정은 복구 불가능하고, 유출되면 공격자가 완전한 통제권을 가집니다. 호소할 로직이 없으므로 내장된 구제책도 없습니다 — 오직 그 하나의 키만 중요합니다.
smart account는 복구를 자신의 규칙의 일부로 정의할 수 있습니다. 검증이 프로그래밍 가능하므로, 컨트랙트는 대체 승인 경로, 지정된 복구 당사자, 또는 시간 지연이 있는 키 교체를 규정할 수 있습니다. SSP의 구체적 모델은 2-of-2입니다. 두 기기 중 어느 하나에 대한 접근을 잃어도 두 서명이 항상 필요하므로 자금이 공격자에게 넘어가지 않습니다. 실질적 효과는 어떤 단일 기기도 단일 장애점이 되지 않는다는 것입니다.
누가 gas를 내는가, 그리고 어떤 토큰으로
EOA는 자신의 트랜잭션 비용을 내며, 체인의 네이티브 코인으로 냅니다. Ethereum에서 ERC-20 토큰을 옮기려면 EOA는 여전히 gas를 충당할 ETH가 필요합니다. 계정에 토큰은 있지만 ETH가 없다면 발이 묶입니다 — 흔하고 답답한 초보자의 경험입니다.
smart account는 그 연결을 끊을 수 있습니다. ERC-4337 아래에서 paymaster라는 구성 요소가 작업의 gas를 후원하거나, 네이티브 코인이 아닌 토큰으로 결제를 받을 수 있습니다. 수수료는 제3자가 부담할 수도 있고, 여러분이 이미 옮기고 있는 바로 그 토큰으로 낼 수도 있습니다. 이는 gas 후원과 paymaster 설명에서 자세히 다룹니다. 여기서의 요점은 「누가, 무엇으로 내는가」가 더 이상 고정되지 않는다는 것입니다.
여러 동작의 일괄 처리
EOA에서는 각 트랜잭션이 개별적으로 서명되는 별개의 작업입니다. 고전적인 ERC-20 패턴 — 어떤 컨트랙트가 여러분의 토큰을 쓰도록 승인한 다음 그 컨트랙트를 호출하는 것 — 은 두 개의 트랜잭션, 두 개의 서명, 두 번의 gas 결제를 순서대로 수행합니다.
smart account는 여러 동작을 하나의 작업으로 묶을 수 있으며, 그 작업은 완전히 성공하거나 완전히 되돌려집니다. 승인하고 스왑하기가 하나의 단계가 됩니다. 이는 부분적으로는 편의성이고 부분적으로는 안전성입니다. 승인은 내주었는데 후속 동작은 일어나지 않은 어중간한 상태가 존재하지 않기 때문입니다.
서명 방식
EOA는 한 가지만 검증합니다. secp256k1 위의 ECDSA 서명입니다. 그것이 externally owned account에 대해 프로토콜이 확인하는 유일한 방식이며, 바꿀 수 없습니다.
smart account는 그 코드가 검증하도록 작성된 것은 무엇이든 검증합니다. 여러 서명, 특이한 곡선, 또는 집계 서명을 확인할 수 있습니다. SSP의 EVM 계정은 Schnorr 집계 서명을 검증합니다. 브라우저 확장과 모바일 앱에서 나온 두 개의 부분 서명이 — secp256k1 위에서 MuSig2 방식으로 — 컨트랙트가 검증하는 하나의 on-chain 서명으로 결합됩니다. 체인은 하나의 서명을 보지만, 그 뒤의 보안 모델은 두 명의 독립적인 승인자입니다. 이는 EOA가 구조적으로 할 수 없는 일입니다.
배포와 주소
EOA는 키가 존재하는 순간에 존재합니다. 오프라인에서 키 쌍을 생성하면 해당 주소는 이미 유효합니다. 아무 비용도 들지 않고 어떤 컨트랙트도 건드리지 않습니다. 계정은 그저 존재합니다.
smart account는 컨트랙트이므로, 코드로 정의된 동작을 담을 수 있으려면 먼저 on-chain에 배포되어야 합니다. 실제로 ERC-4337 지갑은 결정론적이고 반사실적인 주소를 사용합니다. 주소는 계정의 매개변수로부터 미리 계산되므로, 컨트랙트가 실제로 배포되기 전에도 자금을 받을 수 있고, 배포는 첫 사용 시에 일어납니다. 어떤 배포 트랜잭션이 확정되기도 전에 주소를 공유하고 결제를 받을 수 있습니다.
비용: 정직한 절충
프로그래밍 가능성은 공짜가 아닙니다. smart account는 컨트랙트 안에서 검증 로직을 실행하므로, 그 작업은 순수 EOA 전송보다 gas가 다소 더 듭니다. 순수 EOA 전송은 Ethereum 트랜잭션 중 거의 가장 저렴한 축에 듭니다. 계정을 처음 배포하는 데에도 일회성 비용이 듭니다.
대부분의 자기수탁 사용자에게 이는 두 키 보안, 복구 옵션, 일괄 처리, 유연한 gas와 맞바꾸는 합리적인 대가입니다. 하지만 이는 실제 차이이며, 얼버무리기보다 분명히 짚어둘 가치가 있습니다.
SSP가 무엇을 쓰는가, 그리고 각 모델이 언제 합리적인가
직접 말하자면, SSP는 EVM 체인 — Ethereum, Polygon, Base, BNB Smart Chain, Avalanche — 에서 2-of-2 multisig를 구현하기 위해 ERC-4337을 통한 smart account를 사용합니다. 컨트랙트는 여러분의 두 기기로 만들어진 Schnorr 집계 서명을 요구하며, SSP의 EVM 구현은 2025년 Halborn의 감사를 받았습니다. 구성 요소들이 어떻게 맞물리는지 보려면 SSP의 account abstraction 아키텍처를 읽고, 체인별 세부 사항은 SSP에서의 Ethereum을 참고하세요.
그렇다면 각 모델은 언제 합리적일까요? EOA는 가능한 가장 단순한 계정입니다. 가장 저렴한 gas, 즉각적인 존재, 배포 불필요. 단순함이 우선인 단일 사용자, 단일 키 구성에는 더할 나위 없이 쓸 만합니다. smart account는 단일 키가 줄 수 없는 속성 — 여러 명의 필수 승인자, 복구 로직, 일괄 처리, 후원되거나 토큰으로 표시되는 gas — 을 원할 때 합리적입니다. 절충은 다소 높은 gas와 배포라는 개념입니다.
어떤 단일 키도 단일 장애점이 되어서는 안 된다는 것이 그 전체 전제인 자기수탁 지갑에게는 smart account가 자연스러운 선택입니다. 그것이 SSP가 그 위에 구축된 이유입니다. Ethereum 계정 모델 자체를 더 깊이 알아보려면 Ethereum 계정 문서가 권위 있는 참고 자료이고, ERC-4337 명세는 오늘날 smart account를 실용적으로 만드는 표준입니다.


