Victoree's Blog

[2-2] 이더리움 단일 상태 모델 본문

Blockchain

[2-2] 이더리움 단일 상태 모델

victoree 2021. 6. 22. 15:06
728x90

이더리움 단일 상태 모델

이더리움 상태 전이 모델

이더리움은 네트워크상에서 서로 모르고, 신뢰할 수 없는 개인들의 합의 과정을 통해 트랜잭션이 처리되도록 설계되었다.

트랜잭션이 발생할 때마다 신뢰여부를 참여자들에게 묻고, 과반수가 문제 없다는 합의가 된 경우에만 해당 트랜잭션이 정상처리된다.

트랜잭션이 완료되었을 때, 어카운트의 상태 변화가 일어난다

 

이더리움에서의 거래, 상태 전이 based on "상태변이 함수"

  • 특정 상태변이 함수에 의해 특정 상태가 전이되거나, 전이에 실패하면 이전 상태로 복귀
  • EX) 트랜잭션 또는 스마트 컨트랙트 (이더리움 가상머신에서 실행되는 프로그램)
  • 상태는 복수의 상태 변이를 가지 못하고, 단 하나의 상태 변이만 갖음

이더리움의 기본 단위 → 어카운트

  • 모든 어카운트는 유니크한 식별자로 특정 주소를 부여받음
  • 상태 == 전체 어카운트의 상태 == 이더리움의 상태
    • 잔액이나 트랜잭션, 스마트 컨트랙트의 컴파일된 중간 파일처럼 필요한 데이터를 저장하기 위한 저장공간
    • 이더리움의 새 블록 추가? → 전체 어카운트의 상태도 변화함

특정 시점의 한 상태는 상태 변이 함수를 통해 단 하나의 상태로 전이됨

→ 블록체인은 단일한 상태 변이 과정에 관련된 트랜잭션들과 상태 정보를 하나의 블록으로 구성하고, 이 블록을 시간순으로 연결하며 단일 상태를 유지한다

  • 비트코인 상태 정보 모델비트코인은 스마트 컨트랙트를 지원하지 않기 때문에,, 암호화폐 구현에 목적을 둔 비트코인!UTXO는 비트코인 금액과 해당 코인 소유자의 주소를 가지고 있다.
  • 비트코인의 상태는 UTXO(Unspent Trasaction Outpus) 라 하는데, UTXO는 사용하지 않고 남은 비트코인이라고 생각하면 된다.
  • 비트코인 역시 상태 전이 모델을 기반으로 하지만,, 비토코인을 옮기는 상태전이만 가능하다.

 

이더리움 플랫폼 참조 모델

  • 데이터 계층
    • 이더리움에서 다루는 갖공 데이터 구조를 정의하고, 관련 데이터를 관리함
    • 데이터 구조로는 어카운트, 트랜잭션, 메시지, 리시트, 블록과 블록이 연결된 블록체인 등
    • accounts : 이더리움 어카운트와 월렛
    • les, light : 경량 라이트 체인
  • 합의 계층
    • (트랜잭션과 트랜잭션과 관련된 데이터들이 모인)블록의 유효성을 검증하는 엔진과 과정을 수행하는 마이닝과 마이닝의 난이도, 인센티브인 Gas 등을 처리함
    • miner : 블록 생성과 마이닝 처리
    • Consensus : 합의 엔진
  • 실행 계층
    • 구동가능한 스마트 컨트랙트와 스마트 컨트랙트를 수행시켜줄 EVM의 처리
    • eth : 이더리움 프로토콜의 중앙 실행체
    • contracts : 스마트 컨트랙트
    • console : 도커와 베이그랜트 등 컨테이너 관리
    • Node : P2P 노드
  • 공통 계층
    • 이더리움의 공통 기능을 제공 → 암호 해시, 전자 서명, 인코딩, 노드간 연결과 동기화를 위한 P2P 네트워크 프로토콜
    • p2p: P2p 네트워크 프로토콜
    • crypto : 다양한 암호화 함수
  • 응용 계층
    • 분산된 웹 개발이 가능한 이더리움은 DApp과 더불어 스마트 컨트랙트, 스웜, 분산 메시징 시스템 휘스퍼 등을 제공하는 계층
    • ethstats : 네트워크 상태 리포팅 서비스
    • swarm : P2P 분산 파일 서비스

이더리움은 P2P 네트워크를 기반으로 신뢰할수없는 대상들이 모여 트랜잭션의 유효성을 합의한 후, 전체 데이터를 분산된 원장을 통해 공유함

728x90
Comments