-
같이보는 블록체인 개념 (9) 어카운트(Account)BlockChain/Technology 2021. 8. 22. 19:53
오늘의 주제는 Account입니다.
Account는 블록체인에서 아주 중요한 개념입니다.
이더리움에서 계정은 마치 나의 아바타와 같습니다. 나를 대변해서
모든 트랜잭션의 주체가 되며, 컨트랙트일 경우에는 컨트랙트의 관리자가 되어줍니다.
1. 어카운트
이더리움의 데이터들은 state에 저장이 되어 네트워크에 반영이 됩니다. state는 account들로 구성되어 있습니다. account들은 자기 자신에 대한 정보와 20바이트 주소를 가집니다. 이더리움 어카운트는 기본적으로 4개의 요소로 구성이 됩니다.
- Nonce : 각 트랜잭션이 오직 한번만 처리되게 하는 카운터
- Value : 어카운트의 현재 ether 잔고(단위 wei)
- CodeHash : 어카운트의 EVM 코드의 해시값으로 컨트랙트 어카운트에서 실행시킬 코드의 해시값
- StorageRoot : 어카운트의 저장된 요소들의 해시값을 암호화(초기설정엔 값없음)
어카운트는 2개의 타입이 있습니다. 외부소유 어카운트(EOA : Exteranlly Owned Account)와 컨트랙트 어카운트(CA : Contract Account)입니다.
외부소유 어카운트(EOA : Exteranlly Owned Account)
개인키로 제어가 되며, EOA간에는 이더의 전송에 해당하는 트랜잭션만 수행이 될 수 있습니다. 메시지를 보낼 수 있고, CA에 메시지를 보낼 때에는 컨트랙트 코드를 활성화시킬 수 있습니다. 활성화되는 코드는 토큰 전송, 내부 저장소에 작성, 새로운 컨트랙트 생성 등 여러가지 기능을 수행합니다.
컨트랙트 어카운트(CA : Contract Account)
스스로 트랜잭션을 게시할 수 없습니다. EOA나 다른 CA의 호출에 의해서만 실행될 수 있습니다. CA간에는 메시지를 통해 스마트 컨트랙트 수행이 가능합니다. EOA의 경우 code hash가 비어있지만, CA는 실행시킬 컨트랙트의 코드가 담깁니다. storage root는 storage에 저장되어 있는 컨트랙트에서 선언한 변수들의 해시값이 있습니다.
포스팅은 이어서 추가될 예정입니다 !
- 어카운트의 주소, 공개키, 개인키
-스테이트
'BlockChain > Technology' 카테고리의 다른 글
테더(USDT)는 어떻게 스테이블 코인이 될 수 있었을까? (1) 2021.11.29 [MyDefiPet] 블록체인으로 돈버는 애완동물을 길러보자 (1) 2021.08.25 같이보는 블록체인 개념 (6) 트랜잭션이 처리되는 과정 (2) 2021.08.17 [Ethernaut 풀이] 이더리움을 해킹해보자 - 8.Vault (0) 2021.08.12 [Ethernaut 풀이] 이더리움을 해킹해보자 - 7.Force (0) 2021.08.12