ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 나만보는 Blockchain 개념 (1) 이더리움
    BlockChain/Technology 2021. 7. 26. 15:29

    오늘의 주제

    1. 이더리움의 구조

    2. 트랜잭션 처리과정

    3. 블록 헤더

    4. 이더리움이란?

    1. 이더리움의 구조
     
    State 블록체인의 계정 정보들을 담고 바뀐 정보를 업데이트
    Account 외부 소유 어카운트(EOA)와 컨트랙트 어카운트(Contract Account)로 구분되는 오브젝트
    Tx 어카운트가 보낼 메시지를 담고있는 서명된 데이터 패키지
    Block 트랜잭션이 담긴 후 노드들의 합의에 의해 생성되어 트랜잭션을 처리

     

    2. 트랜잭션 처리 과정

    이더리움 트랜잭션은 3가지 기능이 있다.

    이더리움 전송/ Smart Contract 배포/ Smart Contract 실행

     

    동작하기 위한 조건은 개인키 서명, Gas 수수료가 필요하다.

    => 생성, 서명, 전송

     

    Tx {
    to: 메시지 수신처
    Signature: 발신처를 확인할 수 있는 서명
    Value: 발신처가 수신처로 보내는 이더 전송량
    Gas: 발신처가 지불하는 수수료
    Data: 컨트랙 메시지를 담을 수 있는 데이터 필 
    }

     

    - Tx가 생성, 서명, 전송된 후에 Tx pool에 담긴다.

    - 누군가가 마이닝을 하면 트랜잭션을 처리하게 되고, State가 바뀐다. 

    *마이너 입장에서 트랜잭션의 내용은 중요치 않는다.

    - 새로운 블록이 만들어 졌을 때 State의 Account의 상태가 바뀐다.

    *논스는 순차적으로 증가하고 처리되어 각 트랜잭션이 한번만 처리되게 하고, 처리 순서를 결정하게 도와준다.  

     

    블록 사이즈가 커지기 어려운 이유? 
    - 탈중앙성을 지키려면 접근이 쉬워야 하는데, 블록사이즈가 커지면 채굴하기 위해서 고가의 장비가 필요해진다. 진입 장벽이 높아지고, 노드 수가 줄어들어 보안성이 낮아진다. 
    3. 블록 헤더

    - ParentHash: 부모 블록의 해시값

    - UncleHash: 엉클 블록의 해시값, 실제로 메인넷을 형성하지 않는 블록

    - Coinbase: 마이닝이 끝나고 이더를 지급받는 어카운트 주소

    - TxHash: 블록내의 모든 트랜잭션들의 머클트리의 루트 노드 해시값

     

    엉클 블록 - 트랜잭션을 갖고 있지 않음. 엉클 블록이 메인체인에 붙어 불필요한 해시파워를 효율적으로 관리하여 채굴 난이도를 낮추고, 네트워크의 안정성을 높인다. 비율 조작을 통해 신규 이더리움 발행 빈도의 부정조작을 방지한다.
    4. 이더리움이란? 

    - 전역적으로 접근 가능한 싱글톤 상태와 그 상태를 변화시킬 수 있는 가상머신으로 구성

    - 전 세계에 걸친 탈중앙화된 컴퓨팅 인프라스트럭쳐

    - 블록체인을 사용하여 시스템의 상태변화를 동기화하고, 이더(eher)라고 하는 암호화폐를 이용하여 실행 자원 비용을 측정하고 제한

     

    개발 단계는 4단계로 현재 세레니티 페이즈까지 진행되었다.

     

    구성요소 : P2P네트워크, 합의규칙, 트랜잭션, 상태머신

    경제적 보안성: 현재 이대시(Ethash)라는 PoW를 사용하나, 향후 PoS로 바뀔 예정

    클라이언트: 대표적으로 Geth와 Parity 이더리움 클라이언트 소프트웨어 사용

    이더리움 주소: 16진수이며, Keccak-256 해시 함수를 사용하여 만든다. 타원 곡선 곱셈을 이용하여 개인키에서 공개키를 생성한다.

     

    https://sandbox.eth.build/에서 실행한 서명과 복호화
    https://sandbox.eth.build/에서 0.5Eth를 보내는 TX생성

    댓글

Designed by Tistory.