계정(Accounts)[TIL / 이더리움]

알락·2022년 11월 9일
0

이더리움

목록 보기
2/16

ethereum banner

Account 유형

Externally-owned account(EOA, 외부계정)

  • 개인키를 통해 누구나 통제할 수 있는 계정
  • 생성하는데 어떤 비용도 들지 않는다.
  • 트랜잭션의 시작점이 될 수 있다.
  • EOA 간 트랜잭션은 ETH/Token 의 송수신만 가능하다.
  • 공유키와 개인키의 암호호된 키 쌍에 의해 만들어진다.

Contract account(컨트랙트 계정)

  • 네트워크에 배포되어 있는 스마트 컨트랙트를 가리키는 계정
  • 처음 컨트랙트를 새성할 때 비용이 든다.
  • 트랜잭션을 수신 받아야만 트랜잭션을 전송할 수 있다
  • EOA로부터 받은 트랜잭션으로 새로운 컨트랙트를 생성하거나 토큰 전송같은 다양한 행위를 하는 코드를 실행시킬 수 있다.
  • 개인키를 갖지 않는 대신, 로직과 스마트 컨트랙트에 의하여 작동한다.

두 계정 모두 이더리움과 토큰을 송수신, 혹은 보관할 수 있다. 또한 배포된 스마트 컨트랙트들과 상호작용할 수 있다


Account 구성요소

⌞ nonce

해당 계정으로부터 트랜잭션이 생성된 갯수를 나타낸다. 이 값을 통해 트랜잭션이 한 번만 생성되었다는 것을 증명해낸다. 컨트랙트 계정에서는 이 값이 해당 계정에서 생성된 횟수를 나타낸다.

⌞ balance

해당 계정에 얼마나 많은 wei가 있는지에 대한 정보다.

⌞ codeHash

이 해시값은 EVM의 계정 코드를 나타낸다. 컨트랙트 계정은 여러 작업을 수행되는 코드들을 가지고 있다. EVM 코드는 해당 계정이 메시지 요청을 받았을 때 실행되어진다. 다른 필드값과는 달리 절대 변경될 수 없는 값이이다. 모든 코드들은 탐색될 때 어떤 해쉬값과 대응되어지는 상태 데이터베이스를 포함하고 있다. 이 해시 값이 바로 codeHash 이다. EOA는 이 필드값이 빈 문자열이다.

⌞ storageRoot

storage hash라고도 불린다. 머클 패트리샤 트리 루트 노드의 256-bit 해시값이 있다. 이 값은 계정의 저장 내역들을 담고 있다.

참고

profile
블록체인 개발 공부 중입니다, 프로그래밍 공부합시다!

0개의 댓글