본문 바로가기
Coding(코딩)/Blockchain 이론 정리

[블록체인 개념 정리] 이더리움의 외부 소유 계정(EOA) 및 컨트랙트(Contract)

by DevKev 2022. 12. 28.

이더리움에서는 계정(account)의 유형이 크게 두가지로 나뉜다:

1. 외부 소유 계정(Externally Owned Account, EOA)

2. 컨트랙트 계정(Contract Account, CA)

 

나중에 Solidity 코드를 작성할 때 msg.sender 개념이 헷깔릴 여지가 있어 두 개의 계정을 분리해서 생각할 필요가 있다.

다음과 같이 정리해봤다.

 

외부 소유 계정(Externally Owned Account, EOA)

메타마스크와 같은 웹 또는 모바일 지갑에서 생성한 계정의 유형을 외부 소유 계정(EOA)이라고 한다. 앞으로는 EOA라고 통칭한다. EOA는 메타마스크를 사용해본 사람이면 알겠지만 개인키가 있는 계정이다. 이 개인키로 자금이나 컨트랙트에 대한 접근 및 제어가 가능하다.

 

컨트랙트 계정(Contract Account, CA)

컨트랙트 계정(CA)에는 스마트 컨트랙트가 담긴다. CA에는 개인키가 없으며, 작성된 스마트 컨트랙트 코드의 로직으로 제어한다.

 

 

 

계정 간의 거래 유형

CA는 개인키가 없으므로 트랜잭션을 시작(initiate)할 수 없고 EOA만 트랜잭션을 시작할 수 있다.

EOA로부터 전달 받은 메세지를 수행하기 위해 CA는 자신의 컨트랙트 혹은 다른 컨트랙트와 교류하여 계약이 발동된다.

 

즉, 모든 트랜잭션은 EOA로부터 시작되며 거래 유형은 다음과 같이 구분지을 수 있다.

[출처: https://steemit.com/kr/@yahweh87/eoa]