[이더리움] Account

민수·2023년 5월 22일
0

Account

이더리움에서 상태(state)는 계정(account)이라고 하는 오브젝트(object)들로 구성되어 있다.

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

개인키에 의해 통제되는 계정이다.

트랜잭션을 생성하기 위해서는 전자 서명 정보가 필요하다.

전자 서명을 하기 위해서는 반드시 개인 키 정보가 필요하다.

트랜잭션을 발생시키고 이를 다른 EOA나 CA에 전송할 수 있다.

메타마스크에서 생성하는 계정을 예로 들 수 있다.

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

컨트랙트 코드에 의해 통제되는 계정, 컨트랙트 네트워크에 배포할 때 생성된다.

계정의 주소를 통제할 수 있는 개인키가 존재하지 않는다.

특정 조건을 충족했을 때 실행되는 컨트랙트 코드가 존재한다.

CA는 개인키가 존재하지 않으므로 직접 트랜잭션을 발생시킬 수 없다.

EOA가 발생시킨 트랜잭션을 전송 받아 해당 트랜잭션의 메시지가 조건을 충족한다면 컨트랙트 코드가 실행되어 특정 액션이 발생하게 된다.

Account 인터페이스

interface Account {
  nonce: number
  balance: string
  storageRoot?: string
  codeHash?: string
}
  • EOA

    • nonce : Account에서 전송된 트랜잭션 수
    • balance : Account가 소유한 잔액, wei 단위로 표시
    • storageRoot : 사용하지 않음
    • codeHash : 사용하지 않음
  • CA

    • nonce : Account에서 생성된 Contract 수
    • balance : Account가 소유한 잔액, wei 단위로 표시
    • storageRoot : 데이터를 저장하는 공간
    • codeHash : Account에 포함된 EVM code의 Hash

wei : 이더의 가장 작은 단위로 1 wei는 10 ** 18

참고

0개의 댓글