본문 바로가기
블록체인/이더리움

이더리움의 Account

by 후닝훈 2021. 6. 11.
반응형

Account의 종류

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

- 개인키(Private key)를 가지고 통제할 수 있는 계좌

- 다른 계좌로의 Ether 송금, 메시지 전송 가능

 

계약 계좌 (Contract Account)

 = EOA + @ (컨트랙트 코드, 저장공간)

- 계약 계좌가 특정 메시지를 받게되면 계좌내 코드가 실행

- 내부 저장공간에 정보를 읽고 쓸수 있다.

 

Account 구성요소

- 넌스 : Address 에서 전송된 트랜잭션 수. Mining 할때의 넌스값이랑은 다른 값이다.

- 이더량(Ether Balance) : 계좌가 보유하고 있는 이더양

- 계약 코드(Contract code, CA only) : 실제로 실행될 계약 내용이 적힌 솔리디티 코드

- 저장공간(Storage, CA only) : 계약코드 실행에 필요한 정보들을 저장하는 공간


Nonce

EOA 의 경우 : address 에서 전송한 트랜잭션 수
CA의 경우 : 스마트 컨트랙트에서 생성한 다른 스마트 컨트랙트의
Balance

계정 유형에 관계없이 한 Account 가 소유한 ETH
storageRoot

Merkle Patricia Tree Root Hash
codeHash
EOA 의 경우 : 빈 문자열의 Hash
CA 의 경우 : Account
포함된
EVM code hash

 

Account 생성

- 공개키 = ECDSA (개인키) => 계정번호 = BASE58Check(sha3-256(공개키)

 

Account의 Transaction

 

- EOA : 해당 계좌는 아무런 코드를 가지고 있지 않으며 어카운트에서 메시지를 보내기 위해서는 새로운 거래를 만들고 서명해야 함.

- CA : 해당 어카운트는 TX를 받을 때마다 자신의 코드를 활성화시키고, 이에 따라 데이터를 읽거나 내부 저장공간에 기록하고, 다른 TX를 보냄

- 체인링크, 비체인, 쎄타 등 유명한 코인들도 이더리움의 CA 임 (https://etherscan.io/tokens)- 스마트 컨트랙트에 존재하는 함수를 사용하는것이 Internal Transaction 이다.

 

이더리움 CA의 동작과정

- 예를들어 DApp 이 있다면, DApp의 등록기능, 확인기능이 구성되어 있다.- 스마트 컨트랙트는 확인 버튼을 누른다면 동작하는 함수들을 구현해놓은 곳이다. 이곳에서는 A 함수를 요청한다.- 블록체인에서 저장되어있는 해당하는 스마트 컨트랙트에 있는 A 함수를 요청함을 인지함- A에 해당하는 내용을 마이너가 처리함- 처리내용을 블록체인에 저장- state가 변한다면 스마트 컨트랙트의 데이터에 해당하는 곳을 바꿈- DApp으로 가 요청사항을 보여준다. - 서버에서 해주어야 할 것을 이더리움은 스마트 컨트랙트(원하는 코드를 생성가능)를 통해 지원한다.

이더리움 블록체인의 모든 기능은 항상 EOA의 트렌잭션으로부터 시작된다.

 

간단한 솔리디티 코드

- 해당 코드는 비체인의 코드이다.

- 이처럼 이더리움을 기반으로 한 토큰은 개발자 마음대로 총 공급량을 정할 수 있다.

 

블록체인이 개선해야할 세가지 요소

트릴레마 라고 하며, 속도-보안-탈중앙화를 말한다.

 

 

 

 

반응형

'블록체인 > 이더리움' 카테고리의 다른 글

이더리움 Transaction 2  (2) 2021.06.11
이더리움 Transaction  (0) 2021.06.11
이더리움 가스  (0) 2021.06.10
State machine  (0) 2021.06.10
이더리움 구성  (0) 2021.06.09

댓글