이더리움에서 상태(state)는 계정(account)이라고 하는 오브젝트(object)들로 구성되어 있다.
개인키에 의해 통제되는 계정이다.
트랜잭션을 생성하기 위해서는 전자 서명 정보가 필요하다.
전자 서명을 하기 위해서는 반드시 개인 키 정보가 필요하다.
트랜잭션을 발생시키고 이를 다른 EOA나 CA에 전송할 수 있다.
메타마스크에서 생성하는 계정을 예로 들 수 있다.
컨트랙트 코드에 의해 통제되는 계정, 컨트랙트 네트워크에 배포할 때 생성된다.
계정의 주소를 통제할 수 있는 개인키가 존재하지 않는다.
특정 조건을 충족했을 때 실행되는 컨트랙트 코드가 존재한다.
CA는 개인키가 존재하지 않으므로 직접 트랜잭션을 발생시킬 수 없다.
EOA가 발생시킨 트랜잭션을 전송 받아 해당 트랜잭션의 메시지가 조건을 충족한다면 컨트랙트 코드가 실행되어 특정 액션이 발생하게 된다.
interface Account {
nonce: number
balance: string
storageRoot?: string
codeHash?: string
}
EOA
CA
wei : 이더의 가장 작은 단위로 1 wei는 10 ** 18