Logo
Search|
Published on

[Blockchain] EOA와 CA, 지갑의 두 종류 정리

Authors
  • avatar
    Name
    Easyoon
    Twitter

[블록체인 기초] EOA와 CA, 지갑의 두 종류 정리

이 글에서는 이더리움과 같은 블록체인 생태계를 이해하기 위한 가장 기본적이면서도 중요한 개념인 **계정(Account)**에 대해 알아보겠습니다.

우리가 흔히 쓰는 지갑 주소에는 EOACA라는 두 두 종류의 지갑이 있습니다. 이들의 차이점을 아주 쉽게 비유로 풀어보겠습니다.


1. 블록체인 세상의 두 가지 계정

블록체인 네트워크(예: 이더리움) 위에서 자산을 주고받거나 서비스를 이용하려면 '계정'이 필요합니다. 현실 세계에서 우리가 은행 계좌를 개설하는 것과 비슷하죠. 하지만 블록체인에는 주인이 **'사람'**인 계정과 **'코드'**인 계정이 나누어져 있습니다.

  • EOA: 외부 소유 계정 (Externally Owned Account)
  • CA: 계약 계정 (Contract Account)

2. EOA와 CA의 특징과 차이점

EOA (외부 소유 계정)

"사람이 들고 다니는 개인 지갑"

우리가 흔히 '메타마스크' 같은 앱으로 만든 계정이 바로 EOA입니다.

  • 주인: 사람(사용자)이 직접 제어합니다.
  • 열쇠 (보안): **개인키(Private Key)**와 이를 복구하기 위한 니모닉(Mnemonic) 문구가 세트입니다. 이 열쇠를 가진 사람만이 이 계정의 돈을 보낼 수 있습니다.
  • 특징: 스스로 동작하지 않습니다. 사람이 직접 "돈 보내줘!" 혹은 "이 서비스 실행해줘!"라고 서명(명령)을 해야만 움직입니다.

CA (계약 계정)

"미리 정해진 대로만 움직이는 자동판매기"

블록체인에 배포된 '스마트 컨트랙트' 프로그램을 의미합니다.

  • 주인: 사람이 아닌 내부 코드가 주인입니다.
  • 열쇠: 개인키나 니모닉이 없습니다. 따라서 누군가 강제로 열 수 없고, 오직 코드에 적힌 규칙대로만 행동합니다.
  • 특징: 누군가(EOA 등)가 신호를 주면, 미리 입력된 프로그램에 따라 자동으로 토큰을 바꾸거나 NFT를 발행하는 등의 일을 처리합니다.

차이점: "배포(Deployment)"

두 계정을 가르는 결정적인 차이점은 바로 **'어떻게 만들어지는가'**입니다.

  1. EOA는 생성합니다: 지갑 앱에서 버튼 하나로 즉시 만들 수 있습니다. 수학적인 계산으로 주소를 뽑아내는 것이라 비용도 들지 않습니다.
  2. CA는 배포해야 생깁니다: CA는 개발자가 코드를 짠 후 블록체인 네트워크에 **배포(Deploy)**하는 과정을 거쳐야만 주소가 생깁니다. 이 로봇(코드)을 네트워크라는 매장에 설치하는 비용(가스비)도 발생하죠. 즉, 배포된 코드만이 CA가 될 수 있습니다.

3. 개인키 관리와 코드의 신뢰성

결국 우리가 블록체인을 안전하게 사용하려면 두 가지만 기억하면 됩니다.

  1. 내 EOA의 니모닉과 개인키는 절대 남에게 알려주지 말 것! (열쇠를 뺏기는 것과 같습니다.)
  2. 내가 상호작용하는 CA(서비스)가 믿을만한 코드인지 확인하려 노력할 것! (자판기가 고장 났거나 사기용일 수 있다고 생각할 수 있습니다.)

다음에는 이 EOA의 불편함을 해결하기 위해 등장한 **'계정 추상화(Account Abstraction)'**에 대해 알아보겠습니다.