Ethereum 정리_EVM, Account

까망새부리·2025년 3월 17일
0

Ethereum

목록 보기
1/1
post-thumbnail

Ethereum?

BlockChain 기술을 기반으로 Smant Contract 기능을 구현하기 위한 분산 컴퓨팅 플랫폼이다.
Ethereum 네트워크의 모든 사람들의 동의하는 하나의 표준 컴퓨터 (Ethereum Virtual Machine, EVM)가 있습니다. Ethereum에 참여하는 모든 참가자들은 EVM의 상태 복사본을 보관하고 있습니다.

EVM 정의

Ethereum Virtual Machine(EVM)은 Ethereum 네트워크를 구성하는 Client를 실행하고 있는 수천 개의 연결된 컴퓨터에 의해서 유지되는 하나의 단일 개체를 의미합니다.

Ethereum 프로토콜은 EVM이 중단되지 않고 지속적으로 불변하는 작동을 유지하기 위한 목적으로 존재합니다. BlockChain의 상태는 언제나 하나의 정규 상태를 가지며, EVM은 블록에서 블록으로 새로운 유효 상태를 계산하는 규칙을 정의합니다.

Ethereum의 상태

Ethereum은 SmartContract를 기반으로 각 노드에 분산 유한 상태 머신 데이터로 볼 수 있습니다. Ethereum의 상태는 계정, 잔액, 기계 상태를 보유하고 있는 대규모 데이터 구조로서 미리 정의된 규칙에 다라서 블록에서 블록으로 변경할 수 있고 임의의 코드를 실행할 수 있습니다. 블록에서 블록으로 상태를 변경하는 규칙은 EVM에 의해서 정의를 합니다.

EVM

Ethereum의 상태 전이 함수

EVM은 입력이 주어지게 되면 결정론적인 출력을 생성합니다.

Y(S,T)=SY(S , T) = S'

기존에 검증된 S와 새로 검증된 Transaction (T)을 Ethereum 상태 transation 기능 Y(S, T) 에 넣어 새로운 형태 S'을 생성합니다.

State

Ethereum의 맥락에서, State는 Modified Merkle Patricia Trie 라고 불리는 구조의 모든 계정의 Hash로 연결된 하나의 Single root hash 유지하고 있습니다.

Transactions

Transaction은 계정에서 암호로 서명된 데이터 입니다. Transaction은 호출된 메시지의 결과가 담겨 있는 transaction과 contract의 결과가 담겨있는 2가지 타입의 종류가 있습니다.
Contract는 smart contract의 bytecode가 포함된 새로운 contract 계정이 생성됩니다. 다른 계정이 해당 계약으로 메시지를 호출할 때마다 해당하는 바이트 코드를 실행합니다.

Ethereum에서의 Account

Ethereum에서의 계정은 Ethereum 네트워크에서 거래를 보낼 수 있는 Ethereum(ETH) 잔액을 가진 대상을 말합니다. 계정은 사용자가 제어하거나 스마트 컨트랙트를 배포할 수 있습니다.

Ethereum에서는 2가지 타입의 계정이 존재합니다.

Ethereum의 Account 종류

  • Externally-owned account (EOA)
    • 누구나 개인키로 컨트롤을 할 수 있는 계정
  • Contract account
    • 네트워크에 배포된 컨트랙트를 의미합니다. 소스코드를 기반으로 통제가 가능한 계정을 말합니다.

두 개의 Account는 모두 ETH 토큰을 소유하거나 보낼 수 있으며, 배포된 contract와 상호작용 하는 것이 가능합니다.

EOAContract
생성 비용생성 비용 없음network 저장 공간 사용으로 비용 발생
트랜잭션transaction 시작 가능수신한 transaction에 대한 응답 가능
ETH 전송다른 EOA와 통신만 가능trigger code를 활용하여 다른 Contract, EOA와 통신
KeyPair 소유Key Pair 소유Key Pair를 소유하지 않음

Ethereum은 다음 4가지 종류의 필드 값을 가지고 있습니다.

  • nonce
    - 외부에서 보낸 transactions를 구분하고 각 개수를 세기 위한 값
  • balance
    - 계정이 소유하고 있는 wei의 양
  • codeHash
    - [[EVM]] 에 올라가 있는 account code의 hash값을 의미합니다.
  • storageRoot
    - storage hash 라고도 불리고 있습니다.
    - keccack256 알고리즘을 기본으로 하여 인코딩하여 저장합니다.

accounts

profile
배움을 찾는 사람이 되자!

0개의 댓글