이더리움에서 상태(state)는 계정(accont)이라고 하는 오브젝트(object)들로 구성돼 있다. 각각의 계정은 20바이트의 주소와 계정 간 값과 정보를 직접적으로 전달해 주는 상태변환(state transition)을 갖고 있다.
이더리움 계정 (account)
- 외부소유계정(EOA, Externally owned account)
- 일반적으로 이더를 전송하고 받을 때 사용하는 개인 이더리움 주소
- 주소와 비밀키로 구성돼 있음
- 비밀키를 갖고 통제할 수 있는 계정
- 다른 게정으로 이더를 송금하고 수신할 수 있음
- 스마트 컨트랙트에 트랜잭션을 보낼 수 있음
- 개인이 자신의 이더를 관리하고 전송할 수 있는 핵심적인 비밀키가 포함된 계정
- 사람에 의해서 통제되는 계정
- 비밀키를 통해서 이더리움 네트워크에 다양한 명령을 요청할 수 있음
- 컨트랙트 계정(CA, Contract account)
- 비밀키가 존재하지 않음
- 어떤 요청에 의해 자동으로 실행
- 컨트랙트 계정으로 개인키가 없으며, 코드를 담고 있음
- 스마트 컨트랙트를 블록체인에 배포할 때 생성됨
- 다른 계정과 이더를 송수신할 수 있음
- EOA나 다른 컨트랙트의 호출을 받아 트랜잭션을 발생시키며 스스로 동작하지 않음