[단상] 계정에 대하여

계정의 종류


이더리움 문서를 보면 계정에는 두 가지가 있다.

Account types and transactions

There are two types of accounts in Ethereum state:

    Normal or externally controlled accounts and

    contracts, i.e., snippets of code, think a class.


하나는 외부 소유 계정(EOA: Externally Owned Accounts), 다른 하나는 계약 계정(CA: Contract Accounts)

외부 소유 계정

계약은 알겠는데, 외부 소유 계정은 당췌 뭐를 말하는 거지?

계정이면 그냥 계정이지...외부란 말은 왜 붙었을까?

geth를 통해 생성한 계정도 있고, Metamask로 rpc 연결해서 만든 계정도 있는데... 앞에 것은 내부 계정이고, 뒤에 것이 외부 계정인가?

그러면 왜 설명에 내부 소유 계정 이런 말은 없는 걸까?

[Metamask image]


[Mist wallet]

......

내부냐 외부냐?

고민하며 내릴 결론은 우리가 아는 사용자 계정, 비트코인의 지갑 같은 것은 모두 외부 소유 계정이다.

geth로 생성했던, personal.newAccount()로 생성했던, metamask나 mist로 생성했던 모두 외부 소유 계정이다.

여기서 외부란 그냥 계약 계정에 대비해서 블럭체인 망 안에 저장되는 것이 아니라는 것인 것 뿐이다.

이름 더럽게도 지었다.

물론 이런 질문이 들 수 있다.

geth로 생성하면 데이터 디렉토리 밑에 keystore에 저장되는 되요????

여긴 내부 아닌가요?


아니다.

여기도 외부다. 블럭체인 망에 저장되는 것이 아니기 때문이다.


결론

즉 사용자 계정은 개인 PC, 모바일, 심지어 서버 등...어디에도 저장될 수 있다. 하지만 이 모두 블럭체인 망 바깥이다.


---------------------------------

글 쓰고 2시간 뒤 생각난 좋은 생각

이더리움 DB에는 User Table이 없다.